// JavaScript Document		ULTIMA MODIFICA: 23-10-2003

// Funzioni per il controlo del contentuto dei campi di un form

//tolgo spazi vuoti all'inizio e alla fine della stringa passata
function Trim(stringa) {
		reTrim=/\s+$|^\s+/g;
   		return stringa.replace(reTrim,"");
}

//se la stringa passata ha solo spazi vuoti restituisco true, altrimenti false
//quando passo la stringa vuota mi viene restituito true
function is_str_vuota(str)  {
        str = Trim(str);
        if (str == "") return true;
        return false;
}

//se la stringa passata è un numero restituisco true, altrimenti false
//N.B.: anche -12.3 è un numero => true, stringa vuota => false
function is_numero(str)  {
        str = Trim(str);
        //isNaN restituisce true se il valore passato non è un numero
        if ( (isNaN(str)==true) || (str=="") ) return false;
        return true;
}

//se la stringa passata è composta solo da cifre numeriche restituisco true, altrimenti false
//N.B.: -12.3 => false, stringa vuota => true
function solo_numeri(str)  {
		str = Trim(str);
        var re = /[0-9]/g;
        //tolgo tutti i numeri
        str=str.replace(re,"");
        //se è rimasta la stringa vuota allora c'erano solo numeri
        if ( str == "" ) return true;
        return false;

}

//se la stringa passata è composta solo da lettere ' \s restituisco true, altrimenti false
//stringa vuota => true
function solo_lettere(str)  {
		str = Trim(str);
        var re = /^[a-zA-Zìùòàèé]{1}[a-zA-Zìùòàèé'\s]*/g;
        //tolgo tutte le lettere e gli spazi
        str=str.replace(re,"");
        //se è rimasta la stringa vuota allora c'erano solo lettere e spazi
        if ( str == "" ) return true;
        return false;
}

//se la stringa passata è composta solo da lettere e numeri restituisco true, altrimenti false
//stringa vuota => true
//N.B. La prima lettera deve essere una lettera o un numero, poi posso avere anche ' e spazi
function solo_lettere_e_numeri(str)  {
		str = Trim(str);
		var re = /^[a-zA-Zìùòàèé0-9]{1}[a-zA-Zìùòàèé'0-9\s]*/g;
		//tolgo tutte le lettere, numeri e gli spazi
		str=str.replace(re,"");
        //se è rimasta la stringa vuota allora c'erano solo lettere, numeri e spazi
        if ( str == "" ) return true;
        return false;
}

//se la stringa passata è composta solo da lettere, numeri, ' \s . restituisco true, altrimenti false
//stringa vuota => true
function solo_char_address(str)  {
		str = Trim(str);
        var re = /^[a-zA-Zìùòàèé0-9]{1}[a-zA-Zìùòàèé'0-9\s.]*/g;
        //tolgo tutte le lettere, numeri e gli spazi
        str=str.replace(re,"");
        //se è rimasta la stringa vuota allora c'erano solo lettere, numeri e spazi
        if ( str == "" ) return true;
        return false;
}

//se la stringa inizia con almeno n lettere restituisco true, altrimenti false
function inizia_n_lettere(str,n)  {
        str = Trim(str);
        var espressione = "^[a-zA-Zìùòàèé]{" + n + ",}";
        var reg = new RegExp (espressione);
        //se la stringa inizia con n lettere
        if (reg.test(str)) return true;
        return false;
}

//se la stringa contiene almeno n lettere consecutive restituisco true, altrimenti false
function contiene_n_lettere(str,n)  {
        str = Trim(str);
        var espressione = "[a-zA-Zìùòàèé]{" + n + ",}";
        var reg = new RegExp (espressione);
        //se la stringa contiene n lettere
        if (reg.test(str)) return true;
        return false;
}

//se la stringa inizia con almeno n numeri restituisco true, altrimenti false
function inizia_n_numeri(str,n)  {
		str = Trim(str);
        var espressione = "^[0-9]{" + n + ",}";
        var reg = new RegExp (espressione);
        if (reg.test(str)) return true;
        return false;
}

//per il controllo del CAP
//se la stringa è composta almeno da 5 caratteri restituisco true, altrimenti false
function check_cap(str)  {
		str = Trim(str);
        var re = /[\s]{2,}/g; //se ci sono due o piu spazi consecutivi
        str=str.replace(re," "); //li sostituisco con uno spazio solo
        var reg = /^[0-9a-zA-Z\s]{5,}$/g;
        //se la stringa inizia con n lettere
        if (reg.test(str)) return true;
        return false;
}

//se la stringa passata è lunga 9 caratteri ed è composta solo da lettere e numeri restituisco true (senza ' o spazi), altrimenti false
//stringa vuota => true
function check_documento(str)  {
		str = Trim(str);
        if ( str == "" ) return true;
        var re = /^[a-zA-Z0-9]{9,}[a-zA-Z0-9]*/g;
        //tolgo tutte le lettere e numeri
        str=str.replace(re,"");
        //se è rimasta la stringa vuota allora c'erano solo lettere e numeri
        if ( str == "" ) return true;
        return false;
}

//per il controllo del sms
//se la stringa è composta da 10 numeri restituisco true, altrimenti false
//stringa vuota => true
function check_sms(str)  {
		str = Trim(str);
        if ( str == "" ) return true;
        var espressione = "^[0-9]{10}$";
        var reg = new RegExp (espressione);
        if (reg.test(str)) return true;
        return false;
}

//per il controllo dell'email
//string vuota => false
function check_email(str)  {
		str = Trim(str);
        var espressione = "^[a-zA-Z0-9\-]{1}[a-zA-Z0-9\.\-]*[a-zA-Z0-9\-]{1}[@]{1}[a-zA-Z0-9\-]{1}[a-zA-Z0-9\.\-]*[a-zA-Z0-9\-]{1}[\.]{1}[a-z]{2,4}$";
        var reg = new RegExp (espressione);
        if (reg.test(str)) return true;
        return false;
}
