/*
------------------------------------------------------------------
	javascript for wsEntity cookie
------------------------------------------------------------------
*/

var expDays = 365; // number of days the cookie should last
var exp = new Date();
exp.setTime(exp.getTime() + (expDays * 24 * 60 * 60 * 1000));

function SetCookie(name, value) {
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    document.cookie = name + "=" + escape(value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}

function DeleteCookie(name) {
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval = GetCookie(name);
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}


function getCookieVal(offset) {
    var endstr = document.cookie.indexOf(";", offset);
    if (endstr == -1)
        endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg)
            return getCookieVal(j);
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
    }
    return null;
}

function getRootDomain(url) {
    var baseURL = (url == null) ? location.href : url;
    var rootURL = "";
    if (baseURL.indexOf('/', 7) < 1) {
        rootURL = baseURL;
    }
    else {
        if ((baseURL.indexOf('https://')) > -1) {
            rootURL = baseURL.substring(0, baseURL.indexOf('/', 8));
        }
        else
        {
            rootURL = baseURL.substring(0, baseURL.indexOf('/', 7));
        }
    }
    if (baseURL.indexOf('localhost') == -1) {
        if (rootURL.indexOf("http://") == 0) {
            rootURL = rootURL.substring(7);
        }
        if (rootURL.indexOf("https://") == 0) {
            rootURL = rootURL.substring(8);
        }
        while (rootURL.split(".").length > 2) {
            var index = rootURL.indexOf('.', 1) + 1;
            rootURL = rootURL.substring(index);
        }
        return rootURL;
    }
    else {
        return rootURL + baseURL.substring(baseURL.indexOf('/', 8), baseURL.indexOf('/', baseURL.indexOf('/', 8) + 1)) + "/";
    }
}

function setwsEntityHigh(region) {
    var rURL = getRootDomain();
    if (rURL.indexOf(".") > -1)
    {
        SetCookie("wsEntity", region, exp, "/", rURL);
    }
    else
    {
        SetCookie("wsEntity", region, exp, "/");
    }
}

function setwsEntityLow(region) {
    if (!GetCookie("wsEntity")) {
        var rURL = getRootDomain();
        if (rURL.indexOf(".") > -1) {
            SetCookie("wsEntity", region, exp, "/", rURL);
        }
        else {
            SetCookie("wsEntity", region, exp, "/");
        }
    }
}

function setwsLang(region) {
    if (document.getElementsByName("language_pref")[0] != null) {
        var langCodes = {
            "Chinese Simplified": "zh-CN",
            "Chinese Traditional": "zh-TW",
            "English": "en-US",
            "English US": "en-US",
            "English UK": "en-GB",
            "Arabic": "ar",
            "Russian": "ru-RU",
            "Spanish": "es-ES",
            "French": "fr-FR",
            "German": "de-DE",
            "Polish": "pl-PL",
            "Japanese": "ja-JP",
            "Portuguese": "pt",
            "Hindi": "hi-IN",
            "Urdu": "ur-PK",
            "Greek": "el-GR",
            "Mandarin": "zh-CN",
            "Cantonese": "zh-TW"
        };
        langCodes["English"] = (region == "EU") ? "en-GB" : "en-US";
        var wslangCode = (langCodes[document.demo_account_form.language_pref.value]) ? (langCodes[document.demo_account_form.language_pref.value]) : "en-US";
        var rURL = getRootDomain();
        if (rURL.indexOf(".") > -1) {
            SetCookie("wsLang", wslangCode, exp, "/", rURL);
        }
        else {
            SetCookie("wsLang", wslangCode, exp, "/");
        }
    }
}

function getEntityByCountry(country){
    switch (true) {
        case /Australia|Rep\. of South Africa|Belgium|Canada|Czech Republic|Denmark|Finland|France|Germany|Hungary|Italy|Netherlands|Norway|Portugal|Spain|Sweden|Switzerland|Georgia|Andorra|Austria|Brazil|Bulgaria|Croatia|Estonia|Greece|Iceland|Ireland|Israel|Lithuania|Luxembourg|Monaco|Poland|Romania|Slovakia|Albania|Antilles Netherland|Antigua \(WI\)|Arab Rep\. Egypt|Argentina|Armenia|Aruba|Azerbaijan|Bahamas|Bangladesh|Barbados|Belize|Benin|Bermuda|Bhutan|Bolivia|Bosnia\-Herzegovina|Botswana|British Virgin|Brunei Darussalam|Burkina Faso|Cambodia|Cameroon|Canary Islands|Cayman Islands|Central African|Chad|Chile|Colombia|Cook Islands|Costa Rica|Cyprus|Djibouti|Dominica|Dominican Republic|East Timor|Ecuador|El Salvador|Equatorial Guin|Ethiopia|Faroe Is.|Fiji|French Guiana|Gabon Republic|Gambia|Ghana|Gibraltar|Greenland|Grenada|Guadeloupe|Guatemala|^Guinea$|Guyana|Haiti|Honduras|India|Indonesia|Jamaica|Kazakhstan|Kenya|Kyrghyzstan|Laos|Latvia|Lesotho|Liechtenstein|Macau|Macedonia|Madagascar|Malawi|Malaysia|Maldives|Mali|Malta|Martinique|Mauritania|Mauritius|Mexico|Moldova|Mongolia|Montenegro|Mozambique|Myanma\, Union Of|Namibia|Nauru|Nepal|New Caledonia|New Zealand|Nicaragua|^Niger$|Nigeria|Pakistan|Panama|Papua\-New Guinea|Paraguay|Peru|Philippines|Reunion Is.|Russia|Rwanda|Samoa \(Western\)|San Marino|Senegal|Serbia|Seychelles|Sierra Leone|Slovenia|Solomon Islands|Somalia|South Africa|Sri Lanka|St\. Kitts|St\. Lucia|St\. Pierre|St\. Vincent|Surinam|Swaziland|Tadjikistan|Tahiti|Tanzania|Thailand|Togo|Tonga|Trinidad|Tunisia|Turkey|Uganda|Ukraine|United Kingdom|Uruguay|Uzbekistan|Vanuatu|Vatican City|Venezuela|Vietnam|Zaire|Zambia/.test(country):
            return "EU"
            break;
        case /Chinese Taipei|Taiwan ROC|Hong Kong|South Korea|China|Peoples Rep Korea|Singapore|United States|Lebanon|Algeria|Bahrain|Egypt|Jordan|Kuwait|Morocco|Oman|Qatar|Saudi Arabia|United Arab Emirates|Yemen/.test(country):
            return "NA"
            break;
        case /Japan/.test(country):
            return "JP"
            break;
        default:
            return "EU"
            break;
    }
}