var gService = false;
var gTimeZone = -5;
// Code section for Enable First-Party Cookie Tracking
function dcsCookie() {
    if (typeof (dcsOther) == "function") {
        dcsOther();
    }
    else if (typeof (dcsPlugin) == "function") {
        dcsPlugin();
    }
    else if (typeof (dcsFPC) == "function") {
        dcsFPC(gTimeZone);
    }
}
function dcsGetCookie(name) {
    var pos = document.cookie.indexOf(name + "=");
    if (pos != -1) {
        var start = pos + name.length + 1;
        var end = document.cookie.indexOf(";", start);
        if (end == -1) {
            end = document.cookie.length;
        }
        return unescape(document.cookie.substring(start, end));
    }
    return null;
}
function dcsGetCrumb(name, crumb) {
    var aCookie = dcsGetCookie(name).split(":");
    for (var i = 0; i < aCookie.length; i++) {
        var aCrumb = aCookie[i].split("=");
        if (crumb == aCrumb[0]) {
            return aCrumb[1];
        }
    }
    return null;
}
function dcsGetIdCrumb(name, crumb) {
    var cookie = dcsGetCookie(name);
    var id = cookie.substring(0, cookie.indexOf(":lv="));
    var aCrumb = id.split("=");
    for (var i = 0; i < aCrumb.length; i++) {
        if (crumb == aCrumb[0]) {
            return aCrumb[1];
        }
    }
    return null;
}
function dcsIsFpcSet(name, id, lv, ss) {
    if (id == dcsGetIdCrumb(name, "id")) {
        if (lv == dcsGetCrumb(name, "lv")) {
            if (ss == dcsGetCrumb(name, "ss")) {
                return true;
            }
        }
    }
    return false;
}
function dcsFPC(offset) {
    if (typeof (offset) == "undefined") {
        return;
    }
    if (document.cookie.indexOf("WTLOPTOUT=") != -1) {
        return;
    }
    var name = gFpc;
    var dCur = new Date();
    var adj = (dCur.getTimezoneOffset() * 60000) + (offset * 3600000);
    dCur.setTime(dCur.getTime() + adj);
    var dExp = new Date(dCur.getTime() + 315360000000);
    var dSes = new Date(dCur.getTime());
    WT.co_f = WT.vt_sid = WT.vt_f = WT.vt_f_a = WT.vt_f_s = WT.vt_f_d = WT.vt_f_tlh = WT.vt_f_tlv = "";
    if (document.cookie.indexOf(name + "=") == -1) {
        if ((typeof (gWtId) != "undefined") && (gWtId != "")) {
            WT.co_f = gWtId;
        }
        else if ((typeof (gTempWtId) != "undefined") && (gTempWtId != "")) {
            WT.co_f = gTempWtId;
            WT.vt_f = "1";
        }
        else {
            WT.co_f = "2";
            var cur = dCur.getTime().toString();
            for (var i = 2; i <= (32 - cur.length); i++) {
                WT.co_f += Math.floor(Math.random() * 16.0).toString(16);
            }
            WT.co_f += cur;
            WT.vt_f = "1";
        }
        if (typeof (gWtAccountRollup) == "undefined") {
            WT.vt_f_a = "1";
        }
        WT.vt_f_s = WT.vt_f_d = "1";
        WT.vt_f_tlh = WT.vt_f_tlv = "0";
    }
    else {
        var id = dcsGetIdCrumb(name, "id");
        var lv = parseInt(dcsGetCrumb(name, "lv"));
        var ss = parseInt(dcsGetCrumb(name, "ss"));
        if ((id == null) || (id == "null") || isNaN(lv) || isNaN(ss)) {
            return;
        }
        WT.co_f = id;
        var dLst = new Date(lv);
        WT.vt_f_tlh = Math.floor((dLst.getTime() - adj) / 1000);
        dSes.setTime(ss);
        if ((dCur.getTime() > (dLst.getTime() + 1800000)) || (dCur.getTime() > (dSes.getTime() + 28800000))) {
            WT.vt_f_tlv = Math.floor((dSes.getTime() - adj) / 1000);
            dSes.setTime(dCur.getTime());
            WT.vt_f_s = "1";
        }
        if ((dCur.getDay() != dLst.getDay()) || (dCur.getMonth() != dLst.getMonth()) || (dCur.getYear() != dLst.getYear())) {
            WT.vt_f_d = "1";
        }
    }
    WT.co_f = escape(WT.co_f);
    WT.vt_sid = WT.co_f + "." + (dSes.getTime() - adj);
    var expiry = "; expires=" + dExp.toGMTString();
    document.cookie = name + "=" + "id=" + WT.co_f + ":lv=" + dCur.getTime().toString() + ":ss=" + dSes.getTime().toString() + expiry + "; path=/" + (((typeof (gFpcDom) != "undefined") && (gFpcDom != "")) ? ("; domain=" + gFpcDom) : (""));
    if (!dcsIsFpcSet(name, WT.co_f, dCur.getTime().toString(), dSes.getTime().toString())) {
        WT.co_f = WT.vt_sid = WT.vt_f_s = WT.vt_f_d = WT.vt_f_tlh = WT.vt_f_tlv = "";
        WT.vt_f = WT.vt_f_a = "2";
    }
}

