function validateField(fieldValue, validationCriteria){
	for(var k in validationCriteria){
		switch(validationCriteria[k]){
			case "notempty":
				if(fieldValue == ''){
					return false;
				}
				break;
			case "alpha":
				var regExp = /[a-zA-Z]+/;
				if(!fieldValue.match(regExp)){
					return false;
				}
				break;
			case "numeric":
				var regExp = /[0-9\s-]+/;
				if(!fieldValue.match(regExp)){
					return false;
				}
			case "email":
				var regExp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
				if(!fieldValue.match(regExp)){
					return false;
				}
		}
	}
	return true;
}			
function validateForm(formElement){
	var formInputs = formElement.getElements();
	var errorFields = new Array();
	var fieldCount = 0;
	for(var k in formInputs){
		if(formInputs[k].id){
			var fieldId = formInputs[k].id.split("_")[2];
			//var fieldDelay = Math.ceil(Math.random()*2);
			
			if(!validateField($F(formInputs[k].id), validationArray[fieldId])){
				errorFields.push(formInputs[k]);
				new Effect.Highlight(formInputs[k], {startcolor: '#990000', duration:0.5});
				Effect.Shake(formInputs[k], {distance:5, duration:0.3}); 
			} else {
				new Effect.Highlight(formInputs[k], {startcolor: '#006600', duration:0.5});
			}
			fieldCount++;
		}
	}
	if(errorFields.length > 0){
		return false;
	}
	return true;
}
function sendForm(){
	var formElement =  $('contactform_form');
	if(validateForm(formElement)){
		new Effect.Opacity(formElement, {to:0.5});
		new Effect.Opacity('multi_form_send', {to:0.5});
		formElement.request();
	}
}
