<!--
/*
 * cmdatatagutils.js
 * $Revision: 41128 $
 * $Id: cmdatatagutils-CI11721-90040260-010907.txt 41128 2007-01-10 19:08:50Z hwhite $
 * Coremetrics Tag v3.1, 2/28/2002
 * COPYRIGHT 1999-2002 COREMETRICS, INC. 
 * ALL RIGHTS RESERVED. U.S.PATENT PENDING
 *
 * The following functions aid in the creation of Coremetrics data tags.
 * Date			Modifier		Description
 * 21-Nov-2006	Eliot Towb		Added optimostSessionID and optimostCreativeNumber
 *								arguments to pageview and productview functions
 * 15-Dec-2006	Hutch White		Add extendedAssortment parameter to productview tag
 * 09-Jan-2007	Hutch White		Add Ensemble parameters to shop tags
 *
 */

function cmSetProduction(){
	cm_HOST="data.qvc.com/cm?"; 
}

function cmCreateManualLinkClickTag(href,name,pageID) {	
	if (cmCreateLinkTag == null && cM != null) {
		var cmCreateLinkTag = cM;
	}
	if (cmCreateLinkTag != null) {		
		var dt = new Date();
		cmLnkT3 = dt.getTime();
		cmCreateLinkTag(cm_ClientTS, cmLnkT3, name, href, false, pageID);
	}
}

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 cmCreateTechPropsTag(__pi,__cg) {
	cmMakeTag(["tid","6","pi",__pi,"cg",__cg,"pc","Y"]);
}

function cmCreatePageviewTag(__pi,__cg,__se,__sr, optimostSessionID, optimostCreativeNumber) {
	cmMakeTag(["tid","1","pi",__pi,"cg",__cg,"se",__se,"sr",__sr,"pc", "Y",
				"pv1",optimostSessionID,
				"pv2",optimostCreativeNumber]);
}

function cmCreateDefaultPageviewTag(__cg) {
	cmCreatePageviewTag(cmGetDefaultPageID(),__cg);
}

function cmCreateProductviewTag(__pr,__pm,__cg,__vc,__br,__onair,__se,__sr, optimostSessionID, optimostCreativeNumber,extendedAssortment) {
	cmMakeTag(["tid","5","pi","PRODUCT: "+__pm+" ("+__pr+")","pr",__pr,"pm",__pm,"cg",__cg,"pc","Y","pr1",__vc,"pr2",__br,"pr3",__onair,"se",__se,"sr",__sr,
				"pv1",optimostSessionID,
				"pv2",optimostCreativeNumber,
		        "li","3", 
				"ps1", __pr,
				"ps2", "PRODUCT: "+__pm+" ("+__pr+")",
				"ps3", __pm,
				"ps4", __cg,
				"ps5", __vc,
				"ps6", __br,
				"ps7", __onair,
				"ps8",optimostSessionID,
				"ps9",optimostCreativeNumber,
				"ps10",extendedAssortment]);
}

function cmCreateEnsembleTag(__pr,__pm,__ensembleID,__ensembleName) {
	cmMakeTag(["tid","7","li","5","ps1", __pr,"ps2", "PRODUCT: "+__pm+" ("+__pr+")","ps3", __pm,"ps4",__ensembleID,"ps5",__ensembleName]);
}
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,__vc,__br,__onair,extendedAssortment,__ensembleID,__ensembleName,__ensembleNum) {
	cmAddShop(["pr",__pr,"pm",__pm,"qt",__qt,"bp",__bp,"cg",__cg,"at","5","tid","4","pc","N","sx1",__vc,"sx2",__br,"sx3",__onair,"sx4",extendedAssortment,"sx5",__ensembleID,"sx6",__ensembleName,"sx7",__ensembleNum]);
}

function cmCreateShopAction9Tag(__pr,__pm,__qt,__bp,__cd,__on,__tr,__cg,__vc,__br,__onair,extendedAssortment,__ensembleID,__ensembleName,__ensembleNum) {
	cmAddShop(["pr",__pr,"pm",__pm,"qt",__qt,"bp",__bp,"cg",__cg,"cd",__cd,"on",__on,"tr",__tr,"at","9","tid","4","pc","N","sx1",__vc,"sx2",__br,"sx3",__onair,"sx4",extendedAssortment,"sx5",__ensembleID,"sx6",__ensembleName,"sx7",__ensembleNum]);
	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]);
}

function cmCreateRegistrationTag(__cd,__em,__ct,__sa,__zp,__nl,__sd) {
	cmMakeTag(["tid","2","cd",__cd,"em",__em,"ct",__ct,"sa",__sa,"zp",__zp,"nl",__nl,"sd",__sd]);
}

function cmCreateErrorTag(__pi,__cg) {
	cmMakeTag(["tid","404","pi",__pi,"cg",__cg,"pc","Y"]);
}

