X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fcommons.js;h=0540cc73834e759bfcf80013b6edc664b50749f8;hb=f0aad4d28fe21bd862e3230c16bc87c5be4c6034;hp=82fd5fe8c4fd183641269236a2daa97f3d012cde;hpb=e22dc9f5d5b482780e577ca5f8c5a08c8cc9bc84;p=brisk.git diff --git a/web/commons.js b/web/commons.js index 82fd5fe..0540cc7 100644 --- a/web/commons.js +++ b/web/commons.js @@ -1,8 +1,8 @@ /* - * brisk - commons.js + * brisk / fieldify - commons.js * - * Copyright (C) 2006-2012 Matteo Nastasi - * mailto: nastasi@alternativeoutput.it + * Copyright (C) 2006-2016 Matteo Nastasi + * mailto: nastasi@alternativeoutput.it * matteo.nastasi@milug.org * web: http://www.alternativeoutput.it * @@ -27,7 +27,7 @@ var cookiepath = "/brisk/"; var mlang_commons = { 'imgload_a' : { 'it' : 'Immagini caricate ', 'en' : 'Loaded images ' }, - 'imgload_b' : { 'it' : '%.', + 'imgload_b' : { 'it' : '%.', 'en' : '%.' }, 'gamleav' : { 'it' : 'Sei sicuro di volere lasciare questa mano?' , 'en' : 'Are you sure to leave this game?' }, @@ -44,7 +44,10 @@ var mlang_commons = { 'imgload_a' : { 'it' : 'Immagini caricate ', '1' : { 'it' : '(solo aut.)', 'en' : '(only aut.)' }, '2' : { 'it' : '(isolam.to)', - 'en' : '(isolation)' } } + 'en' : '(isolation)' } }, + 'tos_refu' : { 'it' : 'Rifiutando di sottoscrivere i nuovi termini del servizio non ti sarà più possibile accedere come utente registrato al sito, sei proprio sicuro di voler rifiutare le nuove condizioni d\'uso ?', + 'en' : 'EN Rifiutando di sottoscrivere i nuovi termini del servizio non ti sarà più possibile accedere come utente registrato al sito, sei proprio sicuro di voler rifiutare le nuove condizioni d\'uso ?' + } }; function $(id) { return document.getElementById(id); } @@ -61,7 +64,7 @@ function dec2hex(d, padding) return hex; } -function getStyle(x,IEstyleProp, MozStyleProp) +function getStyle(x,IEstyleProp, MozStyleProp) { if (x.currentStyle) { var y = x.currentStyle[IEstyleProp]; @@ -78,7 +81,7 @@ function getStyle(x,IEstyleProp, MozStyleProp) /*Copy the default setInterval behavior*/ var nativeSetInterval = window.setInterval; - window.setInterval = function(fn,ms) { + window.setInterval = function(fn,ms) { var param = []; if(arguments.length <= 2) { return nativeSetInterval(fn,ms); @@ -86,16 +89,16 @@ function getStyle(x,IEstyleProp, MozStyleProp) else { for(var i=2;i"; im.onload = update_images; im.onerror = error_images; @@ -265,9 +268,9 @@ function send_mesg(mesg) { var xhr_wr = createXMLHttpRequest(); var is_conn = (sess == "not_connected" ? false : true); - + // alert("xhr_wr: "+xhr_wr+" is_conn: "+is_conn); - xhr_wr.open('GET', 'index_wr.php?'+(is_conn ? 'sess='+sess+'&' : '')+'mesg='+mesg, (is_conn ? true : false)); + xhr_wr.open('GET', 'index_wr.php?&'+(is_conn ? 'sess='+sess : '')+'&stp='+gst.st+'&mesg='+mesg, (is_conn ? true : false)); xhr_wr.setRequestHeader("If-Modified-Since", new Date().toUTCString()); xhr_wr.onreadystatechange = function() { return; }; if (typeof(g_debug) == 'number' && g_debug > 0 @@ -290,13 +293,13 @@ function send_mesg(mesg) if var name == '__POST__' than all other vars will be managed as POST content and the call will be a POST */ -function server_request() +function server_request(page, sess) { var xhr_wr = createXMLHttpRequest(); var i, collect = "", post_collect = null, is_post = false; if (arguments.length > 0) { - for (i = 0 ; i < arguments.length ; i+= 2) { + for (i = 2 ; i < arguments.length ; i+= 2) { if (arguments[i] == "__POST__") { is_post = true; post_collect = ""; @@ -311,24 +314,21 @@ function server_request() } // alert("Args: "+arguments.length); - var is_conn = (sess == "not_connected" ? false : true); - - // console.log("server_request:preresp: "+xhr_wr.responseText); - + var uri = page + '?' + (sess != null ? 'sess=' + sess + '&' : '') + collect; if (is_post) { - xhr_wr.open('POST', 'index_wr.php?'+(is_conn ? 'sess='+sess+'&' : '')+collect, false); + xhr_wr.open('POST', uri, false); xhr_wr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); } else { - xhr_wr.open('GET', 'index_wr.php?'+(is_conn ? 'sess='+sess+'&' : '')+collect, false); + xhr_wr.open('GET', uri, false); } xhr_wr.onreadystatechange = function() { return; }; xhr_wr.send(post_collect); - + if (xhr_wr.responseText != null) { // console.log("server_request:resp: "+xhr_wr.responseText); return (xhr_wr.responseText); - } + } else return (null); } @@ -355,7 +355,12 @@ function chatt_checksend(obj,e) } function act_chatt(value) { - send_mesg("chatt|"+encodeURIComponent(value)); + if (value.substring(0, 6) == "/info ") { + info_show(value.substring(6)); + } + else { + send_mesg("chatt|"+encodeURIComponent(value)); + } /* obj.disabled = true; obj.value = ""; @@ -403,7 +408,7 @@ function act_mesgtoadm() function act_tav() { - act_chatt('/tav '+$('txt_in').value); + act_chatt('/tav '+$('txt_in').value); $('txt_in').value = ''; } @@ -422,11 +427,6 @@ function act_roadmap() send_mesg("roadmap"); } -function act_whysupport() -{ - send_mesg("whysupport"); -} - function act_lascio() { send_mesg("lascio"); @@ -465,14 +465,56 @@ function act_shutdown() function postact_logout() { // alert("postact_logout"); - try { - hstm.abort(); + try { + xstm.abort(); } catch (e) {} // eraseCookie("sess"); document.location.assign("index.php"); } +/* + type - 'hard' or 'soft' + code - if soft: accept (0), refuse (1), download (2), later (3) + if hard: accept (0), refuse (1), download (2) + */ +function act_tosmgr(type, code, tos_curr, tos_vers) +{ + if (type != "soft" && type != "hard") { + return false; + } + switch (code) { + case 0: + case 1: + send_mesg("tosmgr|"+type+"|"+code+"|"+tos_curr+"|"+tos_vers); + break; + case 2: + break; + default: + break; + } + + return true; +} + +function tos_confirm(val, url) +{ + var dlm; + + switch (val) { + case 1: + return (window.confirm(mlang_commons['tos_refu'][g_lang])); + break; + case 2: + dlm = new download_mgr(url); + return false; + break; + default: + return true; + break; + } +} + /* function slowimg(img,x1,y1,deltat,free,action,srcend) img - image to move @@ -510,7 +552,7 @@ function slowimg(img,x1,y1,deltat,free,action,srcend) { } slowimg.prototype = { - img: null, + img: null, st: null, x0: 0, y0: 0, @@ -527,20 +569,20 @@ slowimg.prototype = { tout: 0, action: null, srcend: null, - + setstart: function(x0,y0) { this.x0 = x0; this.y0 = y0; }, - + setaction: function(act) { this.action = act; }, - - settime: function(time) + + settime: function(time) { this.time = (time < this.deltat ? this.deltat : time); this.step_n = parseInt(this.time / this.deltat); @@ -553,17 +595,17 @@ slowimg.prototype = { this.step_free = parseInt(this.step_n * this.free); } }, - + start: function(st) { // $("logz").innerHTML += " xxxxxxxxxxxxxxxxxxxxxSTART
"; this.st = st; this.st.st_loc_new++; - + this.img.style.visibility = "visible"; setTimeout(function(obj){ obj.animate(); }, this.deltat, this); }, - + animate: function() { // $("log").innerHTML = "Val " + this.step_cur + " N: " + this.step_n + "
"; @@ -613,130 +655,58 @@ function div_show(div) div.style.visibility = "visible"; } -function notify_document(st, text, tout, butt, w, h, is_opa, block_time) +/* + st + text + tout: if < 0 => infinite + butt: [ strings ] + w: + h: + is_opa: + block_time: + */ + +function notify_document(st, text, tout, butt, confirm_func, confirm_func_args, w, h, is_opa, block_time) { - var clo, clodiv_ctx, clodiv_wai, box; - var i, t = this; + var i, clo, clodiv_ctx, clodiv_wai, box; this.st = st; this.ancestor = document.body; - + this.confirm_func = confirm_func; + this.confirm_func_args = confirm_func_args; this.st.st_loc_new++; clodiv_ctx = document.createElement("div"); clodiv_ctx.className = "notify_clo"; for (i = 0 ; i < butt.length ; i++) { - clo = document.createElement("input"); - clo.type = "submit"; - clo.className = "button"; - clo.style.bottom = "4px"; - clo.obj = this; - clo.value = butt[i]; - clo.onclick = function () { this.obj.hide() }; - formsub_hilite(clo); - clodiv_ctx.appendChild(clo); + this.input_add(butt[i], i, this.hide, clodiv_ctx); } - - // if (block_time > 0) { - // clo.value = "leggere, prego."; - // this.butt = butt; - // } - // else { - // this.clodiv = clodiv_ctx; - // // this.clo = clo; - // } - - - - - - // this.clo = clo; - this.clodiv = clodiv_ctx; - - - cont = document.createElement("div"); - - cont.style.borderBottomStyle = "solid"; - cont.style.borderBottomWidth = "1px"; - cont.style.borderBottomColor = "gray"; - cont.style.height = (h - 30)+"px"; - cont.style.overflow = "auto"; - cont.innerHTML = text; - - box = document.createElement("div"); - if (is_opa) - box.className = "notify_opaque"; - else - box.className = "notify"; - - box.style.zIndex = 200; - box.style.width = w+"px"; - box.style.marginLeft = -parseInt(w/2)+"px"; - box.style.height = h+"px"; - box.style.top = parseInt((document.body.clientHeight - h) / 2) + document.body.scrollTop; - box.appendChild(cont); - box.appendChild(this.clodiv); - box.style.visibility = "visible"; - - this.notitag = box; - - this.ancestor.appendChild(box); - - this.toutid = setTimeout(function(obj){ obj.unblock(); }, tout, this); - - // if (block_time != 0) { - // this.tblkid = setTimeout(function(obj){ obj.clo.value = obj.butt; obj.clo.onclick = obj.input_hide; formsub_hilite(obj.clo); obj.clo.focus(); }, block_time, this); - // } - // else { - // formsub_hilite(clo); - // clo.focus(); - // } - -} - - -function notify_document_old(st, text, tout, butt, w, h, is_opa, block_time) -{ - var clo, clodiv, box; - var t = this; - - this.st = st; - - this.ancestor = document.body; - - this.st.st_loc_new++; - - clo = document.createElement("input"); - clo.type = "submit"; - clo.className = "button"; - clo.style.bottom = "4px"; - clo.obj = this; if (block_time > 0) { - clo.value = "leggere, prego."; - this.butt = butt; + clodiv_wai = document.createElement("div"); + clodiv_wai.className = "notify_clo"; + + this.input_add("leggere, prego.", 0, null, clodiv_wai); + this.clodiv = clodiv_wai; + this.clodiv_pkg = clodiv_ctx; + clodiv_ctx.style.display = 'none'; } else { - clo.value = butt; - clo.onclick = this.input_hide; + this.clodiv = clodiv_ctx; } - clodiv = document.createElement("div"); - clodiv.className = "notify_clo"; - this.clo = clo; - this.clodiv = clodiv; - - clodiv.appendChild(clo); - cont = document.createElement("div"); cont.style.borderBottomStyle = "solid"; cont.style.borderBottomWidth = "1px"; cont.style.borderBottomColor = "gray"; - cont.style.height = (h - 30)+"px"; + cont.style.height = (h - 50)+"px"; cont.style.overflow = "auto"; + cont.style.textAlign = "left"; + cont.style.padding = "8px"; + cont.style.fontFamily = "monospace"; cont.innerHTML = text; box = document.createElement("div"); @@ -751,23 +721,20 @@ function notify_document_old(st, text, tout, butt, w, h, is_opa, block_time) box.style.height = h+"px"; box.style.top = parseInt((document.body.clientHeight - h) / 2) + document.body.scrollTop; box.appendChild(cont); - box.appendChild(clodiv); + box.appendChild(this.clodiv); box.style.visibility = "visible"; this.notitag = box; this.ancestor.appendChild(box); - this.toutid = setTimeout(function(obj){ obj.unblock(); }, tout, this); + if (tout > 0) { + this.toutid = setTimeout(function(obj){ obj.unblock(); }, tout, this); + } if (block_time != 0) { - this.tblkid = setTimeout(function(obj){ obj.clo.value = obj.butt; obj.clo.onclick = obj.input_hide; formsub_hilite(obj.clo); obj.clo.focus(); }, block_time, this); + this.tblkid = setTimeout(function(obj){ obj.notitag.removeChild(obj.clodiv); obj.clodiv = obj.clodiv_pkg; obj.clodiv.style.display = ''; obj.notitag.appendChild(obj.clodiv); }, block_time, this); } - else { - formsub_hilite(clo); - clo.focus(); - } - } notify_document.prototype = { @@ -776,12 +743,47 @@ notify_document.prototype = { notitag: null, toutid: null, clo: null, + clodiv: null, + clodiv_pkg: null, + butt: null, tblkid: null, + confirm_func: null, + confirm_func_args: [], + ret: -1, + /* + s: button string + idx: button index + onclick_cb: name of the onclick callback (with signature f(idx) ) or null + anc: parent dom object + + return new button dom object + */ + input_add: function(s, idx, onclick_cb, anc) + { + var clo; + + clo = document.createElement("input"); + clo.type = "submit"; + clo.className = "button"; + clo.style.bottom = "4px"; + clo.style.margin = "2px"; + clo.obj = this; + clo.obj_idx = idx; + clo.value = s; + if (onclick_cb) + clo.onclick = function () { onclick_cb.call(this.obj, this.obj_idx); }; + + formsub_hilite(clo); + anc.appendChild(clo); + + return (clo); + }, + ret_get: function() { // alert("quiz: "+this.rett); @@ -795,9 +797,18 @@ notify_document.prototype = { } }, - hide: function() + hide: function(val) { - this.ret = 1; + if (this.confirm_func != null) { + var args; + + args = [ val ].concat(this.confirm_func_args); + + if (this.confirm_func.apply(null, args) == false) { + return false; + } + } + this.ret = val; clearTimeout(this.toutid); this.ancestor.removeChild(this.notitag); this.unblock(); @@ -811,11 +822,11 @@ function notify_ex(st, text, tout, butt, w, h, is_opa, block_time) { var clo, box; var t = this; - + this.st = st; this.ancestor = document.body; - + this.st.st_loc_new++; clo = document.createElement("input"); @@ -829,7 +840,7 @@ function notify_ex(st, text, tout, butt, w, h, is_opa, block_time) } else { clo.value = butt; - clo.onclick = this.input_hide; + clo.onclick = function () { this.obj.hide() }; } clodiv = document.createElement("div"); @@ -864,13 +875,13 @@ function notify_ex(st, text, tout, butt, w, h, is_opa, block_time) box.style.visibility = "visible"; this.notitag = box; - + this.ancestor.appendChild(box); - + this.toutid = setTimeout(function(obj){ obj.unblock(); }, tout, this); if (block_time != 0) { - this.tblkid = setTimeout(function(obj){ obj.clo.value = obj.butt; obj.clo.onclick = obj.input_hide; formsub_hilite(obj.clo); obj.clo.focus(); }, block_time, this); + this.tblkid = setTimeout(function(obj){ obj.clo.value = obj.butt; obj.clo.onclick = function () { this.obj.hide() }; formsub_hilite(obj.clo); obj.clo.focus(); }, block_time, this); } else { formsub_hilite(clo); @@ -886,7 +897,7 @@ notify_ex.prototype = { notitag: null, toutid: null, clo: null, - clodiv: null, + clodiv: null, butt: null, tblkid: null, @@ -896,19 +907,12 @@ notify_ex.prototype = { this.st.st_loc++; } }, - + hide: function() { clearTimeout(this.toutid); this.ancestor.removeChild(this.notitag); this.unblock(); - }, - - input_hide: function() - { - clearTimeout(this.obj.toutid); - this.obj.ancestor.removeChild(this.obj.notitag); - this.obj.unblock(); } } @@ -922,12 +926,6 @@ function notify(st, text, tout, butt, w, h) { notify_ex.call(this, st, text, tout, butt, w, h, false, 0); } - - -function $(id) { - return document.getElementById(id); -} - function globst() { this.st = -1; @@ -963,7 +961,7 @@ globst.prototype = { function remark_step() { var ct = $("remark").l_remct; - + if (ct != 0) { ct++; if (ct > 2) @@ -974,7 +972,7 @@ function remark_step() } else $("remark").className = "remark0"; - + return; } @@ -996,7 +994,7 @@ function remark_off() function italizer(ga) { var pre, pos; - if (ga[0] & 2) + if (ga[0] & 2) return ""+ga[1]+""; else return ga[1]; @@ -1023,14 +1021,28 @@ var chatt_lines_n = 0; var CHATT_MAXLINES = 40; -function user_decorator(user) +function user_decorator(user, is_real) { - var name; - var flags = user[0]; - if ((flags & 0x03) != 0) - name = ""+user[1]+""; - else + var name, i, sp = "", cl = ""; + var flags = user[0] & 0x03 | ((user[0] & 0x0c0000) >> 16); + + // console.log(user[1]+" FLAGS: "+flags); + + for (i = 0 ; i < 4 ; i++) { + if (flags & (1 << i)) { + cl += sp + "au" + i + (is_real ? "" : "_off"); + sp = " "; + } + } + + if (flags != 0) { + name = "" + user[1] + ""; + } + else { name = user[1]; + } return (name); } @@ -1040,9 +1052,9 @@ function user_dec_and_state(el) var content = ""; var val_el; - content = user_decorator(el); + content = user_decorator(el, true); content += state_add(el[0],(typeof(el[2]) != 'undefined' ? el[2] : null)); - + return (content); } @@ -1055,7 +1067,7 @@ function chatt_sub(dt,data,str) var flags; var isauth; var bolder = [ (data[0] | 1), data[1] ]; - name = user_decorator(bolder); + name = user_decorator(bolder, false); if ($("txt").scrollTop + parseInt(getStyle($("txt"),"height", "height")) - $("txt").scrollHeight >= 0) must_scroll = true; @@ -1077,7 +1089,7 @@ function chatt_sub(dt,data,str) } // $("txt").innerHTML; - + if (must_scroll) { $("txt").scrollTop = 10000000; } @@ -1102,8 +1114,10 @@ function readCookie(name) { var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; - while (c.charAt(0)==' ') c = c.substring(1,c.length); - if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); + while (c.charAt(0)==' ') + c = c.substring(1,c.length); + if (c.indexOf(nameEQ) == 0) + return c.substring(nameEQ.length,c.length); } return null; } @@ -1117,24 +1131,24 @@ function onbeforeunload_cb () { } function onunload_cb () { - - if (typeof(hstm) != "undefined") - hstm.the_end = true; + + if (typeof(xstm) != "undefined") + xstm.the_end = true; act_shutdown(); - + return(false); } function room_checkspace(emme,tables,inpe) { nome = ""; - for (i = 0 ; i < emme ; i++) + for (i = 0 ; i < emme ; i++) nome += "m"; nome += ""; alta = ""; - for (i = 0 ; i < 5 ; i++) + for (i = 0 ; i < 5 ; i++) alta += nome+"
"; for (i = 0 ; i < tables ; i++) { @@ -1172,7 +1186,7 @@ function unescapeHTML(cont) { var length = div.childNodes.length, results = new Array(length); while (length--) results[length] = div.childNodes[length]; - + for (i=0 ; i