act_splash modified
[brisk.git] / web / commons.js
index e09f826..e3e904c 100644 (file)
@@ -27,6 +27,23 @@ var PLAYERS_N = 3;
 var EXIT_BAN_TIME = 900;
 var cookiepath = "/brisk/";
 
+var mlang_commons = { 'imgload_a' : { 'it' : 'Immagine caricate ', 
+                                      'en' : 'Loaded images ' },
+                      'imgload_b' : { 'it' : '%.', 
+                                      'en' : '%.' },
+                      'gamleav'   : { 'it' : 'Sei sicuro di volere lasciare questa mano?' ,
+                                      'en' : 'Are you sure to leave this game?' },
+                      'brileav'   : { 'it' : '    Vuoi veramente abbandonare la briscola ?\n(clicca annulla o cancel se vuoi ricaricare la briscola)',
+                                      'en' : '    Are you really sure to leave briscola ?\n(click cancel yo reload it)' },
+                      'brireco'   : { 'it' : 'Ripristino della briscola fallito, per non perdere la sessione ricaricare la pagina manualmente.',
+                                      'en' : 'Recovery of briscola failed, to keep the current session reload the page manually.' },
+                      'btn_sit'   : { 'it' : 'Mi siedo.',
+                                      'en' : 'Sit down.' },
+                      'btn_exit'  : { 'it' : 'Esco.',
+                                      'en' : 'Exit.' }
+                      
+                      };
+
 function $(id) { return document.getElementById(id); }
 
 function getStyle(x,IEstyleProp, MozStyleProp) 
@@ -164,28 +181,32 @@ function rnd_int(min, max) {
 
 function error_images()
 {
-    alert("GHESEMU!");
+    // alert("GHESEMU!");
+    setTimeout(preload_images, 2000, g_preload_img_arr, g_imgct-1);
 }
 
 function abort_images()
 {
-    alert("ABORTAIMAGES");
+    // alert("ABORTAIMAGES");
+    setTimeout(preload_images, 2000, g_preload_img_arr, g_imgct-1);
 }
 
 function unload_images()
 {
-    alert("ABORTAIMAGES");
+    // alert("ABORTAIMAGES");
+    setTimeout(preload_images, 2000, g_preload_img_arr, g_imgct-1);
 }
 
 function reset_images()
 {
-    alert("ABORTAIMAGES");
+    // alert("ABORTAIMAGES");
+    setTimeout(preload_images, 2000, g_preload_img_arr, g_imgct-1);
 }
 
 function update_images()
 {
-    //    if (g_imgct % 10 == 0) alert("g_imgct: "+g_imgct+" xx "+g_preload_img_arr[g_imgct]);
-    $("imgct").innerHTML = "Immagini caricate "+g_preload_imgsz_arr[g_imgct]+"%.";
+    // MLANG "Immagine caricate" + g_preload_imgsz_arr[g_imgct] + "%."
+    $("imgct").innerHTML = mlang_commons['imgload_a'][g_lang]+g_preload_imgsz_arr[g_imgct]+"%.";
     if (g_imgct+1 < g_preload_img_arr.length) {
         g_imgct++;
         setTimeout(preload_images, 100, g_preload_img_arr, g_imgct-1);
@@ -240,15 +261,23 @@ function send_mesg(mesg)
     }
 }
 
-function server_request(mesg)
+function server_request()
 {
     var xhr_wr = createXMLHttpRequest();
-    
+    var i, collect = "";
+
+    if (arguments.length > 0) {
+        for (i = 0 ; i < arguments.length ; i+= 2) {
+            collect += (i == 0 ? "" : "&") + arguments[i] + "=" + encodeURIComponent(arguments[i+1]);
+        }
+    }
+    // alert("Args: "+arguments.length);
+
     var is_conn = (sess == "not_connected" ? false : true);
     
     // console.log("server_request:preresp: "+xhr_wr.responseText);
 
-    xhr_wr.open('GET', 'index_wr.php?'+(is_conn ? 'sess='+sess+'&' : '')+'mesg='+mesg, false);
+    xhr_wr.open('GET', 'index_wr.php?'+(is_conn ? 'sess='+sess+'&' : '')+collect, false);
     xhr_wr.onreadystatechange = function() { return; };
     xhr_wr.send(null);
     
@@ -303,33 +332,24 @@ function act_wakeup()
     send_mesg("wakeup");
 }
 
-/* Stat: TABLE  Subst: ASTA */
-function act_asta(card,pnt)
+function act_splash()
 {
-    send_mesg("asta|"+card+"|"+pnt);
+    send_mesg("splash");
 }
 
-function act_choose(card)
-{
-    // alert("sitdown");
-    send_mesg("choose|"+card);
-}
-
-/* Stat: TABLE  Subst: GAME */
-function act_play(card,x,y)
+function act_help()
 {
-    // alert("sitdown");
-    send_mesg("play|"+card+"|"+x+"|"+y);
+    send_mesg("help");
 }
 
-function act_tableinfo()
+function act_passwdhowto()
 {
-    send_mesg("tableinfo");
+    send_mesg("passwdhowto");
 }
 
-function act_help()
+function act_mesgtoadm()
 {
-    send_mesg("help");
+    send_mesg("mesgtoadm");
 }
 
 function act_tav()
@@ -343,6 +363,11 @@ function act_about()
     send_mesg("about");
 }
 