// Code section for Use the new first-party cookie generated with this tag.
var gFpc = "WT_FPC";
var gConvert = true;

function dcsAdv() {
    dcsFunc("dcsET");
    dcsFunc("dcsCookie");
    dcsFunc("dcsAdSearch");
    dcsFunc("dcsTP");
}


var gImages = new Array;
var gIndex = 0;
var DCS = new Object();
var WT = new Object();
var DCSext = new Object();
var gQP = new Array();
var gI18n = false;
if (window.RegExp) {
    var RE = gI18n ? { "%25": /\%/g} : { "%09": /\t/g, "%20": / /g, "%23": /\#/g, "%26": /\&/g, "%2B": /\+/g, "%3F": /\?/g, "%5C": /\\/g, "%22": /\"/g, "%7F": /\x7F/g, "%A0": /\xA0/g };
    if (gI18n) {
        var EXRE = /dcs(uri)|(ref)|(aut)|(met)|(sta)|(sip)|(pro)|(byt)|(dat)|(p3p)|(cfg)|(redirect)|(cip)/i;
    }
}

// Add customizations here
function dcsMultiTrack() {
    //Horacio: I added this to send the correct information to webtrends. Not repeated information.
    DCSext = new Object();
    if (arguments.length % 2 == 0) {
        for (var i = 0; i < arguments.length; i += 2) {
            if (arguments[i].indexOf('WT.emaild2d') == 0) {
                WT[arguments[i].substring(11)] = arguments[i + 1];
            }
            else if (arguments[i].indexOf('WT.email') == 0) {
                WT[arguments[i].substring(8)] = arguments[i + 1];
            }
            else 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];
            }
        }
        var dCurrent = new Date();
        DCS.dcsdat = dCurrent.getTime();
        dcsFunc("dcsCookie");
        dcsTag();
    }
}



