
function indirizzoEmailValido(indirizzo) {
	if (window.RegExp) {
		var nonvalido = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var valido = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
		var regnv = new RegExp(nonvalido);
		var regv = new RegExp(valido);
		if (!regnv.test(indirizzo) && regv.test(indirizzo))
	  		return true;
		return false;
	} else {
		if(indirizzo.indexOf("@") >= 0)
  			return true;
		return false;
	}
}

function ControllaCF(cf)
{
	var validi, i, s, set1, set2, setpari, setdisp;
	if( cf == '' )  return '';
	cf = cf.toUpperCase();
	if( cf.length != 16 )
		return "La lunghezza del codice fiscale non è\n" + "corretta: il codice fiscale dovrebbe essere lungo\n" + "esattamente 16 caratteri.\n";
	validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	for( i = 0; i < 16; i++ ){
		if( validi.indexOf( cf.charAt(i) ) == -1 )
			return "Il codice fiscale contiene un carattere non valido `" + cf.charAt(i) + "'.\nI caratteri validi sono le lettere e le cifre.\n";
	}
	set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
	s = 0;
	for( i = 1; i <= 13; i += 2 )
		s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
	for( i = 0; i <= 14; i += 2 )
		s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
	if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
		return "Il codice fiscale non e' corretto:\n" + "il codice di controllo non corrisponde.\n";
	return "";
}


function ControllaPIVA(pi) {
	if( pi == '' )  return '';
	if( pi.length != 11 )
		return "La lunghezza della partita IVA non è\n" + "corretta: la partita IVA dovrebbe essere lunga\n" + "esattamente 11 caratteri.\n";
	validi = "0123456789";
	for( i = 0; i < 11; i++ ){
		if( validi.indexOf( pi.charAt(i) ) == -1 )
			return "La partita IVA contiene un carattere non valido `" + pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n";
	}
	s = 0;
	for( i = 0; i <= 9; i += 2 )
		s += pi.charCodeAt(i) - '0'.charCodeAt(0);
	for( i = 1; i <= 9; i += 2 ){
		c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
		if( c > 9 )  c = c - 9;
		s += c;
	}
	if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
		return "La partita IVA non è valida:\n" + "il codice di controllo non corrisponde.\n";
	return '';
}

function contatore(val, val2, max_descrizione) {
	
	with(document.getElementById(val)) {		
		
		if (document.getElementById(val2).value.length > max_descrizione) {
			document.getElementById(val2).value = document.getElementById(val2).value.substring(0,max_descrizione);
			rest_descrizione = 0;
		} else {
			rest_descrizione = max_descrizione - document.getElementById(val2).value.length;
		}
		num_descrizione.value = rest_descrizione;
	}
}

function back_arr() {
	var isNN,isIE;
	if (navigator.appName == "Netscape"){
		window.history.go(-1);
		return false;
		//alert("Netscape");
	}
			
	if (navigator.appName == "Microsoft Internet Explorer"){
		window.history.go(-1);
		return false;
		//alert("Microsoft"); 
	}
}

function cancella() {
	messaggio = window.confirm("Sei sicuro di voler cencellare l'elemento?");
	return messaggio;
}

function sel(id) {
	if (!document.getElementById) return;
	selDiv = document.getElementById(id);
	selDiv.style.backgroundColor = "#FFC";
}

function des(id) {
	if (!document.getElementById) return;
	selDiv = document.getElementById(id);
	selDiv.style.backgroundColor = "#FFFFFF";
}










function controllo_ricerca_lat(){
	
	with(document.form_ricerca_lat) {					
		var Alpha3 = new RegExp("(^[0-9]*$)");
		
		if (!Alpha3.test(prezzo_min.value)) {				
			alert("Errore: il campo Prezzo Min deve contenere solo caratteri numerici");
			prezzo_min.focus();
			return false;
		}
		
		if (!Alpha3.test(prezzo_max.value)) {				
			alert("Errore: il campo Prezzo Max deve contenere solo caratteri numerici");
			prezzo_max.focus();
			return false;
		}		
		
		if( (parseInt(prezzo_min.value) > parseInt(prezzo_max.value)) && (parseInt(prezzo_min.value) != '') && (parseInt(prezzo_max.value) != '')  ) {
			alert("Errore: Il prezzo min non può essere maggiore del prezzo max");
			prezzo_min.focus();				
			return false;
		}
		
		if( (parseInt(metri_min.value) > parseInt(metri_max.value)) && (parseInt(metri_min.value) != '') && (parseInt(metri_max.value) != '')  ) {		
			alert("Errore: Il valore Metri Quadri min non può essere maggiore di Metri Quadri max");
			metri_min.focus();				
			return false;
		}
		
		if( (parseInt(locali_min.value) > parseInt(locali_max.value)) && (parseInt(locali_min.value) != '') && (parseInt(locali_max.value) != '')  ) {
			alert("Errore: Il valore Locali min non può essere maggiore di Locali max");
			locali_min.focus();				
			return false;
		}		
		
	}		
	return true;
}



