function urlencode (str) {
    str = (str+'').toString()
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}

function Login(sKey,form,b)
{

	var dPwd = document.getElementById('inputPassword');
	var sPwd = dPwd.value;
	//if(form.cipher.checked){
		//Prepare RSA library
		var rsa = new RSAKey();
		rsa.setPublic(sKey, '10001');
		var password_rsa = document.createElement('input');
		password_rsa.type = 'hidden';
		password_rsa.name = 'password_rsa';
		password_rsa.value = rsa.encrypt(sPwd);
		form.appendChild(password_rsa);
		form.password.value = '';
	//}
	return true;
}

function getData(url) {
  if (window.XMLHttpRequest) {
    AJAX=new XMLHttpRequest();
  } else {
    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (AJAX) {
     AJAX.open("GET", url, false);
     AJAX.send(null);
     return AJAX.responseText;
  } else {
     return false;
  }
}


function choose()
{
	/*enable to use pro space*/
	if(document.getElementById('selectWC')){document.getElementById('selectWC').confirmed=true;}
	
/** Get OS name **/
	var OSName='';
	if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
	if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
	if (navigator.appVersion.indexOf("Mac")!=-1 && navigator.appVersion.indexOf("Mobile")!=-1) OSName="MacOSm";
	if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";
/** **/

/** Get client info **/
	var nVer = navigator.appVersion;
	var nAgt = navigator.userAgent;
	var browserName  = navigator.appName;
	var fullVersion  = ''+parseFloat(navigator.appVersion); 
	var majorVersion = parseInt(navigator.appVersion,10);
	var nameOffset,verOffset,ix;
	
	// In MSIE, the true version is after "MSIE" in userAgent
	if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
	 browserName = "IE";
	 fullVersion = nAgt.substring(verOffset+5);
	}
	// In Opera, the true version is after "Opera" 
	else if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
	 browserName = "OP";
	 fullVersion = nAgt.substring(verOffset+6);
	}
	// In Chrome, the true version is after "Chrome" 
	else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
	 browserName = "CH";
	 fullVersion = nAgt.substring(verOffset+7);
	}
	// In Safari, the true version is after "Safari" 
	else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
		if(navigator.appVersion.indexOf("Mobile")!=-1)
		{
			browserName = "SFM";
		}
		else
		{
			browserName = "SF";
		}
	 fullVersion = nAgt.substring(verOffset+7);
	}
	// In Firefox, the true version is after "Firefox" 
	else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
	 browserName = "FF";
	 fullVersion = nAgt.substring(verOffset+8);
	}
	// In most other browsers, "name/version" is at the end of userAgent 
	else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ) 
	{
	 browserName = nAgt.substring(nameOffset,verOffset);
	 fullVersion = nAgt.substring(verOffset+1);
	 if (browserName.toLowerCase()==browserName.toUpperCase()) {
	  browserName = navigator.appName;
	 }
	}
	// trim the fullVersion string at semicolon/space if present
	if ((ix=fullVersion.indexOf(";"))!=-1) fullVersion=fullVersion.substring(0,ix);
	if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix);
	
	majorVersion = parseInt(''+fullVersion,10);
	if (isNaN(majorVersion)) {
	 fullVersion  = ''+parseFloat(navigator.appVersion); 
	 majorVersion = parseInt(navigator.appVersion,10);
	}
	
	//alert('Browser name  = '+browserName);
	//alert('Major version = '+majorVersion);
	//alert('Full version  = '+fullVersion+'<br>');
	//alert('navigator.appName = '+navigator.appName+'<br>');
	//alert('navigator.userAgent = '+navigator.userAgent+'<br>');

/** **/
	var use='pro';
	if ((browserName=='IE' && majorVersion<'7') || (browserName=='SFM'))
	{
		use="basic";
	}
	
	if (document.getElementById('preselectedInterface') && document.getElementById('preselectedInterface').value!='')
	{
		use=document.getElementById('preselectedInterface').value;
	}
	
	//alert(use+" "+OSName+' ** '+navigator.userAgent);
	
	if(document.getElementById('selectWC')){document.getElementById('selectWC').value=use};
	
	if(document.getElementById('loginForm'))
	{
		document.getElementById('loginForm').onsubmit=function()
		{
			if (document.getElementById('inputPassword').value=='')
			{
				document.getElementById('inputPassword').focus();
				return false;
			}
			
			/* encode pwd */
			var time=Math.floor(new Date().getTime()/1000);
			if (document.getElementById('time'))
			{
				var newTime=getData(document.getElementById('baseMorseCode').value+'server/login/shortcuts.php?t&'+time);
				if(newTime)
				{
					time=newTime;
				}
				else
				{
					time=document.getElementById('time').value;
				}
			}
			document.getElementById('inputPassword').value='p='+urlencode(document.getElementById('inputPassword').value)+'&t='+time;
			/**/
			
			if (document.getElementById('selectWC').value=='pro')
			{
				document.getElementById('ipcheck').value='0';
			}
			
			if (document.getElementById('selectWC').value=='pda')
			{
				Login(this.name,this);
				document.getElementById('npmain').value='grid.mail';
				document.getElementById('loginForm').action=document.getElementById('self').value+"pda/index.html";
			}
			else
			{
				Login(this.name,this);
				document.getElementById('loginForm').action=document.getElementById('self').value+"basic/index.html"+document.getElementById('filtered_query_string').value;
			}
		}
	}
	
	return true;
}

function initOnLoad(run)
{
	if (document.getElementById('time'))
	{
		setInterval(function(){document.getElementById('time').value=parseInt(document.getElementById('time').value)+10;},10000);
	}
	
	if(document.getElementById('ctz')){document.getElementById('ctz').value=(new Date().getTimezoneOffset())*(-1);}
	
	if(document.getElementById('usernameDelete'))
	{
		document.getElementById('usernameDelete').onclick=function()
		{
			document.getElementById('saveFrame').src=document.getElementById('baseMorseCode').value+"server/login/shortcuts.php?d&"+Math.floor(new Date().getTime()/1000);
			document.getElementById('inputUsername').value="";
			this.style.display="none";
			document.getElementById('inputUsername').focus();
			return false;
		}
	}
	
	if (document.getElementById('bodyTag')){if (document.getElementById('bodyTag').className=='grass'){document.getElementById('logoBox').style.backgroundImage='url("client/skins/default/login/images/glogo.gif")';}}
	

	if (document.getElementById('selectLanguage'))
	{
		document.getElementById('selectLanguage').onchange=function()
		{
			var lHref=(location.href+'?-').split('?');
			lHref=lHref[0];
			
			var add='';
			if(document.getElementById('autoLoginCheckbox')){if (document.getElementById('autoLoginCheckbox').checked) {add='&autoLogin=1';}}
			
			location.href=lHref+'?language='+document.getElementById('selectLanguage').value+'&interface='+document.getElementById('selectWC').value+'&username='+document.getElementById('inputUsername').value+add;
		}
	}

	
	if (!run)
	{
		if (document.getElementById('usernameSet')) {if(document.getElementById('inputPassword')){document.getElementById('inputPassword').focus();}}
		
		else{document.getElementById('inputUsername').focus();}
		choose();
		/****/
		document.getElementById('jscontrol').value=1;
		/****/
	}
}
/****/
