function codiceFISCALE(cfins){
   var cf = cfins.toUpperCase();
   var cfReg = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
   if (!cfReg.test(cf))
      return false;
   var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
   var 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 false;
   return true;
}

function ControllaPIVA(pi){ 
	if((pi == '') || (pi == '00000000000')) return false; 
	if( pi.length != 11 ) return false; 
	validi = "0123456789"; 
	for( i = 0; i < 11; i++ ){ 
		if( validi.indexOf( pi.charAt(i) ) == -1 ) return false; 
	} 
	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 false; 
	return true;
}


function isLiteral(s) {
	s = s.toLowerCase();
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (((c < 'a') || (c > 'z')) && (c != ' ') && (c != ',') && (c != '.') && (c != '\'') && (c != '/') && (c != '\(') && (c != '\)')) return false;
	}
	return true
}

function isNumeric(s) { 
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((c < '0') || (c > '9')) {return false;}
	}
	return true
}

function isAlphaNum(s) {
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((!isLiteral(c)) && (!isNumeric(c))) return false;
	}
	return true
}

function sizeIs(s,n) {
	if (s.length == n) return true; return false
}


function isEmail(s) {
	if (s != '') {	
		var chiocciola,chiocciola2,punto;
		chiocciola = s.indexOf('@');
		chiocciola2 = s.lastIndexOf('@');
		punto = s.lastIndexOf('.'); 
		s = s.toLowerCase();
		if ((chiocciola < 2) || (chiocciola2 != chiocciola) || (punto < chiocciola+4) || (s.length-punto < 3)) 
			return false;
		for (var i = 0; i < s.length; i++) {
			var c = s.charAt(i);
			if ((!isAlphaNum(c)) && (c != '@') && (c != "_")) return false;
		}
		
	}
	return true;
}

function isGGMMAAAA(s) {
	if (minAge == null) var minAge = 0;
	if (!sizeIs(s,10)) return false;
	var GG = s.substr(0,2);	
	var MM = s.substr(3,2);
	var AAAA = s.substr(6,4);
	var lRitorno=false;
	if (MM=="11" || MM=="04" || MM=="06" || MM=="09") lRitorno=(GG<"31");
	else 
		if (MM=="02") lRitorno = ((GG < "29") || ((GG == "29") && (AAAA % 4 == 0) && (AAAA % 400 == 0)));
		else
			lRitorno = (MM<"13" && GG<"32")
	return lRitorno;
}



function soundControl() {
	$('sound').toggle();
}


function divControl(numero) {
	Effect.Appear('footer', { duration: 0.0 });
	Effect.Appear('colonna_corpo', { duration: 0.0 });
	Effect.Appear('player_container', { duration: 0.0 });
	footer_flash(numero);
}


function aggiornaContenuto(elemento,url,dettaglio) {				

	if ((url!='launch.php?pagina=contatti') && $('map_canvas')) {
//		GUnload('map_canvas');
	}
	
	new Ajax.Updater(elemento, url, 
		{
		evalScripts: true,
		onCreate: function(){
						$(elemento).style.display='none';
						$('loading_'+elemento).style.display='';
					}, 
		onComplete: function(transport) {
						CSBfleXcroll('registrazione_div');					
						CSBfleXcroll('modificadati_div');					
						CSBfleXcroll('contatti_wrapper');					
						CSBfleXcroll('carrello_div');					
						CSBfleXcroll('ordine_div');		
						CSBfleXcroll('ordini_elenco_div');							
						CSBfleXcroll('ordini_dettaglio_div');								
						CSBfleXcroll('messaggio_div');								
						if (dettaglio==1) {
							tipoCollezione('');
						}
						if ($('kmap')) {
						  initialize();
						}  
	
						
						
					},
		onSuccess: function(transport){
						$('loading_'+elemento).style.display='none';
						$(elemento).style.display='';
					} 
		}
	
	);

	
}


