/*
文件      TabControl类
目的：    产生TabControl对象
方法：    1. add(a_TN,a_PN,a_CS)
              参数说明：
              a_TN:页标id;a_PN:页内容,用","分开可多个id;a_CS:点击后的样式
          2. showAt([FirstShowId])
              参数说明：
              FirstShowId:确定第一个显示的页,默认第一个加入的页
          3. tabClick(TabName)
              参数说明：
              TabName:页的标志id或者定义页的返回变量 
**/

function TabControl(){
    var PageArr=new Array();
    var WhoShow="";
    var PageNo=0;
    var THEDOC=document;
    //Public method
    this.add=addPage;
    this.ramove=ramovePage;
    this.showAt=showPageAt;
    this.tabClick=tabClick;
    
    function addPage(a_TN,a_PN,a_CS){
        var a_OS=THEDOC.getElementById(a_TN).className;
        var p_tmp=new PageObj(a_TN,a_PN,a_OS,a_CS);
        PageArr.push(p_tmp);
        PageNo+=1;
        return a_TN;
    }
    
    function ramovePage(){}
    
    function showPageAt(tabID){
        var FirstShowObj;
        if(arguments.length==0){
        	FirstShowObj=THEDOC.getElementById(PageArr[0].TabName)
        }else{
        	FirstShowObj=THEDOC.getElementById(tabID);
       	};
        tabClick(FirstShowObj);
    }
    
    function tabClick(TabObj){
        var tabId=TabObj.id;
        if(tabId!=WhoShow){
            findArrId(tabId).goFront();
            if(WhoShow!="") findArrId(WhoShow).goBack();
            WhoShow=tabId;
        }
    }
    
    function findArrId(Pname){
        for(var i=0;i<PageArr.length;i++){
            if (Pname==PageArr[i].TabName) return PageArr[i];
        }
    }
}

function PageObj(TN,PN,OS,CS){
    this.TabName=TN
    var PageName=PN.split(",");
    var OldStyle=OS;
    var ClickStyle=CS;
    var State;
    var THEDOC=document;
    //Public method
    this.goFront=GoFront;
    this.goBack=GoBack;
	init();
    
	function init(){
		THEDOC.getElementById(TN).style.cursor="pointer";
		var sum=PageName.length;
		for(i=0;i<sum;i++){
			THEDOC.getElementById(PageName[i]).style.display="none";
			}
		}
    function GoFront(){
        var NewTab=THEDOC.createAttribute("class");
        NewTab.value=ClickStyle;
        THEDOC.getElementById(this.TabName).setAttributeNode(NewTab);
        for(i=0;i<PageName.length;i++)
        {
        	THEDOC.getElementById(PageName[i]).style.display="block";
        }
        State="front";
    };
    
    function GoBack(){
        var OldTab=THEDOC.createAttribute("class");
        OldTab.value=OldStyle;
        THEDOC.getElementById(this.TabName).setAttributeNode(OldTab);
        for(i=0;i<PageName.length;i++){
        	THEDOC.getElementById(PageName[i]).style.display="none";
        }
        State="back";
    }
}


