// ************************************ Funzioni di validazione del Form principale
function MM_findObj(n, d)
{
	var p,i,x;
	if(!d)
		d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length)
	{
    	d=parent.frames[n.substring(p+1)].document;
    	n=n.substring(0,p);
    }
	if(!(x=d[n])&&d.all)
		x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++)
		x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++)
		x=MM_findObj(n,d.layers[i].document);
	if(!x && document.getElementById)
		x=document.getElementById(n);
	return x;
}

function MM_validateForm()
{
	var i,p,q,test,num,min,max,errors='',args=MM_validateForm.arguments;
	for (i=0; i<(args.length-2); i+=4)
	{
  		test=args[i+2];
  		NomeC=args[i+3]
	  	val=MM_findObj(args[i]);
  		valobj=MM_findObj(args[i]);
	    if (val)
    	{
    		
	    	if((val=val.value)!="")
    		{
      			if(test.indexOf('isEmail')!=-1)
      			{
      				p=val.indexOf('@');
	      			if (p<1 || p==(val.length-1))
    	  				errors+='- il campo '+NomeC+' deve contenere un indirizzo e-mail valido.\n';
	    	  	}
      			else if (test!='R')
	      		{
    	  			if (test!= 'L')
      				{
      					if (isNaN(val))
      						errors+='- '+NomeC+' deve contenere dei numeri.\n';
					    if (test.indexOf('inRange') != -1)
					    {
					      	p=test.indexOf(':');
					      	min=test.substring(8,p);
					      	max=test.substring(p+1);
				    	  	if(val<min || max<val)
				      			errors+='- '+NomeC+' deve contenere dei numeri compresi tra '+min+' e '+max+'.\n';
					    }
    	  			}
      				else
      				{
      					if(valobj[valobj.selectedIndex].value=="-")
      						errors += '- E\' necessario selezionare un valore del campo '+NomeC+'.\n'
				    }
				}
			}
			else if(test.charAt(0) == 'R')
				errors += '- il campo '+NomeC+' è vuoto.\n'; 
   			if(test=='G')
			{
				if (isNaN(val))
					errors+='- '+NomeC+' deve contenere dei numeri.\n';
				else if(val<0 || val>31 || val=='') 
					errors+='- '+NomeC+' non valido.\n';
			}
  			else if(test=='M')
			{
				if (isNaN(val))
					errors+='- '+NomeC+' deve contenere dei numeri.\n';
				else if(val<0 || val>12 || val=='') 
					errors+='- '+NomeC+' non valido.\n';
			}
   			else if(test=='A')
			{
				if (isNaN(val))
					errors+='- '+NomeC+' deve contenere dei numeri.\n';
				else if(val<1900 || val>2100 || val=='') 
					errors+='- '+NomeC+' non valido.\n';
			}
		}
 	}
 	if (errors)
		alert('Sono stati riscontrati i seguenti errori :\n'+errors);
	document.MM_returnValue = (errors == '');
}
