<!--
/*
 * cmdatatagutils.js for IBM Websphere Commerce
 * $Id: cmdatatagutils-5088859-90210970-061108.txt 90887 2008-06-11 19:10:18Z wbird $
 * $Revision: 90887 $
 *
 *
 * 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
 * 06/11/08		WBIRD			Corrected Client Managed 1st party settings - 5088859
 *
 */
var cm_ClientID = "90210970";
var cm_TrackLink = "A";
var cm_TrackImpressions = "RS";
var cm_JSFEnabled = true;

// code to determine javascript version
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";

var cmCheckCMEMFlag = true;

function cmSetProduction(){
    cm_HOST = "data.coremetrics.com/cm?";
    cm_JSFPCookieDomain = "clarins.com";
}

function cmCreatePageviewTag(__pi, __cg, __se, __sr, store_id){
    cmMakeTag(["tid", "1", "pi", __pi, "cg", __cg, "se", __se, "sr", __sr, "pc", "Y", "pv11", store_id]);
}

function cmCreateDefaultPageviewTag(__cg){
    cmCreatePageviewTag(cmGetDefaultPageID(), __cg);
}

function cmCreateProductviewTag(__pi, __pr, __pm, __cg, store_id, pageCount, catIDoverride){
    if (catIDoverride) { // allows client to override WSC auto-catID value
        __cg = catIDoverride;
    }
    if ((pageCount == null) || pageCount == "") {
        pageCount = 'Y';
    }
    if ((__pi == null) || (__pi == "") || (pageCount == "N")) {
        __pi = cG7.cM0[cm_ClientID];
    }
    cmMakeTag(["tid", "5", "pi", __pi, "pr", __pr, "pm", __pm, "cg", __cg, "pc", pageCount, "pv11", store_id, "li", "1010", "ps1", store_id, "ps2", __pr, "ps3", __cg]);
}

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 __cmGetPIPC(__pr, __cg){
    var __pI;
    for (__pI = 0; __pI < __sArray.length; ++__pI) {
        if (__pr == __sArray[__pI][1] && __cg == __sArray[__pI][9]) 
            return __pI;
    }
    return -1;
}

function cmAddShop(__v){
    //	var __i = __cmGetPIPC(__v[1],__v[9]);	/* productID+categoryID aggregation */
    var __i = __cmGetPI(__v[1]); /* productID aggregation */
    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, store_id, currency, catIDoverride){
    if (catIDoverride) { // manual override of WSC databean CategoryID
        __cg = catIDoverride;
    }
    cmAddShop(["pr", __pr, "pm", __pm, "qt", __qt, "bp", __bp, "cg", __cg, "at", "5", "tid", "4", "pc", "N", "sx11", store_id, "sx12", currency]);
}

function cmCreateShopAction9Tag(__pr, __pm, __qt, __bp, __cd, __on, __tr, __cg, store_id, currency, account_name, contract_name, catIDoverride){
    if (catIDoverride) { // manual override of WSC databean CategoryID
        __cg = catIDoverride;
    }
    cmAddShop(["pr", __pr, "pm", __pm, "qt", __qt, "bp", __bp, "cg", __cg, "cd", __cd, "on", __on, "tr", __tr, "at", "9", "tid", "4", "pc", "N", "sx11", store_id, "sx12", currency, "sx13", account_name, "sx14", contract_name]);
    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, store_id, currency, promotion_name, promotion_discount, promotion_code){
    cmMakeTag(["tid", "3", "osk", __skuString, "on", __on, "tr", __tr, "sg", __sg, "cd", __cd, "ct", __ct, "sa", __sa, "zp", __zp, "or11", store_id, "or12", currency, "or13", promotion_name, "or14", promotion_discount, "or15", promotion_code]);
}

