
function selezionaItemCombo(combobox, parola) {

  var parolaCercata = '';
  if (event.keyCode == 27 || event.keyCode == 8) { // ESC e TAB annulla la parola cercata finora

    if (combobox.options.length > 0) { // seleziona la prima item
      combobox.options[0].selected = true;
    }
    return({parola: '', prosegui: false});

  } else if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 65 && event.keyCode <= 90)) {

    parolaCercata = parola + String.fromCharCode(event.keyCode).toLowerCase();

    if (selezionaItem(combobox, parolaCercata)) {
      parola = parolaCercata;
    }

    return({parola: parola, prosegui: false});

  } else { // tutti gli altri tasti si comportano normalmente

    return({parola: parola, prosegui: true});

  }
}

function controlloEmail(email) {

// verifico presenza di un '@'
  var campi = email.split('@');
  if (campi.length != 2) {
    return(false);
  }

// verifico presenza spazi
  var i = campi[0].indexOf(' ');
  if (i != -1) {
    return(false);
  }
  var i = campi[1].indexOf(' ');
  if (i != -1) {
    return(false);
  }
  
// verifico presenza di almeno un '.'
  var i = campi[1].indexOf('.');
  if (i == -1) {
    return(false);
  }
  
  return true;
}

function valoreRadio(radioButton) {
  for (var i = 0; i < radioButton.length; i ++) {
    if (radioButton[i].checked == true){
      return radioButton[i].value;
      break;
    }
  }
  alert('Errore nella pagina');
}

function valoreCombo(combobox) {
  return combobox.options[combobox.options.selectedIndex].value;
}

function valoreCheck(checkbox) {
  if (checkbox.checked) {
    return checkbox.value;
  } else {
    return "";
  }
}

function verificaIntero(campo, min, max, accettaNull) {

  if (accettaNull && campo.length == 0) {
    return(true);
  }
  // elimino gli zeri iniziali della stringa
  campo = campo.replace(/^0*/,"");
  if (campo == '') {campo = 0;}
  var valore = parseInt(campo, 10);
  if (valore.toString() == 'NaN' || valore.toString() != campo) {
    return(false);
  }
  if (valore < min || valore > max) {
    return(false);
  }
  return(true);
}

function compareData(campo1,campo2) {
/*

 1 = campo1 > campo2
 0 = campo1 = campo2
-1 = campo1 < campo2

-2 = errore campo1
-3 = errore campo2

*/

  if (!verificaData(campo1,false)) {
    return(-2);
  }
  if (!verificaData(campo2,false)) {
    return(-3);
  }

  var campi1 = campo1.split('/');

  if (campi1[2] > 20) {
    campi1[2] = '19' + campi1[2];
  } else {
    campi1[2] = '20' + campi1[2];
  }
  var dataAmericana1 = campi1[1] + '/' + campi1[0] + '/' + campi1[2];
  var dataNew1 = (new Date(dataAmericana1)).getTime();

  var campi2 = campo2.split('/');
  if (campi2[2] > 20) {
    campi2[2] = '19' + campi2[2];
  } else {
    campi2[2] = '20' + campi2[2];
  }
  var dataAmericana2 = campi2[1] + '/' + campi2[0] + '/' + campi2[2];
  var dataNew2 = (new Date(dataAmericana2)).getTime();

  if (dataNew1 > dataNew2) {
    return(1);
  } else if (dataNew1 < dataNew2) {
    return(-1);
  } else {
    return(0);
  }

}

function verificaData(campo,accettaNull) {

  if (accettaNull && campo.length == 0) {
    return(true);
  }

  var campi = campo.split('/');
  if (campi.length != 3) {
    return(false);
  }

// verifico il giorno
  if (verificaIntero(campi[0], 1, 31, false)) {
    var gi = parseInt(campi[0], 10);
    if (gi < 10) campi[0] = '0' + gi;
  } else {
    return(false);
  }
// verifico il mese
  if (verificaIntero(campi[1], 1, 12, false)) {
    var me = parseInt(campi[1], 10);
    if (me < 10) campi[1] = '0' + me;
  } else {
    return(false);
  }
// verifico l'anno
  if (verificaIntero(campi[2], 0, 99, false)) {
    var an = parseInt(campi[2], 10);
    if (an < 10) campi[2] = '0' + an;
  } else {
    return(false);
  }

  var dataAmericana = campi[1] + '/' + campi[0] + '/' + campi[2];
  var dataNew = new Date(dataAmericana);

  var giorno = dataNew.getDate();
  if (giorno < 10) giorno = '0' + giorno;
  var mese = dataNew.getMonth() + 1;
  if (mese < 10) mese = '0' + mese;
  var anno = dataNew.getYear();
  if (anno < 10) anno = '0' + anno;

  if (campi[0] != giorno ||
      campi[1] != mese ||
      campi[2] != anno) {
    return(false);
  }
  return(true);
}

