﻿var prm
var canEnable;
var disableTarget;


function initHourglass(disableOnLoad, whatDisableId)
{
	var progressElement = $get('progress');
	if (progressElement != null)
	{
		disableTarget = whatDisableId;
		prm = Sys.WebForms.PageRequestManager.getInstance();
		if (prm)
		{
			prm.add_initializeRequest(InitializeRequest);
			prm.add_pageLoaded(EndRequest);
		}
		if (disableOnLoad)
		{
			 disablePage();
			addOnLoadedHandler(enablePage);
		}
		return true;
    }
    else
    {
		return false;
    }
}

function InitializeRequest(sender, args) 
{
	if(  args.get_postBackElement().id.indexOf( "LoginButton" ) == -1 && args.get_postBackElement().id.indexOf( "btnCreate" ) == -1 )
    {
		if( $get( "login" ) )
		{
		    JobZonenSearch.closeOtherDiv('login');
		}
		if( $get( "newuser" ) )
		{
		    JobZonenSearch.closeOtherDiv('newuser');	    
		}
	    
        if (prm.get_isInAsyncPostBack()) 
        {
            args.set_cancel(true);
        }
        canEnable = false;
	    disablePage();  
	}
}

function EndRequest(sender, args) 
{
	enablePage();
}

function disablePage()
{
    var progressElement = $get('progress');
    if (!canEnable && $get(disableTarget))
    {
        progressElement.style.display = 'block';
        var panelHeight = $get(disableTarget).offsetHeight;
        panelHeight = 4860;
        if (panelHeight < 860)
        {
        	panelHeight = 4860;
        }
        progressElement.style.height = panelHeight + "px";
        //window.scrollTo(0,0);
        canEnable = true;
    }
}

function enablePage()
{
    var progressElement = $get('progress');
    if (canEnable)
    {
        progressElement.style.display = 'none';
    }
}

function addOnLoadedHandler(fn){ 
 if (window.addEventListener) //W3
 {
    window.addEventListener("DOMContentLoaded", fn, false);
    return true; 
 } 
 else // IE
 { 
   document.onreadystatechange = function(){readyState(fn)}
   return true; 
 } 
}

//IE execute function
function readyState(fn)
{
	//dom is ready for interaction
	if(document.readyState == "interactive")
	{
		fn();
	}
}