﻿// JScript File

var char_nome = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ' \t\r\n\f";
var char_indirizzo = "()/.,-°\ 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ' \t\r\n\f";
var char_email = "@.-_1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var char_completo = "\|!£$%&/()=?^*+[]@°#;:§€<>-_.,1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ' \t\r\n\f" + '"';
var char_numeri = "0123456789";
var char_telefono = "()0123456789+-./\ #";
var char_codice_fiscale ="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var char_valuta = "0123456789.,";
var char_password = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var char_path = "()/.,-°\:_ 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ' \t\r\n\f\\";

function SelezionaCombo(obj,v)
{
    for(i=0;i<obj.options.length;i++) 
    {
        if (obj.options[i].value == v)
        {
            obj.selectedIndex = i;
            break;
        }
    }
}

function controlla_combo(nomecampo,descrizionecampo) {
	if (nomecampo.selectedIndex==0) {
		if (descrizionecampo==null)
			alert("Selezionare un valore per il campo \"" + nomecampo.name + "\".")
		else
			alert("Selezionare un valore per il campo \"" + descrizionecampo + "\".")
		nomecampo.focus();
		return false;
	} else return true;
}

function controlla_campo(nomecampo,caratterivalidi,obbligatorio,descrizionecampo) {
	var checkOK = caratterivalidi;
	var checkStr = nomecampo.value;
	var allValid = true;
	if (nomecampo.value == "" && obbligatorio) {
		if (descrizionecampo==null)
			alert("Inserire un valore nel campo \"" + nomecampo.name + "\".")
		else
			alert("Inserire un valore nel campo \"" + descrizionecampo + "\".")
		nomecampo.focus();
		return false
	}
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++)
			if (ch == checkOK.charAt(j))
				break;
			if (j == checkOK.length) {
				allValid = false;
				break
			}
	}
	if (!allValid) {
		if (descrizionecampo==null)
			alert("Caratteri non ammessi nel campo \"" + nomecampo.name + "\".")
		else
			alert("Caratteri non ammessi nel campo \"" + descrizionecampo + "\".")
		nomecampo.focus();
		return false
	}
	return true
}

function controlla_campo_intervallo(nomecampo,valoreminimo,valoremassimo,obbligatorio,descrizionecampo) {
	var checkOK = "0123456789";
	var checkStr = nomecampo.value;
	var allValid = true;
	if (nomecampo.value == "" && obbligatorio) {
		if (descrizionecampo==null)
			alert("Inserire un valore nel campo \"" + nomecampo.name + "\".")
		else
			alert("Inserire un valore nel campo \"" + descrizionecampo + "\".")
		nomecampo.focus();
    return false
	}
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++)
			if (ch == checkOK.charAt(j))
				break;
			if (j == checkOK.length) {
				allValid = false;
				break
			}
	}
	if (!allValid) {
		if (descrizionecampo==null)
			alert("Caratteri non ammessi nel campo \"" + nomecampo.name + "\".")
		else
			alert("Caratteri non ammessi nel campo \"" + descrizionecampo + "\".")
		nomecampo.focus();
		return false
	}
	if ((checkStr < valoreminimo || checkStr > valoremassimo) && nomecampo.value != '') {
		if (descrizionecampo==null)
			alert("Il valore del campo \"" + nomecampo.name + "\" non è accettabile:\ninserire un valore compreso tra " + valoreminimo + " e " + valoremassimo + ".");
		else
			alert("Il valore del campo \"" + descrizionecampo + "\" non è accettabile:\ninserire un valore compreso tra " + valoreminimo + " e " + valoremassimo + ".");
		nomecampo.focus();
		return false
	}
	return true
}

function controlla_campo_lunghezza(nomecampo,caratterivalidi,lunghezza,obbligatorio,descrizionecampo) {
	var checkOK = caratterivalidi;
	var checkStr = nomecampo.value;
	var allValid = true;
	if (nomecampo.value == "" && obbligatorio) {
		if (descrizionecampo==null)
			alert("Inserire un valore nel campo \"" + nomecampo.name + "\".")
		else
			alert("Inserire un valore nel campo \"" + descrizionecampo + "\".")
		nomecampo.focus();
		return false
	}
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++)
			if (ch == checkOK.charAt(j))
				break;
			if (j == checkOK.length) {
				allValid = false;
				break;
			}
	}
	if (!allValid) {
		if (descrizionecampo==null)
			alert("Caratteri non ammessi nel campo \"" + nomecampo.name + "\".")
		else
			alert("Caratteri non ammessi nel campo \"" + descrizionecampo + "\".")
		nomecampo.focus();
		return false
	}
	if (nomecampo.value.length != lunghezza && nomecampo.value != '') {
		if (descrizionecampo==null)
			alert("La lunghezza del campo \"" + nomecampo.name + "\" non è accettabile.")
		else
			alert("La lunghezza del campo \"" + descrizionecampo + "\" non è accettabile.")
		nomecampo.focus();
		return false
	}
	return true
}

function controlla_campo_carattere(nomecampo,caratterivalidi,carattereobbligatorio,obbligatorio,descrizionecampo) {
	var checkOK = caratterivalidi;
	var checkStr = nomecampo.value;
	var allValid = true;
	var allValidO = false;
	if (nomecampo.value == "" && obbligatorio) {
		if (descrizionecampo==null)
			alert("Inserire un valore nel campo \"" + nomecampo.name + "\".")
		else
			alert("Inserire un valore nel campo \"" + descrizionecampo + "\".")
		nomecampo.focus();
		return false
	}
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++)
			if (ch == checkOK.charAt(j))
				break;
			if (j == checkOK.length) {
				allValid = false;
				break
			}
	}
	if (!allValid) {
		if (descrizionecampo==null)
			alert("Caratteri non ammessi nel campo \"" + nomecampo.name + "\".")
		else
			alert("Caratteri non ammessi nel campo \"" + descrizionecampo + "\".")
		nomecampo.focus();
		return false
	}
	for (i = 0; i < checkStr.length; i++) {
		if (checkStr.charAt(i) == carattereobbligatorio && nomecampo.value != "") {
			allValidO = true;
			break
			}
	}
	if (!allValidO && nomecampo.value != "") {
		if (descrizionecampo==null)
			alert("Il campo \"" + nomecampo.name + "\" non sembra essere valido.")
		else
			alert("Il campo \"" + descrizionecampo + "\" non sembra essere valido.")
		nomecampo.focus();
		return false
	}
	return true
}

