function chkDate( obj, quiet, sep, foc )
{
	var val=obj.value;

	if( arguments.length == 1 )
	{
		quiet = false;
		if( sep == null || sep == '' )
			sep = '/';
		
		if( foc == null || foc == '' )
			foc = true;
	}
	if( val != '' )
	{
		var tmpArray	= new Array();

		tmpArray	= val.split( sep );
		/* se non contiene l'anno metto quello corrente */
		if( tmpArray.length==2 ) tmpArray[2] = (new Date()).getFullYear();

		var data	= new Date( y2k( tmpArray[2] ), parseInt( tmpArray[1], 10 ) - 1, tmpArray[0] );
		var giorno	= parseInt( tmpArray[0], 10 );
		var mese	= parseInt( tmpArray[1], 10 ) -1;
		var anno	= y2k( parseInt(tmpArray[2], 10) );	/* metto l'anno nel formato a 4 cifre */

		var isDate =	   tmpArray.length == 3			/* è nel formato anno/mese/giorno */
				&& giorno == data.getDate()		/* il giorno è corretto */
				&& mese	== data.getMonth()		/* il mese è corretto */
				&& anno	== y2k( data.getFullYear() )	/* l'anno è corretto */
		;

		if( !isDate )
		{
			if( !quiet )
			{
				alert('Data errata.\nIl formato corretto e\': dd'+sep+'mm'+sep+'yyyy');
				try
				{
					if( foc )
						obj.focus();
				}
				catch(e)
				{
					try
					{
						if( foc )
							self.event.srcElement.focus();
					}
					catch(e)
					{;}
				}
			}
			return false;
		}
		else
		{
			var returnDate =	 pad( parseInt(tmpArray[0],10), 2, '0' )
					 + sep + pad( parseInt(tmpArray[1],10), 2, '0' )
					 + sep + (y2k( parseInt( tmpArray[2], 10 ) ));

			return true;
		}
	}

	return true;
}

/*
-	padstr		la stringa da riempire

-	len		la lunghezza finale della stringa

-	padchr		il carattere con il quale riempire la stringa
			se omesso viene utilizzato lo spazio

-	mode=1		pad a destra 'aa' --> 'aa***'
	mode!=1		pad a sinistra 'aa' --> '***aa'
			se omesso vale 0
*/
function pad( padstr, len, padchr, mode )
{
	if( arguments.length == 2 )
	{
		padchar = ' ';
		mode = 0;
	}
	else if( arguments.length == 3 )
	{
		mode = 0;
	}

	padstr = new String(padstr);

	while( padstr.length < len )
	{
		if( mode == 1 )
			padstr = padstr + padchr;
		else		padstr = padchr+padstr;
	}

	return padstr;
}

function y2k(n)
{
	if( n < 30 )		n = parseInt(n,10)+2000;
	else if( n < 1000 )	n = parseInt(n,10)+1900;

	return n;
}
