
function TestNetscape()
{
	if (navigator.userAgent.toLowerCase().indexOf('netscape') >= 0)
		return true;
	else
		return false;
}

function TestFirefox()
{
	if (navigator.userAgent.toLowerCase().indexOf('firefox') >= 0)
		return true;
	else
		return false;
}

function TestSafari()
{
	if (navigator.userAgent.toLowerCase().indexOf('safari') >= 0)
		return true;
	else
		return false;
}

function TestMac()
{
	if (navigator.appVersion.toLowerCase().indexOf('macintosh') >= 0)
		return true;
	else
		return false;
}

function TestMacNetscape70()
{
	if (navigator.userAgent.toLowerCase().indexOf('netscape/7.0') >= 0 && TestMac())
		return true;
	else
		return false;
}

function TestXp()
{
	if (navigator.userAgent.toLowerCase().indexOf('nt 5.1') >= 0)
		return true;
	else
		return false;
}

function TestSp2()
{
	if (navigator.appMinorVersion)
	{
		if (navigator.appMinorVersion.toLowerCase().indexOf('sp2') >= 0)
			return true;
		else
			return false;
	}
	else
		return false;
}

function TestXpSp2()
{
	if (TestXp() && TestSp2())
		return true;
	else
		return false;
}

function SetFrames(n)
{
	if (!TestMacNetscape70())
		switch(n)
			{
				case 'normale':
					parent.getObj("frmset").rows ='115px,0px,*,0px,1px,0px';
					break;
				case 'attesa':
					parent.getObj("frmset").rows ='115px,0px,0px,*,1px,0px';
					break;
				case 'documento':
					parent.getObj("frmset").rows ='115px,37px,*,0px,1px,0px';
					break;
			}
}

function TestIEMac()
{
	if (TestMac() && navigator.userAgent.toLowerCase().indexOf('msie') >= 0)
		return true;
	else
		return false;
}

function TestStampaNav()
{
	if(TestNetscape())
		return true;
	else
		return false;
}

function TestStampaSaf()
{
	if(TestSafari())
		return true;
	else
		return false;
}

function TestStampaFire()
{
	if(TestFirefox())
		return true;
	else
		return false;
}

function TestButStampa()
{
	if(TestNetscape() || TestFirefox() || TestMac())
		return false;
	else
		return true;
}

function TestCerca()
{
	if (TestMac())
		return false;
	else
		{
		if(navigator.userAgent.toLowerCase().indexOf('msie') >= 0 )
				return true;
		else
				return false;
		}
}

function TestStampaOK()
{
	if (navigator.userAgent.toLowerCase().indexOf('msie 6.0') >= 0 )
		if (navigator.appMinorVersion.toLowerCase().indexOf('sp1') >= 0)
			return false;
		else
			return true;
	else
		return true;
}

function TestPrint()
{
if (TestMac() || TestXp())
	return true;
else
	if (navigator.userAgent.toLowerCase().indexOf('msie') >= 0)
		if (navigator.userAgent.toLowerCase().indexOf('msie 6.0') >= 0)
			if (navigator.appMinorVersion.toLowerCase().indexOf('sp1') >= 0)
				return true;
			else
				return false;
		else
			return false;
	else
		return true;
}

function TestDownloadQ281119()
{
	if (navigator.userAgent.toLowerCase().indexOf('msie 5.5') >= 0)
		if (navigator.appMinorVersion.toLowerCase().indexOf('sp1') >= 0 && navigator.appMinorVersion.toLowerCase().indexOf('q281119') < 0)
			return true;
		else
			return false;
	else
		return false;
}

function TestIE5plus()
{
	indice = navigator.userAgent.toLowerCase().lastIndexOf('msie');
	if (navigator.userAgent.toLowerCase().lastIndexOf('msie') != -1 && parseInt(navigator.userAgent.toLowerCase().substring(indice + 5 ,indice + 6)) >= 5)
		return true;
	else
		return false
}

