var sendImage;
sendImage = true;

function PageLoadTime()
{
   endload = new Date().getTime();
   
   if (typeof(startload) != "undefined"){ 
        loadtime = (endload-startload)/1000;
   } 
   else {
        loadtime = 0;
   }
        
   return loadtime;
}

var delayValue = 600;
function delay(gap) { /* gap is in millisecs */
    var then, now; then = new Date().getTime();
    now = then;
    while ((now - then) < gap) {
        now = new Date().getTime();
    }
} //


function OmniturePageViewTag(pageName, server, channel, pageType, prop1, prop2, prop3, prop4, prop5) {

    sendImage = true;
	/* You may give each page an identifying name, server, and channel on
	the next lines. */
	//alert(pageName);
	// prodview needs to trigger an event
	if (pageName.indexOf("PRODVIEW:") == 0) {
		s.pageName = pageName //pageName.substr(9,pageName.length);
		s.events="prodView" + ",VisitWithProdview";
		
		if (pageType != "") {
			s.products=";" + pageType
		}
	}
	else if ((pageName.toLowerCase().indexOf("/checkout2/complete.asp") != -1) || (pageName.toLowerCase().indexOf("/checkout/v2/complete.aspx") != -1))
	{
		//if (!orderFailure) {
			s.events="purchase"
		//}
		s.pageName = pageName;
	}	
	else if (pageName.toLowerCase().indexOf("/checkout2/billing.asp") != -1) {
		s.pageName = pageName;
		s.events = "scCheckout"
    }
    else if (pageName.toLowerCase().indexOf("/app/secure/checkout/v2/begin.aspx") != -1) {
        s.pageName = pageName;
        s.events = "scCheckout"
    }
	else {
		s.pageName = pageName
		s.events=""
		s.products=""
	}
	
	s.server = server
	s.channel = channel
	s.pageType = ""
	s.prop1 = prop1
	s.prop2 = prop2
	s.prop3 = prop3
	s.prop4 = prop4
	
	// if systemId is defined, set s.prop5/s.eVar5 to that
	if (typeof(systemId) != 'undefined') {
	    s.prop5 = systemId;
	    s.eVar5 = systemId;
	} 
	else {
	    s.prop5 = "";
	}

	/* E-commerce Variables */
	s.campaign=""
	s.state=""
	s.zip=""
	s.purchaseID=""
	s.eVar1=s.prop1
	s.eVar2 = ""
	s.eVar3 = ""

	if (prop1.length > 0) {
		s.eVar2="search"
	} else if (prop5.length > 0) {
		s.eVar2="browse"
		s.eVar3=prop5
	}


	s.eVar4 = ""
	s.pageName = s.pageName.toLowerCase();

}
// This function sends the Omniture Shopping Cart tag.
function OmnitureShoppingCartTag(pageName, server, channel, pageType, productArray, event) {

    sendImage = true;
	/* You may give each page an identifying name, server, and channel on
	the next lines. */
    if (pageName.toLowerCase().indexOf("/app/cart/default.aspx") != -1) {
		// if clicking on the top link to cart use the scView event
		if (s.getQueryParam('wm') == "tn1") {
			s.events = "scView"
		} else {
			s.events = "scAdd"
        }

        if (event) {

            switch (event.toLowerCase()) {
                case "cartopen":
                    s.events = "scOpen";
                    break;
                default:
                    break;
            }
        }
	}
	else if ((pageName.toLowerCase().indexOf("/checkout2/verify.asp") != -1) || (pageName.toLowerCase().indexOf("/checkout/v2/verify.aspx") != -1))
	{
			sendImage = false;  // do not send the image request at this time, to prevent duplicate information
	}	
	else if ((pageName.toLowerCase().indexOf("/checkout2/complete.asp") != -1) || (pageName.toLowerCase().indexOf("/checkout/v2/complete.aspx") != -1))
	{
		//if (!orderFailure) {
			s.events="purchase"
			sendImage = false;  // do not send the image request at this time, to prevent duplicate orders
		//}
	}
	else {
		s.events="scView"
	}

	s.pageName = pageName
	s.server = server
	s.channel = channel
	s.pageType = pageType


	/* E-commerce Variables */
	s.products = productArray
	s.pageName = s.pageName.toLowerCase();

}