function aggiornaContenutoParam(elemento,url,param,dettaglio) {				

	
	new Ajax.Updater(elemento, url, 
		{
		evalScripts: true,
		method: 'post',
		parameters: param,
		onCreate: function(){
						$(elemento).style.display='none';
						$('loading_'+elemento).style.display='';
					}, 
		onComplete: function(transport) {
						CSBfleXcroll('registrazione_div');		
						CSBfleXcroll('modificadati_div');							
						CSBfleXcroll('contatti_wrapper');		
						CSBfleXcroll('carrello_div');							
						CSBfleXcroll('ordine_div');							
						CSBfleXcroll('ordini_elenco_div');							
						CSBfleXcroll('ordini_dettaglio_div');		
						CSBfleXcroll('messaggio_div');								
						if (dettaglio==1) {
							tipoCollezione('');
						}
						 
					},
		onSuccess: function(transport){
						$('loading_'+elemento).style.display='none';
						$(elemento).style.display='';
					} 
		}
	
	);

	
}

function copiaCarrello(indice) {
	document.getElementById("quantita").value = document.getElementById("quantita" + indice).value; 
	document.getElementById("id_prodotto").value = document.getElementById("id_prodotto" + indice).value;
	document.getElementById("id_categoria").value = document.getElementById("id_categoria" + indice).value;
	document.getElementById("id_sottocategoria").value = document.getElementById("id_sottocategoria" + indice).value;
	
	aggiornaContenutoParam('container_corpo',$('carrello').action,$('carrello').serialize(),1);
	
}


function ordineConferma() {

	aggiornaContenutoParam('container_corpo',"inc/ordine2.php","modalita_pagamento=" + $('modalita_pagamento').value + "&mac=" + $('mac').value,1);
	
}

function tipoCollezione(tipo_collezione) {

	id_categoria = 0;
	id_sottocategoria = 0;
	id_footer = 1;

	if (tipo_collezione=='camicioni') {
		id_categoria = 1;
		id_sottocategoria = 1;
		id_footer = 8;
	}
	
	if (tipo_collezione=='bustier') {
		id_categoria = 1;
		id_sottocategoria = 2;
		id_footer = 10;
	}
	
	if (tipo_collezione=='abiti') {
		id_categoria = 1;
		id_sottocategoria = 3;
		id_footer = 7;
	}

	
	if (tipo_collezione=='sposa') {
		id_categoria = 1;
		id_sottocategoria = 4;
		id_footer = 3;
	}


	if (tipo_collezione=='giorno_notte') {
		id_categoria = 1;
		id_sottocategoria = 5;
		id_footer = 5;
	}



	if (tipo_collezione=='moda_sole') {
		id_categoria = 1;
		id_sottocategoria = 6;
		id_footer = 2;
	}


	if (tipo_collezione!='') {
		aggiornaContenuto('container_corpo',"launch.php?pagina=catalogo&id_categoria=" + id_categoria + "&id_sottocategoria=" + id_sottocategoria,0);
		$('loading_container_corpo').style.display='none';
		$('container_corpo').style.display='';
	} else {
		clearTimeout(b);
		elements = new Array();
	}
	
	footer_flash(id_footer);
		
}






