﻿var ShowLoading = false;
var FindEvent = "";
var AjaxLoaderImgSrc = "images/load2.gif";
var AjaxLoaderId  = "ajaxloaderimg";
var AjaxLoaderPosX = 0;
var AjaxLoaderPosY = 0;

    var AjaxLoader = {

        
        Listen         : function(e) {
                            if (document.addEventListener) { window.addEventListener('click',    function(e) { AjaxLoader.Pos(e) },false);
                                                             window.addEventListener('mousemove',function(e) { AjaxLoader.init(e)},false); }

                            if (document.attachEvent)      { document.attachEvent('onclick',     function(e) { AjaxLoader.Pos(e) });
                                                             document.attachEvent('onmousemove', function(e) { if (ShowLoading == true) { AjaxLoader.init(event) }}); }
                         },
        
        
        init           : function(e) {
                                if (!$$(AjaxLoaderId)) { AjaxLoader.MakeElement(e,AjaxLoaderId,AjaxLoaderImgSrc); }
                                else                  { AjaxLoader.Place(e,$$(AjaxLoaderId)); }
                         },


        MakeElement    : function(e,obj,src) {
                                var AjaxLoaderImg = document.createElement("div");
                                    AjaxLoaderImg.id = obj;
                                    AjaxLoaderImg.style.cssText = "position: absolute; top: "+ AjaxLoaderPosY +"px; left: "+ AjaxLoaderPosX +"px; display: none;";
                                    AjaxLoaderImg.innerHTML = '<img src="'+ src +'" />';

                                parent.document.body.appendChild(AjaxLoaderImg);
                         },


        DestroyElement : function(obj) { parent.document.body.removeChild(obj); },


        FindEvent      : function(e) { 
                                if (!e) e = window.event;
		                        FindEvent = e;

		                    return e; 
                         },


        Pos            : function(e,val) {
                                e = AjaxLoader.FindEvent(e);

                                    if (e.pageX)   { AjaxLoaderPosX = (e.pageX - 10); }
                                    if (e.clientX) { AjaxLoaderPosX = (e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft) - 15; }

                                    if (e.pageY)   { AjaxLoaderPosY = (e.pageY + 30); }
                                    if (e.clientY) { AjaxLoaderPosY = (e.clientY + document.body.scrollTop + document.documentElement.scrollTop) + 25; }
                         },


        Place          : function(e,obj) {
                                
                                if (obj) { ShowLoading == true ? obj.style.display = 'block' : obj.style.display = 'none';
                                           AjaxLoader.Pos(e);
                                           obj.style.top  = AjaxLoaderPosY +"px";
                                           obj.style.left = AjaxLoaderPosX +"px"; }
                         },


        End            : function(obj) { 
                                if (obj && ShowLoading == true) AjaxLoader.DestroyElement(obj);
                                ShowLoading = false;
                         }
    };

AjaxLoader.Listen(window.event);
