function Form() {
	this.messages=new Array();
}

Form.prototype.allowSubmit = function() {
	if( this.messages.length > 0 ) {
		combined = new String();
		for( x = 0; x < this.messages.length; x++ ) {
			combined += this.messages[x][1] + "\n";
		}
		alert(combined);
		this.messages[0][0].focus();
		this.messages=new Array();
		return false;
	} else {
		return true;
	}
}

Form.prototype.alphaNum = function( element, required, message ) {
	element.value = element.value.replace(/\s+$|^\s*/gi, "");
	if( required && !element.value.length > 0) {
		elements = new Array(element,message);
		this.messages.push(elements);
	} else {
		if( element.value.length > 0 ) {
			isAlphaNum = new RegExp ("[^0-9a-zA-Z \(\)\-\.\/]");
			if (isAlphaNum.test(element.value)) {
				elements = new Array(element,message);
				this.messages.push(elements);
			}
		}
	}
}

Form.prototype.zipcode = function( element, required, message ) {
	element.value = element.value.replace(/\s+$|^\s*/gi, "");
	if( required && !element.value.length > 0) {
		elements = new Array(element,message);
		this.messages.push(elements);
	} else {
		if( element.value.length > 0 ) {
			isZipCode = new RegExp ("[^0-9 \(\)\-\.\/]");
			if (isZipCode.test(element.value)) {
				elements = new Array(element,message);
				this.messages.push(elements);
			}
		}
	}
}

Form.prototype.selectBox = function( element, required, message ) {
	if( required && element.selectedIndex == 0 ) {
		elements = new Array(element,message);
		this.messages.push(elements);
		return false;
	}
}

Form.prototype.email = function( element, required, message ) {
	element.value = element.value.replace( /\s+$|^\s*/gi, '');
	if( required && !element.value.length > 0) {
		elements = new Array(element,message);
		this.messages.push(elements);
	} else {
		if( element.value.length > 0 ) {
			email = new RegExp ('^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.+[a-zA-Z0-9]{2,4}$');
			if ( !email.test( element.value ) ) {
				elements = new Array(element,message);
				this.messages.push(elements);
			}
		}
	}
}

Form.prototype.phone = function( element, required, message ) {
	if( required && !element.value.length > 0) {
		elements = new Array(element,message);
		this.messages.push(elements);
	} else {
		if( element.value.length > 0 ) {
			origValue = element.value;
			element.value = element.value.replace( /\s+$|^\s*/gi, '');   
			element.value = element.value.replace( /[^0-9]/gi, '');
			if( element.value.length != 10 ) {
				element.value =	origValue;
				elements = new Array(element,message);
				this.messages.push(elements);
			} else {
				element.value = '(' + element.value.substring(0, 3) + ') ' + element.value.substring(3, 6) + '-' + element.value.substring(6, 10)
			}
		}
	}
}




Form.prototype.startAlpha = function( element, required, message ) {
	if( required && !element.value.length > 0) {
		elements = new Array(element,message);
		this.messages.push(elements);
	} else {
		if( element.value.length > 0 ) {
			element.value = element.value.replace(/\s+$|^\s*/gi, "");
			isAlphaNum = new RegExp ("[^a-zA-Z]");
			if (isAlphaNum.test(element.value)) {
				elements = new Array(element,message);
				this.messages.push(elements);
			}
		}
	}
}

Form.prototype.noSpaces = function( element, required, message ) {
	if( required && !element.value.length > 0) {
		elements = new Array(element,message);
		this.messages.push(elements);
	} else {
		if( element.value.length > 0 ) {
			element.value = element.value.replace(/\s+$|^\s*/gi, "");
			containsSpace = new RegExp (" ");
			if (containsSpace.test(element.value)) {
				elements = new Array(element,message);
				this.messages.push(elements);
			}
		}
	}
}

Form.prototype.validate = function( element, func, required, message  ) {
	eval('this.'+ func + '( element, required, message )')
}