/************************ ADDITIONAL FEATURES ************************
     Dynamic Account Selection
     Plugins
*/
/************************** CONFIG SECTION **************************/
/* You may add or alter any code config here.                       */
/* Specify the Report Suite ID(s) to track here */
var s_account="mssbcstartup"
var s_dynamicAccountSelection=true
var s_dynamicAccountList="mssbcdev=sbsm;mssbcdev=sbdev;mssbcdev=sbppe01;mssbcdev=sbppe;mssbcdev=mikewi03;mssbcdev=wwwppe;mssbcdev=wwwstaging;mssbcdev=wwwint;mssbcdev=mikewi02;mssbcdev=localhost;mssbcdev=cpmsftibw02;mssbcdev=wwwppe.dns.microsoft.com;mssbcdev=wwwstaging.dns.microsoft.com;"
/* E-commerce Config */
var s_currencyCode="USD"
var s_eVarCFG=""
/* Link Tracking Config */
var s_trackDownloadLinks=true
var s_trackExternalLinks=true
var s_trackInlineStats=true
var s_linkDownloadFileTypes="exe,zip,wav,mp3,mov,mpg,avi,wmv,wma,doc,pdf,xls,ppt"
var s_linkInternalFilters="javascript:,microsoft.com,bcentral.com,linkexchange.com,listbuilder.com,submitit.com,submit-it.com,sbsummit.com,accountingweb.com,cpatechnologyadvisor.com,aicpa.com,webcpa.com,interactservices.com,llnwd.com,llnwd.net,llnwd.net,ideawins.com,live.com,financialevalkit.com,order-4.com"
var s_linkLeaveQueryString=true
var s_linkTrackVars="s_pageName";
var s_linkTrackEvents="None"
var s_siteID=""; // optional
var s_defaultPage="/smallbusiness/hub.mspx";
var s_queryVarsList=""; // if list, comma delimit
var s_pathExcludeDelim=";";
var s_pathConcatDelim=":"; // page name component separator
var s_server = location.hostname;
var s_channel = ChannelProp(); //method for populating the proper channel name
var s_prop1 = location.pathname;
var s_prop6;//set in pageEventsTracking.initialize()
var s_pageName;
var s_events = "event17";//event17 set for every page view
var eVarCount = 30;
var s_eVar1,s_eVar2,s_eVar3,s_eVar4,s_eVar5,s_eVar6,s_eVar7,s_eVar8,s_eVar9,s_eVar10;
var s_eVar11,s_eVar12,s_eVar13,s_eVar14,s_eVar15,s_eVar16,s_eVar17,s_eVar18,s_eVar19,s_eVar20,s_eVar21,s_eVar22,s_eVar23,s_eVar24,s_eVar25,s_eVar26,s_eVar27,s_eVar28,s_eVar29,s_eVar30;
var WritesSoFar = "";
var DocumentWrite = "";

s_prop50="US"
var omniMetaPrefix="OmniProp";
var metaTags = document.getElementsByTagName("meta");
for(var i = 0; i < metaTags.length; i++)
{
    var propNumber = metaTags[i].name.split(omniMetaPrefix)[1];
    if(propNumber)
    {
        var propName = "s_prop" + propNumber;
        var content = metaTags[i].content;
        if(content.indexOf('javascript:') >= 0)
            content = eval(content);
        
        eval(propName + " = content;");
    }
}

var PurchaseTypes = {"FPP":"Full Packaged Product","VL":"Volume Licensing","OEM":"On a new PC","Partner":"Through Partner","Phone":"Speak with representative","RequestInfo":"Request more info","RetailBestBuy":"Through Best Buy for Business","RetailHPCompUSA":"Through HP and CompUSA","Download":"Full Packaged Product-Windows Market Place"};

