/* funzioni */

function MM_openBrWindow(theURL,winName,features) { 
  window.open(theURL,winName,features);
}

// thumbnail grande 
function thumbnail_gr(image) {
        var MaxWidth = 500; // Larghezza massima dopo il quale l'immagine viene ridimensionata
        var newWidth = image.width;
        //alert(newWidth );
        if (newWidth > 500) {
            newWidth = 500; 
        }
        //alert(newWidth );
        return(newWidth);
}

function IEminore7(){
    if (($.browser.msie) && ($.browser.version.substr(0,1)<7))
        return true;
    else    
        return false;
}


function avvisa(inputField, mess){
    alert(mess);
    return false;
}

function avvisaCampo(inputField, mess){

    if (inputField != null && inputField.name != '') {
        alert('[campo: ' + inputField.name + ']\n\n' + mess);
        inputField.focus();
    }
    else
        alert(mess);
    
    return false;
}

function checkVuoto(inputField) {
    return (inputField.value == "" || inputField.value == null);
}

function checkSpazi(inputField) {
    if (!(trim(inputField.value) == inputField.value))  {
        return avvisaCampo(inputField, "Il campo contiene degli spazi vuoti all\'inizio oppure alla fine");
    }
    return true;
}

function checkNoSpazi(campo){
    var pattern = /[\s]/g;

        if (campo.value.match(pattern)){
            //alert(campo.value.match(pattern));
            return avvisaCampo(campo,"Il campo non deve contenere spazi");
        }
        return true;
}

function trim(stringa){
    if(stringa.charAt(stringa.length-1) == " "){
        stringa = stringa.substring(0,stringa.length-1);
        return trim(stringa);
    } else 
        return trimInizio(stringa);
    
}

function trimInizio(stringa){
    if(stringa.charAt(0) == " "){
        stringa = stringa.substring(1,stringa.length);
        return trim(stringa);
    } else  
        return stringa;
    
}   

function stringaContiene(sottostringa, stringa){   
    return (stringa.search(sottostringa) != -1);      
}


