Ciao.

Mi date una mano a capire dove sbaglio?

Questa funzione deve convalidare un form soltanto quando:

1) l' orario è inserito nel formato 'hh:mm'
2) l' orario è inferiore a 7 ore e 36 minuti.

Non funziona, dove sbaglio?

codice:
function updateTime(txtObj)
{
  if (window.opener == null) return;
 
 // RegExp di validazione oraria
  var re = /^([01]\d|2[0-3]):[0-5]\d$/;
 
// Visualizza un alert solo se il campo correntemente editato ha almeno 5 caratteri ed è errato 
  if (txtObj.value.length >= 5 && !txtObj.value.match(re))
    {
      alert("Inserire l'orario nel formato 'hh:mm'.");
      txtObj.focus();
    }
 
 // Oggetto del FORM e collection dei campi
  var frmObj = txtObj.form;
  var elems = frmObj.elements;
 
   // Stringa da impostare nel campo 'impiego' del FORM nella window parente
  // e oggetto del campo 'impiego' del FORM nella window parente
  var result = "";
  var destObj = window.opener.document.myform.impiego;
 
// Il primo campo 'ent' è obbligatorio 
  if (frmObj.ent.value.match(re))
 
var totalHours = 0;
var totalMins = 0;
 
    {
      for ( var n = 0 ; n < elems.length ; n++ )
        {
 
 // Itera solo i campi di tipo 'text' che contengono un orario corretto
          if (elems[n].type == "text" && elems[n].value.match(re))
 
 
        {
           var vals = elems[n].value.split(":");
           var hours = parseInt(vals[0]);
           var mins = parseInt(vals[1]);
           totalHours += hours;
           totalMins += mins;
        }
 
            {
              if (result.length) result += ";"; 
 
              result += elems[n].name + "-" + elems[n].value; // aggiungi il separatore
            }
        }
 
      destObj.value= result;
    }
  else destObj.value= "--:--";// Stringa di errore
 

if (totalHours > 7) 
if ((totalHours == 7) && (totalMins > 36))
 
}