	// Created by Mike Estes a long time ago....before coming back to nd, so don't use without my permission
	// Also, it relies on prototype lib
	
	FormValidator = function(formId) {
		this.formId = formId;
		this.CreditCardNumber = new CreditCardNumber('');
		this.dataTypes = {
			phone : /^(\(\d{3}\)|^\d{3})[\s-\.]?\d{3}[-\s\.]?\d{4}$/,
			zip   : /^\d{5}-\d{4}$|^\d{5}$/,
			email : /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,
			ccexp : /^[\d]{2}[\s-\/]?[\d]{2}$/,
			cvc	  : /^[\d]{3,4}$/,
			uname : /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$|^[\w]{6,32}$/,
			pword : /^[\w]{6,16}$/
		};
	}
	FormValidator.prototype = new Object();
	FormValidator.prototype.simple = function() {
		var frm = $(this.formId);
		var labels = $A(frm.getElementsByTagName('label'));
		var emptyRequiredFields = [];
		var errorStr1 = "";
		var errorStr2 = "";
		for(var i = 0; i < labels.length; i++) {
			var label = labels[i]; 
			var fieldId = label.getAttribute('for')?label.getAttribute('for'):label.getAttribute('htmlFor');
			var fieldVal = $F(fieldId);
			var datatype = label.getAttribute('datatype')?label.getAttribute('datatype'):false;
			if(datatype && (fieldVal != undefined || fieldVal != '')) {
				if(datatype == 'ccnum') {
					$(fieldId).value = this.CreditCardNumber.filter(fieldVal); 
					this.CreditCardNumber.setValue(fieldVal);
					if(!this.CreditCardNumber.isValid()) {
						errorStr2 += " Credit Card Number,"; 
					}
				} else {
					var format = this.dataTypes[datatype]?this.dataTypes[datatype]:false;
					if(format && (fieldVal != undefined && fieldVal != '')) {
						if(!fieldVal.match(new RegExp(format))) {
							var ft = new String(label.innerHTML);
							errorStr2 += " " + ft.stripTags() + "\n";
						}
					}		
				}
			}
			
			if(Element.hasClassName(label,'required')) { 
				//alert(fieldVal);
				if(fieldVal == undefined || fieldVal == '') {
					var ft = new String(label.innerHTML);
					errorStr1 += " " + ft.stripTags() + "\n";
				}
			}
		}
		var errorStr = "";
		if(errorStr1.length > 0 ) {
			errorStr1 = "The following fields are required:\n\n"+errorStr1.substr(0,errorStr1.length-1)+"\n\n";
		}
		errorStr = errorStr1;
		if(errorStr2.length > 0 ) {
			errorStr += "The following fields are invalid:\n\n"+errorStr2.substr(0,errorStr2.length-1)+"\n";
		}
		if(errorStr.length > 0) {
			alert(errorStr);
			return false;
		}
		return true;
	}