+function act_placing()
+{
+    send_mesg("placing");
+}
+
 function act_roadmap()
 {
     send_mesg("roadmap");
@@ -353,23 +378,6 @@ function act_whysupport()
     send_mesg("whysupport");
 }
 
-function act_exitlock()
-{
-    send_mesg("exitlock");
-}
-
-function safelogout()
-{
-    var res;
-    
-    if (g_exitlock < 2) 
-       res = window.confirm("Sei sicuro di volere abbandonare la partita?\nATTENZIONE: se esci adesso senza il consenso degli altri giocatori non potrai sederti ai tavoli per "+(Math.floor(EXIT_BAN_TIME/60))+" minuti.");    
-    else 
-       res = window.confirm("Sei sicuro di volere abbandonare la partita?");
-    if (res)
-       act_logout(g_exitlock);
-}
-
 function act_lascio()
 {
     send_mesg("lascio");
@@ -378,8 +386,8 @@ function act_lascio()
 function safelascio()
 {
     var res;
-
-    res = window.confirm("Sei sicuro di volere lasciare questa mano?");
+    // MLANG "Sei sicuro di volere lasciare questa mano?"
+    res = window.confirm(mlang_commons['gamleav'][g_lang]);
     if (res)
        act_lascio();
 }
@@ -387,14 +395,13 @@ function safelascio()
 function act_logout(exitlock)
 {
     send_mesg("logout|"+exitlock);
-    // alert("IZZO");
 }
 
-function act_reload()
+function act_reloadroom()
 {
     window.onunload = null;
     window.onbeforeunload = null;
-    document.location.reload();
+    document.location.assign("index.php");
 }
 
 function act_shutdown()
@@ -551,123 +558,8 @@ slowimg.prototype = {
     }
 }
 
-var asta_xarr = new Array(0,66,132);
 
