function getParamData(data,param,flag){
	if(flag=="" || flag==undefined){
		var flag="STR";
	}
	var dati=data.split("/");
	var ris="";
	switch(param){
		case "Y":
			ris=dati[2];
		break;
		case "M":
			ris=dati[1];
		break;
		case "D":
			ris=dati[0];
		break;
	}
	//alert("NUM= "+ris+"PRIMO="+ris.substring(0,1)+" SECONDO="+ris.substring(1,2));
	if(flag=="NUM" && (ris.substring(0,1))=="0"){
		//alert(ris);
		ris=ris.substring(1,2);
	}
	return ris;
}


function formatoDataDB(data,sepold,sepnew){
	if(sepold=="" || sepold==undefined){
		sepold="/";
	}
	if(sepnew=="" || sepnew==undefined){
		sepnew="-";
	}
	data=data.split(sepold);
	return data[2]+sepnew+data[1]+sepnew+data[0];
}
		
function isMaggiorenne(data,element){
	var anno=getParamData(data,"Y","NUM");
	var mese=parseInt(getParamData(data,"M","NUM"))-1;
	var giorno=getParamData(data,"D","NUM");
	var data1=new Date(parseInt(anno),parseInt(mese)+(12*18),parseInt(giorno));
	var oggi=new Date();
	return (data1<=oggi);
}


function checkCF(cf,element){
	  var validi, i, s, set1, set2, setpari, setdisp;
	  if(cf==''){
		  return false;
	  }
	cf = cf.toUpperCase();
	if( cf.length != 16 ){
		return false;/*"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 false;/*"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 false;/*"Il codice fiscale non è corretto:\n"+
			"il codice di controllo non corrisponde.\n";*/
	}
	return true;
}


function cfCheck(flagChi,value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"checkCF.php?rand="+escape(Math.random()),
			data:{"valore": value,"flag_chi": flagChi},
			success:function(a,b,c){ eval("ris="+a+";");return true;}
		   });
	return ris && 1;
}

function checkFoto(value,element){
	//alert(1);
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/profilo/generale/checkFoto.php?rand="+escape(Math.random()),
			data:{},
			success:function(a,b,c){ /*alert(a);*/eval("ris="+a+";");return true;},
			error:function(a,b,c){ /*alert(a+" "+b+"  "+c);*/}
		   });
	return ris && 1;
}

function cfUtente(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/checkCF.php?rand="+escape(Math.random()),
			data:{"cf": value},
			error:function(a,b,c){alert(a);alert(b);alert(c);},
			success:function(a,b,c){eval("ris="+a+";");return true;}
		   });
	return ris && 1;	
}

function cfUtenteProfilo(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/checkCFProfilo.php?rand="+escape(Math.random()),
			data:{"cf": value},
			success:function(a,b,c){eval("ris="+a+";");return true;}
		   });
	return ris && 1;	
}

function piUtente(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/checkPI.php?rand="+escape(Math.random()),
			data:{"pi": value},
			error:function(a,b,c){alert(a);alert(b);alert(c);},
			success:function(a,b,c){eval("ris="+a+";");return true;}
		   });
	return ris && 1;	
}

function piUtenteProfilo(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/checkPIProfilo.php?rand="+escape(Math.random()),
			data:{"pi": value},
			success:function(a,b,c){eval("ris="+a+";");return true;}
		   });
	return ris && 1;	
}

function checkBonusOk(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/check-bonus.php?rand="+escape(Math.random()),
			data:{"bonus": value},
			success:function(a,b,c){ eval("ris="+a+";");return true;}
		   });
	return ris && 1;
}

function checkCaptcha(value,element){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"js/captcha/checkCaptcha.php?rand="+escape(Math.random()),
			data:{"stringa": value},
			error:function(a,b,c){ alert(a);alert(b);alert(c); },
			success:function(a,b,c){ /*alert(a);*/ eval("ris="+a+";");}
		   });
	return ris;
}


function checkMail(value,element){
	return (value.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/) || value=="");
}

function checkEmailRegistrata(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/check-email.php?rand="+escape(Math.random()),
			data:{"email": value},
			success:function(a,b,c){ eval("ris="+a+";");return true;}
		   });
	return ris && 1;
}

function checkEmailPresente(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/checkMailPresente.php?rand="+escape(Math.random()),
			data:{"email": value},
			success:function(a,b,c){ eval("ris="+a+";");return true;}
		   });
	return ris && 1;
}

