var ie5 = (document.getElementsByTagName && document.all) ? true : false;
var annocorrente = 2005;
var locVer = '$Name: a2008_1_011 $';

if (typeof(checkVer) == "undefined") {
    windows.status = "Funzione checkVer() non definita.";
} else {
    checkVer(globVer, locVer);
}

function handledelconfirm() {
    var myforms = document.forms;
    if (myforms == null) return;
    for (var i = 0; i < myforms.length; i++) {
        myforms[i].onsubmit=delconf;
    }
}

function disableAllPageButtons() {
  var myforms = document.forms;
  if (myforms == null) return;
  for (var i = 0; i < myforms.length; i++) {
    disableAllButtons(myforms[i]);
  }
}

function disableAllButtons(form) {
  var i;
  var elem;
  for (i = 0; i < form.elements.length; i++) {
    elem = form.elements[i];
    if (typeof(elem) != 'undefined') {
      if (elem.type == 'submit') {
          elem.disabled = true;
      }
    }
  }
}

function delconf(e) {
  var f;
  if (ie5) {
    f = event.srcElement;
  } else {
    f = e.target;
  }
  if (typeof(f.FormAction) == "undefined") return;
  if (f.FormAction.value == 'delete') { 
    if (!confirm('Sei sicuro di volere cancellare questo record?')) 
      return false; 
  } else if (f.FormAction.value == 'insert') {
      if (!confirm('Sei sicuro di voler inserire il record?')) {
          return false;
      }
  } else if (f.FormAction.value == 'update') {
      if (!confirm('Sei sicuro di voler aggiornare il record?')) {
          return false;
      }
  } else if (f.FormAction.value == 'search') {
    if (f.name == 'RicercaIstituti') {
      if (!checkSearchIstituti(f)) {return false;}
    }
  }
  disableAllPageButtons();
}

function toUpperFormFields(f) {
  var i;
  var elem;
  for (i = 0; i < f.elements.length; i++) {
    elem = f.elements[i];
    if ((elem.type == 'text') && (elem.name != 'RIFERIMENTO') && (elem.name != 'PASSWORD') && (elem.name != 'EMAIL') && (elem.name != 'sEMAIL') && (elem.name != 'SITO')) {
      elem.value = elem.value.toUpperCase();
    }
  }
}

function checkSearchIstituti(form) {
    if (typeof(form) == 'undefined') return true;
    toUpperFormFields(form);
    var bGRADO = isListSelected(form, 'sGRADO');
    var bCOSCUO = isFldFilled(form, 'sCOSCUO');
    var bNOMSCU = isFldFilled(form, 'sNOMSCU');
    var bLOCSCU = isFldFilled(form, 'sLOCSCU');
    var oCoscuo =  eval('document.' + form.name + '.sCOSCUO');
    var oNomscu =  eval('document.' + form.name + '.sNOMSCU');
    var oLocscu =  eval('document.' + form.name + '.sLOCSCU');
    oCoscuo.value = oCoscuo.value.Trim();
    if ((oCoscuo.value.length > 0) && (oCoscuo.value.length < 2)) {
        alert("Specificare almeno due caratteri");
        oCoscuo.focus();
        oCoscuo.select();
        return false;
    }
    if ((oNomscu.value.length > 0) && (oNomscu.value.length < 3)) {
        alert("Specificare almeno tre caratteri");
        oNomscu.focus();
        oNomscu.select();
        return false;
    }
    if ((oLocscu.value.length > 0) && (oLocscu.value.length < 3)) {
        alert("Specificare almeno tre caratteri");
        oLocscu.focus();
        oLocscu.select();
        return false;
    }
    if (bCOSCUO && (!bGRADO && !bNOMSCU && !bLOCSCU)) {
        if (oCoscuo.value.length == 2) {
            alert("Specificare in aggiunta almeno il grado od un altro parametro");
            return false;
        }
    }
    if (!bGRADO && !bCOSCUO && !bNOMSCU && !bLOCSCU) {
            alert("Criteri di ricerca insufficienti.\nSpecificare almeno un parametro.");
            return false;
    }
    if ((bGRADO && (!bCOSCUO && !bNOMSCU && !bLOCSCU)) ||
        (bLOCSCU && (!bGRADO && !bCOSCUO && !bNOMSCU)) ||
        ((oCoscuo.value.length < 10) && (!bNOMSCU && !bLOCSCU && !bGRADO))
       ) {
            alert("Criteri di ricerca insufficienti.\nSpecificare almeno due parametri.");
            return false;
        }
    return checkTipscuGrado(form);
}

