var gImages = new Array;
var gIndex = 0;
var DCS = new Object();
var WT = new Object();
var DCSext = new Object();
var gQP = new Array();

function dcsVar() {
    var dCurrent = new Date();
    WT.tz = dCurrent.getTimezoneOffset() / 60 * -1;
    if (WT.tz == 0) {
        WT.tz = "0";
    }
    WT.bh = dCurrent.getHours();
    WT.ul = navigator.appName == "Netscape" ? navigator.language : navigator.userLanguage;
    if (typeof(screen) == "object") {
        WT.cd = navigator.appName == "Netscape" ? screen.pixelDepth : screen.colorDepth;
        WT.sr = screen.width + "x" + screen.height;
    }
    if (typeof(navigator.javaEnabled()) == "boolean") {
        WT.jo = navigator.javaEnabled() ? "Yes" : "No";
    }
    if (document.title) {
        WT.ti = document.title;
    }
    WT.js = "Yes";
    if (typeof(gVersion) != "undefined") {
        WT.jv = gVersion;
    }
    var sourceCode = readCookie('bose.sourceCode');
    if (sourceCode != null && sourceCode != '') {
        if (sourceCode.indexOf('"') == 0 && sourceCode.lastIndexOf('"') == sourceCode.length-1) {
            sourceCode = sourceCode.substr(1,sourceCode.length-2);
        }
        if(sourceCode.length > 2 && sourceCode.charAt(2) == '/'){
            sourceCode = sourceCode.substring(3);
        }
        WT.mc_id = sourceCode;
        DCSext.mcb = sourceCode;
    }

    if (WT.mc_id == null || WT.mc_id == "") {
        var affiliateId = readCookie('affid');
        if (affiliateId != null && affiliateId != "") {
            WT.mc_id = affiliateId;
            DCSext.mcb = affiliateId;
        }
    }
    DCS.dcsdat = dCurrent.getTime();
    DCS.dcssip = window.location.hostname;
    DCS.dcsuri = window.location.pathname;
    DCSext.boseuri = window.location.pathname;
    if (window.location.search) {
        DCS.dcsqry = window.location.search;
    }
    if ((window.document.referrer != "") && (window.document.referrer != "-")) {
        if (!(navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) < 4)) {
            DCS.dcsref = window.document.referrer;
        }
    }
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') {
            c = c.substring(1,c.length);
        }
		if (c.indexOf(nameEQ) == 0) {
            return c.substring(nameEQ.length,c.length);
        }
	}
	return null;
}



function A(N, V) {
    return "&" + N + "=" + dcsEscape(V);
}

function dcsEscape(S) {
    if (typeof(RE) != "undefined") {
        var retStr = new String(S);
        for (R in RE) {
            retStr = retStr.replace(RE[R], R);
        }

        return retStr;
    }
    else {
        return escape(S);
    }
    /*return unescape(encodeURIComponent(S));  */
}

function dcsCreateImage(dcsSrc) {
    if (document.images) {
        gImages[gIndex] = new Image;
        gImages[gIndex].src = dcsSrc;
        gIndex++;
    }
    else {
        document.write('<IMG BORDER="0" NAME="DCSIMG" WIDTH="1" HEIGHT="1" SRC="' + dcsSrc + '">');
    }
}

function dcsMeta() {
    var myDocumentElements;
    if (document.all) {
        myDocumentElements = document.all.tags("meta");
    }
    else if (document.documentElement) {
        myDocumentElements = document.getElementsByTagName("meta");
    }
    if (typeof(myDocumentElements) != "undefined") {
        for (var i = 1; i <= myDocumentElements.length; i++) {
            myMeta = myDocumentElements.item(i - 1);
            if (myMeta.name) {
                if (myMeta.name.indexOf('WT.') == 0) {
                    WT[myMeta.name.substring(3)] = myMeta.content;
                }
                else if (myMeta.name.indexOf('DCSext.') == 0) {
                    DCSext[myMeta.name.substring(7)] = myMeta.content;
                }
                else if (myMeta.name.indexOf('DCS.') == 0) {
                        DCS[myMeta.name.substring(4)] = myMeta.content;
                    }
            }
        }
    }
}

function dcsTag() {
    //workaround
    if (window.location.host.indexOf(".stage.boseeurope.com") != -1) {
        gDcsId = "dcssjoqac10000kbylzv8kkz6_7r6j";
    } else if (window.location.host.indexOf(".pep.boseeurope.com") != -1) {
        gDcsId = "dcse2v7aa100004fuw2rxojvc_3v6t";
    } else if (window.location.host.indexOf(".uat.boseeurope.com") != -1) {
        gDcsId = "dcsdewg7300000ctqtrqn3hbi_1x1d";
    } else if (window.location.host.indexOf(".dev.boseeurope.com") != -1) {
        gDcsId = "dcsghtb3t00000slfgphz6ez6_5m2l";
    } else {
        //production
        gDcsId = "dcs6bfcvmwrq7jq7072alpx35_7r5m";
    }

    var P = "http" + (window.location.protocol.indexOf('https:') == 0 ? 's' : '') + "://" + gDomain + (gDcsId == "" ? '' : '/' + gDcsId) + "/dcs.gif?";
    //var P="http"+"://"+gDomain+(gDcsId==""?'':'/'+gDcsId)+"/dcs.gif?";
    for (N in DCS) {
        if (DCS[N]) {
            P += A(N, DCS[N]);
        }
    }
    for (N in WT) {
        if (WT[N]) {
            P += A("WT." + N, WT[N]);
        }
    }
    for (N in DCSext) {
        if (DCSext[N]) {
            P += A(N, DCSext[N]);
        }
    }
    if (P.length > 2048 && navigator.userAgent.indexOf('MSIE') >= 0) {
        P = P.substring(0, 2040) + "&WT.tu=1";
    }
    dcsCreateImage(P);
}

function dcsPrintVariables()
{
    var tagVariables = "\nDomain = " + gDomain;
    tagVariables += "\nDCSId = " + gDcsId;
    for (N in DCS) {
        tagVariables += "\nDCS." + N + " = " + DCS[N];
    }
    for (N in WT) {
        tagVariables += "\nWT." + N + " = " + WT[N];
    }
    for (N in DCSext) {
        tagVariables += "\nDCSext." + N + " = " + DCSext[N];
    }
}

function dcsMultiTrack() {
    WT = new Object();
    DCS = new Object();
    DCSext = new Object();
    for (var i = 0; i < arguments.length; i++) {
        if (arguments[i].indexOf('WT.') == 0) {
            WT[arguments[i].substring(3)] = arguments[i + 1];
        } else if (arguments[i].indexOf('DCS.') == 0) {
            DCS[arguments[i].substring(4)] = arguments[i + 1];
        } else if (arguments[i].indexOf('DCSext.') == 0) {
            DCSext[arguments[i].substring(7)] = arguments[i + 1];
        }
        i++;
    }
    DCS.dcsdat = new Date().getTime();
    dcsTag();
}

function dcsMultiTrackArray(wtData, includeDcsVariables) {
    WT = wtData.wt;
    DCS = wtData.dcs;
    DCSext = wtData.dcsext;
    DCS.dcsdat = new Date().getTime();
    if(includeDcsVariables){
        var title = wtData.wt.ti;
        var uri = wtData.dcs.dcsuri;
        dcsVar();
        WT.ti = title;
        DCS.dcsuri = uri;
        DCSext.boseuri = uri;
    }

    dcsTag();
}
