var bMenuIsDefined = 1;
var AnimatedMenu = StartMenu;
var useragent = navigator.userAgent;

function document_mouseover(e) 
{
	hideMenu();
//	doMouseOver(e);	// tooltip stuff...
}

function calcMenuPos (popupmenuid)
{
	// for tooltip collision avoidance...
//	setVisibility(getElement("tipBox"), false);

	var thisMenu = document.all(popupmenuid);

	if(useragent.indexOf("Mac") != -1) 
	{
		// for the Mac the menu sometimes flashes, so move it off screen fo that 
		// it is not visible when it flashes.  I tried moving the visibility to later
		// but this messed up the positioning.
		thisMenu.style.top = 100000 + "px";
		thisMenu.style.left = 100000 + "px";
		thisMenu.style.display = "";
	}
	else 
	{
		thisMenu.style.clip = "rect(0 0 0 0)";
		thisMenu.style.display = "block";
	}

	window.workingMenuID = popupmenuid;

//////////////



	ieVersion = -1;
	ieVersionPos = 5 + navigator.appVersion.indexOf("MSIE",0);
	if (ieVersionPos >= 0) 
		ieVersion = navigator.appVersion.substring(ieVersionPos,4+ieVersionPos).valueOf();

	colPos = ieVersion.indexOf(";");
	if (colPos > 0)
	{
		ieVersion = ieVersion.substring(0,colPos); 
	}

	if (ieVersion < 5)
	{
		thisMenu.hitX = window.event.x;
		thisMenu.hitY = window.event.y;
	}
	else
	{
		// in IE 5 coordinates are 
		if (ieVersion < 6)
		{
			thisMenu.hitX = window.event.x + document.body.scrollLeft;
			thisMenu.hitY = window.event.y + document.body.scrollTop;
		} else
		{
			thisMenu.hitX = window.event.x + document.documentElement.scrollLeft;
			thisMenu.hitY = window.event.y + document.documentElement.scrollTop;
		}
	}
	window.event.cancelBubble = true;
///////////////

	window.event.cancelBubble = true;
	
	delayedCalcMenuPos();	
	//window.setTimeout("delayedCalcMenuPos()",20);
}