function checkTipscuGrado(form) {
    if (typeof(form) == 'undefined') return true;
    var COSCUOFldName = 'COSCUO';
    var GRADOFldName = 'GRADO';
    if (form.name == 'RicercaIstituti') {
        COSCUOFldName = 's' + COSCUOFldName;
        GRADOFldName = 's' + GRADOFldName;
    }
    var coscuoObj = eval('form.' + COSCUOFldName);
    if (typeof(coscuoObj) == 'undefined') return false;
    var tipscu = coscuoObj.value.substr(2,2);
    var gradoObj = eval('form.' + GRADOFldName);
    if (typeof(gradoObj) != 'undefined') {
        var idx_grado = gradoObj.selectedIndex;
        var grado = gradoObj.options[idx_grado].value;
        if (grado != '') {
            if ((tipscu != '') && (
            ((grado == 0) && (tipscu != 'EE') && (tipscu != '1E')) || 
            ((grado == 1) && (tipscu != 'MM') && (tipscu != '1M')) ||
            ((grado == 2) && (
            ((tipscu == 'MM') || (tipscu == '1M')) ||
            ((tipscu == 'EE') || (tipscu == '1E')))))) {
                alert('Attenzione!\nIl Codice Ministeriale inserito non è compatibile con il grado scuola selezionato dalla tendina');
                coscuoObj.focus();
                coscuoObj.select();
                return false;
            }
        }
    }
    return true;
}

function isRqrdFldFilled(form, fld, fldname) {
    var fldobj;
    if (!isFldFilled(form, fld)) {
        alert('Attenzione!\nIl campo \"' + fldname + '\" è obbligatorio.');
        fldobj = eval('document.' + form.name + '.' + fld);
        fldobj.focus();
        return false;
    }
    return true;
}

function isFldFilled(form, fld) {
    var fldobj =  eval('document.' + form.name + '.' + fld);
    var len = 0;
    if (typeof(fldobj) != "undefined") {
        len = fldobj.value.length;
        if (len < 1) return false;
    }
    return true;
}

function isListSelected(form, fld) {
  var fldobj =  eval('document.' + form.name + '.' + fld);
  var idx = fldobj.selectedIndex;
  if (idx == 0) {
    return false;
  }
  return true;
}

function isFldSelected(form, fld, fldname) {
  var fldobj =  eval('document.' + form.name + '.' + fld);
  var idx = fldobj.selectedIndex;
  if (idx == 0) {
    alert('Attenzione!\nSelezionare un valore dalla tendina \"' + fldname + '\"');
    fldobj.focus();
    return false;
  }
  return true;
}

function checkCoscuo(fldObj) {
    if (typeof(fldObj) == 'undefined') return false;
    var newcoscuo = fldObj.value;
    var sede = '';
    if (fldObj.name == 'COSEDE') sede = 'della sede ';
    var regExpObj = /([A-Z]{2})([1A-Z]{1}[A-Z]{1})([0-9A-Z]{5})([A-Z0-9]{1})/;
    if (!regExpObj.test(newcoscuo)) {
        alert('Il codice ministeriale ' + sede + 'inserito non è valido');
        fldObj.focus();
        fldObj.select();
        return false;
    }
    return true;
}

function checkISBN(form) {
    formObj = eval('document.' + form.name);
    var isbnObj = form.COD1;
    if (!ValidaIsbn(isbnObj.value)) {
        isbnObj.focus();
        isbnObj.select();
        return false;
    }
    return true;
}

function isNumeric(value) {
    var objRegExp  = /^(\d*)$/;
    return objRegExp.test(value);
}

function ValidaIsbn(isbn, type) {
    var codname;
    if (type == 'CODOPE') 
        codname = 'Fondamentale';
    else if (type == 'VEE')
        codname = 'Vecchia Edizione';
    else if ((type <= 5) && (type > 1))
        codname = type;
    else
        codname = 'ISBN';
    var verificaisbn = VerificaIsbn(isbn, type);
    if (!verificaisbn) {
        return false;
    }
    var somma = SommaValori(isbn);
    var resto = somma%11;
    if (resto != 0) {
        alert('Attenzione!\nIl codice ' + codname + ' inserito non è un codice ISBN valido');
        return false;
    }
    return true;
}