function verificaOra(campo,accettaNull) {

  if (accettaNull && campo.length == 0) {
    return(true);
  }

  var campi = campo.split(':');
  if (campi.length != 2) {
    return(false);
  }

// verifico l'ora
  if (!verificaIntero(campi[0], 0, 23, false)) {
    return(false);
  }

// verifico i minuti
  if (!verificaIntero(campi[1], 0, 59, false)) {
    return(false);
  }
  return(true);
}

function verificaPrimaRiga(lista1) {
  if (lista1.options.length > 0 && lista1.options[0].value == "") {
    lista1.options[0] = null;
  }
}

function toggleItem(lista, text, value) {
var indice = -1;
// cerca l'item
for (var i = 0; i < lista.options.length; i++) {
  if (lista.options[i].value == value) {
    indice = i;
    break;
  }
}
if (indice > -1) {
// elimina
  lista.options[indice] = null;
} else {
// inserisce
  var a = new Option(text, value, false, false);
  lista.options[lista.options.length] = a;
}
}

function selezionaItem(lista, parolaCercata) {
  for (var i = 0; i < lista.options.length; i++) {
    var text1 = lista.options[i].text;
    if (text1.substring(0, parolaCercata.length).toLowerCase() == parolaCercata.toLowerCase()) {
      lista.options[i].selected = true;
      return(true);
      break;
    }
  }
  return(false);
}

function selezionaItemValue(lista, parolaCercata) {
  for (var i = 0; i < lista.options.length; i++) {
    var value = lista.options[i].value;
    if (value.substring(0, parolaCercata.length).toLowerCase() == parolaCercata.toLowerCase()) {
      lista.options[i].selected = true;
      return(true);
      break;
    }
  }
  return(false);
}

function inserisciItem(lista, text, value) {
var a = new Option(text, value, false, false);
lista.options[lista.options.length] = a;
}
function inserisciItemSelected(lista, text, value) {
var a = new Option(text, value, false, true);
lista.options[lista.options.length] = a;
}

function eliminaItem(lista, value) {
var indice = -1;
for (var i = 0; i < lista.options.length; i++) {
  if (lista.options[i].value == value) {
    indice = i;
    break;
  }
}
if (indice > -1) {
  lista.options[indice] = null;
}
}

function sposta(lista1,lista2) {

num = lista1.length;
for(var i = num - 1; i >= 0; i--){
  if (lista1.options[i].selected == true) {
    a = new Option(lista1.options[i].text,lista1.options[i].value,false,false);
    lista2.options[lista2.options.length] = a;
    lista1.options[i] = null;
  }
}
lista1.options.selectedIndex=0;
lista2.options.selectedIndex=0;
}

function spostaItemPrecedente(lista1) {
  var sel = lista1.options.selectedIndex;
  if (sel == 0) {
    return;
  }

  var codice = lista1.options[sel].value;
  var descrizione = lista1.options[sel].text;

  lista1.options[sel].value = lista1.options[sel - 1].value;
  lista1.options[sel].text = lista1.options[sel - 1].text;

  lista1.options[sel - 1].value = codice;
  lista1.options[sel - 1].text = descrizione;

  lista1.options.selectedIndex= sel - 1;
}
function spostaItemSuccessiva(lista1) {
  var sel = lista1.options.selectedIndex;
  if (sel == lista1.options.length - 1) {
    return;
  }

  var codice = lista1.options[sel].value;
  var descrizione = lista1.options[sel].text;

  lista1.options[sel].value = lista1.options[sel + 1].value;
  lista1.options[sel].text = lista1.options[sel + 1].text;

  lista1.options[sel + 1].value = codice;
  lista1.options[sel + 1].text = descrizione;

  lista1.options.selectedIndex= sel + 1;
}

function seleziona(lista) {
for(var i = 0; i < lista.length; i++){
  lista.options[i].selected=true;
}
}

function deseleziona(lista) {
for(var i = 0; i < lista.length; i++){
  lista.options[i].selected=false;
}
}

function impostaFormAction(nome_form, az) {
  trovato = false;
  for (var i = 0; i < document.forms.length; i ++) {
    if (document.forms[i].name == nome_form){
      document.forms[i].action = az;
      trovato = true;
      break;
    }
  }
  if (!trovato) {alert('Errore nella pagina');}
}

function impostaFormTarget(nome_form, target) {
  trovato = false;
  for (var i = 0; i < document.forms.length; i ++) {
    if (document.forms[i].name == nome_form){
      document.forms[i].target = target;
      trovato = true;
      break;
    }
  }
  if (!trovato) {alert('Errore nella pagina');}
}

