<!--
/*
 * cmdatatagutils.js 
 * $Id: cmdatatagutils -8034500-90032588-031109.txt 112241 2009-03-12 19:21:20Z hwhite $
 * $Revision: 112241 $
 *
 * Version 4.1.0
 *
 * Coremetrics Tag v4.0, 8/7/2006
 * COPYRIGHT 1999-2002 COREMETRICS, INC. 
 * ALL RIGHTS RESERVED. U.S.PATENT PENDING
 *
 * The following functions aid in the creation of Coremetrics data tags.
 * Date				Imp. Eng.			Desc
 * 01/16/08			Hutch White			Upgrade cmdatatagutils and eluminate to newest feature set.
 * 03/19/08			MOCHOA				Enable Conversion Event & Element Tagging Function
 * 06/26/08			HWHITE				Synchronize with REI version
 * 08/20/08			HWHITE				Convert * in cm_sp and cm_re parameters to -_-
 * 11/11/08			HWHITE				Convert library to maketag.  Add Explore attibutes
 * 01/29/09			LHIBBARD			Changed getDefaultPageID to cmGetDefaultPageID	 
 * 03/03/0			HWHITE				Add Mercado tagging, cm_vc override
 *
 */

var cm_exAttr=new Array; 
var cm_ClientID = "90032588";
var cm_TrackLink = "A";
var cm_TrackImpressions = "";
var cm_JSFEnabled = false;

var cmJv = "1.0";
if (typeof(isNaN) == "function") cmJv = "1.1";
if (typeof(isFinite) == "function") cmJv = "1.2";
if (typeof(NaN) == "number") cmJv = "1.3";
if (typeof(decodeURI) == "function") cmJv = "1.5";
if (typeof(Array.forEach) == "function") cmJv = "1.6";
if (typeof(Iterator) == "object") cmJv = "1.7";

var cmCheckCMEMFlag = true;

function cD(s,tag){
	var z="";
	s=z+(!s?"":s);
	if (typeof(tag)!="undefined"){
		if (tag.ps1!= null){
	return s.split("\r").join(z).split("\n").join(z);
}
	}		
	return s.split("'").join(z).split("\"").join(z).split("\r").join(z).split("\n").join(z);
}
var doSendTag = true;

if (document.location.host == "www.rei.com" || document.location.host == "corp.rei.com") {
	cmSetProduction();
}

function cmSetProduction(){	
	cm_HOST="www3.rei.com/eluminate?";
}

function getABString() {
  var is_abtest = document.URL.indexOf('abtest=');
  var abtest_string = '';
  if(is_abtest >= 0) {
    abtest_string = document.URL.substring(is_abtest + 7, document.URL.length);
    if(abtest_string.indexOf('&') != -1) {
      abtest_string = ' ab(' + unescape(abtest_string.substring(0, abtest_string.indexOf('&')).replace(/\+/g, " ")) + ')';
    } else {
      abtest_string = ' ab(' + unescape(abtest_string.replace(/\+/g, " ")) + ')';
    }
  }
  return abtest_string;

}

var cmdatautilsVersion = "1.7";
var cmDt = new Date();
var cmTimeStamp = cmDt.getTime();
var cmRandom;
var cmOnChangeCounter = 0;
var cmOnChangeTextBoxName = new Array();
var cmOnChangePointer = new Array();
var cmOnChangeFirst = new Array();
var cmAppName;
var cmAppStepNumber;
var cmAppStepName;

function cmCreateConversionEventTag(eventID, actionType, categoryID, points,attributes) {
 	if (attributes){
		var cm_exAttr=new Array;
		cm_exAttr=attributes.split("-_-");
	}
	cmMakeTag(["tid","14","cid",eventID,"cat",actionType,"ccid",categoryID,"cpt",points,"cm_exAttr",cm_exAttr]);
 }
 
function cmCreatePageElementTag(elementID, elementCategory, pageID, pageCategoryID, elementLocation,attributes) {
	if (attributes){
		var cm_exAttr=new Array;
		cm_exAttr=attributes.split("-_-");
	}
	cmMakeTag(["tid","15","eid",elementID,"ecat",elementCategory,"pflg","0","pid",pageID,"pcat",pageCategoryID,"eloc",elementLocation,"cm_exAttr",cm_exAttr]);
}

