var reAlphanumeric = /^[a-zA-Z0-9]+$/
var reInvalidAlphanumeric = /^[^\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\_|\-|\+|\=|\{|\[|\}|\]|\||\\|\:|\;|\"|\'|\<|\,|\>|\.|\?|\/]+$/
//Disable special characters but allow fullstop(.) for user password
var rePassword = /^[^\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\_|\-|\+|\=|\{|\[|\}|\]|\||\\|\:|\;|\"|\'|\<|\,|\>|\?|\/]+$/

function isEmpty(s) {return ((s == null) || (s.length == 0))}

function isAlphanumeric_unicode(s) {   
	if (isEmpty(s)) {
		if (isAlphanumeric_unicode.arguments.length == 1) 
			return defaultEmptyOK;
		else 
			return (isAlphanumeric_unicode.arguments[1] == true);
	}
	else {
		return reInvalidAlphanumeric.test(s);
	}
}

function lostPassword()  {
	if (checkuid()&&checksch()) {
		document.forms(0).action = "LostPassword_Process.aspx?source=lms";
		document.forms(0).txtFrmXMLSubmit.value = document.forms(0).UID.value + '@' + document.loginform.SCH.value;
		document.forms(0).submit();
	}
}

function checkuid() {
	try
	{
		var textbox = document.all('UID');		
		var uidValue = textbox.value;
		if((uidValue.length > 2) && (uidValue.toLowerCase().substring(0,2)=="p_")) uidValue = uidValue.substring(2);
		if ((uidValue.length < 2) || (!isAlphanumeric_unicode(uidValue))) 
		{
			alert("Invalid Login ID. Please try again."); 
			textbox.focus();
			return false;
		}
		return true;
	}
	catch(er)
	{
		return false;
	}	
}

function checkpwd() {
	var textbox = document.all('PWD');
	if ((textbox.value.length < 1)||(!rePassword.test(textbox.value)))  {
		alert("Invalid Password. Please try again.");
		textbox.focus(); 
		return false;
	}
	return true;
}

function checksch()  {
	var textbox = document.all('SCH');
	if ((textbox.value.length < 2)||(!isAlphanumeric_unicode(textbox.value))&&(textbox.value.toUpperCase()!='_ANYSCHOOL')) {
		alert("Invalid School ID. Please try again."); 
		textbox.focus();
		return false;
	}
	return true;
}

function postdata()
{		
		if (checkuid()&&checksch()&&checkpwd()) {		
		if(IsPrevLoginUser())
			return;
		var submitstr;
		/*
		submitstr = '<postdata type="user" action="login">'	
		submitstr += '<page><control name="UID" type="hidden" ><text>' 
		//SHaopu 20051225, for parent portal
		//submitstr += document.loginform.UID.value + '@' + document.loginform.SCH.value;
		if(document.loginform.UID.value.toLowerCase().substring(0,2)=="p_") {
			submitstr += document.loginform.UID.value.substring(2) + '@' + document.loginform.SCH.value;
			document.loginform.txtIsParent.value = "true";
		} else 
			submitstr += document.loginform.UID.value + '@' + document.loginform.SCH.value;

		submitstr += '</text></control><control name="PWD" type="hidden" ><text>';
		submitstr += replacexmlstr(document.loginform.PWD.value) + '</text></control>';
		submitstr += '<control name="txtIsParent" type="hidden" ><text>';
		submitstr += document.loginform.txtIsParent.value + '</text></control>';		
		submitstr += '<control name="txtIsSchool" type="hidden" ><text>';
		submitstr += document.loginform.txtIsSchool.value + '</text></control>';
		//Add By JiQing 2007/04/09 Begin
		submitstr += '<control name="router_ip" type="hidden" ><text>';
		submitstr += document.loginform.router.value + '</text></control>';
		submitstr += '<control name="id" type="hidden" ><text>';
		submitstr += document.loginform.LoginID.value + '</text></control>';
		submitstr += '<control name="server" type="hidden" ><text>';
		submitstr += document.loginform.ServerID.value + '</text></control>';
		submitstr += '<control name="ClientID" type="hidden" ><text>';
		submitstr += document.loginform.ClientID.value + '</text></control>';
		//Add By JiQing 2008/01/10 for NeedConfirmReplace Begin
		submitstr += '<control name="NeedConfirmReplace" type="hidden" ><text>';
		submitstr += "NeedConfirmReplaceTrue" + '</text></control>';
		//Add By JiQing 2008/01/10 for NeedConfirmReplace End
		//Add By JiQing 2007/04/09 End
		submitstr += '</page></postdata>'
		document.loginform.txtFrmXMLSubmit.value = submitstr;
		*/
		/*
		var sNewUrl = "";
		if ((document.all("HTTPS").value == "1")) {
			var sParam = document.location.pathname
			var arrParam = sParam.split("/");
			sNewUrl = document.location.host;
			sNewUrl = "https://" + sNewUrl;
			for (i=0; i<arrParam.length-2; i++) {sNewUrl = sNewUrl + arrParam[i]+ '/'};
			sNewUrl = sNewUrl + "login/";
		}
		var loginURL = sNewUrl + "login_process.aspx?source=lms";
		*/
		var loginURL = "NETLogin_Loading.aspx?source=lms";		
		document.loginform.action = loginURL;		
		document.loginform.target = "_top";
		document.loginform.submit();
	}
}

function replacexmlstr(str)  {
	var tmpstr = new String(str);
	tmpstr = tmpstr.replace("<", "&lt;");
	tmpstr = tmpstr.replace(">", "&gt;");
	tmpstr = tmpstr.replace("&", "&amp;");
	return tmpstr;
}

//function loginform_onkeydown() {if(window.event.keyCode==13) postdata();}
function loginform_onkeydown(event)
{
	var e=event||window.event;
	key =e.charCode || e.keyCode;
	//key = window.event.keycode ? window.event.keycode : window.event.which;
	if( key == 13)
		postdata();
}

function onlogin() 
{
	postdata();
}
function IsPrevLoginUser()
{
	if (prev_user != "")
	{
		var loginCookie = getCookie("DNAUSERMAIL");
		if(loginCookie!="")
		{
			var arrUCre = loginCookie.split("!");
			var uName = document.getElementById("UID").value;
			var sName = document.getElementById("SCH").value;
			var uPasswd = document.getElementById("PWD").value;
			if((uName.toLowerCase()==arrUCre[0].toLowerCase())&&(sName.toLowerCase()==arrUCre[1].toLowerCase())&&(uPasswd==arrUCre[2]))
			{
				//Same user, return false to allow login.
				return false;
			}
			else
			{
				//Different user, return true to disable login.
				DisableLogin();
				alert("You didn't do a proper logout from your previous login session. Please close this browser and open a new browser to login again.");
				return true;
			}
		}
	}
	return false;
}
function getCookie(c_name)
{
	if (document.cookie.length>0)
	{
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start!=-1)
		{
			c_start=c_start + c_name.length+1;
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1)
				c_end=document.cookie.length;
			return decodeURI(document.cookie.substring(c_start,c_end));
		}
	}
	return "";
}
function DisableLogin()
{
	document.getElementById("UID").disabled = true;
	document.getElementById("SCH").disabled = true;
	document.getElementById("PWD").disabled = true;
	document.getElementById("lnkGoButton").detachEvent('onclick', postdata);
}