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 (!checkCookies())
	{
		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.ac.value="login";
			//document.form1.action = document.form1.page.value;
			//document.form1.action = "http://courses.elearning-centre.com/dpec/login.php";
			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 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
}

function SetCooKie(name,value)
{
	var argv=SetCooKie.arguments;
	var argc=SetCooKie.arguments.length
	var expires=(argc>2) ? argv[2] : null
	var path=(argc>3) ? argv[3] : null
	var domain=(argc>4) ? argv[4] : null
	var secure=(argc>5) ? argv[5] : false
	document.cookie=name + "=" +escape(value) + 
	((expires==null) ? "" :( ";expires=" + expires.toGMTString())) +
	((path==null) ? "" :( ";path=" + path)) +
	((domain==null) ? "" :( ";domain=" + domain)) +
	((secure==true) ? "; secure " : "")
	
}

