﻿var countries=new Array();
countries['FI']=new Array('fi', 'en');
countries['EE']=new Array('et', 'ru', 'en');
countries['LT']=new Array('lt', 'ru', 'en');
countries['LV']=new Array('lv', 'ru', 'en');
countries['RU']=new Array('ru', 'en');
countries['PL']=new Array('pl', 'en');

var languages=new Array();
languages['fi']='Suomi';
languages['en']='English';
languages['et']='Eesti';
languages['lv']='Latviešu';
languages['lt']='Lietuvių';
languages['ru']='Русский';
languages['pl']='Polski';

var tlds=new Array();
tlds['fi']=new Array('FI', 'fi');
tlds['com']=new Array('FI', 'en');
tlds['ee']=new Array('EE', 'et');
tlds['lv']=new Array('LV', 'lv');
tlds['lt']=new Array('LT', 'lt');
tlds['ru']=new Array('RU', 'ru');
tlds['pl']=new Array('PL', 'pl');

var loginmode="neste.fi";
var country="FI";
var lang="fi";

function dbg(msg) {
	//alert(msg);
}

// asettaa kursorin
function setLoginPage() {
	var loginmode=getLoginMode();
	var elem;
	switch (loginmode) {
		case "neste.fi":
			elem=document.getElementsByName("user1")[0];
			break;
			
		case "sapa":
			elem=document.getElementsByName("user2")[0];
			break;
			
		case "extranet":
			if (country == "FI") {	        
				elem = document.getElementsByName("customerid3")[0];
			} else {
				elem = document.getElementsByName("user3")[0];
			}
			break;
		
		default:
			break;
	}
	
	if (null != elem) {
		try {
			elem.focus();
		} catch (ex) {
			dbg(ex.toString());
		}
	}
}

function copydata() {
	var loginmode = getLoginMode();
	var uid; var cid;
	switch (loginmode) {
		case "neste.fi":
			document.getElementsByName("user")[0].value = document.getElementsByName("user1")[0].value.trim();
			document.getElementsByName("password")[0].value = document.getElementsByName("password1")[0].value.trim();
			break;
		case "sapa":
			uid = document.getElementsByName("user2")[0].value;
			if (uid.indexOf("@") == -1) uid += "@sapa";
			document.getElementsByName("user")[0].value = uid;
			document.getElementsByName("password")[0].value = document.getElementsByName("password2")[0].value.trim();
			break;
		case "extranet":
			if (getCountry() != "FI") {
				uid = document.getElementsByName("user3")[0].value;
				cid = document.getElementsByName("customerid3")[0].value;
				
				if (null != cid && "" != cid) {
					uid += "@" + cid;
				} else {
					if (uid.indexOf("@") == -1) uid += "@" + uid;
				}
				
				document.getElementsByName("user")[0].value = uid;
				document.getElementsByName("password")[0].value = document.getElementsByName("password3")[0].value.trim();
			} else {
                document.getElementsByName("user")[0].value = document.getElementsByName("user3")[0].value.trim() + '@' + document.getElementsByName("customerid3")[0].value.trim();
                document.getElementsByName("password")[0].value = document.getElementsByName("password3")[0].value.trim();
			}
			break;
    }
	tallennaFormis();
}

