﻿var tab = new tab();
    EventUtility.AddEventHandler(window,"onload",tab.init);
    
var initLocation;
var currentHash = location.hash.toString();

function tab() {
    var tabMenu, tabCount, tabNext,tabPrevious,tabMenuFocusNone,tabMenuFocusOn, contentLoading,PageContent, QueryTriggers,selectedTabIndex;
    var debug = true; 
    var TabMenusArray; 
    var SectionArray;
   
  function TabMenu (tabID, tabs)
  {
        this.ID = tabID;
        this.Tabs = tabs; 
  }  
    
    this.init = init;
    this.cycle = cycle;
    this.show = show;
    this.nav = nav; 
    this.select = select; 
    this.next = next;
    this.previous = previous; 
   
    function next(tabCountToReveal)
    {
       var move = 90* tabCountToReveal;
       fx.animate(document.getElementById('PageSections'),"left",0,"-" + move,0,6,false);
       
       tabNext.style.display = "none";
       tabPrevious.style.display = "block";
    }    
   
    function previous(tabCountToReveal)
    {
       var move = 0;
       fx.animate(document.getElementById('PageSections'),"right",-180,move,0,6,false);
       
       tabNext.style.display = "block";
       tabPrevious.style.display = "none";
    }      
  
    function setHashPath(hash) {
        var path = location.protocol + "//" + location.hostname + location.pathname;
          location.assign(path + location.search + "#" + hash);
          initLocation =  location.toString();
     }   
  
    function nav(hashName) {
        var hash = (location.hash) ? location.hash.substring(1).toLowerCase() : SectionArray[0];
       
        if (hashName == undefined || hashName == "") 
            hashName = hash;
        else
            hashName = hashName.toString().replace("#","");
            
            
                     
        currentHash = hashName;
        
        //if (window.event) {
            //if (event.type != "mouseover" && window.event.type != "load") 
                setHashPath(hashName);
       //} 
       
       if (hashName != undefined)
            hashName = hashName.toString().toLowerCase();
            
            
            
        for (var i=0;i<SectionArray.length;i++)
        {
            if (SectionArray[i] == hashName)
            {
                tab.cycle(i+1);
               if (i > 5) next(SectionArray.length-6);
                     
                break;
            }  else {
                //no match & a tab not already selected default to first tab
                if (selectedTabIndex == undefined)
                    tab.cycle(1);
            } 
        }
       //Reset tracking to new "Page"
       pageEventsTracking.initialize();
    }     
  
  function show(id)
  {
        document.getElementById(id).style.display = 'block';
  }  
   
    
    function init()
    {
        tabMenu = document.getElementById('PageSections');
       tabPrevious =  document.getElementById('tabPrevious');
       tabNext =  document.getElementById('tabNext');
       tabMenuFocusNone = document.getElementById('tabMenuFocusNone');
            if (tabMenuFocusNone != undefined) tabMenuFocusNone = tabMenuFocusNone.innerHTML;
       tabMenuFocusOn = document.getElementById('tabMenuFocusOn');
            if (tabMenuFocusOn != undefined) tabMenuFocusOn = tabMenuFocusOn.innerHTML;
       
       
       var SectionName = document.getElementById('SectionNames');
       QueryTriggers = document.getElementById('QueryTriggerPairings');
       if (location.search)
            TranslateQueryTriggers();
       
       if (SectionName != undefined)
        SectionArray = SectionName.innerHTML.toString().toLowerCase().split(",");
       
       if (tabMenu != undefined)
       { 
            tabCount = getTabCount();
            nav(currentHash); 
       }
       
    }
   
    function TranslateQueryTriggers()
    {
        var queryGroups = location.search.toString().replace("?","").split("&");
       var match;
       
        for (var i = 0;i<queryGroups.length;i++)
       {
            match = MatchQueryTrigger(queryGroups[i]);
            if (match) break;
       } 
       
      
    }     
   
    function MatchQueryTrigger(queryGroup)
    {
        var matchFound = false;
        var queryArray, queryTrigger, sectionName;  
       
        if (QueryTriggers != undefined)
        {
            queryArray = QueryTriggers.innerHTML.toString().split(",");
            
            for (var i = 0;i<queryArray.length;i++)
            {
                if (queryGroup == queryArray[i])
               { 
                     currentHash = queryArray[i+1];
                    //currentHash value is picked up by nav(currentHash) call in nav.init method()
                    //thereby navigating to the section defined by the hash 
               } 
            }
        }   
       
       return matchFound; 
    }     
   
    function Tab(selector, content)
    {
        this.Selector = selector;
        this.Content = content; 
    }  
   
  function getCount(tabSet)
  {
        var tabCount = 0; 
         for (i=0;i<tabSet.childNodes.length;i++) {
            if (tabSet.childNodes[i].className != undefined)
            { 
                 if (tabSet.childNodes[i].className.toString().indexOf("TabSelector") > -1)
                    {
                        tabCount++;
                    } 
            } 
       } 
       
       return tabCount;
  }
  
  function getTabContent(tab)
  {
          var tabContent; 
       for (i=0;i<tab.childNodes.length;i++) {
            if (tab.childNodes[i].className != undefined)
            { 
                 if (tab.childNodes[i].className.toString().indexOf("TabContent") > -1)
                    {
                        tabContent = tab.childNodes[i];
                    } 
            } 
       } 
       
       return tabContent;
  }
    
    function getTabCount() {
       var anchorCount = 0; 
       for (i=0;i<tabMenu.childNodes.length;i++) {
            if (tabMenu.childNodes[i].nodeName.toLowerCase() == "a") anchorCount++; 
       } 
       return anchorCount;
    }      
    
   function select(tabSetID,indexToSelect)
  {
        var tabCount;
       for (var i=0;i<TabMenuArray.length;i++)
       {
            if (TabMenuArray[i].ID == tabSetID)
            {
                tabCount = TabMenuArray[i].Count;
            }
       } 
       
       var tabSet = document.getElementById(tabSetID);
       
       
       
  }   
    
    function cycle(i) {
        var contents, img, imgState;
        for (i2=1;i2<=tabCount;i2++) {
            if (i2==i) { 
                    contents = document.getElementById('tab' + i);
                    contents.style.display = "block";
                    
                    img = document.getElementById('tabMenu' + i);
                    img.style.background = "url('" + tabMenuFocusOn + "') no-repeat";
					img.style.color = "#000000";
					img.style.fontWeight = "bold";
			} else {
                contents = document.getElementById('tab' + i2);
                contents.style.display = "none";
                img = document.getElementById('tabMenu' + i2);
                img.style.color = "#20809e";
				img.style.fontWeight = "bold";
			    img.style.background = "url('" + tabMenuFocusNone + "') no-repeat";
            } 
        }
        selectedTabIndex = i;
      }    
      
      
}



