﻿// JScript File. This code will manage Autopostback to put user on the new control from which the user moved off of.
var lastFocusedControlId = "";
function focusHandler(e)
 {
     document.activeElement = e.originalTarget;
 }

function appInit()
 {
     if (typeof(window.addEventListener) !== "undefined")
      {        window.addEventListener("focus", focusHandler, true);
      }
 
     Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(pageLoadingHandler);
     Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoadedHandler);
 }
 
function pageLoadingHandler(sender, args)
  {
     lastFocusedControlId = typeof(document.activeElement) === "undefined" ? "" : document.activeElement.id;
  }
  
function focusControl(targetControl)
  {
     if (Sys.Browser.agent === Sys.Browser.InternetExplorer)
      {
        var focusTarget = targetControl;
        if (focusTarget && (typeof(focusTarget.contentEditable) != "undefined"))
         { 
            oldContentEditableSetting = focusTarget.contentEditable;
            focusTarget.contentEditable = false;  
         }
        else 
         { 
            focusTarget = null; 
         }
         
         targetControl.focus();
         
        if (focusTarget) 
         {
            focusTarget.contentEditable = oldContentEditableSetting;
         }
      }
     else 
      {
        targetControl.focus();
      }
  }
  
  function pageLoadedHandler(sender, args) 
  {
      if (typeof(lastFocusedControlId) !== "undefined" && lastFocusedControlId != "") 
       {
               var newFocused = $get(lastFocusedControlId);
               if (newFocused) 
                {  focusControl(newFocused);
                }
       }
   }

Sys.Application.add_init(appInit);
