Index: openacs-4/packages/xowiki/www/ajax/chat.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/ajax/Attic/chat.js,v diff -u -r1.1 -r1.2 --- openacs-4/packages/xowiki/www/ajax/chat.js 3 Feb 2006 22:17:41 -0000 1.1 +++ openacs-4/packages/xowiki/www/ajax/chat.js 6 Feb 2006 11:45:10 -0000 1.2 @@ -13,62 +13,63 @@ if (http.status == 200) { appendToMessages(http.responseText); } else { + clearInterval(); alert('Something wrong in HTTP request, status code = ' + http.status); } } } function appendToMessages(content) { var xmlobject = (new DOMParser()).parseFromString(content, 'application/xhtml+xml'); - //var xmlobject = (new DOMParser()).parseFromString(content, 'text/html'); var items = xmlobject.getElementsByTagName('TR'); //alert('found ' + items.length + ' items'); - var counter = document.getElementById('chatCounter'); - counter.innerHTML = parseInt(counter.innerHTML) + 1; - //document.getElementById('chatResponse').innerHTML = content; + //var counter = document.getElementById('chatCounter'); + //counter.innerHTML = parseInt(counter.innerHTML) + 1; + //document.getElementById('chatResponse').innerHTML = 'items = ' + items.length + ' l=' + content.length + ' ' + escape(content); + //if (items.length > 0) {alert('appending ' + content);} + var doc = frames['ichat'].document; var tbody = frames['ichat'].document.getElementById('messages').tBodies[0]; + //var tbody = tbodies[tbodies.length -1]; //for (var i = 0 ; i < items.length ; i++) { // tbody.appendChild(frames['ichat'].document.importNode(items[i],true)); //} var tr, td, e, s; for (var i = 0 ; i < items.length ; i++) { - tr = document.createElement('tr'); + tr = doc.createElement('tr'); e = items[i].getElementsByTagName('TD'); - td = document.createElement('td'); + td = doc.createElement('td'); td.innerHTML = unescape(e[0].firstChild.nodeValue); td.className = 'timestamp'; tr.appendChild(td); - td = document.createElement('td'); + td = doc.createElement('td'); s = e[1].firstChild.nodeValue; td.innerHTML = unescape(e[1].firstChild.nodeValue.replace(/\+/g,' ')); - //td.appendChild(document.createTextNode(e[1].firstChild.nodeValue)); td.className = 'user'; tr.appendChild(td); - td = document.createElement('td'); + td = doc.createElement('td'); td.innerHTML = unescape(e[2].firstChild.nodeValue.replace(/\+/g,' ')); - //td.appendChild(document.createTextNode(e[2].firstChild.nodeValue)); td.className = 'message'; tr.appendChild(td); - //tbody.appendChild(items[i]); - //tbody.appendChild(items[i].cloneNode(true)); tbody.appendChild(tr); - } frames['ichat'].window.scrollTo(0,tbody.offsetHeight); } + function chatSendMsg(send_url,handler) { var msgField = document.getElementById('chatMsg'); chatSendCmd(send_url + escape(msgField.value),handler); msgField.value = ''; } + +var msgcount = 0; // hack to overcome IE function chatSendCmd(url,handler) { - http.open('GET', url, true); + http.open('GET', url + '&mc=' + msgcount++, true); http.onreadystatechange = handler; http.send(null); }