﻿
var WFLY = function () {
    var version = "";
    var serverDate = "";
    return {
        init: function(o) { version = o.version; serverDate = new Date(o.serverDate); },
        debug: function(s) { if (console) console.debug(s); },
        info: function(s) { if (console) console.info(s); },
        log: function(s) { if (console) console.log(s); },
        err: function(s) { if (console) console.error(s); },
        getServerDate: function() { return serverDate; },
        getVersion: function() { return version; }
    };
} ();

// This object is used for Omniture Test and Target.
WFLY.mbox = {
    // Upgrade Eligibility Link Variables
    ueIsVisible: true,
    ueOnClick: "_upgradeEligibilityModal.show(); return false;",
    ueDisplayText: "Am I Eligible?"
}

WFLY.Utility = function () {
    // These are the keys which should get passed in the querystring when linking from page to page.
    var WHITELIST_SFQS = ["referringdomain", "r", "oflag", "zipcode", "refcode1", "refcode2", "eid", "agent", "originpage", "cid"];
    var WHITELIST_WIMOQS = ["referringdomain", "r", "oflag", "zipcode", "refcode1", "refcode2", "eid", "agent", "originpage"];

    // PRIVATE FUNCTIONS
    function lgetQS(wl) {
        var aRet = []; var qs = window.location.search.replace("?", "");
        if (qs && qs.length > 0) {
            var aQS = qs.split("&");
            for (var i = 0; i < aQS.length; i++) if (jQuery.inArray(aQS[i].split("=")[0], wl) > -1) aRet.push(aQS[i]);
        }
        return aRet.join("&");
    }

    function qsToJSONString(qs) {
        var aRet = [];
        var aQS = qs.split('&');
        aRet.push('{');
        for (var i = 0; i < aQS.length; i++) {
            var keyval = aQS[i].split('=');
            if (i != 0) aRet.push(',');
            aRet.push('"' + keyval[0].toLowerCase() + '":"');
            aRet.push(keyval[1] + '"');
        }
        aRet.push('}');

        return eval('(' + aRet.join('') + ')');
    }

    // PUBLIC FUNCTIONS    
    function lGetSFQS() {
        try {
            if (_siteVisitor) return _siteVisitor.SFQueryString;
        } catch (exc) {}


        var s = lgetQS(WHITELIST_SFQS);
        for (var i = 0; i < WHITELIST_SFQS.length; i++) {
            if (s.indexOf(WHITELIST_SFQS[i]) == -1) s += "&" + WHITELIST_SFQS[i] + "="
        }
        return s;
    }

    function lGetWIMOQS() {
        try {
            if (_siteVisitor) return _siteVisitor.WIMOQueryString;
        } catch (exc) { }

        var s = lgetQS(WHITELIST_WIMOQS);
        for (var i = 0; i < WHITELIST_WIMOQS.length; i++) {
            if (s.indexOf(WHITELIST_WIMOQS[i]) == -1) s += "&" + WHITELIST_WIMOQS[i] + "="
        }
        return s;
    }

    return {
        init: function () {
            WFLY.Utility.SFQS = qsToJSONString(lGetSFQS());
            WFLY.Utility.WIMOQS = qsToJSONString(lGetWIMOQS());
        },
        getSFQSValue: function (s) {
            var aQS = lGetSFQS().split("&");
            for (var i = 0; i < aQS.length; i++) if (aQS[i].split("=")[0].toLowerCase() == s.toLowerCase()) return aQS[i].split("=")[1];
            return "";
        },
        getSFQuerystring: lGetSFQS,
        getWIMOQuerystring: lGetWIMOQS,
        setStorefrontQuerystring: function (anchor, querystring) {
            if (anchor.href.indexOf(querystring) != -1) return;
            anchor.href += querystring;
        }
    };
} ();


