// Global Varibles
thlib.widgets.tab = {};
thlib.widgets.tab.tabSets = {};

thlib.widgets.tab.tabSetBuilderClass = function(){
	thlib.addToInitList(this);

	this.init = function(){
		// find all the tabsets
		var eles = thlib.getElementsByClass("tabSet",null,"div");
		var elesLen = eles.length

		//
		for(var idx=0; idx<elesLen; idx++){
			var ele = eles[idx];
			
			// creat tab set
			var tabSet = new thlib.widgets.tab.tabSetClass()
			tabSet.init(ele)

			// tabSet to tab set collection
			thlib.widgets.tab.tabSets [tabSet.name] = tabSet;
		}
	}
}

//
//=============== Auto loader ====================
thlib.widgets.tab.tabSetBuilder = thlib.widgets.tab.tabSetBuilderClass();

thlib.widgets.tab.tabSetClass = function(ele){
	this.name = "";
	this.tabs = [];
	this.contentDiv = null;
	this.href = "";
	this.ActiveClassName = "active";

	this.init = function(ele){
		this.name = ele.id;
		var ul = ele.getElementsByTagName("ul")[0];
		var liEles = ul.getElementsByTagName("li");
		this.contentDiv = thlib.getElementsByClass("tabContent",ele,"div")[0];

		for(var i=0; i<liEles.length; i++){
			var li = liEles[i];
			this.addTab(li)
		}
	}

	this.addTab = function(liEle){
		var tab = new thlib.widgets.tab.tabClass(liEle)
		tab.parent = this;
		tab.index = this.tabs.length;
		if(thlib.queryParms[this.name] == undefined)
			thlib.queryParms[this.name] = 0

		if(thlib.queryParms[this.name] == tab.index) 
			tab.click();

		this.tabs.push(tab);
	}

	this.clearAcrive = function(){
		for(var i=0; i<this.tabs.length; i++)
			this.tabs[i].clear();
	}
}

thlib.widgets.tab.tabClass = function(liEle){
	this.ele = liEle;
	this.parent = null;
	var aList = liEle.getElementsByTagName("a")
	this.a = aList[0];
	this.index = 0;
	this.href = this.a.href;
	this.a.href = "javascript:;";

	thlib.addEventHandler(this.a, "click", "click", this);

	this.click = function (){
		//location.search = "?" + this.parent.name + "=" + this.index.toString();

		var jsPrefix = "javascript:";
		var command;
		if(this.href.substring(0, jsPrefix.length) == jsPrefix){
			command = this.href.substring(jsPrefix.length);
			eval(command);
		}else{
			this.parent.contentDiv.innerHTML = thlib.getURL(this.href);
		}
		
		this.parent.clearAcrive();
		this.setActive();
		return true;
	}

	this.setActive = function (){
		this.a.className = this.parent.ActiveClassName;
	}
	
	this.clear = function (){
		this.a.className = "";
	}
}