function cmCreateProductElementTag(elementID, elementCategory, productID, productCategoryID, elementLocation,attributes) {
	if (attributes){
		cm_exAttr=attributes.split("-_-");
	}
	cmMakeTag(["tid","15","eid",elementID,"ecat",elementCategory,"pflg","1","pid",productID,"pcat",productCategoryID,"eloc",elementLocation,"cm_exAttr",cm_exAttr]);
}

function cmCreateManualLinkClickTag(href,name,pageID) {
	if (doSendTag){	
		if (cmCreateLinkTag == null && cM != null) {
			var cmCreateLinkTag = cM;
		}
		if (cmCreateLinkTag != null) {		
			var dt = new Date();
			cmLnkT3 = dt.getTime();
		    href=cG7.normalizeURL(href,true);
			cmCreateLinkTag(cm_ClientTS, cmLnkT3, name, href, false, pageID);
		}
	}	
}

function cmCreateManualImpressionTag(pageID, trackSP, trackRE) {
		cmMakeTag(["tid","9","pi",pageID,"cm_sp",trackSP,"cm_re",trackRE,"st",cm_ClientTS]);
}

function cmCreateManualPageviewTag(pageID, categoryID,DestinationURL,ReferringURL) {
	cmMakeTag(["tid","1","pi",pageID,"cg",categoryID,"ul",DestinationURL,"rf",ReferringURL]);
}

function cmErrorTag(errmsg,fieldID) {
	     cmMakeTag(["tid","7","li","10","ps1",document.URL,"ps2",errmsg,"ps3",fieldID]);
}

function cmCreateTechPropsTag(pageID, categoryID,attributes, memberID,orderID) {
	if(pageID == null) { pageID = cmGetDefaultPageID(); }
	if (attributes){
		var cm_exAttr=new Array;
		cm_exAttr=attributes.split("-_-");
	}	
	cmMakeTag(["tid","6","pi",pageID+ getABString(),"cg",categoryID,"pc","Y","pv1",memberID,"pv2",orderID,"cm_exAttr",cm_exAttr]);
}

//function cmCreatePageviewTag(pageID, searchString, categoryID, searchResults, memberID,orderID,attributes,MercadoSearchTerm,RefOpt1,RefOpt2,RefOpt3,RefOpt4,RefOpt5,RefOpt6,RefOpt7,MercadoSearchType,ResultsCount,DomBusUnit,DomCatID,DomBrand,SearchQueryID,MVTParams,MercadoAlt,RBTUsed,PageType,Resultype,Partial) {
function cmCreatePageviewTag(pageID,searchString,categoryID,searchResults,orderID,memberID,attributes,MercadoSearchTerm,RefOpt1,RefOpt2,RefOpt3,RefOpt4,RefOpt5,RefOpt6,RefOpt7,MercadoSearchType,ResultsCount,DomBusUnit,DomCatID,DomBrand,SearchQueryID,MVTParams,MercadoAlt,RBTUsed,PageType,Resultype,Partial) {
	if (pageID == null) { pageID = cmGetDefaultPageID(); }
	if (attributes){
		var cm_exAttr=new Array;
		cm_exAttr=attributes.split("-_-");
	}
    cmMakeTag(["tid","1","pi",pageID+ getABString(),"cg",categoryID,"se",searchString,"sr",searchResults,"pv2",orderID,"pv1",memberID,"cm_exAttr",cm_exAttr]);
	if (SearchQueryID){
		cmMakeTag(["tid","7","li","94220","ps1",pageID,"ps2",categoryID,"ps3",searchString,"ps4",searchResults,"ps5",MercadoSearchType,
				   "ps6",MercadoSearchTerm,"ps7",ResultsCount,"ps8",Partial,"ps9",DomBusUnit,"ps10",DomCatID,
				   "ps11",DomBrand,"ps12",SearchQueryID,"ps13",MVTParams,"ps14",MercadoAlt,"ps15",RBTUsed]);
		cmMakeTag(["tid","7","li","94221","ps1",pageID,"ps2",categoryID,"ps3",searchString,"ps4",searchResults,
				   "ps5",RefOpt1,"ps6",RefOpt2,"ps7",RefOpt3,"ps8",RefOpt4,"ps9",RefOpt5,"ps10",RefOpt6,
				   "ps11",RefOpt7,"ps12",PageType,"ps13",Resultype,"ps14",SearchQueryID]);
	}
}

