function IsFilled( f, n )
{
	if ( /\S/i.test( f.value ) == false )
	{
		alert( n );
		f.focus( );
		f.select( );
		return false;
	}
	return true;
}
function IsEmail( f, n )
{
	if ( /^[a-z\d][a-z\d\-\._%]*@([a-z\d][a-z\d\-]*)(\.[a-z\d][a-z\d\-]*)*$/i.test( f.value ) == false )
	{
		alert( n );
		f.focus( );
		f.select( );
		return false;
	}
	return true;
}
function IsInteger( f, n )
{
	if ( /^\+?\d{1,8}$/i.test( f.value ) == false )
	{
		alert( n );
		f.focus( );
		f.select( );
		return false;
	}
	return true;
}
function IsNumber( f, n )
{
	if ( /^\+?\d{1,8}(\.\d{1,8})?$/i.test( f.value ) == false )
	{
		alert( n );
		f.focus( );
		f.select( );
		return false;
	}
	return true;
}
function IsDate( f, n )
{
	var dt = new Date( f.value );
	if ( isNaN( dt ) == true || dt.getFullYear( ) < 1900 || dt.getFullYear( ) > 2100 )
	{
		alert( n );
		f.focus( );
		f.select( );
		return false;
	}
	return true;
}
function IsPattern( f, n, p )
{
	if ( p.test( f.value ) == false )
	{
		alert( n );
		f.focus( );
		f.select( );
		return false;
	}
	return true;
}
function IsSelected( f, n )
{
	if ( f.options.length == 0 || f.selectedIndex < 0 || f.options[ f.selectedIndex ].value == "" )
	{
		alert( n );
		f.focus( );
		return false;
	}
	return true;
}
function IsChecked( f, n )
{
	if ( f.length ) {
		for ( var i = 0; i < f.length; i++ )
		{
			if ( f[ i ].checked == true )
			{
				return true;
			}
		}
		alert( n );
		f[ 0 ].focus( );
		return false;
	}
	else if ( f.checked == false )
	{
		alert( n );
		f.focus( );
		return false;
	}
	return true;
}
function CrossAttachEvent( o, e, f )
{
	if ( o.addEventListener )
	{
		o.addEventListener( e, f, false );
	}
	else if ( o.attachEvent )
	{
		o.attachEvent( "on" + e, f );
	}
}
function CrossHttpObject( )
{
	var o = null;
	try
	{
		o = new XMLHttpRequest( );
	}
	catch ( e )
	{
		try
		{
			o = new ActiveXObject( "MSXML2.XMLHTTP" );
		}
		catch ( e )
		{
			o = new ActiveXObject( "MICROSOFT.XMLHTTP" );
		}
	}
	return o;
}
function Rot13( v )
{
	var r = "";
	for ( i = 0; i < v.length; i++ )
	{
		k = v.charCodeAt( i );
		if ( ( k >= 97 && k <= 109 ) || ( k >= 65 && k <= 77 ) )
		{
			k += 13;
		}
		else if ( ( k >= 110 && k <= 122 ) || ( k >= 78 && k <= 90 ) )
		{
			k -= 13;
		}
		r = r + String.fromCharCode( k );
	}
	return r;
}

