function reloadPage() {
    window.location = window.location;
}

function getMousePos(e) {
    var posX = 0;
    var posY = 0;
    if (e.pageX || e.pageY) {
        posX = e.pageX;
        posY = e.pageY;
    } else if (e.clientX || e.clientY) {
        posX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
        posY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    }
    return {x:posX, y:posY};
}

function getStyle(element, styleProp) {
	var style;
	if (element.currentStyle) {
        style = element.currentStyle[styleProp];
    } else if (window.getComputedStyle) {
		style = document.defaultView.getComputedStyle(element, null).getPropertyValue(styleProp);
    }
	return style;
}

function toggleLearnMore(e, text) {
    var popup = document.getElementById("lmpop");
    if (popup.style.display == "block") {
        popup.style.display = "none";
    } else {
        var content = document.getElementById("lmtext");
        var arrow = document.getElementById("lmarrow");
        var mousePos = getMousePos(e);
        content.innerHTML = text;
        popup.style.display = "block";
        popup.style.left = mousePos.x + "px";
        popup.style.top = (mousePos.y - content.offsetHeight - arrow.offsetHeight) + "px";
    }
}

function switchMenu(obj) {
    var el = document.getElementById(obj);
    if ( el.style.display != "none" ) {
        el.style.display = 'none';
        el.parentNode.firstChild.className = 'plus';
    }
    else {
        el.style.display = '';
        el.parentNode.firstChild.className = 'minus';
    }
}

function $() {
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string')
            element = document.getElementById(element);
        if (arguments.length == 1)
            return element;
        elements.push(element);
    }
    return elements;
}

function collapseAll(objs) {
    var i;
    for (i=0;i<objs.length;i++ ) {
        objs[i].style.display = 'none';
    }
}

function addEventHandler(elm, evType, fn, useCapture) {
    if (elm.addEventListener) {
        elm.addEventListener(evType, fn, useCapture);
        return true;
    }
    else if (elm.attachEvent) {
        var r = elm.attachEvent('on' + evType, fn);
        return r;
    }
    else {
        elm['on' + evType] = fn;
    }
}
