//This file requires CQL.js: ~/CQLWebResource.axd?r=WWW.Resources.ClientIncludes.CQL.js
function turnon(div, offsetX, offsetY)
{
	var thediv = document.getElementById(div);

	// modified by celst 03.15.06
	// Simple follow the mouse script
	// copyright Stephen Chapman, 30th September 2005
	// you may copy this script provided that you retain the copyright notice
	// modified by chadg 2006-08-09
	// added javascript code to avoid collisions with window edges
	
	var offX = offsetX;         // X offset from mouse position
	var offY = offsetY;         // Y offset from mouse position
	
	// no changes required below this line
	function mouseX(evt)
	{
		if (!evt) evt = window.event;
		
		if (evt.pageX) return evt.pageX; 
		
		else if (evt.clientX) return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); 
	
		else return 0;
	} 
	
	function mouseY(evt) 
	{
		if (!evt) evt = window.event;
		
		if (evt.pageY) return evt.pageY;
	
		else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	
		else return 0;
	}
	
	
	function follow(evt)
	{
		if (document.getElementById)
		{
			var objdiv = document.getElementById(div);
			var obj = objdiv.style;
			
			var newLeft = (parseInt(mouseX(evt))+offX);
			var newTop = (parseInt(mouseY(evt))+offY);
			
			//this moves the location of the div if it runs into borders
			if (typeof(document.body.offsetWidth) != 'undefined')
			{
				//got help from http://www.howtocreate.co.uk/tutorials/javascript/browserwindow. strict mode
				var xOffset = window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft;
				var yOffset = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
				var docWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
				var docHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

				if (newLeft + objdiv.offsetWidth > docWidth + xOffset)
					newLeft = (parseInt(mouseX(evt))+-(offX+objdiv.offsetWidth));
			
				if (newTop + objdiv.offsetHeight > docHeight + yOffset)
					newTop = (parseInt(mouseY(evt))+-(offY+objdiv.offsetHeight));
				
				//toggle ddls for IE
				if (isIE() && CQL && CQL.CRect)
				{
					var divrect = new CQL.CRect(newLeft, newTop, newLeft + objdiv.offsetWidth, newTop + objdiv.offsetHeight);
					eSelects = document.getElementsByTagName("SELECT");
					for (var i=0; i < eSelects.length; i++) {
						var rec = new CQL.CRect(eSelects[i]);
					
						if (divrect.intersect(rec)) {
							eSelects[i].style.visibility = "hidden";
						} else {
							eSelects[i].style.visibility = "visible";
						}
					}
				}
			}
			
			obj.left = newLeft + 'px';
			obj.top = newTop + 'px';
		}
	} 
	
	document.onmousemove = follow;

	// change display css to block
	// put this at the end or PCI makes it appear early
	thediv.style.display="block";

}

function devNull() {
	return false;
}


function turnoff(div)
{
	var thediv = document.getElementById(div);
  
  document.onmousemove = devNull;
	// change display css to none
	thediv.style.display="none";

	if (isIE() && CQL)
		CQL.ToggleDDLsOverlappingDIV(div, true);
}

function popup(theurl,windowname,features)
{
window.open(theurl,windowname,features);
void 0;
}

/* Opens a new popup window */

var viewer;

function popWindow(w, h, url) {

	closeViewer();

	var options = "toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=" + w + ",height=" + h + ",left=200,top=25";

	viewer=window.open(url,"viewerwindow",options);

	viewer.focus();

}



/* Closes window on page unload */

function closeViewer(){

	if (viewer && !viewer.closed){

		viewer.close();

	}

}

function isIE()
{
	return (navigator && navigator.appVersion && navigator.appVersion.toLowerCase().indexOf("msie") > 0);
}