function checkNonAmmessi(campo){   
    var stringa = campo.value;
    if (stringa.match ( /\\"/))  {
        alert (" Nel campo sono stati utilizzati alcuni caratteri non ammessi: \\  \" ");
        return false;
    }
    else 
        return true;
}

function checkSecurity(campo, sql_injection_pattern){
        if (campo.value.match(sql_injection_pattern)){
            return avvisaCampo(campo, msg_sql_injection_ko + campo.value.match(sql_injection_pattern) );
        }
        return true;
}


function checkTestuale(campo){
    var pattern = /^[a-zA-Zàèéìòù\' ]{0,30}$/;
        if (!campo.value.match(pattern)){
            //alert(campo.value.match(pattern));
            return avvisaCampo(campo,"Attenzione!\nSono ammesse solo lettere, spazi e l'apostrofo");
        }
        return true;
}

function checkIndirizzo(campo){
    var pattern = /^[a-zA-Z\d\/\-\_\(\)\'\.\, ]{0,80}$/;

        if (!campo.value.match(pattern)){
            //alert(campo.value.match(pattern));
            return avvisaCampo(campo,"Attenzione!\nSono ammesse solo lettere, spazi e i seguenti caratteri speciali: / - _ ( ) ' . ,");
        }
        return true;
}

function checkMail(campo){
    var pattern = /^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/g;

        if (!checkNoSpazi(campo) || !campo.value.match(pattern)){
            //alert(campo.value.match(pattern));
            return avvisaCampo(campo,"Attenzione!\nInserire un indirizzo email valido");
        }
        return true;
}


function checkCAP(campo){
    var pattern = /\d{5}/;
    if (!checkVuoto(campo))
        if (!campo.value.match(pattern)){
            //alert(campo.value.match(pattern));
            return avvisaCampo(campo,"Attenzione!\nInserire un CAP valido di 5 cifre");
        };
    return true;
}



function checkTelefono(campo){
    var pattern = /^(\(?\+?[0-9]{2,2}\)?)?[-. \/]?([0-9]{3,4})?[-. \/]?[0-9]{4,20}$/;
    if (!checkVuoto(campo))
        if (!campo.value.match(pattern)){
            //alert(campo.value.match(pattern));
            return avvisaCampo(campo,"Attenzione!\nInserire un numero di telefono valido");
        };
    return true;
}

function checkUserName(campo){
    //var pattern = /[a-zA-Z0-9_-.]{4,16}/;
    var pattern = /^[a-zA-Z\d\@\.\-\_]{1,16}$/;

        if (!campo.value.match(pattern)){
            //alert(campo.value.match(pattern));
            return avvisaCampo(campo,"Attenzione!\nNon sono ammessi spazi e caratteri speciali ad eccezione dei seguenti: . @ - _ ");
        }
        return true;
}


function checkPassword(campo){
    var pattern = /[\;\.\,\: ]/;

        if (campo.value.match(pattern)){
            //alert(campo.value.match(pattern));
            return avvisaCampo(campo,"Attenzione!\nNon sono ammessi spazi e segni di punteggiatura");
        }
        return true;
}


function checkNumero(campo, valoreprecedente){
    var stringa = campo.value;
    var importo = parseInt(stringa);
    //alert(importo);
    checkSpazi(campo);
    if (isNaN(importo)) {
        alert ("Il valore inserito ("+ stringa + ") non è un valore valido. Inserire un numero intero maggiore o uguale a zero.");
        campo.value= valoreprecedente;
        return false;
    }
    else if (stringaContiene(",", stringa)) {
        alert ("Il valore inserito ("+ stringa + ") non è un valore valido: contiene virgole. Inserire un numero intero maggiore o uguale a zero.");
        campo.value= valoreprecedente;
        return false;
    }
    else if (importo<0 ) {
        alert ("Il valore inserito ("+ stringa + ") non è un valore valido: è un numero negativo. Inserire un numero intero maggiore o uguale a zero.");
        campo.value= valoreprecedente;
        return false;
    }
    
    else{
        campo.value = Math.ceil(importo);
        return true;
    }
}

    
function checkNomeFile(campo){
    var stringa = campo.value;
    //alert(stringa);
    checkSpazi(campo);
    if (campo == "") 
        return avvisaCampo(campo, "Specificare un nome per l'archivio da storicizzare.");
    
    if (stringaContiene("\/", stringa)) 
        return avvisaCampo(campo, "Il nome inserito ("+ stringa + ") non è un nome valido: contiene il carattere \/ non ammesso per i nomi di file.");

    if (stringaContiene("\\\\", stringa)) 
        return avvisaCampo(campo, "Il nome inserito ("+ stringa + ") non è un nome valido: contiene il carattere \\ non ammesso per i nomi di file.");
    
    return true;
}

// controlla i dati della form di login  
function checkFormLogin(form, pattern) {
//alert ("pippo");
    if(form.login.value == "") 
        return avvisaCampo(form.login, "Inserire il login");
        
    if(form.passwd.value == "") 
        return avvisaCampo(form.passwd, "Scegliere la propria password ");  
    
    return (checkUserName(form.login) && checkPassword(form.passwd) && checkSecurity(form.login, pattern) && checkSecurity(form.passwd, pattern));
            

}

// controlla i dati di un UTENTE chesi registra sul sito  
function checkFormUtenteOnline(form, pattern) {
//alert ("pippo");
    if(form.login.value == "") 
        return avvisaCampo(form.login, "Inserire il login");
    
    if(form.passwd_utente.value == "") 
        return avvisaCampo(form.passwd_utente, "Inserire il codice di attivazione");    
    
    if(form.passwd.value == "") 
        return avvisaCampo(form.passwd, "Inserire una password a piacere"); 
    
    if(form.passwdbis.value == "") 
        return avvisaCampo(form.passwdbis, "Ripetere la password a piacere");   
    
    if(!(form.passwd.value == form.passwdbis.value)) 
        return avvisaCampo(form.passwdbis, "La password ripetuta è diversa da quella scelta. Ripetere correttamente la password."); 
    
    
    return (checkUserName(form.login) && checkPassword(form.passwd_utente) && checkPassword(form.passwd) && checkPassword(form.passwdbis) && checkSecurity(form.login, pattern) && checkSecurity(form.passwd_utente, pattern) && checkSecurity(form.passwd, pattern) && checkSecurity(form.passwdbis, pattern));

}

// controlla i dati di un CLIENTE che si registra sul sito tramite la scheda di regostrazione (registra.asp) 
function checkFormClienteOnline(form, pattern) {
    /*
    if(form.Cognome.value == "") {
        return avvisaCampo(form.Cognome, "Inserire il proprio Cognome");
    };
    if (form.Nome.value == "") {
        return avvisaCampo(form.Nome, "Inserire il proprio Nome");
    };
    if (form.Email.value == "") {
        return avvisaCampo(form.Email, "Inserire il proprio indirizzo email");
    };
    return(checkTestuale(form.Cognome) && checkTestuale(form.Nome) && checkTestuale(form.citta) && checkIndirizzo(form.indirizzo) && checkCAP(form.CAP) && checkTelefono(form.Telefono) && checkTelefono(form.Cellulare) && checkMail(form.Email) && checkSecurity(form.Cognome, pattern) && checkSecurity(form.Nome, pattern) && checkSecurity(form.citta, pattern) && checkSecurity(form.indirizzo, pattern) && checkSecurity(form.CAP, pattern) && checkSecurity(form.Telefono, pattern) && checkSecurity(form.Cellulare, pattern) && checkSecurity(form.Email, pattern) && checkSecurity(form.NoteCliente, pattern));
    */

    // Controlla tutti i campi con checkSecurity()
    return(checkSecurity(form.Cognome, pattern) && checkSecurity(form.Nome, pattern) && checkSecurity(form.citta, pattern) && checkSecurity(form.indirizzo, pattern) && checkSecurity(form.CAP, pattern) && checkSecurity(form.Telefono, pattern) && checkSecurity(form.Cellulare, pattern) && checkSecurity(form.Email, pattern) && checkSecurity(form.NoteCliente, pattern));

}


// controlla i dati di un CLIENTE nell'inserimento e nella modifica 
function checkFormCliente(form) {
    if(form.Cognome.value == "") {
        alert("Inserire il Cognome del cliente");
        return false;
    }
    if (form.Nome.value == "") {
        alert("Inserire il Nome del cliente");
        return false;
    }
    if ((form.DataNascita.value == "") || (form.DataNascita.value == "gg/mm/aaaa")) {
        alert("Inserire la Data di Nascita del cliente");
        return false;
    }
    return true;

}

// controlla i dati di un CLIENTE che si registra sul sito tramite la scheda di regostrazione (registra.asp) 
function checkFormUtenteNewsletter(form, pattern) {
    if (form.Email.value == "") {
        return avvisaCampo(form.Email, "Inserire il proprio indirizzo email");
    };

    // Controlla tutti i campi anche con checkSecurity()
    //alert (checkTestuale(form.Cognome) && checkTestuale(form.Nome) && checkTestuale(form.citta) && checkIndirizzo(form.indirizzo) && checkCAP(form.CAP) && checkTelefono(form.Telefono) && checkTelefono(form.Cellulare) && checkMail(form.Email) && checkSecurity(form.Cognome, pattern) && checkSecurity(form.Nome, pattern) && checkSecurity(form.citta, pattern) && checkSecurity(form.indirizzo, pattern) && checkSecurity(form.CAP, pattern) && checkSecurity(form.Telefono, pattern) && checkSecurity(form.Cellulare, pattern) && checkSecurity(form.Email, pattern) && checkSecurity(form.NoteCliente, pattern));
    return( checkMail(form.Email) );

}


// controlla i dati di una SCHEDA nell'inserimento e nella modifica 
function checkFormSchedaMod(form) {
    if(form.titolo.value == "") {
        avvisaCampo(form.titolo, "Inserire il titolo");
        return false;
    }
    else return (checkData(form.datainserimento.value) || checkData(form.datascadenza.value));

}

function checkFormSchedaIns(form) {
    if(form.titolo.value == "") {
        avvisaCampo(form.titolo, "Inserire il titolo");
        return false;
    }
    else return checkData(form.datascadenza.value);

}



function checkData(data){
    var dataUtente = data.value;
    var giorno = dataUtente.substring(0,2);
    var mese = dataUtente.substring(3,5);
    var anno = dataUtente.substring(6,10);
    dataUtente = mese+"/"+giorno+"/"+anno;
    var utente1 = Date.parse(dataUtente);
    var ngiorno = parseInt(levaZeri(giorno));
    var nmese = parseInt(levaZeri(mese));
    var nanno = parseInt(anno);
    var resto = nanno % 4;
    var pattern = /\d{2}\/\d{2}\/\d{4}/g;
    //alert(data.value);

        if (!data.value.match(pattern)){
            return avvisaCampo(data,"Attenzione: il formato corretto della data e' gg/mm/aaaa.");
        }
        if (ngiorno > 31 || ngiorno == 0 || nmese > 12 || nmese == 0){
            return avvisaCampo(data,"Attenzione: il formato della data non e' corretto.");
            }
        if ((nmese == 11 && ngiorno > 30) || (nmese == 9 && ngiorno > 30) || (nmese == 6 && ngiorno > 30) || (nmese == 2 && ngiorno > 29) || (nmese == 4 && ngiorno > 30)){
            return avvisaCampo(data,"Attenzione: il formato della data non e' corretto.");
            }
        if (nmese == 2 && ngiorno > 28 && resto != 0){
            return avvisaCampo(data,"Attenzione: il " + anno + " non è bisestile.");
            }
        return true;
}

function eta(data){
        var oggi = new Date();
        annoOggi = oggi.getYear();
        //alert(annoOggi);
        var dataUtente = data.value;
        var anno = dataUtente.substring(6,10);
        var nanno = parseInt(anno);
        //alert(nanno);
        var eta = annoOggi - nanno;
    return eta;
}

function oggi(){

    var oggi2 = new Date();
    oggi2 = (oggi2.getDate())+"/"+(oggi2.getMonth()+1)+"/"+oggi2.getFullYear();
    return oggi2;
}

    




