
// ===================== OMNITURE TRACKDEBUG (BIG RED BOX) =====================
//    Ben Alman - Broadstreet - www.broadstreet.com - balman@broadstreet.com    
// =============================================================================
// 06/01/07 - v1.00 - initial release
// 06/22/07 - v1.01 - updated for 'My Vacation Rental'
// 
// 
// =============================================================================



TRACK_DEBUG_TRIGGER = "trackdebug=1";
TRACK_DEBUG_ENABLED = String(document.location.search).indexOf(TRACK_DEBUG_TRIGGER) != -1;


doTrack_context = {};
doTrack_context.category       = "prop1=tab>[_CATEGORY_]&eVar26=[_CATEGORY_]&prop26=[_CATEGORY_]&action=[_CAMPAIGN_]'>>tab>[_CATEGORY_]";

doTrack_context.offer          = "prop1=tab>[_OFFER_]&eVar26=[_CATEGORY_]&prop26=[_CATEGORY_]&events=event2&action=[_CAMPAIGN_]'>>tab>[_OFFER_]";
doTrack_context.offergo        = "prop1=button>[_OFFER_]_gotomerchantsite&eVar26=[_CATEGORY_]&prop26=[_CATEGORY_]&events=event3&action=[_CAMPAIGN_]'>>button>[_OFFER_]_gotomerchantsite";

doTrack_context.offerfeatured  = "prop1=button>[_OFFERFEATURED_]_featuredoffer&events=event3&action=[_CAMPAIGN_]'>>button>[_OFFERFEATURED_]_featuredoffer";
doTrack_context.portlet        = "prop1=click>[_PORTLET_]_portlet&action=[_CAMPAIGN_]'>>click>[_PORTLET_]_portlet";

doTrack_context.crosssell      = "prop1=click>[_CROSSSELL_]_crosssell&action=[_CAMPAIGN_]'>>click>[_CROSSSELL_]_crosssell";

doTrack_context.link           = "";


doTrack_counter = 0;