function verifica_registrazione(mioform) {

	if (mioform.denominazione.value=='') {
		alert("Attenzione!\nIl campo nome e cognome\/denominazione e\' obbligatorio.");
		return false;
	}

	if (!isAlphaNum(mioform.denominazione.value)) {
		alert("Attenzione!\nIl formato del campo nome e cognome\/denominazione non e\' corretto.");
		return false;
	}


	if (mioform.indirizzo.value=='') {
		alert("Attenzione!\nIl campo indirizzo e\' obbligatorio.");
		return false;
	}

	if (mioform.cap.value=='') {
		alert("Attenzione!\nIl campo CAP e\' obbligatorio.");
		return false;
	}

	if (!isNumeric(mioform.cap.value)) {
		alert("Attenzione!\nIl formato del campo CAP non e\' corretto.");
		return false;
	}

	if (mioform.citta.value=='') {
		alert("Attenzione!\nIl campo citta\' e\' obbligatorio.");
		return false;
	}

	if (mioform.provincia.value=='') {
		alert("Attenzione!\nIl campo provincia e\' obbligatorio.");
		return false;
	}

	if (mioform.telefono.value=='') {
		alert("Attenzione!\nIl campo telefono e\' obbligatorio.");
		return false;
	}

	if (!isAlphaNum(mioform.telefono.value)) {
		alert("Attenzione!\nIl formato del campo telefono non  e\' corretto.");
		return false;
	}

	if (mioform.fax.value!='') {
		if (!isAlphaNum(mioform.fax.value)) {
			alert("Attenzione!\nIl formato del campo fax non e\' corretto.");
			return false;
		}
	}

	if (mioform.email.value=='') {
		alert("Attenzione!\nIl campo email e\' obbligatorio.");
		return false;
	}

	if (!isEmail(mioform.email.value)) {
		alert("Attenzione!\nIl formato del campo email non e\' corretto.");
		return false;
	}

	//FATTURAZIONE

	if (mioform.denominazione_fatt.value=='') {
		alert("Attenzione!\nIl campo nome e cognome\/denominazione della fatturazione e\' obbligatorio.");
		return false;
	}

	if (!isAlphaNum(mioform.denominazione_fatt.value)) {
		alert("Attenzione!\nIl formato del campo'nome e cognome\/denominazione della fatturazione non e\' corretto.");
		return false;
	}


	if (mioform.indirizzo_fatt.value=='') {
		alert("Attenzione!\nIl campo indirizzo della fatturazione e\' obbligatorio.");
		return false;
	}

	if (mioform.cap_fatt.value=='') {
		alert("Attenzione!\nIl campo CAP della fatturazione e\' obbligatorio.");
		return false;
	}

	if (!isNumeric(mioform.cap_fatt.value)) {
		alert("Attenzione!\nIl formato del campo CAP della fatturazione non e\' corretto.");
		return false;
	}

	if (mioform.citta_fatt.value=='') {
		alert("Attenzione!\nIl campo citta\' della fatturazione e\' obbligatorio.");
		return false;
	}

	if (mioform.provincia_fatt.value=='') {
		alert("Attenzione!\nIl campo provincia della fatturazione e\' obbligatorio.");
		return false;
	}

	if (mioform.telefono_fatt.value!='') {
		if (!isAlphaNum(mioform.telefono_fatt.value)) {
			alert("Attenzione!\nIl formato del campo telefono della fatturazione non e\' corretto.");
			return false;
		}
	}

	if (mioform.fax_fatt.value!='') {
		if (!isAlphaNum(mioform.fax_fatt.value)) {
			alert("Attenzione!\nIl formato del campo fax della fatturazione non e\' corretto.");
			return false;
		}
	}

	if (mioform.piva_cf.value=='') {
		alert("Attenzione!\nIl campo partita IVA\/codice fiscale della fatturazione e\' obbligatorio.");
		return false;
	}

	if (!(ControllaPIVA(mioform.piva_cf.value)) && !(codiceFISCALE(mioform.piva_cf.value))) {
		alert("Attenzione!\nIl formato del campo partita IVA\/codice fiscale della fatturazione non e\' corretto.");
		return false;
	}

	if (mioform.email_fatt.value!='') {
		if (!isEmail(mioform.email_fatt.value)) {
			alert("Attenzione!\nIl formato del campo email non e\' corretto.");
			return false;
		}
	}

	if (mioform.nome_utente.value=='') {
		alert("Attenzione!\nIl campo nome utente e\' obbligatorio.");
		return false;
	}



	if (!isAlphaNum(mioform.nome_utente.value)) {
		alert("Attenzione!\nIl formato del campo nome utente non e\' corretto.");
		return false;
	}

	if (mioform.pwd.value=='') {
		alert("Attenzione!\nIl campo password e\' obbligatorio.");
		return false;
	}
	
	
	if (mioform.pwd.value.length<6) {
		alert("Attenzione!\nPer ll campo password sono necessari almeno 6 caratteri.");
		return false;
	}


	if (!isAlphaNum(mioform.pwd.value)) {
		alert("Attenzione!\nIl formato del campo password non e\' corretto.");
		return false;
	}

	if (mioform.cpwd.value=='') {
		alert("Attenzione!\nIl campo conferma password e\' obbligatorio.");
		return false;
	}

	if (!isAlphaNum(mioform.cpwd.value)) {
		alert("Attenzione!\nIl formato del campo conferma password non e\' corretto.");
		return false;
	}

	if (mioform.pwd.value!=mioform.cpwd.value) {
		alert("Attenzione!\nIl il campo password e conferma password non coincidono.");
		return false;
	}
	
	
	if (mioform.acconsento[1].checked) {
		alert("Attenzione!\nE' necessario prendere visione e acconsentire alle condizioni di acquisto.");
		return false;
	
	
	}
	aggiornaContenutoParam('container_corpo',$('reg_utente').action,$('reg_utente').serialize(),1);
	
	return false;
}


