﻿
Sys.Application.add_load(ApplicationLoadHandler);

function ApplicationLoadHandler(sender, args)
{
  if (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack())
  {
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequest);
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequest);
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequest);
  }
}

function IsIE()
{
  var browser = navigator.appName;
  return browser == "Microsoft Internet Explorer";
}

function CreateRequestObject()
{
  var obj;
  if(IsIE()){
    obj = new ActiveXObject("Microsoft.XMLHTTP");
  }else{
    obj = new XMLHttpRequest();
  }
  return obj;
}

function doBrowserEvents(msecs)
{
  var i=0;
  var http = CreateRequestObject(); 
  var UTC = new Date();
  while ((new Date()) - UTC < msecs)
  {
    i++;
    http.open("GET","/doesnotexist",false);
    http.send(null);
  }
  return i;
}

var lastPostBackElement = null;

function InitializeRequest(sender, args)
{ 
  var prm = Sys.WebForms.PageRequestManager.getInstance();
  if (prm.get_isInAsyncPostBack() && lastPostBackElement != null) 
  {
    while (lastPostBackElement != null)
    {
      doBrowserEvents(100);
    }
  }
  lastPostBackElement = args.get_postBackElement().id;      
}

function BeginRequest(sender, args)
{
  ;
}

function EndRequest(sender, args)
{
  lastPostBackElement = null;
}


if(typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
