001function URLEncode (clearString) {
002 var output = '';
003 var x = 0;
004 clearString = clearString.toString();
005 var regex = /(^[a-zA-Z0-9_.]*)/;
006 while (x < clearString.length) {
007 var match = regex.exec(clearString.substr(x));
008 if (match != null && match.length > 1 && match[1] != '') {
009 output += match[1];
010 x += match[1].length;
011 } else {
012 if (clearString[x] == ' ')
013 output += '+';
014 else {
015 var charCode = clearString.charCodeAt(x);
016 var hexVal = charCode.toString(16);
017 output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
018 }
019 x++;
020 }
021 }
022 return output;
023}
001function URLDecode (encodedString) {
002 var output = encodedString;
003 var binVal, thisString;
004 var myregexp = /(%[^%]{2})/;
005 while ((match = myregexp.exec(output)) != null
006 && match.length > 1
007 && match[1] != '') {
008 binVal = parseInt(match[1].substr(1),16);
009 thisString = String.fromCharCode(binVal);
010 output = output.replace(match[1], thisString);
011 }
012 return output;
013}