var _canc_ = 46;
var _tab_ = 9;
var _backsp_ = 8;

//////////////quella che segue è la gestione del cambio della combo provincia in base alla combo regione//////////////////////////
/*
uso:
<body onLoad="initto()">
<select name="regione" onChange="LoadProvincie(this.options[this.selectedIndex].value, 'provincia')"></select>
<select name="provincia"></select>
*/
var regioni = new Array(1);
var provincie = new Array(1);

regioni[0] = new Array(1, 'Abruzzo');
regioni[1] = new Array(2, 'Basilicata');
regioni[2] = new Array(3, 'Calabria');
regioni[3] = new Array(4, 'Campania');
regioni[4] = new Array(5, 'Emilia Romagna');
regioni[5] = new Array(6, 'Friuli Venezia Giulia');
regioni[6] = new Array(7, 'Lazio');
regioni[7] = new Array(8, 'Liguria');
regioni[8] = new Array(9, 'Lombardia');
regioni[9] = new Array(10, 'Marche');
regioni[10] = new Array(11, 'Molise');
regioni[11] = new Array(12, 'Piemonte');
regioni[12] = new Array(13, 'Puglia');
regioni[13] = new Array(14, 'Sardegna');
regioni[14] = new Array(15, 'Sicilia');
regioni[15] = new Array(16, 'Toscana');
regioni[16] = new Array(17, 'Trentino Alto Adige');
regioni[17] = new Array(18, 'Umbria');
regioni[18] = new Array(19, 'Valle dAosta');
regioni[19] = new Array(20, 'Veneto');

provincie[0] = new Array(1, 'Agrigento', 15);
provincie[1] = new Array(2, 'Alessandria', 12);
provincie[2] = new Array(3, 'Ancona', 10);
provincie[3] = new Array(4, 'Aosta', 19);
provincie[4] = new Array(5, 'Aquila', 1);
provincie[5] = new Array(6, 'Arezzo', 16);
provincie[6] = new Array(7, 'Ascoli-Piceno', 10);
provincie[7] = new Array(8, 'Asti', 12);
provincie[8] = new Array(9, 'Avellino', 4);
provincie[9] = new Array(10, 'Bari', 13);
provincie[10] = new Array(11, 'Belluno', 20);
provincie[11] = new Array(12, 'Benevento', 4);
provincie[12] = new Array(13, 'Bergamo', 9);
provincie[13] = new Array(14, 'Biella', 12);
provincie[14] = new Array(15, 'Bologna', 5);
provincie[15] = new Array(16, 'Bolzano', 17);
provincie[16] = new Array(17, 'Brescia', 9);
provincie[17] = new Array(18, 'Brindisi', 13);
provincie[18] = new Array(19, 'Cagliari', 14);
provincie[19] = new Array(20, 'Caltanissetta', 15);
provincie[20] = new Array(21, 'Campobasso', 11);
provincie[21] = new Array(22, 'Caserta', 4);
provincie[22] = new Array(23, 'Catania', 15);
provincie[23] = new Array(24, 'Catanzaro', 3);
provincie[24] = new Array(25, 'Chieti', 1);
provincie[25] = new Array(26, 'Como', 9);
provincie[26] = new Array(27, 'Cosenza', 3);
provincie[27] = new Array(28, 'Cremona', 9);
provincie[28] = new Array(29, 'Crotone', 3);
provincie[29] = new Array(30, 'Cuneo', 12);
provincie[30] = new Array(31, 'Enna', 15);
provincie[31] = new Array(32, 'Ferrara', 5);
provincie[32] = new Array(33, 'Firenze', 16);
provincie[33] = new Array(34, 'Foggia', 13);
provincie[34] = new Array(35, 'Forli-Cesena', 5);
provincie[35] = new Array(36, 'Frosinone', 7);
provincie[36] = new Array(37, 'Genova', 8);
provincie[37] = new Array(38, 'Gorizia', 6);
provincie[38] = new Array(39, 'Grosseto', 16);
provincie[39] = new Array(40, 'Imperia', 8);
provincie[40] = new Array(41, 'Isernia', 11);
provincie[41] = new Array(42, 'La-Spezia', 8);
provincie[42] = new Array(43, 'Latina', 7);
provincie[43] = new Array(44, 'Lecce', 13);
provincie[44] = new Array(45, 'Lecco', 9);
provincie[45] = new Array(46, 'Livorno', 16);
provincie[46] = new Array(47, 'Lodi', 9);
provincie[47] = new Array(48, 'Lucca', 16);
provincie[48] = new Array(49, 'Macerata', 10);
provincie[49] = new Array(50, 'Mantova', 9);
provincie[50] = new Array(51, 'Massa-Carrara', 16);
provincie[51] = new Array(52, 'Matera', 2);
provincie[52] = new Array(53, 'Messina', 15);
provincie[53] = new Array(54, 'Milano', 9);
provincie[54] = new Array(55, 'Modena', 5);
provincie[55] = new Array(56, 'Napoli', 4);
provincie[56] = new Array(57, 'Novara', 12);
provincie[57] = new Array(58, 'Nuoro', 14);
provincie[58] = new Array(59, 'Oristano', 14);
provincie[59] = new Array(60, 'Padova', 20);
provincie[60] = new Array(61, 'Palermo', 15);
provincie[61] = new Array(62, 'Parma', 5);
provincie[62] = new Array(63, 'Pavia', 9);
provincie[63] = new Array(64, 'Perugia', 18);
provincie[64] = new Array(65, 'Pesaro-Urbino', 10);
provincie[65] = new Array(66, 'Pescara', 1);
provincie[66] = new Array(67, 'Piacenza', 5);
provincie[67] = new Array(68, 'Pisa', 16);
provincie[68] = new Array(69, 'Pistoia', 16);
provincie[69] = new Array(70, 'Pordenone', 6);
provincie[70] = new Array(71, 'Potenza', 2);
provincie[71] = new Array(72, 'Prato', 16);
provincie[72] = new Array(73, 'Ragusa', 15);
provincie[73] = new Array(74, 'Ravenna', 5);
provincie[74] = new Array(75, 'Reggio-Calabria', 3);
provincie[75] = new Array(76, 'Reggio-Emilia', 5);
provincie[76] = new Array(77, 'Rieti', 7);
provincie[77] = new Array(78, 'Rimini', 5);
provincie[78] = new Array(79, 'ROMA', 7);
provincie[79] = new Array(80, 'Rovigo', 20);
provincie[80] = new Array(81, 'Salerno', 4);
provincie[81] = new Array(82, 'Sassari', 14);
provincie[82] = new Array(83, 'Savona', 8);
provincie[83] = new Array(84, 'Siena', 16);
provincie[84] = new Array(85, 'Siracusa', 15);
provincie[85] = new Array(86, 'Sondrio', 9);
provincie[86] = new Array(87, 'Taranto', 13);
provincie[87] = new Array(88, 'Teramo', 1);
provincie[88] = new Array(89, 'Terni', 18);
provincie[89] = new Array(90, 'Torino', 12);
provincie[90] = new Array(91, 'Trapani', 15);
provincie[91] = new Array(92, 'Trento', 17);
provincie[92] = new Array(93, 'Treviso', 20);
provincie[93] = new Array(94, 'Trieste', 6);
provincie[94] = new Array(95, 'Udine', 6);
provincie[95] = new Array(96, 'Varese', 9);
provincie[96] = new Array(97, 'Venezia', 20);
provincie[97] = new Array(98, 'Verbania', 12);
provincie[98] = new Array(99, 'Vercelli', 12);
provincie[99] = new Array(100, 'Verona', 20);
provincie[100] = new Array(101, 'Vibo-Valentia', 0);
provincie[101] = new Array(102, 'Vicenza', 20);
provincie[102] = new Array(103, 'Viterbo', 7);

