﻿// Author: Scott Wespi (scott@darkstardesign.com) - Tab switching script
function TabMenu(menuid, tabsid) {
    this.menuLinks = new Array();
    tmp = document.getElementById(menuid).firstChild.firstChild.getElementsByTagName('td');
    for (var i=0, j=tmp.length; i<j; i++) {
        if (tmp[i].className == 'tab_link') {
            // "link" links (not actually tabs - just links)    
            tmp[i].onmouseover = function () {
                if (this.className == 'tab_link') {
		            this.className = 'tab_hover';
	           }
            };
            tmp[i].onmouseout = function () {
	            if (this.className == 'tab_hover') {
	                this.className = 'tab_link';
	            }
            };
        } else {    
            // standard tabs
            this.menuLinks.push(tmp[i]);
        }
    }
    this.cur = 0;
    this.tabs = new Tabs(tabsid);
    this.tabs.init();
}        

TabMenu.prototype.init = function () {
    var main = this;
    var p = 1;
    for (var i=0, j=this.menuLinks.length; i<j; i++) {
        AttachShow(i,main);
    }
    main.menuLinks[main.cur].className = 'tab_cur';
};       

function AttachShow(i, main) {
    // need this extra function because if we put this in the loop, the last value of i would be
    // used for every menu link.
    main.menuLinks[i].onclick = function () {
	   main.menuLinks[main.cur].className = 'tab_non';
       main.tabs.childTabs[i].show();
	   main.menuLinks[i].className = 'tab_cur';
	   main.cur = i;
    };
    main.menuLinks[i].onmouseover = function () {
        if (main.menuLinks[i].className == 'tab_non') {
		    main.menuLinks[i].className = 'tab_hover';
	   }
    };
    main.menuLinks[i].onmouseout = function () {
	    if (main.menuLinks[i].className == 'tab_hover') {
	        main.menuLinks[i].className = 'tab_non';
	    }
    };
}

function Tabs(tabid) {
	ttabs = document.getElementById(tabid).childNodes;
		
    Tabs.prototype.childTabs = new Array(ttabs.length);
	
	for (var i=0, j=ttabs.length; i<j; i++) {
		Tabs.prototype.childTabs[i] = new Tab(ttabs[i]);
	}    	
}

function Tab(content) {
	this.tab = content;
}

Tabs.prototype.init = function() {   
    var vtab; 	    
	
    for (var i=0, j=this.childTabs.length; i<j; i++){
        this.childTabs[i].hide = function () {
			this.tab.className = 'hidden';
		};
        this.childTabs[i].show = function () {
          vtab.hide();
          this.tab.className = '';
		    vtab = this;        
        };
		this.childTabs[i].hide();
    }    
    vtab = this.childTabs[0];
    vtab.show();
};


