/* funzioni */

// 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 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, "Attenzione, 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){
	//alert('checkSecutirty');
	//var pattern = /\*|\;|\,|\.|\=|\>|\<|\(|\)|script|table|or|and|not|union|select|drop|create|from|alter|where|having|insert|update|into|like/g;
	var pattern = /(\-\-)|\'\'|\'|\.asp|\.js|\.inc|\<|\>|script|img|table|select|drop|create|update|where|having|like|shutdown| or | and | not | union  | into | alter | from | insert |((\%3C)|<)[^\n]+((\%3E)|>)/i;
		if (campo.value.match(pattern)){
			return avvisaCampo(campo,"Attenzione!\nIl campo contiene i seguenti caratteri/strighe [" + campo.value.match(pattern) + "] che, per motivi di sicurezza dell'applicazione, non sono ammessi.");
	 	}
		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) {
//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) && checkSecurity(form.passwd));
			

}

// controlla i dati di un UTENTE chesi registra sul sito  
function checkFormUtenteOnline(form) {
//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) && checkSecurity(form.passwd_utente) && checkSecurity(form.passwd) && checkSecurity(form.passwdbis));

}

// controlla i dati di un CLIENTE che si registra sul sito tramite la scheda di regostrazione (registra.asp) 
function checkFormClienteOnline(form) {
	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");
	};
	// 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) && checkSecurity(form.Nome) && checkSecurity(form.citta) && checkSecurity(form.indirizzo) && checkSecurity(form.CAP) && checkSecurity(form.Telefono) && checkSecurity(form.Cellulare) && checkSecurity(form.Email) && checkSecurity(form.NoteCliente));
	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) && checkSecurity(form.Nome) && checkSecurity(form.citta) && checkSecurity(form.indirizzo) && checkSecurity(form.CAP) && checkSecurity(form.Telefono) && checkSecurity(form.Cellulare) && checkSecurity(form.Email) && checkSecurity(form.NoteCliente));

}

// 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) {
	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) && checkSecurity(form.Nome) && checkSecurity(form.citta) && checkSecurity(form.indirizzo) && checkSecurity(form.CAP) && checkSecurity(form.Telefono) && checkSecurity(form.Cellulare) && checkSecurity(form.Email) && checkSecurity(form.NoteCliente));
	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;
}

	




