/*
String.prototype.cbg=function(aoz){return this.indexOf(aoz)!=-1;};w=window;boa=document;w.rw={iu:function(){try{var awl=navigator.userAgent.toLowerCase();var ahm=parseFloat(navigator.appVersion);var ahd=false;var bmu=false;var di=false;var bci=false;var aw=false;var bst=false;var cph=false;var bbb;if(awl.match(/\bmac\b/)){rw.zm=true;}if(awl.cbg("msie")&&!awl.cbg("opera")&&!w.opera){rw.bmr=true;bbb=parseFloat(awl.substr(awl.indexOf("msie ")+5));ahd=bbb>=6;bmu=bbb>=7;fhp=bbb>=8;rw.vc=ahd&&!bmu;rw.eb=bmu;rw.gic=ahd&&!fhp;rw.gib=fhp;}else if(awl.cbg("safari")){rw.bfh=true;rw.dmm=parseInt(awl.substr(awl.indexOf("applewebkit/")+12),10)>=420;rw.efp=!rw.dmm;di=parseInt(awl.substr(awl.indexOf("safari/")+7),10)>=300;rw.fhx=awl.cbg("chrome/");bst=awl.cbg("mobile/");}if("opera"in w){rw.gu=true;try{cph=opera.version()>=10.5;}catch(bft){}}if(awl.cbg("gecko/")){rw.bqd=true;var efo=awl.indexOf(" rv:");if(efo>0){efo=parseFloat(awl.substr(efo+4));bci=efo>=1.4;rw.eft=efo>=1.9;}}if(!boa.getElementById||!boa.getElementsByTagName("*")||awl.cbg('spoofer')||awl.cbg('webtv')||awl.cbg('hotjava')){aw=true;}rw.bes=!aw&&!bst&&(ahd||cph||di||bci);}catch(bft){}if(rw.bes){try{if(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]){if(rw.bmr){bbb=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7").GetVariable("$version").split(" ")[1];}else if(navigator.plugins&&navigator.plugins.length){bbb=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.split(" ")[2];}}bbb=parseInt(bbb,10);rw.eis=bbb>=7;}catch(bft){}}}};rw.iu();
*/

var stateName = "none";
var agt = navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_minor = (parseFloat(navigator.appVersion) - is_major) * 10;
var is_win	= ((agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1));
var rvPos = (agt.indexOf(' rv:'));
var is_moz14up = (rvPos >0) && (parseFloat(agt.substr(rvPos+4)) >= 1.4);
var is_notcomp = (agt.indexOf('spoofer')!=-1) || (agt.indexOf('opera')!=-1) || (agt.indexOf('webtv')!=-1) || (agt.indexOf('hotjava')!=-1);
var is_nav  = (agt.indexOf('mozilla')!=-1) && !is_notcomp;
var ie_varpos = agt.indexOf("msie");
var nav_version   = (navigator.vendorSub ? parseInt(navigator.vendorSub) + parseFloat(navigator.vendorSub.substr(2)) / 10 : 0);
var is_nav6 		= (is_nav && (navigator.vendor == "Netscape6"));
var is_nav7 		= (is_nav && (nav_version >= 7));
var is_nav71up		= (is_nav && (nav_version >= 7.1));
var is_ie = ((ie_varpos != -1) && (agt.indexOf("opera") == -1));
var is_ie55up = is_ie && (parseFloat(agt.substr(ie_varpos+5)) >= 5.5);
var is_ie5down = is_ie && (parseFloat(agt.substr(ie_varpos+5)) < 5.5);
var is_ios = is_nav && ( (agt.indexOf("ipad")!=-1) || (agt.indexOf("iphone")!=-1) );
//var is_khtml = ((agt.indexOf("konqueror")!=-1) || (agt.indexOf("safari")!=-1) );
var is_khtml = ((agt.indexOf("konqueror")!=-1));
var is_partialcompatible = is_khtml || (nav_version >= 6.23) && (nav_version < 7.1);
var is_fullycompatible = (is_ie55up || is_moz14up || is_nav71up || is_ios) && !is_notcomp && !is_khtml;

