// ALberto 08.06.2004 contiene l'elenco delle commissione che gestiamo, e viene
// popolato dinamicamente dalla jsp Ordine_Ins.jsp
var Commissioni = new Array(0);
//

/* 
  *****************************************************************************
     15-04-2004 Alberto
   Funzione per salto focus su form
  *****************************************************************************
*/

function passa(nf, nt,  maxl,  nomesucc, event) {
  // if (event.keyCode < 48 || (event.keyCode > 57 && event.keyCode < 96) || event.keyCode > 105)  {
  if (event.keyCode < 48 || event.keyCode > 255)  {
  	event.returnValue = false;
  	return;
  }
  if (document[nf][nt].value.length==maxl)
  document[nf][nomesucc].focus();
}
/* ************************************************************************* */

/* 
  *****************************************************************************
     15-04-2004 Alberto
   Funzione per Blincking su pagina
  *****************************************************************************
*/
function doBlink() {
  // Blink, Blink, Blink...  
  var blink = document.all.tags("FONT")
   for (var i=0; i < blink.length; i++) {
     if (blink[i].id != '') {
        s = new String(blink[i].id);
        if (document.all.item(""+s+"").currentStyle.color == "#ff0000")
     	   blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : ""
     }
   }
}

function startBlink() {
  // Make sure it is IE4
  if (document.all)
    setInterval("doBlink()",300)
}
/* ************************************************************************** */


/* 
  *****************************************************************************
     15-04-2004 Andrea&Alberto
   Funzione che controlla il campo NCOM, verifica se è corretto ed è gestibile
  *****************************************************************************
*/
function check_NCOM(NCOM){
 return check_NCOM(NCOM,false,0);
}

function check_NCOM(NCOM,filtraK5,numero){

    s = new String(NCOM);
    s = s.toUpperCase();
    if (s.length==0 || s.length<7){
        alert('Numero commissione mancante / scorretto');
        form.ncom.focus();
        return false;
    }

    var tipoCOM = s.substring(5,7);

    // mi creo un array di appoggio perchè se un utente sbaglia il numero comm.
    // continuo a fare POP dell'ultimo elemento

    var Appoggio = new Array(Commissioni.length);
    for(var h =0; h < Commissioni.length;h++)
        Appoggio[h] = Commissioni[h];
    
    if (filtraK5)
       for (var w = 0; w < numero; w++)
            valore_eliminato = Appoggio.pop();
    
    var trovato = false;    
    for (var i = 0; i < Appoggio.length; i++) {
        a = new String(Appoggio[i]);
        if (a == tipoCOM) {
            trovato = true;
            break;
        }
    }
    if (trovato == false) {
        alert ("Numero Commissione non gestito "+s);
        form.ncom.focus();
        return false;
    }
    return true;
}

/* 
  *****************************************************************************
     19-04-2004 Alberto
   Funzione che controlla se il campo NCOM e il suo campo di conferma nelle
   monotema corrispondono.
  *****************************************************************************
*/
function NCOM_uguali(ncom1, ncom2){
    s1 = new String(ncom1);
    s1 = s1.toUpperCase();
    s2 = new String(ncom2);
    s2 = s2.toUpperCase();
    if (s1 == s2) return true;
    alert("Verificare il numero di commissione "+s1+" - "+s2);
    return false;
}
function DecodificaKeyCode(EVENTO) {
    if(window.event) {
       return window.event.keyCode;
    }
    return EVENTO.which;
}
/* 
  *****************************************************************************
     21-04-2004 Andrea
   Funzione che controlla se evento tastiera è pressione di un numero
    fa passare anche il tasto enter
  *****************************************************************************
*/
function isKeyNumeric(keyCode) {    
  return keyCode == 8 || keyCode == 0 || (keyCode >= 48 && keyCode <= 57);
}

/* 
  *****************************************************************************
     14-09-2004 Alberto
   Funzione che controlla se evento tastiera è pressione di un numero, di un punto o una virgola (per i valori decimali)
  *****************************************************************************
*/

function isKeyDecimal(keyCode,s) {
  if (event.keyCode == 44 || event.keyCode == 46) {
     valore = new String(s);
     if (valore.indexOf('.') >= 0 || valore.indexOf(',') >= 0)
        return false;
     return true;
  }
  return event.keyCode == 13 || event.keyCode == 44 || event.keyCode == 46 || event.keyCode >= 48 && event.keyCode <= 57;
}

var caparraOK=true;

/* 
  *****************************************************************************
     29-04-2004 Andrea
   Funzione che esegue i calcoli per calcolo importo caparra da richiedere
   in contrassegno se agente specifica caparra, non esegue verifiche del tipo
   pagamento le quali influsicono sulla percentuale di caprra rispetto all'importo.
  *****************************************************************************
*/

function forzaCaparra(cap, nomeform, campocaplibera, campocapcontrass){
  if (document[nomeform][campocaplibera].value.length<=0){
    document[nomeform][campocapcontrass].value="";
    return;
 }
 var s = document[nomeform][campocaplibera].value;
 if (s>cap){
    alert("Importo caparra errato");
    caparraOK=false;
    document[nomeform][campocapcontrass].value="";
    return;   
 }
 document[nomeform][campocapcontrass].value=cap-s;
 caparraOK=true;
}

/* 
  *****************************************************************************
     29-04-2004 Andrea
   Funzione aggiorna le choice dei dati prima spedizione in relazione al
   chekcbox 'ORDINE DEK' mette 0 su Normale e 1 su DEK
  *****************************************************************************
*/

function primaSpedChek() {
  if (form.dek.checked)
   {
     document.form.pacchi1N.selectedIndex=0;
     document.form.pacchi1D.selectedIndex=1;
   }
  else{
     document.form.pacchi1N.selectedIndex=1;
     document.form.pacchi1D.selectedIndex=0;
   }
}


/* 
  *****************************************************************************
     09-06-2004 Alberto
   metodi hide e show per nascondere o visualizzare SPAN all'interno delle jsp
  *****************************************************************************
*/

function hide(nome_id) { 
   document.all[nome_id].style.visibility="hidden"; 
} 

function show(nome_id) { 
   document.all[nome_id].style.visibility="visible"; 
} 

/* 
  *****************************************************************************
     22-06-2004 Alberto
   metodo trim()
  *****************************************************************************
*/

function trim(s) 
{
  while (s.substring(0,1) == ' ') 
  {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') 
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}

/*
  *****************************************************************************
     16-06-2004 Alberto
   Metodo che verifica se la data di prevista consegna inserita è successiva alla data odierna
  *****************************************************************************
*/

function isDataPrevistaConsegna_Corretta (giorno, mese, anno) {
    gg = new String(giorno);
    mm = new String(mese);
    aa = new String(anno);
    if (gg.length == 0 && mm.length == 0 && aa.length == 0)
        return true;
    if ( gg.length < 2 || mm.length < 2 || aa.length < 2) {
        alert("Verificare il formato della data prevista consegna.");
        return false;
    }
    else {
        aa = 20+aa;
        data = (gg*1 + (mm*100) + (aa*10000));
        var d = new Date()
        oggi = (d.getDate()*1 + (d.getMonth()+1)*100 + (d.getFullYear()*10000));        
        if (data < oggi) {
            alert("Verificare la data prevista consegna.");
            return false;
        }
    }
    return true;
}