added passwdhowto and mestgoadm functions
[brisk.git] / web / commons.js
index 896d072..1b2ea87 100644 (file)
@@ -164,22 +164,26 @@ 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()
@@ -228,6 +232,7 @@ 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.onreadystatechange = function() { return; };
     xhr_wr.send(null);
@@ -239,6 +244,34 @@ function send_mesg(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+'&' : '')+collect, false);
+    xhr_wr.onreadystatechange = function() { return; };
+    xhr_wr.send(null);
+    
+    if (xhr_wr.responseText != null) {
+        // console.log("server_request:resp: "+xhr_wr.responseText);
+        return (xhr_wr.responseText);
+    } 
+    else
+        return (null);
+}
+
 /* Stat: CHAT and TABLE */
 
 function chatt_checksend(obj,e)
@@ -282,33 +315,21 @@ function act_wakeup()
     send_mesg("wakeup");
 }
 
-/* Stat: TABLE  Subst: ASTA */
-function act_asta(card,pnt)
-{
-    send_mesg("asta|"+card+"|"+pnt);
-}
 
-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()
@@ -332,23 +353,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");
@@ -368,10 +372,11 @@ function act_logout(exitlock)
     send_mesg("logout|"+exitlock);
 }
 
-function act_reload()
+function act_reloadroom()
 {
     window.onunload = null;
-    document.location.reload();
+    window.onbeforeunload = null;
+    document.location.assign("index.php");
 }
 
 function act_shutdown()
@@ -379,8 +384,8 @@ function act_shutdown()
     var c = 0;
 
     send_mesg("shutdown");
-    while (xhr_wr.readyState != 4)
-       c++;
+    // while (xhr_wr.readyState != 4)
+    // c++;
 }
 
 function postact_logout()
@@ -528,121 +533,6 @@ 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)
 {
@@ -667,13 +557,23 @@ function notify(st, text, tout, butt, w, h)
     clodiv.className = "notify_clo";
     clodiv.appendChild(clo);
 
-    box = document.createElement("div");
+    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");
     box.className = "notify";
-    box.innerHTML = text;
     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";
 
@@ -682,6 +582,10 @@ function notify(st, text, tout, butt, w, h)
     this.ancestor.appendChild(box);
     
     this.toutid = setTimeout(function(obj){ obj.unblock(); }, tout, this);
+
+    formsub_hilite(clo);
+    clo.focus();
+
 }
 
 notify.prototype = {
@@ -759,66 +663,15 @@ function remark_off()
 }
 
 
-function choose_seed(card)
-{
-    var i;
-
-    $("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 set_names(so,ea,ne,nw,we)
+function italizer(ga)
 {
-//    alert("EA: "+ea);
-    $("name").innerHTML = so; 
-    $("name").title = unescapeHTML(so); 
-    $("name_ea").innerHTML = ea;
-    $("name_ea").title = unescapeHTML(ea);
-    $("name_ne").innerHTML = ne;
-    $("name_ne").title = unescapeHTML(ne);
-    $("name_nw").innerHTML = nw;
-    $("name_nw").title = unescapeHTML(nw);
-    $("name_we").innerHTML = we;
-    $("name_we").title = unescapeHTML(we);
-
-    return;
+    var pre, pos;
+    if (ga[0] & 2) 
+        return "<i>"+ga[1]+"</i>";
+    else
+        return ga[1];
 }
 
-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)
 {
@@ -834,36 +687,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;
@@ -871,10 +694,18 @@ var chatt_lines_n = 0;
 var CHATT_MAXLINES = 40;
 
 /* PRO CHATT */
-function chatt_sub(name,str)
+function chatt_sub(dt,data,str)
 {
     var must_scroll = false;
+    var name;
+    var flags;
+    var isauth;
 
+    flags = data[0];
+    if (flags & 0x02)
+        name = "<i>"+data[1]+"</i>";
+    else
+        name = data[1];
     // alert ($("txt").scrollTop + parseInt(getStyle($("txt"),"height", "height")) -  $("txt").scrollHeight);
 
   if ($("txt").scrollTop + parseInt(getStyle($("txt"),"height", "height")) -  $("txt").scrollHeight >= 0)
@@ -887,11 +718,11 @@ function chatt_sub(name,str)
       chatt_lines[i] = chatt_lines[i+1];
       $("txt").innerHTML += chatt_lines[i];
     }
-    chatt_lines[i] = "<b>"+name+"</b> "+str+ "<br>";
+    chatt_lines[i] = dt+"<b>"+name+"</b> "+str+ "<br>";
     $("txt").innerHTML += chatt_lines[i];
   }
   else {
-    chatt_lines[chatt_lines_n] = "<b>"+name+"</b> "+str+ "<br>";
+    chatt_lines[chatt_lines_n] = dt+"<b>"+name+"</b> "+str+ "<br>";
     $("txt").innerHTML += chatt_lines[chatt_lines_n];
     chatt_lines_n++;
   }
@@ -935,19 +766,29 @@ function eraseCookie(name) {
 var onunload_times = 0;
 
 
-function onunload_cb () {
+function onbeforeunload_cb () {
+    return("");
+}
+
+function onunload_cb_old () {
     var u = 0;
+    
+    //    if (nonunload == true)
+    //     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)");
        if (res == true) {
            the_end = true; 
            act_shutdown();
-           while (1) 
-               u++;
+           // while (1) 
+           //  u++;
        }
        else {
            try {
-               location = self.location;
+               document.location.href = self.location; //  = self.location;
+                // alert ("passiamo di qui"+self.location);
+                return (false);
            } catch (e) {
                alert("Ripristino della briscola fallito, per non perdere la sessione ricaricare la pagina manualmente.");
            }
@@ -958,6 +799,15 @@ function onunload_cb () {
     return(false);
 }
 
+function onunload_cb () {
+    
+    the_end = true; 
+
+    act_shutdown();
+    
+    return(false);
+}
+
 
 function room_checkspace(emme,tables,inpe)
 {
@@ -985,7 +835,8 @@ function room_checkspace(emme,tables,inpe)
     stand += "</tr>";
     $("standup").innerHTML = stand;
 
-    $("esco").innerHTML = "<input class=\"button\" name=\"logout\" type=\"button\" value=\"Esco.\" onclick=\"window.onunload = null; act_logout();\" type=\"button\">";
+    // VERIFY: what is this button ?
+    $("esco").innerHTML = "<input class=\"button\" name=\"logout\" type=\"button\" value=\"Esco.\" onclick=\"act_logout();\" type=\"button\">";
 }
 
 function  unescapeHTML(cont) {
@@ -1032,7 +883,7 @@ function playsound(tag, sound) {
 
 function topbanner_init()
 {
-//    setInterval(topbanner_cb, 666);
+    setInterval(topbanner_cb, 666);
 ;
 }
 
@@ -1048,3 +899,46 @@ function topbanner_cb()
 
     // console.log("A: "+a+"  B: "+b);
 }
+
+function sidebanner_init()
+{
+    setInterval(sidebanner_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 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'; });
+}
+