function OmnitureOrderCompleteTag(email, city, state, zipcode, ordernumber) {

    sendImage = true;
	s.state = state
	s.zip = zipcode
	s.purchaseID = ordernumber
    
    if(!s.purchaseID && s.events=="purchase") {
        s.events=""
    }	

}
function OmnitureECommerceTag(eVar1, eVar2, eVar3, eVar4, eVar5) {

	/* E-commerce Variables */
	s.eVar1=eVar1
	s.eVar2=eVar2
	s.eVar3=eVar3
	s.eVar4=eVar4
	s.eVar5=eVar5
}

function OmnitureABTestProp9(value) 
{
    s.eVar9 = value;
    s.prop9 = value;
    
}

function OmnitureProp11(value) 
{
    s.eVar11 = value;
    s.prop11 = value;
    
}

function OmnitureProp15(value) 
{
    s.eVar15 = value;
    s.prop15 = value;
    
}

// Set the prop and value for header clicks.
// Click tracking for header links.  Currently only
// Chat and Email.
function SetOmnitureHeaderProp(PropNumber, Value) 
{
    if (PropNumber >= 1 && PropNumber <= 50) {
        var s2 = s_gi(s_account);
        s2.linkTrackVars = 'prop' + PropNumber;
        eval("s2.prop" + PropNumber + "='" + Value + "';");
        s2.events = 'HeaderLinks';
        s2.tl('HeaderLinks', 'o', 'HeaderLinks');
        delay(delayValue);  // need the delay so we can get this data to Omniture before the next data for the page draw.
    } 
}


function SetOmnitureEvar(EvarNumber, Value) 
{
    if (EvarNumber >= 1 && EvarNumber <= 50) {
        eval("s.eVar" + EvarNumber + "='" + Value + "';");
        return true;
    }
    else
        return false;
}

function OmniturePropX(value, x) 
{
    switch (x)
    {
        case 18:
            s.eVar18 = value;
            s.prop18 = value;
            break;
        case 19:
            s.eVar19 = value;
            s.prop19 = value;
            break;            
        case 20:
            s.eVar20 = value;
            s.prop20 = value;        
            break;
        case 21:
            s.eVar21 = value;
            s.prop21 = value;        
            break;
        case 22:
            s.eVar22 = value;
            s.prop22 = value;        
            break;
        case 23:
            s.eVar23 = value;
            s.prop23 = value;        
            break;
        case 24:
            s.eVar24 = value;
            s.prop24 = value;        
            break;
        case 25:
            s.eVar25 = value;
            s.prop25 = value;        
            break; 
        case 26:
            s.eVar26 = value;
            s.prop26 = value;        
            break; 
        case 27:
            s.eVar27 = value;
            s.prop27 = value;        
            break; 
        case 28:
            s.eVar28 = value;
            s.prop28 = value;        
            break; 
        case 29:
            s.eVar29 = value;
            s.prop29 = value;        
            break; 
        case 30:
            s.eVar30 = value;
            s.prop30 = value;        
            break;                                                                                                                       
        default:
            break;
    }


}



function CommitDataSend() 
{
    // Important: this is the only function to call this code

    /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
    try
    {
        if (sendImage == true) {
	        var s_code=s.t();if(s_code)document.write(s_code)
	    }
	}
	catch(err) {}
}

function SetS2EvarValue(s2, s2EvarNumber, Value) {
    if (s2EvarNumber >= 1 && s2EvarNumber <= 50) {
        eval("s2.eVar" + s2EvarNumber + "='" + Value + "';");        
        return true;
    }
    else
        return false;
}

function SetS2PropValue(s2, s2PropNumber, Value) {
    if (s2PropNumber >= 1 && s2PropNumber <= 50) {
        eval("s2.prop" + s2PropNumber + "='" + Value + "';");
        return true;
    }
    else
        return false;
}