function checkEmailCandidato(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/checkMailCandidato.php?rand="+escape(Math.random()),
			data:{"email": value},
			success:function(a,b,c){ eval("ris="+a+";");return true;}
		   });
	return ris && 1;
}

function checkEmailFamiglia(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/checkMailFamiglia.php?rand="+escape(Math.random()),
			data:{"email": value},
			success:function(a,b,c){ eval("ris="+a+";");return true;}
		   });
	return ris && 1;
}

function checkEmailProfilo(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/checkMailProfilo.php?rand="+escape(Math.random()),
			data:{"email": value},
			success:function(a,b,c){ eval("ris="+a+";");return true;}
		   });
	return ris && 1;
}

function checkUsernamePresente(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/checkUsernamePresente.php?rand="+escape(Math.random()),
			data:{"username": value},
			success:function(a,b,c){eval("ris="+a+";");return true;}
		   });
	return ris && 1;
}

function checkUsernameProfilo(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/checkUsernameProfilo.php?rand="+escape(Math.random()),
			data:{"username": value},
			success:function(a,b,c){eval("ris="+a+";");return true;}
		   });
	return ris && 1;
}

function validaRadioBACKUP(obj){
	if(obj.id=='check-0' && obj.checked){
		$('input[type=checkbox][id^=check-][id!=check-0]').removeAttr('checked');
	}else{
		$('#check-0').removeAttr('checked');
	}
}

function validaRadio(value,element){
	return (jQuery(":radio[name="+element.name+"]:checked").size()==1);
}

function checkProvincia(value,element){
	return (value.match(/^[a-zA-Z]*$/) || value=="");
}

function checkTDP(value,element){
	return jQuery("#pri1").attr("checked");
}

function checkInfo(value,element){
	return jQuery("input[type=checkbox][id^=check-]:checked").size()>0;
}

