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_validateForm() { //v4.0
// -- realtime
	var i,p,q,nm,test,num,min,max,errors='', args=MM_validateForm.arguments;
	for (i=0; i<(args.length-2); i+=3) { 
		test=args[i+2]; 
		val=MM_findObj(args[i]);
		//alert('val: '+val.id);
		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+='- il campo '+nm+' deve contenere un indirizzo email valido.\n';
				} else if (test!='R') { 
					if (test.indexOf('isPrivacy')!=-1) {
						vid=MM_findObj(args[i]).id;
						if (!document.getElementById(vid).checked) {
							errors += '- è necessario dare il consenso sulla privacy.\n';
							break;
						}
					}
				} 
			} else if (test.charAt(0) == 'R') {
				errors += '- i campi contrassegnati con (*) sono obbligatori.\n'; 
				break;
			}
		}
	} 
	if (errors != '') {
		alert('Attenzione:\n' + errors);
		result = false;
	} else {
		result = true;
		document.forms["subscribe"].submit();
	}
	
	document.MM_returnValue = result;
}
