CSRF/XSRF ochrana při hlasování.
2 /** TODO: neglobální funkce */
4 var intervalObnovy = 2000;
7 function setRychlostObnovy(interval) {
9 intervalObnovy = interval;
13 function getXmlHttpRequestObject() {
14 if (window.XMLHttpRequest) {
15 return new XMLHttpRequest();
16 } else if(window.ActiveXObject) {
17 return new ActiveXObject("Microsoft.XMLHTTP");
19 alert("Nepodporovaný prohlížeč.");
24 /** Náš AJAXový objekt. */
25 var ajax = getXmlHttpRequestObject();
27 function getMistnost() {
28 return document.getElementById("odesilaciFormular").mistnost.value;
32 return document.getElementById("odesilaciFormular").od.value;
35 function getZprava() {
36 return document.getElementById("odesilaciFormular").text.value;
39 function vymazTextZpravy() {
40 document.getElementById("odesilaciFormular").text.value = "";
43 function ajaxOdesli() {
44 if (ajax.readyState == 4 || ajax.readyState == 0) {
45 ajax.open("POST", "?akce=chat&akceChat=odesli&mistnost=" + encodeURIComponent(getMistnost()) + "&od=" + encodeURIComponent(getOd()) + "&zprava=" + encodeURIComponent(getZprava()), true);
46 ajax.onreadystatechange = function() {
47 if (ajax.readyState == 4) {
49 aktualizujVypisZprav();
56 function aktualizujVypisZprav() {
57 if (ajax.readyState == 4 || ajax.readyState == 0) {
58 ajax.open("POST", "?akce=chat&akceChat=vypis&mistnost=" + encodeURIComponent(getMistnost()), true);
59 ajax.onreadystatechange = function() {
60 if (ajax.readyState == 4) {
61 zpracujZpravy(ajax.responseXML);
62 document.getElementById("vypisZprav").scrollTop = 100000;
69 function ziskejVnitrekXML(data, element) {
71 return data.getElementsByTagName(element)[0].firstChild.nodeValue;
77 function zpracujZpravy(xmlOdpoved) {
78 var vypisZprav = document.getElementById("vypisZprav");
79 var zpravy = xmlOdpoved.getElementsByTagName("zprava");
80 vypisZprav.innerHTML = "";
81 var elementUl = document.createElement("ul");
82 vypisZprav.appendChild(elementUl);
84 for (i = 0; i < zpravy.length; i++) {
85 var od = ziskejVnitrekXML(zpravy[i], "od");
86 var text = ziskejVnitrekXML(zpravy[i], "text");
87 var kdy = ziskejVnitrekXML(zpravy[i], "kdy");
88 var overeny = ziskejVnitrekXML(zpravy[i], "overeny");
89 poradoveCislo = ziskejVnitrekXML(zpravy[i], "poradoveCislo");
91 var elementLi = document.createElement("li");
92 elementLi.title = kdy;
94 var elementOd = document.createElement("strong");
95 elementOd.textContent = od;
96 elementLi.appendChild(elementOd);
97 elementLi.appendChild(document.createTextNode(": "));
99 var elementText = document.createElement("span");
100 elementText.textContent = text;
103 * Ověřený je takový uživatel,
104 * který se přihlásil normálně přes Jabber a vstoupil do místnosti pod svojí přezdívkou.
105 * Uživatelé z webu jsou anonymové a připojují se k XMPP pod společným účtem.
106 * Svoji přezdívku si vyplňují sami a přenášíme ji zvlášť.
107 * Proto odlišíme tyto dvě skupiny uživatelů jinou barvou jejich příspěvku.
109 if (overeny == "true") {
111 // zprávu můžeme zvýraznit
113 elementText.style.color = "#444444";
115 elementLi.appendChild(elementText);
117 elementUl.appendChild(elementLi);
123 function spustCasovac() {
124 aktualizujVypisZprav();
126 t = setTimeout(function () {
127 aktualizujVypisZprav();