var omniCampaignCookie = function() {
	var campaignCookie = "";
	return {
		init : function() {
		},
		createCampaignCookie : function(theReferer){
			var theReferrer = theReferer + "&";
			var dataURL = "trackingData=" + window.location + "&";
			document.cookie = "marketingCampaignTrackingData=" + theReferrer + dataURL + ";path=/";
			var redirUrl ,mid;
			redirUrl = omniCampaignCookie.getQueryStringParameter('redirURL','false');
			mid = omniCampaignCookie.getQueryStringParameter('mid','false');
			if(redirUrl !=""){
				location.replace(unescape(omniCampaignCookie.getQueryStringParameter('redirURL','false')));
			}else if(mid !=""){
		 		location.replace(unescape(omniCampaignCookie.getQueryStringParameter('mid','false')));
			}else{
				//There is no target URL in the Query String, forward to 800 page
				location.replace("/reservation/800Page.mi");
			}
		},		
		getQueryStringParameter : function( name, useReferrer )
		{
		  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
		  var regexS = "[/i\\?&]"+name+"=([^&#]*)";
		  var regex = new RegExp( regexS );
		  var results = regex.exec( window.location.href );
		  if(useReferrer=="true"){
		 	 var lowerCaseCookie = omnitureStandard.getOmniCookie("marketingCampaignTrackingData");
		  	lowerCaseCookie = lowerCaseCookie.toLowerCase();
		  	results = regex.exec( lowerCaseCookie );
		  }
		  if( results == null )
			return "";
		  else
			return results[1];
		},
		setCampaignData : function()
		{
			var refererFromCookie;
			refererFromCookie = omnitureStandard.getOmniCookie("marketingCampaignTrackingData");
			s.pageURL = window.location;
			//Get the tracked campaign values form the query string data and set to s.campaign. Order of precedence is important.
			// If scid exists there is no need to gather other tracking params.
			if(omniCampaignCookie.getQueryStringParameter('scid','true') !="" && omniCampaignCookie.getQueryStringParameter('scid','true') !="null"){
				s.campaign = omniCampaignCookie.getQueryStringParameter('scid','true');
			}else{
			//Start tracking of other non-scid parameters if sicd is not present
				//Track legacy TBP pCamp values and related
				if(omniCampaignCookie.getQueryStringParameter('pcamp','true') !="" && omniCampaignCookie.getQueryStringParameter('pcamp','true') !="null"){
					s.campaign = "pCamp=" + omniCampaignCookie.getQueryStringParameter('pcamp','true') + ";";
					//Add related pCamp variables if they exist
					if(omniCampaignCookie.getQueryStringParameter('pad','true') !="" && omniCampaignCookie.getQueryStringParameter('pad','true') !="null"){
						s.campaign =  s.campaign + "pAd=" + omniCampaignCookie.getQueryStringParameter('pad','true') + ";";
					}
					if(omniCampaignCookie.getQueryStringParameter('pid','true') !="" && omniCampaignCookie.getQueryStringParameter('pid','true') !="null"){
						s.campaign =  s.campaign + "pId=" + omniCampaignCookie.getQueryStringParameter('pid','true') + ";";
					}
				}
				//Track Affiliate marketing data
				if(omniCampaignCookie.getQueryStringParameter('aff','true') !="null" && omniCampaignCookie.getQueryStringParameter('aff','true') !=""){
					s.campaign = "aff=" + omniCampaignCookie.getQueryStringParameter('aff','true') + ";";
				}
				if(omniCampaignCookie.getQueryStringParameter('affname','true') !="null" && omniCampaignCookie.getQueryStringParameter('affname','true') !=""){
					s.campaign =  s.campaign + "affname=" + omniCampaignCookie.getQueryStringParameter('affname','true') + ";";
				}
				//Track Email campaign data
				if(omniCampaignCookie.getQueryStringParameter('vedate','true') !="null" && omniCampaignCookie.getQueryStringParameter('vedate','true') !=""){
					s.campaign = "vedate=" + omniCampaignCookie.getQueryStringParameter('vedate','true') 
						+ ";vetype=" + omniCampaignCookie.getQueryStringParameter('vetype','true') 
						+ ";veseg=" + omniCampaignCookie.getQueryStringParameter('veseg','true') 
						+ ";veof=" + omniCampaignCookie.getQueryStringParameter('veof','true') 
						+ ";ck=" + omniCampaignCookie.getQueryStringParameter('ck','true') + ";";
						s.eVar39 = omniCampaignCookie.getQueryStringParameter('nck','true');
				}
			}
			//Extract ppc if exists and append onto s.pageURL
			if(omniCampaignCookie.getQueryStringParameter('ppc','true') !=""  && omniCampaignCookie.getQueryStringParameter('ppc','true') !="null"){
				s.pageURL = window.location + "?ppc=" + omniCampaignCookie.getQueryStringParameter('ppc','true');
			}

			//Extract location from cookie and use cookie for referrer
			var subDataStart = refererFromCookie.indexOf("trackingData=");				
			var subDataEnd = refererFromCookie.length;
			var subData = refererFromCookie.substring(subDataStart, subDataEnd);
			refererFromCookie = refererFromCookie.replace(subData,'');
			//Set the referer
			if(refererFromCookie !=""){
				s.referrer = refererFromCookie;
			}else{
				s.referrer = document.referrer;
			}	
			//Remove the cookie as it is not used after inital reading
			omniCampaignCookie.deleteCampaignCookie("marketingCampaignTrackingData");
		},
		deleteCampaignCookie : function(name){				
				document.cookie = name + "=;path=/";			
		}
	}
}();

// add load event function to page
function addLoadEvent(func) {
  		var oldonload = window.onload;
  		if (typeof window.onload != 'function') {
    		window.onload = func;
  		} else {
    		window.onload = function() {
      		oldonload();
      		func();
    	}
  	}  	
}