function cmCreateDefaultPageviewTag(categoryID) {	
		cmCreatePageviewTag(cmGetDefaultPageID(), null,categoryID);
}

var store_id_tag_value;

//function cmCreateProductviewTag(productID, productName, brand, categoryID, storeName,attributes) {  -new code
//function cmCreateProductviewTag(productID, productName, brand, categoryID, memberID,orderID,attributes,queryID) {  -new code 03-12-09 
//function cmCreateProductviewTag(storeName, productID, productName, brand, categoryID) {  -old code
function cmCreateProductviewTag(storeName, productID, productName, brand, categoryID, memberID, orderID, attributes, queryID) {
	if (attributes){
	     var cm_exAttr=new Array;
	     cm_exAttr=attributes.split("-_-");
    }	   
	/*var storeName="";
	if(store_id_tag_value==8001) {
		storeName = "OUTLET";
	} else {
		storeName="REI";
	}*/
	cmMakeTag(["tid","5","pi",storeName + " PRODUCT: " + productName + " " + brand + " (" + productID + ")" + getABString(),"pr",productID,"pm",productName,"cg",categoryID,"pc","Y","cm_vc",cmExtractParameter("cm_vc",document.location.href),"pv1",memberID,"pv2",orderID,"cm_exAttr",cm_exAttr]);
	if (queryID){
         cmMakeTag(["tid","7","li","94222","ps1",productID,"ps2",productName,"ps3",categoryID,"ps4",queryID]);
    }
}
var __sArray = new Array();
var __skuString = "";
var __ex=new Array();

function __cmGetPIPC(__pr,__cg) {
	var __pI, i;
	var cmAttr1=new Array();
	var cmAttr2=new Array();
	for (i=0;i<__ex.length;++i){
		cmAttr1=cmAttr1+__ex[i];
	}		
	for (__pI = 0; __pI < __sArray.length; ++__pI) {
		if (__ex.length>0){
			cmAttr2=new Array();		
			for (i=__sArray[__pI].length-__ex.length*2+1;i<__sArray[__pI].length;i=i+2){
				cmAttr2=cmAttr2+__sArray[__pI][i];
			}
	
			if (__pr == __sArray[__pI][1] && __cg == __sArray[__pI][9] && cmAttr1==cmAttr2){
				return __pI;
			}
		} else {
		if (__pr == __sArray[__pI][1] && __cg == __sArray[__pI][9]) return __pI;
		}	
	}	
	return -1;
}

function cmAddShop(__v) {

	var __i = __cmGetPIPC(__v[1],__v[9]);
	if (__i == -1) {
		if (__ex.length>0){
			for (var i=0; i<__ex.length; ++i){
				__v[__v.length]="s_a"+(i+1);
				__v[__v.length]=__ex[i];
			}
		}
		__sArray[__sArray.length] = __v;
	}
	else {
		var __oQ = __sArray[__i][5];
		var __oP = __sArray[__i][7];
		__sArray[__i][5] = parseInt(__sArray[__i][5]) + parseInt(__v[5]);
		__sArray[__i][7] = (((__v[7]*__v[5])+(__oP*__oQ))/__sArray[__i][5]);
	}
}

function cmCreateShopAction5Tag(productID,productName,productQuantity,productPrice,categoryID,attributes,queryID) {
	var pattern = /[^\-0-9\.]/gi;
    productPrice = productPrice.toString().replace(pattern, "");
	var cm_slotNum;
	if (attributes){
		__ex=attributes.split("-_-");
		} else {
	__ex=new Array();
	}	

	cmAddShop(["pr",productID,"pm",productName,"qt",productQuantity,"bp",productPrice,"cg",categoryID,"sn",cm_slotNum,"at","5","tid","4","pc","N"]); 
	if (queryID){
	cmMakeTag(["tid","7","li","94223","ps1",productID,"ps2",productName,"ps3",categoryID,"ps4",productPrice,"ps5",productQuantity,"ps6",queryID]);
}
}

