// OMNITURE Common functions

// Build the page name to pass to the brandbar or any other function requiring the current page name
function buildPgName() {
	var curr_url = window.location.href.split("//");
	var path_array = curr_url[1].split("/");
	// create page name object
	build_pgName = new Object;
	build_pgName.domain = path_array[0];
	build_pgName.dir = '';
	// assign domain
	// There was an error in the bliss share promotion so we are making an exception for the bliss promotion and renaming it deserve.
	if ( build_pgName.domain.match(/bliss\/share/) ) { 
		build_pgName.domain = "hersheys:deserve";
	}
	else {
		build_pgName.domain = "hersheys";
	}
	
	// build directory structure, append file name
	for ( i = 1; i <= path_array.length-1; i++ ) {
		if( path_array[i].indexOf("?") == -1) {
			build_pgName.dir = build_pgName.dir + ":" + path_array[i];
		}
		else {
			var tempSplit = path_array[i].split("?");
			build_pgName.dir = build_pgName.dir + ":" + tempSplit[0];
		}
	}
	// cut file extensions
	build_pgName.dir = build_pgName.dir.split(".");
	build_pgName.dir = build_pgName.dir[0]
	// if there is reference to "index" or "default", replace with "home"
	if ( build_pgName.dir.match(/index/) ) { build_pgName.dir = build_pgName.dir.replace(/index/, "home") }
	if ( build_pgName.dir.match(/default/) ) { build_pgName.dir = build_pgName.dir.replace(/default/, "home") }
	// if the last character is ":", replace with "home"
	if ( build_pgName.dir.charAt(build_pgName.dir.length-1) == ":" ) { build_pgName.dir = build_pgName.dir + "home" }
	// build page name structure
	curr_pgName = build_pgName.domain + build_pgName.dir;
	curr_pgName = curr_pgName.replace(/:#:/, ":");
}

// TRACK DOWNLOADS
/*function trackDownload(pDownloadType, pCategory, pName) {
	s.events = "event21";
	s.eVar6 = s.prop17 = pDownloadType + ":" + pCategory + ":" + pName;
	s.linkTrackEvents="event21";
	s.linkTrackVars = "eVar6,prop17,events";
}*/

// TRACK ECARDS
function trackEcards(pEvent, pName) {
	s.events = pEvent;
	s.eVar36 = s.prop26 = "kisses:ecards:" + pName;
	s.linkTrackEvents = pEvent;
	s.linkTrackVars = "eVar36,prop26,events";
}

// Track internal campaign clicks
function trackOmniClick(pTrackCode) {
	clearAllOmnitureVars();
	var s = s_gi(s_account);
    s.templtv = s.linkTrackVars;          //Saving the original state of the variables
    s.templte = s.linkTrackEvents;         //Saving the original state of the variables
    s.linkTrackVars = "events,eVar2";      //Defining the list of variables that will be sent in the server call
	s.eVar2 = pTrackCode + ":" + s.pageName // Tracking code will be provided by Kendra
    s.linkTrackEvents = "event9";
    s.events = "event9";              //Passing in the value into s.events
    
	s.tl(true,'o','internal campaign clicks');   //Sever call
    
	if(s.templtv) {
		s.linkTrackVars=s.templtv;    //reassigning the variables to the original state
	}
	
	if(s.templte) {
		s.linkTrackEvents=s.templte;   //reassigning the variables to the original state
    }
	clearAllOmnitureVars();
}

function trackCouponDownload(pCouponName) {
	clearAllOmnitureVars();
	s.events = "event20";
	s.eVar4 = pCouponName;
	s.t();
}

function clearAllOmnitureVars() {
	var tempVar;
	for (var i = 1; i < 51; i++) {
		tempVar = "eVar";
		tempVar = tempVar + i.toString();
		s[tempVar] = "";
	}
	for (i = 1; i < 51; i++) {
		tempVar = "prop";
		tempVar = tempVar + i.toString();
		s[tempVar] = "";
	}
	s.events = "";
	s.products = "";
	s.linkDownloadFileTypes = "";
	s.linkTrackVars = "";
	s.linkTrackEvents = "";
}


function trackObjectInteraction(pMethod, pObjectID, pArg1, pArg2){
	//alert("Pmethod: " + pMethod + " pObjectID: " + pObjectID + " pArg1: " + pArg1);
	var s = s_gi(s_account);
	s.templtv = s.linkTrackVars;          //Saving the original state of the variables
    s.templte = s.linkTrackEvents;         //Saving the original state of the variables	

	extractLoginStatus();
	switch (pMethod)
	{
	case "print":
		s.events = "event5,event16";
		s.products = ";" + pObjectID;
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar10,prop30,prop28,eVar39,products";
		s.linkTrackEvents = "event5,event16";
		break; 
	case "printimage":
		s.events = "event5,event16";
		s.products = ";" + pObjectID;
		s.eVar36 = s.prop26 = "Print:" + pArg1;
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar36,prop26,prop28,eVar39,eVar10,prop30,products";
		s.linkTrackEvents = "event5,event16";	
		break;		
/*	case "save":
		s.events = "event6";
		s.products = ";" + pObjectID;
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar10,prop30,prop28,eVar39,products";
		s.linkTrackEvents = "event6";
		break;	
	case "removerecipe":
		s.events = "event16";
		s.products = ";" + pObjectID;
		s.eVar36 = s.prop26 = "Recipes:removefromrecipebox";
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar10,prop30,eVar36,prop26,prop28,eVar39,products";
		s.linkTrackEvents = "event16";		
		break;	*/
	case "share":
		s.events = "event7,event16";
		s.products = ";" + pObjectID;
		s.eVar36 = s.prop26 = "Share" + pArg1 + ":" + pArg2;
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar36,prop26,prop28,eVar39,eVar10,prop30,products";
		s.linkTrackEvents = "event7,event16";	
		break;	
	case "rate-recipe":
		s.events = "event17";
		s.products = ";" + pObjectID;
		s.eVar37 = s.prop27 = "RateaRecipe:" + pObjectID;
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar37,prop27,prop28,eVar39,eVar10,prop30,products";
		s.linkTrackEvents = "event17";	
		break;	
	case "rate-craft":
		s.events = "event17";
		s.products = ";" + pObjectID;
		s.eVar37 = s.prop27 = "RateaCraft:" + pObjectID;
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar37,prop27,prop28,eVar39,eVar10,prop30,products";
		s.linkTrackEvents = "event17";	
		break;	
	case "preview":
		s.events = "event17";
		s.linkTrackVars = "events";
		s.linkTrackEvents = "event17";	
		break;	
	case "recipe-review":
		s.events = "event12";
		s.products = ";" + pObjectID;
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar10,prop30,prop28,eVar39,products";
		s.linkTrackEvents = "event12";		
		break;
	case "craft-review":
		s.events = "event13";
		s.products = ";" + pObjectID;
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar10,prop30,prop28,eVar39,products";
		s.linkTrackEvents = "event13";		
		break;		
/*	case "addgrocery":
		s.events = "scAdd"
		s.products = ";" + pObjectID;
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar10,prop30,prop28,eVar39,products";
		s.linkTrackEvents = "scAdd";		
		break;
	case "removegrocery":
		s.events = "scRemove"
		s.products = ";" + pObjectID;
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar10,prop30,prop28,eVar39,products";
		s.linkTrackEvents = "scRemove";		
		break;		
	case "addnote":
		s.events = "event17";
		// Should s.products be here?
		s.eVar37 = s.prop27 = "addnotestorecipe:" + pObjectID;
		s.linkTrackVars = "events,eVar37,prop27,prop28,eVar39,products";
		s.linkTrackEvents = "event17";		
		break;		
	case "nutrition":
		s.events = "event11";
		s.products = ";" + pObjectID;
		s.prop30 = s.eVar10 = pObjectID;
		s.linkTrackVars = "events,eVar10,prop30,prop28,eVar39,products";
		s.linkTrackEvents = "event11";		
		break;		
	case "recipesubmit":
		s.events = "event17";
		s.prop27 = s.eVar37 = "recipesubmit";
		s.linkTrackVars = "events,eVar37,prop27,prop28,eVar39";
		s.linkTrackEvents = "event17";		
		break;	
	case "tipsubmit":
		s.events = "event17";
		s.prop27 = s.eVar37 = "tipsubmit";
		s.linkTrackVars = "events,eVar37,prop27,prop28,eVar39";
		s.linkTrackEvents = "event17";		
		break;
	case "login":
		s.events="event19";
		s.linkTrackEvents = "event19";
		s.linkTrackVars = "events,prop28,eVar39";		*/
	default:
		break;
	}
	
	s.tl(true,'o','internal campaign clicks');   //Server call
	if(s.templtv) {
		s.linkTrackVars=s.templtv;    //reassigning the variables to the original state
	}
	
	if(s.templte) {
		s.linkTrackEvents=s.templte;   //reassigning the variables to the original state
    }	
}

function extractLoginStatus() {
	if(bleIsLoggedIn == "true") {
		s.prop28 = s.eVar39="loggedIn";
	} else {
		s.prop28 = s.eVar39="unknown";
	}	
	return(s.prop28);
}

// Track download by setting parameters and making the server call to Omniture.
function trackDownload(pDownloadType, pName, pTrackCode) {
	if(pTrackCode) {
		s.eVar2 = pTrackCode + ":" + s.pageName;
		s.linkTrackVars = "eVar6,eVar2,prop17,eVar39,prop28,events";
		s.linkTrackEvents="event21,event9";
		if(s.events == "") {
			s.events = s.events + "event9,event21";
		}
		else {
			s.events = s.events + ",event9,event21";	
		}
		
	}
	else {
		s.events = "event21";
		s.linkTrackVars = "eVar6,prop17,eVar39,prop28,events";
		s.linkTrackEvents="event21";
	}
	s.eVar6 = s.prop17 = pDownloadType + ":" + pName;	
	s.tl(true,'o','internal campaign clicks');
}

// Track download by setting parameters only, no server call to track.
function trackDownloadParams(pDownloadType, pName, pTrackCode) {
	if(pTrackCode) {
		s.eVar2 = pTrackCode + ":" + s.pageName;
		s.linkTrackVars = "eVar6,eVar2,prop17,eVar39,prop28,events";
		s.linkTrackEvents="event21,event9";
		if(s.events == "") {
			s.events = s.events + "event9,event21";
		}
		else {
			s.events = s.events + ",event9,event21";	
		}
		
	}
	else {
		s.events = "event21";
		s.linkTrackVars = "eVar6,prop17,eVar39,prop28,events";
		s.linkTrackEvents="event21";
	}
	s.eVar6 = s.prop17 = pDownloadType + ":" + pName;
}

buildPgName();