function TESTdcsMultiTrackFirstArgumentObjectId() {
    var argCount = 0;
    var valueInArgument = "XYXYXY";

    DCSext = new Object();

    // we check that the modulo of division by 2 has to be one, 
    // because the extra (first)argument is the object id

    if (arguments.length % 2 == 1) {

        var replacementValue = "UNDEFINED";

        // the first argument is assumed to be the "this" object
        var theFieldObject = arguments[0];

        if (theFieldObject == null) {
            alert("document.getElementById(" + arguments[0] + ") returned null");
        }
        else {
            // alert("document has id: " + theFieldObject.name + " and value: " + theFieldObject.value);
            if (theFieldObject.value != "") {
                replacementValue = theFieldObject.value;

                if (theFieldObject.tagName.toLowerCase() == "span") {
                    var realValue = "";
                    // try to process the child elements
                    // up to four radio buttons for now
                    id = theFieldObject.id;

                    child0 = document.getElementById(theFieldObject.id + "_0");
                    if (child0 != null) {
                        if (child0.checked) { realValue = child0.value; }
                    }

                    child1 = document.getElementById(theFieldObject.id + "_1");
                    if (child1 != null) {
                        if (child1.checked) { realValue = child1.value; }
                    }

                    child2 = document.getElementById(theFieldObject.id + "_2");
                    if (child2 != null) {
                        if (child2.checked) { realValue = child2.value; }
                    }

                    child3 = document.getElementById(theFieldObject.id + "_3");
                    if (child3 != null) {
                        if (child3.checked) { realValue = child3.value; }
                    }

                    if (realValue != "") { replacementValue = realValue; }
                }

                alert("replacement value is: " + replacementValue);
            }

        }


        for (var i = 1; i <= arguments.length; i += 2) {

            // replace the placeholder with the actual object value if 
            // any found
            if (arguments[i + 1] == '$WTEVENTVAR_CURRENT_VALUE$') {
                arguments[i + 1] = replacementValue;
                argCount = i + 1;
                valueInArgument = arguments[i + 1];

            }



            // make sure we are not going over the top
            if (i >= arguments.length) { break; }

            if (arguments[i].indexOf('WT.emaild2d') == 0) {
                WT[arguments[i].substring(11)] = arguments[i + 1];
            }
            else if (arguments[i].indexOf('WT.email') == 0) {
                WT[arguments[i].substring(8)] = arguments[i + 1];
            }
            else 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];
            }
        }
        var dCurrent = new Date();
        DCS.dcsdat = dCurrent.getTime();
        dcsFunc("dcsCookie");
        dcsTag();
        alert("all good and current value in arguments[" + argCount + "] is: " + valueInArgument);
    }

}

