// Thanks be to: http://www.dustindiaz.com/rock-solid-addevent/
function addEvent( obj, type, fn ) {
        if (obj.addEventListener) {
                obj.addEventListener( type, fn, false );
                EventCache.add(obj, type, fn);
        }
        else if (obj.attachEvent) {
                obj["e"+type+fn] = fn;
                obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
                obj.attachEvent( "on"+type, obj[type+fn] );
                EventCache.add(obj, type, fn);
        }
        else {
                obj["on"+type] = obj["e"+type+fn];
        }
}

var EventCache = function(){
        var listEvents = [];
        return {
                listEvents : listEvents,
                add : function(node, sEventName, fHandler){
                        listEvents.push(arguments);
                },
                flush : function(){
                        var i, item;
                        for(i = listEvents.length - 1; i >= 0; i = i - 1){
                                item = listEvents[i];
                                if(item[0].removeEventListener){
                                        item[0].removeEventListener(item[1], item[2], item[3]);
                                };
                                if(item[1].substring(0, 2) != "on"){
                                        item[1] = "on" + item[1];
                                };
                                if(item[0].detachEvent){
                                        item[0].detachEvent(item[1], item[2]);
                                };
                                item[0][item[1]] = null;
                        };
                }
        };
}();

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function hideDiv(d) {
    document.getElementById(d).style.display = "none"; 
}

function displayDiv(d) { 
    document.getElementById(d).style.display = "block";
}

window.onload = function(){
    /*
    * Navigation stuff
    */
    var navs = getElementsByClass('nav');
    try {
        var selecteddescriptionid = getElementsByClass('des-selected')[0].id;
    }
    catch (e){
        // Nothing selected
    }
    for (var i = 0; i < navs.length; i++) {
        navs[i].onmouseover = function(){
            displayDiv('des'+this.id);
            if (selecteddescriptionid != undefined) {
                hideDiv(selecteddescriptionid);
            }
        }
        navs[i].onmouseout = function(){
            hideDiv('des'+this.id);
            if (selecteddescriptionid != undefined) {
                displayDiv(selecteddescriptionid);
            }
        }
    }
    
    /*
    * Code for making text boxes autoselect on click
    */
    var autos = getElementsByClass("autoselect");
    for (var i = 0; i < autos.length; i++) {
        autos[i].onclick = function(){
            this.select();
        }
    }
}