function verifica_modificadati(mioform) {

	if (mioform.denominazione.value=='') {
		alert("Attenzione!\nIl campo nome e cognome\/denominazione e\' obbligatorio.");
		return false;
	}

	if (!isAlphaNum(mioform.denominazione.value)) {
		alert("Attenzione!\nIl formato del campo nome e cognome\/denominazione non e\' corretto.");
		return false;
	}


	if (mioform.indirizzo.value=='') {
		alert("Attenzione!\nIl campo indirizzo e\' obbligatorio.");
		return false;
	}

	if (mioform.cap.value=='') {
		alert("Attenzione!\nIl campo CAP e\' obbligatorio.");
		return false;
	}

	if (!isNumeric(mioform.cap.value)) {
		alert("Attenzione!\nIl formato del campo CAP non e\' corretto.");
		return false;
	}

	if (mioform.citta.value=='') {
		alert("Attenzione!\nIl campo citta\' e\' obbligatorio.");
		return false;
	}

	if (mioform.provincia.value=='') {
		alert("Attenzione!\nIl campo provincia e\' obbligatorio.");
		return false;
	}

	if (mioform.telefono.value=='') {
		alert("Attenzione!\nIl campo telefono e\' obbligatorio.");
		return false;
	}

	if (!isAlphaNum(mioform.telefono.value)) {
		alert("Attenzione!\nIl formato del campo telefono non  e\' corretto.");
		return false;
	}

	if (mioform.fax.value!='') {
		if (!isAlphaNum(mioform.fax.value)) {
			alert("Attenzione!\nIl formato del campo fax non e\' corretto.");
			return false;
		}
	}

	if (mioform.email.value=='') {
		alert("Attenzione!\nIl campo email e\' obbligatorio.");
		return false;
	}

	if (!isEmail(mioform.email.value)) {
		alert("Attenzione!\nIl formato del campo email non e\' corretto.");
		return false;
	}

	//FATTURAZIONE

	if (mioform.denominazione_fatt.value=='') {
		alert("Attenzione!\nIl campo nome e cognome\/denominazione della fatturazione e\' obbligatorio.");
		return false;
	}

	if (!isAlphaNum(mioform.denominazione_fatt.value)) {
		alert("Attenzione!\nIl formato del campo'nome e cognome\/denominazione della fatturazione non e\' corretto.");
		return false;
	}


	if (mioform.indirizzo_fatt.value=='') {
		alert("Attenzione!\nIl campo indirizzo della fatturazione e\' obbligatorio.");
		return false;
	}

	if (mioform.cap_fatt.value=='') {
		alert("Attenzione!\nIl campo CAP della fatturazione e\' obbligatorio.");
		return false;
	}

	if (!isNumeric(mioform.cap_fatt.value)) {
		alert("Attenzione!\nIl formato del campo CAP della fatturazione non e\' corretto.");
		return false;
	}

	if (mioform.citta_fatt.value=='') {
		alert("Attenzione!\nIl campo citta\' della fatturazione e\' obbligatorio.");
		return false;
	}

	if (mioform.provincia_fatt.value=='') {
		alert("Attenzione!\nIl campo provincia della fatturazione e\' obbligatorio.");
		return false;
	}

	if (mioform.telefono_fatt.value!='') {
		if (!isAlphaNum(mioform.telefono_fatt.value)) {
			alert("Attenzione!\nIl formato del campo telefono della fatturazione non e\' corretto.");
			return false;
		}
	}

	if (mioform.fax_fatt.value!='') {
		if (!isAlphaNum(mioform.fax_fatt.value)) {
			alert("Attenzione!\nIl formato del campo fax della fatturazione non e\' corretto.");
			return false;
		}
	}

	if (mioform.piva_cf.value=='') {
		alert("Attenzione!\nIl campo partita IVA\/codice fiscale della fatturazione e\' obbligatorio.");
		return false;
	}

	if (!(ControllaPIVA(mioform.piva_cf.value)) && !(codiceFISCALE(mioform.piva_cf.value))) {
		alert("Attenzione!\nIl formato del campo partita IVA\/codice fiscale della fatturazione non e\' corretto.");
		return false;
	}

	if (mioform.email_fatt.value!='') {
		if (!isEmail(mioform.email_fatt.value)) {
			alert("Attenzione!\nIl formato del campo email non e\' corretto.");
			return false;
		}
	}


	if (mioform.pwd.value=='') {
		alert("Attenzione!\nIl campo password e\' obbligatorio.");
		return false;
	}
	
	
	if (mioform.pwd.value.length<6) {
		alert("Attenzione!\nPer ll campo password sono necessari almeno 6 caratteri.");
		return false;
	}


	if (!isAlphaNum(mioform.pwd.value)) {
		alert("Attenzione!\nIl formato del campo password non e\' corretto.");
		return false;
	}

	if (mioform.cpwd.value=='') {
		alert("Attenzione!\nIl campo conferma password e\' obbligatorio.");
		return false;
	}

	if (!isAlphaNum(mioform.cpwd.value)) {
		alert("Attenzione!\nIl formato del campo conferma password non e\' corretto.");
		return false;
	}

	if (mioform.pwd.value!=mioform.cpwd.value) {
		alert("Attenzione!\nIl il campo password e conferma password non coincidono.");
		return false;
	}
	
	
	aggiornaContenutoParam('container_corpo',$('reg_utente').action,$('reg_utente').serialize(),1);
	
	return false;
}




