//************************************************************************************
// Copyright (C) 2006, Massimo Beatini
//
// This software is provided "as-is", without any express or implied warranty. In 
// no event will the authors be held liable for any damages arising from the use 
// of this software.
//
// Permission is granted to anyone to use this software for any purpose, including 
// commercial applications, and to alter it and redistribute it freely, subject to 
// the following restrictions:
//
// 1. The origin of this software must not be misrepresented; you must not claim 
//    that you wrote the original software. If you use this software in a product, 
//    an acknowledgment in the product documentation would be appreciated but is 
//    not required.
//
// 2. Altered source versions must be plainly marked as such, and must not be 
//    misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
//************************************************************************************

//
// global variables
//
var isMozilla;
var objDiv = null;
var originalDivHTML = "";
var DivID = "";
var over = false;
var j=0;


//
// dinamically add a div to 
// dim the page
//
function buildDimmerDiv()
{
    var width,height;
    
    width = window.screen.width-105;
    height = window.screen.height;        
       
    document.write('<div id="dimmer" class="dimmer" style="width:'+ width  + 'px; height:' + height +'px"></div>');
}

function buildLoadingDiv()
{
     document.write('<div id="pleaseWait" style="display: none; position: absolute; top: 43%; left: 40%; height: 50px; border: 1px solid #ccc; background: #FFFFFF; text-align: center; z-index: 100; padding-top: 5px;">');
     document.write('<img src="images/RssLoading.gif" style="float:left; margin-right: 10px; margin-left: 50px" alt="Loading..." />');
     document.write('<p class="section-description" style="float: left; padding-top: 7px; margin-right: 50px;">Loading...</p>');
     document.write('</div>');
}

function displayLoadingDiv(title, width, height, left, top)
{
    document.getElementById("pleaseWait").style.display="block";	        
    startWait();
}

function displayFloatingDiv(divId, title, width, height, left, top) 
{
	DivID = divId;    
	document.getElementById('dimmer').style.visibility = "visible";
    document.getElementById(divId).style.width = width + 'px';
    document.getElementById(divId).style.height = height + 'px';
    document.getElementById(divId).style.left = left + 'px';
    document.getElementById(divId).style.top =  top + 'px';
    
	var addHeader;
	
    if (originalDivHTML == "")
        originalDivHTML = document.getElementById(divId).innerHTML;
	
    addHeader = '<table style="width:' + width + 'px" class="">' +
                '<tr><td ondblclick="void(0);" onmouseover="over=true;" onmouseout="over=false;" style="cursor:move;height:18px">' + title + '</td>' + 
                '<td style="width:18px" align="right"><a href="javascript:hiddenFloatingDiv(\'' + divId + '\');void(0);">' + 
                '<img alt="Close..." title="Close..." src="../images/close.jpg" border="0"></a></td></tr></table>';
	       
    // add to your div an header	
    
    //document.getElementById(divId).innerHTML = addHeader + originalDivHTML;	
    document.getElementById(divId).innerHTML = originalDivHTML;	
    document.getElementById(divId).className = 'dimming';
    document.getElementById(divId).style.visibility = "visible";	
			
	document.getElementById(divId).style.visibility = "hidden";	
	displayLoadingDiv();	    
}

var counter;
counter=10;

    function pleaseWait()
    {
        document.getElementById("pleaseWait").style.display = "block";        
        counter = counter - 1;        
        if(counter == 0)
        {          
            counter = 10;
            document.getElementById("pleaseWait").style.display = "none";
            window.clearInterval(id);
            document.getElementById(DivID).style.visibility = "visible";           
        }
    }


    function startWait()
    {
        id = window.setInterval("pleaseWait()", 100);     
         
    }
    
    function movedown() {
	if (j < 200) {
		document.getElementById(DivID).style.top = j + "px";
		timer = setTimeout("movedown()",100000);
	}
	else {
		clearTimeout(timer);		
	}
}

function hiddenFloatingDiv(divId) 
{
    document.getElementById(divId).innerHTML = originalDivHTML;
	document.getElementById(divId).style.visibility='hidden';
	document.getElementById('dimmer').style.visibility = 'hidden';
	
	DivID = "";
	originalDivHTML="";
}

function MouseDown(e) 
{
    if (over)
    {
        if (isMozilla) {
            objDiv = document.getElementById(DivID);
            X = e.layerX;
            Y = e.layerY;
            return false;
        }
        else {
            objDiv = document.getElementById(DivID);
            objDiv = objDiv.style;
            X = event.offsetX;
            Y = event.offsetY;
        }
    }
}

function MouseMove(e) 
{
    if (objDiv) {
        if (isMozilla) {
            objDiv.style.top = (e.pageY-Y) + 'px';
            objDiv.style.left = (e.pageX-X) + 'px';
            return false;
        }
        else 
        {
            objDiv.pixelLeft = event.clientX-X + document.body.scrollLeft;
            objDiv.pixelTop = event.clientY-Y + document.body.scrollTop;
            return false;
        }
    }
}

function MouseUp() 
{
    objDiv = null;
}


function init()
{
    // check browser
    isMozilla = (document.all) ? 0 : 1;


    if (isMozilla) 
    {
        document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
    }

    document.onmousedown = MouseDown;
    document.onmousemove = MouseMove;
    document.onmouseup = MouseUp;

    // add the div
    // used to dim the page
	buildDimmerDiv();
	buildLoadingDiv();

}

// call init
init();
