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_khtml = ((agt.indexOf("konqueror")!=-1) || (agt.indexOf("safari")!=-1) );
var is_partialcompatible = is_khtml || (nav_version >= 6.23) && (nav_version < 7.1);
var is_fullycompatible = (is_ie55up || is_moz14up || is_nav71up) && !is_notcomp && !is_khtml;

function doInitialRedirect()
{
	errCodURL = "?";
	if (forgotPass && forgotPass.length)
		errCodURL += "forgotPassword=1&"
	if (errorCode && errorCode.length)
		errCodURL += "errorCode=" + errorCode + "&";

	var pos = window.location.href.indexOf("?");
	if (pos > 0)
	   errCodURL += window.location.href.substr(pos+1);

	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 parseURL()
{
   var curURL = parent.location.href;
   var doAutoLogin = 0;
   curURL = curURL.substr(curURL.indexOf("?") + 1);
   var urlArray = curURL.split("&");
   for (var i = 0; i < urlArray.length; i++)
	{
	   var s = urlArray[i].split("=");
	   switch (s[0].toLowerCase())
	   {
	      case "errorcode":
	         errorCode = s[1];
	         break;
	      case "forgotpassword":
	         forgotPass = 1;
	         break;
	      case "username":
	         document.forms[0].no_username.value = s[1];
	         document.forms[0].no_password.focus();
	         break;
	   }
	}
}

function doErrCode()
{
	if (errorCode != "")
	{
		errorCode = "&nbsp;&nbsp;&nbsp;" + unescape(errorCode);

		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 && !is_partialcompatible)
	{
		document.write(doleancesBeg);
		//if (is_partialcompatible)
			document.write(doleancesMsg);
		//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;
	}

	form.username.value = form.no_username.value;
	form.password.value = form.no_password.value;

   var remuser = form.rememberuser.checked;

   createCookie("remuser", remuser);
   createCookie("disnetad", form.DisableIPWatch.checked);
   createCookie("discooki", form.DisableUseCookie.checked);
   if (remuser)
      createCookie("username", form.username.value);
   else
      eraseCookie("username");

	if (UseDomainSelector && (form.username.value.indexOf("@") < 0))
		form.username.value += document.getElementById("domainselector").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;
		}

		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)
				{
				   var val = myskn.options[myskn.selectedIndex].value;
				   for (var s = 0; s < skn.options.length; s++)
				   {
				      if (val == skn.options[s].value)
			         {
			            skn.selectedIndex = s;
			            break;
			         }
			      }
					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()
{
   var username = readCookie("username");
   var remuser = readCookie("remuser");
   var disnetad = readCookie("disnetad");
   var discooki = readCookie("discooki");
   var form = document.getElementById('frm');

	if (window.name == "login")
	{
		try {
			parent.document.title=window.document.title;
		} catch (a) {}
		form.no_username.focus();
	}

   parseURL();
	doErrCode();

	if ((is_fullycompatible || is_nav6) && (window.parent.name != "yourmail"))
	{
		if (DontShowDisNetAddressCheck) document.getElementById("chk21").style.visibility = document.getElementById("chk22").style.visibility = "hidden";
		if (DontShowDisCookieCheck) document.getElementById("chk31").style.visibility = document.getElementById("chk32").style.visibility = "hidden";
		if (DontShowRememeberUser) document.getElementById("chk51").style.visibility = document.getElementById("chk52").style.visibility = "hidden";
	}

	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 (DontShowClearCustomSettings) doHide("cook");

	if (is_nav6)
	{
		var df = document.forms[0];
		df.DisableIPWatch.style.border = df.DisableUseCookie.style.border = "1px solid #808080";
		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";
	}

   if (remuser && username)
   {
      form.no_username.value = username;
      document.forms[0].no_password.focus();
   }
   form.rememberuser.checked = remuser != "false";
   form.DisableUseCookie.checked = disnetad == "true";
   form.DisableIPWatch.checked = discooki == "true";
}

function eraseCookies()
{
   eraseCookie("username");
   eraseCookie("remuser");
   eraseCookie("disnetad");
   eraseCookie("discooki");
   eraseCookie("rows");
   eraseCookie("cols");
   eraseCookie("backHTMLconfirmed");
}

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;
		}
	}
}
