function getElementsByClass(element,className) {
	var ret = new Array();
	if (element.className == className) {
	    ret[0] = element;
	}
	if (element.hasChildNodes()) {
	    var children = element.childNodes;
	    for (var i = 0; i < children.length; i++) {
		ch = getElementsByClass(children[i],className);
		ret = ret.concat(ch);
	    };
	}
	return ret;
}

function loadTab(name) {
    var base = window.document.getElementById("notebook")
    /* Show the correct area */
    var els = getElementsByClass(base,"tab_area_shown");
    for (var i = 0; i < els.length; i++) 
	els[i].className = "tab_area_hidden";
    var els = getElementsByClass(base,"tab_area_hidden");
    for (var i = 0; i < els.length; i++) {
	if (els[i].id == name) {
	    els[i].className = "tab_area_shown";
	    /* Remove the background image of parent */
	    els[i].parentNode.style.backgroundImage = "";
	}
    }

    /* Flip the tabs */
    /*  First, restore any selected tab */
    var els = getElementsByClass(base,"tab_sel");
    for (var i = 0; i < els.length; i++) 
	els[i].className = "tab";
    var els = getElementsByClass(base,"tab_pre_sel");
    for (var i = 0; i < els.length; i++) 
	els[i].className = "tab_pre";

    /*  Find the correct tab*/
    var els = getElementsByClass(base,"tab");
    var thetab = 0;
    for (var i = 0; i < els.length; i++) {
	if (els[i].tagName.toUpperCase() == "TD") {
	    els[i].style.borderTopStyle="solid";
	    if (els[i].id == name)
		thetab = els[i];
	}
    }

    var els = getElementsByClass(base,"tab_bottom");
    els[0].style.borderTopStyle="solid";

    if (!thetab) {
	alert("Error: Tab not found; couldn't activate");
	return;
    }
    thetab.className="tab_sel";
    thetab.previousSibling.className = "tab_pre_sel";
    
    thetab = thetab.parentNode;
    do {
	thetab = thetab.nextSibling;
    } while (!thetab.tagName || thetab.tagName.toUpperCase() != "TR")
    thetab = thetab.firstChild;
    thetab = thetab.nextSibling;
    thetab.style.borderTopStyle="none";
}

function initDoc() {
    var tabs = getElementsByClass(window.document,"tab");
    tabs = tabs.concat(getElementsByClass(window.document,"tab_sel"));
    tabs = tabs.concat(getElementsByClass(window.document,"tab_below_sel"));
    for (var i = 0; i < tabs.length; i++) {
	thel = tabs[i];
	if (thel.tagName.toUpperCase() != "TD") continue;
	lnk = document.createElement("a");
	lnk.setAttribute("href","javascript:loadTab(\""+thel.id+"\")");
	lnk.className="tab";
	thel.appendChild(lnk);
	lnk.appendChild(thel.firstChild);
    }
    //loadTab("metal");
}

window.onload = initDoc;