function dcsMultiTrackFirstArgumentObjectId() {

    var argCount = 0;
    var valueInArgument = "XYXYXY";

    DCSext = new Object();

    // we check that the modulo of division by 2 has to be one, 
    // because the extra (first)argument is the object id

    if (arguments.length % 2 == 1) {

        var replacementValue = "UNDEFINED";

        // the first argument is assumed to be the "this" object
        var theFieldObject = arguments[0];

        if (theFieldObject == null) {

        }
        else {
            // alert("document has id: " + theFieldObject.name + " and value: " + theFieldObject.value);
            if (theFieldObject.value != "") {
                replacementValue = theFieldObject.value;

                // - Check if a span object has sent the event (used in ASP.NET 2.0 as a container of input elements that make up a radio group)
                if (theFieldObject.tagName.toLowerCase() == "span") {
                    var realValue = "";
                    // try to process the child elements
                    // up to four radio buttons for now
                    id = theFieldObject.id;

                    child0 = document.getElementById(theFieldObject.id + "_0");
                    if (child0 != null) {
                        if (child0.checked) { realValue = child0.value; }
                    }

                    child1 = document.getElementById(theFieldObject.id + "_1");
                    if (child1 != null) {
                        if (child1.checked) { realValue = child1.value; }
                    }

                    child2 = document.getElementById(theFieldObject.id + "_2");
                    if (child2 != null) {
                        if (child2.checked) { realValue = child2.value; }
                    }

                    child3 = document.getElementById(theFieldObject.id + "_3");
                    if (child3 != null) {
                        if (child3.checked) { realValue = child3.value; }
                    }

                    if (realValue != "") { replacementValue = realValue; }
                }

                // alert("replacement value is: " + replacementValue);
            }

        }


        for (var i = 1; i <= arguments.length; i += 2) {

            // replace the placeholder with the actual object value if 
            // any found
            if (arguments[i + 1] == '$WTEVENTVAR_CURRENT_VALUE$') {
                arguments[i + 1] = replacementValue;
                argCount = i + 1;
                valueInArgument = arguments[i + 1];

            }


            // make sure we are not going over the top
            if (i >= arguments.length) { break; }

            if (arguments[i].indexOf('WT.emaild2d') == 0) {
                WT[arguments[i].substring(11)] = arguments[i + 1];
            }
            else if (arguments[i].indexOf('WT.email') == 0) {
                WT[arguments[i].substring(8)] = arguments[i + 1];
            }
            else if (arguments[i].indexOf('WT.') == 0) {
                if (arguments[i] == "WT.ti") {
                    if (CURRENT_LANG == "fr")
                        WT[arguments[i].substring(3)] = arguments[i + 1] + " - FR";
                    else
                        WT[arguments[i].substring(3)] = arguments[i + 1];
                }

                else
                    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];
            }
        }
        var dCurrent = new Date();
        DCS.dcsdat = dCurrent.getTime();
        dcsFunc("dcsCookie");
        dcsTag();

    }
}

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) {
        if ( typeof(CURRENT_LANG) != "undefined" && CURRENT_LANG == "fr")
            WT.ti = document.title + " - FR";
        else
            WT.ti = document.title;
    }
    WT.js = "Yes";
    WT.jv = dcsJV();
    if (document.body && document.body.addBehavior) {
        document.body.addBehavior("#default#clientCaps");
        WT.ct = document.body.connectionType || "unknown";
        document.body.addBehavior("#default#homePage");
        WT.hp = document.body.isHomePage(location.href) ? "1" : "0";
    }
    else {
        WT.ct = "unknown";
    }
    if (parseInt(navigator.appVersion) > 3) {
        if ((navigator.appName == "Microsoft Internet Explorer") && document.body) {
            WT.bs = document.body.offsetWidth + "x" + document.body.offsetHeight;
        }
        else if (navigator.appName == "Netscape") {
            WT.bs = window.innerWidth + "x" + window.innerHeight;
        }
    }
    WT.fi = "No";
    if (window.ActiveXObject) {
        for (var i = 10; i > 0; i--) {
            try {
                var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i);
                WT.fi = "Yes";
                WT.fv = i + ".0";
                break;
            }
            catch (e) {
            }
        }
    }
    else if (navigator.plugins && navigator.plugins.length) {
        for (var i = 0; i < navigator.plugins.length; i++) {
            if (navigator.plugins[i].name.indexOf('Shockwave Flash') != -1) {
                WT.fi = "Yes";
                WT.fv = navigator.plugins[i].description.split(" ")[2];
                break;
            }
        }
    }
    if (gI18n) {
        WT.em = (typeof (encodeURIComponent) == "function") ? "uri" : "esc";
        if (typeof (document.defaultCharset) == "string") {
            WT.le = document.defaultCharset;
        }
        else if (typeof (document.characterSet) == "string") {
            WT.le = document.characterSet;
        }
    }
    WT.tv = "8.0.3";
    WT.sp = "@@SPLITVALUE@@";
    DCS.dcsdat = dCurrent.getTime();
    DCS.dcssip = window.location.hostname;
    DCS.dcsuri = window.location.pathname;
    if (window.location.search) {
        DCS.dcsqry = window.location.search;
        if (gQP.length > 0) {
            for (var i = 0; i < gQP.length; i++) {
                var pos = DCS.dcsqry.indexOf(gQP[i]);
                if (pos != -1) {
                    var front = DCS.dcsqry.substring(0, pos);
                    var end = DCS.dcsqry.substring(pos + gQP[i].length, DCS.dcsqry.length);
                    DCS.dcsqry = front + end;
                }
            }
        }
    }
    if ((window.document.referrer != "") && (window.document.referrer != "-")) {
        if (!(navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) < 4)) {
            DCS.dcsref = window.document.referrer;
        }
    }
}

function dcsA(N, V) {
    if (gI18n && !EXRE.test(N)) {
        if (N == "dcsqry") {
            var newV = "";
            var params = V.substring(1).split("&");
            for (var i = 0; i < params.length; i++) {
                var pair = params[i];
                var pos = pair.indexOf("=");
                if (pos != -1) {
                    var key = pair.substring(0, pos);
                    var val = pair.substring(pos + 1);
                    if (i != 0) {
                        newV += "&";
                    }
                    newV += key + "=" + dcsEncode(val);
                }
            }
            V = V.substring(0, 1) + newV;
        }
        else {
            V = dcsEncode(V);
        }
    }
    return "&" + N + "=" + dcsEscape(V, RE);
}

function dcsEscape(S, REL) {
    if (typeof (REL) != "undefined") {
        var retStr = new String(S);
        for (var R in REL) {
            retStr = retStr.replace(REL[R], R);
        }
        return retStr;
    }
    else {
        return escape(S);
    }
}

function dcsEncode(S) {
    return (typeof (encodeURIComponent) == "function") ? encodeURIComponent(S) : escape(S);
}