function delayedCalcMenuPos()
{
	var thisMenu = document.all(window.workingMenuID);
	if (thisMenu == AnimatedMenu) 
		return false;
	menuheight = thisMenu.offsetHeight;
	menuwidth = thisMenu.offsetWidth;

/////////////////
	menuheight += 10;
	menuwidth += 10;
	
	// -------------added-------------

	//ieVersion = 6;

	if (ieVersion < 6)
	{
		if(useragent.indexOf("Mac") == -1) 
		{
			clientwidth = document.body.offsetWidth;
			clientheight = document.body.offsetHeight;
			scrolltop = document.body.scrollTop;
			scrollleft = document.body.scrollLeft;
		} else
		{
			clientwidth = document.body.clientWidth;
			clientheight = document.body.clientHeight - 10;
			scrolltop = document.body.scrollTop;
			scrollleft = document.body.scrollLeft;
		}

	} else
	{
		//New
		clientwidth = document.documentElement.offsetWidth;
		clientheight = document.documentElement.offsetHeight;
	
		//Not valid for HTML
		//scrolltop = document.documentElement.scrollTop;
		//scrollleft = document.documentElement.scrollLeft;
	
		//For XHTML doctypes, document.document.Element.scroll[Top|Left] is not valid
		if ( document.compatMode.indexOf("CSS1Compat") != -1)
		{
			scrolltop = document.documentElement.scrollTop;
			scrollleft = document.documentElement.scrollLeft;
		} else
		{
			scrolltop = document.body.scrollTop;
			scrollleft = document.body.scrollLeft;
		}

	}



/*
	x = thisMenu.hitX;
	y = thisMenu.hitY;
	
	xdiff = clientwidth -  (x - scrollleft - 4) - menuwidth;
	if (xdiff < 0)
		thisMenu.style.left = (clientwidth + scrollleft - menuwidth - 4) + "px";
	else
		thisMenu.style.left = (x - 4) + "px";
		
	ydiff = clientheight - (y - scrolltop - 4) - menuheight;				
	if (ydiff < 0)
		thisMenu.style.top = (clientheight + scrolltop - menuheight - 4) + "px";
	else
		thisMenu.style.top = (y - 4) + "px";
*/
///////////////


	obj = window.event.srcElement.offsetParent;
	cnt = 1;
	offsetXSUM = 0;
	offsetYSUM = 0;
	while (obj.tagName != 'BODY' && obj.tagName != 'HTML')
	{
		offsetXSUM = offsetXSUM + obj.offsetLeft;
		offsetYSUM = offsetYSUM + obj.offsetTop;
		obj = obj.offsetParent;
		cnt = cnt + 1;
		if (cnt > 500)
			break; 
	}

	//x = offsetXSUM + window.event.srcElement.offsetLeft;
	//y = offsetYSUM + window.event.srcElement.offsetTop;
	x = window.event.clientX + scrollleft;
	y = window.event.clientY + scrolltop;
	//alert(window.event.clientX);

//alert(window.event.srcElement.offsetLeft);

	xdiff = clientwidth -  (x - scrollleft - 4) - menuwidth;
	ydiff = clientheight -  (y - scrolltop) - menuheight;

	if (xdiff < 0)
	{
		x = x + xdiff;
		if (x < scrollleft)
		{
			x = scrollleft;
		}		
	}

	if (ydiff < 0)
	{
		y = y + ydiff;
		if (y < scrolltop)
		{
			y = scrolltop;
		}

	}

	thisMenu.style.left = (x - 4) + "px";
	thisMenu.style.top = (y - 4) + "px";

	if (AnimatedMenu != null) 
		AnimatedMenu.style.display = "none";


	AnimatedMenu = thisMenu;
	if(useragent.indexOf("Mac") == -1) 
	{
		nChunk = 25;
		window.setTimeout("showMenu()", 20);

		// hide all edit and list box controls when when pop the menu out
    // first find an inline stylesheet - IE5 on Mac has a problem with addRule() for linked stylesheet
    var i;  
    for (i = document.styleSheets.length - 1; i >= 0; i--) {
      if (!document.styleSheets[i].href) break;
    }
    
		document.styleSheets[i].addRule(".cpHideForMenus", "visibility:hidden");
	}
}

function showMenu() 
{
//	window.status="t="+nChunk+" window size=(w "+AnimatedMenu.offsetWidth+",h "+AnimatedMenu.offsetHeight+")"
	if (nChunk > 100)
		nChunk = 100;

	AnimatedMenu.style.clip = "rect(0 "+ nChunk + "% " + nChunk + "% 0)"
	nChunk +=25
	nChunk<=100 ? window.setTimeout("showMenu()",20) : null;
}

function keepMenu()
{
	window.event.cancelBubble = true;
}

function hideMenu()
{
	if (AnimatedMenu.style.display != 'none')
	{
		AnimatedMenu.style.display = "none";
		AnimatedMenu = StartMenu;
		
		// hide all edit and list box controls when when pop the menu out
    // first find an inline stylesheet - IE5 on Mac has a problem with addRule() for linked stylesheet
    var i;  
    for (i = document.styleSheets.length - 1; i >= 0; i--) {
      if (!document.styleSheets[i].href) break;
    }
    
		document.styleSheets[i].addRule(".cpHideForMenus", "visibility:visible");
	}
	window.event.cancelBubble = true;
}

function RevertItem(loader,pgid,srcPage,ctrlid,itemid)
{
	params = "&srcpage="+srcPage+"&pageid="+pgid+"&controlid="+ctrlid;
	if (itemid != '')
		params = params + "&itemid="+itemid;
	newWindow('revertItem', loader + "?url=/commonspot/versionhistory/revert-item.cfm"+params);
}

function RevertCell(loader,pgid,srcPage,ctrlid,cellid)
{
	params = "&srcpage="+srcPage+"&pageid="+pgid+"&controlid="+ctrlid+"&cellid="+cellid;
	newWindow('revertCell', loader + "?url=/commonspot/versionhistory/revert-cell.cfm"+params);
}

function RevertLayout(loader,pgid,srcPage,ctrlid)
{
	params = "&srcpage="+srcPage+"&pageid="+pgid+"&controlid="+ctrlid;
	newWindow('revertCell', loader + "?url=/commonspot/controls/layout/revert-layout.cfm"+params);
}