var pageEventsTracking = new pageEventsTracking();
pageEventsTracking.initialize();
var clickEventLink, clickEventNewWindow;
function pageEventsTracking() {
//Owner: U.S. Small Business Website

    /*public methods*/
    this.initialize = initialize;//loads XML data 
    this.setEvent = setEvent;//sets event and evar based on string inputs  
    this.setClickEvents = setClickEvents;//set events based on to <Click> node defined at the current URL node (location) <Page> node in XML file 
    this.setAsyncClickEvents = setAsyncClickEvents;//same as setClickEvents, but should be used when click event is not on anchor tag, e.g. in Flash getURL calls
    this.currentPurchaseType = PurchaseTypes.FPP;
    this.setAsyncPageViewData = setAsyncPageViewData;
        
   /*private properties*/ 
    this.baseName = "SC";
    this.isAsyncPageView = false;
    var pageEventsNode;//XML Node element for individual page browser is now on
    var pageWithQueryEventsNode;//XML Node element for individual page browser is now on + query string
    var domainEventsNode;//XML Node element for whole /smallbusiness/ 
    var hostEventsNode; //XML Node element for all files under a given host, e.g microsoft in www.microsoft.com or sbsummit.com
    var hostPageEventsNode; ////XML Node element for fully-qualified path on a non-microsoft/smallbusiness given host, e.g /sbsummit.com/directory/page.html
    var debug = (location.toString().toLowerCase().indexOf('omnituresummary') >= 0);//global //bool shows summary of pageName and event info 
    var host = getHost(); 
    var domain = "/" + location.pathname.split("/")[1] + "/";//e.g. "/smallbusiness/"  
    var agent = navigator.userAgent.toLowerCase();
    var browser = (agent.indexOf('msie') >= 0) ? "ie" : "moz";
    var requestedNodes = new Array();
    
    
	var intFirstChildIndex = (browser == "moz") ? 1 : 0;
	var xmlDoc =  (browser == "moz") ? document.implementation.createDocument("", "xmlDoc", null) : new ActiveXObject("Msxml2.DOMDocument.3.0");
	
	var xmlPath;
	if(typeof(s_xmlPath) != "undefined")
	    xmlPath = s_xmlPath;
	else
	    xmlPath = "/smallbusiness/shared/tracking/startup/PageEventsTracking.xml"; 
	   
	/*private methods*/
	this.getHost = getHost;
	this.getNode = getNode;//loads all page event info into pagEventsNode and domainEventsNode objects
	this.getAccount = getAccount;//determines whether to use dev or production account
	this.getMatchingEvents = getMatchingEvents;//derives events based on loaded XML nodes (domainEventsNode,pageEventsNode), then calls this.setEvents()
	this.setViewEvents = setViewEvents;//set events based on to <View> node defined at the current URL node (location) <Page> node in XML file
	this.setDomainClickEvents = setDomainClickEvents;//set events based on to <Click> node defined at the sitewide (/smallbusiness) <Page> node in XML file 
	this.setPageName = setPageName;//actually assigns s_pageName variable based on value in XML file
	this.setEvents = setEvents;//actuallly assigns s_events and eVar[1-20] variables based on string inputs (eventID, eVarID, eVarTypeValue) 
	this.getSummary = getSummary;//reporting function for debugging
	this.confirmReview = confirmReview;//reporting functions for debugging
	this.setDefaultDataByDirectory = setDefaultDataByDirectory;//runs automatic page names and events for pages in specified directory
	
	function setDefaultDataByDirectory(directoryPath)
	{
	    if (location.pathname.toString().indexOf(directoryPath) > -1)
	    {
	        var directoryArray = location.pathname.split("/");
	        var currentDirectory;
	        var defaultPageName;
	        
	        
	        for (var i=0;i<directoryArray.length;i++)
	        {
	            if (directoryArray[i] == "smallbusiness")
	            {
	                defaultPageName = pageEventsTracking.baseName + ":";
	            } else {
	                
	                currentDirectory = directoryArray[i];
	                currentDirectory = currentDirectory.replace(/-/g," ");//replace dashes with spaces
	                currentDirectory = currentDirectory.replace(/_/g," ");//replace underscores with spaces
	                currentDirectory = currentDirectory.replace('.aspx','');
	                currentDirectory = currentDirectory.replace(/\w+/g, function(str){return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();});

	                defaultPageName += currentDirectory;
	                
	                if (i < directoryArray.length-1)
	                    defaultPageName += ":";
	            }
	        }
	        pageEventsTracking.setPageName(defaultPageName);
	    }
	}
	
	
    function setAsyncPageViewData(pageName)
    {
       
       setPageName(pageName);
       clearTrackingImageEvars();
       clearTrackingImageEvents();
       
       var sectionNameArray = getSectionNames(new Array(),new Array());
       eVarIDArray = sectionNameArray[0];
       eVarTypeValueArray = sectionNameArray[1];
       for (var i=0;i<eVarIDArray.length;i++)
       {
         modifyTrackingImage("v" + eVarIDArray[i],eVarTypeValueArray[i],false);  
         if (eVarIDArray[i] == "23")
            modifyTrackingImage("ch",s_channel,false);
       }
       
       modifyTrackingImage("pageName",s_pageName,true);
    }
    
    function modifyTrackingImage(param,paramValue,boolWrite)
    {
        var imgSrcQueryBegin = WritesSoFar.indexOf('&');
        var imgSrcQueryEnd = WritesSoFar.substring(imgSrcQueryBegin).indexOf(" width=");
        var imgSrcQuery = WritesSoFar.substring(imgSrcQueryBegin,imgSrcQueryEnd+(imgSrcQueryBegin-1));
        
        var queryPairs = imgSrcQuery.split("&");
        var pair;
        var newImgSrcQuery;
        
        for (var i=0;i<queryPairs.length;i++)
        {
            pair = queryPairs[i].split("=");
            if (pair[0] == param)
            {
                //if now value specified, remove the param
                if (paramValue == "clear")
                {
                    newImgSrcQuery = imgSrcQuery.replace("&" + pair[0] + "=" + pair[1],"");
                } else {
                    newImgSrcQuery = imgSrcQuery.replace(pair[1],paramValue);
                }
                break;
            }
            
            //if end of existing params (and has not matched and hit break statement above), add new param
            if (i==(queryPairs.length-1))
            {
                if (paramValue != "clear")
                {
                    newImgSrcQuery = imgSrcQuery.toString() + "&" + param + "=" + paramValue;
                } else {
                    newImgSrcQuery = imgSrcQuery.toString();
                }
            }
            
        }
        
        WritesSoFar = WritesSoFar.replace(imgSrcQuery,newImgSrcQuery);
                
        if (boolWrite)
        {
            var ExistingTrackingContainer = document.getElementById('TrackingContainer');
            var TrackingContainer = (ExistingTrackingContainer != null) ? ExistingTrackingContainer : document.createElement("div");
            TrackingContainer.id = "TrackingContainer";
            TrackingContainer.style.display = "none";
            TrackingContainer.innerHTML = WritesSoFar;
        
            if (ExistingTrackingContainer == null)
                document.body.appendChild(TrackingContainer);
            
        }
        
        document.write = DocumentWrite;//restore normal document.write functionality
        isAsyncPageView = true;
    }
    
    	
    function cleanArray(array)
    {
         //clean invalid entries
        array = array.toString().replace(/undefined/g,'');//remove any extra commas
        array = array.replace(/,,/g,',');//remove any extra commas
        array = (array.substr(0,1) == ",") ? array.substring(1) : array;
        array = (array.substr(array.length-1,1) == ",") ? array.substring(0,array.length-1) : array;
        array = array.split(',');
        return array;
    }	
    
    function clearTrackingImageEvars()
    {
        //clear previous eVars
        for (var i=1;i<parseInt(eVarCount)+1;i++)
        {
            modifyTrackingImage("v"+i,"clear",false);
        }
    }
    
    function clearTrackingImageEvents()
    {
        //clear previous events to only page view event (event17)
        modifyTrackingImage("events","event17",false);
    }
    
    function getSectionNames(eVarIDArray,eVarTypeValueArray)
    {
     //add Page, Section and SubSection eVars derived from pageName structure
        var returnArray = new Array(3);
        if (s_pageName != null)
        {
	        eVarIDArray.push('25');
        	eVarTypeValueArray.push(s_pageName); 
	        var nameArray = s_pageName.split(":");
	        if (nameArray.length > 1)
	        {
	            var sectionName = nameArray[1];
    	        
	            eVarIDArray.push('23');
        	    eVarTypeValueArray.push(sectionName); 
        	    s_channel = "SC:" + sectionName;
            	
        	    if (nameArray.length > 3)
        	    {
        	        var subSectionName = nameArray[nameArray.length-2];
	                eVarIDArray.push('24');
        	        eVarTypeValueArray.push(subSectionName); 
        	    }
	        }
	    }
	    returnArray[0] = eVarIDArray;
	    returnArray[1] = eVarTypeValueArray;
	    
	    return returnArray;
    }
    	
	 //send events to omniture by modifying the tracking image query string directly
    function setAsyncEvents(eventStr,eVarIDArray,eVarTypeValueArray)
    {
        var boolWriteEvents = (eVarIDArray.length == 0) ? true : false;
        modifyTrackingImage("events",eventStr,boolWriteEvents);
        
        eVarIDArray = cleanArray(eVarIDArray);
        eVarTypeValueArray = cleanArray(eVarTypeValueArray);
        
        //add Section and SubSection eVars derived from pageName structure
        var sectionNameArray = getSectionNames(eVarIDArray,eVarTypeValueArray);
        eVarIDArray = sectionNameArray[0];
        eVarTypeValueArray = sectionNameArray[1];
        
	    clearTrackingImageEvars();
        
        
        
        var boolWriteEvars = false;
        for (var i2=0;i2<eVarIDArray.length;i2++)
        {
            if (i2==eVarIDArray.length-1) boolWriteEvars = true;
            
            modifyTrackingImage("v"+eVarIDArray[i2],eVarTypeValueArray[i2],boolWriteEvars);
        }
    }
    
 
	
	function getHost()
	{
	    var returnHost;
	   var caseLength =  location.hostname.split('.').length;
	   
	   switch (caseLength)
	   {
	        case 3:
	            if (location.hostname.split('.')[0] == "www")
	                //e.g. www.sbsummit.com becomes /sbsummit/  
	                returnHost =  "/" + location.hostname.split('.')[1] + "/";
	           else 
	                //e.g. microsoft.order-5.com becomes /microsoft.order-5/
	                returnHost =  "/" + location.hostname.split('.')[0] + "." + location.hostname.split('.')[1] + "/";
	        break;
	        default:
	          returnHost =  "/" + location.hostname.split('.')[0] + "/";
	        break;
	   }
	   return returnHost; 
	}
	
	function getAccount() {
		var currentAccount = s_account;
		if (s_dynamicAccountList) {
		    var devAccounts = s_dynamicAccountList.split(";");
			var equalIndex,currentDevAccount, currentDevDomain;
			for (i=0;i<devAccounts.length;i++) {
				equalIndex = devAccounts[i].indexOf("=");
				if (equalIndex > 0) {
					currentDevAccount = devAccounts[i].substring(0,equalIndex);
					currentDevDomain = devAccounts[i].substring(equalIndex+1);
					if ( location.hostname.toString().indexOf(currentDevDomain) >= 0) currentAccount = currentDevAccount;
				}			
			}
		}
		return currentAccount;
	}
	
	function getNode(pathToMatch, setName) {
	    //identify correct node by the path value (e.g. /smallbusiness/hub.mspx)
	   
	   requestedNodes.push(pathToMatch); 
	 	var returnNode;
		if (xmlDoc.documentElement) {	
			var objNodeList = xmlDoc.documentElement.getElementsByTagName("Path");
			var nodeValue;
			var nodeMatchIndex = null;
			
			for (i=0;i<objNodeList.length;i++) {
				nodeValue = objNodeList[i].firstChild.nodeValue;
				
				if (nodeValue.toString().indexOf("?") > -1 && !location.hash)
				{
				    //match on only focus query string param
				    if (location.search)
				    {
				        var querysets = location.search.toString().split("&");
				        var focus;
				       
				        for (var i2=0;i2<querysets.length;i2++)
				        {
				            if (querysets[i2].indexOf('ProductID=') > -1 || querysets[i2].indexOf('cuid=') > -1)
				           {
				                focus = querysets[i2];
				                break;
				           } 
				        }     
				       
				        if (focus != undefined)
				       {  
				            var querypathToMatch = location.pathname + focus;
				          
				           if (nodeValue.toLowerCase() == querypathToMatch.toLowerCase()) nodeMatchIndex = i;  
				        }
				     }  
			    } 
			    	    
				if (nodeValue.toLowerCase() == pathToMatch.toLowerCase()) nodeMatchIndex = i;
				    
			}
			if (nodeMatchIndex != null) { 
				var pageNode = xmlDoc.documentElement.getElementsByTagName("Page")[nodeMatchIndex]; //select parent <Page> node
				if (setName) {
				    var name = 	pageNode.getElementsByTagName("Name")[0].firstChild.nodeValue;
				    setPageName(name);
				}
				var events = pageNode.getElementsByTagName("Events");//select child <Events> node
				if (events.length > 0) {
					 returnNode = pageNode.getElementsByTagName("Events")[0];
				}
			}
		}
		return returnNode;
	}
	
	
	
	this.resetTrackingImageState = function resetTrackingImageState()
	{
	    var trackingImage;
        var trackingImageName = 's_i_' + pageEventsTracking.getAccount();
        var trackingImageCollection = document.getElementsByName(trackingImageName);
         if (trackingImageCollection.length > 0)
        {
            trackingImage = trackingImageCollection[0]; 
            
                try 
                {
                    trackingImage.complete = false;
                } 
                catch (ex)
                
                {
                    //do nothing as set is unsupported
                }
        }
        
	}
	
	function removeTrackingImage()
	{
	    var trackingImage;
        var trackingImageName = 's_i_' + pageEventsTracking.getAccount();
        var trackingImageCollection = document.getElementsByName(trackingImageName);
        var imageParent;
         if (trackingImageCollection.length > 0)
        {
            trackingImage = trackingImageCollection[0]; 
            imageParent = trackingImage.parentNode;
            imageParent.removeChild(trackingImage);
            
               
        }
        
	}
	
	
	
    this.validateTrackingCall = function validateTrackingCall()
    {
        var trackingImage;
        var trackingImageName = 's_i_' + pageEventsTracking.getAccount();
        var trackingImageCollection = document.getElementsByName(trackingImageName);
         if (trackingImageCollection.length > 0)
        {
            trackingImage = trackingImageCollection[0]; 
        }
        
        var isLoaded;
        if (browser == "ie")
        {
            isLoaded = (trackingImage.readyState == "complete") ? true : false;
        } else {
            if (trackingImage.complete != undefined)
            {
                isLoaded = (trackingImage.complete) ? true : false;
            }
            else 
            {
                //default to true for browsers that don't support img readystate methods
                isLoaded = true;
            }
        }
       
        return isLoaded;
    }
  	
	function initialize() {
	    
	    xmlDoc.async=false;
		xmlDoc.load(xmlPath);
		
		s_prop6 = getHost().replace(/[/]/g,'');//domain name, e.g. microsoft
		
		pageEventsTracking.getClickEventLinks();
		
		pageEventsNode = getNode(location.pathname + location.hash, true);
		
		//try base page without hash
		if (pageEventsNode == undefined)
		    pageEventsNode = getNode(location.pathname, true);
		    
		domainEventsNode = getNode(domain, false);
		hostEventsNode = getNode(host, false);
		hostPageEventsNode = getNode(host + location.pathname.toString().substring(1), true);
		
		setViewEvents();
		
		if (debug) getSummary();
	}
	
  function AddEventHandler(obj,eventName, eventHandler)
  {
    
    if (browser == "ie") {
        obj.attachEvent(eventName,eventHandler);
    } else {
        obj.addEventListener(eventName.replace("on",""),eventHandler,false);
      } 
  
   }
   
   function RemoveEventHandler(obj,eventName, eventHandler)
  {
    if (browser == "ie") {
        obj.detachEvent(eventName,eventHandler);
    } else {
        obj.removeEventListener(eventName.replace("on",""),eventHandler,false);
      } 
   } 
	
	this.getClickEventLinks = function getClickEventLinks()
	{
	    var anchors = document.getElementsByTagName("a");
	    
	    for (var i=0;i<anchors.length;i++)
	    {
	        if (anchors[i] != undefined)
	        {
	            if (anchors[i].onclick != undefined)
	            {
	                 if (anchors[i].onclick.toString().indexOf('pageEventsTracking.setClickEvents') > -1)
	                 {
	                    //remove first to ensure only one handler is attached.
	                    RemoveEventHandler(anchors[i], "onclick", pageEventsTracking.setEventValidation);
	                    AddEventHandler(anchors[i], "onclick", pageEventsTracking.setEventValidation);
	                 }
	             
	            }
	        }
	    }
	
	}
	
	this.sendAnalytics = function sendAnalytics()
	{
	    sendAnalyticsEvent();
	}
	
	 this.setEventValidation = function setEventValidation(evt)
    {
        var e_out;
		var ie_var = "srcElement";
		var moz_var = "target";
        
		if(evt[moz_var])
		{
			validateEventTracking(evt[moz_var]);
		}
		else
		{
			if(evt[ie_var])
			{
				validateEventTracking(evt[ie_var]);
			}
		}
		
        return preventDefaultAction(evt);
    }
    
    function getParentAnchor(obj)
    {
        var parentAnchor;
        
        if (obj.parentNode != undefined)
        {
            if (obj.parentNode.nodeName != undefined)
            {
                //return parentNode if anchor tag, if not, loop up to parent's parent, etc.
                parentAnchor = (obj.parentNode.nodeName == "A") ? obj.parentNode : getParentAnchor(obj.parentNode);
            }
        }
        
        
        return parentAnchor;
    }
    
    function validateEventTracking(eventObj)
    {
          //if event fires from img nested in anchor, get parent anchor
          var linkObj = (eventObj.nodeName == "A") ? eventObj : getParentAnchor(eventObj);
          
          //pageEventsTracking.resetTrackingImageState();
          
          //fire Omniture analytics event
          sendAnalyticsEvent();
          
          //since anchor has been stopped, re-queue to direct after reporting img returns
          clickEventLink = linkObj.href;
          
          if (linkObj.target == "_new" || linkObj.target == "_blank")
          {
            clickEventNewWindow = true;
          } else {
            clickEventNewWindow = false;
          }
          
          
          pageEventsTracking.checkTracking();
    }
    
    function navigate()
    {
        if (clickEventNewWindow)
        {
            var newWin = window.open(clickEventLink);
            if (newWin != null) newWin.focus();
        } else {
            location = clickEventLink;
        }       
          
    }
    
    var iCheckTrackingLoopCount = 0;
    this.checkTracking = function checkTracking()
    {
        if (pageEventsTracking.validateTrackingCall() == false && iCheckTrackingLoopCount <= 10)
        {
            window.setTimeout('pageEventsTracking.checkTracking()',200);
            iCheckTrackingLoopCount++;
        }
        else
        {
            navigate();
        }
    }
    
    
    function preventDefaultAction(evt) 
    { 
		if (evt) 
		{ 
			if (typeof evt.preventDefault!= 'undefined') 
			{ 
				if (evt.stopPropagation) 
				{
					evt.stopPropagation();
				}
				
				evt.preventDefault(); // W3C 
				
			} 
			else 
			{ 
				evt.cancelBubble = true;
				evt.returnValue = false; // IE 
			} 
		} 
		// safe for handling DOM Level 0 
		return false; 
	}
	
	function setPageName(name) {
	    name = name.replace(/\?/g,'');
	    name = name.replace(/&/g,'');
		s_pageName = name;
		if (debug) getSummary();
	}
	
	function setAsyncClickEvents(source)
	{
	    pageEventsTracking.setClickEvents(source);
	    pageEventsTracking.sendAnalytics();
	}
	
	function setClickEvents (source) {
		var clickEvents = pageEventsTracking.getMatchingEvents(source,pageEventsNode,"Click");
		var domainClickEvents = pageEventsTracking.getMatchingEvents(source,domainEventsNode,"Click");
		
		var hostClickEvents = pageEventsTracking.getMatchingEvents(source,hostEventsNode,"Click");
		var hostPageClickEvents = pageEventsTracking.getMatchingEvents(source,hostPageEventsNode,"Click");
		var combinedEventsArray = new Array();
		
		//if (clickEvents != undefined && clickEvents != "") 
	    //{ 
	        //if a match on the source event on the pageEventsNode, ignore other nodes to avoid duplication
	         combinedEventsArray.push(getEventValues(clickEvents));
	    //} else { 
        if (domainClickEvents != undefined) combinedEventsArray.push(getEventValues(domainClickEvents));
        if (hostClickEvents != undefined) combinedEventsArray.push(getEventValues(hostClickEvents));
        if (hostPageClickEvents != undefined) combinedEventsArray.push(getEventValues(hostPageClickEvents));  
	    //} 
	    setEventValues(combinedEventsArray, true);		
	}
	     
	
	function setDomainClickEvents (source) {/*deprecated*/
		pageEventsTracking.setClickEvents(source);
	}
	
	function setViewEvents() {
	    
        if (location.pathname.toString().toLowerCase().indexOf("/smallbusiness/homepage/") > -1)
        {
            pageEventsTracking.isAsyncPageView = true;
        }  
        
        if (location.pathname.toString() != "/smallbusiness/resources/overview.aspx")//the hub page is normal
        {
            if (location.pathname.toString().indexOf("/smallbusiness/resources/") > -1)//special handling for ArticleReader
        {
            pageEventsTracking.isAsyncPageView = true;
        } else {  
    
            var viewEvents = pageEventsTracking.getMatchingEvents('',pageEventsNode,"View");
            var queryEvents = pageEventsTracking.getMatchingEvents(location.toString(),pageEventsNode,"Query"); 
            var combinedEventsArray = new Array();
            if (viewEvents != undefined) combinedEventsArray.push(getEventValues(viewEvents));
            if (queryEvents != undefined) combinedEventsArray.push(getEventValues(queryEvents));
               
            setEventValues(combinedEventsArray, false);
        }
	 }
	 }
	 
	function setEventValues(eventArray,pageLoaded) {
	   var eventIDArray = new Array();
	   var eVarArray = new Array();
	   var eventTypeArray = new Array();
	   for (i=0; i<eventArray.length;i++) {
	        eventIDArray = eventIDArray.concat(eventArray[i][0]);
	        eVarArray = eVarArray.concat(eventArray[i][1]);
	        eventTypeArray = eventTypeArray.concat(eventArray[i][2]);
	   }
	   
	    pageEventsTracking.setEvents(eventIDArray, eVarArray, eventTypeArray, pageLoaded);
	}
	
	function getEventValues(eventsNode) {
	    var eventValues = new Array(3);
	    if (eventsNode.length > 0) {
			var eventIDNode;
			var eventTypeNode;
			
			var eventIDArray = new Array();
			var currentEventID;
			var eventTypeArray = new Array();
			var evarArray = new Array();
			var EventDetailsNodeIndex = intFirstChildIndex + intFirstChildIndex + 2;
			
			for (i=0;i<eventsNode.length;i++) {
					eventIDNode = eventsNode[i].childNodes[intFirstChildIndex];//nodeName == ID
					currentEventID = eventIDNode.firstChild.nodeValue;
					eventIDArray[i] = currentEventID;
					eventTypeNode = eventsNode[i].childNodes[(intFirstChildIndex + intFirstChildIndex +1)];//nodeName == TYPE
					
					if (eventTypeNode) {//if the 2nd node exists
					    if (eventTypeNode.nodeName == "Type") 
					    {
						    evarArray[i] = (currentEventID);
						    eventTypeArray[i] = (eventTypeNode.firstChild.nodeValue);
						} else {
						    EventDetailsNodeIndex = intFirstChildIndex + intFirstChildIndex + 1;
						}
					
					}
					
					var EventDetailsNode = eventsNode[i].childNodes[(EventDetailsNodeIndex)];
					
					if (EventDetailsNode) {//EVENTDETAILS node exists
					
					   var EventDetailID,EventDetailType;
					   
					   if (EventDetailsNode.nodeName == "EventDetails")
					   {
			               for (i2=0;i2<EventDetailsNode.childNodes.length;i2++)//for each EventDetail node 
			                {
			                    if (EventDetailsNode.childNodes[i2].nodeType == 1)//must check for complex node for FF
			                    {
			                        EventDetailID = EventDetailsNode.childNodes[i2].childNodes[intFirstChildIndex].firstChild.nodeValue;
			                        //must advance index using var intFirstChildIndex for FF to find correct complex node
			                        EventDetailType = EventDetailsNode.childNodes[i2].childNodes[intFirstChildIndex+intFirstChildIndex+1].firstChild.nodeValue;
			                        
			               	        evarArray.push(EventDetailID);
        	                        eventTypeArray.push(EventDetailType); 
        	                    }
			                }  
			           }  		
		    		
	                } 
			}
			eventValues[0] = eventIDArray;
			eventValues[1] = evarArray;
			eventValues[2] = eventTypeArray;
		}
		return eventValues;
	}
	
	function getMatchingEvents (source, eventsNodeObj, eventNodeName) {
	    var clickEvents = new Array(0);
	    var currentEventsNode = eval(eventsNodeObj);
	    if (currentEventsNode != undefined) {
		    var click = currentEventsNode.getElementsByTagName(eventNodeName);
		    if (click.length > 0) {
			    click = currentEventsNode.getElementsByTagName(eventNodeName);//multiple CLICK nodes may exist
			    if (source != "") {
			        var clickEventSourceNode,clickMatch;
			        for (clickInt=0;clickInt<click.length;clickInt++) {
				        clickEventSourceNode = click[clickInt].getElementsByTagName("Source")[0].firstChild.nodeValue;
				        var compare = (eventNodeName == "Query") ? "(source.toLowerCase().indexOf(clickEventSourceNode.toLowerCase()) >= 0)" : "clickEventSourceNode.toLowerCase() == source.toLowerCase()";
				        if (eval(compare)) clickMatch = click[clickInt];
				    }
			    } else {
			        clickMatch = click[0];
			    }
			    if (clickMatch != undefined) clickEvents = clickMatch.getElementsByTagName("Event");
    			
		    }
		}
		return clickEvents;
	}
	
	function setEvents(eventIDArray, eVarIDArray, eVarTypeValueArray,pageLoaded) {
	
	   var eventID; 
	   for (i=0;i<eventIDArray.length;i++) {
	    eventID = eventIDArray[i];
	    if (eventID != undefined) 
	    {
	        eventIDArray[i] = "event" + eventID; 
	        
	        //add purchase type eVar data for all event7 product inquries
	        if (eventID == "7")
	        {
	            var serialKey = Math.random().toString().substring(2,7);
	            //must serialize this event so can be counted multiple times
	            eventIDArray[i] = "event" + eventID + ":" + serialKey; 
	            //alert(eVarIDArray.toString().indexOf('15'));
	            if (eVarIDArray.toString().indexOf('15') == -1)
	            {
	                eVarIDArray.push("15");
	                eVarTypeValueArray.push(pageEventsTracking.currentPurchaseType);
	            }
	        }
	        
	    }
	   } 
	   var eventStr = "event17," + eventIDArray.toString();
	   eventStr = eventStr.replace(/,,/g,',');//remove any extra commas
	   
	    s_events = eventStr;//always set event17
	    s_linkTrackEvents = eventStr; 
	    
	    if (pageEventsTracking.isAsyncPageView)
	    {
	        setAsyncEvents(eventStr,eVarIDArray,eVarTypeValueArray);
	    }		  

        
        //add Section and SubSection eVars derived from pageName structure
	    var sectionNameArray = getSectionNames(eVarIDArray,eVarTypeValueArray);
        eVarIDArray = sectionNameArray[0];
        eVarTypeValueArray = sectionNameArray[1];
	    
	    if (eVarIDArray.length > 0) {
	        var eVarID, eVarEval = "";
	        for (i=0;i<eVarIDArray.length;i++) {
	           eVarID = eVarIDArray[i];
	           if (eVarID != undefined) {
	                eVarIDArray[i] = "s_eVar" + eVarID;//add s_eVars to be tracked
	                eVarEval += eVarIDArray[i] + " = '" + eVarTypeValueArray[i] + "';"; //assign s_eVars
	           }
	        } 
	        eVarIDArray.push("s_events");
	        s_linkTrackVars = eVarIDArray.toString();
	        eval(eVarEval);
	   }  else {
	        s_linkTrackVars = "s_events";
	   }
	   	   
	   s_linkType='o';
	   s_lnk=s_co(this);
	   
	   
	   
	   //if pageLoaded (page is loaded bool) = true, as in Click events, need to trigger, otherwise, as in View events, normally page load records events 
	   if (pageLoaded) {
	        sendAnalyticsEvent();
	   }
	   if (debug) getSummary();
	}

	
	
	
	function setEvent(eventID, eVarID, eVarTypeValue) {
	
	    var eventIDArray= new Array(1);
	    var eVarIDArray = new Array(1);
	    var  eVarTypeValueArray = new Array(1);
	    eventIDArray[0] = eventID;
	    eVarIDArray[0] = eVarID;
	    eVarTypeValueArray[0] = eVarTypeValue;
	    setEvents(eventIDArray, eVarIDArray,eVarTypeValueArray,true);
	}
	
	function setEventDetail(eVarID,eVarTypeValue)
	{
	    evarArray.push(eVarID);
        eventTypeArray.push(eVarTypeValue); 
	}
	
	
	function getSummary() {
	    var eVarValues = new Array();
		var eVarEval;
	   	for (i2=1;i2 <=30;i2++) {
		    eVarEval =  eval("s_eVar" + i2);
		   if (eVarEval != undefined && eVarEval != "")  eVarValues.push("<div>eVar" + i2 + ": " + eVarEval + "</div>");
		}
		var summary = document.createElement("div");		
		summary.id = "summaryOmniture";
		summary.className = "tip tip_omniture";
		summary.innerHTML = '<div class="indent boldtext">Omniture Metadata</div><div>Page Name: ' + s_pageName + '</div>';
		if (s_events != "") summary.innerHTML += '<div>Events: ' + s_events + '</div><div>eVars: <div class="indent">' + eVarValues.join(" ") + "</div></div>";
		//summary.innerHTML += '<div style="margin-top:10px;">Account: ' + pageEventsTracking.getAccount() + '</div>';
		summary.innerHTML += '<div>Data: ' + xmlPath+ '</div>';
		summary.innerHTML += '<div>Nodes: ' + requestedNodes+ '</div>';
		
		//popup
		if ((location.toString().toLowerCase().indexOf('omnituresummarypopup') >= 0))
		    alert(summary.innerHTML.toString());
		
		if (document.body) {
		    if (document.getElementById(summary.id) != undefined) 
		    {
		        document.body.removeChild(document.getElementById(summary.id));
		     } 
		    document.body.insertBefore(summary, document.body.childNodes[0]);
		    if (window.event != undefined) {
		        if (window.event != null) {
		            if(window.event.type == "click") window.onunload = pageEventsTracking.confirmReview;
	            } 
		    }
		} else {
		    window.setTimeout("pageEventsTracking.getSummary();",2000);
		}
	}

	function confirmReview() {
	    alert('An Omniture event has just beeen recorded.  Click OK when you are done reviewing this event data to see the end action of this event.');
	}
	
}

