function encode(strin) { var intlen = strin.length; var strout = ""; var strtemp; for (var i = 0; i < intlen; i++) { strtemp = strin.charcodeat(i); if (strtemp > 255) { tmp = strtemp.tostring(16); for (var j = tmp.length; j < 4; j++) tmp = "0" + tmp; strout = strout + "^" + tmp; } else { if (strtemp < 48 || (strtemp > 57 && strtemp < 65) || (strtemp > 90 && strtemp < 97) || strtemp > 122) { tmp = strtemp.tostring(16); for (var j = tmp.length; j < 2; j++) tmp = "0" + tmp; strout = strout + "~" + tmp; } else { strout = strout + strin.charat(i); } } } return (strout); } function decode(strin) { var intlen = strin.length; var strout = ""; var strtemp; for (var i = 0; i < intlen; i++) { strtemp = strin.charat(i); switch (strtemp) { case "~":{ strtemp = strin.substring(i + 1, i + 3); strtemp = parseint(strtemp, 16); strtemp = string.fromcharcode(strtemp); strout = strout + strtemp; i += 2; break; } case "^":{ strtemp = strin.substring(i + 1, i + 5); strtemp = parseint(strtemp, 16); strtemp = string.fromcharcode(strtemp); strout = strout + strtemp; i += 4; break; } default:{ strout = strout + strtemp; break; } } } return (strout); }