﻿/// <reference path="jquery.vsdoc.1.2.6.js" />

function WebTracker()
{
	/// <summary>
	/// Class for tracking website events. Currently uses Web Trends for tracking.
	/// Allows for adding meta tags and doing inline dynamic tracking for button clicks and the like.
	/// Note: depends on WebTrends.8.0d.js
	/// </summary>
}

WebTracker.AddMetaTag = function(name, value)
{
	/// <summary>Adds a new meta tag with the given name and value to the page</summary>
	/// <param name="name" type="string">The name of the meta tag</param>
	/// <param name="value" type="string">The value of the meta tag</param>
	
	$("head").append('<meta name="' + name + '" content="' + value + '" />');
}

WebTracker.AppendToMetaTag = function(name, value)
{
	/// <summary>Adds or appends the given value to a meta tag with the given name</summary>
	/// <param name="name" type="string">The name of the meta tag</param>
	/// <param name="value" type="string">The value of the meta tag</param>

	var content = "";

	if ($("meta[name='" + name + "']").length)
	{
		content = $("meta[name='" + name + "']").attr("content") + ";" + value;
		$("meta[name='" + name + "']").remove();
	}
	else
	{
		content = value;
	}

	WebTracker.AddMetaTag(name, content);
}

WebTracker.TrackEvent = function(eventUrl, eventName, stepNumber, pathName)
{
	/// <summary>
	/// Static method. Tracks a particular website event - used for dynamic actions like button clicks, not page loads.
	/// Will do nothing if webtrends tracking is disabled.
	/// </summary>
	/// <param name="eventUrl" type="string">The URL to log against the action - does not need to be a real URL</param>
	/// <param name="eventName" type="string">The descriptive name of the action</param>
	/// <param name="stepNumber" type="number" integer="true" optional="true">The web trends step number. If present, also include pathName</param>
	/// <param name="pathName" type="string" optional="true">The name of the web trends path/funnel/journey/whatever we are on. Eg Booking Funnel 2009</param>

	// ensure that the webtrends js file has been loaded - if webtrends tagging is disabled then the js file will not load
	if (typeof (dcsMultiTrack) === "function")
	{
		if (stepNumber != undefined)
		{
			dcsMultiTrack('DCS.dcsuri', '/' + lang + '/' + eventUrl, 'WT.ti', eventName, 'WT.si_n', pathName, 'WT.si_x', stepNumber);
		}
		else
		{
			dcsMultiTrack('DCS.dcsuri', '/' + lang + '/' + eventUrl, 'WT.ti', eventName);
		}
	}
}

WebTracker.TrackTaggedLink = function(tag) {
    if (typeof (dcsMultiTrack) == "function") {
        // updated link to as supplied by webtrends, with minor fixes as their link was bad js, td1900    
        dcsMultiTrack('DCS.dcsuri', '/asp/redirect.asp', 'DCSext.t', tag, 'DCSext.l', lang, 'WT.ti', 'Redirecting to target page', 'DCSext.site_version', '2', 'DCSext.display_language', lang, 'DCSext.partnerlink', tag);
    }
}

WebTracker.TrackTaggedLinkET = function(link, tag) {
    WebTracker.TrackTaggedLink(tag);
    setTimeout('document.location = "' + link + '"', 100);
    return false;
}

WebTracker.TrackTaggedLinkEj1 = function(tag, langcode) {

    if (typeof (dcsMultiTrack) === "function") {
        
        // updated link to as supplied by webtrends, with minor fixes as their link was bad js, td1900
        dcsMultiTrack('DCS.dcsuri', '/asp/redirect.asp', 'DCSext.t', tag, 'DCSext.l', langcode, 'WT.ti', 'Redirecting to target page', 'DCSext.site_version', '2', 'DCSext.display_language', langcode, 'DCSext.partnerlink', tag);
                
    }
}


WebTracker.TrackTaggedLinkEj1Explicit = function(link,tag, langcode) {

    if (typeof (dcsMultiTrack) === "function") {
        
        dcsMultiTrack('DCS.dcsuri', link, 'DCSext.t', tag, 'DCSext.l', langcode, 'WT.ti', 'Redirecting to target page', 'DCSext.site_version', '2', 'DCSext.display_language', langcode, 'DCSext.partnerlink', tag);
    }
}



WebTracker.TrackTaggedLinkEj1ET = function(tag, langcode, link) {

    WebTracker.TrackTaggedLinkEj1Explicit(link, tag, langcode);    
    setTimeout('document.location = "' + link + '"', 100);
    return false;
}

WebTracker.TrackHotelsActivity = function(url, title, eventType) {

    var eventTypeNumber = 0;

    if (typeof (dcsMultiTrack) === "function") {
        // updated link to as supplied by webtrends, with minor fixes as their link was bad js, td1900

        switch(eventType.toUpperCase())
        {
        case 'DOWNLOAD':
          eventTypeNumber = 20;
          break;
        case 'MAILTO':
          eventTypeNumber = 23;
          break;
        case 'JAVASCRIPT':
          eventTypeNumber = 22;
          break;
        case 'FORMBUTTON':
          eventTypeNumber = 29;
          break;
        case 'ANCHOR':
          eventTypeNumber = 21;
          break;
        default:
            eventTypeNumber = 0;
            break;
        }

        dcsMultiTrack('DCS.dcsuri', url, 'WT.ti', eventType + ':' + title, 'WT.dl', eventTypeNumber, 'WT.si_n', '', 'WT.si_x', '', 'Dcsref', document.location.href);
        
    }
}