function cmCreateNewMemberTag(__cid) {
	cmMakeTag(["tid","7","li",1,"ps1",__cid]);
	cmCreateRegistrationTag(__cid);
}

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 cM(t1,ti,name,href,resent,pi){
	var cm=new _cm("tid","8");
	href = href.split("javascript:navigateLink(").join("").split(");").join("");
	cm.pi=(pi==null)?c1(cm.ci):pi;
	cm.st=t1;
	cm.ti=ti;
	cm.nm=name;
	cm.hr=href;
	if(resent)cm.rs="Y";
	cm.write(1);
}

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;
		}
	}

	var mmc_pars = "";

	// if parent had mmc variables and this is the first pageview, add mmc to this url
	if(parent.cm_set_mmc) {
		mmc_pars = parent.cm_mmc_params;
	}

	if(parent.gs_mmc) {
		mmc_pars = parent.gs_mmc;
	}

	if(this.gs_mmc) {
		mmc_pars = this.gs_mmc;
	}

	if(mmc_pars) {
		cm.ul = document.location.href + 
				((document.location.href.indexOf("?") < 0) ? "?" : "&") + 
				mmc_pars; 
		if (cm.pc == "Y") {
			parent.cm_ref = cm.ul;
			parent.cm_set_mmc = false;
		}
	}
    cm.writeImg();
}

if (defaultNormalize == null) { var defaultNormalize = null; }

function myNormalizeURL(url, isHref) { 
  
     var newURL = url; 
	 
	 var jsOne = newURL.indexOf("javascript:goTo(%"); 
	 var jsTwo = newURL.indexOf("javascript:navigateLink(");
	 var jsThree = newURL.indexOf("javascript:open_video_hp(");
	 
	 if (jsOne >= 0)
	 {	 
		 
		 newURL = newURL.split("javascript:goTo(%").join("/");
		
		 var lastComma = newURL.lastIndexOf(",");
		 var subURL = newURL.substr(lastComma, newURL.length);
	
		 subURL = subURL.split(",").join("www.qvc.com?cm_re=").split("'").join("").split("%20").join("");
	
		 newURL = subURL;
	
	 }

	 if (jsTwo >= 0)
	 {	 
		 newURL = newURL.split("javascript:navigateLink(").join("");

		 var indexParam = newURL.indexOf("&cm_");
		 var endStr = newURL.substr(indexParam + 1, newURL.length);
		 
		 var ampParam = endStr.indexOf("&");
		 var commaParam = endStr.indexOf(",");
		 var cmParam;

		 if (ampParam >= 0)
		 {
			 cmParam = endStr.substr(0, ampParam - 1);
		 }
		 if (commaParam >= 0)
		 {
			 cmParam = endStr.substr(0, commaParam - 1);
		 }

		 newURL = cmParam.split("cm_").join("www.qvc.com?cm_");
	  }

	if (jsThree >= 0)
	{
		newURL = newURL.split("javascript:open_video_hp(").join("").split(");");

	}
	var pageURL=document.URL;
    if (isHref) {
		if ((pageURL.toLowerCase().indexOf("shoppingcart")>-1 || pageURL.toLowerCase().indexOf("cs_order_history")>-1 || pageURL.toLowerCase().indexOf("cs_order_view")>-1 || pageURL.toLowerCase().indexOf("cs_order_detail")>-1) && (newURL.toLowerCase().indexOf("app.detail")>-1 || newURL.toLowerCase().indexOf("updategiftwrap")>-1 || newURL.toLowerCase().indexOf("command.delete")>-1 || newURL.toLowerCase().indexOf("servetolist")>-1 || newURL.toLowerCase().indexOf(".membernum")>-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++) {
						if (params[i].toLowerCase().indexOf(whiteList[j].toLowerCase()) == 0) {
							keepParams[keepParams.length] = params[i];
						}
					}
				}
			}

			if (newURL.toLowerCase().indexOf("app.detail")>-1){
				newURL=newURL.substring(0,newURL.toLowerCase().indexOf("app.detail")+10);
			}
			if (newURL.toLowerCase().indexOf("cs_redirect_orders,asp")>-1){
				newURL=newURL.substring(0,newURL.toLowerCase().indexOf(",asp")+4);
			}
			if (newURL.toLowerCase().indexOf("cs_order_detail,asp")>-1){
				newURL=newURL.substring(0,newURL.toLowerCase().indexOf(",asp")+4);
			}
			if (newURL.toLowerCase().indexOf("shoppingcart,plex")>-1){
				newURL=newURL.substring(0,newURL.toLowerCase().indexOf(",asp")+4);
			}

			newURL += "?" + keepParams.join("&");
		}
	}
    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;
    }
}

function cmSafeFormSubmit(id) {

            CI();
            cO(id,"S");
            CA(1);
            CJ(1);
            CE();

			return true;
}

function cP(e){

            CI();
            if (typeof e == typeof e123_x) {
                        var e = this;
            }
            else {
                        var e=CG(e);
            }
            cO(e?e.cM1:-1,"S");
            CA(1);
            CJ(1);
            CE();
}

//-->