function sostituisci(nomecampo,valoredacercare,valoredasostituire) {
	var checkStr = new String();
	checkStr = nomecampo.value;
	var nvolte;	
 	var i;	
	var nuovastr = new String();		
	var ch = new String();		
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
	    if (ch != valoredacercare)
			nuovastr = nuovastr + ch
        else
			nuovastr = nuovastr + valoredasostituire
	}
	return (nuovastr);
}

function replaceIt(sString, sReplaceThis, sWithThis) { 
    if (sReplaceThis != "" && sReplaceThis != sWithThis)
    { 
        var counter = 0; 
        var start = 0; 
        var before = ""; 
        var after = ""; 
        while (counter<sString.length)
        { 
            start = sString.indexOf(sReplaceThis, counter); 
            if (start == -1)
            { 
                break; 
            }
            else
            { 
                before = sString.substr(0, start); 
                after = sString.substr(start + sReplaceThis.length, sString.length); 
                sString = before + sWithThis + after; 
                counter = before.length + sWithThis.length; 
            } 
        } 
    } 
    return sString; 
} 

function sostituiscistringa(stringainput,valoredacercare,valoredasostituire) {
	checkStr = stringainput;
	var nvolte;	
 	var i;	
	var nuovastr = new String();		
	var ch = new String();		
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
	    if (ch != valoredacercare)
			nuovastr = nuovastr + ch
        else
			nuovastr = nuovastr + valoredasostituire
	}
	return (nuovastr);
}

function controlla_valuta(nomecampo,moneta,min,max,obbligatorio,nonzero,descrizionecampo) {
//si aspetta una valuta in lire da controllare
	var checkOK = char_valuta;
	var checkStr = nomecampo.value;
	var allValid = true;
	var decPoints = 0;
	var allNum = "";
	var valore;
	if (nomecampo.value == "" && obbligatorio) {
		if (descrizionecampo==null)
			alert("Inserire un valore nel campo \"" + nomecampo.name + "\".")
		else
		    alert("Inserire un valore nel campo \"" + descrizionecampo + "\".")
	    nomecampo.focus();
	    return false
	}
	if (nomecampo.value == 0 && nonzero) {
		if (descrizionecampo==null)
			alert("Il valore contenuto nel campo \"" + nomecampo.name + "\" deve essere maggiore di zero.")
		else
			alert("Il valore contenuto nel campo \"" + descrizionecampo + "\" deve essere maggiore di zero.")
	    nomecampo.focus();
	    return false
	}
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
	    for (j = 0;  j < checkOK.length;  j++) {
			if (checkStr.charCodeAt(i) - checkOK.charCodeAt(j) == 0) {
				break;
			}
		}
		if (j == checkOK.length) {
			if ((ch!=".") || (((checkStr.length-i)%4)==0)) {
				allValid = false;
				break;
			}
		}
		allNum += ch;
	}
	if (!allValid) {
		if (descrizionecampo==null)
			alert("Il formato della cifra nel campo \"" + nomecampo.name + "\" non è corretto.")
		else
		    alert("Il formato della cifra nel campo \"" + descrizionecampo + "\" non è corretto.")
		nomecampo.focus();
		return false
	}
	stringaPulita = togli_punti_e_virgole(nomecampo.value);
	if((stringaPulita.length)>0)
		valore= stringaPulita;
	else
		valore=0
	if ((moneta==2) || (moneta=="euro") || (moneta=="EURO") || (moneta=="'Euro")) { /* ----- EURO ----- */
		valore=valore*1936.27
	}
	if (!(valore>=min) || !(valore<=max)) {
		if (descrizionecampo==null)
			alert("Il valore specificato nel campo \"" + nomecampo.name + "\" non è ammissibile.")
		else
			alert("Il valore specificato nel campo \"" + descrizionecampo + "\" non è ammissibile.")
		nomecampo.focus();
		return false
	}
	return true
}

function controlla_radio(nomecampo,descrizionecampo) {
	var radioSelected = false;
	for (i = 0; i < nomecampo.length; i++) {
		if (nomecampo[i].checked)
			radioSelected = true
	}
	if (!radioSelected) {
		if (descrizionecampo==null)
			alert("Effettuare una selezione per il campo \"" + nomecampo.name + "\".");
		else
			alert("Effettuare una selezione per il campo \"" + descrizionecampo + "\".");
	    nomecampo[0].focus();
	    return false
	}
	return true
}

function controlla_separatori_migliaia() 
{
	var flag = 0;
	for (var i = 0; i < arguments.length; i += 2)
		{
			var result = arguments[i].match(/[^.\d]|[.]+\d{4,}[.]+|[.]\d{0,2}[.]|[.]\d{0,2}$|[.]\d{4,}$/gi);
				if(result!=null)
					{
					alert("PrestitiOnline\n\n Controllare che in "+arguments[i+1]+", i valori immessi siano dei numeri consistenti:\n\n" +
							"- non sono ammessi numeri decimali\n" +
							"- usare il SOLO punto (facoltativo) per raggruppare le migliaia\n" +
							"- non inserire caratteri che non siano delle cifre.\n\n");
					return false;
					}	
		}
return true;
}

