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"
      
    }     
  
  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 = "#ffffff";
				img.style.fontWeight = "normal";
			    img.style.background = "url('" + tabMenuFocusNone + "') no-repeat";
            } 
        }
        selectedTabIndex = i;
      }    
      
      
}

function toggleQuestion(qName, aName)
{
    var ans = document.getElementById(aName);
    if (ans == null) return;
    var que = document.getElementById(qName);
	if (ans.style.display == '')
    {
		if (que != null)
			ans.style.display = 'none';
    }
    else
    {
		if (que != null)
			ans.style.display = '';
    }
}


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";
            }
       }
    }        
}

    var PricingVersionType = {"Upgrade":"Upgrade","Full":"Full"};

	var Pricing = new Pricing();
	    EventUtility.AddEventHandler(window,"onload",Pricing.init);
		var UpgradeSku, FullSku;
		var FullSkuArray,UpgradeSkuArray;

	function Pricing()
	{
	    var SelectedSku, RequestedSku, SwitchPricingButton, OnlinePricingFrame, RetailStoresFrame, PricingOptionEdition, PricingOptionVersion;
	    var Zip, Radius;
	    var _defaultVerison = PricingVersionType.Full;
	    
	   Pricing.FullSku =  FullSku;
	   Pricing.FullSku =  UpgradeSku;
	    
	   this.init = init;
	   this.GetPricing = GetPricing;
	   this.SetDefaultVersion = SetDefaultVersion;
	   /*this.SwitchPricing = SwitchPricing;*/
	   /* this.ShowPricing = ShowPricing;*/
	   this.FindRetailers = FindRetailers;
	   
	   function SetDefaultVersion(objPricingVersionType)
	   {
	      if (PricingOptionVersion != null) 
	      { 
	            if(PricingVersionType.hasOwnProperty(objPricingVersionType))//type check
	            {
	                _defaultVerison = objPricingVersionType;
    	            switch (_defaultVerison)
	                {
	                    case "Upgrade":
	                        PricingOptionVersion.selectedIndex = 1;
	                    break; 
        	            
	                    case "Full":
	                    default: 
	                        PricingOptionVersion.selectedIndex = 0;
	                    break;  
	                }
	            }
	        }
	   }
	   
	   function FindRetailers(e)
	   {
	        Zip = document.getElementById('RetailZip');
	        Radius = document.getElementById('RetailRadius');
	        if (Zip != undefined)
	        {
	            Zip = Zip.value;
	            
	           Radius = (Radius != undefined) ? Radius.options[Radius.selectedIndex].value : 5;
	           
	            validation.checkZip(document.getElementById('RetailZip'),"Pricing.ShowRetailers();",null);
	        
	        
	        }
	   }
	   
	 /* function SwitchPricing()
	   {
	        var SwitchToSku =  (SelectedSku == FullSku) ? UpgradeSku : FullSku;
	        ShowPricing(SwitchToSku);
	   }*/
	   
	   function init()
	   {
	        FullSku = document.getElementById('FullSku');
	        FullSku = (FullSku != undefined) ? FullSku.innerHTML: "";
	        FullSkuArray = FullSku.split(",");
	        
	        
	        UpgradeSku = document.getElementById('UpgradeSku');
	        UpgradeSku = (UpgradeSku != undefined) ? UpgradeSku.innerHTML: "";
	        if (UpgradeSku != "")
	            UpgradeSkuArray = UpgradeSku.split(",");
	        
	        SwitchPricingButton = document.getElementById('SwitchPricingButton');
	        OnlinePricingFrame = document.getElementById('OnlinePricingFrame');
	        RetailStoresFrame = document.getElementById('RetailStoresFrame');
	        PricingOptionEdition = document.getElementById('PricingOptionEdition');
	        PricingOptionVersion = document.getElementById('PricingOptionVersion');
	   } 
	   
	 
	   
	
	   	function GetPricing()
	    {
		    var CurrentSku = location.search.toString().split("=")[1];
		    cii_EmbedProductLinks('microsoft',CurrentSku,'512','');
	    }
	     
	    
	}
	
	
   function SelectSubTab(IdPrefix, index)
      {

      var IdContentPrefix = IdPrefix + "Content";
      var TabSelectedClass = IdPrefix + "Selected";
      var TabNotSelectedClass = IdPrefix + "NotSelected";
      var otherBackgroundUrl = '/smallbusiness/products/BaseProductPage/images/evaluate/SubTab1.gif';
      var selectedBackgroundUrl = '/smallbusiness/products/BaseProductPage/images/evaluate/SubTab2.gif';

      //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;
        }
      }
      
   
      }


