// Client-side Javascript used for dragging edit console and opening  
// and closing menus. Should be placed in external .js file for easier 
// code maintenance and enhanced performance  

var dragOn=0 
var dragDiv=null; 
var dragX=0,dragY=0; 
var zMax=0; 
var dragInit=0; 

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
window.onscroll = scrollf;
function scrollf(e)
{
	if(!dragOn)
	{
		var oConsole = document.all.editConsole;

		if(oConsole == undefined)
			return;

		//oConsole.style.left = Number(window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft) + Number(GetCookie("consoleX"));
		//oConsole.style.top = Number(window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop) + Number(GetCookie("consoleY"));

		var consX = Number(GetCookie("consoleX"));
		var consY = Number(GetCookie("consoleY"));
		
		if ((consX + oConsole.clientWidth + 50) > document.body.clientWidth)
		  consX = document.body.clientWidth - oConsole.clientWidth - 50;
		if ((consY + oConsole.clientHeight + 50) > document.body.clientHeight)
		  consY = document.body.clientHeight - oConsole.clientHeight - 50;

		//oConsole.style.left = Number(window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft) + consX;
		//oConsole.style.top = Number(window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop) + consY;
	}
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

function GetCookie(name)
{
	var search = name + "="
	var val = "";
	
	if (document.cookie.length > 0) 
	{
		offset = document.cookie.indexOf(search)
	
		if (offset != -1)
		{ 
			offset += search.length
			end = document.cookie.indexOf(";", offset);
	
			if (end == -1)
				end = document.cookie.length;
			val = unescape(document.cookie.substring(offset, end))
		}
	}
	return val;
}

function SetCookie(name, val)
{
	document.cookie = name + "=" + escape(val.replace(/\D/gi, "")) + "; path=/";
}


function PositionConsole()
{

	var oConsole = document.all.editConsole;
	
	if(oConsole == undefined)
		return;

	if (GetCookie("consoleX") != "")
		oConsole.style.left = GetCookie("consoleX");
	else
		oConsole.style.left = document.body.clientWidth - oConsole.clientWidth - 50;
	SetCookie("consoleX", oConsole.style.left);

	if (GetCookie("consoleY") != "")
		oConsole.style.top = GetCookie("consoleY");
	else
		oConsole.style.top = 20;
	SetCookie("consoleY", oConsole.style.top);

}


function initDrag() { 

      if (document.layers)  
         document.captureEvents(Event.MOUSEMOVE|Event.MOUSEDOWN|Event.MOUSEUP); 
      document.onmousemove=dragf; 
      document.onmousedown=dragf; 
      document.onmouseup=dragf;
      dragDiv=null; 
      dragInit=1; 
      if (document.getElementsByTagName)  
         zMax=document.getElementsByTagName("DIV").length; 
      else if (document.all) zMax=document.body.all.tags("DIV").length; 
      else if (document.layers) zMax=document.layers.length; 

} 

function dragf(arg) { 

  ev=arg?arg:event; 
  if (dragDiv && ev.type=="mousedown") { 
    dragOn=1; 
    dragX=(ev.pageX?ev.pageX:ev.clientX)-parseInt(dragDiv.style.left); 
    dragY=(ev.pageY?ev.pageY:ev.clientY)-parseInt(dragDiv.style.top); 
    dragDiv.style.zIndex=zMax++; // remove this line to preserve z-indexes 
    return false; 
  } 
  if (ev.type=="mouseup")
  { 
    dragOn=0;
    if(dragDiv){
		  SetCookie("consoleY", dragDiv.style.top);  
		  SetCookie("consoleX", dragDiv.style.left);
	  }
  } 
  if (dragDiv && ev.type=="mousemove" && dragOn) { 
    dragDiv.style.left=(ev.pageX?ev.pageX:ev.clientX)-dragX; 
    dragDiv.style.top=(ev.pageY?ev.pageY:ev.clientY)-dragY;

    return false; 
  } 
  if (ev.type=="mouseout") { 
    if (!dragOn) dragDiv=null; 
  } 
 
} 

function drag(div) { 

      if (!dragInit) initDrag(); 
      if (!dragOn) { 
            dragDiv=document.getElementById?document.getElementById(div):  
            document.all?document.all[div]:document.layers?document.layers[div]:null; 
            if (document.layers) dragDiv.style=dragDiv; 
            dragDiv.onmouseout=dragf; 
      } 

} 

function OpenCloseDiv(divName){

      divName.filters[0].Apply();
      if (divName.style.visibility == "hidden") { 
            divName.style.visibility = "visible"; 
            divName.filters.revealTrans.transition=5;
      } 
      else { 
            divName.style.visibility = "hidden"; 
            divName.filters.revealTrans.transition=4;         
      } 
      divName.filters[0].Play();

} 

