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;
}