// Escaped character filter functions.
// File:    filter.js
// Author:  Clinton Farleigh
// WEBCAT:  3.0
// Version: 1.0
// History:
//    6 Sept 2002 - Initial Creation...CJF
//	 13 Sept 2002 - Fixed problem with back slash...CJF

/* The functions handle the corresponding unescape for content escaped in the aServer.  
	aServer function escapes potential delimiters and does not escape all other characters.
	Netscape 6.x and 7 unescape JavaScript function cannot handle UTF-8 encoded characters 
	that are not escaped.

	Note:  This is only a temporary solution - The browse must be rewritten for server side processing
*/


// Replace the escaped ( escaped( ) ) version of each character with the escaped version.
function unescapeUTF( string ) {
	var escString = string ;
	escString = replaceAll( escString, "%00", " " ) ; // formerly trapNulls function.
/*	escString = replaceAll( escString, "%01", " " ) ;
	escString = replaceAll( escString, "%02", " " ) ;
	escString = replaceAll( escString, "%03", " " ) ;
	escString = replaceAll( escString, "%04", " " ) ;
	escString = replaceAll( escString, "%05", " " ) ;
	escString = replaceAll( escString, "%06", " " ) ;
	escString = replaceAll( escString, "%07", " " ) ;
	escString = replaceAll( escString, "%08", " " ) ;
	escString = replaceAll( escString, "%09", " " ) ;
	escString = replaceAll( escString, "%0A", " " ) ;
	escString = replaceAll( escString, "%0B", " " ) ;
	escString = replaceAll( escString, "%0C", " " ) ;
	escString = replaceAll( escString, "%0D", " " ) ;
	escString = replaceAll( escString, "%0E", " " ) ;
	escString = replaceAll( escString, "%0F", " " ) ;
	escString = replaceAll( escString, "%10", " " ) ;
	escString = replaceAll( escString, "%11", " " ) ;
	escString = replaceAll( escString, "%12", " " ) ;
	escString = replaceAll( escString, "%13", " " ) ;
	escString = replaceAll( escString, "%14", " " ) ;
	escString = replaceAll( escString, "%15", " " ) ;
	escString = replaceAll( escString, "%16", " " ) ;
	escString = replaceAll( escString, "%17", " " ) ;
	escString = replaceAll( escString, "%18", " " ) ;
	escString = replaceAll( escString, "%19", " " ) ;
	escString = replaceAll( escString, "%1A", " " ) ;
	escString = replaceAll( escString, "%1B", " " ) ;
	escString = replaceAll( escString, "%1C", " " ) ;
	escString = replaceAll( escString, "%1D", " " ) ;
	escString = replaceAll( escString, "%1E", " " ) ;
	escString = replaceAll( escString, "%1F", " " ) ;*/
	escString = replaceAll( escString, "%20", " " ) ;
	escString = replaceAll( escString, "%21", "!" ) ;
	escString = replaceAll( escString, "%22", "\"" ) ;
	escString = replaceAll( escString, "%23", "#" ) ;
	escString = replaceAll( escString, "%24", "$" ) ;
	escString = replaceAll( escString, "%25", "%" ) ;
	escString = replaceAll( escString, "%26", "&" ) ;
	escString = replaceAll( escString, "%27", "'" ) ;
	escString = replaceAll( escString, "%28", "(" ) ;
	escString = replaceAll( escString, "%29", ")" ) ;
	escString = replaceAll( escString, "%2A", "*" ) ;
	escString = replaceAll( escString, "%2B", "+" ) ;
	escString = replaceAll( escString, "%2C", "," ) ;
	escString = replaceAll( escString, "%2D", "-" ) ;
	escString = replaceAll( escString, "%2E", "." ) ;
	escString = replaceAll( escString, "%2F", "/" ) ;
	escString = replaceAll( escString, "%3A", ":" ) ;
	escString = replaceAll( escString, "%3B", ";" ) ;
	escString = replaceAll( escString, "%3C", "<" ) ;
	escString = replaceAll( escString, "%3D", "=" ) ;
	escString = replaceAll( escString, "%3E", ">" ) ;
	escString = replaceAll( escString, "%3F", "?" ) ;
	escString = replaceAll( escString, "%40", "@" ) ;
	escString = replaceAll( escString, "%5B", "[" ) ;
	escString = replaceAll( escString, "%5C", "\\" ) ;
	escString = replaceAll( escString, "%5D", "]" ) ;
	escString = replaceAll( escString, "%5E", "^" ) ;
	escString = replaceAll( escString, "%5F", "_" ) ;
	escString = replaceAll( escString, "%60", "`" ) ;
	escString = replaceAll( escString, "%7B", "{" ) ;
	escString = replaceAll( escString, "%7C", "|" ) ;
	escString = replaceAll( escString, "%7D", "}" ) ;
	escString = replaceAll( escString, "%7E", "~" ) ;
	return escString ;
}

// Replace 
function replaceAll( string, source, dest ) {
	// Split string into an array and then join back into string
	// Assuming: this method is supported by native browser code 
	// and will be faster than looping through string and replacing 
	// each occurance of source...CJF
	// **** Can change this later if find better solution ****
	return string.split( source ).join( dest ) ;
}