function controlla_percentuali() {
	var flag = 0;
	for (var i = 0; i < arguments.length; i+=2)
		{
			var result = arguments[i].match(/\d*[.,]{2,}\d*|[%]|\d*[a-zA-z]|\d*[.,]\d{1,}[.,%]\d*/g);
				if(result != null)
					{
					alert("Attenzione\n\nControllare che per i tassi di interesse, i valori immessi siano dei numeri consistenti:\n\n" +
							"- non inserire il simbolo \"%\"\n" +
							"- usare la virgola o il punto per dividere i decimali\n" +
							"- non inserire caratteri che non siano delle cifre.\n\n");
					return false;
					}	
		}
return true;
}

function campo_vuoto(campo) {
	if (campo.value=="" || campo.value==null)
		return true;
	else
		return false;
}

function togli_punti_e_virgole(str) {
//toglie punti e virgole dalla stringa data.
	str = sostituiscistringa(str,".","");
	str = sostituiscistringa(str,",","");
	return str;
}

function controlla_email(nomecampo) {
	var emailStr = nomecampo.value;
	
	/* The following variable tells the rest of the function whether or not
	to verify that the address ends in a two-letter country or well-known
	TLD.  1 means check it, 0 means don't. */

	var checkTLD=1;

	/* The following is the list of known TLDs that an e-mail address must end with. */

	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

	/* The following pattern is used to check if the entered e-mail address
	fits the user@domain format.  It also is used to separate the username
	from the domain. */

	var emailPat=/^(.+)@(.+)$/;

	/* The following string represents the pattern for matching all special
	characters.  We don't want to allow special characters in the address. 
	These characters include ( ) < > @ , ; : \ " . [ ] */

	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

	/* The following string represents the range of characters allowed in a 
	username or domainname.  It really states which chars aren't allowed.*/

	var validChars="\[^\\s" + specialChars + "\]";

	/* The following pattern applies if the "user" is a quoted string (in
	which case, there are no rules about which characters are allowed
	and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
	is a legal e-mail address. */

	var quotedUser="(\"[^\"]*\")";

	/* The following pattern applies for domains that are IP addresses,
	rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
	e-mail address. NOTE: The square brackets are required. */

	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

	/* The following string represents an atom (basically a series of non-special characters.) */

	var atom=validChars + '+';

	/* The following string represents one word in the typical username.
	For example, in john.doe@somewhere.com, john and doe are words.
	Basically, a word is either an atom or quoted string. */

	var word="(" + atom + "|" + quotedUser + ")";

	// The following pattern describes the structure of the user

	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");

	/* The following pattern describes the structure of a normal symbolic
	domain, as opposed to ipDomainPat, shown above. */

	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

	/* Finally, let's start trying to figure out if the supplied address is valid. */

	/* Begin with the coarse pattern to simply break up user@domain into
	different pieces that are easy to analyze. */

	var matchArray=emailStr.match(emailPat);

	if (matchArray==null) {

	/* Too many/few @'s or something; basically, this address doesn't
	even fit the general mould of a valid e-mail address. */

	nomecampo.focus();
	alert("E' necessario inserire un e-mail corretto (controllare @ e i punti) per poter procedere");
	return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];

	// Start by checking that only basic ASCII characters are in the strings (0-127).

	for (i=0; i<user.length; i++) {
	if (user.charCodeAt(i)>127) {
	nomecampo.focus();
	alert("Il nome utente dell'email contiene dei caratteri scorretti.");
	return false;
	   }
	}
	for (i=0; i<domain.length; i++) {
	if (domain.charCodeAt(i)>127) {
	nomecampo.focus();
	alert("Il dominio dell'email contiene dei caratteri scorretti.");
	return false;
	   }
	}

	// See if "user" is valid 

	if (user.match(userPat)==null) {

	// user is not valid
	nomecampo.focus();
	alert("Il nome utente dell'email contiene dei caratteri scorretti.");
	return false;
	}

	/* if the e-mail address is at an IP address (as opposed to a symbolic
	host name) make sure the IP address is valid. */

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {

	// this is an IP address

	for (var i=1;i<=4;i++) {
	if (IPArray[i]>255) {
	nomecampo.focus();
	alert("L'indirizzo IP della email non è corretto.");
	return false;
	   }
	}
	return true;
	}

	// Domain is symbolic name.  Check if it's valid.
	 
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
	if (domArr[i].search(atomPat)==-1) {
	nomecampo.focus();
	alert("Il dominio dell'email non è valido.");
	return false;
	   }
	}

	/* domain name seems valid, but now make sure that it ends in a
	known top-level domain (like com, edu, gov) or a two-letter word,
	representing country (uk, nl), and that there's a hostname preceding 
	the domain or country. */

	if (checkTLD && domArr[domArr.length-1].length!=2 && 
	domArr[domArr.length-1].toLowerCase().search(knownDomsPat)==-1) {
	nomecampo.focus();
	alert("L'indirizzo email deve terminare con un dominio conosciuto o un codice internazionale di 2 lettere.");
	return false;
	}

	// Make sure there's a host name preceding the domain.

	if (len<2) {
	nomecampo.focus();
	alert("Nell'email manca la parte tra la @ e il punto.");
	return false;
	}

	// If we've gotten this far, everything's valid!
	return true;
}

function check_fiscale(field,obbligatorio,messaggio)
{
var HascPari = new Array();
var HascDispari = new Array();
var HascControllo = new Array();
var pari=0;
var dispari=0;
var controllo;
var codice = new String();
codice=field.value;

 if (messaggio==null)
	messaggio=field.name;

if (codice.length!=16)
	{
	 if (obbligatorio)
	   {
	    alert("Il codice fiscale contenuto nel campo \"" + messaggio +"\" è errato");
	   field.focus();
	    return (false);
	   }
	 else
	   {
		if (codice.length!=0)
		   {
		    return (confirm("Il codice fiscale contenuto nel campo \"" + messaggio +"\" è errato; Proseguo?"));
		   }
	   }
	}

HascControllo=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];