/* Smallbusiness specific method. returns the path minus the document for the channel name. */
function ChannelProp()
{
	var sChannel = '';
	var a_path = location.pathname.split("/");

	if (a_path[1] == "smallbusiness")
	{
		sChannel = a_path[2];
		switch (sChannel) 
		{
			case "hub.mspx": 
				sChannel = "Home Page";
				break; 
			case "worldwide.mspx" : 
				sChannel = "SB Worldwide";
				break; 
		}
	}
	return "SC:" + sChannel;
}
/* Plugin Config */
var s_usePlugins=true
function s_doPlugins() {
	/* Add calls to plugins here */
    	if ((!window.s_pageType) && (!window.s_pageName || s_pageName==""))
			s_vpr("s_pageName", s_vp_getPageName());

		s_vp_getCGI('s_campaign', 'xid');
		s_vp_getCGI('s_eVar', 'cid');
		
		s_vp_getCGI('s_eVar1', 'xid'); // Original Marketing Source
        s_vp_getCGI('s_eVar16', 'xid'); // Marketing Touches
		s_vp_getCGI('s_eVar11', 'cid'); // Internal Promotions
        s_vp_getCGI('s_eVar13','surveySeg'); //SurveySite Segmentation                         
        s_vp_trackSegment("s_prop13","s_eVar13","sg=");//SurveySite Segmentation
        s_vp_getCGI('s_eVar14','surveyAudience'); //SurveySite Audience Type
        s_vp_trackSegment("s_prop14","s_eVar14","sa=");//SurveySite Audience Type
		s_vp_trackRepeatVistor();//Track New vs. Repeat visitor

}