function AddEle(nomeselect, label, valore){
     listOpt = document.createElement("option");
     listOpt.value = valore;
     listOpt.text = label;
     document.forms[0].elements[nomeselect].options.add(listOpt);

}

function LoadProvincie(idcontrollo, selectapplicazione){
DelAll(selectapplicazione);
for(var i=0; i<provincie.length;i++){
//alert(i);
	if(provincie[i][2] == idcontrollo) AddEle(selectapplicazione, provincie[i][1], provincie[i][0])
	}
}


function DelAll(nomeselect){
//alert("numero elementi prima	:"+document.forms[0].elements[nomeselect].options.length);
lengto = document.forms[0].elements[nomeselect].options.length;
for(var i=0;i<lengto;i++)document.forms[0].elements[nomeselect].remove(0);
//alert("numero elementi dopo:"+document.forms[0].elements[nomeselect].options.length);
}

function initto(){
	for(var i=0; i<regioni.length;i++) AddEle('regione', regioni[i][1], regioni[i][0]);
	for(var i=0; i<provincie.length;i++) AddEle('provincia', provincie[i][1], provincie[i][0]);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



function num()
{
/*
	blocca l'evento di pressione tasto e si assicura che passino solo i numeri e i tasti canc, backspace, e tab.
	si imposta: OnKeyDown="return num()"
*/
//alert(event.keyCode);
if(event.keyCode>=48 && event.keyCode<=57 ||  event.keyCode==_backsp_ ||  event.keyCode==_tab_ || event.keyCode==_canc_) return true;
else return false;
} 

// VARIABLE DECLARATIONS
var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
// whitespace characters
var whitespace = " \t\n\r";
var specchar_a = "'%<>;"
var specchar_b = '"'
var specchar = specchar_a + specchar_b

// my personal stops
var mystop = digits + lowercaseLetters + uppercaseLetters + whitespace ;
var mystop2 = specchar_a + specchar_b + whitespace ;
var permission_invalid = specchar + "{}[]\|,./?!@#$%^&*()" +"\/"
var permission_invalidpuntosi = specchar + "{}[]\|,/?!@#$%^&*()" +"\/"
var permission_invalidazienda = specchar + "{}[]\|,/?!@#$%^*()" +"\/"
var permission_invalidindirizzo = specchar + "{}[]\|,.?!@#$%^&*()" +"\/"
var permission_invalidcivico = specchar + "{}[]|,.?!@#$%^&*()";

var defaultEmptyOK = false;
//var validRegExpEmail = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
//lo commento perchè non mi accetta il formato numeri@qualsiasicosa.qualsiasicosa
var validRegExpEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
//var CONST_PERMISSION = new RegExp(/[\"'`~!@#$%^&*()\-+=\[\]\\{}|\;:/?.>,<\s]/)
var validNumber = /^[0-9\.]*$/;


function isValidMail(e) {
if (e=="")return true;
return validRegExpEmail.test(e);
}

function isNumber(e) {
if (e=="")return true;
return validNumber.test(e);
}


//function isValidEmail(obj)
//{
//	alert(validRegExpEmail.test(strEmail));
//	strEmail = obj.value;
//	return validRegExpEmail.test(strEmail);
//}

function check_input (obj,bag) {
  var ckOK = bag;
  var ckStr = obj.value;
  if (ckStr.length > 0) {
    var ok = true;
    for (i=0; i < ckStr.length;  i++)  {
      for (j=0; j < ckOK.length;  j++)
        if (ckStr.charAt(i) == ckOK.charAt(j)) {
          ok = true;
          break;
        }
        else 
          ok=false;
      if (!ok)  break;
    }
    if (!ok){
      return (false);
    }
  }
  return (true);
}

// Removes all characters which appear in string bag from string s.

function stripCharsInBag (s, bag)

{   var i;
    var returnString = "";

    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
	returnarray = new Array()
	if( returnString != s)
		returnarray[1] = 1
	else
		returnarray[1] = 0

	returnarray[2] = returnString

//	var str = new String(s);
//
//	if (str.search(CONST_PERMISSION) >= 0)
//	{
//		returnarray[3] = 1;
//	}
//	else
//	{
//		returnarray[3] = 0;
//	}
	return returnarray
}

  
  
//**--------------------------------------------------------------
//elimina i punti delle migliaia e sostituisce la virgola con il 
//punto dei decimali
//---------------------------------------------------------------**

function formatta_numeri(stringa)
{
  var i, lung, lung2, posizione, intero, decimale,posizioneintero;
  var esiste=false
  var risultato=""
  lung=stringa.length;
	//elimina il punto delle migliaia  
 for (i = 0; i < lung; i++)
	{
	if (stringa.charAt(i) == ".")
        {
		stringa=stringa.replace(".","");
		}
    }
//sostituisce la virgola dei decimali con il punto  
  nuovastringa = stringa.replace(",", ".");
  lung2=nuovastringa.length;
  
  for (i = 0; i < lung2; i++)
	{
		if (nuovastringa.charAt(i) == ".")
		   {
				   esiste=true 
				   posizione=i
				   intero=nuovastringa.substr(0,posizione)
				   posizioneintero=intero.length+3;
				   decimale=(nuovastringa.substr(posizione+1,2))
				   nuovastringa=intero + "." + decimale				  
								
		   }
		 else 
			{
			esiste=false
			}
     }
 
 //controlla se c'è una parte decimale     
    if (esiste == true) 
    {
       risultato =(intero + "."+ decimale)
    }
     else
    { 
      risultato = (nuovastringa)
    }
   
   return(risultato)
}


//----------------------------------------------
//sostituisce in valore la virgola col punto
//----------------------------------------------
function changepv(valore)
{
	var s=String(valore)
	s=s.replace(",",".");
    return (s)
}



//----------------------------------------------
//sostituisce in valore il punto con la virgola 
//----------------------------------------------
function changevp(valore)
{
	var s=String(valore)
	s=s.replace(".",",");
    return (s)
}


//-------------------------------------------------------------
//arrotonda il valore number alla cifra decimale x, default è 2
//-------------------------------------------------------------
function arrotonda(number,X) 
{
	number=changepv(number)
	X = (!X ? 2 : X);
	number=Math.round(number*Math.pow(10,X))/Math.pow(10,X);
	return changevp(number)
}

// Removes all characters which do NOT appear in string bag 
// from string s.

function stripCharsNotInBag (s, bag)

{   var i;
    var returnString = "";

    // Search through string's characters one by one.
    // If character is in bag, append to returnString.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) != -1) returnString += c;
    }

	returnarray = new Array()
	if( returnString != s)
		returnarray[1] = 1
	else
		returnarray[1] = 0

	returnarray[2] = returnString
	var str = new String(s);

//	if (str.search(CONST_PERMISSION) >= 0)
//	{
//		returnarray[3] = 1;
//	}
//	else
//	{
//		returnarray[3] = 0;
//	}

	return returnarray
}

	function nulltoempty(varname)
	{
		if (varname == null)
			varname = ""
		else
		{
			if (varname == 'null')
				varname = ""
		}

		return varname;
	}







