/*
------------------------------------------------------------------
	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();
	SetCookie("wsEntity", region, exp, "/", rURL);
}

function setwsEntityLow(region) {
	if (!GetCookie("wsEntity")) {
	    var rURL = getRootDomain();	    
        SetCookie("wsEntity", region, exp, "/", rURL);
    }
}

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();
		SetCookie("wsLang", wslangCode, exp, "/", rURL);
	}
}

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;
    }
}