function controllo_ric_info(){
	
	with(document.form_ric_info) {
		
		if (!indirizzoEmailValido(email_ric.value)) {				
			alert("Si prega di inserire un indirizzo email valido");
			email_ric.focus();
			return false;
		}		
		
		if (trattamento.checked == false) {				
			alert("E' necessario autorizzare il trattamento dei dati");				
			return false;
		}		
		
		if (recaptcha_response_field.value == "") {				
			alert("Errore: Inserisci nella finestra in basso le parole che compaiono a video separate da uno spazio");
			recaptcha_response_field.focus();
			return false;
		}
		
	}		
	return true;
}







function controllo_iscrizione(){
	
	with(document.form_iscrizione) {
		var Alpha = new RegExp("(^[0-9a-zA-Zàèéìòù\'\`\"\;\:\,\.\ ]*$)");
		var Alpha2 = new RegExp("(^[a-zA-Z0-9àèéìòù\&\'\`\“\”\"\,\.\ -\]*$)");
		var Alpha3 = new RegExp("(^[0-9a-zA-Zàèéìòù\'\`\"\;\:\,\.\°\/ ]*$)");
		var Alpha1 = new RegExp("(^[0-9 \+]*$)");
		var Alpha5 = new RegExp("(^[a-zA-Z0-9\.]*$)");				
		var Alpha6 = new RegExp("(^[a-zA-Z0-9\.\\-\_\/]*$)");
		var Alpha7 = /http/i
		
			
		
		if(nome_account.value == "") {
			alert("Errore: il campo Ragione Sociale deve essere compilato");
			nome_account.focus();		
			return false;
		}
		
		if (!Alpha2.test(nome_account.value)) {				
			alert("Errore: il campo Ragione Sociale contiene caratteri non consentiti");
			nome_account.focus();
			return false;
		}		
		
		if (!indirizzoEmailValido(email_iscr.value)) {				
			alert("Si prega di inserire un indirizzo email valido");
			email_iscr.focus();
			return false;
		}		
		
		if(passwd.value.length < 6 || passwd.value == "") {
			alert("Errore: il campo Password deve essere lungo almeno 6 caratteri");
			passwd.focus();		
			return false;
		}
		
		if (!Alpha5.test(passwd.value)) {				
			alert("Errore: il campo Password deve contenere solo caratteri alfanumerici e punti");
			passwd.focus();
			return false;
		}
		
		if (passwd.value != conf_passwd.value) {
			alert("Errore: il campo Conferma Password non coincide con il campo Password");
			conf_passwd.focus();		
			return false;
		}
		
		if (Alpha7.test(sito.value)) {				
			alert("Errore: il campo Sito Web non deve contenere 'http'");
			sito.focus();
			return false;
		}
		
		if (!Alpha6.test(sito.value)) {				
			alert("Errore: il campo Sito Web contiene caratteri non consentiti");
			sito.focus();
			return false;
		}
		
		if (p_iva.value == "" && p_iva.value.length != 11){
			alert("Errore: la P. IVA deve essere lunga 11 caratteri");				
			p_iva.focus();
			return false;
		} else {
			err = ControllaPIVA(p_iva.value);
			if( err > '' ) {
				alert("VALORE ERRATO\n\n" + err + "\nCorreggi e riprova!");
				return false;
			}
		}		
		
		if(Reg_cerca.value == "0") {
			alert("Errore: Selezionare una Regione");
			Reg_cerca.focus();				
			return false;
		}
		
		if(Prov_cerca.value == "0") {
			alert("Errore: Selezionare una Provincia");
			Prov_cerca.focus();				
			return false;
		}
		
		if(Com_cerca.value == "0") {
			alert("Errore: Selezionare un Comune");
			Com_cerca.focus();				
			return false;
		}
		
		if (!Alpha.test(zona.value)) {				
			alert("Errore: il campo Zona contiene caratteri non consentiti");
			zona.focus();
			return false;
		}
		
		if (indirizzo.value == "") {
			alert("Errore: E' necessario inserire un indirizzo valido");
			indirizzo.focus();				
			return false;
		}
		
		if (!Alpha3.test(indirizzo.value)) {				
			alert("Errore: il campo Indirizzo contiene caratteri non consentiti");
			indirizzo.focus();
			return false;
		}				
		
		if(telefono.value == "") {
			alert("Errore: il campo Telefono deve essere compilato");
			telefono.focus();		
			return false;
		}
		
		if (!Alpha1.test(telefono.value)) {				
			alert("Errore: il campo Telefono deve contere soltanto caratteri numerici, spazi o il simbolo '+'");
			telefono.focus();
			return false;
		}
		
		if (!Alpha1.test(fax.value)) {				
			alert("Errore: il campo Fax deve contere soltanto caratteri numerici, spazi o il simbolo '+'");
			fax.focus();
			return false;
		}		
				
		if (!Alpha5.test(promo.value)) {				
			alert("Errore: il Codice Promozionale contiene caratteri non consentiti");
			promo.focus();
			return false;
		}
		
		if (trattamento.checked == false) {				
			alert("E' necessario autorizzare il trattamento dei dati");				
			return false;
		}
		
		if (recaptcha_response_field.value == "") {				
			alert("Errore: Inserisci nella finestra in basso le parole che compaiono a video separate da uno spazio");
			recaptcha_response_field.focus();
			return false;
		}		
		
	}		
	return true;
}





