function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  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 MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_validateForm() 
{ //v4.0
	var i,p,campo,nomeoggetto,controllo,valore,num,min0,max0,errors='',args=MM_validateForm.arguments;
	for (i=0; i<(args.length-2); i+=3) 
  	{	
		campo=args[i];
		nomeoggetto=args[i+1]; if (nomeoggetto=="") nomeoggetto=campo;
		controllo=args[i+2];
		valore=MM_findObj(args[i]).value;
	// test 'R' ==> campo obbligatorio  'R' va messo in prima posizione -- testato
		if (controllo.charAt(0) == 'R' && valore=="")  errors += '- ' + nomeoggetto + ' è obbligatorio.\n'; 
	// test 'notZero' ==> non è 0
		if (controllo.indexOf('notZero')!=-1 && (parseFloat(valore)==0)) errors += '- selezionare un valore per ' + nomeoggetto + '.\n'; 
	// test 'isEmail' ==> ndirizzo e-mail
		if (controllo.indexOf('isEmail')!=-1) 
		{
		 	p=valore.indexOf('@'); 
			if (p<1 || p==(valore.length-1)) errors+='- ' + nomeoggetto + ' deve contenere un indirizzo e-mail.\n';
		} 
	// test 'inRange num1:num2' ==> Deve essere l'ultimo. Numero tra due valori num1 e num2 devono essere di 4 caratteri 
	//	es RisNUMinRange    1: 100
	//    'R.....inRange xxxx:xxxx' 
							
			if (controllo.indexOf('inRange') != -1) 
			{	p=controllo.indexOf(':'); 
				min0=controllo.substring(p-4,p); 
				max0=controllo.substring(p+1); 
				num = parseFloat(valore);
				if (num<min0 || max0<num) errors += '- ' + nomeoggetto + ' deve contenere un numero compreso tra ' + min0 + ' e ' + max0 + '.\n';
			} 
	// test 'isNum' ==> Numero
		if (controllo.indexOf('isNum') != -1) if (isNaN(valore)) errors+='- '+nomeoggetto+' deve contenere un numero.\n';
	} 
	if (errors) alert('Si sono verificati i seguenti errori:\n'+errors);
	document.MM_returnValue = (errors == '');
}
