var badSIDchars = new String(" \"/\\[]:;|=,+*?<>()"); // same as "nogood" array in CGI code.
var badFieldchars = new String("\"\\");
var alphabet = new String("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"); // same as decrypt.c but no '*'

function doLogin() 
{
	doTallerLogin(0);
}

function doTallerLogin( extra ) {
	if (!checkBrowser())
	{
		alert("You need IE 6.0 or above.");
		return;
	}
	if (!checkCookies())
	{
		if (location.host == 'www.mindleaders.com')
			lmsPopup.open("http://courses.mindleaders.com/dpec/NoCookies.htm");
		else
			lmsPopup.open("/dpec/NoCookies.htm");
		return;
	}
	if (checkFields())
	{
		lmsPopup.open();
		if (extra > 0)
			lmsPopup.extraHeight = extra;
		setTimeout( "clearPasswordField()", 3000 );
		if (isMindLeaders)
			document.form1.action = fixExtension( document.form1.action );
		document.form1.submit();
	}
}

// Check for the ENTER key
function loginKeyPress(evt) {
	// be browser friendly
	evt = (evt) ? evt : ((event) ? event : null);
	if (evt) {
		// more browser friendliness
		var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
		if (charCode == 13)
			doLogin();
	}
}

function checkBrowser()
{	
	if (navigator.appName.indexOf("Microsoft") != -1)
	{
		var version= navigator.appVersion;
		var msie = version.indexOf("MSIE");
		var msieStr = version.substring(msie);
		var endIndex = msieStr.indexOf(";");
		var realStr = msieStr.substring(4, endIndex);
		var realVersion = parseFloat(realStr);
		if ( realVersion >= 5.5 ) {
			return true;
		}
	}
	return false;
}

function checkCookies()
{
	ThisPage.setCookie("test","123");
	if (ThisPage.getCookie("test") != "123")
		return false;
	ThisPage.setCookie("test","",-1000);

	ThisPage.setCookie("test","123",1000);
	if (ThisPage.getCookie("test") != "123")
		return false;
	ThisPage.setCookie("test","",-1000);

	return true;
}

// allow for ASP/JSP flexibility
function fixExtension( url )
{
	var result = new String(url);
	var pos = result.lastIndexOf(".");
	if (pos != -1)
	{
		result = result.substr(0, pos + 1);
		if (mlomTech == "VB")
			result += "asp";
		else
			result += "jsp";
	}
	return result;
}

function clearPasswordField() {
	// Netscape 4.x needs this to be separated from the submit()
	document.form1.password.value = "";
}

function checkFields() { 

	if(EmptyField("ID", document.form1.userid.value) || !ValidField("ID", document.form1.userid.value, 255, badSIDchars)) {
		document.form1.userid.focus();
		document.form1.userid.select();
		return false;
	}

	if(document.form1.userid.value != "") {
		if(!ValidPassword(document.form1.password.value)) {
			document.form1.password.focus();
			document.form1.password.select();
			return false;
		}
	}
	return true;
}

// COMMON HTML PAGE FUNCTIONS >>>>>>>>>>>>>>>>>> 

function ValidField(fieldName, fieldValue, maxLength, badChars) {
	if(ValidLength(fieldName, fieldValue.length, maxLength))
		if(ValidChars(fieldName, fieldValue, badChars))
			return true;
	return false;
}

function ValidLength(fieldName, fieldLength, maxLength) {
	if(fieldLength <= maxLength)
		return true;
	else {
		alert(fieldName.toUpperCase() + " exceeds " + maxLength + " characters");
		return false;
	}
}

function ValidChars(fieldName, fieldValue, badChars) {
	for (var i=0; i<badChars.length; i++) {
		if (-1 != (fieldValue.indexOf(badChars.charAt(i)))) {
			alert("Bad character in " + fieldName.toUpperCase() + "\nThe following characters are not valid:\n" + FormatBadChars(badChars));
			return false;
		}
	}
	return true;
}

function FormatBadChars(badChars) {
	var fmtStr = new String();
	for (var i=0,j=0; i<badChars.length; i++) {
			fmtStr+= badChars.charAt(i);
			fmtStr+= " "; 
	}
	return fmtStr;
}

function EmptyField(fieldName, fieldValue) {
	if(fieldValue == "") {
		alert("Please enter " + fieldName.toUpperCase());
		return true;
	}
	else
		return false;
}

function ValidPassword(passWord) {

	if(ValidLength("Password", passWord.length, 100)) {	//deactivate the password check. Let login.jsp take care of it.
		for (var i=0; i<passWord.length; i++) {
			if (-1 == (alphabet.indexOf(passWord.charAt(i)))) {
				alert("Bad Password: Only alphanumerics are valid.");
				return false;
			}
		}
		return true;
	}
	return false
}