HascPari[0]=[["0"],[0]];
HascPari[1]=[["1"],[1]];
HascPari[2]=[["2"],[2]];
HascPari[3]=[["3"],[3]];
HascPari[4]=[["4"],[4]];
HascPari[5]=[["5"],[5]];
HascPari[6]=[["6"],[6]];
HascPari[7]=[["7"],[7]];
HascPari[8]=[["8"],[8]];
HascPari[9]=[["9"],[9]];
HascPari[10]=[["A"],[0]];
HascPari[11]=[["B"],[1]];
HascPari[12]=[["C"],[2]];
HascPari[13]=[["D"],[3]];
HascPari[14]=[["E"],[4]];
HascPari[15]=[["F"],[5]];
HascPari[16]=[["G"],[6]];
HascPari[17]=[["H"],[7]];
HascPari[18]=[["I"],[8]];
HascPari[19]=[["J"],[9]];
HascPari[20]=[["K"],[10]];
HascPari[21]=[["L"],[11]];
HascPari[22]=[["M"],[12]];
HascPari[23]=[["N"],[13]];
HascPari[24]=[["O"],[14]];
HascPari[25]=[["P"],[15]];
HascPari[26]=[["Q"],[16]];
HascPari[27]=[["R"],[17]];
HascPari[28]=[["S"],[18]];
HascPari[29]=[["T"],[19]];
HascPari[30]=[["U"],[20]];
HascPari[31]=[["V"],[21]];
HascPari[32]=[["W"],[22]];
HascPari[33]=[["X"],[23]];
HascPari[34]=[["Y"],[24]];
HascPari[35]=[["Z"],[25]];

HascDispari[0]=[["0"],[1]];
HascDispari[1]=[["1"],[0]];
HascDispari[2]=[["2"],[5]];
HascDispari[3]=[["3"],[7]];
HascDispari[4]=[["4"],[9]];
HascDispari[5]=[["5"],[13]];
HascDispari[6]=[["6"],[15]];
HascDispari[7]=[["7"],[17]];
HascDispari[8]=[["8"],[19]];
HascDispari[9]=[["9"],[21]];
HascDispari[10]=[["A"],[1]];
HascDispari[11]=[["B"],[0]];
HascDispari[12]=[["C"],[5]];
HascDispari[13]=[["D"],[7]];
HascDispari[14]=[["E"],[9]];
HascDispari[15]=[["F"],[13]];
HascDispari[16]=[["G"],[15]];
HascDispari[17]=[["H"],[17]];
HascDispari[18]=[["I"],[19]];
HascDispari[19]=[["J"],[21]];
HascDispari[20]=[["K"],[2]];
HascDispari[21]=[["L"],[4]];
HascDispari[22]=[["M"],[18]];
HascDispari[23]=[["N"],[20]];
HascDispari[24]=[["O"],[11]];
HascDispari[25]=[["P"],[3]];
HascDispari[26]=[["Q"],[6]];
HascDispari[27]=[["R"],[8]];
HascDispari[28]=[["S"],[12]];
HascDispari[29]=[["T"],[14]];
HascDispari[30]=[["U"],[16]];
HascDispari[31]=[["V"],[10]];
HascDispari[32]=[["W"],[22]];
HascDispari[33]=[["X"],[23]];
HascDispari[34]=[["Y"],[24]];
HascDispari[35]=[["Z"],[23]];
codice=codice.toUpperCase();
  for (i = 0;  i < codice.length-1;  i++)
  {
      for(n=0;n<36;++n)
      {
		if(((i+1)%2)==0)
			{
			  	if(HascPari[n][0]==codice.charAt(i))
			  		pari+=parseInt(HascPari[n][1]);
			 }
		else	  		
			{
			  	if(HascDispari[n][0]==codice.charAt(i))
			  		dispari+=parseInt(HascDispari[n][1]);
			 }
      }
  }
  controllo=HascControllo[(pari+dispari)%26];
  if(controllo!=codice.charAt(15))
   {
	 if (obbligatorio)
	   {
	    alert("Il codice fiscale contenuto nel campo \"" + messaggio +"\" è errato");
	    return (false);
	   }
	 else
	    return (confirm("Il codice fiscale contenuto nel campo \"" + messaggio +"\" è errato; Proseguo?"));
   }
  else
  	return(true);
}

function check_importo_reddito(field,moneta,min,max,obbligatorio,nonzero,messaggio) 
  {
	  var checkOK = "0123456789.,";				
	  var checkStr = field.value;
	  var allValid = true;
	  var decPoints = 0;
	  var allNum = "";
	  var valore;

	  if (field.value == "" && obbligatorio)
	  {
	   if (messaggio==null)
		    alert("Dati obbligatori nell'importo reddito");
	   else
		    alert(messaggio);
	    field.focus();
	    return (false);
	  }
	 if (field.value == 0 && nonzero)
	  {
	   if (messaggio==null)
		    alert("Il valore contenuto nell'importo reddito deve essere maggiore di zero");
	   else
		    alert(messaggio);
	    field.focus();
	    return (false);
	  }
	 for (i = 0;  i < checkStr.length;  i++)
	  {
	    ch = checkStr.charAt(i);
	    for (j = 0;  j < checkOK.length;  j++)
	      if (ch == checkOK.charAt(j))
	        break;
	    if (j == checkOK.length)
	    {
	      if ((ch!=".") || (((checkStr.length-i)%4)!=0))
		    {
		      allValid = false;
		      break;
		    }
	    }
	    allNum += ch;
	  }
	 if (!allValid)
	  {
	   if (messaggio==null)
		   alert("Il formato della cifra nel campo \"Importo reddito\" non è corretto");
	   else
		    alert(messaggio);
	   field.focus();
	   return (false);
	  }
	if((ReplaceEta(field,".","").length)>0)
		valore=parseFloat(ReplaceEta(field,".",""));
	else
		valore=0;
//2=euro
	if (moneta==2)
		valore=valore*(1936.27/1000000);

	if (!(valore>=min) || !(valore<=max))
	  {
	   if (messaggio==null)
	  {
		if (moneta==2)
		{
		   alert("Il reddito specificato non può essere convalidato. Controllare l'importo.");
		}
		else
		{
		   alert("Il reddito specificato non può essere convalidato. Controllare l'importo. Nell'inserire l'importo, fare attenzione all'unità di valuta. Ad esempio, se la richiesta è espressa in \"Milioni di lire\", per inserire un importo di 2.300.000 lire, bisognerà digitare \"2,3\".");
		}
	  }
	   else
	  {
		    alert(messaggio);
	  }
	   field.focus();
	   return (false);
	  }


	return (true);
  }

