function validateEmail(fieldObj){
	var regExTest  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var fieldValue=trim(fieldObj.value);
	return regExTest.test(fieldValue);
}

function trim(str)
{
	s = str.replace(/^(\s)*/, '');
	s = s.replace(/(\s)*$/, '');
	return s;
}

function validateForm(){
	var argsOfCall=validateForm.arguments;
	var formObj=argsOfCall[0];
	//alert("ahoj"+formObj);
	var result=true;
	var message="";
	for(i=1;i<argsOfCall.length;i++){
		//alert(argsOfCall[i]);
		var oneDefinition=(argsOfCall[i]).split("/");
		var formField=formObj[oneDefinition[0]];
		//alert(formField.name+" "+formField.value);
		if(formField!=null){
			var typeOfField=oneDefinition[1];
			var valueOfField=formField.value=trim(formField.value);
			if(valueOfField==null || valueOfField==""){
				//alert(formField.name);
				result=false;
				break;
			}else{
				if(typeOfField=="numeric" && isNaN(valueOfField)){
					message+=formField.name+" field contains non-numeric value!\n";
					result=false;
					break;
				}else if(typeOfField=="email" && !validateEmail(formField)){
					message+="Email field(s) contains value that appears not to be an email!\n";
					result=false;
					break;
				}
			}
		}
	}

	if(result==true){
		formObj.submit();
	}else{
		alert("Please fill corectly all required fields!\n"+message);
	}
}