function getInnerHeight(){
	if(self.innerHeight){								// all except Explorer
		return self.innerHeight;
	}
	else if(document.documentElement && document.documentElement.clientHeight){	// Explorer 6 Strict Mode
		return document.documentElement.clientHeight;
	}
	else if(document.body){								// other Explorers
		return document.body.clientHeight;
	}
}
function getInnerWidth(){
	if(self.innerHeight){								// all except Explorer
		return self.innerWidth;
	}
	else if(document.documentElement && document.documentElement.clientHeight){	// Explorer 6 Strict Mode
		return document.documentElement.clientWidth;
	}
	else if(document.body){								// other Explorers
		return document.body.clientWidth;
	}
}
function getScrollTop(){
	if(self.pageYOffset){								// all except Explorer
		return self.pageYOffset;
	}
	else if(document.documentElement && document.documentElement.scrollTop){	// Explorer 6 Strict
		return document.documentElement.scrollTop;
	}
	else if(document.body){								// all other Explorers
		return document.body.scrollTop;
	}
}
function getElementScrollTop(element){
	var curtop=0;
	if(!document.all){								// all except Explorer
		if(element.parentNode){
			curtop=element.scrollTop;
			while(element=element.parentNode){
				if(element.scrollTop!=undefined){
					curtop+=element.scrollTop;
				}
			}
		}
	}else{										// explorer
		if(element.offsetParent){
			curtop=element.scrollTop;
			while(element=element.offsetParent){
				curtop+=element.scrollTop;
			}
		}
	}
	return curtop;
}
function getScrollLeft(){
	if(self.pageYOffset){								// all except Explorer
		return self.pageXOffset;
	}
	else if(document.documentElement && document.documentElement.scrollTop){	// Explorer 6 Strict
		return document.documentElement.scrollLeft;
	}
	else if(document.body){								// all other Explorers
		return document.body.scrollLeft;
	}
}
function getPageHeight(){
	var test1 = document.body.scrollHeight;
	var test2 = document.body.offsetHeight
	if(test1>test2){								// all but Explorer Mac
		return document.body.scrollHeight;
	}
	else{										// Explorer Mac. Would also work in Explorer 6 Strict, Mozilla and Safari
		return document.body.offsetHeight;
	}
}
function getPageWidth(){
	var test1 = document.body.scrollHeight;
	var test2 = document.body.offsetHeight
	if(test1>test2){								// all but Explorer Mac
		return document.body.scrollWidth;
	}
	else{										// Explorer Mac. Would also work in Explorer 6 Strict, Mozilla and Safari
		return document.body.offsetWidth;
	}
}
function getElementLeft(element){
	var curleft=0;
	if(!document.all){								// all except Explorer
		if(element.offsetParent){
			curleft=element.offsetLeft;
			while(element=element.offsetParent){
				if(element.offsetLeft!=undefined){
					curleft+=element.offsetLeft;
				}
			}
		}
	}else{										// explorer
		if(element.offsetParent){
			curleft=element.offsetLeft;
			while(element=element.offsetParent){
				curleft+=element.offsetLeft;
			}
		}
	}
	return curleft;
}
function getElementTop(element){
	var curtop=0;
	if(!document.all){								// all except Explorer
		if(element.offsetParent){
			curtop=element.offsetTop;
			while(element=element.offsetParent){
				if(element.offsetTop!=undefined){
					curtop+=element.offsetTop;
				}
			}
		}
	}else{										// explorer
		if(element.offsetParent){
			curtop=element.offsetTop;
			while(element=element.offsetParent){
				curtop+=element.offsetTop;
			}
		}
	}
	return curtop;
}
function getMouseX(e){
	var ev=(!e)?window.event:e;
	if(ev.pageX){return ev.pageX;}
	else if(ev.clientX){return ev.clientX;}
	else{return 0}
}
function getMouseY(e){
	var ev=(!e)?window.event:e;
	if(ev.pageY){return ev.pageY;}
	else if(ev.clientY){return ev.clientY;}
	else{return 0}
}