function check_importo_residuo(field,moneta,min,max,obbligatorio,nonzero,messaggio) 
  {
	  var checkOK = "0123456789.,";				
	  var checkStr = field.value;
	  var allValid = true;
	  var decPoints = 0;
	  var allNum = "";
	  var valore;

	  if (field.value == "" && obbligatorio)
	  {
	   if (messaggio==null)
		    alert("Dati obbligatori nell'importo residuo");
	   else
		    alert(messaggio);
	    field.focus();
	    return (false);
	  }
	 if (field.value == 0 && nonzero)
	  {
	   if (messaggio==null)
		    alert("Il valore contenuto nell'importo residuo deve essere maggiore di zero");
	   else
		    alert(messaggio);
	    field.focus();
	    return (false);
	  }
	 for (i = 0;  i < checkStr.length;  i++)
	  {
	    ch = checkStr.charAt(i);
	    for (j = 0;  j < checkOK.length;  j++)
	      if (ch == checkOK.charAt(j))
	        break;
	    if (j == checkOK.length)
	    {
	      if ((ch!=".") || (((checkStr.length-i)%4)!=0))
		    {
		      allValid = false;
		      break;
		    }
	    }
	    allNum += ch;
	  }
	 if (!allValid)
	  {
	   if (messaggio==null)
		   alert("Il formato della cifra nel campo \"Importo residuo\" non è corretto");
	   else
		    alert(messaggio);
	   field.focus();
	   return (false);
	  }
	if((ReplaceEta(field,".","").length)>0)
		valore=parseFloat(ReplaceEta(field,".",""));
	else
		valore=0;
//2=euro
	if (moneta==2)
		valore=valore*(1936.27/1000000);

	if (!(valore>=min) || !(valore<=max))
	  {
	   if (messaggio==null)
	  {
		if (moneta==2)
		{
		   alert("Il valore residuo del prestito non può essere convalidato. Controllare l'importo.");
		}
		else
		{
		   alert("Il valore residuo del prestito non può essere convalidato. Controllare l'importo. Nell'inserire l'importo, fare attenzione all'unità di valuta. Ad esempio, se la richiesta è espressa in \"Milioni di lire\", per inserire un importo di 50.000.000 lire, bisognerà digitare \"50\".");
		}
	  }
	   else
	  {
		    alert(messaggio);
	  }
	   field.focus();
	   return (false);
	  }


	return (true);
  }

function check_rata(field,moneta,min,max,obbligatorio,nonzero,messaggio) 
  {
	  var checkOK = "0123456789.,";				
	  var checkStr = field.value;
	  var allValid = true;
	  var decPoints = 0;
	  var allNum = "";
	  var valore;

	  if (field.value == "" && obbligatorio)
	  {
	   if (messaggio==null)
		    alert("Dati obbligatori nella rata");
	   else
		    alert(messaggio);
	    field.focus();
	    return (false);
	  }
	 if (field.value == 0 && nonzero)
	  {
	   if (messaggio==null)
		    alert("Il valore contenuto nella rata deve essere maggiore di zero");
	   else
		    alert(messaggio);
	    field.focus();
	    return (false);
	  }
	 for (i = 0;  i < checkStr.length;  i++)
	  {
	    ch = checkStr.charAt(i);
	    for (j = 0;  j < checkOK.length;  j++)
	      if (ch == checkOK.charAt(j))
	        break;
	    if (j == checkOK.length)
	    {
	      if ((ch!=".") || (((checkStr.length-i)%4)!=0))
		    {
		      allValid = false;
		      break;
		    }
	    }
	    allNum += ch;
	  }
	 if (!allValid)
	  {
	   if (messaggio==null)
		   alert("Il formato della cifra nel campo \"Rata\" non è corretto");
	   else
		    alert(messaggio);
	   field.focus();
	   return (false);
	  }
	if((ReplaceEta(field,".","").length)>0)
		valore=parseFloat(ReplaceEta(field,".",""));
	else
		valore=0;
//2=euro
	if (moneta==2)
		valore=valore*(1936.27/1000000);

	if (!(valore>=min) || !(valore<=max))
	  {
	   if (messaggio==null)
	  {
		if (moneta==2)
		{
		   alert("Il valore della rata non può essere convalidato. Controllare l'importo.");
		}
		else
		{
		   alert("Il valore della rata non può essere convalidato. Controllare l'importo. Nell'inserire l'importo, fare attenzione all'unità di valuta. Ad esempio, se la richiesta è espressa in \"Milioni di lire\", per inserire un importo di 2.300.000 lire, bisognerà digitare \"2,3\".");
		}
	  }
	   else
	  {
		    alert(messaggio);
	  }
	   field.focus();
	   return (false);
	  }


	return (true);
  }

