/**
 * validate.js
 *
 * Manages the validation of a form
 */
 
/**
 * Minimum number of characters
 */
 function txtMin(name,caption,min){
	valid=true;
	obj=document.getElementsByName(name)[0];
	if (obj.value!="" && obj.value.length<min){
		if (lang=="eng"){
			alert("Please enter at least "+min+" characters in the '"+caption+"' field-");
		}
		else{
			alert("Inserire almeno "+min+" caratteri nel campo '"+caption+"'.");
		}
		valid=false;
	}
	
	return valid;
 }

 /**
  * Obligatory field
  */
 function txtObligatory(name,caption){
	valid=true;
	obj=document.getElementsByName(name)[0];
	if (obj.value==""){
		if (lang=="eng"){
			alert("Please enter a value for the '"+caption+"' field.");
		}
		else{
			alert("Il campo '"+caption+"' è obbligatorio.");
		}
		valid=false;
	}
	
	return valid;
 }
 
 /**
  * Validation of fields
  */
 function txtValidation(name,caption,type){
	valid=true;
	obj=document.getElementsByName(name)[0];
	txtValue=obj.value;
	if (obj.value=="") return true;
	
	switch(type){
		case "mail":
			
			atpos=txtValue.indexOf("@");
			atpos2=txtValue.indexOf("@",atpos+1);
			if (atpos<1 || atpos==txtValue.length-1 || atpos2!=-1){
				valid=false;
			}
			else{

				dotpos=txtValue.lastIndexOf(".");
				if (dotpos==-1 || dotpos<atpos || dotpos==txtValue.length-1){
					valid=false;
				}
				else{
					var validc="0123456789.@-_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
					for (var i=0;i<txtValue.length;i++){
						valid=false;
						for (var j=0;j<validc.length;j++){
							if (validc.charAt(j)==txtValue.charAt(i)) valid=true;
						}
					}	
				}
			}
						
			break;
		case "??":
			break;
	}
	
	if (!valid){
		if (lang=="eng"){
			alert("The '"+caption+"' field is not valid.");
		}
		else{
			alert("Il campo '"+caption+"' non è valido.");
		}
	}
	
	return valid;
 }
 
 function txtVChars(type){
	evt=window.event;
	
	switch(type){
		case "num":
			if (evt.keyCode<48 || evt.keyCode>57) evt.returnValue=false;
			break;
	}
 }