﻿function TabControl(id)
{
    var This=this;
    this.id=id;
    this.element=document.getElementById(id);
    this.items=[];
    this.allHidden=false;
    this.titlePanelClassName="";//标题面板 Class Name
    this.titleButtonClassName="";//标题按钮 Class Name
    this.activatedTitleButtonClassName=""//活动页的标题按钮 ClassName
    this.lastPageTitleButtonClassName="";//最后一页标题按钮 Class Name
    this.lastPageActivatedTitleButtonClassName="";//最后一页活动页的标题按钮 Class Name
    this.pageClassName="";//页 Class Name
    this.tabClickHandler=null;
    
    this.show=function(tabPage)
    {
        for(var i=0;i<This.items.length;i++)
        {
            if(This.items[i].id!=tabPage.id)
            {
                This.items[i].hidden();
            }
            else
            {
                This.items[i].show();
            }
        }
    }
    
    //初化化
    this.init=function()
    {
        //读取加载页
        var divs=This.element.getElementsByTagName("DIV");
        var tabPages=[];
        for(var i=0;i<divs.length;i++)
        {
            if(divs[i].parentNode==This.element)
                tabPages[tabPages.length]=divs[i];
        }

        for (var i = 0; i<tabPages.length; i++) {
            var tabPage = tabPages[i];
            
            This.items[This.items.length]=tabPage;
            
            if(!tabPage.className)
            {
                tabPage.className=This.pageClassName;
            }
            
            if(!tabPage.titleButtonClassName)
                tabPage.titleButtonClassName=tabPage.titlebuttonclassname;
            if(!tabPage.titleButtonClassName)
                tabPage.titleButtonClassName=tabPage.TitleButtonClassName;
                
            if(!tabPage.activatedTitleButtonClassName)
                tabPage.activatedTitleButtonClassName=tabPage.activatedTitleButtonClassName;
            if(!tabPage.activatedTitleButtonClassName)
                tabPage.activatedTitleButtonClassName=tabPage.ActivatedTitleButtonClassName;
 
 
            if(!tabPage.titleButtonClassName)
            {
                if(i<tabPages.length-1)
                    tabPage.titleButtonClassName=This.titleButtonClassName;
                else
                    tabPage.titleButtonClassName=This.lastPageTitleButtonClassName;
            }

            if(!tabPage.activatedTitleButtonClassName)
            {
                if(i<tabPages.length-1)
                    tabPage.activatedTitleButtonClassName=This.activatedTitleButtonClassName;
                else
                    tabPage.activatedTitleButtonClassName=This.lastPageActivatedTitleButtonClassName;
            }

            tabPage.isShow=function()
            {
                return this.style.display!="none";
            }
            
            tabPage.hidden=function()
            {
                this.style.display="none";
                this.titleButton.className=this.titleButtonClassName;
                if(This.allHidden)
                    this.titleButton.innerHTML=this.titletext+"▲";
                
            }
            tabPage.show=function()
            {
                this.style.display="";
                this.titleButton.className=this.activatedTitleButtonClassName;
                if(This.allHidden)
                    this.titleButton.innerHTML=this.titletext+"▼";   
            }
        }
    
        //初始化标题面板;
        var titlePanel=document.createElement("DIV");
        This.element.insertBefore(titlePanel,This.element.firstChild);
        titlePanel.className=This.titlePanelClassName;
        
        //初始化标题按钮
        for(var i=0;i<This.items.length;i++)
        {
            var div=document.createElement("DIV");
            titlePanel.appendChild(div);
            This.items[i].titleButton=div;
            
            div.index=i;
            div.innerHTML=This.items[i].titletext;
               
            div.onclick=function()
            {   
                if(This.tabClickHandler!=null)
                {
                    var bool1=eval(This.tabClickHandler+"(this);");
                    if(bool1)return;
                }
                if(This.allHidden&&This.items[this.index].isShow())
                {
                    This.items[this.index].hidden();
                }
                else
                {
                    This.show(This.items[this.index]);
                    
                }
            }
            
        }
        
        var clearDiv=document.createElement("DIV");
        titlePanel.appendChild(clearDiv);
        clearDiv.style.clear="both";
        
        //初始呈现状态
        for(var i=0;i<This.items.length;i++)
        {
            if(This.allHidden||(!This.allHidden&&i>0))
                This.items[i].hidden();
            else if(i==0)
                This.show(This.items[0]);
        }
    }
}

function CreateTabControl(id,allHidden,style)
{
    if(!allHidden)allHidden=false;
    if(!style)style="Default";
    
    var tabControl=new TabControl(id);
    tabControl.titlePanelClassName=style+"_TitlePanel";
    tabControl.titleButtonClassName=style+"_TitleButton";
    tabControl.activatedTitleButtonClassName=style+"_ActivatedTitleButton";
    tabControl.lastPageTitleButtonClassName=style+"_LastPageTitleButton";
    tabControl.lastPageActivatedTitleButtonClassName=style+"_LastPageActivatedTitleButton";
    tabControl.pageClassName=style+"_Page";
    tabControl.allHidden=allHidden;
    return tabControl;
}