function impostaMetodo(nome_form, met) {
  trovato = false;
  for (var i = 0; i < document.forms.length; i ++) {
    if (document.forms[i].name == nome_form){
      document.forms[i].method = met;
      trovato = true;
      break;
    }
  }
  if (!trovato) {alert('Errore nella pagina');}
}

function impostaAzione(nome_form, az) {
  trovato = false;
  for (var i = 0; i < document.forms.length; i ++) {
    if (document.forms[i].name == nome_form){
      document.forms[i].azione.value = az;
      document.forms[i].submit();
      trovato = true;
      break;
    }
  }
  if (!trovato) {alert('Errore nella pagina');}
}

function impostaCampi() {

  trovato_form = false;
  for (var i = 0; i < document.forms.length; i ++) {
    if (document.forms[i].name == arguments[0]){
      form_attiva = document.forms[i];
      trovato_form = true;
	break;
    }
  }
  if (trovato_form) {
    for (var j = 0; j < arguments.length / 2; j ++) {
      for (var i = 0; i < form_attiva.elements.length; i ++) {
        if (form_attiva.elements[i].name == arguments[j + 1]){
          form_attiva.elements[i].value = arguments[j + 2];
          break;
        }
      }
    }
  } else {
    alert('Errore nella pagina');
  }
}

function apri(wh,he,titolo, url) {

  var nomeform = (new Date()).getTime();
  var w = window.open("", "win" + nomeform, "directories,status,toolbar,menubar,scrollbars,resizable,left=0,screenX=0,top=0,screenY=0,width=" + wh + ",height=" + he);
  var nomeform = (new Date()).getTime();
  var d = w.document;
  d.write('<HEAD>');
  d.write('<TITLE>' + titolo +'</TITLE>');
  d.write('</HEAD>');
  d.write('<FORM ACTION=' + url + ' method=POST name="' + nomeform + '">');
  

  if (arguments.length == 5) {
    var campi = arguments[4];
    for (var j = 0; j < campi.length / 2; j ++) {
      d.write('<INPUT TYPE="HIDDEN" NAME="' + campi[j * 2 ] + '" VALUE="' + campi[j * 2 + 1] + '">');
    }
  } else {
    for (var j = 2; j < arguments.length / 2; j ++) {
      d.write('<INPUT TYPE="HIDDEN" NAME="' + arguments[j * 2 ] + '" VALUE="' + arguments[j * 2 + 1] + '">');
    }
  }

  d.write('</FORM>');
  d.close();
  d.forms[d.forms.length-1].submit();
  return true;

}

function apri1(props, url) {

/*

left=0,screenX=0,top=0,screenY=0,height=100,width=100

props:
height
left
location
menubar
resizable
screenX
screenY
scrollbars
status
toolbar
top
width

alwaysLowered
alwaysRaised
channelmode
dependent
directories
fullscreen
hotkeys
innerHeight
innerWidth
outerHeight
outerWidth
z-lock

*/

  var w = window.open("", "win", props);
  var nomeform = (new Date()).getTime();
  var d = w.document;
  d.write('<HEAD>');
  d.write('<TITLE></TITLE>');
  d.write('</HEAD>');
  d.write('<FORM ACTION=\'Templates/%20%2B%20url%20%2B%20\' method=POST name="' + nomeform + '">');

  if (arguments.length == 3) {
    var campi = arguments[2];
    for (var j = 0; j < campi.length / 2; j ++) {
      d.write('<INPUT TYPE="HIDDEN" NAME="' + campi[j * 2 ] + '" VALUE="' + campi[j * 2 + 1] + '">');
    }
  } else {
    for (var j = 1; j < arguments.length / 2; j ++) {
      d.write('<INPUT TYPE="HIDDEN" NAME="' + arguments[j * 2 ] + '" VALUE="' + arguments[j * 2 + 1] + '">');
    }
  }

  d.write('</FORM>');
  d.close();
  d.forms[d.forms.length-1].submit();
  return true;

}


function apri2(wh,he,titolo, url) {

  var nomeform = (new Date()).getTime();
  var w = window.open("", "win" + nomeform, "left=10,screenX=10,top=10,screenY=10,width=" + wh + ",height=" + he);
  var nomeform = (new Date()).getTime();
  var d = w.document;
  d.write('<HEAD>');
  d.write('<TITLE>' + titolo +'</TITLE>');
  d.write('</HEAD>');
  d.write('<FORM ACTION=\'Templates/%20%2B%20url%20%2B%20\' method=POST name="' + nomeform + '">');

  d.write('</FORM>');
  d.close();
  d.forms[d.forms.length-1].submit();
  return true;

}