function cmCreateShopAction9Tag(productID,productName,productQuantity,productPrice,customerID,orderID,orderTotal,categoryID,attributes,queryID) {
	var cm_slotNum;
	var pattern = /[^\-0-9\.]/gi;
	var pattern1 = /^\s+|\s+$/gi;
    productPrice = productPrice.toString().replace(pattern, "");
	orderTotal = orderTotal.toString().replace(pattern, "");
	productID = productID.toString().replace(pattern1, "");
	if (attributes){
		__ex=attributes.split("-_-");
	} else {
	__ex=new Array();
	}
	
	cmAddShop(["pr",productID,"pm",productName,"qt",productQuantity,"bp",productPrice,"cg",categoryID,"sn",cm_slotNum,"cd",customerID,"on",orderID,"tr",orderTotal,"at","9","tid","4","pc","N"]);
	cmCalcSKUString();
	if (queryID){
	cmMakeTag(["tid","7","li","94224","ps1",productID,"ps2",productName,"ps3",categoryID,"ps4",productPrice,"ps5",productQuantity,"ps6",customerID,"ps7",orderID,"ps8",queryID]);	
}
}

function cmDisplayShop5s(){
	cmDisplayShops();
}

function cmDisplayShop9s(){
	cmCalcSKUString();
	cmDisplayShops();
}

function cmCalcSKUString() {
	__skuString = "";
	var __skuStringArray = new Array();
	for (var i = 0; i < __sArray.length; ++i) {
		// aggregate
		var __skuStringArrayIndex = -1;
		for (var y = 0; y < __skuStringArray.length; ++y) {
			if (__sArray[i][1] == __skuStringArray[y][0] ) {
				__skuStringArrayIndex = y;
			}
		}
		if (__skuStringArrayIndex == -1) {
			// it doesn't exist, so add it
			var newArrayIndex = __skuStringArray.length;
			__skuStringArray[newArrayIndex] = new Array();
			__skuStringArray[newArrayIndex][0] = __sArray[i][1];
			__skuStringArray[newArrayIndex][1] = __sArray[i][7];
			__skuStringArray[newArrayIndex][2] = __sArray[i][5];
		}
		else {
			// it exists, so update it
			var __oP = __skuStringArray[__skuStringArrayIndex][1];
			var __oQ = __skuStringArray[__skuStringArrayIndex][2];
			__skuStringArray[__skuStringArrayIndex][2] = parseInt(__sArray[i][5]) + __oQ;
			__skuStringArray[__skuStringArrayIndex][1] = (__oP*__oQ+__sArray[i][7]*__sArray[i][5])/(parseInt(__sArray[i][5])+parseInt(__oQ));
		}
	}
	for (var x = 0; x < __skuStringArray.length; ++x) {
		__skuString += "|"+__skuStringArray[x][0]+"|"+__skuStringArray[x][1]+"|"+__skuStringArray[x][2]+"|";
	}
}

function cmDisplayShops() {
		var i;
	for (i = 0; i < __sArray.length; ++i) {
		for (var l=0;l<__sArray[i].length;++l){
			if (__sArray[i][l]=="sn"){
				__sArray[i][l+1]=i.toString();
			}
		}
		cmMakeTag(__sArray[i]);
	}
	__sArray = new Array();
}

function cmCreateOrderTag(orderID,orderTotal,orderShipping,customerID,customerCity,customerState,customerZIP,attributes) {
	var pattern = /[^\-0-9\.]/gi;
    orderShipping = orderShipping.toString().replace(pattern, "");
	orderTotal = orderTotal.toString().replace(pattern, "");
	if (attributes){
		var cm_exAttr=new Array;
		cm_exAttr=attributes.split("-_-");
	}	
	cmMakeTag(["tid","3","osk",__skuString,"on",orderID,"tr",orderTotal,"sg",orderShipping,"cd",customerID,"ct",customerCity,"sa",customerState,"zp",customerZIP,"cm_exAttr",cm_exAttr]);
	__skuString = "";
}

function cmCreateRegistrationTag(customerID, customerEmail, customerZIP, coopNum, reiCookie, userCookie, newsletterName, subscribe) {
	     cmMakeTag(["tid","2","cd",customerID,"em",customerEmail,"zp",customerZIP,"nl",newsletterName,"sd",subscribe,"rg1",coopNum,"rg2",reiCookie,"rg3",userCookie]);
}

function cmCreateErrorTag(pageID, categoryID) {
     if (!pageID){
	     pageID = cmGetDefaultPageID() + getABString();
     }
	 cmMakeTag(["tid","404","pi",pageID,"cg",categoryID,"pc","Y"]);
}

