//************************************************************************************
// 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;

//
// dinamically add a div to 
// dim all the page
//

function displayWindow(locationEl) {
    
    var w, h, l, t, e;
    //Place the div over the firing element
    e = document.getElementById(locationEl);
    
    w = 400;
    h = 260;
    l = getX(e);  //e.offsetLeft;  //screen.width / 4;
    t = getY(e);  //e.offsetTop;  //screen.height / 4;



    // no title		        
    // displayFloatingDiv('windowcontent', '', w, h, l, t);

    // with title
    displayFloatingDiv('windowcontent', 'Contact Form', w, h, l, t);
    //document.getElementById('windowcontent').scrollIntoView();
}
function getY(oElement) {
    var iReturnValue = 0;
    while (oElement != null) {
        iReturnValue += oElement.offsetTop;
        oElement = oElement.offsetParent;
    }
    return iReturnValue;
}

function getX(oElement) {
    var iReturnValue = 0;
    while (oElement != null) {
        iReturnValue += oElement.offsetLeft;
        oElement = oElement.offsetParent;
    }
    return iReturnValue;
}

function buildDimmerDiv() {


    //document.write('<div id="dimmer" class="dimmer" style="width:'+ window.screen.width + 'px; height:' + window.screen.height +'px"></div>');
    document.write('<div id="dimmer" class="dimmer" style="width:1px; height:1px"></div>');
}


//
//
//
function Over(val) {
    over = val;
}
function displayFloatingDiv(divId, title, width, height, left, top) 
{
	DivID = divId;

	document.getElementById('dimmer').style.visibility = "visible";
	//document.getElementById('dimmer').style.display = "block";

    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';
    try {
        //document.getElementById(divId).style.left = event.screenX + 'px';
        //document.getElementById(divId).style.top = event.screenY + 'px';
    }
    catch (e) { }
    //
    
    
	var addHeader;
	
	if (originalDivHTML == "")
	    originalDivHTML = document.getElementById(divId).innerHTML;
	/*
	addHeader = '<table style="width:' + width + 'px" class="floatingHeader">' +
	            '<tr><td id="tdTitle" ondblclick="void(0);" onmouseover="Over(true);" onmouseout="Over(false);" style="cursor:default;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>';
	            */

	addHeader = '<table style="width:' + width + 'px" class="floatingHeader">' +
	            '<tr><td id="tdTitle" style="cursor:default;height:18px">' + title + '</td>' +
	            '<td style="width:18px" align="right">' +
	            '<img alt="Close..." title="Close..." onclick=\'javascript:document.getElementById("' + divId + '").style.visibility = "hidden";\' src="images\\close.jpg"  border="0"></a></td></tr></table>';

//alert(addHeader)
    // add to your div an header	
	document.getElementById(divId).innerHTML = addHeader + originalDivHTML;
	
	
	document.getElementById(divId).className = 'dimming';
	document.getElementById(divId).style.visibility = "visible";
	document.getElementById("spBottom").scrollIntoView();

}


//
//
//
function hiddenFloatingDiv(divId) 
{
	document.getElementById(divId).innerHTML = originalDivHTML;
	document.getElementById(divId).style.visibility='hidden';
	document.getElementById('dimmer').style.visibility = 'hidden';
	
	DivID = "";
}

//
//
//
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;
        }
    }

//    if (event.srcElement) {
//        if (event.srcElement.id == "btnNote") {
//            over = true;
//            e = event.srcElement;
//            displayWindow()
//            return;
//        }
//    }
//    if (over)
//    {
//        if (isMozilla) {
//            objDiv = document.getElementById(DivID);
//            X = e.layerX;
//            Y = e.layerY;
//            return false;
//        }
//        else {
//            //debugger
//            objDiv = document.getElementById(DivID);
//            objDiv = objDiv.style;
//            X = event.screenX;
//            Y = event.screenY;
//        }
//    }
}


//
//
//
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;
            objDiv.pixelLeft = event.X // - X + document.body.scrollLeft;
            objDiv.pixelTop = event.Y // -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();

}

// call init
init();

