var semicolon	= "02cP";

var ampersand	= "03cP";
var question	= "04cP";
var equals		= "05cP";
var percent		= "06cP";
var hash		= "07cP";

var quote		= "08cP";
var apostrophe	= "09cP";

function simpleEncode( Text )
{
	return Text.replace( /&/g, ampersand ).replace( 
		/\?/g, question ).replace( /=/g, equals ).replace( /%/g, percent ).replace( /#/g, hash );
}


function simpleDecode( Text )
{
	if ( Text == "" )
		return "";
	else
		return Text.replace( eval( "/" + ampersand + "/g" ), "&" ).replace( 
			eval( "/" + question + "/g" ), "?" ).replace( eval( "/" + equals + "/g" ), "=" ).replace( 
			eval( "/" + percent + "/g" ), "%" ).replace( eval( "/" + hash + "/g" ), "#" );
}

function htmlEncode( Text )
{
	return Text.replace( /"/g, quote ).replace( /'/g, apostrophe );
}


function htmlDecode( Text )
{
	return Text.replace( eval( "/" + quote + "/g" ), "\"" ).replace( 
		eval( "/" + apostrophe + "/g" ), "'" );
}

function cookieEncode( Text )
{
	return Text.replace( /;/g, semicolon ).replace( /=/g, equals );
}


function cookieDecode( Text )
{
	return Text.replace( eval( "/" + semicolon + "/g" ), ";" ).replace( 
		eval( "/" + equals + "/g" ), "=" );
}

function javaScriptEncode( Text )
{
	return Text.replace( /\\/g, "\\\\" ).replace( /"/g, "\\\"" ).replace( /'/g, "\\'" );
}

function commaStrip( Text )
{
	return Text.replace( /,/g, "" ).replace( /\$/g, "" ).replace( /\%/g, "" );			
}

function commaFormat( Number, IsInteger )
{
	var index;
	if ( IsInteger && Number.lastIndexOf( "." ) > 0 )
	{
		Number	= Number.substring( 0, Number.lastIndexOf( "." ) );
		index	= Number.length - 3;
	}
	else
	{
		if ( Number.lastIndexOf( "." ) > 0 )
		{
			if ( Number.length - Number.lastIndexOf( "." ) > 2 )
				Number	= Number.substring( 0, Number.lastIndexOf( "." )+ 3 );

			index = Number.lastIndexOf( "." ) - 3;
		}
		else
			index = Number.length - 3;
	}

	while ( index > 0 )
	{
		Number = Number.slice( 0, index ) + "," + Number.slice( index, Number.length );
		index -= 3;
	}

	return Number;
}

function isInteger( Text )
{
	return Text.indexOf( "." ) == -1;		
}

function isValidString( Text )
{
	if ( Text.indexOf( "<" ) != -1 )
		return false;
	if ( Text.indexOf( ">" ) != -1 )
		return false;
		
	return true;
}

function isAlphaNumericString( Text )
{
	if ( !isValidString( Text ) )
		return false;
	if ( Text.indexOf( "?" ) != -1 )
		return false;
	if ( Text.indexOf( "&" ) != -1 )
		return false;
	if ( Text.indexOf( "=" ) != -1 )
		return false;
	if ( Text.indexOf( "/" ) != -1 )
		return false;
	if ( Text.indexOf( "\\" ) != -1 )
		return false;
	if ( Text.indexOf( "@" ) != -1 )
		return false;
	if ( Text.indexOf( "\"" ) != -1 )
		return false;
	if ( Text.indexOf( "'" ) != -1 )
		return false;
	if ( Text.indexOf( "!" ) != -1 )
		return false;
	if ( Text.indexOf( "$" ) != -1 )
		return false;
	if ( Text.indexOf( "%" ) != -1 )
		return false;
	if ( Text.indexOf( "^" ) != -1 )
		return false;
	if ( Text.indexOf( "*" ) != -1 )
		return false;
	if ( Text.indexOf( "(" ) != -1 )
		return false;
	if ( Text.indexOf( ")" ) != -1 )
		return false;
	if ( Text.indexOf( "+" ) != -1 )
		return false;
	if ( Text.indexOf( "{" ) != -1 )
		return false;
	if ( Text.indexOf( "}" ) != -1 )
		return false;
	if ( Text.indexOf( "[" ) != -1 )
		return false;
	if ( Text.indexOf( "]" ) != -1 )
		return false;
	if ( Text.indexOf( "|" ) != -1 )
		return false;
	if ( Text.indexOf( ":" ) != -1 )
		return false;
	if ( Text.indexOf( ";" ) != -1 )
		return false;
	if ( Text.indexOf( "_" ) != -1 )
		return false;
	if ( Text.indexOf( "`" ) != -1 )
		return false;
	if ( Text.indexOf( "~" ) != -1 )
		return false;
		
	return true;
}

function isEmailAddress( Text )
{
	if ( !isValidEmail( Text ) )
		return false;
		
	if ( Text.indexOf( '@' ) <= 0 )
		return false;
	if ( Text.lastIndexOf( '.' ) <= Text.indexOf( '@' ) + 1 )
		return false;
	if ( Text.lastIndexOf( '.' ) == Text.length - 1 )
		return false;

	return true;
}


function isValidEmail( Text )
{
	if ( !isValidString( Text ) )
		return false;
	if ( Text.indexOf( "?" ) != -1 )
		return false;
	if ( Text.indexOf( "&" ) != -1 )
		return false;
	if ( Text.indexOf( "=" ) != -1 )
		return false;
	if ( Text.indexOf( "/" ) != -1 )
		return false;
	if ( Text.indexOf( "\\" ) != -1 )
		return false;
	if ( Text.indexOf( "\"" ) != -1 )
		return false;
	if ( Text.indexOf( "'" ) != -1 )
		return false;
	if ( Text.indexOf( "!" ) != -1 )
		return false;
	if ( Text.indexOf( "$" ) != -1 )
		return false;
	if ( Text.indexOf( "%" ) != -1 )
		return false;
	if ( Text.indexOf( "^" ) != -1 )
		return false;
	if ( Text.indexOf( "*" ) != -1 )
		return false;
	if ( Text.indexOf( "(" ) != -1 )
		return false;
	if ( Text.indexOf( ")" ) != -1 )
		return false;
	if ( Text.indexOf( "+" ) != -1 )
		return false;
	if ( Text.indexOf( "{" ) != -1 )
		return false;
	if ( Text.indexOf( "}" ) != -1 )
		return false;
	if ( Text.indexOf( "[" ) != -1 )
		return false;
	if ( Text.indexOf( "]" ) != -1 )
		return false;
	if ( Text.indexOf( "|" ) != -1 )
		return false;
	if ( Text.indexOf( ":" ) != -1 )
		return false;
	//if ( Text.indexOf( ";" ) != -1 )
	//	return false;
	if ( Text.indexOf( "`" ) != -1 )
		return false;
		
	return true;
}

function isValidURL( Text )
{
	if ( !isValidString( Text ) )
		return false;
	if ( Text.indexOf( "?" ) != -1 )
		return false;
	if ( Text.indexOf( "&" ) != -1 )
		return false;
	if ( Text.indexOf( "=" ) != -1 )
		return false;
	if ( Text.indexOf( "/" ) != -1 )
		return false;
	if ( Text.indexOf( "\\" ) != -1 )
		return false;
	if ( Text.indexOf( "\"" ) != -1 )
		return false;
	if ( Text.indexOf( "'" ) != -1 )
		return false;
	if ( Text.indexOf( "!" ) != -1 )
		return false;
	if ( Text.indexOf( "$" ) != -1 )
		return false;
	if ( Text.indexOf( "%" ) != -1 )
		return false;
	if ( Text.indexOf( "^" ) != -1 )
		return false;
	if ( Text.indexOf( "*" ) != -1 )
		return false;
	if ( Text.indexOf( "(" ) != -1 )
		return false;
	if ( Text.indexOf( ")" ) != -1 )
		return false;
	if ( Text.indexOf( "+" ) != -1 )
		return false;
	if ( Text.indexOf( "{" ) != -1 )
		return false;
	if ( Text.indexOf( "}" ) != -1 )
		return false;
	if ( Text.indexOf( "[" ) != -1 )
		return false;
	if ( Text.indexOf( "]" ) != -1 )
		return false;
	if ( Text.indexOf( "|" ) != -1 )
		return false;
	if ( Text.indexOf( ":" ) != -1 )
		return false;
	if ( Text.indexOf( ";" ) != -1 )
		return false;
	if ( Text.indexOf( "`" ) != -1 )
		return false;
	if ( Text.indexOf( "@" ) != -1 )
		return false;
		
	return true;
}