function check_curr1(field,moneta,min,max,obbligatorio,nonzero,messaggio) 
{
// controlla l'importo. i parametri sono:
// moneta: 1=milioni di lire, 2=euro 3=lire
// min, max: estremi di validità, con importo espresso in milioni di lire (separatore dei decimali è il punto)	

	var checkOK = "0123456789.,";				
	var checkStr = field.value;
	var allValid = true;
	var valore;
	
	//controllo l'obbligatorietà dei campi.
	
	if (field.value == "" && obbligatorio)	{
		if (messaggio==null)
			alert("Dati obbligatori nel campo \"" + field.name +"\" ");
		else
			alert(messaggio);
		field.focus();
		return (false);
	}

	//conto il numero di punti e di virgole

	var numvirgole = 0;
	var numpunti = 0;
	for (i = 0;  i < checkStr.length;  i++) {
		if (checkStr.charAt(i) == ',') {
			++numvirgole;
		}
		if (checkStr.charAt(i) == '.') {
			++numpunti;
		}
	}

	//sia per i milioni di lire che per gli euro, non sono ammessi punti e virgole contemporaneamente,

	if (numvirgole>0 && numpunti>0) {
		alert("Non sono ammessi virgole e punti contemporaneamente nel campo \"" + field.name +"\".");
		field.focus();
		return (false);
	}
	
	//per i milioni di lire, non sono ammessi più di 1 punto o di 1 virgola.
	
	if (moneta==1 && (numvirgole>1 || numpunti>1)) {
		alert("Ammesso un solo punto o una sola virgola nel campo \"" + field.name +"\".");
		field.focus();
		return (false);
	}

	//cerco dei caratteri non ammessi nella stringa. Confronto con checkOK

	for (i = 0;  i < checkStr.length;  i++) {
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j)) {
				break;
			}

		if (j == checkOK.length) {
			//ho trovato un carattere non ammesso in checkOK
			allValid = false;
			break;
		}
		if ( ((ch==".") || (ch==',')) && (moneta==2 || moneta==3) && ((checkStr.length-i)%4)!=0)  {
			//se ci sono punti e virgole, devono essere nelle posizioni delle migliaia se si tratta di euro o di lire
			//ad esempio, 1,000,000 = 1.000.000 = 1000000 per gli euro e   per le lire
			allValid = false;
			break;
		}
	
	}
		
	if (!allValid) {
		if (messaggio==null)
			alert("Il formato della cifra nel campo \"" + field.name +"\" non è corretto");
		else
			alert(messaggio);
		field.focus();
		return (false);
	}

	if (field.value == 0 && nonzero) {
		if (messaggio==null)
			alert("Il valore contenuto nel campo \"" + field.name +"\" deve essere maggiore di zero");
		else
			alert(messaggio);
		field.focus();
		return (false);
	}

	//setto la variabile 'valore' al valore corretto, espresso in MILIONI DI LIRE.
	if((ReplaceEta(field,".","").length)>0) {
		if(moneta==1) {
			//se la valuta è lire (attenzione: si intende milioni di lire)
			//rimpiazzo la virgola col punto. Il separatore indica i decimali di milione, quindi 3,5 -> 3.5
			//questo perchè in Javascript i decimali si rappresentano col punto
			valore = parseFloat(ReplaceEta(field,",","."));
		} else
		{
			//se la valuta è euro o  lire,
			//tolgo virgole e punti, gli euro non ammettono decimali e quindi 
			//la punteggiatura serve solo da separatore, pertanto per i calcoli è inutile
			valore = parseFloat(sostituiscistringa(sostituiscistringa(field.value,".",""),",",""));
		}
		
	} else
	 	valore=0;

	//2=euro; la variabile 'valore' contiene i milioni di lire.
	if (moneta==2)
		valore=valore*(1936.27/1000000);
	if (moneta==3){
		//la grandezza per le lire è sempre in milini, ma usando tutte le posizioni:
		//per indicare 1 milione il valore non sarà 1 ma 1000000.
		//adatto tutte le grandezze per il confronto alle lire, moltiplicandole per 1000000
		min = min*1000000;
		max=max*1000000;
		}

	if (!(valore>=min) || !(valore<=max))
	  {
	   if (messaggio==null)
		   alert("Il valore del campo \""+field.name+"\"non è accettabile.");
	   else
		    alert(messaggio);
	   field.focus();
	   return (false);
	  }
	return (true);
  }

function check_radio(field,messaggio)
  {

	  var radioSelected = false;
	  for (i = 0;  i < field.length;  i++)
	  {
	    if (field[i].checked)
	        radioSelected = true;
	  }
	  if (!radioSelected)
	  {
	    alert("Effettuare una selezione "+messaggio+" ");
	    field[0].focus();
	    return (false);
	  }
	return (true);
  }

function check_cap(field,obbligatorio,messaggio)
{
	  var checkOK = "0123456789";				
	  var checkStr = field.value;
	  var allValid = true;
	  var decPoints = 0;
	  var allNum = "";


	  if (field.value == "" && obbligatorio)
	  {
	   if (messaggio==null)
		    alert("Dati obbligatori nel campo \"" + field.name +"\" ");
	   else
		    alert(messaggio);
	    field.focus();
	    return (false);
	  }
	  if ((checkStr.length!=5) && obbligatorio)
	  {
	   if (messaggio==null)
		    alert("Il formato del CAP è errato nel campo \"" + field.name +"\" ");
	   else
		    alert(messaggio);
	    field.focus();
	    return (false);
	  }
	 for (i = 0;  i < checkStr.length;  i++)
	  {
	    ch = checkStr.charAt(i);
	    for (j = 0;  j < checkOK.length;  j++)
	      if (ch == checkOK.charAt(j))
	        break;
	    if (j == checkOK.length)
	    {
	      allValid = false;
	      break;
	    }
	    allNum += ch;
	  }
	 if (!allValid)
	  {
	   if (messaggio==null)
		   alert("Il formato del numero intero nel campo \""+field.name+"\" non è corretto");
	   else
		    alert(messaggio);
	   field.focus();
	   return (false);
	  }
	return (true);
}


function check_name(field,obbligatorio,messaggio)
{
  var checkOK = ",.'- ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ \t\r\n\f";
  var checkStr = field.value;
  var allValid = true;

  if (field.value == "" && obbligatorio)
  {
   if (messaggio==null)
	    alert("Dati obbligatori nel campo \"" + field.name +"\" ");
   else
	    alert(messaggio);
    field.focus();
    return (false);
  }
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   if (messaggio==null)
	    alert("Ammesse solo lettere  e spazi nel campo \"" + field.name +"\" ");
   else
	    alert(messaggio);
    field.focus();
    return (false);
  }
 return (true);
}