-/* TODO: impostare gli onclick */
-function dispose_asta(idx, pnt, nopoint)
-{
-    var i, btn, pass;
-    var btn;
-
-    for (i = 0 ; i < 10 ; i++) {
-       btn = $("asta"+i);
-       if (i < idx) {
-           btn.src = "img/astapasso"+(pnt >= 0 ? "" : "_ro")+".png";
-            btn.style.cursor = (pnt >= 0 ? "pointer" : "default");
-           pass = -1;
-       }
-       else {
-           btn.src = "img/asta"+i+(pnt >= 0 ? "" : "_ro")+".png";
-            btn.style.cursor = (pnt >= 0 ? "pointer" : "default");
-           pass = i;
-       }
-       if (i < 19)
-           btn.style.left = asta_xarr[i % 3];
-       else
-           btn.style.left = asta_xarr[(i+1) % 3];
-       
-       btn.style.top  = parseInt(i / 3) * 50 + (i == 9 ? 0 : 1);
-
-       if (pnt >= 0) {
-           eval("btn.onclick = function () { act_asta("+pass+",61); }");
-           btn.style.cursor = "pointer";
-       }
-       else {
-           btn.onclick = null;
-           btn.style.cursor = "default";
-       }
-    }
-    
-    
-    btn = $("astaptdiv");
-    btn.style.left = asta_xarr[i % 3];
-    btn.style.top = parseInt(i / 3) * 50 - 2;
-    // btn.style.visibility  = "visible";
-    
-    btn = $("astapt");
-    var rpnt = (pnt < 0 ? -pnt : pnt);
-    btn.value = (rpnt < 61 ? 61 : (rpnt > 120 ? 120 : rpnt));
-    
-    btn = $("astaptsub");
-    btn.style.left = asta_xarr[i % 3];
-    btn.style.top = 25 + parseInt(i / 3) * 50 - 1;
-    btn.src = "img/astaptsub"+(pnt >= 0 ? "" : "_ro")+".png";
-    btn.style.cursor = (pnt >= 0 ? "pointer" : "default");
-    if (pnt >= 0) {
-       btn.onclick = function () { act_asta(9,$("astapt").value); };
-       btn.style.cursor = "pointer";
-    }
-    else {
-       btn.onclick = null;
-       btn.style.cursor = "default";
-    }
-    
-    i+=1;
-    if (nopoint) {
-       btn = $("astapasso");
-       btn.style.left = asta_xarr[i % 3];
-       btn.style.top = parseInt(i / 3) * 50;
-       btn.src = "img/astapashalf"+(pnt >= 0 ? "" : "_ro")+".png";
-        btn.style.cursor = (pnt >= 0 ? "pointer" : "default");
-       if (pnt >= 0) {
-           btn.onclick = function () { act_asta(-1,0); };
-       }
-       else {          
-           btn.onclick = null;
-       }
-
-       btn = $("astalascio");
-       btn.style.left = asta_xarr[i % 3];
-       btn.style.top = parseInt(i / 3) * 50 + 24;
-       btn.src = "img/astalascio.png";
-       btn.style.visibility = "visible";
-       btn.onclick = function () { safelascio(); };
-       }
-    else {
-       btn = $("astapasso");
-       btn.style.left = asta_xarr[i % 3];
-       btn.style.top = parseInt(i / 3) * 50;;
-       btn.src = "img/astapasso"+(pnt >= 0 ? "" : "_ro")+".png";
-        btn.style.cursor = (pnt >= 0 ? "pointer" : "default");
-       if (pnt >= 0) {
-           btn.onclick = function () { act_asta(-1,0); };
-       }
-       else {
-           btn.onclick = null;
-       }
-
-       btn = $("astalascio");
-       btn.style.visibility = "hidden";
-       btn.onclick = null;
-    }
-    // btn.style.visibility  = "visible";
-    $("asta").style.visibility = "visible";
-}
-
-function asta_pnt_set(pnt)
-{
-    btn = $("astapt");
-    var rpnt = (pnt < 0 ? -pnt : pnt);
-    btn.value = (rpnt < 61 ? 61 : (rpnt > 120 ? 120 : rpnt));
-}
-
-function hide_asta()
-{
-    $("asta").style.visibility = "hidden"; 
-}
-
-
-function notify(st, text, tout, butt, w, h)
+function notify_ex(st, text, tout, butt, w, h, is_opa, block_time)
 {
     var clo, box;
     var t = this;
@@ -682,22 +574,44 @@ function notify(st, text, tout, butt, w, h)
     clo.type = "submit";
     clo.className = "button";
     clo.style.bottom = "4px";
-    clo.value = butt;
     clo.obj = this;
-    clo.onclick = this.input_hide;
-    
+    if (block_time > 0) {
+        clo.value = "leggere, prego.";
+        this.butt = butt;
+    }
+    else {
+        clo.value = butt;
+        clo.onclick = this.input_hide;
+    }
+
     clodiv = document.createElement("div");
     clodiv.className = "notify_clo";
+    this.clo = clo;
+    this.clodiv = clodiv;
+
     clodiv.appendChild(clo);
 
-    box = document.createElement("div");
-    box.className = "notify";
-    box.innerHTML = text;
+    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(clodiv);
     box.style.visibility = "visible";
 
@@ -706,14 +620,28 @@ function notify(st, text, tout, butt, w, h)
     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();
+    }
+
 }
 
