// vim:tw=0 nowrap tabstop=2 softtabstop=2 shiftwidth=2 shiftround smartindent
function MM_findObj(n, d) { //v4.0
  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() { //v4.0
  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];
    fname = args[i+1];
    val = MM_findObj(args[i]);
    if (val.type == 'text') {
      nm = val.name;
      val = val.value
      if (val!="") {
        if (test.indexOf('isEmail')!=-1) {
          p=val.indexOf('@');
          if (p<1 || p==(val.length-1))
            errors+='- '+fname+' deve essere un e-mail.\n';
        }
        else if (test!='R') {
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\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+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
          }
        }
      }
      else if (test.charAt(0) == 'R') {
        errors += '- '+fname+' obbligatorio.\n'; 
      }
    }
    else if (val.type == 'checkbox') {
      if (test.charAt(0) == 'R') {
        if (!val.checked)
          errors += '- '+fname+' obbligatorio.\n'; 
      }
    }
  }
  if (errors) {
    alert('Le informazioni richieste non sono complete:\n'+errors)
    return false
  }
  else {
    document.MM_returnValue = (errors == '')
    return true
  }
}

