/*
	Functions used in search pages
*/
function disableDate( modifier, name, value )
{
	document.getElementById( name ).disabled = !( document.getElementById( modifier ).value == value );
}

function isValidEmail( email ) 
{ 
	var pattern=/^[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;
	return pattern.test( email );
}

function isValidDate( year, month, day )
{
	return day > 0 && ( day <= [, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][ month ] ||
		day == 29 && month == 2 && year % 4 == 0 && ( year % 100 > 0 || year % 400 == 0 ) );
}

// name: field name
// type: field type to check
//		0: date( DD/MM/YYYY )
//		1: integer
function isValid( element, type )
{
	if( element.value == '' )
	{
		return true;
	}
	switch( type )
	{
		// date
		case 0:
			if( element.value.search( /^\d\d?\/\d\d?\/\d{1,4}$/ ) != 0 )
			{
				alert( "Formato da data incorrecto." );
				window.setTimeout( "document.getElementById( '" + element.name + "').focus()", 1 );
				return false;
			}
			date_value = element.value.split( "/" );
			if( ! isValidDate( date_value[ 2 ], date_value[ 1 ], date_value[ 0 ] ) )
			{
				alert( "Data invalida." );
				window.setTimeout( "document.getElementById( '" + element.name + "').focus()", 1 );
				return false;
			}
			break;
		// integer
		case 1:
			if( element.value.search( /^\d+$/ ) != 0 )
			{
				alert( "Valor incorrecto." );
				window.setTimeout( "document.getElementById( '" + element.name + "' ).focus()", 1 );
				return false;
			}
			break;
		// email
		case 2:
			return isValidEmail( element.value );
	}

	return true;
}

