function e(id){return document.getElementById(id);}function getWindowHeight(){ var a=0;if(typeof window.innerHeight=="number")	a = window.innerHeight; else if(document.documentElement && document.documentElement.clientHeight) a = document.documentElement.clientHeight; else if(document.body && document.body.clientHeight) a=document.body.clientHeight; if(!a || a<100) a=100; return a; } function getWindowWidth(){ var a=0;if(typeof window.innerWidth=="number") a=window.innerWidth;else if(document.documentElement&&document.documentElement.clientWidth) a=document.documentElement.clientWidth;else if(document.body&&document.body.clientWidth) a=document.body.clientWidth;if(!a||a<100)a=100;return a;}
function numbersonly(myfield, evt, dec){var key;var keychar;if(window.event) key=window.event.keyCode;else if(evt) key=evt.which;else return true;keychar=String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )  return true;
// numbers
else if ((("0123456789").indexOf(keychar) > -1))    return true;
// decimal point jump
else if (dec && (keychar == ".")) { myfield.form.elements[dec].focus(); return false; } else return false;
}
function GetRequestObject(){
	var req = null;
	if (typeof XMLHttpRequest != "undefined")
		req = new XMLHttpRequest();
	if (!req && typeof ActiveXObject != "undefined"){
		try	{req=new ActiveXObject("Msxml2.XMLHTTP");}
		catch (e){	try	{req=new ActiveXObject("Microsoft.XMLHTTP");}
			catch (e2)	{try {req=new ActiveXObject("Msxml2.XMLHTTP.4.0");	}
			catch (e3)	{req=null;}
			}
		}
	}
	if(!req && window.createRequest) req = window.createRequest();
	if (!req) alert("Request Object instantiation failed!");
	return req;
}
function getElementPos(el){
	var eleft = etop = 0;
	if(el.offsetParent)	{
		do{
			eleft += el.offsetLeft;
			etop += el.offsetTop;
		}while(el=el.offsetParent);
	}
	return [eleft,etop];
}
function addEvent(obj, type, func, useCapture){
	if(window.addEventListener)
		obj.addEventListener(type, func, useCapture);
	else
		obj.attachEvent("on"+type, func);	
}
function removeEvent(obj, type, func, useCapture){
	if(window.removeEventListener)
		obj.removeEventListener(type, func, useCapture);
	else
		obj.detachEvent("on"+type, func);
}
function wheelHandler(event){
	var delta = 0;
	if (!event) /* For IE. */
	        event = window.event;
	if (event.wheelDelta) { /* IE/Opera. */
	        delta = event.wheelDelta/120;
	        /** In Opera 9, delta differs in sign as compared to IE. */
	        if (window.opera)
	                delta = -delta;
	} else if (event.detail) { /** Mozilla case. */
	        /** In Mozilla, sign of delta is different than in IE.
	         * Also, delta is multiple of 3.*/
	        delta = -event.detail/3;
	}
	/** If delta is nonzero, handle it.
	 * Basically, delta is now positive if wheel was scrolled up,
	 * and negative, if wheel was scrolled down. */
	if (delta)
	        handleWheel(delta, event.ctrlKey);
			
	/** Prevent default actions caused by mouse wheel.
	 * That might be ugly, but we handle scrolls somehow
	 * anyway, so don't bother here..*/
	if (event.preventDefault)
	        event.preventDefault();
	event.returnValue = false;	
}