//alert( "agt:\n" + agt );
//alert( "is_major:\n" + is_major );
//alert( "is_minor:\n" + is_minor );
//alert( "is_win:\n" + is_win );
//alert( "rvPos:\n" + rvPos );
//alert( "is_moz14up:\n" + is_moz14up );
//alert( "is_notcomp:\n" + is_notcomp );
//alert( "is_nav:\n" + is_nav );
//alert( "ie_varpos:\n" + ie_varpos );
//alert( "nav_version:\n" + nav_version );
//alert( "is_nav6:\n" + is_nav6 );
//alert( "is_nav7:\n" + is_nav7 );
//alert( "is_nav71up:\n" + is_nav71up );
//alert( "is_ie:\n" + is_ie );
//alert( "is_ie55up:\n" + is_ie55up );
//alert( "is_ie5down:\n" + is_ie5down );
//alert( "is_khtml:\n" + is_khtml );
//alert( "is_partialcompatible:\n" + is_partialcompatible );
//alert( "is_fullycompatible:\n" + is_fullycompatible );

function doInitialRedirect()
{
	errCodURL = "?";
	if (forgotPass && forgotPass.length)
		errCodURL += "forgotPassword=1&"
	if (errorCode && errorCode.length)
		errCodURL += "errorCode=" + errorCode + "&";
	if (errCodURL.length <= 1) errCodURL = "";

	if ((window != window.parent) && (window.name != "logthing") && (window.name != "login"))
		window.parent.location.replace(window.location.href);
	else if ((window.name != "logthing") && (window.name != "login"))
		window.parent.location.replace("welcome.wssp" + errCodURL);
	else if (window.location.href.indexOf("wssp") > 0)
		window.parent.location.replace("/" + errCodURL);
	else if ((window.name == "logthing") && (errorCode != ""))
		window.location.replace("/");
}

function doErrCode()
{
	if (errorCode == "")
		if (parent.location.href.indexOf("errorCode") > 0)
			errorCode = parent.location.href.substr(parent.location.href.indexOf("errorCode") + 10);

	forgotPass = ((forgotPass != "") || parent.location.href.indexOf("forgotPassword") > 0);

	if (errorCode != "")
	{
		errorCode = "&nbsp;&nbsp;&nbsp;" + unescape(errorCode).replace("&","");

		if (is_khtml)
			errorCode = "<br>" + errorCode;
		else
			errorCode = errorCode + "<br>";

		document.getElementById("errCode").innerHTML = errorCode;
		document.getElementById("errCodeDiv").style.display="block";
	}
}


function doleances()
{
	if (!is_fullycompatible)
	{
		document.write(doleancesBeg);
		if (is_partialcompatible)
			document.write(doleancesKHT);
		else
			document.write(doleancesMsg);
		document.write(doleancesEnd);
	}
}

function doLogin(form)
{
	if (!form.no_username.value.length || !form.no_password.value.length)
	{
		alert(PleaseEnterP);
		return false;
	}

	var newWin = form.newwin.checked;
	if (newWin)
	{
		window.open('',"yourmail",'menubar=0,toolbar=0,resizable=1,scrollbars=0,status=1,toolbar=0,fullscreen=0');
		form.target = "yourmail";
	}
  	else form.target = "_top";

	form.username.value = form.no_username.value;
	form.password.value = form.no_password.value;

	if (UseDomainSelector && (form.username.value.indexOf("@") < 0))
		form.username.value += document.getElementById("domainselector").value;

	if (newWin)
		form.no_password.value='';

	return true;
}

function getBaseHref(win)
{
	var txt = win.location.href;
	var maxPos = txt.lastIndexOf("/") +1;
	return txt.substr(0, maxPos);
}

