// 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_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_SaveContainerPosition(snapsis_MoveObject.id)
    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 ;
}
function GetCookie(name) {
  var start = document.cookie.indexOf(name + '=');
  var len = start + name.length + 1;
  if ((!start) && (name != document.cookie.substring(0,name.length)))
    return null;
  if (start == -1)
    return null;
  var end = document.cookie.indexOf(';',len);
  if (end == -1) end = document.cookie.length;
  return unescape(document.cookie.substring(len,end));
}

function SetCookie(name,value,expires,path,domain,secure) {
  document.cookie = 
    name + '=' + escape(value) +
    ( (expires) ? ';expires=' + expires.toGMTString() : '') +
    ( (path) ? ';path=' + path : '') + 
    ( (domain) ? ';domain=' + domain : '') +
    ( (secure) ? ';secure' : '');
}

function DeleteCookie(name,path,domain) {
  if (GetCookie(name))
    document.cookie =
      name + '=' +
      ( (path) ? ';path=' + path : '') +
      ( (domain) ? ';domain=' + domain : '') +
      ';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}

