// Registration validation routines

function validateRegistration() {
	if (isEmpty(document.all.fname)) {
		alert(getMessage("First Name"));
		return false;
	}
	if (isEmpty(document.all.lname)) {
		alert(getMessage("Last Name"));
		return false;
	}
	if (isEmpty(document.all.email)) {
		alert(getMessage("E-Mail"));
		return false;
	}
	if (!validateEmail(document.all.email.value, true)) {
		return false;
	}
	return true;
}

function isEmpty(oField) {
	if (typeof(oField) != "undefined") {
		var strValue = oField.value.replace(/ /g, '');
		var isFieldEmpty = (strValue == "");
		if (isFieldEmpty) {
			oField.focus();
		}
		return isFieldEmpty;
	}
	return true;
}

function validateEmail(addr, db) {
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
		  if (db) alert('Email address contains invalid characters');
		  return false;
	   }
	}
	for (i=0; i<addr.length; i++) {
	   if (addr.charCodeAt(i)>127) {
		  if (db) alert("Email address contains non ascii characters.");
		  return false;
	   }
	}
	
	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
	   if (db) alert('Email address must contain an @');
	   return false;
	}
	if (atPos == 0) {
	   if (db) alert('Email address must not start with @');
	   return false;
	}
	if (addr.indexOf('@', atPos + 1) > - 1) {
	   if (db) alert('Email address must contain only one @');
	   return false;
	}
	if (addr.indexOf('.', atPos) == -1) {
	   if (db) alert('Email address must contain a period in the domain name');
	   return false;
	}
	if (addr.indexOf('@.',0) != -1) {
	   if (db) alert('Period must not immediately follow @ in email address');
	   return false;
	}
	if (addr.indexOf('.@',0) != -1){
	   if (db) alert('Period must not immediately precede @ in email address');
	   return false;
	}
	if (addr.indexOf('..',0) != -1) {
	   if (db) alert('Two periods must not be adjacent in email address');
	   return false;
	}
	if (addr.lastIndexOf('.') == addr.length-1) {
	   if (db) alert('Email address must not end with period');
	   return false;
	}
	return true;
}

function getMessage(strFieldName) {
	return "Please enter Your " + strFieldName;
}
