var Joules=function(){function l(){Events.emit("Joules:init");setTimeout(h,100)}function h(){if(!document.getElementById("interface")){var a=document.createElement("div");a.setAttribute("id","interface");document.body.appendChild(a)}a=new SWFObject("interface/flash.swf","flash_interface_object","1","1","8","transparent");a.addParam("quality","high");a.addParam("allowscriptaccess","always");a.addParam("swliveconnect","true");a.write("interface");return c=document.getElementById("flash_interface_object")}
function m(a){a=i(Util.trim(a));Events.emit("Joules:onpacket",a);Events.emit("Joules:packet:"+a.command,a);a.subcommand&&Events.emit("Joules:packet:"+a.command+":"+a.subcommand,a)}function j(){c.connect(config.host,config.port)}function n(){Events.emit("Joules:disconnect");c.disconnect()}function o(a){a=="disconnect"?k():Events.emit("Joules:onerror",a)}function p(){}function q(){Events.emit("Joules:ready");setTimeout(j,100)}function r(){Events.emit("Joules:connect")}function k(){Events.emit("Joules:disconnect")}
function s(a){c.soundfx(a)}function t(a){a=a.replace(/\\/g,"\\\\");Events.emit("Joules:send",a);c.send(a)}function u(a){var b=a.subcommand||false,e=a.parameters||{},f=a.content||false;a=[(a.command||"")+(b?" "+b:"")];for(var d in e)(b=e[d])&&a.push(d+"="+b);f&&a.push("\n"+f);return Util.trim(a.join("\n"))}function i(a){var b=a.split("\n\n");a=b.shift().split("\n");b=b.join("\n\n");for(var e=a.shift().split(" "),f={},d=0,v=a.length;d<v;d++){var g=a[d].split("=");if(g[1])f[g.shift()]=g.join("=")}return{command:e[0],
subcommand:e[1]||null,parameters:f,content:b||null}}var c=null;window.Packet=function(a,b){if(typeof a=="string")Joules.send(a);else if(a.constructor==Array)Joules.send(a.join("\n"));else{b=!!b;a=Joules.create_packet(a);b===true&&Joules.send(a);return a}};return{flash:c,init:l,embed_flash:h,onpacket:m,connnect:j,disconnect:n,onerror:o,log:p,ready:q,onconnect:r,ondisconnect:k,soundfx:s,send:t,create_packet:u,parse_packet:i}}();