function CtrlAlfa(x)
	{
		var x = window.event.keyCode
			if (((x <= 47) || (x >= 58)) && (x!= 13)) 
				{
					event.returnValue = false
				}
	}

// -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
// ---- permette la digitazione di soli numeri ---- permette la digitazione di soli numeri ---- permette la digitazione di soli numeri ----
// ----  onkeypress="CtrlNumeri(this)"
// -----------------------------------------------------------------------------------------------------------------------------------------------------------------------


function CtrlNumeri(x)
	{
		var x = window.event.keyCode
			if ((x <= 47) || (x >= 58)) 
				{
					event.returnValue = false
				}
	}

function CtrlNumeri_Meno(x)
	{
		var x = window.event.keyCode
			if ( (!((x > 47)&&(x < 58))) && (x != 45)) 
				{
					event.returnValue = false
				}
	}

function CtrlTel(x)
	{
		var x = window.event.keyCode
			if ((x < 47) || (x >= 58) && (x != 47) ) 
				{
					event.returnValue = false
				}
	}


function CtrlComune(x)
	{
		var x = window.event.keyCode
				if (((x < 65) || (x > 90)) && ((x < 97) || (x > 122)) && (x!= 32) && (x!= 39) && (x!= 13))
				{
					event.returnValue = false
				}
	}

function CtrlLettera(x)
	{
		var x = window.event.keyCode		
				if (((x < 65) || (x > 90)) && ((x < 97) || (x > 122)) && (x!= 32) && (x!= 39) && (x!=38) && (x!=46))
				{
					event.returnValue = false
				}
	}


function CtrlTitoloProf(x)
	{
		var x = window.event.keyCode		
				if (((x < 65) || (x > 90)) && ((x < 97) || (x > 122)) && (x!= 32) && (x!= 39) && (x!=38) && (x!=46))
				{
					event.returnValue = false
				}
	}

function AlfaNumLettere(x)
    {
    var x = window.event.keyCode	
      if (((((x <= 47) || (x >= 58)) && (x!= 13)))&&((((x < 65) || (x > 90)) && ((x < 97) || (x > 122)) && (x!= 32) && (x!= 39) && (x!=38) && (x!=46)) ))
       				event.returnValue = false
    }



function CtrlEmail(stringa)
{
	if (!
		(	
			(window.event.keyCode >= 48 && window.event.keyCode <= 57) ||
			(window.event.keyCode >= 65 && window.event.keyCode <= 90) || 
			(window.event.keyCode >= 96 && window.event.keyCode <= 122) || 
			(window.event.keyCode == 32) ||
			(window.event.keyCode == 45) ||
			(window.event.keyCode == 46) ||
			(window.event.keyCode == 64) ||
			(window.event.keyCode == 95) ||
			(window.event.keyCode == 192) ||
			(window.event.keyCode == 193) ||
			(window.event.keyCode == 200) ||
			(window.event.keyCode == 201) ||
			(window.event.keyCode == 210) ||
			(window.event.keyCode == 211) ||
			(window.event.keyCode == 217) ||
			(window.event.keyCode == 218) ||
			(window.event.keyCode == 225) ||
			(window.event.keyCode == 243) ||
			(window.event.keyCode == 250)
		)
		)
	{
		
		window.event.keyCode = 0
		return false;
	}
}




function CtrlInputBonifico(x)
{
   var x = window.event.keyCode
   if ((x < 32) || (x > 91 ) && ((x < 93) || (x > 122)) && (x!=162) && (x!=224) && (x!=232) && (x!=236) && (x!=242)) 
	{
		event.returnValue = false
	}
}

// Elimina gli zeri iniziali da una cifra  

function toglizerifiliale(valore)
{
 var stringa = valore.toString()
 for (var i=0; i<= stringa.length-1; i++)
     {
      if (stringa.charAt(i) != 0)
	      break;
     }
 stringa = stringa.substring(i,stringa.length)
 return stringa
}


//formatta una cifra inserendo il punto come carattere separatore 
//delle migliaia. Gestisce anche eventuali cifre decimali (euro)

