var v;
var v2;
function controllacampi(nomecampo, descrizione, tipo, obbligatorio) 
{
	v = "";
	v2 = "";
	switch (tipo) 
	{
		case "text":
			// controllo che il campo non sia vuoto
			eval("v = document.forms[0]." + nomecampo + ".value;");
			if (v == "")
			{
				if (obbligatorio == -1)
				{
					alert("Il campo \'" + descrizione + "\' č obbligatorio!");
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
			}
			break;
			
		case "num":
			eval("v = document.forms[0]." + nomecampo + ".value;");
			
			if (v == "")
			{
				// -1 = True\Vero\E' proprio cosė
				if (obbligatorio == -1)
				{
					alert("Il campo \'" + descrizione + "\' č obbligatorio!");
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
			}
			else
			{
				if (isNaN(parseInt(v, 10)) || (v!=parseInt(v, 10))) 
				{
					alert("Il campo \'" + descrizione + "\' deve essere numerico ");
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
			}
			break;
			
		case "email":
			eval("v = document.forms[0]." + nomecampo + ".value;");
			
			if (v == "")
			{
				// -1 = True\Vero\E' proprio cosė
				if (obbligatorio == -1)
				{
					alert("Il campo \'" + descrizione + "\' č obbligatorio!");
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
			}
			else
			{
				var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9_\-])+\.)+([a-zA-Z0-9]){2,4}$/;
				if (!filter.test(v)) 
				{
					alert("Il formato del campo \'" + descrizione + "\' non č corretto");
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
			}
			break;
			
		case "cap":
			eval("v = document.forms[0]." + nomecampo + ".value;");
			
			if (v == "")
			{
				// -1 = True\Vero\E' proprio cosė
				if (obbligatorio == -1)
				{
					alert("Il campo \'" + descrizione + "\' č obbligatorio!");
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
			}
			else
			{
				lung=5;
				if (isNaN(parseInt(v, 10)) || (v!=parseInt(v, 10))) 
				{
					alert("Il campo \'" + descrizione + "\' deve essere numerico ");
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
				if (v.length!= lung) 
				{
					alert("Il campo \'" + descrizione + "\' deve essere lungo " + lung);
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
			}
			break;
			
		case "cciaa":
			eval("v = document.forms[0]." + nomecampo + ".value;");
			
			if (v == "")
			{
				// -1 = True\Vero\E' proprio cosė
				if (obbligatorio == -1)
				{
					alert("Il campo \'" + descrizione + "\' č obbligatorio!");
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
			}
			else
			{
				lung=2;
				if (v.length!= lung) 
				{
					alert("Il campo \'" + descrizione + "\' deve essere lungo " + lung);
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
			}
			break;
			
		case "data":
			break;
		
		case "piva":
			break;
		
		case "select":
			if (obbligatorio == -1)  
			{
				eval("v = document.forms[0]." + nomecampo + ".selectedIndex;");
				if (v == 0)
				{
					alert("Il campo \'" + descrizione + "\' č obbligatorio!");
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
			}
			break;
		
		case "checkbox":
			if (obbligatorio == -1)
			{
				eval("v = document.forms[0]." + nomecampo + ".length;");
				if (v=="undefined") {
				for (var i=0; i<v; i++)
				{
					eval("b = document.forms[0]." + nomecampo + ".item(i).checked;");
					if (b) return(true)
				}
					}
				else {
					eval("b = document.forms[0]." + nomecampo + ".checked;");
					if (b) return(true)
				}
				alert("Per proseguire seleziona la casella \'" + descrizione + "\'!");
				return(false)
			}
			break;
			
		case "radio":
			if (obbligatorio == -1)
			{
				eval("v = document.forms[0]." + nomecampo + ".length;");
				for (var i=0; i<v; i++)
				{
					eval("b = document.forms[0]." + nomecampo + ".item(i).checked;");
					if (b) return(true)
				}
				alert("Selezionare almeno un elemento dal gruppo \'" + descrizione + "\'!");
				return(false)
			}
			break;
		case "password":
			// controllo che il campo non sia vuoto
			eval("v = document.forms[0]." + nomecampo + ".value;");
			eval("v2 = document.forms[0]." + "_Conf" + nomecampo + ".value;");
	
			if (v == "")
			{
				// -1 = True\Vero\E' proprio cosė
				if (obbligatorio == -1)
				{
					alert("Il campo \'" + descrizione + "\' č obbligatorio!");
					eval("document.forms[0]." + nomecampo + ".focus();");
					return(false);
				}
			}
			else
			{
				if (v == v2){ return(true) }
				alert("Il campo \'" + descrizione + "\' non corrisponde al campo \'Conferma " + descrizione + "\'!");
				return(false)	
			}
			break;
	}
return(true);
}
