Type.registerNamespace('FD.SiteMaster');

FD.SiteMaster.lastX = 0;
FD.SiteMaster.lastY = 0;
FD.SiteMaster.ajaxLoadingStart = function()
{
    var loadding = $get('globalLoading');
    if (!loadding) return;
    Sys.UI.DomEvent.addHandler(document.body, 'mousemove', FD.SiteMaster.onMouseMove);
    Sys.UI.DomElement.setLocation(loadding, FD.SiteMaster.lastX + 8, FD.SiteMaster.lastY);
    loadding.style.display = 'block';
}

FD.SiteMaster.ajaxLoadingEnd = function()
{   
    Sys.UI.DomEvent.removeHandler(document.body, 'mousemove', FD.SiteMaster.onMouseMove);
    $get('globalLoading').style.display = 'none';
}

FD.SiteMaster.followMouse = function(e)
{
    var x = e.rawEvent.pageX || 
                        (e.rawEvent.clientX + 
                            (document.documentElement.scrollLeft || document.body.scrollLeft));
  
    var y = e.rawEvent.pageY || 
                        (e.rawEvent.clientY + 
                            (document.documentElement.scrollTop || document.body.scrollTop));
     try
     {
        if(Sys.Browser.name == 'Firefox' && FD.SiteMaster.lastX >1  && FD.SiteMaster.lastY > 1 & (Math.abs(FD.SiteMaster.lastY - x) > 100 && Math.abs(FD.SiteMaster.lastY - y) > 100))
        {
            FD.SiteMaster.lastY = y - e.offsetY;
        }
        else
        {
            FD.SiteMaster.lastX = x;
            FD.SiteMaster.lastY = y;
        }
    }
    catch(e)
    {}
}

FD.SiteMaster.onMouseMove = function(e)
{
    Sys.UI.DomElement.setLocation($get('globalLoading'), FD.SiteMaster.lastX + 8, FD.SiteMaster.lastY);
}

Sys.Net.WebRequestManager.add_invokingRequest(FD.SiteMaster.ajaxLoadingStart);
Sys.Net.WebRequestManager.add_completedRequest(FD.SiteMaster.ajaxLoadingEnd);
Sys.UI.DomEvent.addHandler(document.body, 'mousemove', FD.SiteMaster.followMouse);

if( typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