/************************** PLUGINS SECTION *************************/
/* You may insert any plugins you wish to use here.                 */


/*Set event15*/
function setEvent15() {
     s_linkTrackVars='s_events';
     s_linkTrackEvents='event15';
     s_linkType='o';
     s_events='event15';
     s_lnk=s_co(this);
     s_gs('[mssbcstartup]');
}

/*Set event11*/
function setEvent11() {
     s_linkTrackVars='s_events';
     s_linkTrackEvents='event11';
     s_linkType='o';
     s_events='event11';
     s_lnk=s_co(this);
     s_gs('[mssbcstartup]');
}

/* Set Visitor Type */
function s_vp_trackRepeatVistor() {
	var prop = "s_prop7";
	var ct = new Date();
	var ts = ct.getTime();
	var ckSet = parseInt(s_c_r('s_p_vt'));
	var cSess = ckSet + (30*60*1000); // current timestamp + 30 min
	var e = ct.setTime(ct.getTime) + (30*24*60*60*1000);

	if(document.cookie.indexOf('s_p_vt')==-1) {
		s_c_w("s_p_vt",ts,e); // set with timestamp value - will expire after 30 days
		s_vpr(prop,"New Visitor"); // persist visitor type
	}
	       
	if(cSess) {
		if (ts < cSess) {
			s_vpr(prop,"New Visitor");
		} else {
			s_vpr(prop,"Repeat Visitor");
		}
	} else {
		s_vpr(prop,"New Visitor");
	}
}