function checkStringa(value,element){
	return (value.match(/^[a-zA-Z' àèìòù]*$/) || value=="");
	
	/*var vet=new Array("0","1","2","3","4","5","6","7","8","9");
	var i=0;
	var ris=true;
	while(ris && i<vet.length){
		if(value.indexOf(vet[i])!=-1){
			ris=false;
		}
		i++;
	}
	return ris;*/
}

function checkCivico(value,element){
	return (value.match(/^[1-9][0-9]{1,5}$/) || value=="");
}

function checkTel(value,element){
	return (value.match(/^[0-9]{2,4}[//][0-9]{4,9}$/) || value=="");
}

function checkTelCelNew(value,element){
	if(jQuery("#telefono").attr("value")=="" && jQuery("#cellulare").attr("value")==""){
		return false;
	}else{
		return true;
	}
}

function minMax(value,element){
	if((parseFloat(jQuery("#MIN").attr("value"))<=parseFloat(jQuery("#MAX").attr("value"))) && parseFloat(jQuery("#MIN").attr("value"))!=0  && parseFloat(jQuery("#MAX").attr("value"))!=0 ){
		return true;
	}else{
		return false;
	}
}

function checkPiva(value){
	if(value==""){return "";}
	if( value.length != 11 )
		return false;
		/*return "il campo Partita I.V.A. deve essere composto da 11 cifre\n";*/
    validi = "0123456789";
    for( i = 0; i < 11; i++ ){
        if( validi.indexOf( value.charAt(i) ) == -1 )
			return false;
            /*return "il campo Partita I.V.A. deve contenere solo numeri";*/
    }
    s = 0;
    for( i = 0; i <= 9; i += 2 )
        s += value.charCodeAt(i) - '0'.charCodeAt(0);
    for( i = 1; i <= 9; i += 2 ){
        c = 2*( value.charCodeAt(i) - '0'.charCodeAt(0) );
        if( c > 9 )  c = c - 9;
        s += c;
    }
    if( ( 10 - s%10 )%10 != value.charCodeAt(10) - '0'.charCodeAt(0) )
		return false;
        /*return "il campo Partita I.V.A. non è valido\n";*/
    return true;
}

function checkPasswordOk(value){
	var ris=true;
	jQuery.ajax({
			async:false,
			url:"community/check-pwd.php?rand="+escape(Math.random()),
			data:{"password": value},
			success:function(a,b,c){eval("ris="+a+";");return true;}
		   });
	return ris && 1;
}

function handAlmenoUno(value,element,param){
	//alert(element.id);
	return checkAlmenoUno(param);
}

function checkAlmenoUno(prefisso){
	//alert(prefisso+"  "+jQuery(":checkbox[id^="+prefisso+"]:checked").size());
	return (jQuery(":checkbox[id^="+prefisso+"]:checked").size()>0);
}

function textareaEditor(value,element){
	if(jQuery(element).val()=="" || jQuery(element).val()=="<br />\n"){
		return false;
	}else{
		return true;
	}
}

function textareaEditorMaxCar(value,element,param){
	if(jQuery(element).val().length>param){
		return false;
	}else{
		return true;
	}
}

function checkCampoReferenza(value,element,param){
	if(jQuery(element).val()!=param && jQuery(element).val()!=""){
		return true;
	}else if(jQuery(element).val()==param){
		return true;
	}else{
		return false;
	}
}

var validator;	
var VALIDAZIONI=new Array();	

jQuery.validator.setDefaults({
	success: "valid",
	ignore: ".ignore"
});

jQuery.validator.addMethod("alfanumerico", function(value, element) { return this.optional(element) || /^\w+$/i.test(value); }, "Ci sono caratteri non validi!<br />"); 
jQuery.validator.addMethod("nospazi",function(value, element){ return this.optional(element) || /^\S+$/i.test(value); }, "Non inserire spazi!<br />"); 
jQuery.validator.addMethod("STRINGA", checkStringa);
jQuery.validator.addMethod("USERNAME_PRESENTE", checkUsernamePresente);
jQuery.validator.addMethod("MAIL", checkMail);
jQuery.validator.addMethod("EMAIL_REG", checkEmailRegistrata);
jQuery.validator.addMethod("EMAIL_PRESENTE_PROFILO", checkEmailProfilo);
jQuery.validator.addMethod("USERNAME_PRESENTE_PROFILO", checkUsernameProfilo);
jQuery.validator.addMethod("EMAIL_PRESENTE", checkEmailPresente);
jQuery.validator.addMethod("CIVICO", checkCivico);
jQuery.validator.addMethod("PROV", checkProvincia);	
jQuery.validator.addMethod("CODCF", checkCF);
jQuery.validator.addMethod("CF_UTENTE_NEW", cfUtente);
jQuery.validator.addMethod("CF_UTENTE_PROFILO", cfUtenteProfilo);
jQuery.validator.addMethod("PI_UTENTE_REG", piUtente);
jQuery.validator.addMethod("PI_UTENTE_PROFILO", piUtenteProfilo);
jQuery.validator.addMethod("CHECKTDP", checkTDP);
jQuery.validator.addMethod("TEL", checkTel);
jQuery.validator.addMethod("TEL_CEL_NEW", checkTelCelNew);
jQuery.validator.addMethod("BONUS_CHECK", checkBonusOk);
jQuery.validator.addMethod("CAPTCHA", checkCaptcha);
jQuery.validator.addMethod("PartitaIva", checkPiva);
jQuery.validator.addMethod("PWD_OK", checkPasswordOk);
jQuery.validator.addMethod("RADIO_OBBL", validaRadio);
jQuery.validator.addMethod("CHECK_ALMENO_UNO", handAlmenoUno);
jQuery.validator.addMethod("MINMAX", minMax);
jQuery.validator.addMethod("MAGGIORENNE", isMaggiorenne);
jQuery.validator.addMethod("FOTO_OBBL", checkFoto);
jQuery.validator.addMethod("TEXT_AREA_EDITOR", textareaEditor);
jQuery.validator.addMethod("TEXT_AREA_EDITOR_MAX_CAR", textareaEditorMaxCar);
jQuery.validator.addMethod("CHECK_EMAIL_CANDIDATO", checkEmailCandidato);
jQuery.validator.addMethod("CHECK_EMAIL_FAMIGLIA", checkEmailFamiglia);
jQuery.validator.addMethod("CHECK_CAMPO_REFERENZA", checkCampoReferenza);



var msgCampoObbligatorio="<div class='msgVal'>obbligatorio.</div><br />";
var msgCampoStringa="<div class='msgVal'>solo caratteri.</div>";
var msgCampoNumeri="<div class='msgVal'>solo numeri.</div>";
var msgLenght="<div class='msgVal'>num caratteri non valido.</div>";
var msgNoValido="<div class='msgVal'>non valido.</div>";
var msgGiaPres="<div class='msgVal'>già presente.</div>";
var msgPrefTel="<div class='msgVal'>formato [pref]/[num].</div>";
var msgDiverso="<div class='msgVal'>non corrsipondente.</div>";
var msgNoSpazi="<div class='msgVal'>spazi non consentiti.</div>";
var msgAlfaNum="<div class='msgVal'>lettere e numeri.</div>";

