// JavaScript Document
/*
R
isMail
isDate
StrLenRangemin:max		lunghezza stringa compresa tra min e max
DateinRangemin:max		data compresa tra min e max	controlla cmq la validitą della data
isPrice					costo formato xx,xx xxx.xx
isNum
isText
isSel
isCell
inRangemin:max			numero compreso tra min e max, senza min e max controlla che il numero sia un intero
*/
var day,month,year,maxDay;
var arrMonths = new Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
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 && d.getElementById) 
		x=d.getElementById(n); 
	return x;
}

function DateIsValid(valore)
{
	day=valore.substr(0,2);
	month=valore.substr(3,2);
	year=valore.substr(6,4);
	if (month == '02') 
		maxDay = (!(year % 4) && ((year % 100) || !(year % 400))) ? 29 : 28;
	else 
		maxDay = (month == 4 || month == 6 || month == 9 || month == 11) ? 30 : 31;
	month=month-1;
	if ((day < 1) || (day > maxDay))
	  return (false);
	else
	  return (true);
}

function ExtractString(stringa)
{
	var p,lenrange;
	var valori=new Array(2);
	p=stringa.indexOf('g');
	lenrange=stringa.substring(0,p+2);					
	p=stringa.indexOf(':');
	valori[0]=stringa.substring(lenrange.length,p);
	valori[1]=stringa.substring(p+1);	
	return (valori);
}

function MM_validateForm()
{
	var i,p,q,nm,test,lenrange,datemin,datemax,num,min,max,pattern,errors='';
	var args=MM_validateForm.arguments;
	var lunghezza;
	var tmpregexp=new Array();
	var tmparray=new Array(2);
	var tmpval,tmpval1,tmpvalins;
	for (i=0; i<(args.length-2); i+=3) 
	{ 
		test=args[i+2];
		val=MM_findObj(args[i]);
		if (val) 
		{ 
			nm=val.name; 
			if ((val=val.value)!='') 
			{
				if (test.indexOf('isEmail')!=-1) 
				{ 
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1)) 
						errors+='\n- '+args[i+1]+' deve contenere un indirizzo email.';
				}
				else if (test!='R')
				{ 
					if (test.indexOf('StrLenRange') != -1)
					{
						//if (isNaN(val)) 
							//errors+='\n- '+args[i+1]+' deve contenere un numero.';						
						tmparray=ExtractString(test);
						tmpvalins=val.length;				
						if (tmpvalins<tmparray[0] || tmparray[1]<tmpvalins)
						{
							if(tmparray[0]==tmparray[1])
								errors+='\n- La lunghezza del campo '+args[i+1]+' deve essere di '+tmparray[0]+' caratteri.';
							else
								errors+='\n- La lunghezza della stringa del campo '+args[i+1]+' deve essere tra '+tmparray[0]+' e '+tmparray[1]+' caratteri.';							
						}
					}
					else if (test.indexOf('isText') != -1)
					{						
						pattern = /[*£$%&_.]/g;
						tmpregexp=val.search(pattern);
						if(tmpregexp!=-1)
							errors+='\n- '+args[i+1]+' deve contenere solo caratteri';
					}			
					else if (test.indexOf('isCodFisc') != -1)
					{						
						lunghezza=val.length;
						if(lunghezza==16)
						{
							pattern = /[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]/;
							tmpregexp=val.match(pattern);
							if(tmpregexp==null)
								errors+='\n- Il campo '+args[i+1]+' deve avere il formato di un codice fiscale';
						}
						else
							errors+='\n- Il campo '+args[i+1]+' deve avere una lunghezza di 16 caratteri ';
					}
					else if (test.indexOf('isCodPers') != -1)
					{						
						lunghezza=val.length;
						if(lunghezza!=6)
							errors+='\n- Il campo '+args[i+1]+' deve avere una lunghezza di 6 caratteri';

					}					
					else if (test.indexOf('inRange') != -1)
					{ 
						if (isNaN(val))
							errors+='\n- '+args[i+1]+' deve contenere un numero.';					
						tmparray=ExtractString(test);
						if (num<tmparray[0] || tmparray[1]<num) 
							errors+='\n- '+args[i+1]+' deve contenere un numero tra '+tmparray[0]+' e '+tmparray[1]+'.';
					}
					else if (test.indexOf('isSel') != -1)
					{ 					 					
						if (val.valueOf()==0)
							errors += '\n- '+args[i+1]+' č un campo obbligatorio';
					}					
					else if (test.indexOf('isNum') != -1)
					{					
						if (isNaN(val)) 
							errors+='\n- Il campo '+args[i+1]+' deve contenere un numero.';													
						p=test.indexOf(':');
						max=test.substring(test.length,p+1);							
						lunghezza=val.length;										
						if(lunghezza!=max)
							errors+='\n- La lunghezza del campo '+args[i+1]+' deve essere di '+max+' caratteri.';
					}
					else if (test.indexOf('checkbox') != -1)
					{ 
						if (!document.contatti.privacy.checked)
							errors+='\n- Acconsentire il trattamento dei dati personali.';					
					}					
				} 
			} 
			else if (test.charAt(0) == 'R') errors += '\n- '+args[i+1]+' č un campo obbligatorio'; 
		}
	} 
	if (errors) 
	{
		alert('Sono presenti i seguenti errori:'+errors); 	
	}	
	document.MM_returnValue = (errors == '');
}