/// <reference Name="MicrosoftAjax.js" />

var tracking;
var pageTracker;

/***********************************************
** The following lines are commented out because
** they need to be initialized before wt.js is
** loaded. wt.js needs to be loaded before
** tracking.js is loaded.
** these variables are initialized in wt_init.js
************************************************/
//var gDomain="m.webtrends.com";
//var gDcsId = "dcsjwb9vb00000c932fd0rjc7_5p3tFFFF";
//var gFpc="WT_FPC";

/* webtrends */
/* if(document.cookie.indexOf(gFpc + "=") == -1)
{
	document.write("<scr" + "ipt type='text/javascript' src=" + "'http" + (window.location.protocol.indexOf('https:')==0 ? 's' : '') + "://" + gDomain + "/" + gDcsId + "/wtid.js" + "'><\/scr" + "ipt>");
} */


/*
 webtrendsDelegate.
 Example delegate function that is called from
 within the tracking.js file. This is required for 
 webtrends from the tracking.js file.

 The overrideArr and appendArr are arrays that
 give hooks into overiding or appending data
 to the default tags that are in XML. It gives you
 a chance to work with dynamic data.
*/
function webtrendsDelegate(tagStr,appendArr)
{
	var parts = tagStr.split(",");
	var dcsuri = parts[0];
	if(appendArr)
	{
		//do some overrides if needed
		//say u wanted to override a default ti variable for certain calls,
		//you would provide the 1 element in overrideArr
		if(override[0] != null) dcsuri += overrideArr[0];
	}
	try
	{
		//dcsMultiTrack accepts "pairs" of parameters. 
		//so the odd parameter is the name of the next
		//even parameter. So parameters 0 -> 'DCS.dcsuri'
		//is the name of the next value -> dcsuri.
		//alert('DCS.dcsuri: ' + dcsuri + ' WT.ti: ' + ti + ' WT_cg_n: ' + cg_n);
		dcsMultiTrack('DCS.dcsuri',dcsuri,'WT.dl', '6');
	}
	catch(e){}
}

function flashTrack(xmlid,appendData)
{
	tracking.track(xmlid,appendData);
}

function setupTracking(xmlLocation) {
    if (tracking)
        return;
	tracking = new Tracking();
	tracking.loadXML(xmlLocation);
}

function Tracking()
{
	this.xmlDoc = null;
}

function createXMLHttpRequest()
{
	if(typeof XMLHttpRequest != "undefined") return new XMLHttpRequest();
	else if (typeof ActiveXObject != "undefined") return new ActiveXObject("Microsoft.XMLHTTP");
	else throw new Error("XMLHttpRequest not supported");
}

function loadXML(file)
{
 	var request = this.createXMLHttpRequest();
	request.open("GET", file, true);
	request.onreadystatechange = function()
	{
		if(request.readyState == 4)
		{	
			xmlDoc = request.responseXML;
		}
	}
	request.send(null);
}

function track(xmlid,appendData, evt)
{
    evt = (evt) ? evt : ((window.event) ? window.event : "");
    
//    if(evt && evt.srcElement &&
//        Array.contains(evt.srcElement.className.split(" "), "on"))
//    {
//        return;
//    }
	var target;
	var wp;
	var redirect;
	var info = getTrackingInfo(xmlid);
	var result = trackForId(xmlid, appendData);
	target = "_self";
	try
	{
		if(info.target) target = info.target;
	}
	catch(e){}
	try
	{
		wp = info.windowParameters;
	}
	catch(e){}
	try
	{
		redirect = info.redirect;
	}
	catch(e){}

	var trackingvalue;



	switch(xmlid)
	{
	
	case '11303': //Best Buy Rio Tracking.
	trackingvalue = RioTracking.click(100201597,'mrtpcu_FY10IWConsumerBTSSiteOnConsumerLPtoBest_1');
	break;

	case '11381': //Staples Rio Tracking.
	trackingvalue = RioTracking.click(100201579,'mrtpcu_FY10IWConsumerBTSSiteOnConsumerLPtoStap_1');
	break;

	case '11371': //Office Depot Rio Tracking.
	trackingvalue = RioTracking.click(100201596,'mrtpcu_FY10IWConsumerBTSSiteOnConsumerLPtoOffi_1');
	break;

	case '38461853': //Microsoft Rio Tracking.
	trackingvalue = RioTracking.click(100201594,'mrtpcu_FY10IWConsumerBTSSiteOnConsumerLPtoMSFT_1');
	break;

	case '4': //Dell Rio Tracking
	trackingvalue = RioTracking.click(100201595,'mrtpcu_FY10IWConsumerBTSSiteOnConsumerLPtoDell_1');
	break;

	case '5': //HP Rio Tracking
	trackingvalue = RioTracking.click(100201593,'mrtwxp_FY10IWConsBTSSiteOnConsLPHP_adunit');
	break;

	case '6': //Lenovo Rio Tracking
	trackingvalue = RioTracking.click(100201592,'mrtwxp_FY10IWConsBTSSiteOnConsLPLenovo_adunt');
	break;

	

	}
	 switch(xmlid)
	{
	case '11303': //Best Buy Rio Tracking.
	case '11381': //Staples Rio Tracking.
	case '11371': //Office Depot Rio Tracking.
	case '38461853': //Microsoft Rio Tracking.
	case '4': //Dell Rio Tracking
	case '5': //HP Rio Tracking
	case '6': //Lenovo Rio Tracking
	
	var newscriptblock = document.createElement('script');
	newscriptblock.src = 'http://view.atdmt.com/jaction/mrtwxp_BTSAdAllUp_1';
	newscriptblock.type = 'text/javascript';
	var BodyID = document.getElementsByTagName("body")[0];         
	BodyID.appendChild(newscriptblock);
	break;
		
		
	}
	
	


      




	if(!redirect) return trackingvalue;
	if(wp) window.open(info.redirect,target,wp);
	else window.open(info.redirect,target);

	



	


}

