LoadingDivEngine = function() {
    
    var ProcessCount  = 0;
    
    var LoadingOffset = 30; // pixels from top
    
    function f_clientWidth() {
    	return f_filterResults (
    		window.innerWidth ? window.innerWidth : 0,
    		document.documentElement ? document.documentElement.clientWidth : 0,
    		document.body ? document.body.clientWidth : 0
    	);
    }
    function f_clientHeight() {
    	return f_filterResults (
    		window.innerHeight ? window.innerHeight : 0,
    		document.documentElement ? document.documentElement.clientHeight : 0,
    		document.body ? document.body.clientHeight : 0
    	);
    }
    function f_scrollLeft() {
    	return f_filterResults (
    		window.pageXOffset ? window.pageXOffset : 0,
    		document.documentElement ? document.documentElement.scrollLeft : 0,
    		document.body ? document.body.scrollLeft : 0
    	);
    }
    function f_scrollTop() {
    	return f_filterResults (
    		window.pageYOffset ? window.pageYOffset : 0,
    		document.documentElement ? document.documentElement.scrollTop : 0,
    		document.body ? document.body.scrollTop : 0
    	);
    }
    function f_filterResults(n_win, n_docel, n_body) {
    	var n_result = n_win ? n_win : 0;
    	if (n_docel && (!n_result || (n_result > n_docel)))
    		n_result = n_docel;
    	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
    }
    
    function start()
    {
        ProcessCount ++;
        $('LoadingDiv').top = (f_scrollTop() + LoadingOffset) + 'px';
        $('LoadingDiv').style.visibility = 'visible';
        return true;
    }
    
    function stop()
    {
        ProcessCount --;
        if(ProcessCount <= 0)
        {
            ProcessCount = 0;
            $('LoadingDiv').style.visibility = 'hidden';
        }
        return true;
    }

}


