// validate.js

function validateNumber(field) {
	var valid = "-.0123456789";
	var ok = "VALID";
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") { ok = "INVALID"; }
	}
	return ok;
}

function scrubNumber(field) {
	var valid = "-.0123456789";
	var temp;
	var result = "";
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) != "-1") { result = result + temp; }
	}
	field.value = result;
}

function scrubHTML(field) {
	var valid = "#:/&";
	var temp;
	var result = "";
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") { result = result + temp; }
	}
	field.value = result;
}

function validateEmail(addr) {
	if (addr == '') {
	   return "Please enter a valide email address.";
	}
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
	      return "The email address contains invalid characters.  Please remove them.";
	   }
	}
	for (i=0; i<addr.length; i++) {
	   if (addr.charCodeAt(i)>127) {
	      return "The email address contains non ascii characters.  Please remove them.";
	   }
	}
	
	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
	   return "A valid email address must contain an '@'.  Please verify the email address.";
	}
	if (atPos == 0) {
	   return "A valid email address can not start with a '@'.  Please correct the email address.";
	}
	if (addr.indexOf('@', atPos + 1) > - 1) {
	   return "A valid email address can contain only one '@'.  Please correct the email address.";
	}
	if (addr.indexOf('.', atPos) == -1) {
	   return "A valid email address must contain a period in the domain name.  Please correct the email address.";
	}
	if (addr.indexOf('@.',0) != -1) {
	   return "A period must not immediately follow '@' in a valid email address.  Please correct the email address.";
	}
	if (addr.indexOf('.@',0) != -1){
	   return "A period must not immediately precede '@' in a valid email address.  Please correct the email address.";
	}
	if (addr.indexOf('..',0) != -1) {
	   return "Two periods must not be adjacent to each other in a valid email address.  Please correct the email address.";
	}
	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum' && suffix != 'us' && suffix != 'tv' && suffix != 'cc') {
	   return "An invalid primary domain was found in you email address.  Please correct the email address.";
	}
	return "";
}