function trackForId(xmlid,appendArr)
{
	atlas(xmlid);

	webtrends(xmlid,appendArr);

	if (/MSIE (5\.5|6)/.test(navigator.userAgent)) {
	    for (index = 0; index < 100000; index++) {
	        var count = index;
	    }
	}

	return true;
}

function webtrends(xmlid,overrideArr,appendArr)
{
	var info = this.getTrackingInfo(xmlid);
	if(!info || !info.webtrends) return;
	var webtrends = info.webtrends;
	try
	{
		//break out to the delegate. 
		if(webtrendsDelegate != null) webtrendsDelegate(webtrends.toString(), overrideArr, appendArr);
	}
	catch(e){}
}

function atlas(xmlid)
{
    var info = getTrackingInfo(xmlid);
    if (!info || !info.atlas) return;
    var timestamp = new Date();
    var qs = "?qstr=random=" + Math.ceil(Math.random() * 99999999) + timestamp.getUTCFullYear() + timestamp.getUTCMonth() + timestamp.getUTCDate() + timestamp.getUTCHours() + timestamp.getUTCMinutes() + timestamp.getUTCSeconds() + timestamp.getUTCMilliseconds();
    var uri = info.atlas + qs;
    
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = uri;
    document.getElementsByTagName('head')[0].appendChild(script);
}

function getTrackingInfo(xmlid)
{
	var trackNodes = xmlDoc.getElementsByTagName("track");
	var index;
	var i = 0;
	var results = {};
	for(i = 0; i < trackNodes.length; i++)
	{
		if(xmlid == trackNodes[i].attributes.getNamedItem("id").value)
		{
		    index = i;
		    break;
		}
	}
	if(null == index) return index;
	try
	{
		var w = trackNodes[index].getElementsByTagName("webtrends").item(0).firstChild.nodeValue;
		results.webtrends = w;
	}
	catch(e){}
	try
	{
		var a = trackNodes[index].getElementsByTagName("atlas").item(0).firstChild.nodeValue;
		results.atlas = a;
	}
	catch(e){}
	try
	{
		var r = trackNodes[index].getElementsByTagName("redirect").item(0).firstChild.nodeValue;
		results.redirect = r;
	}
	catch(e){}
	try
	{
		var rt = trackNodes[index].getElementsByTagName("redirect").item(0).attributes.getNamedItem("target").value
		results.target = rt;
	}
	catch(e){}
	try
	{
		wp = trackNodes[index].getElementsByTagName("redirect").item(0).attributes.getNamedItem("windowParameters").value
		results.windowParameters = wp;
	}
	catch(err){}
	return results;
}

Tracking.prototype.createXMLHttpRequest = createXMLHttpRequest;
Tracking.prototype.loadXML = loadXML;
Tracking.prototype.track = track;
Tracking.prototype.trackForId = trackForId;
Tracking.prototype.webtrends = webtrends;
Tracking.prototype.atlas = atlas;
Tracking.prototype.getTrackingInfo = getTrackingInfo;