// Common functions and variables for Home Depot sites

// Tracking HD querystring values (CJ, MMC, etc)
var undefined;		//used for IE 5.5
var Digitas = '';
var cmName = '';
if (typeof SiteName == 'undefined') {
	alert('You must define the variable SiteName');
}

var HomeDepot = {};
	HomeDepot.queryParams = location.search.substring(1).toQueryParams();
	HomeDepot.affiliateIds = {};
	HomeDepot.affiliateIds.AID = HomeDepot.queryParams['AID'];
	HomeDepot.affiliateIds.PID = HomeDepot.queryParams['PID'];
	HomeDepot.affiliateIds.SID = HomeDepot.queryParams['SID'];
	HomeDepot.affiliateParams = '';
	HomeDepot.digitas = HomeDepot.queryParams['cm_mmc'];
	HomeDepot.linkParams = buildLinkParamStrings();
	HomeDepot.linkParamsAppended = HomeDepot.linkParams.length > 0 ? '&'+HomeDepot.linkParams.substring(1) : '';


function buildLinkParamStrings(){
	var params = "";
	// Affiliate params
	if(HomeDepot.affiliateIds.AID){
	 	params += 'AID='+HomeDepot.affiliateIds.AID;
	}
	if(HomeDepot.affiliateIds.PID){
	 	params += params.length > 0 ? '&PID='+HomeDepot.affiliateIds.PID : 'PID='+HomeDepot.affiliateIds.PID;
	}
	if(HomeDepot.affiliateIds.SID){
	 	params += params.length > 0 ? '&SID='+HomeDepot.affiliateIds.SID : 'SID='+HomeDepot.affiliateIds.SID;
	}
	if(params.length > 0){
		params += '&cj=true';
	}
	//Digitas
	if(HomeDepot.digitas){
	 	params += params.length > 0 ? '&cm_mmc='+HomeDepot.digitas : 'cm_mmc='+HomeDepot.digitas;
		var digitasTags = HomeDepot.digitas.replace('THD_Marketing-_-'+SiteName+'-_-','_');
		Digitas = digitasTags.length > 0 ? digitasTags.replace('-_-', '_') : '';
	}

	params = params.length > 0 ? '?'+params : '';
	return params;
}

function buildCM_SP(oldURL) {			//Appends Digitas when needed
	var newURL = '';
	var spLink = oldURL.split('cm_sp=')[1];

	if (spLink != undefined && HomeDepot.digitas) {
		var digitasTags = HomeDepot.digitas.replace('THD_Marketing-_-'+SiteName+'-_-','_');
		var digitasAddOn = digitasTags.length > 0 ? digitasTags.replace('-_-', '_') : '';

		spLink = spLink.split('&')[0];
		newURL = oldURL.replace(spLink, spLink + digitasAddOn);
	}
	else {
		newURL = oldURL;
	}

	return newURL;
}

function buildFlashLink(uri) {		//For use by Flash assets to append HD link params to their clicks
	location.href=(buildCM_SP(uri)+HomeDepot.linkParamsAppended).replace('+&+','+%26+');
}

function appendSessionToMainContentLinks(){
	appendSessionLinksInElement($('container'));
}
function appendSessionLinksInElement(elm){
	var links = $A(elm.getElementsByTagName('a'));
	var areas = $A(elm.getElementsByTagName('area'));
	links.each(function(linkElement){appendSessionToLink(linkElement)});
	areas.each(function(linkElement){appendSessionToLink(linkElement)});
}

function appendSessionToLink(linkElement){		//Appends the linkParams to the element
	if(linkElement.href){
		if(linkElement.href.indexOf('javascript:') == -1 && linkElement.href.indexOf('mailto:') == -1){
		  var oldInnerHtml = linkElement.innerHTML;
			linkElement.href = buildCM_SP(linkElement.href);
			var hrefAppendage = linkElement.href.indexOf('?') > -1 ? HomeDepot.linkParamsAppended : HomeDepot.linkParams;
			var adjustedHref = linkElement.href + hrefAppendage;
			linkElement.href = adjustedHref;
			linkElement.innerHTML = oldInnerHtml;
		}
	}
}

function rollOn(elem, classid) {		//Changes the class of an element
	elem.className = classid;
}

function swapImage(elem, imgName) {	//Changes the source of an image
	elem.src = imgName;
}