function formatta (valore_Input)
	{
		var i = 0
		var j = 0
		var outresult = ""
		var output = ""
		var decimal = ""
		var stringa = valore_Input.toString();
		var indicevirgola = stringa.length
		var parteintera =""
		var partedecimale = ""
		var trovato = false
	
		//controlla se il segno - si trova nella parte finale del numero
		//e in caso affermativo lo sposta alla prima posizione
		if (stringa.charAt(stringa.length-1) == '-')
		 {
		   stringa= '-' + stringa.substr(0,stringa.length-1)
		 }
		
		//separa la parte decimale dalla parte intera e sostituisce la
		//virgola al punto come carattere separatore

		for (i = 0; i < stringa.length; i++)
		  {
		   if (stringa.charAt(i) == '.')
			{
		       partedecimale = stringa.substr(i,stringa.length)
		       partedecimale = ',' + partedecimale.substr(1,partedecimale.length)
		       parteintera = stringa.substr(0,indicevirgola-partedecimale.length)
		       trovato = true
		    }
		  }    

		if (trovato == false) 
			parteintera = stringa;
		
		parteintera=toglizerifiliale(parteintera);  
		
		//controlla che esista una parte intera 
		if(parteintera.length==0)
			parteintera='0'+parteintera
			
		//elimina gli zeri dalla parte decimale
		var zeridecimali = false  		
		for (i = 1; i < partedecimale.length; i++)
		  {
		   if (partedecimale.charAt(i) != 0)
		     { zeridecimali = true }
		   }
				
		if (zeridecimali == false)
			partedecimale = ''
					  		 
		//inserisce il carattere separatore delle migliaia      
		if (parteintera.charAt(0) != "-") 
			for(i = parteintera.length -1, j = 0; i >= 0; i--, j++)
			{ 
				if (j % 3 == 0)
					output = "." + output;
				output = parteintera.substring(i, i + 1) + output;
			}
		else
		   {
		      for(i = parteintera.length - 1, j = 0; i >= 1; i--, j++)
		       { 	
		    	 if (j % 3 == 0)
			     		output = "." + output;
				 output = parteintera.substring(i, i + 1) + output;
			   }
			 output= "-" + output;				
	      }  
			  
	   outresult = output.substring(0,output.length-1) + partedecimale
	   return outresult;		

	}
	


//formatta una cifra inserendo il punto come carattere separatore 
//delle migliaia. Gestisce anche eventuali cifre decimali (euro)

function formattaBonifici (valore_Input)
	{
		var i = 0
		var j = 0
		var outresult = ""
		var output = ""
		var decimal = ""
		var stringa = valore_Input.toString();
		var indicevirgola = stringa.length
		var parteintera =""
		var partedecimale = ""
		var trovato = false
	
		//controlla se il segno - si trova nella parte finale del numero
		//e in caso affermativo lo sposta alla prima posizione
		if (stringa.charAt(stringa.length-1) == '-')
		 {
		   stringa= '-' + stringa.substr(0,stringa.length-1)
		 }
		
		//separa la parte decimale dalla parte intera e sostituisce la
		//virgola al punto come carattere separatore

		for (i = 0; i < stringa.length; i++)
		  {
		   if (stringa.charAt(i) == '.' || stringa.charAt(i) == ',' )
			{
		       partedecimale = stringa.substr(i,stringa.length)
		       partedecimale = ',' + partedecimale.substr(1,partedecimale.length)
		       parteintera = stringa.substr(0,indicevirgola-partedecimale.length)
		       trovato = true
		    }
		  }    

		if (trovato == false) 
			parteintera = stringa;
		
		parteintera=toglizerifiliale(parteintera);  
		
		//controlla che esista una parte intera 
		if(parteintera.length==0)
			parteintera='0'+parteintera
			
		//elimina gli zeri dalla parte decimale
		var zeridecimali = false  		
		for (i = 1; i < partedecimale.length; i++)
		  {
		   if (partedecimale.charAt(i) != 0)
		     { zeridecimali = true }
		   }
				
		if (zeridecimali == false)
			partedecimale = ''
					  		 
		//inserisce il carattere separatore delle migliaia      
		if (parteintera.charAt(0) != "-") 
			for(i = parteintera.length -1, j = 0; i >= 0; i--, j++)
			{ 
				if (j % 3 == 0)
					output = "." + output;
				output = parteintera.substring(i, i + 1) + output;
			}
		else
		   {
		      for(i = parteintera.length - 1, j = 0; i >= 1; i--, j++)
		       { 	
		    	 if (j % 3 == 0)
			     		output = "." + output;
				 output = parteintera.substring(i, i + 1) + output;
			   }
			 output= "-" + output;				
	      }  
			  
	   outresult = output.substring(0,output.length-1) + partedecimale
	   return outresult;		

	}
		
function checkemail(str){
  var filter=/^.+@.+\..{2,3}$/
  return (filter.test(str))
  }

	
function formattadata(data)
{
  var strdata = data.toString()
	if ((strdata!='00000000') && (strdata!=''))
	{
		var gg = strdata.substr(0,2)
		var mm = strdata.substr(2,2)
		var aaaa = strdata.substr(4,4)
		strdata = gg + '/' + mm + '/' + aaaa
		return strdata
	}
	else
		return ""
}



function formattadataA(data)
{
  var strdata = data.toString()
	if ((strdata!='0000-00-00') && (strdata!=''))
	{
		var gg = strdata.substr(8,2)
		var mm = strdata.substr(5,2)
		var aaaa = strdata.substr(0,4)
	
		strdata = gg + '/' + mm + '/' + aaaa
		return strdata
	}
	else
		return ""
}


function formattaora(ora)
{
	var strora = '000000'+ora.toString()
	var new_ora = strora.substring(strora.length-6,strora.length)
	
	if (new_ora!='000000')
	{
		var hh = new_ora.substr(0,2)
		var mm = new_ora.substr(2,2)
		var ss = new_ora.substr(4,4)
		new_ora = hh + ':' + mm + ':' + ss
		return new_ora
	}
	else
		return ''
}

function formattaimporto (valore_Input)
	{
		var i = 0
		var j = 0
		var outresult = ""
		var output = ""
		var decimal = ""
		var stringa = valore_Input.toString();
		var indicevirgola = stringa.length
		var parteintera =""
		var partedecimale = ""
		var trovato = false
	
		for (i=0; i<=stringa.length -1; i++) 
			if ((stringa.charAt(i)=='.') ||(stringa.charAt(i)==','))
				stringa=stringa.substring(0,i)+stringa.substring(i+1,stringa.length);		

		//controlla se il segno - si trova nella parte finale del numero
		//e in caso affermativo lo sposta alla prima posizione
		if (stringa.charAt(stringa.length-1) == '-')
		 {
		   stringa= '-' + stringa.substr(0,stringa.length-1)
		 }
		
		//separa la parte decimale dalla parte intera e sostituisce la
		//virgola al punto come carattere separatore

		for (i = 0; i < stringa.length; i++)
		  {
		   if (stringa.charAt(i) == ',')
			{
		       partedecimale = stringa.substr(i,stringa.length)
		       partedecimale = ',' + partedecimale.substr(1,partedecimale.length)
		       parteintera = stringa.substr(0,indicevirgola-partedecimale.length)
		       trovato = true
		    }
		  }    

		if (trovato == false) 
			parteintera = stringa;
		
		parteintera=toglizerifiliale(parteintera);  
		
		//controlla che esista una parte intera 
		if(parteintera.length==0)
			parteintera='0'+parteintera
			
		//elimina gli zeri dalla parte decimale
		var zeridecimali = false  		
		for (i = 1; i < partedecimale.length; i++)
		  {
		   if (partedecimale.charAt(i) != 0)
		     { zeridecimali = true }
		   }
				
		if (zeridecimali == false)
			partedecimale = ''
					  		 
		//inserisce il carattere separatore delle migliaia      
		if (parteintera.charAt(0) != "-") 
			for(i = parteintera.length -1, j = 0; i >= 0; i--, j++)
			{ 
				if (j % 3 == 0)
					output = "." + output;
				output = parteintera.substring(i, i + 1) + output;
			}
		else
		   {
		      for(i = parteintera.length - 1, j = 0; i >= 1; i--, j++)
		       { 	
		    	 if (j % 3 == 0)
			     		output = "." + output;
				 output = parteintera.substring(i, i + 1) + output;
			   }
			 output= "-" + output;				
	      }  
			  
	   outresult = output.substring(0,output.length-1) + partedecimale
	   return outresult;		

	}