-notify.prototype = {
+
+notify_ex.prototype = {
     ancestor: null,
     st: null,
     notitag: null,
     toutid: null,
-    
+    clo: null,
+    clodiv: null, 
+    butt: null,
+    tblkid: null, 
+
     unblock: function()
     {
        if (this.st.st_loc < this.st.st_loc_new) {
@@ -735,6 +663,17 @@ notify.prototype = {
        this.obj.unblock();
     }
 }
+
+
+notify.prototype = notify_ex.prototype;                // Define sub-class
+notify.prototype.constructor = notify;
+notify.baseConstructor = notify_ex;
+notify.superClass = notify_ex.prototype;
+
+function notify(st, text, tout, butt, w, h)
+{
+    notify_ex.call(this, st, text, tout, butt, w, h, false, 0);
+}
        
 
 function $(id) { 
@@ -783,20 +722,6 @@ function remark_off()
 }
 
 
-function choose_seed(card)
-{
-    var i;
-
-    $("asta").style.visibility = "hidden"; 
-    $("astalascio").style.visibility = "hidden"; 
-    $("chooseed").style.visibility = "visible";
-    for (i = 0 ; i < 4 ; i++) {
-       $("seed"+i).src = "img/"+i+""+card+".png";
-       seed=$("seed"+i);
-       eval("seed.onclick = function () { act_choose("+i+""+card+"); };");
-    }
-}
-
 function italizer(ga)
 {
     var pre, pos;
@@ -806,54 +731,6 @@ function italizer(ga)
         return ga[1];
 }
 
-function set_names(so,ea,ne,nw,we)
-{
-//    alert("EA: "+ea);
-    $("name").innerHTML = italizer(so);
-    $("name").title = unescapeHTML(so[1]); 
-    $("name_ea").innerHTML = italizer(ea);
-    $("name_ea").title = unescapeHTML(ea[1]);
-    $("name_ne").innerHTML = italizer(ne);
-    $("name_ne").title = unescapeHTML(ne[1]);
-    $("name_nw").innerHTML = italizer(nw);
-    $("name_nw").title = unescapeHTML(nw[1]);
-    $("name_we").innerHTML = italizer(we);
-    $("name_we").title = unescapeHTML(we[1]);
-
-    return;
-}
-
-var astat_suffix = new Array("","_ea","_ne","_nw","_we");
-
-function show_astat(zer,uno,due,tre,qua)
-{
-    var astat = new Array(zer,uno,due,tre,qua);
-
-    for (i = 0 ; i < PLAYERS_N ; i++) {
-       idx = (PLAYERS_N + i - table_pos) % PLAYERS_N;
-
-       if (astat[i] == -2) {
-           $("public"+astat_suffix[idx]).style.visibility = "hidden";
-       }
-       else if (astat[i] == -1) {
-           $("public"+astat_suffix[idx]).style.visibility = "visible";
-           $("pubacard"+astat_suffix[idx]).src = "img/astapasso.png";
-           $("pubapnt"+astat_suffix[idx]).innerHTML = "";
-           $("pubapnt"+astat_suffix[idx]).style.visibility = "hidden";
-       }
-       else if (astat[i] <= 10) {
-           $("public"+astat_suffix[idx]).style.visibility = "visible";
-           $("pubacard"+astat_suffix[idx]).src = "img/asta"+astat[i]+".png";
-           $("pubapnt"+astat_suffix[idx]).style.visibility = "hidden";
-       }
-       else if (astat[i] <= 120) {
-           $("public"+astat_suffix[idx]).style.visibility = "visible";
-           $("pubacard"+astat_suffix[idx]).src = "img/asta9.png";
-           $("pubapnt"+astat_suffix[idx]).style.visibility = "inherit"; // XXX VISIBLE
-           $("pubapnt"+astat_suffix[idx]).innerHTML = astat[i];
-       }
-    }
-}
 
 function exitlock_show(num, islock)
 {
@@ -869,36 +746,6 @@ var fin = 0;
 
 //    exitlock_show(0, true);
 
-function table_init() {
-    var sux = new Array("", "_ea", "_ne", "_nw", "_we");
-
-    // console.log("table_init");
-
-    remark_off();
-    $("asta").style.visibility = "hidden";
-    $("caller").style.visibility = "hidden";
-    show_astat(-2,-2,-2,-2,-2);
-    for (i=0 ; i < 8 ; i++) {
-       Drag.init($("card" + i), card_mouseup_cb);
-       for (e = 0 ; e < PLAYERS_N ; e++)
-           $("card"+sux[e]+i).style.visibility = "hidden";
-    }
-    for (i=0 ; i < PLAYERS_N ; i++) {
-        // console.log("shut: "+"takes"+sux[i]);
-       $("takes"+sux[i]).style.visibility = "hidden";
-       }
-
-    for (i = 0 ; i < 8 ; i++) {
-       cards_pos[i] = i;
-       cards_ea_pos[i] = i;
-       cards_ne_pos[i] = i;
-       cards_nw_pos[i] = i;
-       cards_we_pos[i] = i;
-    }
-
-}
-  
-
 
 var chatt_lines = new Array();
 var chatt_lines_n = 0;
@@ -989,7 +836,8 @@ function onunload_cb_old () {
     //     return true;
     
     if (onunload_times == 0) {
-       var res = window.confirm("    Vuoi veramente abbandonare la briscola ?\n(clicca annulla o cancel se vuoi ricaricare la briscola)");
+        // MLANG "    Vuoi veramente abbandonare la briscola ?\n(clicca annulla o cancel se vuoi ricaricare la briscola)"
+       var res = window.confirm(mlang_commons['brileav'][g_lang]);
        if (res == true) {
            the_end = true; 
            act_shutdown();
@@ -1002,7 +850,8 @@ function onunload_cb_old () {
                 // alert ("passiamo di qui"+self.location);
                 return (false);
            } catch (e) {
-               alert("Ripristino della briscola fallito, per non perdere la sessione ricaricare la pagina manualmente.");
+                // MLANG "Ripristino della briscola fallito, per non perdere la sessione ricaricare la pagina manualmente."
+               alert(mlang_commons['brireco'][g_lang]);
            }
        }
        onunload_times++;
@@ -1034,7 +883,8 @@ function room_checkspace(emme,tables,inpe)
 
     for (i = 0 ; i < tables ; i++) {
        $("table"+i).innerHTML = alta;
-       $("table_act"+i).innerHTML = "<input type=\"button\" class=\"button\" name=\"xhenter"+i+"\"  value=\"Mi siedo.\" onclick=\"act_sitdown(1);\">";
+        // MLANG Mi siedo.
+       $("table_act"+i).innerHTML = "<input type=\"button\" class=\"button\" name=\"xhenter"+i+"\"  value=\""+mlang_commons['btn_sit'][g_lang]+"\" onclick=\"act_sitdown(1);\">";
        }
 
     stand = "<table class=\"table_standup\"><tbody><tr>";
@@ -1048,7 +898,8 @@ function room_checkspace(emme,tables,inpe)
     $("standup").innerHTML = stand;
 
     // VERIFY: what is this button ?
-    $("esco").innerHTML = "<input class=\"button\" name=\"logout\" type=\"button\" value=\"Esco.\" onclick=\"act_logout();\" type=\"button\">";
+    // MLANG Esco.
+    $("esco").innerHTML = "<input class=\"button\" name=\"logout\" type=\"button\" value=\""+mlang_commons['btn_exit'][g_lang]+"\" onclick=\"act_logout();\" type=\"button\">";
 }
 
 function  unescapeHTML(cont) {
@@ -1111,3 +962,63 @@ function topbanner_cb()
 
     // console.log("A: "+a+"  B: "+b);
 }
+
+function sidebanner_init()
+{
+    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);
+}
+
+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;
+
+    // console.log("A: "+a+"  B: "+b);
+}
+
+
+function langtolng(lang)
+{
+    if (lang == "en")
+        return ("-en");
+    else
+        return ("");
+}
+
+function formtext_hilite(obj)
+{
+    obj.className = 'input_text';
+    addEvent(obj, "focus", function () { this.className = 'input_text_hi'; });
+    addEvent(obj, "blur",  function () { this.className = 'input_text'; });
+}
+
+function formsub_hilite(obj)
+{
+    obj.className = 'input_sub';
+    addEvent(obj, "focus", function () { this.className = 'input_sub_hi'; });
+    addEvent(obj, "blur",  function () { this.className = 'input_sub'; });
+}
+