function CTabs(oHeaderCell, oBodyCell, sIFrameName)
{
    this.HeaderCell = oHeaderCell;
    this.HeaderCell.JSClass = this;
    this.BodyCell = oBodyCell;
    this.BodyCell.JSClass = this;
    this.TabsByName = new Array();
    this.TabsByNumber = new Array();
    this.IFrameName = sIFrameName;
    
    this.AddTab = _CTabs_Add_Tab; 
    this.SetActive = _CTabs_Set_Active;  
    this.Show = _CTabs_Show; 
}

function CTab(sCaption, sTableID, aEventHandlers, sHref, sIframeHref)
{        
    this.Caption = sCaption;
    this.TableID = sTableID;
    this.Active = false;        
    this.EventHandlers = aEventHandlers;
    this.Href = sHref;  
    this.IframeHref = sIframeHref;
}

function _CTabs_Add_Tab(sCaption, sTableID, aEventHandlers, sHref, sIframeHref)
{   
    var oTab = new CTab(sCaption, sTableID, aEventHandlers, sHref, sIframeHref);
    this.TabsByName[sCaption] = oTab;
    this.TabsByNumber[this.TabsByNumber.length] = sCaption;
}

function _CTabs_Set_Active(sCaption)
{   
    var s = "";    
    for(s in this.TabsByName)
    {
        if(this.TabsByName[s].Caption == sCaption)
        {   if (this.IFrameName == "")
            {
                if(this.TabsByName[s].Href && location.href.indexOf(this.TabsByName[s].Href, 0) == -1)
                { 
                    location.href = this.TabsByName[s].Href;            
                    return;                
                }
                else
                    this.TabsByName[s].Active = true;
            }    
            else
            {
                if(frames[this.IFrameName].location.href.indexOf(this.TabsByName[s].IframeHref, 0) == -1)                
                    frames[this.IFrameName].location.href = this.TabsByName[s].IframeHref;                
                    
                this.TabsByName[s].Active = true;                
            }
        }
        else
            this.TabsByName[s].Active = false;    
    }      
    this.Show();
}

function _CTabs_Show()
{   
    //debugger;
    var HeaderHTML = "";
    HeaderHTML += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>" 
    var i = 0;    
    for(i = 0; i < this.TabsByNumber.length; i++)
    {        
       /* if(i == 0)
        {*/
            HeaderHTML += "<td><img src=\"";            
            HeaderHTML += (this.TabsByName[this.TabsByNumber[i]].Active) ? "../i/Tabs/left_act_tab.gif" : "../i/Tabs/left_disact_tab.gif";
            HeaderHTML += "\"></td>";
       // }
        HeaderHTML += "<td onmousedown=\"_CTab_OnMouseDown()\" class=\"";
        HeaderHTML += (this.TabsByName[this.TabsByNumber[i]].Active) ? "ActiveTabHeader" : "PassiveTabHeader";
        HeaderHTML += "\">" + this.TabsByNumber[i] + "</td>";
       /* if(i == this.TabsByNumber.length - 1)    
        {*/
            HeaderHTML += "<td><img src=\""; 
            HeaderHTML += (this.TabsByName[this.TabsByNumber[i]].Active) ? "../i/Tabs/right_act_tab.gif" : "../i/Tabs/right_disact_tab.gif";
            HeaderHTML += "\"></td>";
       /* }
        else
            if(this.TabsByName[this.TabsByNumber[i]].Active && !this.TabsByName[this.TabsByNumber[i+1]].Active)
                HeaderHTML += "<td><img src=\"Images/Tabs/tabs_active_passive.gif\"></td>";
            else if(!this.TabsByName[this.TabsByNumber[i]].Active && this.TabsByName[this.TabsByNumber[i+1]].Active)
                HeaderHTML += "<td><img src=\"Images/Tabs/tabs_passive_active.gif\"></td>";
            else
                HeaderHTML += "<td><img src=\"Images/Tabs/tabs_passive_passive.gif\"></td>";  */      
        /*if(!document.getElementById(this.TabsByName[this.TabsByNumber[i]].TableID))
        {
            var BodyHTML = this.BodyCell.innerHTML;
            BodyHTML +="<table width=\"100%\" id=\"" + this.TabsByName[this.TabsByNumber[i]].TableID + "\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" ";
            var s = "";
            for(s in this.TabsByName[this.TabsByNumber[i]].EventHandlers)
            {
               BodyHTML += s + "=\"" + this.TabsByName[this.TabsByNumber[i]].EventHandlers[s] + "\" ";
            }
            BodyHTML +="></table>";
            this.BodyCell.innerHTML = BodyHTML;
        }
        document.getElementById(this.TabsByName[this.TabsByNumber[i]].TableID).className = (this.TabsByName[this.TabsByNumber[i]].Active) ? "ActiveTabBody" : "PassiveTabBody";*/
    }
    HeaderHTML += "</tr></table>"               
    this.HeaderCell.innerHTML = HeaderHTML;
}

function _CTab_OnMouseDown()
{
    //debugger;
    var oCell = event.srcElement;
    if(!oCell.parentElement.parentElement.parentElement.parentElement.JSClass)
        return;
    oCell.parentElement.parentElement.parentElement.parentElement.JSClass.SetActive(oCell.innerText);    
}