function verifica_recupera(mioform) {

	if (mioform.nome_utente.value=='') {
		alert("Attenzione!\nIl campo nome utente e\' obbligatorio.");
		return false;
	}

	if (mioform.email.value=='') {
		alert("Attenzione!\nIl campo email e\' obbligatorio.");
		return false;
	}

	if (!isEmail(mioform.email.value)) {
		alert("Attenzione!\nIl formato del campo email non e\' corretto.");
		return false;
	}
	
	
	aggiornaContenutoParam('container_corpo',$('reg_utente').action,$('reg_utente').serialize(),1);
	
	return false;
}




function copia_dati_anagrafici(mioform) {
	mioform.denominazione_fatt.value = mioform.denominazione.value;
	mioform.indirizzo_fatt.value = mioform.indirizzo.value;
	mioform.cap_fatt.value = mioform.cap.value;
	mioform.citta_fatt.value = mioform.citta.value;
	mioform.provincia_fatt.value = mioform.provincia.value;
	mioform.nazione_fatt.value = mioform.nazione.value;
	mioform.telefono_fatt.value = mioform.telefono.value;
	mioform.fax_fatt.value = mioform.fax.value;
	mioform.email_fatt.value = mioform.email.value; 
}




function verifica_newsletter(mioform) {

	if (mioform.nome.value=='') {
		alert("Attenzione!\nIl campo nome e\' obbligatorio.");
		return false;
	}

	if (mioform.cognome.value=='') {
		alert("Attenzione!\nIl campo cognome e\' obbligatorio.");
		return false;
	}
	
	if (mioform.email.value=='') {
		alert("Attenzione!\nIl campo email e\' obbligatorio.");
		return false;
	}

	if (!isEmail(mioform.email.value)) {
		alert("Attenzione!\nIl formato del campo email non e\' corretto.");
		return false;
	}
	
	
	if (mioform.acconsento[1].checked) {
		alert("Attenzione!\nE' necessario prendere visione e acconsentire all'informativa sulla privacy.");
		return false;
	
	}
	
	aggiornaContenutoParam('container_corpo',$('reg_utente').action,$('reg_utente').serialize(),1);
	
	return false;

}
