function PrepareStr(s)
{
	var re = /\<\//gi
	s = s.replace(re, "*");
	var re = /script/gi
	s = s.replace(re, "*");
	var re = /\</gi
	s = s.replace(re, "*");
	re = /\>/gi
	s = s.replace(re, "*");
	re = /\//gi
	s = s.replace(re, "*");
  	return s;
}

//------------------------------------------------------------
//	ToHtmlSafeString
//------------------------------------------------------------

function ToHtmlSafeString(data)
{
	var s = new String(data);
	var nLen = s.length;
	var sAnswer = ""; 

	for (i=0; i < nLen; i++)
	{
		var ch = s.charAt(i);		

		if (ch == '\r') 
		{
			ch = s.charAt(++i);		
	                if (ch=='\n') sAnswer += "<BR>";
                }
		else if (ch == ' ') sAnswer += "&nbsp;";
		else if (ch == '\'') sAnswer += "`";
		else if (ch == '\"') sAnswer += "``";
		else if (ch == '\\') sAnswer += "/";
		else if (ch == '<')  sAnswer += "&lt;";
		else sAnswer += ch;
	}


	return sAnswer;
}

//------------------------------------------------------------
//	ToSqlSafeString
//------------------------------------------------------------

function ToSqlSafeString(data)
{
	var s = new String(data);
	var nLen = s.length;
	var sAnswer = ""; 

	for (var i = 0; i < nLen; i++)
	{
		var ch = s.charAt(i);      
		switch (ch)
		{
			case '|':
				sAnswer += "'&chr(124)&'";
				break;
			case '\'':
				sAnswer += ch;
				break;
			default:		
		        	sAnswer += ch;
		}	
	}
	return sAnswer;
}

//------------------------------------------------------------
//	TrimLeftString
//------------------------------------------------------------

function TrimLeftString(sValue)
{
	var s = new String(sValue);
	var normS = "";

	for (var i=0; i < s.length; i++)
		if (s.charAt(i) == ' ')
			continue;
		else
		{
			normS = s.substr(i);
			break;
		};

	return normS;
}

//------------------------------------------------------------
//	TrimRightString
//------------------------------------------------------------

function TrimRightString(sValue)
{
 	var s = new String(sValue);
	var normS = "";

	for (var i = s.length - 1; i >= 0; i--)
		if (s.charAt(i) == ' ')
			continue;
		else
		{
			normS = s.substring(0, i + 1);
			break;
		};

	return normS;
}

//------------------------------------------------------------
//	TrimString
//------------------------------------------------------------

function TrimString(data)
{
	return TrimRightString(TrimLeftString(data));
}

//------------------------------------------------------------
//	GetHexCodesASCIITable
//------------------------------------------------------------