function cmMakeTag(__v) {
  if (doSendTag){
	var cm = new _cm("vn2", "e4.0");
	var i;
	for (i = 0; i < __v.length; i += 2) {
		var _n = __v[i];
		var _v = __v[i + 1];
		cm[_n] = _v;
	}
	
	var datestamp = new Date();	
	var stamp = (Math.floor(Math.random() * 11111111)) + datestamp.valueOf();	
	cm.rnd = stamp;
	
	if (cm.tid == "6") {
		cm.addTP();
		document.cookie = "cmTPSet=Y; path=/";
	}

	if (cm.tid == "1") {
		if (cI("cmTPSet") != 'Y') {
			cm.tid = "6";
			cm.pc = "Y";
		cm.addTP();
		document.cookie = "cmTPSet=Y; path=/";
	}
	}

	if (cm.tid != "4" && typeof(cm.cm_exAttr)!="undefined"){
		switch(cm.tid){
			case "6":
				prefix="pv";
				break;
			case "1":
				prefix="pv";
				break;
			case "5":
				prefix="pr";
				break;
			case "3":
				prefix="o";
				break;
			case "14":
				prefix="c";
				break;
			case "15":
				prefix="e";
				break;
			default:
				break;
		}		
		var attrNum=cm.cm_exAttr.length;
		if (attrNum>15){
			attrNum=15;
		}
		for (i=0;i<attrNum;i++){
			Attval=prefix+"_a"+(i+1);
			cm[Attval]=cm.cm_exAttr[i];
		}
		cm.cm_exAttr=null;
	}	
	if ((cm.pi == null) && (cm.pc == "Y")) {
		cm.pi = cmGetDefaultPageID();
	}

	try{
		if (parent.cm_ref != null) {
			cm.rf = parent.cm_ref;
			if (cm.pc == "Y") {
				parent.cm_ref = document.URL;
			}
		}
	
		// if parent had mmc variables and this is the first pageview, add mmc to this url
		if(parent.cm_set_mmc) {
			cm.ul = document.location.href + 
					((document.location.href.indexOf("?") < 0) ? "?" : "&") + 
					parent.cm_mmc_params; 
			if (cm.pc == "Y") {
				parent.cm_ref = cm.ul;
				parent.cm_set_mmc = false;
			}
		}
	}
	catch(err){}

	if (cm.ul == null) {
		cm.ul = window.location.href;
	}

	//check for zero price and zero quantity
	cmSafeZero(cm,["qt","bp","tr","sg"]);

	//check for manual_cm_mmc parameter;
	if (this.manual_cm_mmc != null) {
		cm.ul = cm.ul + ((cm.ul.indexOf("&") == -1) ? ((cm.ul.indexOf("?") == -1) ? "?" : "&") : "&") + "cm_mmc=" + this.manual_cm_mmc;
	}

	// convert MMC parameters to lowercase;
	cm.ul = cm.ul.replace(/cm_mmc/gi,"cm_mmc");
	cm.ul = cm.ul.replace(/cm_ven/gi,"cm_ven");
	cm.ul = cm.ul.replace(/cm_cat/gi,"cm_cat");
	cm.ul = cm.ul.replace(/cm_pla/gi,"cm_pla");
	cm.ul = cm.ul.replace(/cm_ite/gi,"cm_ite");
	if (cmCheckCMEMFlag){cmStartTagSet();}
    cm.writeImg();
	if (cmCheckCMEMFlag) {
		cmCheckCMEMFlag = false;	
		cmCheckCMEM();
		cmSendTagSet();		
	}
  }	
}

function cmReportLoadTime(pageID, categoryID) {
	var cm_date=new Date();
	cmMakeTag(["tid","7","li","12358","ps1",pageID,"ps2",categoryID,"ps3",cm_date.getTime(),"ps4",cmT2]);
}

function cmCreateFormFieldTag(appName, appStepNumber, appStepName, categoryID) {
	if (doSendTag){
		cmAppName = appName;
		cmAppStepNumber = appStepNumber;
		cmAppStepName = appStepName;
		cmCreateApplicationStepTag(appName, appStepNumber, appStepName, categoryID);
		cmSetupFormFieldTags();
	}	
}

