X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fcommons.js;h=d3bfce6e31589bc2de6f9acc11e190ee0fe9ef10;hb=e77392cc2a719cd0f3817e9092a3978cb5de23d3;hp=c5cee044869b7f4d5931cf15acfd56a89558eacb;hpb=d805fe6d9173d5de9a5a0e09e1a466f865b66017;p=brisk.git diff --git a/web/commons.js b/web/commons.js index c5cee04..d3bfce6 100644 --- a/web/commons.js +++ b/web/commons.js @@ -1,8 +1,8 @@ /* * brisk - commons.js * - * Copyright (C) 2006-2012 Matteo Nastasi - * mailto: nastasi@alternativeoutput.it + * Copyright (C) 2006-2015 Matteo Nastasi + * mailto: nastasi@alternativeoutput.it * matteo.nastasi@milug.org * web: http://www.alternativeoutput.it * @@ -22,12 +22,12 @@ */ var PLAYERS_N = 3; -var EXIT_BAN_TIME = 3600; +var EXIT_BAN_TIME = 900; 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?' }, @@ -45,8 +45,8 @@ var mlang_commons = { 'imgload_a' : { 'it' : 'Immagini caricate ', 'en' : '(only aut.)' }, '2' : { 'it' : '(isolam.to)', 'en' : '(isolation)' } }, - 'tos_refu' : { 'it' : 'Rifiutando di sottoscrivere i nuovi termini del servizio non ti sarà più possibile accedere col tuo utente registrato al sito, sei proprio sicuro di non voler accettare le nuove condizioni d\'uso ?', - 'en' : 'EN Rifiutando di sottoscrivere i nuovi termini del servizio non ti sarà più possibile accedere col tuo utente registrato al sito, sei proprio sicuro di non voler accettare le nuove condizioni d\'uso ?', + '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 ?' } }; @@ -64,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]; @@ -91,14 +91,14 @@ function getStyle(x,IEstyleProp, MozStyleProp) param[i-2] = arguments[i]; } } - + if(typeof(fn)=='function') { - + return (function (fn,ms,param) { var fo = function () { fn.apply(window,param); }; - return nativeSetInterval(fo,ms); + return nativeSetInterval(fo,ms); })(fn,ms,param); } else if(typeof(fn)=='string') @@ -123,9 +123,9 @@ function getStyle(x,IEstyleProp, MozStyleProp) param[i-2] = arguments[i]; } } - + if(typeof(fn)=='function') { - + return (function (fn,ms,param) { var fo = function () { fn.apply(window,param); @@ -145,7 +145,7 @@ function getStyle(x,IEstyleProp, MozStyleProp) })() -function addEvent(obj,type,fn) +function addEvent(obj, type, fn) { if (obj.addEventListener) { obj.addEventListener( type, fn, false); @@ -235,7 +235,7 @@ function update_images() function preload_images(arr,idx) { var im = new Image; - + // $("imgct").innerHTML = "Stiamo caricando "+arr[idx]+"%.
"; im.onload = update_images; im.onerror = error_images; @@ -266,23 +266,32 @@ function createXMLHttpRequest() { 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.setRequestHeader("If-Modified-Since", new Date().toUTCString()); - xhr_wr.onreadystatechange = function() { return; }; - if (typeof(g_debug) == 'number' && g_debug > 0 - && typeof(console) == 'object' && typeof(console.log) == 'function') { + + if (is_conn && xstm && xstm.transp_type.startsWith('websocket')) { + var target = window.location.href.substring( + 0, window.location.href.lastIndexOf('/') + 1) + 'index_wr.php'; + var ws_msg = {target: target, mesg: mesg, stp:gst.st, sess:sess}; + xstm.transp.ws.send(ws_msg); + } + else { + var xhr_wr = createXMLHttpRequest(); + + // alert("xhr_wr: "+xhr_wr+" is_conn: "+is_conn); + 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 + && typeof(console) == 'object' && typeof(console.log) == 'function') { var ldate = new Date(); console.log(ldate.getTime()+':MESG:'+mesg); - } - xhr_wr.send(null); - - if (!is_conn) { - if (xhr_wr.responseText != null) { - eval(xhr_wr.responseText); + } + xhr_wr.send(null); + + if (!is_conn) { + if (xhr_wr.responseText != null) { + eval(xhr_wr.responseText); + } } } } @@ -315,7 +324,7 @@ function server_request() // alert("Args: "+arguments.length); var is_conn = (sess == "not_connected" ? false : true); - + // console.log("server_request:preresp: "+xhr_wr.responseText); if (is_post) { @@ -327,7 +336,7 @@ function server_request() } 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); @@ -358,7 +367,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 = ""; @@ -425,11 +439,6 @@ function act_roadmap() send_mesg("roadmap"); } -function act_whysupport() -{ - send_mesg("whysupport"); -} - function act_lascio() { send_mesg("lascio"); @@ -469,7 +478,7 @@ function postact_logout() { // alert("postact_logout"); try { - hstm.abort(); + xstm.abort(); } catch (e) {} // eraseCookie("sess"); @@ -478,8 +487,8 @@ function postact_logout() /* type - 'hard' or 'soft' - code - if soft: accept (0), refuse (1), after (2) - if hard: accept (0), refuse (1) + 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) { @@ -496,16 +505,26 @@ function act_tosmgr(type, code, tos_curr, tos_vers) default: break; } + return true; } -function tos_confirm(val) +function tos_confirm(val, url) { - if (val == 1) { + 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; } - - return true; } /* @@ -562,18 +581,18 @@ 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) { @@ -588,17 +607,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 + "
"; @@ -659,7 +678,7 @@ function div_show(div) block_time: */ -function notify_document(st, text, tout, butt, confirm_func, 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 i, clo, clodiv_ctx, clodiv_wai, box; @@ -667,7 +686,7 @@ function notify_document(st, text, tout, butt, confirm_func, w, h, is_opa, block 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"); @@ -695,8 +714,10 @@ function notify_document(st, text, tout, butt, confirm_func, w, h, is_opa, block 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; @@ -742,6 +763,7 @@ notify_document.prototype = { tblkid: null, confirm_func: null, + confirm_func_args: [], ret: -1, @@ -790,7 +812,11 @@ notify_document.prototype = { hide: function(val) { if (this.confirm_func != null) { - if (this.confirm_func(val) == false) { + var args; + + args = [ val ].concat(this.confirm_func_args); + + if (this.confirm_func.apply(null, args) == false) { return false; } } @@ -808,11 +834,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"); @@ -861,9 +887,9 @@ 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) { @@ -893,7 +919,7 @@ notify_ex.prototype = { this.st.st_loc++; } }, - + hide: function() { clearTimeout(this.toutid); @@ -912,12 +938,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; @@ -953,7 +973,7 @@ globst.prototype = { function remark_step() { var ct = $("remark").l_remct; - + if (ct != 0) { ct++; if (ct > 2) @@ -964,7 +984,7 @@ function remark_step() } else $("remark").className = "remark0"; - + return; } @@ -1013,14 +1033,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); } @@ -1030,9 +1064,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); } @@ -1045,7 +1079,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; @@ -1067,7 +1101,7 @@ function chatt_sub(dt,data,str) } // $("txt").innerHTML; - + if (must_scroll) { $("txt").scrollTop = 10000000; } @@ -1092,8 +1126,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; } @@ -1107,12 +1143,12 @@ 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); } @@ -1162,7 +1198,7 @@ function unescapeHTML(cont) { var length = div.childNodes.length, results = new Array(length); while (length--) results[length] = div.childNodes[length]; - + for (i=0 ; i' + -'' + -'' + -''; - } +/* + samples = [{'name': , 'file': }, ... ] +*/ +function jukebox(samples) +{ + var source, a; + this.enable = false; + this.audio = {}; + + var pro_audio_el = document.createElement('audio'); + this.enable = !!(pro_audio_el.canPlayType && pro_audio_el.canPlayType('audio/mpeg;').replace(/no/, '')); + if (this.enable) { + for (i in samples) { + sample = samples[i]; + + this.audio[sample['name']] = a = document.createElement('audio'); + + source = document.createElement('source'); + source.setAttribute('src', sample['file']); + source.setAttribute('type', 'audio/mpeg'); + a.appendChild(source); + a.load(); + } + } +} + +jukebox.prototype = { + is_enabled: function() { + return this.enable; + }, + + play: function(name) { + var a; + if (! this.enable) + return; + + if (!(name in this.audio)) { + return false; + } + a = this.audio[name]; + a.currentTime = 0; + a.play(); + } } function topbanner_init() @@ -1209,38 +1278,20 @@ function topbanner_cb() // console.log("A: "+a+" B: "+b); } -function sidebanner_init() +function sidebanner_init(idx) { - setInterval(sidebanner_cb, 666); -} - -function sidebanner2_init() -{ - setInterval(sidebanner2_cb, 666); -} - -function sidebanner_cb() -{ - var a, b; - - a = $('sidebanner').style.backgroundColor; - b = $('sidebanner').style.borderLeftColor; - - $('sidebanner').style.backgroundColor = b; - $('sidebanner').style.borderColor = a+" "+a+" "+a+" "+a; - - // console.log("A: "+a+" B: "+b); + setInterval(function () { sidebanner_cb(idx); }, 666); } -function sidebanner2_cb() +function sidebanner_cb(idx) { var a, b; - a = $('sidebanner2').style.backgroundColor; - b = $('sidebanner2').style.borderLeftColor; + a = $('sidebanner'+idx).style.backgroundColor; + b = $('sidebanner'+idx).style.borderLeftColor; - $('sidebanner2').style.backgroundColor = b; - $('sidebanner2').style.borderColor = a+" "+a+" "+a+" "+a; + $('sidebanner'+idx).style.backgroundColor = b; + $('sidebanner'+idx).style.borderColor = a+" "+a+" "+a+" "+a; // console.log("A: "+a+" B: "+b); } @@ -1379,7 +1430,7 @@ function url_complete(parent, url) } // alert("host: ["+host+"] path: ["+path+"]"); - if (url.substring(0,6) == 'http:/' || url.substring(0,7) == 'https:/' || url.substring(0,4) == 'ws:/') { + if (url.substring(0,6) == 'http:/' || url.substring(0,7) == 'https:/' || url.substring(0,4) == 'ws:/' || url.substring(0,5) == 'wss:/') { return (url); } else if (url.substring(0,1) == '/') { @@ -1389,3 +1440,28 @@ function url_complete(parent, url) return (host+path+url); } } + +function download_mgr(url) +{ + var ifra; + + if ((ifra = $('the_downloader')) == null) { + ifra = document.createElement("iframe"); + ifra.style.display = "none"; + ifra.id = 'the_downloader'; + document.body.appendChild(ifra); + } + + ifra.contentWindow.location.href = url; + + this.ifra = ifra; +} + +download_mgr.prototype = { + ifra: null +} + +function submit_click(obj) +{ + obj.form.elements['realsub'].value = obj.id; +}