function check_indirizzo(field,obbligatorio,messaggio)
{
  var checkOK = ".,';:- ()/1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒŽšœžŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ \t\r\n\f";
  var checkStr = field.value;
  var allValid = true;

  if (field.value == "" && obbligatorio)
  {
   if (messaggio==null)
	    alert("Dati obbligatori nel campo \"" + field.name +"\" ");
   else
	    alert(messaggio);
    field.focus();
    return (false);
  }
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   if (messaggio==null)
	    alert("Ammesse solo lettere  e spazi nel campo \"" + field.name +"\" ");
   else
	    alert(messaggio);
    field.focus();
    return (false);
  }
 return (true);
}

function check_date(giorno,mese,anno,field,messaggio)
{
var data = new Date(anno,mese,giorno,0,0,0,0);

 if (messaggio==null)
	messaggio="La data non è corretta";

if (data.getDate()!=giorno)
	{
	alert(messaggio);
	field.focus();
	return (false);
	}

else
	return (true);
}

function check_string(field,lettere,obbligatorio,messaggio)
{
  var checkOK = lettere;
  var checkStr = field.value;
  var allValid = true;


  if (field.value == "" && obbligatorio)
  {
   if (messaggio==null)
	    alert("Dati obbligatori nel campo \"" + field.name +"\" ");
   else
	    alert(messaggio);

    field.focus();
    return (false);
  }
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   if (messaggio==null)
	    alert("Caratteri non ammessi nel campo \"" + field.name +"\" ");
   else
	    alert(messaggio);
    field.focus();
    return (false);
  }
	return (true);
}

function check_integer(field,obbligatorio,nonzero,messaggio) 
  {
	  var checkOK = "0123456789";				
	  var checkStr = field.value;
	  var allValid = true;
	  var decPoints = 0;
	  var allNum = "";
	
	  if (field.value == "" && obbligatorio)
	  {
	   if (messaggio==null)
		    alert("Dati obbligatori nel campo \"" + field.name +"\" ");
	   else
		    alert(messaggio);
	    field.focus();
	    return (false);
	  }
	 if (field.value == 0 && nonzero)
	  {
	   if (messaggio==null)
		    alert("Il valore contenuto nel campo \"" + field.name +"\" deve essere maggiore di zero");
	   else
		    alert(messaggio);
	    field.focus();
	    return (false);
	  }
	 for (i = 0;  i < checkStr.length;  i++)
	  {
	    ch = checkStr.charAt(i);
	    for (j = 0;  j < checkOK.length;  j++)
	      if (ch == checkOK.charAt(j))
	        break;
	    if (j == checkOK.length)
	    {
		      allValid = false;
		      break;
	    }
	    allNum += ch;
	  }
	 if (!allValid)
	  {
	   if (messaggio==null)
		   alert("Il formato della cifra nel campo \""+field.name+"\" non è corretto");
	   else
		    alert(messaggio);
	   field.focus();
	   return (false);
	  }
	return (true);
  }

function ReplaceEta(field,ValDaCercare,ValDaSost)		{
	  var checkStr = field.value;  	
	  var nvolte;	
 	  var i;	
	  var nuovastr = new String();		
	  var ch = new String();		

	 for (i = 0;  i < checkStr.length;  i++)	{
	    ch = checkStr.charAt(i);

	    if (ch != ValDaCercare)
				nuovastr = nuovastr + ch
      else
				nuovastr = nuovastr + ValDaSost		
	  }

	return (nuovastr);
}

function SelezionaCombo(obj,v)	{
	for(i=0;i<obj.options.length;i++) {
		if (obj.options[i].value == v) {
			obj.selectedIndex = i;
			break;
		}
	}
}

function CheckCurrEuro(field,min,max,obbligatorio,nonzero,messaggio)	{
// controlla l'importo. i parametri sono:
// min, max: estremi di validità, con importo espresso in milioni di lire (separatore dei decimali è il punto)	

	var checkOK = "0123456789.,";				
	var checkStr = field.value;
	var allValid = true;
	var valore;
	
	//controllo l'obbligatorietà dei campi.
	
	if (field.value == "" && obbligatorio)	{
		if (messaggio==null)
			alert("Dati obbligatori nel campo \"" + field.name +"\" ");
		else
			alert(messaggio);
		field.focus();
		return (false);
	}

	//conto il numero di punti e di virgole

	var numvirgole = 0;
	var numpunti = 0;
	for (i = 0;  i < checkStr.length;  i++) {
		if (checkStr.charAt(i) == ',') {
			++numvirgole;
		}
		if (checkStr.charAt(i) == '.') {
			++numpunti;
		}
	}

	//sia per i milioni di lire che per gli euro, non sono ammessi punti e virgole contemporaneamente,

	if (numvirgole>0 && numpunti>0) {
		alert("Non sono ammessi virgole e punti contemporaneamente nel campo \"" + field.name +"\".");
		field.focus();
		return (false);
	}
	
	//per i milioni di lire, non sono ammessi più di 1 punto o di 1 virgola.
	
	/*
	if (numvirgole>1 || numpunti>1) {
		alert("Ammesso un solo punto o una sola virgola nel campo \"" + field.name +"\".");
		field.focus();
		return (false);
	}
	*/
	
	//cerco dei caratteri non ammessi nella stringa. Confronto con checkOK

	for (i = 0;  i < checkStr.length;  i++) {
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j)) {
				break;
			}

		if (j == checkOK.length) {
			//ho trovato un carattere non ammesso in checkOK
			allValid = false;
			break;
		}
		if (((ch==".") || (ch==','))  && ((checkStr.length-i)%4)!=0)  {
			//se ci sono punti e virgole, devono essere nelle posizioni delle migliaia se si tratta di euro o di lire
			//ad esempio, 1,000,000 = 1.000.000 = 1000000 per gli euro e   per le lire
			allValid = false;
			break;
		}
	}
		
	if (!allValid) {
		if (messaggio==null)
			alert("Il formato della cifra nel campo \"" + field.name +"\" non è corretto");
		else
			alert(messaggio);
		field.focus();
		return (false);
	}

	if (field.value == 0 && nonzero) {
		if (messaggio==null)
			alert("Il valore contenuto nel campo \"" + field.name +"\" deve essere maggiore di zero");
		else
			alert(messaggio);
		field.focus();
		return (false);
	}

	//setto la variabile 'valore' al valore corretto
	if((ReplaceEta(field,".","").length)>0) {
			//se la valuta è euro o  lire,
			//tolgo virgole e punti, gli euro non ammettono decimali e quindi 
			//la punteggiatura serve solo da separatore, pertanto per i calcoli è inutile
			valore = parseFloat(sostituiscistringa(sostituiscistringa(field.value,".",""),",",""));
	} else	{
	 	valore=0;
	}

	if (!(valore>=min) || !(valore<=max))
	  {
	   if (messaggio==null)
		   alert("Il valore del campo \""+field.name+"\"non è accettabile.");
	   else
		    alert(messaggio);
	   field.focus();
	   return (false);
	  }
	return (true);
}

