/**
 * validate.js - form validate routines
 * Copyright (c) 2001 End of the Night Creations.
 * http://www.endofthenight.com/
 *
 * v2.0 - rd - 02092001
 *
 */

var jcErrEmailNotEntered = "You must enter your email address.";
var jcErrBlankSpaceInEmailAddr = "Sorry, blank spaces is not allowed in the email address.";
var jcErrAtSignMissingInEmailAddr = "Sorry, the email address is invalid. Please make sure that the '@' sign is present.";
var jcErrInvalidEmailAddr = "Sorry, the email address is invalid. Please verify it.";
var jcErrInvalidCharInEmailAddr = "Sorry, the email address contains invalid characters. Please verify it.";

var jcInvalidEmailChars = "\"|&;<>!*\\";

function validateEmailField (formName, emailField) {

	var emailValue;
		emailValue = document.forms[formName].elements[emailField].value;

	if (emailValue.length == 0) {
		alert (jcErrEmailNotEntered);
		setFocusTo (formName, emailField);
		return false;
	}

	if (!validateAsciiData (emailValue)) {
		alert (jcErrInvalidCharInEmailAddr);
		setFocusTo (formName, emailField);
		return false;
	}

	var invalidChars = jcInvalidEmailChars;
	// alert (invalidChars);
	for (var i = 0; i < invalidChars.length; i++) {
		if (emailValue.indexOf (invalidChars.charAt(i)) != -1) {
			alert (jcErrInvalidCharInEmailAddr);
			setFocusTo (formName, emailField);
			return false;
		}
	}

	if (emailValue.indexOf ("@") == -1) {
		alert (jcErrAtSignMissingInEmailAddr);
		setFocusTo (formName, emailField);
		return false;
	}

	if (emailValue.indexOf (" ") != -1) {
		alert (jcErrBlankSpaceInEmailAddr);
		setFocusTo (formName, emailField);
		return false;
	}
	
	if (window.RegExp) {
		var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";

		var reg1 = new RegExp (reg1str);
		var reg2 = new RegExp (reg2str);

		if (reg1.test (emailValue) || !reg2.test (emailValue)) {
			alert (jcErrInvalidEmailAddr);
			setFocusTo (formName, emailField);
			return false;
		}
	}

	return true;
}

function validateTextField (formName, fieldName, msg) {

	var fieldValue;
	fieldValue = document.forms[formName].elements[fieldName].value;

	if (fieldValue.length == 0) {
		alert (msg);
		setFocusTo (formName, fieldName);
		return false;
	}

	return true;
}

function validateAsciiData (testStr) {
	for (var i = 0; i < testStr.length; i++) {
		if ((testStr.charAt(i) < " ") || (testStr.charAt (i) > "~")) {
			return false;
		}
	}
	return true;
}

function validateLoginData (testStr) {
	for (var i = 0; i < testStr.length; i++) {
		if (((testStr.charAt (i) >= "a") && (testStr.charAt (i) <= "z")) ||
		    ((testStr.charAt (i) >= "A") && (testStr.charAt (i) <= "Z")) ||
			((testStr.charAt (i) >= "0") && (testStr.charAt (i) <= "9")) ||
			 (testStr.charAt (i) == "-") || (testStr.charAt (i) == "_")
		) {
		} else {
			return false;
		}
	}
	return true;
}

function setFocusTo (formName, fieldName) {
	document.forms[formName].elements[fieldName].focus ();
}
var jcErrPwdDoesNotMatchConf = "Sorry, password and password confirmation do not match.";
var jcErrInvalidCharInPwd = "Sorry, the password may contain only letter and numbers.";
var jcErrPwdTooShort = "Sorry, the password must have least 3 characters.";
var jcErrPwdConfTooShort = "Sorry, the password confirmation must have least 3 characters.";

function validatePasswordField (formName, fieldName, conf) {
	
	var fieldValue;
		fieldValue = document.forms[formName].elements[fieldName].value;

	if (fieldValue.length < 3) {
		if (conf) {
			alert (jcErrPwdConfTooShort);
		} else {
			alert (jcErrPwdTooShort);
		}
		setFocusTo (formName, fieldName);
		return false;
	} else if (!validateAsciiData (fieldValue)) {
		if (conf) {
			alert (jcErrInvalidCharInPwdConf);
		} else {
			alert (jcErrInvalidCharInPwd);
		}
		setFocusTo (formName, fieldName);
		return false;
	}
	return true;
}
