var confermauscita = false;
var IntervalID;

function init() 
{
  window.onbeforeunload = ConfirmExit;
}
//
function fullScreen()
{
  this.moveTo(0,0);
  this.outerWidth  = screen.availWidth;
  this.outerHeight = screen.availHeight;
}
//
function SetConfirmExit(onoff) {  confermauscita = onoff; }
//
function ConfirmExit() {  if(confermauscita) return ' '; }
//
function MyTimeInterval(callback,deltams)
{
  clearInterval(IntervalID);
  IntervalID = setInterval(callback,deltams);  
}
//
function ClearMyTimeInterval() { clearInterval(IntervalID);}
//
function SetAttribute(id,att,val)
{
  var elem = document.getElementById(id);
  elem.setAttribute(att,val);
}
//
function RemoveAttribute(id,att)
{
  var elem = document.getElementById(id);
  elem.removeAttribute(att);
}
//
function WindowName() { document.write(window.name);}
//
function CloseWindow() { window.close(); }
//
function NewWindow(url,w,h)
{
  if(w > 0 && h > 0)
     newWindowIn=window.open(url,"subWin","resizable=yes,statusbar=no,scrollbars=yes,menubar=no,height="+h+",width="+w+" ");
  else
     newWindowIn=window.open(url,"subWin","resizable=yes,statusbar=no,scrollbars=yes,menubar=no");
  
  newWindowIn.focus();
}
//
function NamedWindow(url,w,h,nome)
{
  if(w > 0 && h > 0)
     newWindowIn=window.open(url,nome,"resizable=yes,statusbar=no,scrollbars=yes,menubar=no,height="+h+",width="+w+" ");
  else
     newWindowIn=window.open(url,nome,"resizable=yes,statusbar=no,scrollbars=yes,menubar=no");
  
  newWindowIn.focus();
}
//
function NewFullWindow(url,w,h,wname)
{
  if(w > 0 && h > 0)
     newWindowIn=window.open(url,wname,"height="+h+",width="+w+" ");
  else
     newWindowIn=window.open(url,wname);
  
  newWindowIn.focus();
}
//
function Imposta(campo,nome)
{
  campo.setAttribute('src',nome);
}
//
function ImpostaValore(idcampo,valore)
{
  var elem = document.getElementById(idcampo);
  elem.value = valore;
}
//
function PrendeValore(idcampo)
{
  var elem = document.getElementById(idcampo);
  return elem.value;
}
//
function PrendeContenuto(idcampo)
{
  var elem = document.getElementById(idcampo);
  return elem.innerHTML;
}
//
function ImpostaContenuto(id,valore)
{
  var elem = document.getElementById(idcampo);
  elem.innerHTML = valore;
}
//
function Numerico(elem,decimali)
{
  var valore = elem.value;
  
  if(valore.indexOf(',') > 0)
  {
    val = valore.split(',');
   
    if(isNaN(val[0]) || isNaN(val[1]))
    {
      alert('Attenzione, valore '+valore+' non valido !');
      elem.value = '';
      return;
    }
    
    if(val[1].length > decimali)
    {
      alert("Attenzione, massimo "+decimali+" decimali !");
      elem.value = '';
      return;
    }
    
    for(i = 0; i < (decimali - val[1].length); i++) { valore = valore + '0'; }
    
    elem.value = valore;
  }
  else
  {
    if(valore.indexOf('.') > 0)
    {
      alert('Attenzione, usare solo la virgola !');
      elem.value = '';
      return;
    }
    
    if(isNaN(valore))
    {
      alert('Attenzione, valore '+valore+' non valido !');
      elem.value = '';
      return;
    }
    
    if(valore.length > 0) elem.value = valore+',00';
  }
}
//
function VerificaData(DateString) 
{
  var ret = false

  try 
  {
     var match = DateString.match(/^(\d?\d)\D(\d?\d)\D(\d{4}|\d{2})$/);

     if (match != null) 
     {
	var tmpDate = new Date(match[3], match[2] - 1, match[1]);
	ret  = ((tmpDate.getMonth()==match[2]-1) && (tmpDate.getDate()==match[1]));
     }
  }
  catch(e) 
  {
     alert(e.message);
  }
  finally 
  {
     return ret;
  }
}
//
function ParentWindow($id,$valore)
{
  if (window.opener && ! window.opener.closed)
  {
    window.opener.document.getElementById($id).value=$valore;
    window.close();
  }
}
//
function Seleziona(recs,check)
{
  for(var i=1; i <= recs; i++)
  {
   document.getElementById('sel_'+i).checked = check;
  }
}
//
function NuovaRigaDivisioni()
{
    var tab		= document.getElementById('tab_divisioni');
    var i		= tab.rows.length - 1; 
    var riga		= tab.insertRow(i);  
    
    var codice		= riga.insertCell(0);
    codice.innerHTML	= '<INPUT class="codice" id="codice_'+i+'" type="text" size="4" maxlength="4">';
    
    var desc		= riga.insertCell(1);
    desc.innerHTML	= '<INPUT type="text" size="80" maxlength="80" id="desc_'+i+'" onblur="SalvaCampoDivisioni(PrendeValore(\'codice_'+i+'\'),\'desc\',this.value)">';   
    
    var elimina		= riga.insertCell(2);
    elimina.align	= "center";
    elimina.innerHTML	= '<A href="#" onclick="EliminaDivisione(PrendeValore(\'codice_'+i+'\'))" class="iconax" style="float:none;">X</A>';
    
    document.getElementById('codice_'+i).focus();
    
    return i;
}
//
function NuovaRigaCategorie()
{
    var tab		= document.getElementById('tab_categorie');
    var i		= tab.rows.length - 1; 
    var riga		= tab.insertRow(i);  
    
    var codice		= riga.insertCell(0);
    codice.innerHTML	= '<INPUT class="codice" id="codice_'+i+'" type="text" size="4" maxlength="4" onblur="SalvaNuovaCategoria(this.value)">';
    
    var desc_tags	= riga.insertCell(1);
    
    desc_tags.innerHTML	= '<INPUT type="text" size="80" maxlength="80" id="desc_'+i+'" onblur="SalvaCampoCategorie(PrendeValore(\'codice_'+i+'\'),\'DESCRIZIONE\',this.value)"><BR>'+   
                          '<INPUT type="text" size="80" maxlength="80" id="tags_'+i+'" onblur="SalvaCampoCategorie(PrendeValore(\'codice_'+i+'\'),\'TAGS\',this.value)">';   
    
    var elimina		= riga.insertCell(2);
    elimina.align	= "center";
    elimina.innerHTML	= '<A href="#" onclick="EliminaCategoria(PrendeValore(\'codice_'+i+'\'))" class="iconax" style="float:none;">X</A>';
    
    document.getElementById('codice_'+i).focus();
    
    return i;
}
//
function TotDareAvere()
{
  var elem_tot_dare  = document.getElementById('tot_dare');
  var elem_tot_avere = document.getElementById('tot_avere');
  
  var tot_dare  = 0.0;
  var tot_avere = 0.0;
  
  var nrighe = document.getElementById('tab_dett_reg').rows.length - 2;  // Meno testata e totale...
  
  for(var i = 1; i <= nrighe; i++)
  {
    var val_dare = document.getElementById("dare_"+i).value.replace(",",".");
    
    if(val_dare.length > 0)
    {
      if(! isNaN(val_dare) ) tot_dare += parseFloat(val_dare);	  
    }
    
    var val_avere = document.getElementById("avere_"+i).value.replace(",",".");
    
    if(val_avere.length > 0)
    {
      if(! isNaN(val_avere) ) tot_avere += parseFloat(val_avere);	  
    }
  }
  
  elem_tot_dare.innerHTML   = tot_dare.toFixed(2).replace(".",",");
  elem_tot_avere.innerHTML  = tot_avere.toFixed(2).replace(".",",");
  
  if(tot_dare > tot_avere)
  {
    elem_tot_dare.style.color  = "RED";
    elem_tot_avere.style.color = "BLACK";
  }
  else if(tot_dare < tot_avere)
  {
    elem_tot_dare.style.color  = "BLACK";
    elem_tot_avere.style.color = "RED";
  }
  else
  {
    elem_tot_dare.style.color  = "BLACK";
    elem_tot_avere.style.color = "BLACK";
  }
}
//
function NuovaRigaRegistro(idtabella)
{
    var tab    = document.getElementById(idtabella);
    var i      = tab.rows.length - 1; // Prima dela riga dei totale
    var riga   = tab.insertRow(i);  
    
    var conto       = riga.insertCell(0);
    conto.align     = "center";
    conto.innerHTML = '<INPUT class="conto" id="conto_'+i+'" name="conto_'+i+'" type="text" size="10" maxlength="10" onblur="MioTrovaConto(this.value,'+i+')">';
    
    var desc        = riga.insertCell(1);
    desc.innerHTML = '<DIV id="desc_'+i+'">';
    
    var dare       = riga.insertCell(2);
    dare.align     = "right";
    dare.innerHTML = '<INPUT class="soldi" id="dare_'+i+'" name="dare_'+i+'" type="text" size="12" maxlength="12"  onblur="Numerico(this,2);TotDareAvere();">';
    
    var avere       = riga.insertCell(3);
    avere.align     = "right";
    avere.innerHTML = '<INPUT class="soldi" id="avere_'+i+'" name="avere_'+i+'" type="text" size="12" maxlength="12"  onblur="Numerico(this,2);TotDareAvere();">';
    
    var causa       = riga.insertCell(4);
    causa.align     = "center";
    
    causa.innerHTML = '<TD align="center"><DIV id="'+'causa_div_'+i+'"></DIV></TD>';
    
    return i;
}
//
function NuovaRigaCausale()
{
    var tab    = document.getElementById('tab_causali');
    var i = tab.rows.length - 1; // Prima dela riga dei totale
    var riga   = tab.insertRow(i);  
    
    var causale       = riga.insertCell(0);
    causale.innerHTML = '<INPUT class="causale" id="causa_'+i+'" type="text" size="8" maxlength="8" onblur="SalvaNuovaCausale(this.value)">';
    
    var desc          = riga.insertCell(1);
    desc.innerHTML    = '<INPUT type="text" size="40" maxlength="40" id="desc_'+i+'" onblur="SalvaCampoCausale(PrendeValore(\'causa_'+i+'\'),\'desc\',this.value)">';   
    
    var iva           = riga.insertCell(2);
    iva.align	      = "center";
    iva.innerHTML     = '<INPUT class="iva" type="text" size="3" maxlength="3" id="iva_'+i+'" value="0" onblur="SalvaCampoCausale(PrendeValore(\'causa_'+i+'\'),\'iva\',this.value)">';   
    
    var altra         = riga.insertCell(3);
    altra.align	      = "center";
    altra.innerHTML   = '<INPUT class="iva" type="text" size="3" maxlength="3" id="altra_'+i+'" value="0" onblur="SalvaCampoCausale(PrendeValore(\'causa_'+i+'\'),\'altra\',this.value)">';   
    
    var merce         = riga.insertCell(4);
    merce.align       = "center";
    merce.innerHTML = '<INPUT type="checkbox" id="merce_'+i+'" onchange="SalvaCampoCausale(PrendeValore(\'causa_'+i+'\'),\'merce\',this.checked)">';   
    
    var escluso       = riga.insertCell(5);
    escluso.align     = "center";
    escluso.innerHTML = '<INPUT type="checkbox" id="escluso_iva_'+i+'" onchange="SalvaCampoCausale(PrendeValore(\'causa_'+i+'\'),\'escluso_iva\',this.checked)">';   
    
    var esente        = riga.insertCell(6);
    esente.align      = "center";
    esente.innerHTML  = '<INPUT type="checkbox" id="esente_iva_'+i+'" onchange="SalvaCampoCausale(PrendeValore(\'causa_'+i+'\'),\'esente_iva\',this.checked)">';   
    
    var non_imp       = riga.insertCell(7);
    non_imp.align     = "center";
    non_imp.innerHTML = '<INPUT type="checkbox" id="non_imp_iva'+i+'" onchange="SalvaCampoCausale(PrendeValore(\'causa_'+i+'\'),\'non_imp_iva\',this.checked)">';   
    
    var non_det       = riga.insertCell(8);
    non_det.align     = "center";
    non_det.innerHTML = '<INPUT type="checkbox" id="non_det_iva'+i+'" onchange="SalvaCampoCausale(PrendeValore(\'causa_'+i+'\'),\'non_det_iva\',this.checked)">';   
    
    var elimina       = riga.insertCell(9);
    elimina.align     = "center";
    elimina.innerHTML = '<A href="#" onclick="EliminaCausale('+i+',PrendeValore(\'causa_'+i+'\'))" class="iconax" style="float:none;">X</A>';
    
    document.getElementById('causa_'+i).focus();
    
    return i;
}
//
function VerificaRegistrazione(regform)
{
  if( confirm('Conferma la registrazione ?') )
  {
    // Verifica dati...
    
    var elem_data_ope = document.getElementById('data_ope');
    
    if( ! VerificaData(elem_data_ope.value))
    {
      alert('DATA OPERAZIONE NON VALIDA !');    
      elem_data_ope.focus();
      return;
    }
    
    // Non tutte le registrazioni hanno un documento di riferimento...
    
    var elem_nota = document.getElementById('nota');
    
    if(elem_nota.value.length < 3)
    {
      alert('INSERIRE UNA NOTA DESCRITTIVA VALIDA !');    
      elem_nota.focus();
      return;
    }
    
    var elem_tot_dare  = document.getElementById('tot_dare');    
    var elem_tot_avere = document.getElementById('tot_avere');
    
    var tot_dare  = parseFloat(elem_tot_dare.innerHTML.replace(",","."));
    var tot_avere = parseFloat(elem_tot_avere.innerHTML.replace(",","."));
    
/*    if(tot_dare <= 0 || tot_avere <= 0)
    {
      alert('DARE E AVERE NON VALIDI !');
      return;
    }*/
    
    if(tot_dare != tot_avere) 
    {
      alert('ATTENZIONE : DARE E AVERE DIVERSI !');
      
      if(! confirm('SALVA LO STESSO ?'))  return;
    }
    
    SetConfirmExit(false);
    
    regform.submit();
  }
}
//
function VerificaFattAcq()
{
    var str = document.getElementById('sel_cod_fornitore').value;
    
    if(str <= ' ')
    {
      alert('INDICARE UN CODICE FORNITORE !');
      SetFocus('sel_cod_fornitore');
      return false;
    }
    
    str = document.getElementById('numero_fattura').value;    
    
    if(str <= ' ')
    {
      alert('NUMERO FATTURA NON VALIDO !');
      SetFocus('numero_fattura');
      return false;
    }
    
    str = document.getElementById('data_fattura').value;    
    
    if( ! VerificaData(str))
    {
      alert('DATA FATTURA NON VALIDA !');    
      SetFocus('data_fattura');
      return;
    }
    
    str = document.getElementById('data_ope').value;    
    
    if( ! VerificaData(str))
    {
      alert('DATA OPERAZIONE NON VALIDA !');    
      SetFocus('data_ope');
      return;
    }
    
    str = document.getElementById('totale_fattura').value.replace(",",".");

    var totale_fattura = parseFloat(str);

    if(totale_fattura <= 0 || str == '')
    {
      alert('TOTTALE FATTURA NON VALIDO !');
      SetFocus('totale_fattura');
      return false;
    }
    
    return true;
}
//
function VerificaSchedaCarb()
{
    var str = document.getElementById('numero_scheda').value;    
    
    if(str <= ' ')
    {
      alert('NUMERO SCHEDA NON VALIDO !');
      SetFocus('numero_scheda');
      return false;
    }
 
    str = document.getElementById('data_scheda').value;    
    
    if( ! VerificaData(str))
    {
      alert('DATA SCHEDA NON VALIDA !');    
      SetFocus('data_scheda');
      return;
    }
 
    str = document.getElementById('data_ope').value;    
    
    if( ! VerificaData(str))
    {
      alert('DATA OPERAZIONE NON VALIDA !');    
      SetFocus('data_ope');
      return;
    }
 
    str = document.getElementById('conto_1').value;    
    
    if(str <= ' ')
    {
      alert('INDICARE UN CONTO COSTI !');
      SetFocus('conto_1');
      return false;
    }

    str = document.getElementById('conto_2').value;    
    
    if(str <= ' ')
    {
      alert('INDICARE UN CONTO PAGAMENTO !');
      SetFocus('conto_2');
      return false;
    }

    str = document.getElementById('targa').value;    
    
    if(str <= ' ')
    {
      alert('INDICARE LA TARGA AUTO !');
      SetFocus('targa');
      return false;
    }


    str = document.getElementById('totale_scheda').value.replace(",",".");

    var totale_scheda = parseFloat(str);

    if(totale_scheda <= 0 || str == '')
    {
      alert('TOTTALE SCHEDA NON VALIDO !');
      SetFocus('totale_scheda');
      return false;
    }
    return true;
}
//
function VerificaCorrispettivi()
{
    return true;
}
//