function cmGetDefaultPageID() { 
	var pageName = window.location.pathname;
	var tempIndex1 = pageName.indexOf("?");
	if (tempIndex1 != -1) {
		pageName = pageName.substr(0, tempIndex1);
	}	
	var tempIndex2 = pageName.indexOf("#");
	if (tempIndex2 != -1) {
		pageName = pageName.substr(0, tempIndex2);
	}	
	var tempIndex3 = pageName.indexOf(";");
	if (tempIndex3 != -1) {	
		pageName = pageName.substr(0, tempIndex3);
	}
	pageName = document.title + " : " + pageName;			
	return(pageName);
}

function cmCreateApplicationStepTag(appName, appStepNumber, appStepName, category){	
     var dt=new Date();	   
     cmRandom = dt.getTime()%10000000;
	 cmMakeTag(["tid","7","li","210000","ps1",appName,"ps2",appStepNumber,"ps3",appStepName,"ps4",cmRandom,"ps5",category.toUpperCase(),"ps15",cmTimeStamp]);
}

function cmIndexOfParameter (parameter, inString) {
	return inString.indexOf(parameter);
}

function cmExtractParameter (parameter, inString) {
    if (cmIndexOfParameter(parameter, inString) == -1) {
        return null;
    }
	var s = inString;
	var begin = s.indexOf(parameter);
	var end = s.indexOf("&", begin);
	if (end == -1) {
		end = s.length;
	}
	var middle = s.indexOf("=", begin);
	return s.substring(middle + 1, end);
}

function cmRemoveParameter (parameter, inString) {
    if (cmIndexOfParameter(parameter, inString) == -1) {
        return inString;
    }
	var s = inString;
	var begin = s.indexOf(parameter);
	var start = (begin - 1);
	var end = s.indexOf("&", begin);
	if (end == -1) {
		end = s.length;
	}
	if (s.substring(start, begin) == "?") {    // retain leading "?"
		start = (start + 1);
		end = (end + 1);
	}
	return s.substring(0, start) + s.substring(end, s.length);
}

function cmCheckCMEM() {
	if (cmIndexOfParameter("cm_em",document.location.href) != -1){
		var emailAddress = cmExtractParameter("cm_em",document.location.href);
		if (emailAddress.indexOf(":")>-1){
			emailAddress=emailAddress.substring(emailAddress.indexOf(":")+1);
		}
		cmCreateRegistrationTag(emailAddress,emailAddress);
	}
	if (cmIndexOfParameter("cm_lm",document.location.href) != -1){
		var emailAddress = cmExtractParameter("cm_lm",document.location.href);
		if (emailAddress.indexOf(":")>-1){
			emailAddress=emailAddress.substring(emailAddress.indexOf(":")+1);
		}		
		cmCreateRegistrationTag(emailAddress,emailAddress);
	}
}

function cmSafeZero(cm, checkArray) {
	// put logic here to convert number 0 to string "0"
	for (var i = 0; i < checkArray.length; ++i) {
		if ((cm[checkArray[i]] != null) && (cm[checkArray[i]] == 0)) {
			cm[checkArray[i]] = "0";
		}
	}
}

function cmSetupFormFieldTags(){
	if (doSendTag){
		var dt=new Date();
		cmRandom = dt.getTime()%10000000;
		for (var i=0; i<document.forms.length; i++){
			for (var j=0;j<document.forms[i].elements.length; j++){
				if (document.forms[i].elements[j].type=="text"){
					if(document.forms[i].elements[j].value==""){
						cmCheckForOnChange(document.forms[i].elements[j]);
					} else {
						cmSendFormFieldTag(document.forms[i].elements[j].name);
					}	
				}	
			}	
		}
	}	
}

function cmCheckForOnChange(textbox){
	if (doSendTag){
		cmOnChangeTextBoxName[cmOnChangeCounter] = textbox.name;
		cmOnChangePointer[cmOnChangeCounter] = textbox.onchange;
		cmOnChangeFirst[cmOnChangeCounter] = true;
		textbox.onchange = new Function("cmMultipleOnChange(" + cmOnChangeCounter + ");");
		cmOnChangeCounter++;
	}	
}

function cmSendFormFieldTag(name){
	cmMakeTag(["tid","7","li","210001","ps1",cmAppName,"ps2",cmAppStepNumber,"ps3",cmAppStepName,"ps4",cmRandom,"ps5",name,"ps15",cmTimeStamp]);
}

