// JavaScript Document
function validateForm(f, resultDiv, callback){
	var errors = '';
	$('#'+f+' :input').each(
						function(){
							if($(this).attr("validate")){
								var field = $(this);
								var v = field.attr("validate").split(',');
								$.each( v, function(i, n){
									//split with : to get params
									var keypair = n.split(":");
									var params = '';
									if(keypair[1])params = keypair[1];
									
									switch (keypair[0]){
										case "req":
											errors += validRequired(field);
										break;
										case "email":
											errors += validEmail(field);
										break;
										case "int":
											errors += validInt(field, params);
										break;
										case "alpha":
											errors += validAlpha(field);
										break;
										case "alphaNum":
											errors += validAlphaNumeric(field);
										break;
										case "phone":
											errors += validPhone(field);
										break;
										case "float":
											errors += validFloat(field);
										break;
										case "len":
											errors += validLen(field, params);
										break;
										//default : alert("I\'m sure it was great");
									}
								});
							}
						});
	if(errors!=''){
		alert(errors);
	}
	else{
		 $('#formResult').html('<div class="message"><blink>Sending your information. Please wait.</blink></div>');
		 $('#'+f).ajaxSubmit(function(data) {
			//alert('Form submit succeeded! Server returned: ' + data);
			if(resultDiv){
				$('#'+resultDiv).html(data);
			}
			else{
				$('#formResult').html(data);
			}
			$('#'+f)[0].reset();
			if(callback)eval(callback);
		 });
	}
}

function validRequired(field){
	if(field.val()==''){
		return '\nPlease enter a value for '+field.attr('label');
	}
	else{
		return '';
	}
}

function validEmail(field){
	var regEx = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
	if(!regEx.test(field.val())){
		return '\nPlease enter a valid email for '+field.attr('label');
	}
	else{
		return '';
	}
}


function validFloat(field){
	var regEx = /[-+]?[0-9]*\.?[0-9]+/;
	if(!regEx.test(field.val())){
		return '\nPlease enter a valid decimal value for '+field.attr('label');
	}
	else{
		return '';
	}
}

function validInt(field, params){
	alert(params);
	if(field.val()==''){
		return '\nPlease enter a valid numeric value for '+field.attr('label');
	}
	else{
		return '';
	}
}

function validLen(field, len){
	var result='';
	if(field.val().length<len){
		result = '\n'+field.attr('name')+' should be atleast '+len+' characters long.';
	}
	return result;
}

function validAlphaNumeric(field){
	if(field.val()==''){
		return '\nPlease enter a valid alpha-nuumeric value for '+field.attr('label');
	}
	else{
		return '';
	}
}

function validAlpha(field){
	if(field.val()==''){
		return '\nPlease enter a valid alphabetic value for '+field.attr('label');
	}
	else{
		return '';
	}
}

function validPhone(field){
	if(field.val()==''){
		return '\nPlease enter a valid value for '+field.attr('label');
	}
	else{
		return '';
	}
}