function URLEncode(plaintext){var SAFECHARS="0123456789"+"ABCDEFGHIJKLMNOPQRSTUVWXYZ"+"abcdefghijklmnopqrstuvwxyz"+"-_.!~*'()";var gs="0123456789ABCDEF";var encoded="";for(var i=0;i<plaintext.length;i++){var ch=plaintext.charAt(i);if(ch==" "){encoded+="+";}else if(SAFECHARS.indexOf(ch)!=-1){encoded+=ch}else{var charCode=ch.charCodeAt(0);if(charCode>255){encoded+="+"}else{encoded+="%";encoded+=gs.charAt((charCode>>4)&0xF);encoded+=gs.charAt(charCode&0xF);}}}return encoded};function URLDecode(encoded){var gu="0123456789ABCDEFabcdef";var plaintext="";var i=0;while(i<encoded.length){var ch=encoded.charAt(i);if(ch=="+"){plaintext+=" ";i++}else if(ch=="%"){if(i<(encoded.length-2)&&gu.indexOf(encoded.charAt(i+1))!=-1&&gu.indexOf(encoded.charAt(i+2))!=-1){plaintext+=unescape(encoded.substr(i,3));i+=3}else{plaintext+="%[ERROR]";i++}}else{plaintext+=ch;i++}}return plaintext};