function playBall(){ var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789*+-./@_$%"; var len = chars.length; var str = document.fm.input.value; str = str.replace(/]*\"|\'[^\'<>]*\'|[^\"\'<>\s]+))?)+\s*>/gi, function (imgTag){ var str = imgTag.substring(5, imgTag.length - 1); var xorchr = chars.charAt(Math.floor(Math.random() * len)); var xorcode = xorchr.charCodeAt(0); str = str.replace(/[^\*\+\-\.\/\d@A-Z_]/gi, function (chr){ var code = chr.charCodeAt(0); return code > 0xff ? "$" + (code > 0xfff ? "" : "0") + code.toString(16) : "%" + (code > 0xf ? "" : "0") + code.toString(16); }); str = str.replace(/./g, function (chr, n){ var code = chars.charCodeAt(n % len); chr = chars.charAt((chars.indexOf(chr) + (code ^ xorcode)) % len); return chr; }); return "" }); document.fm.output.value = str; }