All pastes #482209 Raw Edit

Untitled

public text v1 · immutable
·published 2007-05-11 05:12 UTC
rendered paste body
' + uid2uname(recipient_uid) + '' : htmlnick); td.title = uid2uname(sender_uid); td.setAttribute('sender_uid', sender_uid); attachEventHandler(td, 'onclick', 'user_select'); td = tr.insertCell(1); td.className = 'message'; td.innerHTML = message; td.title = date; } msg_recv_lastid = id; while(messages.rows[21]) messages.deleteRow(20); if( (snd_public.checked) || (snd_forme.checked && (message.substr(0, 19) == '' || recipient_uid == _uid)) || (snd_private.checked && recipient_uid == _uid) ) { sndfile = '/chat/js/' + (recipient_uid ? 'msg.private.wav' : 'msg.public.wav'); if(!snd_player) snd_player = getById('snd_player'); if(!snd_player) { snd_player = document.createElement('embed'); snd_player.id = 'snd_player'; snd_player.AutoStart = true; snd_player.style.position = "absolute"; snd_player.style.top = '-1000px'; snd_player.style.left = '-1000px'; document.body.appendChild(snd_player); } if(snd_player && snd_player.FileName && snd_player.FileName.substr(snd_player.FileName.length - sndfile.length) == sndfile && typeof(snd_player.Play) != "undefined") { try { snd_player.Stop(); } catch(exception) {} try { snd_player.SelectionStart = 0; } catch(exception) {} // WMP IE try { snd_player.Rewind(); } catch(exception) {} // QT Gecko try { snd_player.Play(); } catch(exception) {} } else if(snd_player && snd_player.src) { try { snd_player.FileName = sndfile; } catch(exception) {} // WMP IE try { snd_player.SetURL(sndfile); } catch(exception) {} // QT Gecko } else snd_player.src = sndfile; } } function users_recv_init() { delete users_recv; users_recv = new Array(); users_recv_cnt = 0; } function users_recv_recv(uid, username, away) { users_recv[users_recv_cnt] = new Array(); users_recv[users_recv_cnt]['uid'] = uid; users_recv[users_recv_cnt]['away'] = (away > 0 ? 'away' : ''); users_recv[users_recv_cnt++]['username'] = username; } function users_recv_finish() { // TODO: sortovat pole? rcpt_i = rcpt; rcpt_s = users; // Uložit sou&#269;asný výb&#283;r i_sel = (rcpt_i.selectedIndex > -1 ? rcpt_i[rcpt_i.selectedIndex].value : 0); s_sel = new Array(); for(i = 0; i < rcpt_s.length; i++) if(rcpt_s[i].selected) s_sel[rcpt_s[i].value] = true; // Obnovit seznamy for(i = 0, k = 1; i < users_recv_cnt; i++, k++) { if(users_recv[i]['uid'] != _uid) { // P&#345;íjemce zprávy nesmím být já if(!rcpt_i.options.item(k)) rcpt_i.options.add(document.createElement('OPTION')); if(rcpt_i.options.item(k).value != users_recv[i]['uid']) { rcpt_i.options.item(k).value = users_recv[i]['uid']; rcpt_i.options.item(k).innerHTML = users_recv[i]['username']; } if(users_recv[i]['uid'] == i_sel) { // Obnovit zvolenou položku rcpt_i.options.item(k).selected = true; i_sel = 0; // A zaznamenat, že byla obnovena } } else k--; if(!rcpt_s.options.item(i)) rcpt_s.options.add(document.createElement('OPTION')); if(rcpt_s.options.item(i).value != users_recv[i]['uid'] || rcpt_s.options.item(i).className != users_recv[i]['away']) { rcpt_s.options.item(i).value = users_recv[i]['uid']; rcpt_s.options.item(i).className = users_recv[i]['away']; rcpt_s.options.item(i).innerHTML = users_recv[i]['username']; } if(s_sel[users_recv[i]['uid']]) { // Obnovit vybranou položku(y) rcpt_s.options.item(i).selected = true; delete s_sel[users_recv[i]['uid']]; // A poznamenat si, které byly obnoveny } else rcpt_s.options.item(i).selected = false; } // Nezbyl n&#283;kdo neozna&#269;ený, kdo d&#345;ív byl? Ten nesmysl s for() je snad jediný zp&#367;sob detekce prázdného pole... if(i_sel > 0) alert('Varování: zvolený p&#345;íjemce zpráv zmizel.'); if(virtualroom.checked && s_sel.length > 0) { alert('Varování: alespo&#328; jeden z uživatel&#367; vybraných v seznamu odešel.'); } // Pokud d&#345;ív bylo víc uživatel&#367; než je nyní... umažeme je :) while(rcpt_i.options.item(i)) rcpt_i.removeChild(rcpt_i.options.item(i)); while(rcpt_s.options.item(i)) rcpt_s.removeChild(rcpt_s.options.item(i)); } function error_recv(err, stoprecv) { msg_recv(0, 0, '', err, (new Date()).getTime() / 1000); if(stoprecv) recv_stop = true; } function date(time) { d = new Date(); d.setTime(time * 1000); return d.toLocaleString(); } var msg_send_counter = 0, msg_prev = new Array('', ''), msg_send_hfbs = new Array(); setInterval('if(msg_send_counter > 0) msg_send_counter--; else msg_send_counter = 0; if(msg_send_button) { if(msg_send_counter > 10) msg_send_button.style.backgroundColor = "red"; else msg_send_button.style.backgroundColor = ""; }', 500); function msg_send_hfb(m, result) { if(result) msg_send(m); else { msg_status_update(m, 'Odeslání selhalo: p&#345;esahuje max. rozm&#283;ry', 5000); prompt('Zpráva p&#345;esahuje maximální povolený rozm&#283;r 400x300 pixel&#367;, nelze odeslat.', msg_send_hfbs[m]); delete msg_send_hfbs[m]; } } function msg_send(m) { if(msg_send.arguments.length == 0) { m = Math.random(); if((result = HTMLFitsBox(msg.value, 400, 300, msg_send_hfb, m)) === false) return alert('Zpráva p&#345;esahuje maximální povolený rozm&#283;r 400x300 pixel&#367;, nelze odeslat.'); else if(result == 'wait') { msg_send_hfbs[m] = msg.value; msg.value = ''; msg_status_new('Odeslání zprávy &#269;eká: na&#269;ítají se obrázky pro kontrolu velikosti.', 12000, m); return; } msgvalue = msg.value; } else { msgvalue = msg_send_hfbs[m]; delete msg_send_hfbs[m]; } if(msgvalue == '/logout') { logout(); return; } if(msgvalue.replace(/ /g, '').length == 0) return alert('Bohužel není možné odesílat prázdné zprávy.'); if(msg_send_counter > 10) return alert('Vy&#269;kej prosím chvilku mezi jednotlivými zprávami.'); msg_send_counter = msg_send_counter * 1.5 + 6; if(msg_prev[0] == msg_prev[1] && msg_prev[0] == msgvalue.replace(/ /g, '')) return alert('Nelze odeslat t&#345;ikrát &#269;i vícekrát za sebou tutéž zprávu.'); msg_prev[1] = msg_prev[0]; msg_prev[0] = msgvalue.replace(/ /g, ''); if((terr = HTMLIsValid(msgvalue)) !== true) return alert('Zpráva: ' + terr); rcpts = ''; premsg = ''; if(virtualroom.checked) { for(i = 0; i < users.length; i++) if(users[i].selected) rcpts += users[i].value + ','; if(rcpts.length == 0 && !confirm('Je zvolen mód virtuální místnosti, avšak není vybrán žádný uživatel. Zpráva bude odeslána ve&#345;ejn&#283;, do normální místnosti. Je to v po&#345;ádku?')) return; } else if(privatem.checked) { if(rcpt.selectedIndex <= 0 && !confirm('Je zvoleno zasílání soukromých zpráv, avšak není vybrán žádný p&#345;íjemce. Zpráva bude odeslána ve&#345;ejn&#283; do místnosti. Je to v po&#345;ádku?')) return; rcpts += rcpt[rcpt.selectedIndex].value + ','; } else if(rcpt.selectedIndex > 0) { premsg += '' + rcpt[rcpt.selectedIndex].innerHTML + ': '; } msg_status_new('Odesílá se...', 12000, m); el = msg_send_elements[m] = document.createElement('DIV'); el.msg = msgvalue; el.innerHTML = ''; put_div.appendChild(el); put_form.target = 'put_iframe_' + m; put_form.elements.recipients.value = rcpts; put_form.elements.message.value = premsg + msgvalue; put_form.elements.confirm.value = m; put_form.submit(); if(msg_send.arguments.length == 0) msg.value = ''; msg_send_timeouts[m] = setTimeout('msg_send_timeout(' + m + ');', 12000); } function msg_send_ok(ident) { msg_status_update(ident, 'Zpráva odeslána.', 10000); if(msg_send_timeouts[ident]) { clearTimeout(msg_send_timeouts[ident]); delete msg_send_timeouts[ident]; } put_div.removeChild(msg_send_elements[ident]); delete msg_send_elements[ident]; } function msg_send_timeout(ident) { msg_status_update(ident, 'Odeslání selhalo. Klikni zde.', 12000); delete msg_send_timeouts[ident]; put_div.removeChild(msg_send_elements[ident]); delete msg_send_elements[ident]; } function msg_send_failed(ident, errmsg) { msg_status_update(ident, 'Odeslání selhalo. Klikni zde.', 12000); clearTimeout(msg_send_timeouts[ident]); delete msg_send_timeouts[ident]; put_div.removeChild(msg_send_elements[ident]); delete msg_send_elements[ident]; } function msg_status_new(msg, deltime, ident) { if(!ident) ident = Math.random(); if(!deltime) deltime = 0; el = document.createElement('DIV'); el.setAttribute('id', 'msg_status_' + ident); el.innerHTML = time_get() + ': ' + msg; msg_status.insertBefore(el, msg_status.firstChild); if(deltime) msg_status_timeouts[ident] = setTimeout('msg_status_delete(' + ident + ');', deltime); msg_status_truncate(); return ident; } function msg_status_truncate() { els = msg_status.getElementsByTagName('DIV'); for(i = 3; i < els.length; i++) msg_status_delete(els[i].id.substr(11)); } function msg_status_update(ident, msg, deltime) { if(el = document.getElementById('msg_status_' + ident)) { el.innerHTML = time_get() + ': ' + msg; if(msg_status_timeouts[ident]) clearTimeout(msg_status_timeouts[ident]); msg_status_timeouts[ident] = setTimeout('msg_status_delete(' + ident + ');', deltime); } else ident = msg_status_new(msg, deltime, ident); return ident; } function msg_status_delete(ident) { if(el = document.getElementById('msg_status_' + ident)) { el.parentNode.removeChild(el); delete el; } } function msg_key_down(t, e) { if(e.keyCode == 13 && !e.ctrlKey && !e.altKey && !e.shiftKey) { msg_send(); return false; } return true; } function time_get() { d = new Date(); return (d.getHours() < 10 ? '0' : '') + d.getHours() + ':' + (d.getMinutes() < 10 ? '0' : '') + d.getMinutes() + ':' + (d.getSeconds() < 10 ? '0' : '') + d.getSeconds(); } function logout() { document.location.href = "/chat/logout.php?loginid=" + _loginid;