function cmCreateRegistrationTag(__cd, __em, __ct, __sa, __zp, __nl, __sd, store_id, customer_country, age, gender, marital_status, num_children, num_in_household, company_name, hobbies, income){
    cmMakeTag(["tid", "2", "cd", __cd, "em", __em, "ct", __ct, "sa", __sa, "zp", __zp, "nl", __nl, "sd", __sd, "rg1", store_id, "cy", customer_country, "ag", age, "gd", gender, "rg11", marital_status, "rg12", num_children, "rg13", num_in_household, "rg14", company_name, "rg15", hobbies, "ml", income]);
}

function cmCreateErrorTag(__pi, __cg, store_id){
    cmMakeTag(["tid", "404", "pi", __pi, "cg", __cg, "pc", "Y", "pv1", store_id]);
}

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 == "1") {
        if (cI("cmTPSet") != 'Y') {
            cm.tid = "6";
            cm.addTP();
            document.cookie = "cmTPSet=Y; path=/";
        }
    }
    
    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;
        }
    }
    
    if (!(cm.ul)) {
        cm.ul = document.location.href;
    }
    if (!(cm.rf)) {
        cm.rf = document.referrer;
    }
    
    cm.ul = cmRemoveParameter("krypto", cm.ul);
    cm.ul = cmRemoveParameter("errorSamplesMessage", cm.ul);
    cm.ul = cmRemoveParameter("maxAmountMessage", cm.ul);
    cm.ul = cmRemoveParameter("exceededQuantityMessage", cm.ul);
    cm.ul = cmRemoveParameter("lessThan4QuantityMessage", cm.ul);
    cm.rf = cmRemoveParameter("krypto", cm.rf);
    cm.rf = cmRemoveParameter("errorSamplesMessage", cm.rf);
    cm.rf = cmRemoveParameter("maxAmountMessage", cm.rf);
    cm.rf = cmRemoveParameter("exceededQuantityMessage", cm.rf);
    cm.rf = cmRemoveParameter("lessThan4QuantityMessage", cm.rf);
    
    cm.writeImg();
    if (cmCheckCMEMFlag) {
        cmCheckCMEMFlag = false;
        cmCheckCMEM();
    }
}

if (defaultNormalize == null) {
    var defaultNormalize = null;
}

function myNormalizeURL(url, isHref){
    var newURL = url;
    var blackList = ["krypto=", "searchTerm=", "pageSize=", "resultType=", "mglPageSize=", "mglBeginIndex="];
    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].indexOf(blackList[j]) == 0) {
                    goodParam = false;
                }
            }
            if (goodParam == true) {
                keepParams[keepParams.length] = params[i];
            }
        }
        
        newURL += "?" + keepParams.join("&");
        
    }
    
    if (isHref) {
        newURL.split("&amp;").join("&");
        
        // convert cm_me parameter to cm_re parameter
        newURL = newURL.split("cm_me=").join("cm_re=WC:");
        
        // convert cm_cr parameter to cm_sp parameter and collapse hierarchy
        var cm_crValue = cmExtractParameter("cm_cr", newURL);
        if (cm_crValue != null) {
            var cm_crArray = cm_crValue.split("-_-");
            var cm_spValue = "cm_sp=WC:" + cm_crArray[0] + "-_-" + cm_crArray[1] + " - " + cm_crArray[2] + "-_-" + cm_crArray[3];
            cm_crValue = "cm_cr=" + cm_crValue;
            newURL = newURL.split(cm_crValue).join(cm_spValue);
        }
    }
    
    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 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);
        cmCreateRegistrationTag(emailAddress, emailAddress);
    }
    if (cmIndexOfParameter("cm_lm", document.location.href) != -1) {
        var emailAddress = cmExtractParameter("cm_lm", document.location.href);
        cmCreateRegistrationTag(emailAddress, emailAddress);
    }
}

function cmCreateManualImpressionTag(pageID, trackSP, trackRE){
    // insert code to get pageID from cmTagControl if pageID is null
    cmMakeTag(["tid", "9", "pi", pageID, "cm_sp", trackSP, "cm_re", trackRE, "st", cm_ClientTS]);
}

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);
    }
}

//-->