function TabController(ContentLayerID)
{
   this.NumOfTabs = 0;
   this.ActiveTab = 0;
   this.Tabs = new Array();
   this.TabDisplayOrder = new Array();
   this.TabButtons = new Array();
   this.ContentLayerID = ContentLayerID;
   
   this.AddTab = function(TabName, ContentLayerID, ButtonID, ButtonSourceID)
   {
      this.NumOfTabs++;
      this.Tabs[this.Tabs.length] = new Array (TabName, ContentLayerID, ButtonSourceID);
      this.TabDisplayOrder[this.TabDisplayOrder.length] = this.NumOfTabs-1;
      this.TabButtons[this.TabButtons.length] = ButtonID;
      this.ActiveTab = this.NumOfTabs - 1;
   }

   this.GetTabNumFromName = function(TabName)
   {
      for (i=0; i<this.Tabs.length; i++)
      {
         if (this.Tabs[i][0] == TabName)
         {
            return i;
         }
      }
      return -1;
   }

   this.ActivateTab = function(TabName)
   {
      var newActiveTab = this.GetTabNumFromName(TabName);

      if (newActiveTab >= 0 && newActiveTab <this.NumOfTabs)
      {
         this.ActiveTab = newActiveTab;
        
         var currentTabNum = this.ActiveTab;
         for (i=this.NumOfTabs-1; i>=0; i--)
         {
            if (currentTabNum < 0)
            {
               currentTabNum = this.NumOfTabs-1;
            } 
            this.TabDisplayOrder[i] = currentTabNum;
            currentTabNum--;
         }
      }      
   }

   this.DisplayTabs = function()
   {
      var button;
      var buttonsource;
      for (i=0; i<this.NumOfTabs; i++)
      {
         button = document.getElementById(this.TabButtons[i]);
         buttonsource = document.getElementById(this.Tabs[this.TabDisplayOrder[i]][2]);
         button.innerHTML = buttonsource.innerHTML;
      }
      
      var contentSource = document.getElementById(this.Tabs[this.ActiveTab][1]);
      var contentTarget = document.getElementById(ContentLayerID);
      contentTarget.innerHTML = contentSource.innerHTML;
   }

}


var TabControl = new TabController('tabcontent');

TabControl.AddTab('tab1','tabcontent1','tabbutton1','tabheader1');
TabControl.AddTab('tab2','tabcontent2','tabbutton2','tabheader2');
TabControl.AddTab('tab3','tabcontent3','tabbutton3','tabheader3');
TabControl.AddTab('tab4','tabcontent4','tabbutton4','tabheader4');