/*
 * SurveySite Segmentation Integration Function: 
 */

function s_vp_trackSegment(p,e,t)
{
    var cn="MS_SC";
    var tp=s_vp_getValue("s_pageName");
    if(!tp)
    {
       	tp=location.pathname;
    }
    var tc=s_vp_getValue(e), cv=s_c_r(cn);
    if(tc)
    {
    	tc = translateSegmentValue(p,tc);
	s_vpr(e,tc);	
       	var exp=new Date,y=exp.getYear();exp.setYear(y+10+(y<1900?1900:0));
   	if(cv)
   	{
   		var i=cv.indexOf(t), j;
   		if(i== -1)
   		{
   			s_c_w(cn,cv+"&"+t+tc,exp);
   		}
   		else  // value already exists in cookie
   		{
   			if(t == "sa=")
   				j=cv.indexOf("sg=");
   			else j=cv.indexOf("sa=");
   			if(j != -1)
   			{
   				var str=cv.substring(j,cv.length), k=str.indexOf("&");
   				if(k != -1)
   					str=str.substring(0,k);
   				s_c_w(cn,str+"&"+t+tc,exp);
   			}
   			else
   			{
   				s_c_w(cn,t+tc,exp);
   			}
   		}
   	}
   	else
        {
        	s_c_w(cn,t+tc,exp);
        }
        s_vpr(p,tc+" : "+tp);
     }
     else if (cv)
     {
     	var i=cv.indexOf(t);
   	if(i != -1)
   	{	
   		var str=cv.substring(i+3,cv.length),j=str.indexOf("&");
     		if(j==-1)
     		{
     			str = translateAudienceToSegment(p,str);
     			if(str=="1"||str=="2"||str=="3"||str=="4"||str=="5")
     				str=translateSegmentValue(p,str);
     			s_vpr(p,str+" : "+tp);
     			s_vpr(e,str);
     		}
     		else
     		{
      			var str=str.substring(0,j);
      			str = translateAudienceToSegment(p,str);
        		if(str=="1"||str=="2"||str=="3"||str=="4"||str=="5")
				str=translateSegmentValue(p,str);
     			s_vpr(p,str+" : "+tp);
        		s_vpr(e,str);
     		}
     	}
     }
}

//re-translates some segment (s_prop13/s_evar13) cookies which were set with audience (s_prop14/s_evar14) values
function translateAudienceToSegment(property, value) {
	var transValue = value;
	switch (property) {
		case "s_prop13":
		 	switch (value) {
				case "BDM":
					transValue = "1";
				break;
				case "IT Pro":
					transValue = "2";
				break;
				case "Info Worker":
					transValue = "3";
				break;
				case "Developer":
					transValue = "4";
				break;
				case "Home User":
					transValue = "3";
				break;
			}
		break;
	}
	
	return transValue;

}

//translates queryString int values for s_prop13/s_evar13, s_prop14/s_evar14 to human-readable strings
function translateSegmentValue(property,value) {
	var transValue = value;
	switch (property) {
		case "s_prop13":
		 	switch (value) {
				case "1":
					transValue = "Minimalist";
				break;
				case "2":
					transValue = "Pragmatist";
				break;
				case "3":
					transValue = "Integrator";
				break;
				case "4":
					transValue = "Innovator";
				break;
			}
		break;
		case "s_prop14":
			switch (value) {
				case "1":
					transValue = "BDM";
				break;
				case "2":
					transValue = "IT Pro";
				break;
				case "3":
					transValue = "Info Worker";
				break;
				case "4":
					transValue = "Developer";
				break;
				case "5":
					transValue = "Home User";
				break;
				case "6":
					transValue = "Unofficial IT Person";
				break;
			}
		break;
	}
	return transValue;
}

/*
 * Utility Function: Split a string (compatible with Javascript 1.0)
 */
function s_split(str,sep)
	{var si=0,sa=new Array(),i;while((str.length>0)&&(sep.length>0)){
	 i=str.indexOf(sep);if((!i)&&(sep!=str.substring(0,sep.length)))
	 break;if(i==-1){sa[si++] = str;break;}sa[si++]=str.substring(0,i);
	 str=str.substring(i+sep.length,str.length)}return sa}
	
/*
 * Utility Function: Determine If A Particular Value Exists Within An Array
 */
function s_ia(ar,v)
	{for(var i=0;i<ar.length;i++){if(ar[i]==v)return i}return -1}

/*
 * Plugin: Dynamically Generate Page Name Based On Current URL
 */
function s_vp_getPageName()
	{var pn=(window.s_siteID&&(""+s_siteID).length>0)?""+s_siteID:
	'',l=location,dp=(window.s_defaultPage)?""+s_defaultPage:'',e=
	(window.s_pathExcludeDelim)?s_pathExcludeDelim:'',cs=(window.
	s_pathConcatDelim)?s_pathConcatDelim:'',q=l.search.substring(1),
	p=l.pathname.substring(1),x=p.indexOf(e);p=((x<0)?p:p.substring(0,
	x)).split("/");for(j=0;j<p.length;j++){if(p[j].length>0){if(pn.
	length>0)pn+=cs;pn+=p[j]}else{if(dp.length>0){if(pn.length>0)pn+=
	cs;pn+=dp}}}if(q.length>0){if(window.s_queryVarsList){var qpa=new 
	Array(),qv=s_queryVarsList.split(","),qp=q.split("&"),tmp,idx;for
	(i=0;i<qp.length;i++){tmp=qp[i].split("=");qpa[i]=tmp[0]}for(i=0;
	i<qv.length;i++){idx=s_ia(qpa,qv[i]);if(idx>=0){if(pn.length
	>0)pn+=cs;pn+=qp[idx]}}}}return pn;}

/*
 * Plugin: Get Plugin Modified Value
 */
