$(document).ready(function(){
  
  $("#bottonePaypal").submit(function(){
    var codf = Trim2(String($("#cod_fisc_paypal").val()))
    var tel = Trim2(String($("#tel_paypal").val()))
    
    if(codf.length<=0){
      alert("Codice fiscale e telefono sono obbligatori ai fini della fatturazione. Tutti gli altri dati saranno inseriti al momento del pagamento.")
      $("#cod_fisc_paypal").focus()
      return false;
    }
    
    if(ControllaCF(codf)!=""){
      alert(ControllaCF(codf))
      $("#cod_fisc_paypal").focus()
      return false;
    }
    
    if(tel.length<=0){
      alert("Codice fiscale e telefono sono obbligatori ai fini della fatturazione. Tutti gli altri dati saranno inseriti al momento del pagamento.")
      $("#tel_paypal").focus()
      return false;
    }
    
    if(isNaN(tel)){
      alert("Il telefono deve essere numerico.")
      $("#tel_paypal").focus()
      return false;
    }
    
    $("#bottonePaypal input[name='custom']").val(codf+","+tel)
    
  })
  
})



/*funzioni di utilità*/

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 è corretto:\n"+
			"il codice di controllo non corrisponde.\n";
	return "";
}

function Trim2(strq)
{
	while(strq.indexOf(" ")==0)
	{
		if(strq.length > 0)
			strq = strq.replace(" ", "");
		else
			break;
	}
	
	while(strq.lastIndexOf(" ")==strq.length-1)
	{
		if(strq.length > 0)
			strq = strq.substring(0, strq.length-1);
		else
			break;
	}
		
	return strq;
}
