function apridialog (link,barre,larghezza,altezza)
{
window.open(link, "Dialog", "toolbar=no, scrollbars=" + barre + " ,location=no,top=50, left=100, width=" + larghezza + ",height=" + altezza);
}

function Colore(a,tipo) {
	if (tipo=="alto")
	{
		a.style.color="red"
	}
	else
	{
		a.style.color=""
	}		
	a.style.fontWeight = "bold";
}
function NoColore(a,tipo) {
	if (tipo=="alto")
	{
		a.style.color="white"
	}
	else
	{
		a.style.color=""
	}	
	a.style.fontWeight = "bold";
}

function controlla_numero(a)
{
	if (a.value!="")
	{
		if (isNaN(a.value))
		{
			alert("Inserire dati numerici.")
			a.focus
		}
	}	
}

//***********************************************************************
//	ID:					JS_String
//	Language:			JavaScript V.1.0
//	Created:			02/03/99
//	Last Update:		02/03/99
//	Project:			Control Panel Server Farm Infostrada
//	Description:		Fuzioni generali di controllo delle stringhe.
//	Note:				Utilizzato JavaScript 1.0 per compatibilita' con le
//						versioni 3.0 dei browser.
//						Da testare la funzionalita' su NN.
//	Elenco Funzioni:	1. CheckNumeric
//						2. CheckNotOnlySpaces
//						3. DeleteLeadSpaces
//						4. CompressString
//						5. CheckStringLenght
//						6. CheckValidString
//						7. DeleteInvalidChars
//***********************************************************************

/*
--------------------------------------------------------------------------------
function CheckNumeric
parameters -	szPassedString String Stringa da verificare
return	-		boolean		true -	numeric
							false - not numeric
Last Update: 02/03/99
Verifica che una stringa sia numerica.
--------------------------------------------------------------------------------
*/
function CheckNumeric(szPassedString)	
{
	return CheckValidString(szPassedString,'1234567890', false);
}


/*
--------------------------------------------------------------------------------
function CheckNotOnlySpaces
parameters -	szPassedString String Stringa da verificare.
return	-		boolean		true -	valid string
							false - invalid string (only spaces)
Last Update: 02/03/99							
Verifica che una stringa non sia composta solo da spazi.
--------------------------------------------------------------------------------
*/
function CheckNotOnlySpaces(szPassedString)	{
	return (CheckValidString(szPassedString, ' ',true));
}

/*
--------------------------------------------------------------------------------
function DeleteLeadSpaces
parameters -	szPassedString String Stringa da 'ripulire'.
return	-		String	Stringa trimmata
Last Update: 02/03/99					
Elimina tutti gli spazi iniziali e finali.
--------------------------------------------------------------------------------
*/
function DeleteLeadSpaces(szPassedString)	{
	return DeleteInvalidChars(szPassedString, ' ', true , true);
}

/*
--------------------------------------------------------------------------------
function CompressString
parameters -	szPassedString String Stringa da verificare.
return	-		string	Stringa compressa
Last Update: 02/03/99							
Comprime una stringa eliminando tutti i caratteri non validi.
Sono validi solo le lettere ed i numeri.
--------------------------------------------------------------------------------
*/
function CompressString(szPassedString)	{
	var szValidString = new String('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890')
	return DeleteInvalidChars(szPassedString, szValidString, false , false);
}


/*
--------------------------------------------------------------------------------
function CheckStringLenght
parameters -	szPassedString	String	Stringa da verificare
				nLenght					Integer	Lunghezza massima stringa
				bExactLenght	Boolean
									true - verifica l'esatta lunghezza
									false - verifica che la stringa non
											sia piu' lunga di nLenght	
return	-		boolean			true -	passed check
								false - failde check
Last Update: 02/03/99
Controlla la lunghezza delle stringa passata. Puo' essere verificata
la lunghezza esatta oppure che non venga superata. 								
--------------------------------------------------------------------------------
*/
function CheckStringLenght(szPassedString, nLenght, bExactLenght)	{
	var szTmpString = new String(szPassedString);
	var nNumber = 0;
	nNumber = nLenght;
	
	if (bExactLenght != true)
		{
		return !(szTmpString.length > nLenght)
		}
	else
		{
		return (szTmpString.length == nLenght)
		}
}
		

/*
--------------------------------------------------------------------------------
function CheckValidString
parameters -	szPassedString	String	Stringa da verificare
				szCheckString	String	String di caratteri di
										comparazione	
bInvalidString	Boolean			true	szCheckString contiene
										i caratteri NON validi
								false	szCheckString contiene
										i caratteri VALIDI
return	-		boolean			true -	passed check
								false - failed check
Last Update: 02/03/99
Verifica che una stringa contenga solo caratteri validi								
--------------------------------------------------------------------------------
*/
function CheckValidString(szPassedString, szCheckString, bInvalidString)	
{
	var szTmpString = new String(szPassedString);
	var szCompareString = new String(szCheckString);
	var nLength = 0;
	var nIndex;

	//szCompareString = szCheckString;
	//szTmpString = szPassedString;
	nLength = szTmpString.length;

	for (nIndex = 0; nIndex < nLength; nIndex++)
		{
		if (bInvalidString != (szCompareString.indexOf(szTmpString.charAt(nIndex), 0) < 0))
			{
			return false;
			}
		}
	return true;
}

