X-Git-Url: http://git.babelmonkeys.de/?p=xmppchat.git;a=blobdiff_plain;f=main.js;fp=main.js;h=0000000000000000000000000000000000000000;hp=2ed9acef9159bc94562e32073f60a4c1c4e08eaa;hb=0f774d8b5c4049745e6f8560e80f744d50eda3ee;hpb=7edeada8f83809dd0c748a1c11914e2c93fb6ad0 diff --git a/main.js b/main.js deleted file mode 100644 index 2ed9ace..0000000 --- a/main.js +++ /dev/null @@ -1,236 +0,0 @@ -function doLogin(aForm) { - room = 'guests@conference.babelmonkeys.de'; - domain = 'babelmonkeys.de' - user = 'muckl'; - password = 'ooje0OjuJeekaek6'; - if (!aForm.nickname.value) - return false; - try { - oArgs = new Object(); - oArgs.httpbase = '/http-bind/'; - oArgs.timerval = 2000; - con = new JSJaCHttpBindingConnection(oArgs) - - nickname = aForm.nickname.value; - setupHandlers(con); - - oArgs = new Object(); - oArgs.domain = domain; - oArgs.username = user; - oArgs.resource = randomString(); - oArgs.pass = password; - con.connect(oArgs); - } catch (e) { - alert(e); - } finally { - return false; - } -} - -function setupHandlers(con) { - con.registerHandler('message', handleMessage); - con.registerHandler('presence', handlePresence); - con.registerHandler('iq', handleIQ); - con.registerHandler('onconnect', handleConnected); - con.registerHandler('onerror', handleError); - // con.registerHandler('status_changed', handleStatusChanged); - con.registerHandler('ondisconnect', handleDisconnected); - - con.registerIQGet('query', NS_VERSION, handleIqVersion); - con.registerIQGet('query', NS_TIME, handleIqTime); -} - -function handleConnected() { - con.send(new JSJaCPresence()); - GCpresence = new JSJaCPresence(); - GCpresence.setTo(room + '/' + nickname); - con.send(GCpresence); - - // Make things (in)visible - document.getElementById('login').style.display = 'none'; - document.getElementById('chat').style.display = 'block'; - document.getElementById('roster').style.display = 'block'; - document.getElementById('entry').style.display = 'block'; -} - -function handleError(e) { - alert("An error occured:" + - "\nCode: " + e.getAttribute('code') + - "\nType: " + e.getAttribute('type') + - "\nCondition: " + e.firstChild.nodeName); - // Make things (in)visible - document.getElementById('login').style.display = 'block'; - document.getElementById('chat').style.display = 'none'; - document.getElementById('roster').style.display = 'none'; - document.getElementById('entry').style.display = 'none'; - - - if (con.connected()) - con.disconnect(); -} - -function handleDisconnected() { - // Make things (in)visible - document.getElementById('login').style.display = 'block'; - document.getElementById('chat').style.display = 'none'; - document.getElementById('roster').style.display = 'none'; - document.getElementById('entry').style.display = 'none'; -} - -function addBubble(nick) { - id = nick + 'Bubble'; - if (!document.getElementById(id)) { - root = document.getElementsByTagName('body')[0]; - var div = ''; - div += '
'; - div += 'Close'; - div += '
'; - div += '
'; - div += ''; - div += '
'; - div += '
'; - root.innerHTML += div; - } - document.getElementById(id).style.display = 'block'; -} - -function handleMessage(aJSJaCPacket) { - var html = ''; - sender = aJSJaCPacket.getFromJID().getResource() - html += '
'; - if (sender) { - html += ''; - html += sender; - html += ': '; - html += aJSJaCPacket.getBody().htmlEnc() + '
'; - } else { - html += ''; - html += aJSJaCPacket.getBody().htmlEnc() + ''; - } - - if (aJSJaCPacket.getType() == 'chat') { - addBubble(sender); - document.getElementById(id + 'Chat').innerHTML += html; - document.getElementById(id + 'Chat').lastChild.scrollIntoView(); - } else { - document.getElementById('chat').innerHTML += html; - document.getElementById('chat').lastChild.scrollIntoView(); - } -} - -function handlePresence(aJSJaCPacket) { - if (aJSJaCPacket.getFromJID().toString().split('/')[0] != room) - return - roster_list = document.getElementById('roster_list'); - nick = aJSJaCPacket.getFromJID().getResource(); - if (aJSJaCPacket.getType() == 'unavailable') { - element = document.getElementById(nick); - roster_list.removeChild(element); - } else { - roster_list.innerHTML += '
  • ' + nick + '
  • '; - } -} - -function handleIQ(iq) { - con.send(iq.errorReply(ERR_FEATURE_NOT_IMPLEMENTED)); -} - -function handleIqVersion(iq) { - con.send(iq.reply([ - iq.buildNode('name', 'jsjacChatClient'), - iq.buildNode('version', JSJaC.Version), - iq.buildNode('os', navigator.userAgent) - ])); - return true; -} - -function handleIqTime(iq) { - var now = new Date(); - con.send(iq.reply([iq.buildNode('display', - now.toLocaleString()), - iq.buildNode('utc', - now.jabberDate()), - iq.buildNode('tz', - now.toLocaleString().substring(now.toLocaleString().lastIndexOf(' ')+1)) - ])); - return true; -} - -function sendMessage(aForm) { - if (aForm.text.value) { - message = new JSJaCMessage(); - message.setBody(aForm.text.value); - message.setType('groupchat'); - message.setTo(room); - con.send(message); - aForm.text.value = ''; - } - return false; -} - -function sendChatMessage(aForm, to) { - if (aForm.text.value) { - message = new JSJaCMessage(); - message.setBody(aForm.text.value); - message.setType('chat'); - message.setTo(room + '/' + to); - con.send(message); - aForm.text.value = ''; - var html = ''; - html += '
    '; - html += ''; - html += nickname; - html += ': '; - html += message.getBody().htmlEnc() + '
    '; - document.getElementById(to + 'BubbleChat').innerHTML += html; - document.getElementById(to + 'BubbleChat').lastChild.scrollIntoView(); - - } - return false; -} - -function randomString() { - var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; - var string_length = 20; - var randomstring = ''; - for (var i=0; i