function GetHexCodesASCIITable(arCh)
{
	arCh[' ']="20"; arCh['!']="21"; arCh['"']="22"; arCh['#']="23"; arCh['$']="24";
	arCh['%']="25"; arCh['&']="26"; arCh['\'']="27";arCh['(']="28"; arCh[')']="29";
	arCh['*']="2A"; arCh['+']="2B"; arCh[',']="2C"; arCh['-']="2D"; arCh['.']="2E";
	arCh['/']="2F"; arCh['0']="30"; arCh['1']="31"; arCh['2']="32"; arCh['3']="33";
	arCh['4']="34"; arCh['5']="35"; arCh['6']="36"; arCh['7']="37"; arCh['8']="38";
	arCh['9']="39"; arCh[':']="3A"; arCh[';']="3B"; arCh['<']="3C"; arCh['=']="3D";
	arCh['>']="3E"; arCh['?']="3F"; arCh['@']="40"; arCh['A']="41"; arCh['B']="42";
	arCh['C']="43"; arCh['D']="44"; arCh['E']="45"; arCh['F']="46"; arCh['G']="47";
	arCh['H']="48"; arCh['I']="49"; arCh['J']="4A"; arCh['K']="4B"; arCh['L']="4C";
	arCh['M']="4D"; arCh['N']="4E"; arCh['O']="4F"; arCh['P']="50"; arCh['Q']="51";
	arCh['R']="52"; arCh['S']="53"; arCh['T']="54"; arCh['U']="55"; arCh['V']="56";
	arCh['W']="57"; arCh['X']="58"; arCh['Y']="59"; arCh['Z']="5A"; arCh['[']="5B";
	arCh['\\']="5C";arCh[']']="5D"; arCh['^']="5E"; arCh['_']="5F"; arCh['`']="60";
	arCh['a']="61"; arCh['b']="62"; arCh['c']="63"; arCh['d']="64"; arCh['e']="65";
	arCh['f']="66"; arCh['g']="67"; arCh['h']="68"; arCh['i']="69"; arCh['j']="6A";
	arCh['k']="6B"; arCh['l']="6C"; arCh['m']="6D"; arCh['n']="6E"; arCh['o']="6F";
	arCh['p']="70"; arCh['q']="71"; arCh['r']="72"; arCh['s']="73"; arCh['t']="74";
	arCh['u']="75"; arCh['v']="76"; arCh['w']="77"; arCh['x']="78"; arCh['y']="79";
	arCh['z']="7A"; arCh['{']="7B"; arCh['|']="7C"; arCh['}']="7D"; arCh['~']="7E";
	arCh['']="7F"; arCh['']="80"; arCh['']="81"; arCh['']="82"; arCh['']="83";
	arCh['']="84"; arCh['']="85"; arCh['']="86"; arCh['']="87"; arCh['']="88";
	arCh['']="89"; arCh['']="8A"; arCh['']="8B"; arCh['']="8C"; arCh['']="8D";
	arCh['']="8E"; arCh['']="8F"; arCh['']="90"; arCh['']="91"; arCh['']="92";
	arCh['']="93"; arCh['']="94"; arCh['']="95"; arCh['']="96"; arCh['']="97";
	arCh['']="98"; arCh['']="99"; arCh['']="9A"; arCh['']="9B"; arCh['']="9C";
	arCh['']="9D"; arCh['']="9E"; arCh['']="9F"; arCh['']="A0"; arCh['']="A1";
	arCh['']="A2"; arCh['']="A3"; arCh['']="A4"; arCh['']="A5"; arCh['']="A6";
	arCh['']="A7"; arCh['']="A8"; arCh['']="A9"; arCh['']="AA"; arCh['']="AB";
	arCh['']="AC"; arCh['']="AD"; arCh['']="AE"; arCh['']="AF"; arCh['']="B0";
	arCh['']="B1"; arCh['']="B2"; arCh['']="B3"; arCh['']="B4"; arCh['']="B5";
	arCh['']="B6"; arCh['']="B7"; arCh['']="B8"; arCh['']="B9"; arCh['']="BA";
	arCh['']="BB"; arCh['']="BC"; arCh['']="BD"; arCh['']="BE"; arCh['']="BF";
	arCh['']="C0"; arCh['']="C1"; arCh['']="C2"; arCh['']="C3"; arCh['']="C4";
	arCh['']="C5"; arCh['']="C6"; arCh['']="C7"; arCh['']="C8"; arCh['']="C9";
	arCh['']="CA"; arCh['']="CB"; arCh['']="CC"; arCh['']="CD"; arCh['']="CE";
	arCh['']="CF"; arCh['']="D0"; arCh['']="D1"; arCh['']="D2"; arCh['']="D3";
	arCh['']="D4"; arCh['']="D5"; arCh['']="D6"; arCh['']="D7"; arCh['']="D8";
	arCh['']="D9"; arCh['']="DA"; arCh['']="DB"; arCh['']="DC"; arCh['']="DD";
	arCh['']="DE"; arCh['']="DF"; arCh['']="E0"; arCh['']="E1"; arCh['']="E2";
	arCh['']="E3"; arCh['']="E4"; arCh['']="E5"; arCh['']="E6"; arCh['']="E7";
	arCh['']="E8"; arCh['']="E9"; arCh['']="EA"; arCh['']="EB"; arCh['']="EC";
	arCh['']="ED"; arCh['']="EE"; arCh['']="EF"; arCh['']="F0"; arCh['']="F1";
	arCh['']="F2"; arCh['']="F3"; arCh['']="F4"; arCh['']="F5"; arCh['']="F6";
	arCh['']="F7"; arCh['']="F8"; arCh['']="F9"; arCh['']="FA"; arCh['']="FB";
	arCh['']="FC"; arCh['']="FD"; arCh['']="FE"; arCh['']="FF";
}

//------------------------------------------------------------
//	EscapeEx
//------------------------------------------------------------

function EscapeEx(sValue)
{
	var s = new String(sValue);

	var arCh = new Array();
	GetHexCodesASCIITable(arCh);	

	var sRet = "";
	for (var i = 0; i < s.length; i++)
		sRet += "%" + arCh[s.charAt(i)];
	return sRet;
}

//------------------------------------------------------------
//	UnescapeEx
//------------------------------------------------------------

function UnescapeEx(sValue)
{
	var sSour = new String(sValue);

	var arCh = new Array();
	GetHexCodesASCIITable(arCh);	

	var sRet = "";
	for (var i = 0; i < sSour.length; i += 3)
	{
		var sHex = sSour.substr(i + 1, 2);
		for (c in arCh)
			if (arCh[c] == sHex)
			{
				sRet += c;
				break;
			}
	}

	return sRet;
}