function getObj(name)
{
	var myObj;
	if (document.getElementById)
	{
		myObj = document.getElementById(name);
	}
	else if (document.all)
	{
		myObj = document.all[name];	
	}
	else if (document.layers)
	{
		myObj = document.layers[name];
	}	
	
	return myObj
}		



	function KeyDown()
	{
	/*INIZIO
		// trasforma F5 in Backspace
		if(window.event.keyCode == 116) 
		{
			window.event.keyCode = 8;
		}
	
	
		//                         Invio									BackSpace(|| (window.event.keyCode == 8 ))                          <-                            ->                                                                 N																																	F5
		if ((window.event.keyCode == 13 )  || ((window.event.keyCode == 37 || window.event.keyCode == 39) && (window.event.altKey == true)) || ((window.event.keyCode == 78 ) && (window.event.ctrlKey == true)) || (window.event.keyCode == 116) ) 
				{
				window.event.returnValue = false;
				}
	FINE*/
	}
	

	function right(evnt) 
	{
	/*INIZIO
		if (event.button>=2)
				alert("FUNZIONE DISABILITATA");
	FINE*/
	}

	document.onmousedown=right;
	if (document.layers) window.captureEvents(Event.MOUSEDOWN);
	window.onmousedown=right;


	// CONTROLLI
	function ControllaData(data)
	{
		var dataStr = new String();
		dataStr = data;
		pattern = "(((0[1-9]|[12][0-9]|3[01])([-./])(0[13578]|10|12)([-./])(\\d{4}))|(([0][1-9]|[12][0-9]|30)([-./])(0[469]|11)([-./])(\\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-./])(02)([-./])(\\d{4}))|((29)(.|-|/)(02)([-./])([02468][048]00))|((29)([-./])(02)([-./])([13579][26]00))|((29)([-./])(02)([-./])([0-9][0-9][0][48]))|((29)([-./])(02)([-./])([0-9][0-9][2468][048]))|((29)([-./])(02)([-./])([0-9][0-9][13579][26])))";
	 return !dataStr.search(pattern);
	}
	
	function ControlloDataMinima(dataMin, gg,mm,aaaa)
	{
		var data = parseInt(aaaa + mm + gg);
		return data < dataMin; 
	}
	
	function ControllaPIVA(pi)
   {
   
		if (IsNotInteger(pi))
		{
			return false;
		}
		else
		{
			 s = 0;
             for( i = 0; i <= 9; i += 2 )
                     s += pi.charCodeAt(i) - '0'.charCodeAt(0);
             for( i = 1; i <= 9; i += 2 ){
                     c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
                     if( c > 9 )  c = c - 9;
                     s += c;
             }
             if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
                return false;
             else
				return true;
		}
   
   }

	function ControllaCF(cf)
	{
		// Per Omonimia --> Ultimi 3 numeri possono diventare lettere
		var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z][\d|A-Z]{3}[A-Z]$/;
		return re.test(cf.toUpperCase());
	}
	
	function ControllaCF2(cf)
	{
		var nTempNum;
		var nAppoNum;
		var i;
		var szTempCodFisc;
		var szLastChar;
		var szValued;
		var szInValued;
		
		szCodFisc = cf;
		
		if (szCodFisc.length<16) return false;
		if (szCodFisc == "") return false;
		
		else 
			{
				szCodFisc =szCodFisc.toUpperCase();
				szLastChar = szCodFisc.substr(szCodFisc.length - 1,1);
				szTempCodFisc =szCodFisc.substr(0,szCodFisc.length - 1);
				nTempNum = 0;
				i = 0;
			 
				while (true) 
				{
					szValued="B1A0KKPPLLC2QQD3RRE4VVOOSSF5TTG6UUH7MMI8NNJ9WWZZYYXX";
					// I DISPARI
					szInValued=szTempCodFisc.substr(i,1);
					nAppoNum = szValued.search(szInValued);
					nTempNum = nTempNum + (nAppoNum &  0x7FFE) / 2;
					i = i + 1;
					if (i>15)
						break;
					szValued="A0B1C2D3E4F5G6H7I8J9KKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ";
					// I PARI
					szInValued=szTempCodFisc.substr(i,1);
					nAppoNum = szValued.search(szInValued);
					nTempNum =  nTempNum + (nAppoNum &  0x7FFE) / 2;
					i = i + 1;
				}
				nTempNum = nTempNum % 26; //mod
				szValued="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
				szValued= szValued.substr(nTempNum, 1);
				if (szValued==szLastChar) return true;
				else return false;
			}	
	}
	
	function ControllaCogNomCF(cog,nom,cf)
	{
		var TempCognome = new String();
		var TempNome = new String();
		
		var ConCognome = new String();
		var VocCognome = new String();
		var ConNome = new String();
		var VocNome = new String();
		
		TempCognome.value = '';
		TempNome.value = '';
		
		ConCognome.value = '';
		VocCognome.value = '';
		ConNome.value = '';
		VocNome.value = '';
		
		//COGNOME
		
		TempCognome.value = cog.replace(/\'/g, '').replace(/ /g, '').toUpperCase();
		
		for (i=0; i <= TempCognome.value.length - 1; i++)
		{
				if (TempCognome.value.substring(i,i+1) == 'A' || TempCognome.value.substring(i,i+1) == 'E' || TempCognome.value.substring(i,i+1) == 'I' || TempCognome.value.substring(i,i+1) == 'O' || TempCognome.value.substring(i,i+1) == 'U')
				{
					VocCognome.value = VocCognome.value + TempCognome.value.substring(i,i+1);
				}
				else
				{
					ConCognome.value = ConCognome.value + TempCognome.value.substring(i,i+1);
				}
		}

		TempCognome.value = ConCognome.value + VocCognome.value + 'XXX';
		TempCognome.value = TempCognome.value.substring(0, 3);

		// NOME
	    
		TempNome.value = nom.replace(/\'/g, '').replace(/ /g, '').toUpperCase();
		
		for (i=0; i <= TempNome.value.length - 1; i++)
		{
				if (TempNome.value.substring(i,i+1) == 'A' || TempNome.value.substring(i,i+1) == 'E' || TempNome.value.substring(i,i+1) == 'I' || TempNome.value.substring(i,i+1) == 'O' || TempNome.value.substring(i,i+1) == 'U')
				{
					VocNome.value = VocNome.value + TempNome.value.substring(i,i+1);
				}
				else
				{
					ConNome.value = ConNome.value + TempNome.value.substring(i,i+1);
				}
		}

		if (ConNome.value.length > 3)
		{
			ConNome.value = ConNome.value.substring(0,1) + ConNome.value.substring(2);
		}

		TempNome.value = ConNome.value + VocNome.value + 'XXX';
		TempNome.value = TempNome.value.substring(0, 3);
	    
		// CONTROLLO
	    
		return (window.document.form1.CFP.value.substring(0,6).toUpperCase() == TempCognome.value + TempNome.value)
		
	}
	function ltrim(s)
	{
		return s.replace(/^\s*/,"");
	}

	function rtrim(s)
	{
		return s.replace(/\s*$/,"");
	}

	function trim (s)
	{
		return rtrim(ltrim(s));
	}

	function isnumbetween (s,min,max)
	{
		return((s>=(min!=null?min:Number.MIN_VALUE))&&(s<=(max!=null?max:Number.MAX_VALUE)));
	}

	function islenbetween (s,min,max)
	{
		return((s.length>=(min!=null?min:0))&&(s.length<=(max!=null?max:Number.MAX_VALUE)));
	}

	function IsNotInteger (s)
	{
		var pattern = "[^0-9]+";
		var re = new RegExp(pattern);
		return re.test(s);
	}	
	
	function HasNumbers (s)
	{
		var pattern = "[0-9]+";
		var re = new RegExp(pattern);
		return re.test(s);
	}	
	
	function IsNotAlphanumeric (s)
	{
		var pattern = "[^0-9a-zA-Z]+";
		var re = new RegExp(pattern);
		return re.test(s);
	}	
	
	function IsNotAlphabetic (s)
	{
		var pattern = "[^a-zA-Z ]+";
		var re = new RegExp(pattern);
		return re.test(s);
	}	
	
	function RemoveSpaces(s)
	{
		return s.replace(/\s+/g," ");
  }
	
	function ReplaceBadChars(s)
	{
		s = s.replace(/[\.|\_|\\|\<|\>|\=|\^|\{|\}|\||\%]/gi,'');
		s = s.replace(/[\'|\xb4|\x91|\x92|\x93|\x94|\*|\/|\,|\;|\:|\(|\)|\[|\]|\"|\+|\&|\?|\$|\!|\#|\-]/gi,' ');
		s = s.replace(/[\xc0|\xc1|\xc2|\xc3|\xc4|\xc5]/g,'A');
		s = s.replace(/[\xc8|\xc9|\xca|\xcb]/g,'E');
		s = s.replace(/[\xcc|\xcd|\xce|\xcf]/g,'I');
		s = s.replace(/[\xd2|\xd3|\xd4|\xd5|\xd6]/g,'O');
		s = s.replace(/[\xd9|\xda|\xdb|\xdc]/g,'U');
		s = s.replace(/[\xe0|\xe1|\xe2|\xe3|\xe4|\xe5]/g,'a');
		s = s.replace(/[\xe8|\xe9|\xea|\xeb]/g,'e');
		s = s.replace(/[\xec|\xed|\xee|\xef]/g,'i');
		s = s.replace(/[\xf2|\xf3|\xf4|\xf5|\xf6]/g,'o');
		s = s.replace(/[\xf9|\xfa|\xfb|\xfc]/g,'u');
		return s;
	}
	
	function ReplaceBadCharsSisterNom(s)
	{
		s = s.replace(/[\.|\_|\\|\<|\>|\=|\^|\{|\}|\||\%]/gi,'');
		s = s.replace(/[\*|\xb4|\x91|\x92|\x93|\x94|\/|\,|\;|\:|\(|\)|\[|\]|\"|\+|\&|\?|\$|\!|\#|\-]/gi,' ');
		s = s.replace(/[\xc0|\xc1|\xc2|\xc3|\xc4|\xc5]/g,'A\'');
		s = s.replace(/[\xc8|\xc9|\xca|\xcb]/g,'E\'');
		s = s.replace(/[\xcc|\xcd|\xce|\xcf]/g,'I\'');
		s = s.replace(/[\xd2|\xd3|\xd4|\xd5|\xd6]/g,'O\'');
		s = s.replace(/[\xd9|\xda|\xdb|\xdc]/g,'U\'');
		s = s.replace(/[\xe0|\xe1|\xe2|\xe3|\xe4|\xe5]/g,'a\'');
		s = s.replace(/[\xe8|\xe9|\xea|\xeb]/g,'e\'');
		s = s.replace(/[\xec|\xed|\xee|\xef]/g,'i\'');
		s = s.replace(/[\xf2|\xf3|\xf4|\xf5|\xf6]/g,'o\'');
		s = s.replace(/[\xf9|\xfa|\xfb|\xfc]/g,'u\'');
		return s;
	}
	
	function ReplaceBadCharsSisterRag(s)
	{
		s = s.replace(/[\.|\_|\\|\<|\>|\=|\^|\{|\}|\||\%]/gi,'');
		s = s.replace(/[\*|\xb4|\x91|\x92|\x93|\x94|\/|\,|\;|\:|\(|\)|\[|\]|\"|\+|\&|\?|\$|\!|\#|\-]/gi,' ');
		s = s.replace(/[\xc0|\xc1|\xc2|\xc3|\xc4|\xc5]/g,'A\'');
		s = s.replace(/[\xc8|\xc9|\xca|\xcb]/g,'E\'');
		s = s.replace(/[\xcc|\xcd|\xce|\xcf]/g,'I\'');
		s = s.replace(/[\xd2|\xd3|\xd4|\xd5|\xd6]/g,'O\'');
		s = s.replace(/[\xd9|\xda|\xdb|\xdc]/g,'U\'');
		s = s.replace(/[\xe0|\xe1|\xe2|\xe3|\xe4|\xe5]/g,'a\'');
		s = s.replace(/[\xe8|\xe9|\xea|\xeb]/g,'e\'');
		s = s.replace(/[\xec|\xed|\xee|\xef]/g,'i\'');
		s = s.replace(/[\xf2|\xf3|\xf4|\xf5|\xf6]/g,'o\'');
		s = s.replace(/[\xf9|\xfa|\xfb|\xfc]/g,'u\'');
		return s;
	}
	
	function ReplaceBadCharsJolly(s)
	{
		s = s.replace(/[\.|\\|\<|\>|\=|\^|\{|\}|\|]/gi,'');
		s = s.replace(/[\'|\xb4|\x91|\x92|\x93|\x94|\*|\/|\,|\;|\:|\(|\)|\[|\]|\"|\+|\&|\?|\$|\!|\#|\-]/gi,' ');
		s = s.replace(/[\xc0|\xc1|\xc2|\xc3|\xc4|\xc5]/g,'A');
		s = s.replace(/[\xc8|\xc9|\xca|\xcb]/g,'E');
		s = s.replace(/[\xcc|\xcd|\xce|\xcf]/g,'I');
		s = s.replace(/[\xd2|\xd3|\xd4|\xd5|\xd6]/g,'O');
		s = s.replace(/[\xd9|\xda|\xdb|\xdc]/g,'U');
		s = s.replace(/[\xe0|\xe1|\xe2|\xe3|\xe4|\xe5]/g,'a');
		s = s.replace(/[\xe8|\xe9|\xea|\xeb]/g,'e');
		s = s.replace(/[\xec|\xed|\xee|\xef]/g,'i');
		s = s.replace(/[\xf2|\xf3|\xf4|\xf5|\xf6]/g,'o');
		s = s.replace(/[\xf9|\xfa|\xfb|\xfc]/g,'u');
		return s;
	}
	
	function ReplaceBadCharsEbr(s)
	{
		s = s.replace(/[\.|\\|\<|\>|\=|\^|\{|\}|\|]/gi,'');
		s = s.replace(/[\'|\xb4|\x91|\x92|\x93|\x94|\*|\/|\,|\;|\:|\(|\)|\[|\]|\"|\+|\&|\?|\$|\!|\#|\-]/gi,' ');
		/*s = s.replace(/[\xc0|\xc1|\xc2|\xc3|\xc4|\xc5]/g,'A');
		s = s.replace(/[\xc8|\xc9|\xca|\xcb]/g,'E');
		s = s.replace(/[\xcc|\xcd|\xce|\xcf]/g,'I');
		s = s.replace(/[\xd2|\xd3|\xd4|\xd5|\xd6]/g,'O');
		s = s.replace(/[\xd9|\xda|\xdb|\xdc]/g,'U');
		s = s.replace(/[\xe0|\xe1|\xe2|\xe3|\xe4|\xe5]/g,'a');
		s = s.replace(/[\xe8|\xe9|\xea|\xeb]/g,'e');
		s = s.replace(/[\xec|\xed|\xee|\xef]/g,'i');
		s = s.replace(/[\xf2|\xf3|\xf4|\xf5|\xf6]/g,'o');
		s = s.replace(/[\xf9|\xfa|\xfb|\xfc]/g,'u');*/
		return s;
	}
	
	function ReplaceBadCharsProt(s)
	{
		s = s.replace(/[\.|\'\xb4|\x91|\x92|\x93|\x94|\/|\<|\>|\||\^]/gi,'');
		s = s.replace(/[\*|\_|\\|\=|\,|\;|\:|\-|\(|\)|\"|\+|\?|\$|\%|\[|\]|\!|\#|\§|\£]/gi,' ');
		s = s.replace(/[\xc0|\xc1|\xc2|\xc3|\xc4|\xc5]/g,'A');
		s = s.replace(/[\xc8|\xc9|\xca|\xcb]/g,'E');
		s = s.replace(/[\xcc|\xcd|\xce|\xcf]/g,'I');
		s = s.replace(/[\xd2|\xd3|\xd4|\xd5|\xd6]/g,'O');
		s = s.replace(/[\xd9|\xda|\xdb|\xdc]/g,'U');
		s = s.replace(/[\xe0|\xe1|\xe2|\xe3|\xe4|\xe5]/g,'a');
		s = s.replace(/[\xe8|\xe9|\xea|\xeb]/g,'e');
		s = s.replace(/[\xec|\xed|\xee|\xef]/g,'i');
		s = s.replace(/[\xf2|\xf3|\xf4|\xf5|\xf6]/g,'o');
		s = s.replace(/[\xf9|\xfa|\xfb|\xfc]/g,'u');
		return s;
	}
	
	function isEmail(s)
	{
		var pattern = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		var re = new RegExp(pattern);
		return re.test(s);
		//return true;
	}
	
	function IsNotPhoneNumber (s)
	{
		s = s.replace(/[\/|\-|\ ]/gi,'');
		return IsNotInteger(s);
	}	
	
	
	function OpenHelp(myIDHelp,myWidth,myHeight,flagScroll,myPath)
	{
		/*p = window.open('about:blank','winHelp','left=5000');
		p.close();*/
		p = window.open(document.location.href.substring(0,document.location.href.lastIndexOf('/')+1)+myPath + 'Help.aspx?IDH=' + myIDHelp ,'winHelp','scrollbars=' + flagScroll + ',resizable=no,left=' + ((window.screen.width / 2) - (myWidth / 2)) + ',top=' + ((window.screen.height / 2) - (myHeight / 2)) + ',width=' + myWidth + ',height=' + myHeight );
		p.moveTo(((window.screen.width / 2) - (myWidth / 2)),((window.screen.height / 2) - (myHeight / 2)));
		
		if(TestButStampa())
			if (TestXpSp2())
				plus = 60;
			else
				plus = 30;
		else
			plus = 30;
		
		p.resizeTo(myWidth,myHeight+plus);
	}