function CreateOnClickEvent(sTitle, nEvarNumber, sValue) {
    try {
        var s2 = s_gi(s_account);
        if (SetS2EvarValue(s2, nEvarNumber, sValue)) 
        {
            s2.linkTrackVars = 'eVar' + nEvarNumber;
            s2.linkTrackEvents = sTitle;
            s2.events = sTitle;
            s2.tl(sTitle, 'o', sTitle);

        }
    }
    catch (err) { }
    {
    }
    delay(delayValue);  // need the delay so we can get this data to Omniture before the next data for the page draw.
}



function CreateCMTagEvent(sName, sVal)
{
    try
    { 
        var s2=s_gi(sName); 
        s2.linkTrackVars='prop10,evar10,events'; 
        s2.linkTrackEvents='event1'; 
        s2.prop10=sVal; 
        s2.eVar10=sVal; 
        s2.events='event1'; 
        s2.tl(this, 'o', ''); 
    } 
    catch(err) {}
    {
    }
    delay(delayValue);  // need the delay so we can get this data to Omniture before the next data for the page draw.
}

function CreateClickMapEventAB(sName, sGroupId, sBlockId, sItemNo, sAB)
{
     try
     {
        var s2 = s_gi(s_account);        
        s2.linkTrackVars='prop10,eVar10,prop12,eVar12,prop13,eVar13,prop14,eVar14,events'; 
        s2.linkTrackEvents='event1'; 
        s2.prop10=sGroupId + ':' + sBlockId + ':' + sAB; 
        s2.eVar10=sGroupId + ':' + sBlockId + ':' + sAB; 
        s2.prop12=sGroupId;
        s2.eVar12=sGroupId;
        s2.prop13=sAB;
        s2.eVar13=sAB;
        s2.prop14=sItemNo + ':' + sAB; 
        s2.eVar14=sItemNo + ':' + sAB; 
        s2.events='event1';
        s2.tl(sName, 'o', 'Recommended Products');
        delay(delayValue);  // need the delay so we can get this data to Omniture before the next data for the page draw.
     }
     
     catch(err)
     {
        //alert(sItemNo);
     }
}

function HomePageClickTracking(testcell, blockClicked)
{
    var s2 = s_gi(s_account);
    s2.linkTrackVars = 'eVar17';
    s2.linkTrackEvents = 'HomePage';
    s2.eVar17 = testcell + ':' + blockClicked;
    s2.events = 'HomePage';
    s2.tl('HomePage', 'o', 'HomePage');
    delay(delayValue);  // need the delay so we can get this data to Omniture before the next data for the page draw.

}

function CreateOnClickEvent2(nEvarNumber, sValue) {
    try {
        var s2 = s_gi(s_account);

        if (SetS2EvarValue(s2, nEvarNumber, sValue)) {
            if (s2.linkTrackVars == "None")
                s2.linkTrackVars = "";

            s2.linkTrackVars = s2.linkTrackVars + 'eVar' + nEvarNumber + ',';
            s2.linkTrackEvents = 'ClickTracking';
            s2.events = 'ClickTracking';
            s2.linkTrackVars = '';
        }
    }
    catch (err) { }
    {
    }
}


// This is used to track click events that trigger an Ajax call (no Page reload)
function CreateOnClickEventAjax(sTitle, nPropNumber, sValue) {
    try {
        var s3 = s_gi(s_account);

        s3.pageName = "";

        if (SetS2PropValue(s3, nPropNumber, sValue)) {
            s3.linkTrackVars = "";
            s3.linkTrackEvents = "";
            s3.tl(sTitle, 'o', sTitle);
            delay(delayValue); 
        }
    }
    catch (err) { }
    {
    }

}


function SendClickEvent() {
    var s2 = s_gi(s_account);

    if (s2.events == 'ClickTracking') {
        s2.tl(this, 'o', "ClickTracking");
        delay(delayValue);
    }
}

function VideoTracking(tab, section, videoId) {
    CreateOnClickEvent2(12, videoId);
    CreateOnClickEvent2(14, tab + ":" + section + ":" + videoId);
    SendClickEvent();
}