function isValidDate(dateStr)
{
	
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year
	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null) {
		alert('Data non valida')
		return -1 ;
	}
	

	month = matchArray[1]; // parse date into variables
	day = matchArray[3];
	year = matchArray[4];
	
	if (month < 1 || month > 12) { // check month range
		alert('Data non valida (controllare mese)')
		return -1;
	}

	if (day < 1 || day > 31) {
		alert('Data non valida (controllare giorno)')
		return -1;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) 
	{
		alert('Data non valida')
		return -1;
	}

	if (month == 2) 
	{ // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) 
		{
			alert('Data non valida (anno non bisestile)')
			return -1;
	   }
	}
	
	if (year <= 1900) {
		alert('Data non valida (controllare anno)')
		return -1;
	}
	
	return 0;
}


function isValidDateII(dateStr)
{
	
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year
	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null) {
		return false ;
	}
	

	day= matchArray[1]; // parse date into variables
	month = matchArray[3];
	year = matchArray[4];
	
	if (month < 1 || month > 12) { // check month range
		return false;
	}

	if (day < 1 || day > 31) {
		return false;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) 
	{
		return false;
	}

	if (month == 2) 
	{ // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) 
		{
			return false;
	   }
	}
	
	if (year <= 1900) {
		return false;
	}
	
	return true;
}



function ConvertiTestaData(data)
{
	// conversione dal formato GG/MM/AAAA a quello MM/GG/AAAA
	var format_date = data.substring(3,5) + '/' + data.substring(0,2) + '/' + data.substring(6,10) 
    return isValidDate(format_date)
}


function dateDiff(input) 
{
	var date=input;
	date = date.toString();
	
	// conversione dal formato GG/MM/AAAA a quello MM/GG/AAAA
	var format_date = date.substring(3,5) + '/' + date.substring(0,2) + '/' + date.substring(6,10) 
		
	date1 = new Date();
	diff  = new Date();

	date1temp = new Date(format_date);
	date1.setTime(date1temp.getTime());

	
	/*if (isValidDate(format_date)==0)
	{
		date1temp = new Date(format_date);
		date1.setTime(date1temp.getTime());
	}
	else
		return 1; // otherwise exits
	*/
	

	// sets difference date to difference of first date and second date
	var d = new Date
	
	diff.setTime(date1.getTime() - d.getTime());
	timediff = diff.getTime();

	days = (Math.floor(timediff / (1000 * 60 * 60 * 24))+1); 
	
	if ((days<-60)||(days>20))
		return false
	else
		return true;
}


/*function dateDiff(input) 
{

	var today=new Date();
	var d = new Date ();
	
	today.setTime(d.getTime());
	
	date1 = new Date();
	
	var date1temp = new Date(input);
	date1.setTime(date1temp.getTime());

	alert('input: '+date1 )
	diff  = new Date();
	diff  = new Date();

	// sets difference date to difference of first date and second date
	var d = new Date
	
	diff.setTime(date1.getTime() - today.getTime());
	var timediff = diff.getTime();

	days = (Math.floor(timediff / (1000 * 60 * 60 * 24))+1); 
	
	alert('days :' + days)
	
	if ((days<-60)||(days>20))
		return false
	else
		return true;
}
*/


function FormatDate(i,delKey,direction) 
{
	if (((delKey <= 47) || (delKey>= 58)) && (delKey < 96) || (delKey > 105)) 
		{
			return
		}

	if (i.value.length < 19) 
	 {
	  if (delKey!=9) 
	  { 
		if(delKey!=8 && delKey!=46 && delKey!=16 && ! (delKey>36 && delKey<41))
		 { 
			var fieldLen = i.value.length
			if ((delKey >= 48 && delKey <= 57) || (delKey >= 96 && delKey <=105)) 
			{
				if (fieldLen == 2 || fieldLen == 5) 
				{
					i.value = i.value + "/";
				}
			}
	  	    else 
	  	   {
				if (direction == "up") 
				{
					if (i.value.length == 0) 
					{
						i.value = ""
					} 
					else 
					{
						i.value = i.value.substring(0,i.value.length-1)
					}
				}
			}
		i.focus()
		}
	} 
	else 
	{
			if (direction == "down") 
			{ 		
				CheckDate(i)
			}
		}
	}
}



function FormatDateHour(i, delKey,direction) 
{

/*
				if ((x < 47) || (x > 58)) 
				{
					event.returnValue = false
				}

*/

	if (i.value.length <= 19) 
	 {
	  if (delKey!=9) 
	  { 
		if(delKey!=8 && delKey!=46 && delKey!=16 && ! (delKey>36 && delKey<41))
		 { 
			var fieldLen = i.value.length
			if ((delKey >= 48 && delKey <= 57) || (delKey >= 96 && delKey <=105)) 
			{
				if (fieldLen == 2 || fieldLen == 5) 
				{
				i.value = i.value + "/";
				}
				
				if (fieldLen == 10)
				{  
				    i.value = i.value + " ";
				}  
				if ((fieldLen == 13)||(fieldLen == 16))  
				{
				  i.value = i.value + ":";
				}  
			}
	  	    else 
	  	   {
				if (direction == "up") 
				{
					if (i.value.length == 0) 
					{
						i.value = ""
					} 
					else 
					{
						i.value = i.value.substring(0,i.value.length-1)
					}
				}
			}
		i.focus()
		}
	} 
	else 
	{
			if (direction == "down") 
			{ 		
				CheckDate(i)
			}
		}
	}
}