function controllo_cerco_casa(){
	
	with(document.form_cerco_casa) {			
		var Alpha = new RegExp("(^[0-9 \+]*$)");
		var Alpha2 = new RegExp("(^[a-zA-Zàèéìòù\' ]*$)");
		var Alpha3 = new RegExp("(^[0-9]*$)");
		
		if(Reg_cerca.value == "0") {
			alert("Errore: Selezionare una Regione");
			Reg_cerca.focus();				
			return false;
		}
		
		if(Prov_cerca.value == "0") {
			alert("Errore: Selezionare una Provincia");
			Prov_cerca.focus();				
			return false;
		}
		/*
		if(Cat_cerca.value == "tutti") {
			alert("Errore: Selezionare una Categoria");
			Cat_cerca.focus();				
			return false;
		}
		*/
		if(dest_uso_cerca.value == "") {
			alert("Errore: Selezionare la Destinazione d'uso");
			dest_uso_cerca.focus();				
			return false;
		}
		
		if(tipo_inserzione_cerca.value == "") {
			alert("Errore: Selezionare il Tipo di contratto");
			tipo_inserzione_cerca.focus();				
			return false;
		}
		
		if (nome_ric.value == "") {
			alert("Errore: il campo Nome deve essere compilato");
			nome_ric.focus();		
			return false;
		}
		
		if (!Alpha2.test(nome_ric.value)) {				
			alert("Errore: il campo Cerca per Nome contiene caratteri non consentiti");
			nome_ric.focus();
			return false;
		}
		
		if(cognome_ric.value == "") {
			alert("Errore: il campo Cognome deve essere compilato");
			cognome_ric.focus();		
			return false;
		}
		
		if (!Alpha2.test(cognome_ric.value)) {				
			alert("Errore: il campo Cerca per Cognome contiene caratteri non consentiti");
			cognome_ric.focus();
			return false;
		}
		
		if (!indirizzoEmailValido(email_ric.value)) {				
			alert("Si prega di inserire un indirizzo email valido");
			email_ric.focus();
			return false;
		}
		
		if (telefono_ric.value == "") {				
			alert("Errore: compilare il campo Telefono");
			telefono_ric.focus();
			return false;
		}
		
		if (!Alpha.test(telefono_ric.value)) {				
			alert("Errore: il campo Telefono deve contere soltanto caratteri numerici, spazi o il simbolo '+'");
			telefono_ric.focus();
			return false;
		}		
		
		if (!Alpha3.test(prezzo_min_ric.value)) {				
			alert("Errore: il campo Prezzo Min deve contenere solo caratteri numerici");
			prezzo_min_ric.focus();
			return false;
		}
		
		if (!Alpha3.test(prezzo_max_ric.value)) {				
			alert("Errore: il campo Prezzo Max deve contenere solo caratteri numerici");
			prezzo_max_ric.focus();
			return false;
		}		
		
		if( (parseInt(prezzo_min_ric.value) > parseInt(prezzo_max_ric.value)) && (parseInt(prezzo_min_ric.value) != '') && (parseInt(prezzo_max_ric.value) != '')  ) {
			alert("Errore: Il prezzo min non può essere maggiore del prezzo max");
			prezzo_min_ric.focus();				
			return false;
		}
		
		if( (parseInt(metri_min_ric.value) > parseInt(metri_max_ric.value)) && (parseInt(metri_min_ric.value) != '') && (parseInt(metri_max_ric.value) != '')  ) {		
			alert("Errore: Il valore Metri Quadri min non può essere maggiore di Metri Quadri max");
			metri_min_ric.focus();				
			return false;
		}
		
		if (trattamento.checked == false) {				
			alert("E' necessario autorizzare il trattamento dei dati");				
			return false;
		}
		
		if (recaptcha_response_field.value == "") {				
			alert("Errore: Inserisci nella finestra in basso le parole che compaiono a video separate da uno spazio");
			recaptcha_response_field.focus();
			return false;
		}
			
		
	}		
	return true;
}