/*
* 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
*
*/
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?' },
'en' : 'Exit.' },
'tit_list' : { '0' : { 'it' : '',
'en' : '' },
- '1' : { 'it' : '(solo aut.)',
- 'en' : '(only aut.)' },
- '2' : { 'it' : '(isolam.to)',
- 'en' : '(isolation)' } },
- 'lic_refu' : { 'it' : 'Rifiutando di sottoscrivere la nuova licenza d\' uso 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 la nuova licenza d\' uso non ti sarà più possibile accedere col tuo utente registrato al sito, sei proprio sicuro di non voler accettare le nuove condizioni d\'uso ?'
+ '1' : { 'it' : '(autenticati)',
+ 'en' : '(authenticated)' } },
+ '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 ?'
}
};
return hex;
}
-function getStyle(x,IEstyleProp, MozStyleProp)
+function getStyle(x,IEstyleProp, MozStyleProp)
{
if (x.currentStyle) {
var y = x.currentStyle[IEstyleProp];
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')
param[i-2] = arguments[i];
}
}
-
+
if(typeof(fn)=='function') {
-
+
return (function (fn,ms,param) {
var fo = function () {
fn.apply(window,param);
};
- return nativeSetTimeout(fo,ms);
+ return nativeSetTimeout(fo,ms);
})(fn,ms,param);
}
else if(typeof(fn)=='string')
})()
-function addEvent(obj,type,fn)
+function addEvent(obj, type, fn)
{
if (obj.addEventListener) {
obj.addEventListener( type, fn, false);
function preload_images(arr,idx)
{
var im = new Image;
-
+
// $("imgct").innerHTML = "Stiamo caricando "+arr[idx]+"%.<br>";
im.onload = update_images;
im.onerror = error_images;
return null;
}
-function send_mesg(mesg)
+function send_mesg(mesg, content)
{
- var xhr_wr = createXMLHttpRequest();
var is_conn = (sess == "not_connected" ? false : true);
-
+
+ if (is_conn && xstm && xstm.transp_type.startsWith('websocket')) {
+ if (typeof(content) != 'undefined') {
+ mesg = mesg + content;
+ }
+ var target = window.location.href.substring(0,
+ window.location.href.lastIndexOf('/') + 1) + 'index_wr.php';
+ var ws_msg = JSON.stringify({
+ target: target,
+ mesg: mesg,
+ stp:gst.st,
+ sess:sess,
+ table_idx: readCookie("table_idx"),
+ table_token: readCookie("table_token"),
+ lang: readCookie("lang")
+ });
+ // console.log(ws_msg);
+ xstm.send(ws_msg);
+ /*
+ if (xstm.transp.ws.readyState == 1) {
+ xstm.transp.ws.send(ws_msg);
+ }
+ else {
+ xstm.transp.out_queue.push(ws_msg);
+ }
+ */
+
+ }
+ else {
+ var xhr_wr = createXMLHttpRequest();
+
+ if (typeof(content) != 'undefined') {
+ mesg = mesg + encodeURIComponent(content);
+ }
// 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
eval(xhr_wr.responseText);
}
}
+ }
}
/*
// alert("Args: "+arguments.length);
var is_conn = (sess == "not_connected" ? false : true);
-
+
// console.log("server_request:preresp: "+xhr_wr.responseText);
if (is_post) {
}
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);
}
}
function act_chatt(value)
{
- send_mesg("chatt|"+encodeURIComponent(value));
+ if (value.substring(0, 6) == "/info ") {
+ info_show(value.substring(6));
+ }
+ else {
+ send_mesg("chatt|", value);
+ }
/*
obj.disabled = true;
obj.value = "";
function act_tav()
{
- act_chatt('/tav '+$('txt_in').value);
+ act_chatt('/tav '+$('txt_in').value);
$('txt_in').value = '';
}
send_mesg("roadmap");
}
-function act_whysupport()
-{
- send_mesg("whysupport");
-}
-
function act_lascio()
{
send_mesg("lascio");
function postact_logout()
{
// alert("postact_logout");
- try {
- hstm.abort();
+ try {
+ xstm.abort();
} catch (e) {}
// eraseCookie("sess");
/*
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_licencemgr(type, code, lice_curr, lice_vers)
+function act_tosmgr(type, code, tos_curr, tos_vers)
{
if (type != "soft" && type != "hard") {
return false;
switch (code) {
case 0:
case 1:
- send_mesg("licencemgr|"+type+"|"+code+"|"+lice_curr+"|"+lice_vers);
+ send_mesg("tosmgr|"+type+"|"+code+"|"+tos_curr+"|"+tos_vers);
break;
case 2:
break;
default:
break;
}
+
return true;
}
-function lice_confirm(val)
+function tos_confirm(val, url)
{
- if (val == 1) {
- return (window.confirm(mlang_commons['lic_refu'][g_lang]));
- }
+ var dlm;
- return true;
+ 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;
+ }
}
/*
delay, st);
}
-function slowimg(img,x1,y1,deltat,free,action,srcend) {
+function slowimg(img, x1, y1, deltat, free, action, card_id_end) {
this.img = img;
// this.x0 = parseInt(document.defaultView.getComputedStyle(this.img, "").getPropertyValue("left"));
this.deltat = deltat;
this.free = free;
this.action = action;
- this.srcend = srcend;
+ this.card_id_end = card_id_end;
}
slowimg.prototype = {
- img: null,
+ img: null,
st: null,
x0: 0,
y0: 0,
deltat: 40,
tout: 0,
action: null,
- srcend: null,
-
+ card_id_end: 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);
this.step_free = parseInt(this.step_n * this.free);
}
},
-
+
start: function(st)
{
// $("logz").innerHTML += " xxxxxxxxxxxxxxxxxxxxxSTART<br>";
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 + "<br>";
this.st.st_loc++;
this.st = null;
}
- if (this.srcend != null) {
- this.img.src = this.srcend;
+ if (this.card_id_end != null) {
+ this.img.setAttribute('data-card-id', this.card_id_end);
}
}
}
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;
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");
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");
tblkid: null,
confirm_func: null,
+ confirm_func_args: [],
ret: -1,
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;
}
}
{
var clo, box;
var t = this;
-
+
this.st = st;
this.ancestor = document.body;
-
+
this.st.st_loc_new++;
clo = document.createElement("input");
box.style.visibility = "visible";
this.notitag = box;
-
+
this.ancestor.appendChild(box);
-
+
this.toutid = setTimeout(function(obj){ obj.unblock(); }, tout, this);
if (block_time != 0) {
notitag: null,
toutid: null,
clo: null,
- clodiv: null,
+ clodiv: null,
butt: null,
tblkid: null,
this.st.st_loc++;
}
},
-
+
hide: function()
{
clearTimeout(this.toutid);
{
notify_ex.call(this, st, text, tout, butt, w, h, false, 0);
}
-
-
-function $(id) {
- return document.getElementById(id);
-}
-
function globst() {
this.st = -1;
function remark_step()
{
var ct = $("remark").l_remct;
-
+
if (ct != 0) {
ct++;
if (ct > 2)
}
else
$("remark").className = "remark0";
-
+
return;
}
function italizer(ga)
{
var pre, pos;
- if (ga[0] & 2)
+ if (ga[0] & 2)
return "<i>"+ga[1]+"</i>";
else
return ga[1];
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 = "<span class='au" + (flags & 0x03) + "'>"+user[1]+"</span>";
- 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 = "<span class='" + cl + "'><span class='" +
+ (is_real && (flags & 0xfffffe && ((flags & 0x01) == 0)) ? "id_usr" : "") +
+ "'>" + user[1] + "</span></span>";
+ }
+ else {
name = user[1];
+ }
return (name);
}
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);
}
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;
}
// $("txt").innerHTML;
-
+
if (must_scroll) {
$("txt").scrollTop = 10000000;
}
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;
}
}
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 = "<b>";
- for (i = 0 ; i < emme ; i++)
+ for (i = 0 ; i < emme ; i++)
nome += "m";
nome += "</b>";
alta = "";
- for (i = 0 ; i < 5 ; i++)
+ for (i = 0 ; i < 5 ; i++)
alta += nome+"<br>";
for (i = 0 ; i < tables ; i++) {
var length = div.childNodes.length, results = new Array(length);
while (length--)
results[length] = div.childNodes[length];
-
+
for (i=0 ; i<results.length ; i++)
memo = memo + results[i].nodeValue;
}
}
}
-function playsound(tag, sound) {
- // g_withflash is a global var
- if (g_withflash) {
- $(tag).innerHTML = '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" '+
-'codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" id="mysound" WIDTH=1 HEIGHT=1>' +
-'<PARAM NAME="movie" VALUE="../playsound.swf"><PARAM NAME="PLAY" VALUE="true"><PARAM NAME="LOOP" VALUE="false">' +
-'<PARAM NAME=FlashVars VALUE="streamUrl='+sound+'">' +
-'<EMBED swliveconnect="true" name="mysound" src="../playsound.swf" FlashVars="streamUrl='+sound+'" PLAY="true" LOOP="false" '+
-' WIDTH=1 HEIGHT=1 TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></OBJECT>';
- }
+/*
+ samples = [{'name': <name>, 'file': <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()
// console.log("A: "+a+" B: "+b);
}
-function sidebanner_init()
-{
- setInterval(sidebanner_cb, 666);
-}
-
-function sidebanner2_init()
+function sidebanner_init(idx)
{
- setInterval(sidebanner2_cb, 666);
+ setInterval(function () { sidebanner_cb(idx); }, 666);
}
-function sidebanner_cb()
+function sidebanner_cb(idx)
{
var a, b;
- a = $('sidebanner').style.backgroundColor;
- b = $('sidebanner').style.borderLeftColor;
+ a = $('sidebanner'+idx).style.backgroundColor;
+ b = $('sidebanner'+idx).style.borderLeftColor;
- $('sidebanner').style.backgroundColor = b;
- $('sidebanner').style.borderColor = a+" "+a+" "+a+" "+a;
-
- // console.log("A: "+a+" B: "+b);
-}
-
-function sidebanner2_cb()
-{
- var a, b;
-
- a = $('sidebanner2').style.backgroundColor;
- b = $('sidebanner2').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);
}
}
// 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) == '/') {
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;
+}