function copypassworddata() {
	var uid; var cid;
	switch (loginmode) {
		case "neste.fi":
			document.getElementsByName("user")[0].value = document.getElementsByName("user1")[0].value;
			document.getElementsByName("oldpassword")[0].value = document.getElementsByName("oldpassword1")[0].value;
			document.getElementsByName("newpassword1")[0].value = document.getElementsByName("newpassword11")[0].value;
			document.getElementsByName("newpassword2")[0].value = document.getElementsByName("newpassword21")[0].value;
			break;
		case "sapa":
			uid = document.getElementsByName("user2")[0].value;
			if (uid.indexOf("@") == -1) uid += "@sapa";
			document.getElementsByName("user")[0].value = uid;
			document.getElementsByName("oldpassword")[0].value = document.getElementsByName("oldpassword2")[0].value;
			document.getElementsByName("newpassword1")[0].value = document.getElementsByName("newpassword12")[0].value;
			document.getElementsByName("newpassword2")[0].value = document.getElementsByName("newpassword22")[0].value;
			break;
		case "extranet":
			if (getCountry() != "FI") {
			    uid = document.getElementsByName("user3")[0].value.trim();
			    cid = document.getElementsByName("customerid3")[0].value.trim();
				if (null != cid && "" != cid) {
					uid += "@" + cid;
				} else {
					if (uid.indexOf("@") == -1) uid += "@" + uid;
				}
				document.getElementsByName("user")[0].value = uid;
				document.getElementsByName("oldpassword")[0].value = document.getElementsByName("oldpassword3")[0].value.trim();
				document.getElementsByName("newpassword1")[0].value = document.getElementsByName("newpassword13")[0].value.trim();
				document.getElementsByName("newpassword2")[0].value = document.getElementsByName("newpassword23")[0].value.trim();
			} else {
                document.getElementsByName("user")[0].value = document.getElementsByName("user3")[0].value.trim() + '@' + document.getElementsByName("customerid3")[0].value.trim();
                document.getElementsByName("oldpassword")[0].value = document.getElementsByName("oldpassword3")[0].value.trim();
                document.getElementsByName("newpassword1")[0].value = document.getElementsByName("newpassword13")[0].value.trim();
                document.getElementsByName("newpassword2")[0].value = document.getElementsByName("newpassword23")[0].value.trim();
			}
			break;
	}
}

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}


/* SAMAT ASETUKSET TÄHÄN KUIN CSS:SSÄ */

function setLoginMode() {   
	// neste.fi
	var neste_content = document.getElementById("neste_content");
	if (neste_content != null) neste_content.style.display = 'none';
	// sapa
	var sapa_content = document.getElementById("sapa_content");
	if (sapa_content != null) sapa_content.style.display = 'none';
	// extranet
	var neku_content = document.getElementById("neku_content");
	if (neku_content != null) neku_content.style.display = 'none';
	
	switch (loginmode) {
		case "neste.fi": 
			var neste_content = document.getElementById("neste_content");
			if (neste_content != null) neste_content.style.display = 'block';
			break;
		case "sapa":
			var sapa_content = document.getElementById("sapa_content");
			if (sapa_content != null) sapa_content.style.display = 'block';
			break;
		case "extranet":
		default:
			var neku_content = document.getElementById("neku_content");
			if (neku_content != null) neku_content.style.display = 'block';
			break;
	}
}

function getLoginMode() {
	return loginmode;
}

function alustaFormis() {
	country = getCountry();
	setCookie("nekucountrycookie", country);

	lang = getLanguage();
	setCookie("nekulanguagecookie", lang);
	
	var mycokkie = getCookie('nekulogincookie');

	if (loginmode == 'extranet') {
		var oCustomerId3 = document.getElementById("customerid3");
		var oRegistrationLink1 = document.getElementById("registrationlink1");
			
		if (country != 'FI') {
			var oCustomerIdDiv = document.getElementById("customerIdDiv");
			if (null != oCustomerIdDiv) oCustomerIdDiv.style.display = 'none';
		} else {
			if (oCustomerId3 != null && oCustomerId3.value == '') {
				oCustomerId3.value = GetCustomerIdFromParameter(mycokkie);
			}
			if (null != oRegistrationLink1) oRegistrationLink1.style.visibility = 'hidden';
		}
		
		var oUser3 = document.getElementById("user3");
		if (oUser3 != null && oUser3.value == '') {
			oUser3.value = GetUsernameFromParameter(mycokkie);
		}

        UpdateLanguage3(lang);
    }
	
	var oFooter = document.getElementById("neku_footer");
	if (null != oFooter) {
		if (oFooter.innerHTML)
			oFooter.innerHTML = footers[country];
	}
}

function tallennaFormis() {
	if (loginmode == 'extranet') {
		var remember = document.getElementsByName("remember3");
		if (remember != null) {
			if (remember[0].checked) {
				var loginvalue = document.getElementsByName("user")[0].value;
				setCookie('nekulogincookie', loginvalue);
			}
		}
	}
}

function alustaLang() {
	if (loginmode == 'extranet') {
		ChangeLanguage(lang);
	}
}

function getDefaultLanguage(country) {
	if (!isValidCountry(country)) return 'en';
	return countries[country][0];
}

function isValidLanguage(language) {
	if (loginmode == 'extranet') {
		if (language != null) {
			return (null != languages[language]);
		}
	}
	return (language == 'fi');
}

