
var UCSPersist = Array();
function UCS(element,argument) {
//alert(element);
	if((argument=="SYSTEM")||(argument=="PAGE")||(argument=="BROWSER")||(argument=="SCROLL")) {
		document.onmousemove = getMouseXY;
		element["PAGE"]		= ((argument=="SYSTEM")||(argument=="PAGE"))?		pageSize():element["PAGE"];
		element["BROWSER"]	= ((argument=="SYSTEM")||(argument=="BROWSER"))?	browserSize():element["BROWSER"];
		element["SCROLL"]	= ((argument=="SYSTEM")||(argument=="SCROLL"))?	pageDisplacement():element["SCROLL"];
		element.MOUSE = Array();
		element["MOUSE"]["Tx"]	= ((argument=="SYSTEM")||(argument=="PAGE"))?	UCSPersist.x:element["MOUSE"];
		element["MOUSE"]["Ty"]	= ((argument=="SYSTEM")||(argument=="PAGE"))?	UCSPersist.y:element["MOUSE"];
		if((typeof(UCSPersist)!="undefined")&&(typeof(element["BROWSER"]["width"])!="undefined")&&(typeof(pageWidth)!="undefined")) {
			UCSPersist.offsetX = (element["BROWSER"]["width"] - pageWidth)/2;
		}
		element["MOUSE"]["x"]	= ((argument=="SYSTEM")||(argument=="PAGE"))?	(UCSPersist.x - UCSPersist.offsetX):element["MOUSE"];
		element["MOUSE"]["y"]	= ((argument=="SYSTEM")||(argument=="PAGE"))?	UCSPersist.y:element["MOUSE"];
		element["MOUSE"]["Rx"]=((argument=="SYSTEM")||(argument=="SCROLL"))? element["MOUSE"]["x"] - element["SCROLL"]["x"]:element["MOUSE"]["x"];
		element["MOUSE"]["Ry"]=((argument=="SYSTEM")||(argument=="SCROLL"))? element["MOUSE"]["y"] - element["SCROLL"]["y"]:element["MOUSE"]["y"];
		return element;
	}
	else if((argument=="PROPERTIES")||(argument=="POSITION")||(argument=="OFFSET")) {
		var retvar = Array();
		retvar["POSITION"] = Array();
		retvar["OFFSET"] = Array();
		retvar["POSITION"]["x"]	=	(((argument=="PROPERTIES")||(argument=="POSITION")||(argument=="OFFSET"))&&(typeof(element)!=="undefined"))?	absoluteXCoord(element):0;
		retvar["POSITION"]["w"]	=	(((argument=="PROPERTIES")||(argument=="POSITION")||(argument=="OFFSET"))&&(typeof(element)!=="undefined"))?	element.offsetWidth:0;
		retvar["OFFSET"]["x"]	=	(((argument=="PROPERTIES")||(argument=="OFFSET"))&&(typeof(element)!=="undefined"))?	retvar["POSITION"]["x"] + retvar["POSITION"]["w"]:0;
		retvar["POSITION"]["y"]	=	(((argument=="PROPERTIES")||(argument=="POSITION")||(argument=="OFFSET"))&&(typeof(element)!=="undefined"))?	absoluteYCoord(element):0;
		retvar["POSITION"]["h"]	=	(((argument=="PROPERTIES")||(argument=="POSITION")||(argument=="OFFSET"))&&(typeof(element)!=="undefined"))?	element.offsetHeight:0;
		retvar["OFFSET"]["y"]	=	(((argument=="PROPERTIES")||(argument=="OFFSET"))&&(typeof(element)!=="undefined"))?	retvar["POSITION"]["y"] + retvar["POSITION"]["h"]:0;
		return retvar;
	}
//SYSTEM - element = input/output object
//MOUSE	-element = input/output object
//OBJECT -element = object to query

	function browserSize() {
		var x,y;
		if (self.innerHeight) {
			x = self.innerWidth;
			y = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight) {
			x = document.documentElement.clientWidth;
			y = document.documentElement.clientHeight;
		}
		else if (document.body) {
			x = document.body.clientWidth;
			y = document.body.clientHeight;
		}
		return {"width" : x, "height" : y};
	}

	function pageDisplacement() {
		var x,y;
		if (self.pageYOffset) {
			x = self.pageXOffset;
			y = self.pageYOffset;
		}
		else if (document.documentElement && document.documentElement.scrollTop) {
			x = document.documentElement.scrollLeft;
			y = document.documentElement.scrollTop;
		}
		else if (document.body) {
			x = document.body.scrollLeft;
			y = document.body.scrollTop;
		}
		return {"x" : x, "y" : y};
	}

	function pageSize() {
		var x,y;
		var test1 = document.body.scrollHeight;
		var test2 = document.body.offsetHeight;
		var test3 = document.documentElement.scrollHeight;
		if (test1 > test2) {
			if (test1 > test3) {
				y = document.body.scrollHeight;
			}
			else {
				y = document.documentElement.scrollHeight;
			}
		}
		else if (test1 < test2) {	
			if (test2 > test3) {
				y = document.body.offsetHeight;
			}
			else {
				y = document.documentElement.scrollHeight;
			}
		}
		else {
			if(test1 < test3) {
				y = document.documentElement.scrollHeight;
			}
			else {
				y = document.body.scrollHeight;
			}
		}
		var test1 = document.body.scrollWidth;
		var test2 = document.body.offsetWidth;
		var test3 = document.documentElement.scrollWidth;
		if (test1 > test2) {
			if (test1 > test3) {
				x = document.body.scrollWidth;	
			}
			else {
				x = document.documentElement.scrollWidth;
			}
		}
		else if (test1 < test2) {	
			if (test2 > test3) {
				x = document.body.offsetWidth;
			}
			else {
				x = document.documentElement.scrollWidth;
			}
		}
		else {
			if(test1 < test3) {
				x = document.documentElement.scrollWidth;
			}
			else {
				x = document.body.scrollWidth;	
			}
		}
		return {"width" : x, "height" : y};
	}

	function absoluteXCoord(el) {
		if($(el)) {
			var xHome = $(el).offsetLeft; 
			var tempEl= $(el).offsetParent; 
		}
		else {
			var xHome = el.offsetLeft; 
			var tempEl= el.offsetParent; 
		}
		while (tempEl.id != null) { 
			if(typeof(tempEl)!="undefined") {
				if((typeof(tempEl.id)!="undefined")&&(tempEl.id=="active_layout")) break;
				if(typeof(tempEl.offsetLeft)!="undefined") xHome += tempEl.offsetLeft; 
				if((typeof(tempEl.offsetParent)!="undefined")&&(tempEl.offsetParent!=null)) tempEl = tempEl.offsetParent;
				else break;
			}
			else break;
		}
	    return xHome; 
	}

	function absoluteYCoord(el) {
		if($(el)) {
			var yHome = $(el).offsetTop; 
			var tempEl= $(el).offsetParent; 
		}
		else {
			var yHome = el.offsetTop; 
			var tempEl= el.offsetParent; 
		}
		while (tempEl.id != null) { 
			if(typeof(tempEl)!="undefined") {
				if((typeof(tempEl.id)!="undefined")&&(tempEl.id=="active_layout")) break;
				if(typeof(tempEl.offsetLeft)!="undefined") yHome += tempEl.offsetTop; 
				if((typeof(tempEl.offsetParent)!="undefined")&&(tempEl.offsetParent!=null)) tempEl = tempEl.offsetParent;
				else break;
			}
			else break;
		}
	    return yHome; 
	}

}

	function getMouseXY(hEvent) {
		 hEvent = hEvent || window.event;
		var tempXY = Array();
		if (hEvent.pageX || hEvent.pageY) 	{
			var x = hEvent.pageX;
			var y = hEvent.pageY;
		}
		else if (hEvent.clientX || hEvent.clientY) 	{
			var x = hEvent.clientX + document.body.scrollLeft
				+ document.documentElement.scrollLeft;
			var y = hEvent.clientY + document.body.scrollTop
				+ document.documentElement.scrollTop;
			//alert("CL"+hEvent.clientX)
		}
		if (tempXY["Rx"] < 0){tempXY["Rx"] = 0;}
		if (tempXY["Ry"] < 0){tempXY["Ry"] = 0;}  
		UCSPersist.x = x;
		UCSPersist.y = y;
		if($('SysMouseTrackX')) $('SysMouseTrackX').value= (UCSPersist.offsetX)?Math.floor(UCSPersist.x - UCSPersist.offsetX - 200):x;
		if($('SysMouseTrackY')) $('SysMouseTrackY').value=y-40;
	//	return false;
	}
