// Form Validation Script 
// Revision 2 - Ryan Peters (ryanp@ihtmlmerchant.com)
// BIG rewrite - Michael Slavin (michael@thewebster.com)
// form onSubmit="return validInfo(this)"
// <script language="JavaScript" type="text/javascript" src="appvalidate.js"></script>

var neededFields = new makeAnArray('email', 'realname', 'street', 'phone');

var neededDesc = new makeAnArray('Your email address','your name', 'your street address at Claiborne', 'your phone number');

function makeAnArray() {
        this.length = makeAnArray.arguments.length;
        for (var i = 0; this.length > i; i++) {
          	this[i+1] = makeAnArray.arguments[i]
          	}	
	}

function validInfo(obj) {
	var errMsg = '';

	if (isMailAddress(obj)) {
	
		for (var l = 1; neededFields.length > l-1; l ++) {
			if ((obj.elements[neededFields[l]].value == '') ||
				(obj.elements[neededFields[l]].value == ' ')) {
				errMsg = errMsg + 'You didn\'t enter ' + neededDesc[l] + '\n';
				}
			}
		if (errMsg != '') {
			errMsg = 'Sorry, we can\'t process this form because:\n\n' + errMsg;
			alert(errMsg);
			return false;
		} else {
			return true;
		}
	}else {
			return false;
		}
	return true;
}

function isMailAddress(obj) {
	invalidChars = " /|\\\"':;,";
	email = obj.elements['email'].value;
//	if (obj.elements['email'].value != obj.elements['email2'].value) {
//		alert("Your email entries did not match.");
//		obj.elements['email'].focus();
//		obj.elements['email'].select();
//		return false; 
//	}
	if ( ! email) { alert("Sorry, I couldn't make out any email address you're wanting to use."); return false; }
	for (i=0; i<invalidChars.length; i++) { badChar = invalidChars.charAt(i)
		if (email.indexOf(badChar,0) > -1) { alert("Sorry, we cannot accept an email containing the character \"" + badChar + "\""); return false; }	}
	atPos = email.indexOf("@",1)
	if (atPos == -1) { alert("Sorry, your email address must contain an \"@\""); return false; }
	if (email.indexOf("@",atPos+1) != -1) { alert("Sorry, your email address must contain only one \"@\""); return false; }
	periodPos = email.indexOf(".",atPos)
	if (periodPos == -1) { alert("Sorry, a valid email address contains a dot after the \"@\""); return false; } 
	if (periodPos+3 > email.length) { alert("Sorry, a valid email address contains a TLD type (e.g. com, net, org) after the dot"); return false; } 
	return true;
}