function isValidLanguageInCountry(language, country) {
	if (!isValidCountry(country) || !isValidLanguage(language)) return false;

	// enum languages in country
	for(var l in countries[country]) {
		var lang = countries[country][l];
		if (lang == language) return true;
	}
	return false;
}

function isValidCountry(country) {
	if (loginmode == 'extranet') {
		if (country != null) {
			if (null != countries[country.toUpperCase()]) {
				return true;
			}
		}
		return false;
	}
}

function getCountry() {
	var tmp = getQueryParam('country').toUpperCase();
	
	if (tmp != "" && isValidCountry(tmp)) {  // 1. Check query parameter
		country = tmp;
		return country        
	}

	tmp = getCookie("nekucountrycookie");
	if (isValidCountry(tmp)) {
		country = tmp;
		return country;
	}
	
	if (document.referrer && document.referrer != "") { // 2. Check tld from referrer url here
		var tld = getTLD(document.referrer);
		tmp = getCountryForTLD(tld);
		if (null != tmp && isValidCountry(tmp)) { 
			country = tmp;
			return country;
		}            
	}

	return country;
}

function getLanguage() {
	var tmp = getQueryParam('language').toLowerCase();
	
	if (isValidLanguageInCountry(tmp, country)) {
		lang = tmp;
		return lang;
	}
	
	tmp = getCookie("nekulanguagecookie");

	if (isValidLanguageInCountry(tmp, country)) {
		lang = tmp;
		return lang;
	}

	if (document.referrer && document.referrer != "") {
		var tld = getTLD(document.referrer);
		tmp = getLanguageForTLD(tld);
		if (isValidLanguageInCountry(tmp, country)) {
			lang = tmp;
			return lang;
		}
	}
	
	lang = getDefaultLanguage(country);
	return lang;
}

function getCountryForTLD(tld) {
	if (null != tld && tld != "" && null != tlds && null != tlds[tld])
		return tlds[tld.toLowerCase()][0];
	return null;
}

function getLanguageForTLD(tld) {
	if (null != tld && tld != "" && null != tlds && null != tlds[tld])
		return tlds[tld.toLowerCase()][1];
	return null;
}

function getHostAndDomain(url) {
	var ix;
	var ret;
	var tmp;

	// remove protocol
	ix = url.indexOf('://');
	if (ix >= 0) { // http:// tai https://
		tmp = url.substring(ix + 3);
	} else {
		tmp = url;
	}

	// check if we have port no
	ix = tmp.indexOf(':');
	if (ix >= 0) { // yep
		ret = tmp.substring(0, ix);
	} else { // nope
		// check for the slash before path info
		ix = tmp.indexOf('/');
		if (ix >= 0)
			ret = tmp.substring(0, ix);
		else
			ret = tmp;
	}
	return ret;
}

function getTLD(url) {
	var ix;
	var tmp = getHostAndDomain(url);
	var tld = "";

	ix = tmp.lastIndexOf('.');
	if (ix >= 0)
		tld = tmp.substr(ix + 1);
	else
		tld = "";

	return tld;
}

function getDomain(url) {
	var ix;
	var dom = getHostAndDomain(url);

	ix = dom.lastIndexOf('.');  // tld start
	var tmp = dom.substring(0, ix - 1);

	ix = tmp.lastIndexOf('.');  // dom start
	return dom.substr(ix + 1);
}

function GetLan() {
	return getLanguage();
}

function SetLan() {
	if (loginmode == 'extranet') {
		ChangeLanguage(lang);
	}
}

function UpdateLanguage3(newlang) {
	var lan = document.getElementById("language3");
	if (lan != null) {
		if (isValidLanguageInCountry(newlang, country))
		    lang = newlang;

		UpdateLanguageUrls();

		var langs = countries[country];
		var languageLinks = null;
		for (var l in langs) {
			if (langs[l] == lang) {
                languageLinks = AddText(languageLinks, languages[langs[l]]);
            } else {
                languageLinks = AddText(languageLinks, "<a href=\"#\" onclick=\"RefreshLanguage('" + langs[l] + "');return false;\">" + languages[langs[l]] + "</a>");
            }
		}
		lan.innerHTML = languageLinks;
	}

	setCookie("nekulanguagecookie", lang);
	country = getCountry();
	setCookie("nekucountrycookie", country);
	SetLan();
}