function controlla_double(nomecampo,min,max,obbligatorio,nonzero,descrizionecampo) {
	var checkOK = char_valuta;
	var checkStr = nomecampo.value;
	var allValid = true;
	var decPoints = 0;
	var allNum = "";
	var valore;
	
	if (nomecampo.value == "" && obbligatorio) {
		if (descrizionecampo==null)
			alert("Inserire un valore nel campo \"" + nomecampo.name + "\".");
		else
		  alert("Inserire un valore nel campo \"" + descrizionecampo + "\".");

	    nomecampo.focus();
	    return false;
	}
	
	if (nomecampo.value == 0 && nonzero) {
		if (descrizionecampo==null)
			alert("Il valore contenuto nel campo \"" + nomecampo.name + "\" deve essere maggiore di zero.");
		else
			alert("Il valore contenuto nel campo \"" + descrizionecampo + "\" deve essere maggiore di zero.");

	    nomecampo.focus();
	    return false;
	}
	
	//verifico la correttezza
	if (!(caratteri_valididi(char_valuta,nomecampo.value)))	{
		if (descrizionecampo==null)
			alert("Caratteri non ammessi nel campo \"" + nomecampo.name + "\".");
		else
			alert("Caratteri non ammessi nel campo \"" + descrizionecampo + "\".");

		nomecampo.focus();
		return false;
	}

	//alert(CheckReal(nomecampo.value));
	// chiamata a funzione che verifica i numeri reali
	if (nomecampo.value != "") {
		if (!CheckReal(nomecampo.value))	{
			if (descrizionecampo==null)
				alert("Il valore contenuto nel campo \"" + nomecampo.name + "\" deve essere un numero con eventuali punti come separatori di migliaia e la virgola come separatore per un massimo di 2 decimali");
			else
				alert("Il valore contenuto nel campo \"" + descrizionecampo + "\" deve essere un numero con eventuali punti come separatori di migliaia e la virgola come separatore per un massimo di 2 decimali");

			nomecampo.focus();
			return false;
		}
	}
	
	stringaPulita = sostituiscistringa(nomecampo.value,".","");
	
	if((stringaPulita.length)>0)
		valore=stringaPulita;
	else
		valore=0;

	//	alert(valore);
	if (!(parseFloat(valore)>=parseFloat(min)) || !(parseFloat(valore)<=parseFloat(max))) {
		
		if (descrizionecampo==null)
			alert("Il valore specificato nel campo \"" + nomecampo.name + "\" non è ammissibile.");
		else
			alert("Il valore specificato nel campo \"" + descrizionecampo + "\" non è ammissibile.");

		//riporto il focus sul campo non corretto
		nomecampo.focus();
		return false;
	}

	//	alert(stringaPulita);
	nomecampo.value = stringaPulita;
	return true;
}

// funzione per il parsing di interi
function CheckInt(nomecampo)	{
	var intNum=/^\d+$/;

	if (nomecampo.search(intNum)==-1) {	//se fallisce
		alert("Inserire un numero intero");
		return false;
	}else	{
		return true;
	}
}

// funzione per il parsing di double con decimali (massimo 2)
function CheckReal(nomecampo){

	// controllo più stringente (punti con separatori di migliaia e max 2 decimali)
	var realNum=/^\d{1,3}(\.\d{3})*(,\d{1,2})?$/;
	
	// se fallisce utilizzo l'altra regular expression allo scopo di validare i numeri reali
	if (nomecampo.search(realNum)==-1) {
		//valido per i numeri reali numero infinito di decimaali
		//realNum=/^-?\d+(\,\d+)?$/;
		//valido per i numeri reali con un massimo di 2 decimali 
		realNum=/^-?\d+(\,\d{1,2})?$/;
	}

	if (nomecampo.search(realNum)==-1) {	//se fallisce
		return false;
	}else	{
		return true;

	}
}

function caratteri_valididi(caratterivalidi,valore) {
	var checkOK = caratterivalidi;
	var checkStr = valore;
	var allValid = true;

	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++)
			if (ch == checkOK.charAt(j))
				break;
			if (j == checkOK.length) {
				allValid = false;
				break;
			}
	}

	if (!allValid) {
		return false;
	}
	return true;
}

function ApriPopOperatore(IdOperatore, CodTipoOperatore, IdPratica) {
	var pagina;
	pagina = window.open('/Amministrazione/ContattoOperatore.asp?IdOperatore=' + IdOperatore + '&CodTipoOperatore=' + CodTipoOperatore + '&IdPratica=' + IdPratica,IdOperatore,'width=500,height=110,left=25,top=25,location=no,toolbar=no,menubar=no,status=yes,resizable=yes,fullscreen=no,scrollbars=yes');
	pagina.focus();
}


