﻿// Hook up Application event handlers.
var app = Sys.Application;
app.add_load(ApplicationLoad);
app.add_init(ApplicationInit);
app.add_disposing(ApplicationDisposing);
app.add_unload(ApplicationUnload);
app.add_navigate(onNavigate); 

var browser = {
    ie: false, 
    firefox: false, 
    safari: false, 
    opera: false, 
    version: -1
};

//UserAgent detection
var useragent = navigator.userAgent.toLowerCase();
var browserName = "otherBrowser";
if (useragent.indexOf("opera") != -1) {
    browser.opera = true;
    browserName = "opera"
} else if (useragent.indexOf("msie") != -1) {
    browser.ie = true;
    browser.version = parseFloat(useragent.substring(useragent.indexOf('msie') + 4));
    browserName = "ie"
} else if (useragent.indexOf("safari") != -1) {
    browser.safari = true;
    browser.version = parseFloat(useragent.substring(useragent.indexOf('safari') + 7));
    browserName = "safari"
} else if (useragent.indexOf("gecko") != -1) {
    browser.firefox = true;
    browserName = "firefox"
}

if (browser.ie == true && browser.version == 7) {
    window["_ie_firstload"] = false;
}




//var permalink = "#" + Sys.Application.get_history().get_stateString();

// Application event handlers for component developers.
function ApplicationInit(sender) {
//  var prm = Sys.WebForms.PageRequestManager.getInstance();
//  if (!prm.get_isInAsyncPostBack())
//  {
//      prm.add_initializeRequest(InitializeRequest);
//      prm.add_beginRequest(BeginRequest);
//      prm.add_pageLoading(PageLoading);
//      prm.add_pageLoaded(PageLoaded);
//      prm.add_endRequest(EndRequest);
//  }
}
var documentLoaded;
function ApplicationLoad(sender, args) {
//    if ( browser.opera || browser.ie) 
//    {
//        if (window.location.href.indexOf("?browser=" + browserName) == -1) {
//            window.location.href = window.location.href.replace( /#.*/, "") + "?browser=" + browserName;
//        }
//    }
  
  //isPartialLoad  
  if ((browser.firefox || browser.opera) && !args.get_isPartialLoad()) {
    
    //alert('isPartialLoad = '+args.get_isPartialLoad());
    var hash = window.location.hash;
    var idx = hash.indexOf('#');
    //hash = (idx >= 0) ? document.location.href.substr(idx+1) : '';
    if (hash.length > 0 && idx >= 0 ) {
        
//        if ((hash.length > 0) && (hash.charAt(0) === '#')) {
//            hash = hash.substring(1);
//        }
//        if (Sys.Browser.agent === Sys.Browser.Firefox) {
//            hash = this._serializeState(this._deserializeState(hash, true));
//        }
        //window.location.hash = "#";
        //window.location = window.location.href.replace( /#.*/, "");
        var checkForUrlChange = function () {
			try {
				window.location.replace(window.location.href.replace( /#.*/, ""));
				documentLoaded = true;
			} catch (e) {}
		};
		if (documentLoaded == false || documentLoaded == null) {
		    if (!browser.opera)
		        window.location.replace(window.location.href.replace( /#.*/, ""));
		    else
                setInterval(checkForUrlChange, 100);
        }
            
    } 
    else
        documentLoaded = false;
  }
}
function ApplicationUnload(sender) {}
function ApplicationDisposing(sender) {}

// Application event handlers for page developers.
function pageLoad() {}
function pageUnload() {}

// PageRequestManager event handlers.
function InitializeRequest(sender, args) {}
function BeginRequest(sender, args) {}
function PageLoading(sender, args) {}
function PageLoaded(sender, args) {}
function EndRequest(sender, args) {}
function onNavigate(sender, args) { 
    //var customerID = e.get_state().pageState; 
//    var prm = Sys.WebForms.PageRequestManager.getInstance();
//    if (!prm.get_isInAsyncPostBack())
//    {
//        if ( browser.opera || browser.ie ) 
//        {
//            var hash = window.location.hash;
//            var idx = hash.indexOf('#');
//            //hash = (idx >= 0) ? document.location.href.substr(idx+1) : '';
//            if (window.location.href.indexOf("?browser=" + browserName) == -1) {
//                 window.location.href = window.location.href.replace( /#.*/, "") + "?browser=" + browserName + hash;
//            }
//          }          
//    }
}