function RefreshLanguage(newlang) {
    var country = getCountry();
    var url = "/?country=" + country + "&language=" + newlang;
    window.location.href = url;
}

function AddText(text, value) {
    if (text == null) {
        text = value;
    } else {
        text += "&nbsp;&nbsp;|&nbsp;" + value;
    }
    return text;
}

function GetUsernameFromParameter(parameter) {
	if (parameter == null) return "";
	var index = parameter.indexOf("@");
	return (index >= 0) ? parameter.substring(0, index) : "";
}
	
function GetCustomerIdFromParameter(parameter) {
	if (parameter == null) return "";
	var index = parameter.indexOf("@");
	return (index >= 0) ? parameter.substring(index + 1) : "";
}

function getCookie(NameOfCookie) {
	if (document.cookie.length > 0) {
		begin = document.cookie.indexOf(NameOfCookie+"=");
		if (begin != -1) { 
			begin += NameOfCookie.length+1;
			end = document.cookie.indexOf(";", begin);
			if (end == -1) end = document.cookie.length;
			return unescape(document.cookie.substring(begin, end));
		}
	}
	return null;
}

function setCookie(NameOfCookie, value) {
	var ExpireDate = new Date();
	var expiredays = 90;
	var dom = getDomain(window.location.href);
	ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
	document.cookie = NameOfCookie + "=" + escape(value) + 
		((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString()) + 
		((dom == null) ? "" : "; domain=" + dom) + 
		"; path=/";
}

function delCookie(NameOfCookie) {
	var dom = getDomain(window.location.href);
	if (getCookie(NameOfCookie)) {
		document.cookie = NameOfCookie + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT" +
			((dom == null) ? "" : "; domain=" + dom) +
			"; path=/";
	}
}

function getQueryParam(name) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS, "i" );
	var results = regex.exec( window.location.href );
	if( results == null )
		return "";
	else
		return results[1];
}

function GetAccountDisabledContent(lang) {
	country = getCountry();
	var lang = getLanguage();
	var countrykey = lang + "-" + country.toUpperCase();
	var res = getLangString("Title", countrykey) + "<p>" + getLangString("PwdErr7", countrykey) + "</p>";
	
	country = country.toLowerCase();
	res = res.replace(/#mailaddress#/g, emails[country]);

	if (null != res)
		return res;
	else
		return key;
}

function GetPasswordChangedContent(lang) {
	country = getCountry();
	var lang = getLanguage();
	var countrykey = lang + "-" + country.toUpperCase();
	var res = getLangString("Title", countrykey) + "<p>" + getLangString("Password Thanks", countrykey) + "</p>";

	if (null != res)
		return res;
	else
		return key;
}

function GetSystemErrorContent(lang) {
	country = getCountry();
	var lang = getLanguage();
	var countrykey = lang + "-" + country.toUpperCase();
	var res = getLangString("Title", countrykey) + "<p>" + getLangString("SystemErr1", countrykey) + "</p>";

	country = country.toLowerCase();
	res = res.replace(/#mailaddress#/g, emails[country]);

	if (null != res)
		return res;
	else
		return key;
}

function setFooter() {
	country = getCountry();
	var oFooter = document.getElementById("neku_footer");
	if (null != oFooter) {
		if (oFooter.innerHTML)
			oFooter.innerHTML = footers[country];
	}
}

function UpdateLanguageUrls() {
	var urlPassword = document.getElementById("forgotpassword3");
	if (null != urlPassword) {
		urlPassword.href = "/unohtuikoSalasana.aspx?country=" + country + "&language=" + lang;
	}

	var urlRegistration = document.getElementById("registrationlink1");
	if (null != urlRegistration) {
		urlRegistration.href = "/registration.aspx?country=" + country + "&language=" + lang;
	}
}

function CheckUrlParameters() {
    var url = window.location.href;
    var tc = getQueryParam('country');
    if (tc == "") {
        url = AddUrlParameter(url, "country=fi&language=fi");
        window.location.href = url;
    }
}

function AddUrlParameter(url, parameter) {
    if (url.indexOf("?") == -1) {
        url += "?" + parameter;
    } else {
        url += "&" + parameter;
    }
    return url;
}