function CheckDateHour(THISDATE) 
{
	var err=0
	a=THISDATE.value
	if (a.length != 19) err=1
	b = a.substring(0, 2)
	c = a.substring(2, 3)
	d = a.substring(3, 5)
	e = a.substring(5, 6)
	f = a.substring(6, 10)
	g = a.substring(11, 13)
	h = a.substring(14, 16)
	if (b<1 || b>31) err = 1
	if (d<1 || d>12) err = 1
	if (g>24) err = 1
	if (h>59) err = 1
	if (f<1900) err = 1
	if (d==4 || d==6 || d==9 || d==11)
	{
		if (b==31) err=1
	}
	if (d==2)
	{
		var g=parseInt(f/4)
		if (isNaN(g)) 
		{
			err=1
		}
		if (b>29) 
			err=1
		if (b==29 && ((f/4)!=parseInt(f/4))) 
			err=1
	}
	
	if (err==1) 
	{
		return false;
	}
	else
		return true
}



function CheckDate(THISDATE) 
{
	var err=0
	a=THISDATE.value
	if (a.length != 10) err=1
	b = a.substring(0, 2)
	c = a.substring(2, 3)
	d = a.substring(3, 5)
	e = a.substring(5, 6)
	f = a.substring(6, 10)
	if (b<1 || b>31) err = 1
	if (d<1 || d>12) err = 1
	if (f<1900) err = 1
	if (d==4 || d==6 || d==9 || d==11)
	{
		if (b==31) err=1
	}
	if (d==2)
	{
		var g=parseInt(f/4)
		if (isNaN(g)) 
		{
			err=1
		}
		if (b>29) 
			err=1
		if (b==29 && ((f/4)!=parseInt(f/4))) 
			err=1
	}
	
	if (ContrCaratteriNonData (THISDATE))
	{
		//alert('Data non valida')
		err=1
	}

	
	if (err==1) 
	{
		return false;
	}
	else
		return true
}





// funzione trim 

	String.prototype.trim = function()
	{
    // Use a regular expression to replace leading and trailing 
    // spaces with the empty string
    return this.replace(/(^\s*)|(\s*$)/g, "");
	}
	
function numeroconto(valore)
{
	var stringa = valore.toString();
	var len = stringa.length
	var ultima = stringa.charCodeAt(len-1)
	if ((ultima < 48) || (ultima > 57))
	{
		stringa=stringa.substring(0,len-1)
	}
	var app=''
	var index 
	for (var i=0; i <= len-1; i++)
	{
		if (stringa.charAt(i) != '0')
		{
			index= i;
			break
		}
	}
	app = stringa.substr(index,len)
	return app
}	
	
	
	function nulltoempty(varname)
	{
		if (varname == null)
			varname = ""
		else
		{
			if (varname == 'null')
				varname = ""
		}

		return varname;
	}



function VerifyDiffDate(dateS, dateF) 
{
	dateBegin=dateS.toString();
	dateEnd=dateF.toString();
	
	// conversione dal formato GG/MM/AAAA a quello MM/GG/AAAA
	var format_dateBegin = dateBegin.substring(3,5) + '/' + dateBegin.substring(0,2) + '/' + dateBegin.substring(6,10) 
	var format_dateEnd = dateEnd.substring(3,5) + '/' + dateEnd.substring(0,2) + '/' + dateEnd.substring(6,10) 		
	
	diff  = new Date();

	date1temp = new Date(format_dateBegin);
	date2temp = new Date(format_dateEnd);
	
	// sets difference date to difference of first date and second date
		
	diff.setTime(date2temp.getTime() - date1temp.getTime());
	timediff = diff.getTime();
	
	if (timediff<0)
		return false
	else
		return true;
}


function toglizeri(valore)
{
 var stringa = valore.toString()
 for (var i=0; i<= stringa.length-1; i++)
     {
      if (stringa.charAt(i) != 0)
	      break;
     }
 stringa = stringa.substring(i,stringa.length)
 return stringa
}

//Setta il puntatore del mounse in clessidra
function setpointer()
 {
  document.body.style.cursor = 'wait'
 } 

//Setta il puntatore del mounse a default
function resetpointer()
 {
  document.body.style.cursor = 'default'
 }



