function showTab(tabContainer, e, pane) {
    var container = document.getElementById(tabContainer);

    resetTabs(container);

    // Set Active Tab 
    if(e != null && e != undefined && e.parentNode.nodeName == 'LI') {
        e.parentNode.className = "active";
    }
    
    // Set Active Pane
    document.getElementById(pane).style.display = "block";
}

function resetTabs(e) {
	var tabs = getElementsByClassName(e, "tab");
	for(var i=0,tab;tab=tabs[i];i++) {
		tab.style.display = "none";
	}
	
	var items = e.getElementsByTagName("LI");
	for(var i=0,nav;nav=items[i];i++) {
	    nav.className = "";
    }
}

function getElementsByClassName(e, clsName) {
    var retVal = new Array();
    var elements = e.getElementsByTagName("*");
    
    for(var i=0;i<elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0) {
            var classes = elements[i].className.split(" ");
            
            for(var j=0;j<classes.length;j++) {
                if(classes[j] == clsName) {
                    retVal.push(elements[i]);
                }
            }
        } else if(elements[i].className == clsName) {
            retVal.push(elements[i]);
        }
    }
    
    return retVal;
}

function initTab() {
    var index = document.URL.indexOf("#");
    
    if(index != -1) {
        var elementId = document.URL.substring(index + 1);
        
        var e = document.getElementById(elementId);
        var parent = e.parentNode;
        
        while(parent.className != "tab-container" && parent.nodeName == "DIV") {
            parent = parent.parentNode;
        }
        
        showTab(parent.id, e, elementId);
    }
}

addEvent = function(obj, evType, fn, useCapture) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, useCapture);
    	return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	}
}

addEvent(window, "load", initTab);