function s_vp_getValue(vs)
	{var k=vs.substring(0,2)=='s_'?vs.substring(2):vs;return s_wd[
	's_vpm_'+k]?s_wd['s_vpv_'+k]:s_gg(k)}
/*
 * Plugin: Get Query String CGI Variable Value
 */
function s_vp_getCGI(vs,k)
	{var v='';if(k&&s_wd.location.search){var q=s_wd.location.search,
	qq=q.indexOf('?');q=qq<0?q:q.substring(qq+1);v=s_pt(q,'&',s_cgif,
	k.toLowerCase())}s_vpr(vs,v)}function s_cgif(t,k){if(t){var te=
	t.indexOf('='),sk=te<0?t:t.substring(0,te),sv=te<0?'True':
	t.substring(te+1);if(sk.toLowerCase()==k)return s_epa(sv);}
	return ''}
/*
 * Plugin: Dynamically Generate Page Name Based On Current URL
 */
function s_vp_getPageName()
	{var pn=(window.s_siteID&&(""+s_siteID).length>0)?""+s_siteID:
	'',l=location,dp=(window.s_defaultPage)?""+s_defaultPage:'',e=
	(window.s_pathExcludeDelim)?s_pathExcludeDelim:'',cs=(window.
	s_pathConcatDelim)?s_pathConcatDelim:'',q=l.search.substring(1),
	p=l.pathname.substring(1),x=p.indexOf(e);p=((x<0)?p:p.substring(0,
	x)).split("/");for(j=0;j<p.length;j++){if(p[j].length>0){if(pn.
	length>0)pn+=cs;pn+=p[j]}else{if(dp.length>0){if(pn.length>0)pn+=
	cs;pn+=dp}}}if(q.length>0){if(window.s_queryVarsList){var qpa=new 
	Array(),qv=s_queryVarsList.split(","),qp=q.split("&"),tmp,idx;for
	(i=0;i<qp.length;i++){tmp=qp[i].split("=");qpa[i]=tmp[0]}for(i=0;
	i<qv.length;i++){idx=s_inArray(qpa,qv[i]);if(idx>=0){if(pn.length
	>0)pn+=cs;pn+=qp[idx]}}}}return pn}
/*
 * Plugin Utilities v2.0 (Required For All Plugins)
 */
function s_vpr(vs,v){if(s_wd[vs])s_wd[vs]=s_wd[vs];else s_wd[vs]=''
if(vs.substring(0,2) == 's_')vs=vs.substring(2);s_wd['s_vpv_'+vs]=v
s_wd['s_vpm_'+vs]=1}function s_dt(tz,t){var d=new Date;if(t)d.setTime(
t);d=new Date(d.getTime()+(d.getTimezoneOffset()*60*1000))
return new Date(Math.floor(d.getTime()+(tz*60*60*1000)))}
function s_vh_gt(k,v){var vh='|'+s_c_r('s_vh_'+k),vi=vh.indexOf('|'+v
+'='),ti=vi<0?vi:vi+2+v.length,pi=vh.indexOf('|',ti),t=ti<0?'':
vh.substring(ti,pi<0?vh.length:pi);return t}function s_vh_gl(k){var
vh=s_c_r('s_vh_'+k),e=vh?vh.indexOf('='):0;return vh?(vh.substring(0,
e?e:vh.length)):''}function s_vh_s(k,v){if(k&&v){var e=new Date,st=
e.getTime(),y=e.getYear(),c='s_vh_'+k,vh='|'+s_c_r(c)+'|',t=s_vh_gt(k,
v);e.setYear((y<1900?y+1900:y)+5);if(t)vh=s_rep(vh,'|'+v+'='+t+'|','|'
);if(vh.substring(0,1)=='|')vh=vh.substring(1);if(vh.substring(
vh.length-1,vh.length)=='|')vh=vh.substring(0,vh.length-1);vh=v
+'=[PCC]'+(vh?'|'+vh:'');s_c_w(c,vh,e);if(s_vh_gt(k,v)!='[PCC]')
return 0;vh=s_rep(vh,'[PCC]',st);s_c_w(c,vh,e)}return 1}

/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
//Overvrides default Omniture functionality that records data on initial Page View
//necessary when some page tracking data such as pageNames are not available on the initial load

if (pageEventsTracking.isAsyncPageView)
{
    DocumentWrite = document.write;
    WritesSoFar = "";
    document.write = function(statement){WritesSoFar +=statement;};
}