function step()
{
	var iframe = parent.frames[1];
	switch(stateName)
	{
		case "pre":
		{
			var myskn = document.getElementById("SkinName");

			while(myskn.length > 0) myskn.removeChild(myskn.childNodes[0]);
			for (var i = 0; i < PrePopulateWith.length; i++)
			{
				var node = document.createElement("OPTION");
				node.value = PrePopulateWith[i][0];
				if (!is_ie5down)
				{
					node.innerHTML = PrePopulateWith[i][1];
					myskn.appendChild(node);
				}
				else
				{
					node.text = PrePopulateWith[i][0];
					myskn.add(node);
				}
			}
			myskn.disabled=false;
			document.getElementById("pop").value = btnSelectSkn;
			stateName = "none";
			break;
			
			//CARMELO//
			//if (!is_fullycompatible)
			//	myskn = "WASSP";
		}

		case "none":
		{
			var form0 = document.forms[0];
			var form1 = document.forms[1];
			if ((form0.no_username.value=="") || (form0.no_password.value==""))
				alert(PleaseEnterP);
			else
			{
				form1.username.value=form0.no_username.value;
				if (UseDomainSelector && (form1.username.value.indexOf("@") < 0))
					form1.username.value += document.getElementById("domainselector").value;
				form1.password.value=form0.no_password.value;
				form1.submit();
				stateName = "login";
				setTimeout("step()", 400);
			}
			break;
		}

		case "login":
			if ((iframe.location.href.indexOf("DisableIPWatch") < 0) && (iframe.location.href.indexOf("empty") < 0))
			{
				if (iframe.location.href.search(/\/Session\//i) < 0)
				{
					iframe.location.href = "empty.wssp";
					alert(WrongUserPwd);
					stateName="none";
					return;
				}
				else
				{
					iframe.location.href = getBaseHref(iframe) + "settings.wssp";
					if (PrePopulateSkinChooser)
						stateName="update";
					else
						stateName="fetch";
				}
			}
			setTimeout("step()", 400);
			break;

		case "fetch":
			if (iframe.document)
			{
				var skn = iframe.document.getElementsByName("SkinName")[0];
				if (skn && (skn.options.length > 0))
				{
					var myskn = document.getElementById("SkinName");
					while(myskn.length > 0) myskn.removeChild(myskn.childNodes[0]);

					for (var i =0; i<skn.options.length; i++)
					{
						var node = document.createElement("OPTION");
						node.value=skn.options[i].value;
						if (!is_ie5down)
						{
							node.innerHTML=skn.options[i].innerHTML;
							myskn.appendChild(node);
						}
						else
						{
							node.text=skn.options[i].text;
							myskn.add(node);
						}
					}
					myskn.disabled=false;
					document.getElementById("current").innerHTML = CurSetting + skn.options[skn.selectedIndex].text;
					setTimeout("document.getElementById('SkinName').selectedIndex = " + skn.selectedIndex, 100);
					document.getElementById("pop").value=btnSelectSkn;
					stateName="update";
					return;
				}
			}
			setTimeout("step()", 400);
			break;

		case "update":
		{
			var myskn = document.getElementById("SkinName");
			if (iframe.document)
			{
				var skn = iframe.document.getElementsByName("SkinName")[0];
				if (skn)
				{
					skn.selectedIndex = myskn.selectedIndex;
					skn.form.action = "?Update=";
					skn.form.submit();
					stateName="logout";
				}
			}
			setTimeout("step()", 1000);
			break;
		}

		case "logout":
		{
			iframe.location.href = getBaseHref(iframe) + "bye.wssp";
			document.getElementById('pop').value = DoneClickRet;
			document.getElementById('SkinName').disabled = document.getElementById('pop').disabled=true;
			document.getElementById('current').innerHTML='';
			stateName="done";
			setTimeout("step()", 1000);
			break;
		}
		case "done":
		{
			iframe.location.href = "empty.wssp";
		}
	}
}

function restoreToTop()
{
	if (window != window.parent)
	{
		document.forms[0].target="_top";
		document.forms[0].no_username.value="";
		document.forms[0].no_password.value="";
		document.forms[0].submit();
	}
}

function doHide(elem)
{
	elem=document.getElementById(elem);
	if (elem) {
		elem.style.visibility = "hidden";
		elem.style.display = "none";
		elem.innerHTML = "";
		if (!is_khtml) elem.innerText = "";
	}
}

function doFillDomainSelector()
{
	var domsel = document.getElementById("domainselector");
	while(domsel.length > 0) domsel.removeChild(domsel.childNodes[0]);
	for (var i =0; i<AvailableDomains.length; i++)
	{
		var node = document.createElement("OPTION");
		node.value="@"+AvailableDomains[i];
		if (!is_ie5down)
		{
			node.innerHTML="@"+AvailableDomains[i];
			domsel.appendChild(node);
		}
		else
		{
			node.text="@"+AvailableDomains[i];
			domsel.add(node);
		}
	}
}

function tryAutoSwitchToSSL()
{
	if (AutoSwitchToSSL)
	{
		var url = window.location.href;
		var pos = url.substr(9).indexOf("/") + 9;
		var pre = "https" + url.substr(0, pos).substr(4);
		url = url.substr(pos);
		if (AutoSwitchUsePort)
		{
			var portPos = pre.substr(9).indexOf(":");
			if (portPos > 0) pre = pre.substr(0,portPos+9);
			pre += ":" + AutoSwitchUsePort;
		}
		else pre = AutoSwitchUsePrefix;
		window.location.replace(pre + url);
	}
}

function prepareLoginPage()
{
	if (window.name == "login")
	{
		try {
			parent.document.title=window.document.title;
		} catch (a) {}
		document.getElementById('frm').no_username.focus();
	}

	doErrCode();

	if ((is_fullycompatible || is_nav6) && (window.parent.name != "yourmail"))
	{
		document.forms[0].newwin.disabled=false;
		document.forms[0].newwin.checked = AutoCheckPopNewWindow;
	}

	if (DontShowCertificate) doHide("cert");
	if (DontShowPasswordRecovery || !forgotPass) doHide("fpas");
	if (DontShowDirectory) doHide("dire");
	if (DontShowLists) doHide("list");
	if (DontShowSignup) doHide("sign");
	if (DontShowMailToPostmaster) doHide("post");

	if (is_nav6)
	{
		var df = document.forms[0];
		df.newwin.style.border = df.DisableIPWatch.style.border = df.DisableUseCookie.style.border = "1px solid #808080";
		df.newwin.style.height = df.DisableIPWatch.style.height = df.DisableUseCookie.style.height = "14px";
		document.getElementById('domainselector').style.border = "1px solid #808080";
		document.getElementById('SkinName').style.border = "1px solid #808080";

	}
}

function getBase64Code(str, pos)
{
   var code = str.charCodeAt(pos);
   if ((code >= 65) && (code <= 90))  return code - 65;
   if ((code >= 97) && (code <= 122)) return code - 71;
   if ((code >= 48) && (code <= 57))  return code +  4;
   if (code == 43) return 62;
   if (code == 47) return 63;
   return 0;
}

function decodeBase64(str)
{
	var txt = "";
	for (var i = 0; i < str.length; i+=4)
	{
		var chs = [getBase64Code(str,i+0),getBase64Code(str,i+1),getBase64Code(str,i+2),getBase64Code(str,i+3)];
	   var tot0 = ((chs[0] << 2) + (chs[1] >> 4)) % 256;
	   var tot1 = ((chs[1] << 4) + (chs[2] >> 2)) % 256;
	   var tot2 = ((chs[2] << 6) + (chs[3] >> 0)) % 256;
	   txt += (tot0>0 ? String.fromCharCode(tot0):"") + (tot1>0 ? String.fromCharCode(tot1):"") + (tot2>0 ? String.fromCharCode(tot2):"");
	}
   return txt;
}

function decodeUTF8(str)
{
	var txt = "";
	for (var i = 0; i < str.length; i++)
	{
		var bcount = 0;
		var res = str.charCodeAt(i);
		while(((res << bcount++) & 0x80) != 0);
		res &= (0xFF >> bcount);

		for( var c = 2; c < bcount; c++)
	   	res = (res << 6) | (str.charCodeAt(++i) & 0x3F);
	   txt += String.fromCharCode(res);
	}
   return txt;
}

function showComposedMessage()
{
	if (document.forms[0].restoreSessionPage)
	{
		if (!document.forms[0].restoreSessionPage.value.toLowerCase().indexOf("compose.wssp"))
		{
			var pText = document.forms[0].Body ? decodeUTF8(decodeBase64(document.forms[0].Body.value)) : "";
			var pSubj = document.forms[0].Subject ? decodeUTF8(decodeBase64(document.forms[0].Subject.value)) : "";
			var pTo   = document.forms[0].To ? decodeUTF8(decodeBase64(document.forms[0].To.value)) : "";
			var pCc   = document.forms[0].Cc ? decodeUTF8(decodeBase64(document.forms[0].Cc.value)) : "";
			var pBcc  = document.forms[0].Bcc ? decodeUTF8(decodeBase64(document.forms[0].Bcc.value)) : "";
			if (pText.length + pSubj.length + pTo.length + pCc.length + pBcc.length > 0)
			{
				document.getElementById("WasComposing").style.visibility = "visible";
				document.getElementById("BodyText").value =
					"To: "  + pTo + "\n" +
					(pCc.length  ? "Cc: "  + pCc + "\n" : "") +
					(pBcc.length ? "Bcc: " + pBcc + "\n" : "") +
					"Subject: " + pSubj + "\n\n" +
					pText;
			}
		}
		else
		{
			if (window != window.parent)
				window.parent.location.href=window.location;
		}
	}
}