function PrenotaIdOperazione (inputXML, sbscommonver, userLCID)
{
	var ResultXML = XBroker.BypassLineEx('Query121UtilBySrvName',inputXML,sbscommonver,userLCID)
	
	/*
	//output kana
	//var ResultXML ='<result status="-23423" status_message="Errore kana"/>'	
	
	var ResultXML='<?xml version="1.0"?><QUERY121UTILITY_Response Version="2" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"><Event Categoria="ContiCorrenti" Servizio="QUERY121BENEFBYNUM" Ambiente="TEST" NDGCliente="0" NDGPromotore="0" IdOperatore="0" Canale="1" IdRichiesta="234" Terminale="" Group="KanaGroup" IndirizzoIP="" IDLogAW="100">'
	//ResultXML +='<SubEvent subeventname="1" CheckCode="-1" ErrorCodeTr="1 " ErrorTextTr="No records" ErrorTextAgent="Agent out" ProcessCode="0" MisErrorText="MIS disattivato" MisClientTransaction="xxxx" ErrorBSCode="152" ErrorBSDesc="Object not set"/>'
	//ResultXML +='<SubEvent subeventname="1" CheckCode="0"><s:AttributeType name="IdOperazione" dt:type="string" dt:maxLength="16"/><z:row IdOperazione="1598" /></SubEvent>'
	ResultXML +='<SubEvent subeventname="1" CheckCode="-2" ErrorCodeTr="1 " ErrorTextTr="No records" ErrorTextAgent="Agent out" ProcessCode="0" MisErrorText="MIS disattivato" MisClientTransaction="xxxx" ErrorBSCode="152" ErrorBSDesc="Object not set"/>'
	//ResultXML +='<SubEvent subeventname="1" CheckCode="-2" ErrorCodeTr="rwt " ErrorTextTr="No records" ErrorTextAgent=" " ProcessCode=" " MisErrorText=" " MisClientTransaction=" " ErrorBSCode="" ErrorBSDesc=""/>'
	ResultXML +='</Event></QUERY121UTILITY_Response>'
	*/
	
	var xmlDOM = new ActiveXObject("Microsoft.XMLDOM");
	var bok = xmlDOM.loadXML (ResultXML)
	
	if (!bok)
	{
		alert('Errore nel caricamento di ResultXML')
		return -1
	}
			
	var SubEventList=xmlDOM.getElementsByTagName("SubEvent")
	var subeventcount = SubEventList.length;
	if (subeventcount == 0 )
	{
		var XMLRoot = xmlDOM.selectSingleNode("//result")
		if (XMLRoot.attributes.item(0).text != "0")
		{	
			alert('ERRORE QUERY121UTILITY: ' + XMLRoot.attributes.item(1).text)
			return -1
		}			
	}
	else
	{
		if(SubEventList.item(0).getAttribute("CheckCode")!="0" && SubEventList.item(0).getAttribute("CheckCode")!="-2")
		{
			var checkcode = nulltoempty(SubEventList.item(0).getAttribute("CheckCode"))					
			var errorcodetr = nulltoempty(SubEventList.item(0).getAttribute("ErrorCodeTr").trim())
			var errortexttr = nulltoempty(SubEventList.item(0).getAttribute("ErrorTextTr").trim())
			var errortextagent = nulltoempty(SubEventList.item(0).getAttribute("ErrorTextAgent").trim())
			var processcode = nulltoempty(SubEventList.item(0).getAttribute("ProcessCode").trim())
			var miserrortext = nulltoempty(SubEventList.item(0).getAttribute("MisErrorText").trim())
			var misclienttransaction = nulltoempty(SubEventList.item(0).getAttribute("MisClientTransaction").trim())
			var errorbscode = nulltoempty(SubEventList.item(0).getAttribute("ErrorBSCode").trim())
			var errorbsdesc = nulltoempty(SubEventList.item(0).getAttribute("ErrorBSDesc").trim())

			var errhtmerror = ''
			errhtmerror +='AW Check Code : ' + checkcode + ' ; ' 
						
			if ( errorcodetr != '')
			{
				errhtmerror += 'AW Error Code: '+ errorcodetr + ' ; '
			}
			if ( errortexttr != '')
			{
				errhtmerror += 'AW Error Text: '+ errortexttr + ' ; '
			}
			if ( errortextagent != '')
			{
				errhtmerror += 'AW Error Text: '+ errortextagent + ' ; '
			}
			if ( processcode != '')
			{
				errhtmerror += 'AW Error Text: '+ processcode + ' ; '
			}
			if ( miserrortext != '')
			{
				errhtmerror += 'AW Error Text: '+ miserrortext + ' ; '
			}
			if ( misclienttransaction != '')
			{
				errhtmerror += 'AW Error Text: '+ misclienttransaction + ' ; '
			}
			if ( errorbsdesc != '')
			{
				errhtmerror += 'Business Service Error: '+ errorbsdesc + ' ; '
			}

			alert('ERRORE QUERY121UTILITY: ' + errhtmerror)
			return -1
		}
							
		if(SubEventList.item(0).getAttribute("CheckCode")=="-2")
		{		
			alert('Nessun IdOperazione assegnato')
			return false		
		}
		if (SubEventList.item(0).getAttribute("CheckCode")=="0")
	    {
			var rowList1 = SubEventList.item(0).selectNodes("z:row")
			var rowCount1 = rowList1.length
			IdOperazione = nulltoempty(rowList1.item(0).getAttribute("IdOperazione")).trim()
			return (IdOperazione)
		}							
	}

}



function ContrCaratteriNonNum (valore)
{
	valore=valore.replace(/\./g,"");
	var blnok=false
	if (isNaN(valore))
	{
		alert('Carattere immesso non valido')
		blnok=true
		return blnok
	}
	return blnok
}



function ControllaNonNum(valoreinput)
{
	var valore = (valoreinput.value).replace(/\./g,"");
	if(isNaN(valore))
	{
		alert('Carattere immesso non valido')
		valoreinput.value=''
		valoreinput.focus()
	}
}



function ControllaNonNumNeg(valoreinput)
{
	var valore = valoreinput.value
	if (valore.charAt(0)=='-')
		valore=valore.substring(1,valore.length)

	if(isNaN(valore))
	{
		alert('Carattere immesso non valido')
		valoreinput.value=''
		valoreinput.focus()
	}

}



//controlla che nella data siano inseriti caratteri validi
function ContrCaratteriNonData(valore)
{
	valore=String(valore.value).replace(/(\/)/g,"");
	var blnok=false
	var lenstr = valore.length
	for(var i=0;i<lenstr;i++)
	{
		if (isNaN(valore.charAt(i)))
		{
			blnok=true
			return blnok
		}
		
	}
	return blnok
}



function ChiamaFormatta(valoreinput)
{
	var blncontrollacaratteri=false
	var valore = valoreinput.value
	blncontrollacaratteri=ContrCaratteriNonNum(valore)
	if (!blncontrollacaratteri)
	{
		valore = formattaimporto(valore)
		valoreinput.value = valore
	}
	else
	{
		valoreinput.value = '0'
	}
	valoreinput.style.textAlign = "right"

}


function trasform_ndg (ndg)
{
	var ndgzeri = '0000000000000000' + ndg
	ndgzeri = ndgzeri.substring((ndgzeri.length-16), ndgzeri.length)
	return ndgzeri
}	



// funzione per gestire i bottoni delle dispositive
function GestioneBottoni(provenienza,display,where)
{
	//alert(provenienza + '---' + display + '---' + where)
	if (String(provenienza)=='sospesireload')
	{				
		try
		{
			eval(where+'document.azzera.style.display=String(display)');
		}
		catch(e)
		{
		}
		try
		{
			eval(where+'document.rubricaben.style.display=String(display)');
		}
		catch(e)
		{
		}
		
		try
		{	
			if (eval(where+'document.frmbonifico.chklegge.checked'))
			{	
				eval(where+'document.esegui.style.display=\'none\'');
				eval(where+'document.annullasos.style.display=String(display)');
			}
			else
			{	
				eval(where+'document.esegui.style.display=String(display)');
				eval(where+'document.annullasos.style.display=\'none\'');
			}
		}	
		catch(e)
		{
			eval(where+'document.esegui.style.display=String(display)');
			eval(where+'document.annullasos.style.display=String(display)');
		}

		eval(where+'document.esegTP.style.display=String(display)');
	}
	else if (String(provenienza)=='ordinireload')
	{
		eval(where+'document.acquisto.style.display=String(display)');
		eval(where+'document.vendita.style.display=String(display)');
		eval(where+'document.annullasos.style.display=String(display)');
	}
	else if (String(provenienza)=='verifica')
	{
		eval(where+'document.btnverifica.style.display=String(display)');
	}
	else if (String(provenienza)=='revocaordine')
	{
		eval(where+'document.conferma.style.display=String(display)');
		eval(where+'document.annullasos.style.display=String(display)');
	}
	else if (String(provenienza)=='statoordine')
	{
		eval(where+'document.Revoca.style.display=String(display)');
	}
	else if (String(provenienza)=='statobonifici')
	{
		eval(where+'document.annulla.style.display=String(display)');
	}

}