/*
--------------------------------------------------------------------------------
function DeleteInvalidChars
parameters -	szPassedString	String	Stringa da verificare
				szCheckString		String	String di caratteri da
											eliminare
				bInvalidString	Boolean	
									true	szCheckString contiene
											i caratteri NON validi
									false	szCheckString contiene
											i caratteri VALIDI
				bOnlyLead		Boolean
									true	Cancella i caratteri solo
											nella parte iniziale della
											stringa
									false	Cancella i caratteri non
											validi in tutta la stringa
return	-		string
Last Update: 02/03/99
Restituisce una stringa composta solo da caratteri validi.
E' possibile passare la lista dei caratteri validi o NON validi,
specificando se sostituire solo all'inizio o in tutta la stringa.
--------------------------------------------------------------------------------
*/
function DeleteInvalidChars(szPassedString, szCheckString, bInvalidString, bOnlyLead)	{
	var szTmpString = new String(szPassedString);
	var szCompareString = new String(szCheckString);
	var szTempString = new String;
	var szReturnString = new String;
	var szCharacter = new String;
	var bFirstValidChar = false
	var nLength = 0;
	var nIndex;

	nLength = szTmpString.length;
	
	for (nIndex = 0; nIndex < nLength; nIndex++)
		{
		szCharacter = szTmpString.charAt(nIndex);
		if (bInvalidString == (szCompareString.indexOf(szCharacter, 0) < 0))
			{
			bFirstValidChar = true
			szReturnString = szReturnString + szCharacter;
			}
		else if (bOnlyLead)
			{
			if (bFirstValidChar) 
				{
				szReturnString = szReturnString + szCharacter;
				}
			}
		}

	if (bOnlyLead)
		{
		szTmpString = szReturnString;
		szReturnString = '';
		nLength = szTmpString.length;
		bFirstValidChar = false;

		for (nIndex = nLength-1; nIndex > -1; nIndex--)
			{
			szCharacter = szTmpString.charAt(nIndex);
			if (bInvalidString == (szCompareString.indexOf(szCharacter, 0) < 0))
				{
				bFirstValidChar = true
				szReturnString = szCharacter + szReturnString;
				}
			else if (bFirstValidChar) 
				{
				szReturnString = szCharacter + szReturnString;
				}
			}
		}

	return szReturnString;
}

function checkDate(day, month, year)
{
	// verifica la correttezza della data ricevuta in input
	// controlla i mesi di 30 e 31 giorni e i mesi bisestili
	// gli anni di fine secolo (ES. 1800, 1900) non sono bisestili
	// tranne gli anni di fine millennio

	if ((day=="") && (month=="") && (year==""))
	   return 1;
	
	if ((day=="") || (month=="") || (year==""))
	   return 0;

	if ((isNaN(day)) || (isNaN(month)) || (isNaN(year)))
	   return 0;

	day = parseInt(day, 10)
	month = parseInt(month, 10)
	year = parseInt(year, 10)

	if ((month < 1) || (month > 12))
	   return 0;

	switch (month)
	{
		case 1:			
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			if ((day < 1) || (day > 31))
			   return 0;
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			if ((day < 1) || (day > 30))
			   return 0;
			break;
		case 2:
			if ((((year%4)!=0) || ((year%100)==0)) && ((year%1000)!=0))
			{
				if ((day < 1) || (day > 28))
				   return 0;
			}
			else
			{
				if ((day < 1) || (day > 29))
				   return 0;
			}
			break;
	}
    return 1;
}

/*
--------------------------------------------------------------------------------
function CheckMailAddress
parameters -	szPassedString	String	Stringa da verificare
				bMandatoryString	true - campo obbligatorio
													false - campo opzionale
ritorna 1 se la stringa è vuota
 
Last Update: 03/03/99
Verifica che una stringa obbligatoria sia valorizzata
--------------------------------------------------------------------------------
*/
function CheckMailAddress (szPassedString)
{
var szTmpString = new String(szPassedString);
if (szTmpString=="")
	return (1)

var szCheckChar = new String;
var nLength = 0;
var nCharAT = 0;
var nCharPoint = 0;
var szCharAT = new String('@');
var szCharPoint = new String('.');
nLength = szTmpString.length;

	for (nIndex = 0; nIndex < nLength; nIndex++)
		{
		szCheckChar = szTmpString.charAt(nIndex)
		if (szCheckChar == szCharAT)
			{
			nCharAT++;
			}
		else if (szCheckChar == szCharPoint)
			{
			nCharPoint++;
			}
		}
	return ((nCharPoint > 0) & (nCharAT == 1));
}