// constants:
var jewels = false; //debug variable
var CONST_OBJ_PREFIX = "s.";

//Flash-relevant omniture constants:
var FLA_OVERVIEW = "Overview";
var FLA_PERFORMANCE = "Performance";
var FLA_APPEARANCE = "Appearance";
var FLA_COMFORT = "Comfort";
var FLA_SAFETY = "Safety";
var FLA_INTERIOR = "Interior";
var FLA_EXTERIOR = "Exterior";
var FLA_COLORS = "Colors";
var FLA_ENTRY_HP_IMAGE = "Homepage image";
var FLA_ENTRY_GLOBAL_NAV = "Menu nav";
var FLA_ENTRY_LOCAL_NAV = "Model nav";

//here is the list of omniture variables that have to be reset each time:
var omniResetList = new Array();
omniResetList[omniResetList.length] = "s.prop5";
omniResetList[omniResetList.length] = "s.purchaseID";
//omniResetList[omniResetList.length] = "s.eVar1";
omniResetList[omniResetList.length] = "s.eVar2";
omniResetList[omniResetList.length] = "s.eVar3";

//a "log" for errors that can be queried for the current page:
var omniErrors = new Array();

function bubbleSequentialEvent(json) {
	//reset any variables that might be lingering:
	resetVariables();
	//evaluate the json
	eval(json);
	for(var i=0; i < variables.length; i++) {
		//get a reference to this name/value pair object:
		var refObj = variables[i];
		var strOmniVar = CONST_OBJ_PREFIX + refObj.name;
		var strOmniVal = refObj.value;
		var strOmniExpression = strOmniVar + "= '" + strOmniVal + "'";
		//alert(strOmniExpression);
		try {
			eval(strOmniExpression);
		}
		catch(e) {
			omniErrors.push(e.message + "; *" + strOmniExpression + "*");
		}
	}
	//fire analytics event:
	try { s.t(); } catch (e) {}
}

function resetVariables() {
	//cycle through the list and reset variables
	for(var i = 0; i < omniResetList.length; i++) {
		var strRef = omniResetList[i];
		var strReset = strRef + " = '' ";
		//alert("reset string: " + strReset);
		try {
			eval(strReset);
		}
		catch(e) {
			omniErrors.push(e.message + "; *" + strReset + "*");
		}

	}
}

function backButtonEvent() {
	//alert("backButtonEvent");
	bubbleSequentialEvent(" var variables = [ {name: 'prop5', value: '" + s.pageName + "'} ]");
}

function alertVariables() {
	if(jewels) {
		var list = new Array();
		list[list.length ] = "s.pageName";
		list[list.length ] = "s.server";
		list[list.length ] = "s.channel";
		list[list.length ] = "s.pageType";
		list[list.length ] = "s.events";
		list[list.length ] = "s.products";
		list[list.length ] = "s.zip";
		list[list.length ] = "s.prop1";
		list[list.length ] = "s.prop2";
		list[list.length ] = "s.prop3";
		list[list.length ] = "s.prop4";
		list[list.length ] = "s.prop5";
		list[list.length ] = "s.prop6";
		list[list.length ] = "s.prop7";
		list[list.length ] = "s.prop8";
		list[list.length ] = "s.prop9";
		list[list.length ] = "s.campaign";
		list[list.length ] = "s.state";
		list[list.length ] = "s.purchaseID";
		list[list.length ] = "s.eVar1";
		list[list.length ] = "s.eVar2";
		list[list.length ] = "s.eVar3";

		var strList = "";
		for(var i=0; i < list.length; i++) {
			strList += list[i] + ": '" + eval(list[i]) + "'\n";
		}
		alert(strList);
	}
}

function pageLoaded() {
	if(pcode && pcode != "" && (pcode == "xxx.index" || pcode == "cmp.index" || pcode == "xxx.careers" || pcode == "xxx.sitemap" || pcode == "xxx.privacy" || pcode == "xxx.glossary" || pcode =="xxx.help")) {
		var elements = pcode.split(".");
		var prefix = elements[0];
		var suffix = elements[1];
		s.prop2 = prefix;
		s.prop3 = suffix;
	}
}

function fla_pageNameEvent(flaConstant) {
	var arg = eval(flaConstant);
	if(pcode && pcode != "") {
		arg = pcode + " - " + arg;
		bubbleSequentialEvent(" var variables = [ {name: 'pageName', value: '" + arg + "'} ]");
	}
	//alert("pagename event " + arg);
}

function fla_vehicleEntryPointEvent(flaConstant) {
	var arg = eval(flaConstant);
	bubbleSequentialEvent(" var variables = [ {name: 'prop4', value: '" + arg + "'} ]");
	//alert("Vehicle entry point event " + arg);
}

