<!--
/*
 * cmdatatagutils.js $Id: cmdatatagutils - 7897559 - 9007798 - 22JUL09.txt 124842 2009-07-22 15:16:18Z abrink $	
 *
 *	051608	ABRINK	Add Conversion Event Tag and Element Tags
 *	072209	ABRINK	Provision IO; cm_vc extract added
 */

cm_ClientID = "90077798";
cm_TrackLink = "A";
cm_TrackImpressions = "RS";

function cmSetProduction(){
	cm_HOST="www2.fabric.com/cm?"; 
}

function cmCreateManualLinkClickTag(href,name) {	
	if (cmHandleLinkClick == null && C9 != null) {
		var cmHandleLinkClick = C9;
	}
	if (cmHandleLinkClick != null) {		
		var link = new Object();
		link.tagName = "A";
		link.name = name; 
		link.href = href; 
		cmHandleLinkClick(link);
	}	
}

function cmCreateManualImpressionTag(pageID, trackSP, trackRE) {
		var cm = new _cm("tid","9","vn2","4.0");
		cm.pi = pageID;
		if (trackSP){
			cm.cm_sp = trackSP;
		}
		if (trackRE){
			cm.cm_re = trackRE;
		}		
		cm.st = cm_ClientTS;
        cm.writeImg();
}


/* manual PageviewTag for off site page tagging.  Allows client to supply URL and Referring URL
*/
function cmCreateManualPageviewTag(pageID, categoryID,DestinationURL,ReferringURL) {
	if (pageID == null) {
		pageID = cmGetDefaultPageID();
	}

	var cm = new _cm("tid", "1", "vn2", "e4.0");
	cm.pi = pageID;
	if (categoryID) {
		cm.cg = categoryID;
	}

	// if available, override the referrer with the frameset referrer
	if (parent.cm_ref != null) {
		cm.rf = parent.cm_ref;
		parent.cm_ref = document.URL;
	}
	if (ReferringURL) {
		cm.rf = ReferringURL;
	}
	// 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; 
		parent.cm_ref = cm.ul;
		parent.cm_set_mmc = false;
	}
	if (DestinationURL) {
		cm.ul = DestinationURL;
	}
	cm.writeImg();
}

function cmCreatePageElementTag(elementID, elementCategory, pageID, pageCategoryID, elementLocation) {
	cmMakeTag(["tid","15","eid",elementID,"ecat",elementCategory,"pflg","0","pid",pageID,"pcat",pageCategoryID,"eloc",elementLocation]);
}

function cmCreateProductElementTag(elementID, elementCategory, productID, productCategoryID, elementLocation) {
	cmMakeTag(["tid","15","eid",elementID,"ecat",elementCategory,"pflg","1","pid",productID,"pcat",productCategoryID,"eloc",elementLocation]);
}

// CM_EM Email Capture Code
function cmIndexOfParameterCMEM (parameter) {
	return document.URL.indexOf(parameter);
}

function cmCheckCMEM() {

	if (cmIndexOfParameterCMEM("cm_em") != -1){

		var s = document.URL.toLowerCase();
		var begin = s.indexOf("cm_em");
		var end = s.indexOf("&", begin);
		if (end == -1) {
			end = s.length;
		}
		var middle = s.indexOf("=", begin);

		var emailAddress = s.substring(middle + 1, end);

		if (emailAddress.indexOf(":") != -1){
			var tempArray = emailAddress.split(":");
			emailAddress = tempArray[1];
		}

		cmCreateRegistrationTag(emailAddress,emailAddress);
	}
}

function cmCreateTechPropsTag(__pi,__cg) {
	cmCheckCMEM();
	cmMakeTag(["tid","6","pi",__pi,"cg",__cg,"pc","Y"]);
}

function cmCreatePageviewTag(__pi,__cg,__se,__sr) {
	cmCheckCMEM();
	cmMakeTag(["tid","1","pi",__pi,"cg",__cg,"se",__se,"sr",__sr,"pc","Y"]);
}

function cmCreateDefaultPageviewTag(__cg) {
	cmCreatePageviewTag(cmGetDefaultPageID(),__cg);
}

function cmCreateProductviewTag(__pr,__pm,__cg) {
	cmCheckCMEM();
	cmMakeTag(["tid","5","pi","PRODUCT: "+__pm+" ("+__pr+")","pr",__pr,"pm",__pm,"cg",__cg,"pc","Y","cm_vc",cmExtractParameter("cm_vc",document.location.href)]);
}

var __sArray = new Array();
var __skuString = "";

function __cmGetPI(__id){
	var __pI;
	for (__pI = 0; __pI < __sArray.length; ++__pI) {
		if (__id == __sArray[__pI][1]) return __pI;
	}
	return -1;
}

