var mozilla=document.getElementById && !document.all
var ie=document.all;

function getElementClientHeight(objectToSelect) {
	return objectToSelect.offsetHeight;
}

function classExists(obj, name) {
	var re = new RegExp("\\b" + name + "\\b");
	if (obj && obj.className && re.exec(obj.className)) return true;
	
	return false;
}

Array.prototype.in_array = function(p_val) {
	for(var i = 0, l = this.length; i < l; i++) {
		if(this[i] == p_val) {
			return true;
		}
	}
	return false;
}

function getDocumentClientHeight(objectToSelect) {
	if (!objectToSelect) objectToSelect = document;
	return objectToSelect.compatMode == 'CSS1Compat' /*&& !window.opera*/ ? objectToSelect.documentElement.clientHeight : objectToSelect.body.clientHeight;
}

function getElementClientWidth(objectToSelect) {
	return objectToSelect.offsetWidth;
}

function getDocumentClientWidth(objectToSelect) {
	if (!objectToSelect) objectToSelect = document;
	return objectToSelect.compatMode == 'CSS1Compat' /*&& !window.opera*/ ? objectToSelect.documentElement.clientWidth : objectToSelect.body.clientWidth;
}

function getElementScrollTop(objectToSelect) {
	return objectToSelect.scrollTop;
}

function getDocumentScrollTop(objectToSelect) {
	if (!objectToSelect) objectToSelect = document;
	return objectToSelect.compatMode == 'CSS1Compat' /*&& !window.opera*/ ? objectToSelect.documentElement.scrollTop : objectToSelect.body.scrollTop;
}

function setDivSizes() {
	document.getElementById("GBscrollDiv").style.height=(getDocumentClientHeight()-getElementClientHeight(document.getElementById("topControlPanelDiv")))+"px";
}

function getClientWidth(d) {
	if (!d) d = document;
	return d.body.clientWidth;
}

function getClientHeight(d) {
	if (!d) d = document;
	return d.body.clientHeight;
}

function getScrollTop(d) {
	if (!d) d = document;
	return d.documentElement.scrollTop;
}

function getScrollLeft(d) {
	if (!d) d = document;
	return d.documentElement.scrollLeft;
}

function getScrollHeight(d) {
	if (!d) d = document;
	return d.body.scrollHeight;
}

function getOffsetHeight(d) {
	if (!d) d = document;
	return d.documentElement.scrollHeight;
}

function getOffsetWidth(d) {
	if (!d) d = document;
	return d.documentElement.scrollWidth;
}

if (ie) {
	document.attachEvent("onload", setDivSizes);
	document.attachEvent("onresize", setDivSizes);
}
if (mozilla) {
	window.addEventListener("onresize", setDivSizes, true);
	window.addEventListener("onload", setDivSizes, true);
}

function findPos(obj) {
	var curleft = curtop = 0;
	
	if (obj && obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}

	return [curleft,curtop];
}

function addOnloadListener(funcName) {
	var mozilla=document.getElementById && !document.all
	var ie=document.all;
	if (ie) {
		window.attachEvent("onload", funcName);
	}
	if (mozilla) {
		window.addEventListener("load", funcName, true);
	}
} 

function getIeVersion() {
	var version = 999; // we assume a sane browser
	if (navigator.appVersion.indexOf("MSIE") != -1)
	// bah, IE again, lets downgrade version number
	version = parseFloat(navigator.appVersion.split("MSIE")[1]);
	return version;
}

function goLocation(url) {
	location.href = url;
}

function locationReload() {
	location.href = location.href;
}