function doTrack(track_value, track_mode) {
	if (track_value == '' && track_mode == '') {
		return;
	}
	
	doTrack_counter++;
	
	if (typeof track_current != "object" || track_mode == "tab") {
		track_current = {};
	}
	if (typeof track_value != "string") {
		track_value = "";
	}
	if (typeof track_mode == "string") {
		track_current[track_mode] = track_value;
		var tracking_string = typeof doTrack_context[track_mode] == "string" ? doTrack_context[track_mode] : "";
	} else {
		track_mode = "";
		var tracking_string = track_value;
	}
	
	var replaces = {};
	replaces["[_CAMPAIGN_]"]      = "us:esnacampaign:myvacationrental";
	replaces["[_CATEGORY_]"]      = track_current.category;
	replaces["[_OFFER_]"]         = track_current.offer;
	replaces["[_CROSSSELL_]"]     = track_current.crosssell;
	replaces["[_PORTLET_]"]       = track_current.portlet;
	replaces["[_OFFERFEATURED_]"] = track_current.offerfeatured;
	
	for (var f in replaces) {
		var re = new RegExp(String(f).replace(/\[/g, "\\["), "g");
		tracking_string = tracking_string.replace(re, replaces[f]);
	}
	
	var debug = [];
	var rmaction_nv = [];
	var rmvar_nv = [];
	
	debug.push("<b>ACTIONSCRIPT</b>");
	debug.push("doTrack('" + track_value + "', '" + track_mode + "');");
	
	debug.push("");
	debug.push("<b>CURRENT STATE</b>");
	for (var f in replaces) {
		debug.push(f.replace(/\[_([^_]*)_]/, "$1") + " = " + (replaces[f] || ""));
	}
		
	var p = tracking_string.split("&");
	if (tracking_string.length > 0) {
		debug.push("");
		debug.push("<b>ASSEMBLED TRACKING STRING</b>");
		debug.push(tracking_string);
		
		debug.push("");
		debug.push("<b>TRACKING VARIABLES</b>");
		for (var i = 0; i < p.length; i++) {
			var nv = p[i].split("=");
			if (nv.length == 2) {
				if (nv[0] == "action") {
					rmaction_nv = nv[1].split("'>>");
				} else {
					var obj = {};
					obj.n = nv[0];
					obj.v = nv[1];
					rmvar_nv.push(obj);
				}
				debug.push((nv[0] == "" ? "???" : nv[0]) + " = " + (nv[1] == "" ? "???" : nv[1]) + (nv[0] == "" || nv[1] == "" ? " <== POSSIBLE ERROR" : ""));
			} else if (nv.length == 1) {
				debug.push((nv[0] == "" ? "" : nv[0] + " <== ") + "POSSIBLE ERROR");
			} else {
				debug.push("POSSIBLE ERROR");
			}
		}
		
		debug.push("");
		debug.push("<b>JAVASCRIPT EXECUTED</b>");
		for (var i = 0; i < rmvar_nv.length; i++) {
			omn_rmvar(rmvar_nv[i].n, rmvar_nv[i].v);
			debug.push("omn_rmvar(\"" + rmvar_nv[i].n + "\", \"" + rmvar_nv[i].v + "\");");
		}
		if (rmaction_nv) {
			omn_rmaction(rmaction_nv[0], rmaction_nv[1]);
			debug.push("omn_rmaction(\"" + rmaction_nv[0] + "\", \"" + rmaction_nv[1] + "\");");
		}
	}
	
	if (TRACK_DEBUG_ENABLED) {
		debug.push("");
		debug.push("Tracking requests: " + doTrack_counter);
		
		var html = debug.join("\n");
		html = html.replace(/&/g, "&amp;");
		html = html.replace(/</g, "&lt;");
		html = html.replace(/>/g, "&gt;");
		html = html.replace(/&amp;/g, "&amp;<wbr>");
		html = html.replace(/\n/g, "\n<br>");
		html = html.replace(/&lt;([/]?)b&gt;/g, "<$1b>");
		
		html += "<div id='trackdebug_launch'><br><a href='#' onclick='return doTrack_popup_toggle()'>Open trackdebug info in new window</a></div>"
		html += "<div id='trackdebug_close'><br><a href='#' onclick='return opener.doTrack_popup_toggle()'>Return trackdebug info to main window</a></div>"
		
		var header_text = "<div class='header'>TRACKDEBUG MODE ENABLED - TO DISABLE, REMOVE " + TRACK_DEBUG_TRIGGER + " FROM THE URL</div>";
		html = header_text + "<div class='content'>" + html + "</div>" + header_text;
		
		document.getElementById("trackdebug").innerHTML = html;
		if (typeof doTrack_window == "object") {
			doTrack_window.document.getElementById("trackdebug").innerHTML = html;
		} else {
			document.getElementById("trackdebug").style.display = "block";
		}
	}
}

function doTrack_popup_toggle() {
	if (typeof doTrack_window == "object") {
		doTrack_window.close();
		delete doTrack_window;
		
		document.getElementById("trackdebug").style.display = "block";
	} else {
		var html = "<html><head><link href='dotrack.css' rel='stylesheet' type='text/css'></head>";
		html += "<body id='trackdebug_popup'><div id='trackdebug'>"
		html += document.getElementById("trackdebug").innerHTML;
		html += "</div></body></html>";
		
		doTrack_window = window.open("", "doTrack_window", "width=800,height=680,toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1");
		doTrack_window.document.write(html);
		doTrack_window.document.close();
		
		setTimeout("doTrack_window.opener = window", 250);
		
		document.getElementById("trackdebug").style.display = "none";
	}
	return false;
}


function doTrackAndLink(linkURL, track_value, track_mode) {
	doTrack(track_value, track_mode);

	if (TRACK_DEBUG_ENABLED) alert("doTrackAndLink: " + linkURL);
	setTimeout("document.location.href = '" + linkURL + "'", 500);
	return false;
}

function doTrack_popup(track_value, track_mode) {
	if (typeof window.opener == "object" && typeof window.opener.doTrack == "function") {
		window.opener.doTrack(track_value, track_mode);
	}
}
