/** C O N S T A N T S  **/

function getScrollXY() {
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return [ scrOfX, scrOfY ];
}

function getWindowSize() {
	var myWidth = 0, myHeight = 0;
	
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
	//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	
	return [myWidth,myHeight];
}

function getMousePosition(e)
{
	var returnArray = new Array(2);
	
	var mouseX = 0;
	var mouseY = 0;

	if (!e) var e = window.event;
	
	if (e.pageX || e.pageY)
	{
		mouseX = e.pageX;
		mouseY = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		mouseX = e.clientX + document.body.scrollLeft;
		mouseY = e.clientY + document.body.scrollTop;
	}
	
	return [mouseX, mouseY];
}


function numericPadSet(aTargetElement, aDisplayValue) {
	aTargetElement.value = aDisplayValue;
	
	if( aTargetElement.type == "hidden" ) {
		getElement(aTargetElement.id + "_display").innerHTML = aTargetElement.value;
	}
}


function numericPadCreate(aTargetElement, aMaxLength, aIsPassword) {

	function numericPadClose(aTargetElement, aNumericPad) {
		var aDisplayValue = aNumericPad.childNodes[0].innerHTML;

		aTargetElement.value = aDisplayValue;
		if( aTargetElement.type == "hidden" ) {
			getElement(aTargetElement.id + "_display").innerHTML = aTargetElement.value;
		}
		
		if(aNumericPad) {
			aNumericPad.parentNode.parentNode.parentNode.removeChild(aNumericPad.parentNode.parentNode);
		}
	}

	if(!aMaxLength) {
		aMaxLength = 0;
	}
	
	var fnNumericPad = document.createElement("div");
	fnNumericPad.className = "numeric_pad";
	
	var fnNumericPadDisplay = document.createElement("div");
	fnNumericPadDisplay.className = "numeric_pad_display";
	fnNumericPad.appendChild(fnNumericPadDisplay);
	
	for( var countN = 3; countN > 0; countN-- ) {
		for( var countM = 0; countM < 3; countM++ ) {
			var fnNumericPadNumber = new Image();		
			fnNumericPadNumber.currentNumber = parseInt(-2 + (3 * countN) + countM);
			fnNumericPadNumber.className = "numeric_pad_number";
			fnNumericPadNumber.src = "globalImages/numericPad/numeric_pad_" + fnNumericPadNumber.currentNumber + ".png";
			if(gHasRuntimeStyle) {
				fnNumericPadNumber.src = 'globalImages/transparent.gif';
				fnNumericPadNumber.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true src='globalImages/numericPad/numeric_pad_" + fnNumericPadNumber.currentNumber + ".png', sizingMethod='image')";
			}
			else {
				fnNumericPadNumber.src = "globalImages/numericPad/numeric_pad_" + fnNumericPadNumber.currentNumber + ".png";
			}		
			fnNumericPadNumber.border = 0;
			fnNumericPadNumber.width = 37;
			fnNumericPadNumber.height = 32;
			fnNumericPadNumber.onclick = function(){
				this.parentNode.childNodes[0].innerHTML += this.currentNumber;
				if( (aMaxLength > 0) && (this.parentNode.childNodes[0].innerHTML.length >= aMaxLength) ) {
					numericPadClose( aTargetElement, fnNumericPad );
				}
			}
			fnNumericPad.appendChild(fnNumericPadNumber);
		}
	}

	var fnNumericPadNumber = new Image();			
	fnNumericPadNumber.className = "numeric_pad_number";
	if(gHasRuntimeStyle) {
		fnNumericPadNumber.src = 'globalImages/transparent.gif';
		fnNumericPadNumber.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true src='globalImages/numericPad/numeric_pad_0.png', sizingMethod='image')";
	}
	else {
		fnNumericPadNumber.src = "globalImages/numericPad/numeric_pad_0.png";
	}		
	fnNumericPadNumber.border = 0;
	fnNumericPadNumber.width = 37;
	fnNumericPadNumber.height = 32;
	fnNumericPadNumber.onclick = function(){
		this.parentNode.childNodes[0].innerHTML += "0";
		if( (aMaxLength > 0) && (this.parentNode.childNodes[0].innerHTML.length >= aMaxLength) ) {
			numericPadClose( aTargetElement, fnNumericPad );
		}
	}
	fnNumericPad.appendChild(fnNumericPadNumber);

	var fnNumericPadNumber = new Image();			
	fnNumericPadNumber.className = "numeric_pad_number";
	if(gHasRuntimeStyle) {
		fnNumericPadNumber.src = 'globalImages/transparent.gif';
		fnNumericPadNumber.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true src='globalImages/numericPad/numeric_pad_c.png', sizingMethod='image')";
	}
	else {
		fnNumericPadNumber.src = "globalImages/numericPad/numeric_pad_c.png";
	}		
	fnNumericPadNumber.border = 0;
	fnNumericPadNumber.width = 37;
	fnNumericPadNumber.height = 32;
	fnNumericPadNumber.onclick = function(){ fnNumericPadNumber.parentNode.childNodes[0].innerHTML = ""; }
	fnNumericPad.appendChild(fnNumericPadNumber);

	var fnNumericPadNumber = new Image();			
	fnNumericPadNumber.className = "numeric_pad_number";
	if(gHasRuntimeStyle) {
		fnNumericPadNumber.src = 'globalImages/transparent.gif';
		fnNumericPadNumber.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true src='globalImages/numericPad/numeric_pad_e.png', sizingMethod='image')";
	}
	else {
		fnNumericPadNumber.src = "globalImages/numericPad/numeric_pad_e.png";
	}		
	fnNumericPadNumber.border = 0;
	fnNumericPadNumber.width = 37;
	fnNumericPadNumber.height = 32;
	fnNumericPadNumber.onclick = function(){ numericPadClose( aTargetElement, fnNumericPad ); }
	fnNumericPad.appendChild(fnNumericPadNumber);

	return fnNumericPad;
}