var PartnerFinder = new PartnerFinder();
var PartnerFinderCurrentInput;
    EventUtility.AddEventHandler(window,"onload",PartnerFinder.Init);
function PartnerFinder()
{
    
    this.Init = Init;
    this.HighlightInput = HighlightInput;
    
    function Init()
    {
        var Finders = ClassUtility.GetMembers("LocalFind", "div");
        
        EventUtility.AddGroupEventHandler(Finders,"onmouseover",PartnerFinder.HighlightInput);
        
        
    }
    
    function HighlightInput(e)
    {
        var sourceObject = EventUtility.GetEventSourceObject(e);
        var ParentDiv;
        
        if (sourceObject != undefined)
        {
            switch (sourceObject.nodeName)
            {
                case "DIV":
                    ParentDiv = sourceObject; 
                break;
                case "P":
                case "IMG":
                case "FORM":
                default:
                    ParentDiv = sourceObject.parentElement;
                break;
                
                case "A":
                case "INPUT":
                    ParentDiv = sourceObject.parentElement.parentElement;
                break;
            }
        }
        
        var Input = ParentDiv.getElementsByTagName("input")[0];
        PartnerFinderCurrentInput = Input;
        
        if (Input != null)
        {
            if (Input.value.toString().toLowerCase() == "enter your zip") Input.value = "";
            if (Input.className.toString().indexOf("LocalFindInputHover" < 0))
            {
                Input.className = Input.className.toString() + " LocalFindInputHover";
            }
            Input.focus();
        }
    }
 }


var ContentBlock = new ContentBlock();
var CurrentCTAButton;

function  ContentBlock ()
{
        this.RevealCTA = RevealCTA;
        this.HideCTA =  HideCTA;
       
       function RevealCTA(obj)
       {
            var CTAButtons = ClassUtility.GetDescendantMembers("ContentBlockCTA","div",obj);
            if (CTAButtons != undefined)
            {
                if (CTAButtons.length > 0)
               {
                    CurrentCTAButton = CTAButtons[0];
                    fx.animate(document.getElementById(CTAButtons[0].id),"fade-in",0,100,1000,8,false); 
               } 
            }
       } 
       
       function HideCTA()
       {
            CurrentCTAButton.style.display = "none";
       }
}

var LocalPCBuilderFinder = new LocalPCBuilderFinder();
    EventUtility.AddEventHandler(window,"onload",LocalPCBuilderFinder.Init);

function LocalPCBuilderFinder()
{
    var baseURL = "http://www.localpcbuilder.com/results.aspx?RAD=25&ST=";
    var Input, Zip;
   
    this.Init = Init;
    this.Find = Find; 
   
    function Init()
    {
        Input = document.getElementById('LocalPCBuilderInput');
    }       
   
    function Find()
    {
        Zip = Input.value;
        var newWindow = window.open(baseURL + Zip);
        newWindow.focus();
    }     
    

}

      function show_frame(){
      //document.all.popupBox.style.visibility = "visible";
       document.getElementById('popupFrame').style.visibility = "visible";     
      }

      function hide_frame(){
      //document.all.popupBox.style.visibility = "hidden";
      document.getElementById('popupFrame').style.visibility = "hidden";
}