function dcsCreateImage(dcsSrc) {
    if (document.images) {
        gImages[gIndex] = new Image;
        gImages[gIndex].src = dcsSrc;
        gIndex++;
    }
    else {
        document.write('<IMG ALT="" BORDER="0" NAME="DCSIMG" WIDTH="1" HEIGHT="1" SRC="' + dcsSrc + '">');
    }
}

function dcsMeta() {
    var elems;
    if (document.all) {
        elems = document.all.tags("meta");
    }
    else if (document.documentElement) {
        elems = document.getElementsByTagName("meta");
    }
    if (typeof (elems) != "undefined") {
        var length = elems.length;
        for (var i = 0; i < length; i++) {
            var name = elems.item(i).name;
            var content = elems.item(i).content;
            var equiv = elems.item(i).httpEquiv;
            if (name.length > 0) {
                if (name.indexOf("WT.") == 0) {
                    WT[name.substring(3)] = content;
                }
                else if (name.indexOf("DCSext.") == 0) {
                    DCSext[name.substring(7)] = content;
                }
                else if (name.indexOf("DCS.") == 0) {
                    DCS[name.substring(4)] = content;
                }
            }
            else if (gI18n && (equiv == "Content-Type")) {
                var pos = content.toLowerCase().indexOf("charset=");
                if (pos != -1) {
                    WT.mle = content.substring(pos + 8);
                }
            }
        }
    }
}

function dcsTag() {
    if (document.cookie.indexOf("WTLOPTOUT=") != -1) {
        return;
    }
    var P = "http" + (window.location.protocol.indexOf('https:') == 0 ? 's' : '') + "://" + gDomain + (gDcsId == "" ? '' : '/' + gDcsId) + "/dcs.gif?";
    for (var N in DCS) {
        if (DCS[N]) {
            P += dcsA(N, DCS[N]);
        }
    }
    var keys = ["co_f", "vt_sid", "vt_f_tlv"];
    for (var i = 0; i < keys.length; i++) {
        var key = keys[i];
        if (WT[key]) {
            P += dcsA("WT." + key, WT[key]);
            delete WT[key];
        }
    }
    for (N in WT) {
        if (WT[N]) {
            P += dcsA("WT." + N, WT[N]);
        }
    }
    for (N in DCSext) {
        if (DCSext[N]) {
            P += dcsA(N, DCSext[N]);
        }
    }
    if (P.length > 2048 && navigator.userAgent.indexOf('MSIE') >= 0) {
        P = P.substring(0, 2040) + "&WT.tu=1";
    }
    dcsCreateImage(P);
}

function dcsJV() {
    var agt = navigator.userAgent.toLowerCase();
    var major = parseInt(navigator.appVersion);
    var mac = (agt.indexOf("mac") != -1);
    var ff = (agt.indexOf("firefox") != -1);
    var ff0 = (agt.indexOf("firefox/0.") != -1);
    var ff10 = (agt.indexOf("firefox/1.0") != -1);
    var ff15 = (agt.indexOf("firefox/1.5") != -1);
    var ff2up = (ff && !ff0 && !ff10 & !ff15);
    var nn = (!ff && (agt.indexOf("mozilla") != -1) && (agt.indexOf("compatible") == -1));
    var nn4 = (nn && (major == 4));
    var nn6up = (nn && (major >= 5));
    var ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
    var ie4 = (ie && (major == 4) && (agt.indexOf("msie 4") != -1));
    var ie5up = (ie && !ie4);
    var op = (agt.indexOf("opera") != -1);
    var op5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
    var op6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1);
    var op7up = (op && !op5 && !op6);
    var jv = "1.1";
    if (ff2up) {
        jv = "1.7";
    }
    else if (ff15) {
        jv = "1.6";
    }
    else if (ff0 || ff10 || nn6up || op7up) {
        jv = "1.5";
    }
    else if ((mac && ie5up) || op6) {
        jv = "1.4";
    }
    else if (ie5up || nn4 || op5) {
        jv = "1.3";
    }
    else if (ie4) {
        jv = "1.2";
    }
    return jv;
}

function dcsFunc(func) {
    if (typeof (window[func]) == "function") {
        window[func]();
    }
}

dcsVar();
dcsMeta();
dcsFunc("dcsAdv");
dcsTag();

