// Snapsis.DNN utilities
var snapsis_MoveObject = null;
var snapsis_MoveOffsetX = 0;
var snapsis_MoveOffsetY = 0;
var snapsis_CurrentContainerId=null;
var snapsis_zIndexTop=2000;
function snapsis_onLoad()
{
 //put calls to any javascript that you want executed when the page loads here   
}
function snapsis_popUp(oContainerId,leftPos, topPos){
   	var oContainer = document.getElementById(oContainerId);
    if (oContainer != null )
    {
		if (oContainer.style.zIndex < snapsis_zIndexTop )
		        oContainer.style.zIndex=snapsis_zIndexTop++;

		if (leftPos != null)
			oContainer.style.left=leftPos;
	    else
	        oContainer.style.left=event.clientX+10;
		if (topPos != null)
			oContainer.style.top=topPos;
    	else
	        oContainer.style.top=event.clientY+10;
	    
		var oMoveHandle = document.getElementById(oContainer.id + "Handle");
	    if ( oMoveHandle )
		   oMoveHandle.attachEvent("onmousedown",snapsis_startMouseMove);

		oContainer.style.display="block";
		oContainer.style.visibility="visible";
		snapsis_CurrentContainerId = oContainer.id;
	}
}
function snapsis_hidePopUp(oContainerId){
    if (oContainerId)
        snapsis_CurrentContainerId = oContainerId;
	if (snapsis_CurrentContainerId != null){
		var oContainer=document.getElementById(snapsis_CurrentContainerId);
		if (oContainer != null){
			oContainer.style.display="none";
			oContainer.style.visibility="hidden";
			var oMoveHandle = document.getElementById(oContainer.id + "Handle");
			if ( oMoveHandle )
			{
			    oMoveHandle.detachEvent("onmousedown",snapsis_startMouseMove);
			    oMoveHandle.detachEvent("onmouseup",snapsis_cancelMouseMove);
			}
		}
	}
	return;
}

function snapsis_ToggleDisplay(oContainerId,onoff){

		var oContainer=document.getElementById(oContainerId);
		if (oContainer != null)
		{
		    
		    if (onoff)
		    {
    		    if ( oContainer.style.display == "block" || onoff.toLowerCase() == 'off')
    		    {
    		       oContainer.style.display = "none";
    		       oContainer.style.visibility = "hidden";
                }
                else
                {
                   oContainer.style.display = "block";
                   oContainer.style.visibility = "visible";
                }
            }
            else
            {
    		    if ( oContainer.style.display == "block")
    		    {
    		       oContainer.style.display = "none";
    		       oContainer.style.visibility = "hidden";
                }
                else
                {
                   oContainer.style.display = "block";
                   oContainer.style.visibility = "visible";
                }
            }                
		}
	return;
}

function snapsis_startMouseMove(){
    var HandleId = new String(event.srcElement.id)
    //the Container being moved needs to have the same id as the handle without the "Handle" suffix
    snapsis_MoveObject = document.getElementById(HandleId.substring(0,HandleId.length - 6));
    if (snapsis_MoveObject)
    {
        snapsis_MoveOffsetX = event.clientX - snapsis_MoveObject.style.pixelLeft
        snapsis_MoveOffsetY = event.clientY - snapsis_MoveObject.style.pixelTop
    }
    document.attachEvent("onmousemove",snapsis_handleMouseMove);
    document.attachEvent("onmouseup",snapsis_cancelMouseMove);
}
function snapsis_cancelMouseMove(){
	document.detachEvent("onmousemove",snapsis_handleMouseMove);
	document.detachEvent("onmouseup",snapsis_cancelMouseMove);
    snapsis_MoveObject = null;
}
function snapsis_handleMouseMove(){

    if ( snapsis_MoveObject )
    {
        snapsis_MoveObject.style.pixelLeft = event.clientX  - snapsis_MoveOffsetX;
        snapsis_MoveObject.style.pixelTop = event.clientY  - snapsis_MoveOffsetY;
	    event.returnValue = false;
	    event.cancelBubble = true;
    }
}
function snapsis_ElementTop(eSrc)
{
	var iTop = 0;
	var eParent;
	eParent = eSrc;
	while (eParent.tagName.toUpperCase() != "BODY")
	{
		iTop += eParent.offsetTop;
		eParent = eParent.offsetParent;
	}
	return iTop + document.body.scrollTop;
}
function snapsis_ElementBottom(eSrc)
{
	var iTop = 0;
	var eParent;
	eParent = eSrc;
	while (eParent.tagName.toUpperCase() != "BODY")
	{
		iTop += eParent.offsetTop;
		eParent = eParent.offsetParent;
	}
	return iTop + document.body.scrollTop + eSrc.offsetHeight;
}
function snapsis_ElementLeft(eSrc)
{	
	var iLeft = 0;
	var eParent;
	eParent = eSrc;
	while (eParent.tagName.toUpperCase() != "BODY")
	{
		iLeft += eParent.offsetLeft;
		eParent = eParent.offsetParent;
	}
	return iLeft + document.body.scrollLeft;
}
function snapsis_ElementRight(eSrc)
{	
	var iLeft = 0;
	var eParent;
	eParent = eSrc;
	while (eParent.tagName.toUpperCase() != "BODY")
	{
		iLeft += eParent.offsetLeft;
		eParent = eParent.offsetParent;
	}
	return iLeft + eParent.offsetWidth + document.body.scrollLeft ;
}