function cmAddShop(__v) {
	var __i = __cmGetPI(__v[1]);
	if (__i == -1) {
		__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(__pr,__pm,__qt,__bp,__cg) {
	cmAddShop(["pr",__pr,"pm",__pm,"qt",__qt,"bp",__bp,"cg",__cg,"at","5","tid","4","pc","N"]);
}

function cmCreateShopAction9Tag(__pr,__pm,__qt,__bp,__cd,__on,__tr,__cg) {
	cmAddShop(["pr",__pr,"pm",__pm,"qt",__qt,"bp",__bp,"cg",__cg,"cd",__cd,"on",__on,"tr",__tr,"at","9","tid","4","pc","N"]);
	cmCalcSKUString();
}

function cmDisplayShop5s() {
	cmDisplayShops();
}

function cmDisplayShop9s() {
	cmCalcSKUString();
	cmDisplayShops();
}

function cmCalcSKUString() {
	__skuString = "";
	for (i = 0; i < __sArray.length; ++i) {
		__skuString += "|"+__sArray[i][1]+"|"+__sArray[i][7]+"|"+__sArray[i][5]+"|";
	}
}

function cmDisplayShops() {
	var i;
	for (i = 0; i < __sArray.length; ++i) {
		cmMakeTag(__sArray[i]);
	}
	__sArray = new Array();
}

function cmCreateOrderTag(__on,__tr,__sg,__cd,__ct,__sa,__zp) {
	cmMakeTag(["tid","3","osk",__skuString,"on",__on,"tr",__tr,"sg",__sg,"cd",__cd,"ct",__ct,"sa",__sa,"zp",__zp]);
}

/*
 * Creates a Conversion Event tag
 *
 * eventID			: required. Conversion event ID
 * actionType		: required. 1=conversion initiation, 2=conversion completion
 * categoryID		: optional. Category for the event
 * points			: optional. Point value to assign to conversion.
 */
 function cmCreateConversionEventTag(eventID, actionType, categoryID, points) {
	cmMakeTag(["tid","14","cid",eventID,"cat",actionType,"ccid",categoryID,"cpt",points]);
 }

function cmCreateRegistrationTag(__cd,__em,__ct,__sa,__zp,__nl,__sd,purchaseUse,howSelection,quiltAssortments,quiltBatiks,
	quiltDesignerCotton,quiltExtraWide,quiltFatQuarters,quiltFlannel,quiltHomespuns,quiltMuslin,quiltPreQuilted,quiltSolids,
	apparelBridal,apparelDenim,apparelFauxFur,apparelFlannel,apparelPolarFleece,apparelKnits,apparelLinens,apparelShirtings,
	apparelSilk,apparelSlinky,apparelSpecialOccasion,apparelSportswear,apparelTwill,apparelVelvet,apparelWoolen,homeCanvas,
	homeChenille,homeDenim,homeDraperyLining,homeDraperyPrints,homeFleece,homeJacquards,homeLeather,homeLinen,homeOutdoor,
	homeSheers,homeSilk,homeTable,homeTapestries,homeTrim,homeUpholstery,homeVinyl,homeWaverly) {
	var r = 0;
	if (arguments.length > 9) {
		var x = 1;
		var i = 0;
		for (i = 9; i < arguments.length; ++i) {
			if (arguments[i] == "Y") {
				r += x;	
			}
			x *= 2;
		}
	}
	cmMakeTag(["tid","2","cd",__cd,"em",__em,"ct",__ct,"sa",__sa,"zp",__zp,"nl",__nl,"sd",__sd,"rg11",purchaseUse,"rg12",howSelection,"rg13",r,"li","1000","ps1",r]);
}

function cmCreateErrorTag(__pi,__cg) {
	cmMakeTag(["tid","404","pi",__pi,"cg",__cg,"pc","Y"]);
}

function cmGetDefaultPageID () {
	var __p = window.location.pathname;
	var __t1 = __p.indexOf("?");
	if (__t1 != -1) __p = __p.substr(0, __t1);
	var __t2 = __p.indexOf("#");
	if (__t2 != -1) __p = __p.substr(0, __t2);
	var __t3 = __p.indexOf(";");
	if (__t3 != -1) __p = __p.substr(0, __t3);
	var __sp = __p.lastIndexOf("/");
	if (__sp == __p.length - 1) {
		__p = __p + "default.asp"; /* SET TO DEFAULT DOC NAME */
	}
	while (__p.indexOf("/") == 0) {
		__p = __p.substr(1,__p.length);
	}
	return(__p);
}

function cmMakeTag(__v) {
	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;
	}

	if (cm.tid == "6") {
		cm.addTP();
	}
	if ((cm.pi == null) && (cm.pc == "Y")) {
		cm.pi = cmGetDefaultPageID();
	}

	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;
		}
	}
    cm.writeImg();
}

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);
}

if (defaultNormalize == null) { var defaultNormalize = null; }

function myNormalizeURL(url, isHref) {
    var newURL = url;
    // ... transform newURL here ...
    if (defaultNormalize != null) {
        newURL = defaultNormalize(newURL, isHref);
    }
    return newURL;
}

// install normalization
if (document.cmTagCtl != null) {
    var func = "" + document.cmTagCtl.normalizeURL;
    if (func.indexOf('myNormalizeURL') == -1) {
        defaultNormalize = document.cmTagCtl.normalizeURL;
        document.cmTagCtl.normalizeURL = myNormalizeURL;
    }
}

//-->