//**--------------------------------------
//funzione che elimina gli zeri iniziali
//se tutti sono zeri lascia l'ultimo
//--------------------------------------**
function toglizeriCIN(valore)
{
 var stringa = valore.toString()
 for (var i=0; i<= stringa.length-1; i++)
     {
      if (stringa.charAt(i) != 0)
	      break;
     }
 stringa = stringa.substring(i,stringa.length)
	if (stringa.length==0 )
stringa=0
 return stringa
}

//**---------------------------------
// funzione per il calcolo del CIN 
//---------------------------------**

function GetCINConto(Codfiliale, numconto) 
   {
		var CIN 
		var FA, Fa1, FO, F1, F2, F01, F21 
		var X1, X2, X3, X4, X5, X6, X7, X31, X51, X71 
		var K1, K2
		var k22 
		var i , mid_z, k2_temp,lenk2_temp
		var conto, Filiale, Z , temp



			//--recupero del numero di conto
		    conto_temp = ("0000000" + numconto);
		    lenconto=conto_temp.length;
		    nconto= conto_temp.substring(lenconto-7, lenconto);
		    nlenconto=nconto.length;
		   
		   //--recupero del numero di filiale 
		    filiale = ("0000" + Codfiliale);
		    lenfiliale= filiale.length;
		    nfiliale = filiale.substring(lenfiliale-4,lenfiliale) ;
		    nlenfiliale= nfiliale.length;
		   
		    FA = parseInt(nfiliale.substring(0,1))
		    FO = parseInt(nfiliale.substring(1,2));
		    F1 = parseInt(nfiliale.substring(2,3));
		    F2 = parseInt(nfiliale.substring(nlenfiliale,3));
		    X1 = parseInt(nconto.substring(0,1));
		    X2 = parseInt(nconto.substring(1,2));
		    X3 = parseInt(nconto.substring(2,3));
		    X4 = parseInt(nconto.substring(3,4));
		    X5 = parseInt(nconto.substring(4,5));
		    X6 = parseInt(nconto.substring(5,6));
		    X7 = parseInt(nconto.substring(6,7));
		   
		   
		   //calcolo della prima cifra del CIN

		    F01 = FO * 2;
		    F21 = F2 * 2;
		    X31 = X3 * 2;
		    X51 = X5 * 2;
		    X71 = X7 * 2;

		   if ( F01 > 9 )
		    { 
		      F01 = F01 - 9 ;
		    }
		   if (F21 > 9) 
		    {
			  F21 = F21 - 9 ;
			}  
           if (X31 > 9) 
		    {
			  X31 = X31 - 9 ;
			}  
		   if (X51 > 9) 
		    {
			  X51 = X51 - 9 ;
			}  
		   if (X71 > 9) 
		    {
			  X71 = X71 - 9 ;
			}  
         temp= (FA + F01 + F1 + F21 + X1 + X2 + X31 + X4 + X51 + X6 + X71)
         K1 = (1000 - (FA + F01 + F1 + F21 + X1 + X2 + X31 + X4 + X51 + X6 + X71))
         K1 = ("000" + K1)
         len_k1=K1.length
         K1 = K1.substring(len_k1-1,len_k1)
        
         //calcolo della seconda cifra del CIN

    
       
      
       Z1 =(F1.toString() + F2.toString() + X2.toString() + X3.toString() + X4.toString() + X5.toString() + X6.toString() + X7.toString() + X1.toString() + FA.toString() + FO.toString()) 
       Z1=parseInt(toglizeriCIN(Z1))
       Z2 =(F2.toString() + X2.toString() + X3.toString() + X4.toString() + X5.toString() + X6.toString() + X7.toString() + X1.toString() + FA.toString() + FO.toString()) 
       Z2=parseInt(toglizeriCIN(Z2))
       Z3 =(X2.toString() + X3.toString() + X4.toString() + X5.toString() + X6.toString() + X7.toString() + X1.toString() + FA.toString() + FO.toString()) 
       Z3=parseInt(toglizeriCIN(Z3))
       Z4 =(X3.toString() + X4.toString() + X5.toString() + X6.toString() + X7.toString() + X1.toString() + FA.toString() + FO.toString()) 
       Z4=parseInt(toglizeriCIN(Z4))
       Z5 =(X4.toString() + X5.toString() + X6.toString() + X7.toString() + X1.toString() + FA.toString() + FO.toString()) 
       Z5=parseInt(toglizeriCIN(Z5))
       Z6 =(X5.toString() + X6.toString() + X7.toString() + X1.toString() + FA.toString() + FO.toString()) 
       Z6=parseInt(toglizeriCIN(Z6))
       Z7 =(X6.toString() + X7.toString() + X1.toString() + FA.toString() + FO.toString()) 
       Z7=parseInt(toglizeriCIN(Z7))
       Z8 =(X7.toString() + X1.toString() + FA.toString() + FO.toString())
       Z8=parseInt(toglizeriCIN(Z8))
       Z9a = (X1.toString() + FA.toString() + FO.toString()) 
       Z9b = (FA.toString() + FO.toString()) 
       Z9c = (FO.toString())
       Z9a = parseInt(toglizeriCIN(Z9a))
       Z9b = parseInt(toglizeriCIN(Z9b))
       Z9c = parseInt(toglizeriCIN(Z9c))
       Z9  = (Z9a + Z9b + Z9c)
       Z = Z1 + Z2+ Z3+ Z4 + Z5 + Z6 + Z7 + Z8 + Z9
       Z = ("00000000000" + Z)
       len_z = Z.length
       Z = Z.substring(len_z-11, len_z)
       k22=0
      for (i=0; i < 11 ; i++)
          {
         
          mid_z=Z.substring(i,i+1)
          mid_z=parseInt(mid_z)          
          k22= k22+ mid_z
          }
       
		k2_temp= "000"+ k22
		lenk2_temp=k2_temp.length
		K2=k2_temp.substring(lenk2_temp-3,lenk2_temp)
		lenk2_temp2=K2.length
		K2=K2.substring(lenk2_temp2-1,lenk2_temp2)
        
        // recupero l'intero numero di CIN
        // concatendando la prima cifra con la seconda
        CIN= K1+K2

 return(CIN)
 
  }


  function check_telefono (obj,str) {
  var ckOK = " 0123456789+-";
  var tel = obj.value;
  if (tel.length > 0) {
    var ok = true;
    for (i=0; i < tel.length;  i++)  {
      for (j=0; j < ckOK.length;  j++)
        if (tel.charAt(i) == ckOK.charAt(j)) {
          ok = true;
          break;
        }
        else 
          ok=false;
      if (!ok)  break;
    }
    if (!ok){
      return (false);
    }
  }
  return (true);
}