var ClassTabs = new ClassTabs();
    EventUtility.AddEventHandler(window,"onload",ClassTabs.init);
function ClassTabs()
{
    var PricingTabsContainer,PricingTabs, PricingTabsContent;  
   
    this.init = init;
   
    function init()
    {
        PricingTabsContainer = document.getElementById('PricingTabs');
        if (PricingTabsContainer != undefined)
       {  
	        PricingTabs = ClassUtility.GetDescendantMembers("PricingTabSelector","div",PricingTabsContainer);
	        PricingTabsContent = ClassUtility.GetDescendantMembers("PricingTabContent","div",PricingTabsContainer);
	    }
	    
	        
    }     
   
    this.Select = Select;
   
    function Select(index)
    {

       
       for (var i=0;i<PricingTabsContent.length;i++)
       {
            if (i != index)
            {
               ClassUtility.RemoveClass(PricingTabs[i],'PricingTabSelected'); 
                PricingTabsContent[i].style.display = "none";
            } else {
                ClassUtility.AddClass(PricingTabs[i],'PricingTabSelected');
                PricingTabsContent[i].style.display = "block";
            }
       }
    }        
}

	
	
   function SelectSubTab(IdPrefix, index)
      {

      var IdContentPrefix = IdPrefix + "Content";
      var TabSelectedClass = IdPrefix + "Selected";
      var TabNotSelectedClass = IdPrefix + "NotSelected";
      //find tabs in set
      var divs = document.getElementsByTagName("div");
      var tabs = new Array();
      for (var i=0;i<divs.length;i++)
      {
        if (divs[i] != undefined)
        {
            if (divs[i].id != undefined)
            {
                if (divs[i].id.toString().substring(0,divs[i].id.toString().length-1) == IdPrefix)
                {
                    //alert(divs[i].id.toString().substring(0,divs[i].id.length-1);
                    tabs.push(divs[i]);
                }
            }
        }
      }
      
      
      //show/hide tabs in set
      var tab, tabContent, tabContentPreview;
      for (var i=1;i<=tabs.length;i++)
      {
        tab = tabs[i-1];
        tabContent = document.getElementById(IdContentPrefix + i);
        tabContentPreview = document.getElementById(IdPrefix + 'ContentPreview');
        
        if (tabContentPreview != undefined)
            tabContentPreview.style.display = 'none';
        
        if (i == index)
        {
            tabContent.style.display = "block";
            tab.className = "SubTab " + TabSelectedClass;
            
        } else {
            tabContent.style.display = "none";
            tab.className = "SubTab " + TabNotSelectedClass;
        }
      }
      
   
      }

function openDemo(url) {
  	window.open(url,"Demo", 'width=700, height=530, top=10, left=10, scrollbars=no, resizable=no');
}