function VerificaIsbn(isbn, type) {
    var codname;
    if (type == 'CODOPE')
        codname = 'Fondamentale';
    else if (type == 'VEE')
        codname = 'Vecchia Edizione';
    else if ((type <= 5) && (type > 1))
        codname = type;
    else
        codname = 'ISBN';

    if (typeof(isbn) == "undefined") return false;
    var lunghezza = isbn.length;
    var cifracorrente;
    if (lunghezza != 10) {
        alert ('Attenzione!\nIl codice ' + codname + ' deve essere di 10 cifre');
        return false;
    }
    for (var i = 0; i < lunghezza; i++) {
        cifracorrente = isbn.charAt(i);
        if (isNaN(parseInt(cifracorrente))) {
            if (i < (lunghezza - 1)) {
                alert ('Attenzione!\nIl codice ' + codname + ' deve essere numerico\n(eventualmente l\'ultima cifra può essere una \'X\')');
                return false;
            } else {
                if (cifracorrente.toUpperCase() != 'X') {
                    alert ('Attenzione!\nL\'ultima cifra del codice ' + codname + ' deve essere numerica od uguale ad \'X\'');
                    return false;
                }
            }
        }
    }
    return true;
}

function SommaValori(isbn) {
    var peso;
    var cifrapesata = 0;
    var sommapesata = 0;
    var resto;
    var cifracorrente;
    var verificaisbn = VerificaIsbn(isbn);
    if (!verificaisbn) {
        return 0;
    }
    for (var i = 0; i < 10; i++) {
        cifracorrente = isbn.charAt(i);
        if (cifracorrente.toUpperCase() == 'X') {
            cifracorrente = 10;
        }
        peso = 10 - i;
        cifrapesata = peso * cifracorrente;
        sommapesata += cifrapesata;
    }
    return sommapesata;
}

function SelectAll() {
    for (var f = 0; f < document.forms.length; f++) {
        if ((document.forms[f].name == 'Adottato') || 
            (document.forms[f].name == 'SPOSTA')){
            for (var i=0;i<document.forms[f].elements.length;i++) {
                var e=document.forms[f].elements[i];
                if (e.name != "ESCLUDI_RICERCA") {e.checked=!e.checked};
            }
        }
    }
}

function cleanVer (oText, server) { //NOSHORT
    if (typeof(oText) == "undefined" || !oText)
        return;
    var vers = new String(oText.match(/ (.*) /g));
    vers = 'v.&nbsp;' + vers.substr(7);
    vers = vers.replace(/_/g,'.');
    if (typeof(server) != "undefined") {
        if (server != '') {
            vers = vers.concat("&nbsp;on&nbsp;" + server);
        }
    }
    return vers;
}

function showVer () { //NOSHORT
    var oDiv = document.getElementById("ver");
    var oText = document.createElement('font');
    oText.className = 'text';
    oText.innerHTML = "adozioni&nbsp;on-line";
    oDiv.appendChild(oText);
    var oVer = document.createElement('font');
    oVer.className = 'version';
    oVer.innerHTML = cleanVer(globVer, server);
    oDiv.appendChild(oVer);
}

function checkVer(v1, v2) {
    var tag1 = new String(v1.match(/ (.*) /g));
    var tag2 = new String(v2.match(/ (.*) /g));
    tag1 = new String(tag1.match(/\S/g));
    tag2 = new String(tag2.match(/\S/g));
    if ((tag1 != 'null') && (tag2 != 'null')) {
        if (v1 != v2) {
            alert("Attenzione!\nE' stata rilevata un'incongruenza tra " +
                  "le versioni.\nSi consiglia di far ricaricare la pagina " +
                  "tramite la pressione del tasto 'Aggiorna' " +
                  "ed eventualmente effettuare l'eliminazione " +
                  "dei file temporanei del vostro browser.");
        }
    }
}

function printPage() {
    if (window.print) {
        window.print();
    } else {
        alert("Spiacente, il browser non supporta questa funzione.\nCliccare su File e quindi su Stampa.");
    }
} 

function Trim() {
    return this.replace(/\s+$|^\s+/g,"");
}

String.prototype.Trim=Trim;