var s_linkType,s_linkName,s_objectID,s_un,s_ios=0,s_q='',s_code='',
code='',s_bcr=0,s_lnk='',s_eo='',s_vb,s_pl,s_tfs=0,s_etfs=0,s_wd=
window,s_d=s_wd.document,s_ssl=(s_wd.location.protocol.toLowerCase(
).indexOf('https')>=0),s_n=navigator,s_u=s_n.userAgent,s_apn=
s_n.appName,s_v=s_n.appVersion,s_apv,s_i,s_ie=s_v.indexOf('MSIE '),
s_ns6=s_u.indexOf('Netscape6/');if(s_v.indexOf('Opera')>=0||
s_u.indexOf('Opera')>=0)s_apn='Opera';var s_isie=(s_apn==
'Microsoft Internet Explorer'),s_isns=(s_apn=='Netscape'),s_isopera=(
s_apn=='Opera'),s_ismac=(s_u.indexOf('Mac')>=0);if(s_ie>0){s_apv=
parseInt(s_i=s_v.substring(s_ie+5));if(s_apv>3)s_apv=parseFloat(s_i)}
else if(s_ns6>0)s_apv=parseFloat(s_u.substring(s_ns6+10));else s_apv=
parseFloat(s_v);function s_fl(s,l){return s?(s+'').substring(0,l):s}
function s_co(o){if(!o)return o;var n=new Object,x;for(x in o)if(
x.indexOf("select")<0&&x.indexOf("filter")<0)n[x]=o[x];return n}
function s_num(x){var s=x.toString(),g='0123456789',p,d
for(p=0;p<s.length;p++){d=s.substring(p,p+1);if(g.indexOf(d)<0)
return 0}return 1}function s_rep(s,o,n){var i=s.indexOf(o),l=n.length>
0?n.length:1;while(s&&i>=0){s=s.substring(0,i)+n+s.substring(i
+o.length);i=s.indexOf(o,i+l)}return s}function s_ape(s){return s?
s_rep(escape(''+s),'+','%2B'):s}function s_epa(s){return s?unescape(
s_rep(''+s,'+',' ')):s}function s_pt(s,d,f,a){var t=s,x=0,y,r;while(t)
{y=t.indexOf(d);y=y<0?t.length:y;t=t.substring(0,y);r=f(t,a);if(r)
return r;x+=y+d.length;t=s.substring(x,s.length);t=x<s.length?t:''}
return ''}function s_isf(t,a){if(t.substring(0,2)=='s_')t=t.substring(
2);return (t!=''&&t==a)}function s_fsf(t,a){if(s_pt(a,',',s_isf,t))
s_fsg+=(s_fsg!=''?',':'')+t;return 0}var s_fsg;function s_fs(s,f){
s_fsg='';s_pt(s,',',s_fsf,f);return s_fsg}var s_c_d=''
function s_c_gdf(t,a){if(!s_num(t))return 1;return 0}function s_c_gd()
{var d=s_wd.location.hostname,n=s_gg('cookieDomainPeriods'),p;if(d&&
!s_c_d){n=n?parseInt(n):2;n=n>2?n:2;p=d.lastIndexOf('.');while(p>=0&&
n>1){p=d.lastIndexOf('.',p-1);n--}s_c_d=p>0&&s_pt(d,'.',s_c_gdf,0)?
d.substring(p):''}return s_c_d}function s_c_r(k){k=s_ape(k);var c=' '
+s_d.cookie,s=c.indexOf(' '+k+'='),e=s<0?s:c.indexOf(';',s),v=s<0?'':
s_epa(c.substring(s+2+k.length,e<0?c.length:e));return v!='[[B]]'?v:''
}function s_c_w(k,v,e){var d=s_c_gd(),l=s_gg('cookieLifetime'),s;v=''
+v;l=l?(''+l).toUpperCase():'';if(e&&l!='SESSION'&&l!='NONE'){s=(v!=
''?parseInt(l?l:0):-60);if(s){e=new Date;e.setTime(e.getTime()+(s*1000
))}}if(k&&l!='NONE'){s_d.cookie=k+'='+s_ape(v!=''?v:'[[B]]')+'; '
+'path=/;'+(e&&l!='SESSION'?' expires='+e.toGMTString()+';':'')+(d?
' domain='+d+';':'');return s_c_r(k)==v}return 0}function s_cet(f,a,
et,oe,fb){var r,d=0
/*@cc_on@if(@_jscript_version>=5){try{return f(a)}catch(e){return et(e)}d=1}@end@*/
if(!d){if(s_ismac&&s_u.indexOf('MSIE 4')>=0)return fb(a);else{
s_wd.s_oe=s_wd.onerror;s_wd.onerror=oe;r=f(a);s_wd.onerror=s_wd.s_oe
return r}}}function s_gtfset(e){return s_tfs}function s_gtfsoe(e){
s_wd.onerror=s_wd.s_oe;s_etfs=1;var code=s_gs(s_un);if(code)s_d.write(
code);s_etfs=0;return true}function s_gtfsfb(a){return s_wd}
function s_gtfsf(w){var p=w.parent,l=w.location;s_tfs=w;if(p&&
p.location!=l&&p.location.host==l.host){s_tfs=p;return s_gtfsf(s_tfs)}
return s_tfs}function s_gtfs(){if(!s_tfs){s_tfs=s_wd;if(!s_etfs)s_tfs=
s_cet(s_gtfsf,s_tfs,s_gtfset,s_gtfsoe,s_gtfsfb)}return s_tfs}
function s_ca(un){un=un.toLowerCase();var ci=un.indexOf(','),fun=ci<0?
un:un.substring(0,ci),imn='s_i_'+fun;if(s_d.images&&s_apv>=3&&
!s_isopera&&(s_ns6<0||s_apv>=6.1)){s_ios=1;if(!s_d.images[imn]&&(
!s_isns||(s_apv<4||s_apv>=5))){s_d.write('<im'+'g name="'+imn
+'" height=1 width=1 border=0 alt="">');if(!s_d.images[imn])s_ios=0}}}
function s_it(un){s_ca(un)}function s_mr(un,sess,q,ta){un=
un.toLowerCase();var ci=un.indexOf(','),fun=ci<0?un:un.substring(0,ci
),unc=s_rep(fun,'_','-'),imn='s_i_'+fun,ns=s_gg('visitorNamespace'),
im,b,e,rs='http'+(s_ssl?'s':''
)+'://'+(ns?ns:(s_ssl?'102':unc))+'.112.2O7.net/b/ss/'+un+'/1/G.9-PD-R/'
+sess+'?[AQB]&ndh=1'+(q?q:'')+(s_q?s_q:'')+'&[AQE]';if(s_ios){im=s_wd[
imn]?s_wd[imn]:s_d.images[imn];if(!im)im=s_wd[imn]=new Image;im.src=rs
if(rs.indexOf('&pe=')>=0&&(!ta||ta=='_self'||ta=='_top'||(s_wd.name&&
ta==s_wd.name))){b=e=new Date;while(e.getTime()-b.getTime()<500)e=
new Date}return ''}return '<im'+'g sr'+'c="'+rs
+'" width=1 height=1 border=0 alt="">'}function s_gg(v){var g='s_'+v
return s_wd[g]||s_wd.s_disableLegacyVars?s_wd[g]:s_wd[v]}var s_qav=''
function s_havf(t,a){var b=t.substring(0,4),s=t.substring(4),n=
parseInt(s),k='s_g_'+t,m='s_vpm_'+t,q=t,v=s_gg('linkTrackVars'),e=
s_gg('linkTrackEvents');if(!s_wd['s_'+t])s_wd['s_'+t]='';s_wd[k]=s_wd[
m]?s_wd['s_vpv_'+t]:s_gg(t);if(s_lnk||s_eo){v=v?v+',pageName,pageURL,'
+'referrer,charSet,visitorNamespace,cookieDomainPeriods,cookieLifetim'
+'e,currencyCode,purchaseID':'';if(v&&!s_pt(v,',',s_isf,t))s_wd[k]=''
if(t=='events'&&e)s_wd[k]=s_fs(s_wd[k],e)}s_wd[m]=0;if(t=='pageURL')q=
'g';else if(t=='referrer')q='r';else if(t=='charSet')q='ce';else if(
t=='visitorNamespace')q='ns';else if(t=='cookieDomainPeriods')q='cdp'
else if(t=='cookieLifetime')q='cl';else if(t=='currencyCode')q='cc'
else if(t=='channel')q='ch';else if(t=='campaign')q='v0';else if(
s_num(s)){if(b=='prop')q='c'+n;else if(b=='eVar')q='v'+n;else if(b==
'hier'){q='h'+n;s_wd[k]=s_fl(s_wd[k],255)}}if(s_wd[k]&&t!='linkName'&&
t!='linkType')s_qav+='&'+q+'='+s_ape(s_wd[k]);return ''}
function s_hav(){var n,av='charSet,visitorNamespace,cookieDomainPerio'
+'ds,cookieLifetime,pageName,pageURL,referrer,channel,server,pageType'
+',campaign,state,zip,events,products,currencyCode,purchaseID,linkNam'
+'e,linkType';for(n=1;n<51;n++)av+=',prop'+n+',eVar'+n+',hier'+n
s_qav='';s_pt(av,',',s_havf,0);return s_qav}function s_lnf(t,h){t=t?
t.toLowerCase():'';h=h?h.toLowerCase():'';var te=t.indexOf('=');if(t&&
te>0&&h.indexOf(t.substring(te+1))>=0)return t.substring(0,te)
return ''}function s_ln(h){if (s_gg('linkNames'))return s_pt(s_gg(
'linkNames'),',',s_lnf,h);return ''}function s_ltdf(t,h){t=t?
t.toLowerCase():'';h=h?h.toLowerCase():'';var qi=h.indexOf('?');h=qi>=
0?h.substring(0,qi):h;if(t&&h.substring(h.length-(t.length+1))=='.'+t)
return 1;return 0}function s_ltef(t,h){t=t?t.toLowerCase():'';h=h?
h.toLowerCase():'';if(t&&h.indexOf(t)>=0)return 1;return 0}
function s_lt(h){var lft=s_gg('linkDownloadFileTypes'),lef=s_gg(
'linkExternalFilters'),lif=s_gg('linkInternalFilters')?s_gg(
'linkInternalFilters'):s_wd.location.hostname;h=h.toLowerCase();if(
s_gg('trackDownloadLinks')&&lft&&s_pt(lft,',',s_ltdf,h))return 'd';if(
s_gg('trackExternalLinks')&&(lef||lif)&&(!lef||s_pt(lef,',',s_ltef,h)
)&&(!lif||!s_pt(lif,',',s_ltef,h)))return 'e';return ''}function s_lc(
e){s_lnk=s_co(this);s_gs('');s_lnk='';if(this.s_oc)return this.s_oc(e)
return true}function s_ls(){var l,ln,oc
for(ln=0;ln<s_d.links.length;ln++){l=s_d.links[ln];oc=l.onclick?
l.onclick.toString():'';if(oc.indexOf("s_gs(")<0&&oc.indexOf("s_lc(")<
0){l.s_oc=l.onclick;l.onclick=s_lc}}}function s_bc(e){s_eo=
e.srcElement?e.srcElement:e.target;s_gs('');s_eo=''}function s_ot(o){
var a=o.type,b=o.tagName;return (a&&a.toUpperCase?a:b&&b.toUpperCase?
b:o.href?'A':'').toUpperCase()}function s_oid(o){var t=s_ot(o),p=
o.protocol,c=o.onclick,n='',x=0;if(!o.s_oid){if(o.href&&(t=='A'||t==
'AREA')&&(!c||!p||p.toLowerCase().indexOf('javascript')<0))n=o.href
else if(c){n=s_rep(s_rep(s_rep(s_rep(c.toString(),"\r",''),"\n",''),
"\t",''),' ','');x=2}else if(o.value&&(t=='INPUT'||t=='SUBMIT')){n=
o.value;x=3}else if(o.src&&t=='IMAGE')n=o.src;if(n){o.s_oid=s_fl(n,100
);o.s_oidt=x}}return o.s_oid}function s_rqf(t,un){var e=t.indexOf('='
),u=e>=0?','+t.substring(0,e)+',':'';return u&&u.indexOf(','+un+',')>=
0?s_epa(t.substring(e+1)):''}function s_rq(un){var c=un.indexOf(','),
v=s_c_r('s_sq'),q='';if(c<0)return s_pt(v,'&',s_rqf,un);return s_pt(
un,',',s_rq,0)}var s_sqq,s_squ;function s_sqp(t,a){var e=t.indexOf('='
),q=e<0?'':s_epa(t.substring(e+1));s_sqq[q]='';if(e>=0)s_pt(
t.substring(0,e),',',s_sqs,q);return 0}function s_sqs(un,q){s_squ[un]=
q;return 0}function s_sq(un,q){s_sqq=new Object;s_squ=new Object
s_sqq[q]='';var k='s_sq',v=s_c_r(k),x,c=0;s_pt(v,'&',s_sqp,0);s_pt(un,
',',s_sqs,q);v='';for(x in s_squ)s_sqq[s_squ[x]]+=(s_sqq[s_squ[x]]?
',':'')+x;for(x in s_sqq)if(x&&s_sqq[x]&&(x==q||c<2)){v+=(v?'&':'')
+s_sqq[x]+'='+s_ape(x);c++}return s_c_w(k,v,0)}function s_wdl(e){
s_wd.s_wd_l=1;var r=true;if(s_wd.s_ol)r=s_wd.s_ol(e);if(s_wd.s_ls)
s_wd.s_ls();return r}function s_wds(un){un=un.toLowerCase()
s_wd.s_wd_l=1;if(s_apv>3&&(!s_isie||!s_ismac||s_apv>=5)){s_wd.s_wd_l=0
if(!s_wd.s_unl)s_wd.s_unl=new Array;s_wd.s_unl[s_wd.s_unl.length]=un
if(s_d.body&&s_d.body.attachEvent){if(!s_wd.s_bcr&&
s_d.body.attachEvent('onclick',s_bc))s_wd.s_bcr=1}else if(s_d.body&&
s_d.body.addEventListener){if(!s_wd.s_bcr&&s_d.body.addEventListener(
'click',s_bc,false))s_wd.s_bcr=1}else{if(!s_wd.s_olr){s_wd.s_ol=
s_wd.onload;s_wd.onload=s_wdl}s_wd.s_olr=1}}}function s_iepf(i,a){if(
i.substring(0,1)!='{')i='{'+i+'}';if(s_d.body.isComponentInstalled(i,
'ComponentID')){var n=s_pl.length;s_pl[n]=new Object;s_pl[n].name=i
+':'+s_d.body.getComponentVersion(i,'ComponentID')}return 0}
function s_vs(un,x){var s=s_gg('visitorSampling'),g=s_gg(
'visitorSamplingGroup'),k='s_vsn_'+un+(g?'_'+g:''),n=s_c_r(k),e=
new Date,y=e.getYear();e.setYear(y+10+(y<1900?1900:0));if(s){s*=100
if(!n){if(!s_c_w(k,x,e))return 0;n=x}if(n%10000>s)return 0}return 1}
function s_dyasmf(t,m){if(t&&m&&m.indexOf(t)>=0)return 1;return 0}
function s_dyasf(t,m){var i=t?t.indexOf('='):-1,un,s;if(i>=0&&m){var
un=t.substring(0,i),s=t.substring(i+1);if(s_pt(s,',',s_dyasmf,m))
return un}return 0}function s_dyas(un,l,m){if(!m)m=s_wd.location.host
if(!m.toLowerCase)m=m.toString();l=l.toLowerCase();m=m.toLowerCase()
var nun=s_pt(l,';',s_dyasf,m);if(nun)return nun;return un}
function s_gs(un){un=un.toLowerCase()
var dyas=s_gg('dynamicAccountSelection'),dyal=s_gg(
'dynamicAccountList'),dyam=s_gg('dynamicAccountMatch');if(dyas&&dyal)
un=s_dyas(un,dyal,dyam);
s_un=un;var trk=1,tm=new Date,sed=Math&&Math.random?Math.floor(
Math.random()*10000000000000):tm.getTime(),sess='s'+Math.floor(
tm.getTime()/10800000)%10+sed,yr=tm.getYear(),tfs=s_gtfs(),t,ta='',q=
'',qs='';yr=yr<1900?yr+1900:yr;t=tm.getDate()+'/'+tm.getMonth()+'/'+yr
+' '+tm.getHours()+':'+tm.getMinutes()+':'+tm.getSeconds()+' '
+tm.getDay()+' '+tm.getTimezoneOffset();if(!s_q){var tl=tfs.location,
s='',c='',v='',p='',bw='',bh='',j='1.0',k=s_c_w('s_cc','true',0)?'Y':
'N',hp='',ct='',iepl=s_gg('iePlugins'),pn=0,ps;if(s_apv>=4)s=
screen.width+'x'+screen.height;if(s_isns||s_isopera){if(s_apv>=3){j=
'1.1';v=s_n.javaEnabled()?'Y':'N';if(s_apv>=4){j='1.2';c=
screen.pixelDepth;bw=s_wd.innerWidth;bh=s_wd.innerHeight;if(s_apv>=
4.06)j='1.3'}}s_pl=s_n.plugins}else if(s_isie){if(s_apv>=4){v=
s_n.javaEnabled()?'Y':'N';j='1.2';c=screen.colorDepth;if(s_apv>=5){bw=
s_d.documentElement.offsetWidth;bh=s_d.documentElement.offsetHeight;j=
'1.3';if(!s_ismac&&s_d.body){s_d.body.addBehavior("#default#homePage")
hp=s_d.body.isHomePage(tl)?"Y":"N";s_d.body.addBehavior(
"#default#clientCaps");ct=s_d.body.connectionType;if(iepl){s_pl=
new Array;s_pt(iepl,',',s_iepf,'')}}}}else r='';if(!s_pl&&iepl)s_pl=
s_n.plugins}if(s_pl)while(pn<s_pl.length&&pn<30){ps=s_fl(s_pl[pn
].name,100)+';';if(p.indexOf(ps)<0)p+=ps;pn++}s_q=(s?'&s='+s_ape(s):''
)+(c?'&c='+s_ape(c):'')+(j?'&j='+j:'')+(v?'&v='+v:'')+(k?'&k='+k:'')+(
bw?'&bw='+bw:'')+(bh?'&bh='+bh:'')+(ct?'&ct='+s_ape(ct):'')+(hp?'&hp='
+hp:'')+(s_vb?'&vb='+s_vb:'')+(p?'&p='+s_ape(p):'')}if(s_gg(
'usePlugins'))s_wd.s_doPlugins();var l=s_wd.location,r=
tfs.document.referrer;if(!s_gg("pageURL"))s_wd.s_pageURL=s_fl(l?l:'',
255);if(!s_gg("referrer"))s_wd.s_referrer=s_fl(r?r:'',255);q+=(t?'&t='
+s_ape(t):'')+s_hav();if(s_lnk||s_eo){var o=s_eo?s_eo:s_lnk;if(!o)
return '';var p=s_wd.s_g_pageName,w=1,t=s_ot(o),n=s_oid(o),x=o.s_oidt,
h,l,i,oc;if(s_eo&&o==s_eo){while(o&&!n&&t!='BODY'){o=o.parentElement?
o.parentElement:o.parentNode;if(!o)return '';t=s_ot(o);n=s_oid(o);x=
o.s_oidt}oc=o.onclick?o.onclick.toString():'';if(oc.indexOf("s_gs(")>=
0)return ''}ta=o.target;h=o.href?o.href:'';i=h.indexOf('?');h=s_gg(
'linkLeaveQueryString')||i<0?h:h.substring(0,i);l=s_gg('linkName')?
s_gg('linkName'):s_ln(h);t=s_gg('linkType')?s_gg('linkType'
).toLowerCase():s_lt(h);if(t&&(h||l))q+='&pe=lnk_'+(t=='d'||t=='e'?
s_ape(t):'o')+(h?'&pev1='+s_ape(h):'')+(l?'&pev2='+s_ape(l):'');else
trk=0;if(s_gg('trackInlineStats')){if(!p){p=s_wd.s_g_pageURL;w=0}t=
s_ot(o);i=o.sourceIndex;if(s_gg('objectID')){n=s_gg('objectID');x=1;i=
1}if(p&&n&&t)qs='&pid='+s_ape(s_fl(p,255))+(w?'&pidt='+w:'')+'&oid='
+s_ape(s_fl(n,100))+(x?'&oidt='+x:'')+'&ot='+s_ape(t)+(i?'&oi='+i:'')}
s_wd.s_linkName=s_wd.s_linkType=s_wd.s_objectID=s_lnk=s_eo='';if(
!s_wd.s_disableLegacyVars)s_wd.linkName=s_wd.linkType=s_wd.objectID=''
}if(!trk&&!qs)return '';var code='';if(un){if(trk&&s_vs(un,sed))code+=
s_mr(un,sess,q+(qs?qs:s_rq(un)),ta);s_sq(un,trk?'':qs)}else if(
s_wd.s_unl)for(var unn=0;unn<s_wd.s_unl.length;unn++){un=s_wd.s_unl[
unn];if(trk&&s_vs(un,sed))code+=s_mr(un,sess,q+(qs?qs:s_rq(un)),ta)
s_sq(un,trk?'':qs)}return code}function s_dc(un){un=un.toLowerCase()
var dyas=s_gg('dynamicAccountSelection'),dyal=s_gg(
'dynamicAccountList'),dyam=s_gg('dynamicAccountMatch');if(dyas&&dyal)
un=s_dyas(un,dyal,dyam);
s_wds(un);s_ca(un);return s_gs(un)}
s_code=s_dc(s_account);if(s_code)s_d.write(s_code)

function sendAnalyticsEvent(accnt){
accnt=accnt?accnt:s_account;void(s_gs(accnt))}

function sendLinkEvent(accnt,lnkname,type){
accnt=accnt?accnt:s_account;s_linkType=type?type:"o";s_lnk=true;
s_linkName=lnkname?lnkname:s_linkName?s_linkName:"Flash Link Event";
void(s_gs(accnt))}