function cmMultipleOnChange(id){
	if (doSendTag){
		if (cmOnChangeFirst[id]){
			cmSendFormFieldTag(cmOnChangeTextBoxName[id]);
			cmOnChangeFirst[id] = false;
		}	
		if (cmOnChangePointer[id]!=null){
			cmOnChangePointer[id]();
		}
	}	
}

if (defaultNormalize == null) { 
	var defaultNormalize = null;
}

function myNormalizeURL(url, isHref) {
	 var newURL = url;
	 if (newURL.toLowerCase().indexOf("cm_re")>-1 || newURL.toLowerCase().indexOf("cm_sp")>-1){
	 	var mainURL=newURL.substring(0,newURL.indexOf("?"));
	 	var queryString=newURL.substring(newURL.indexOf("?")+1).split("&");
	 	for (var ii=0;ii<queryString.length;ii++){
	 		if (queryString[ii].toLowerCase().indexOf("cm_re")>-1 || queryString[ii].toLowerCase().indexOf("cm_sp")>-1){
	 			var pattern=/\*/g;
	 			queryString[ii]=queryString[ii].replace(pattern, "-_-");
	 		}
	 	}
	 	var newURL=mainURL+"?"+queryString.join("&");
	 }
	 if (url.toLowerCase().indexOf("/reicheck")>-1 || url.toLowerCase().indexOf("/search")>-1 || url.toLowerCase().indexOf("/shopping basket")>-1 || url.toLowerCase().indexOf("/gift registry")>-1 || url.toLowerCase().indexOf("/your account")>-1 || url.toLowerCase().indexOf("/order")>-1 || url.toLowerCase().indexOf("/payment")>-1){
		 if (!isHref) {
		 	var WhitelistURL=1;
		 }
	 }
	 if(isHref) {	
		if(url.indexOf("http://") == 0 || url.indexOf("https://") == 0) {
			newURL = newURL.substring(newURL.indexOf("://")+3);
			newURL = newURL.substring(newURL.indexOf("/"));
		} 
	 }
	 if (WhitelistURL==1){
	    var whiteList = ["cm_re=", "cm_re_o=", "cm_sp=", "cm_sp_o=","cm_mmc=","cm_mmc_o="];
	    var paramString;
	    var paramIndex = newURL.indexOf("?");
	    var params;
	    var keepParams = new Array();
	    if (paramIndex > 0) {
			paramString = newURL.substring(paramIndex+1);
			newURL = newURL.substring(0, paramIndex);
			params = paramString.split("&");
			for(var i=0; i<params.length; i++) {
				for(var j=0; j<whiteList.length; j++) {
					//This match is case insensitive.  Remove .toLowerCase() to add case sensitivity
					if (params[i].toLowerCase().indexOf(whiteList[j].toLowerCase()) == 0) {
						keepParams[keepParams.length] = params[i];
					}
				}
			}

			newURL += "?" + keepParams.join("&");
		}
   } else {
		 var blackList = ["krypto=","orderId=","currency=","productid","parent_category_rn=","crumb=","cat=", "signature="];
 		 var paramString;
 		 var paramIndex = newURL.indexOf("?");
 		 var params;
 		 var keepParams = new Array();
 		 var goodParam;
 		 if (paramIndex > 0) {	
			 paramString = newURL.substring(paramIndex+1);
			 newURL = newURL.substring(0, paramIndex);
			 params = paramString.split("&");
			 for(var i=0; i<params.length; i++) {	
				 goodParam = true;
				 for(var j=0; j<blackList.length; j++) {	
					 if (params[i].toUpperCase().indexOf(blackList[j].toUpperCase()) == 0) {	
						 goodParam = false;
					 }	
				 }	
				 if(params[i].indexOf("query=") == 0) {
					 params[i] = params[i].substring(0, 26);
				 }	
				 if(goodParam == true) {
					 keepParams[keepParams.length] = params[i];
				 }	
			}	
			newURL += "?" + keepParams.join("&");
		} 
   }
   if (defaultNormalize != null) {
		newURL = defaultNormalize(newURL, isHref);
   } 
   return newURL;
}

if (document.cmTagCtl != null) {
	var func = "" + document.cmTagCtl.normalizeURL;
	if (func.indexOf('myNormalizeURL') == -1) { 
		defaultNormalize = document.cmTagCtl.normalizeURL;
		document.cmTagCtl.normalizeURL = myNormalizeURL;
	}
}
//-->
