proper language management for deck reload (and close button)
[brisk.git] / web / briskin5 / briskin5.js
index 00c79d8..5d52931 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  brisk - briskin5.js
  *
- *  Copyright (C) 2006-2008 Matteo Nastasi
+ *  Copyright (C) 2006-2012 Matteo Nastasi
  *                          mailto: nastasi@alternativeoutput.it 
  *                                  matteo.nastasi@milug.org
  *                          web: http://www.alternativeoutput.it
  * not, write to the Free Software Foundation, Inc, 59 Temple Place -
  * Suite 330, Boston, MA 02111-1307, USA.
  *
- * $Id$
- *
  */
 
+var mlang_briskin5 = { 'is_calling' : { 'it' : ' sta chiamando', 
+                                        'en' : ' is calling' },
+                       'deckreload' : { 'it' : '<br/>Per rendere visibile il nuovo mazzo di carte<br/><br/>occorre fare reload della pagina.',
+                                        'en' : '<br/>EN: Per rendere visibile il nuovo mazzo di carte<br/><br/>occorre fare reload della pagina.'},
+                       'close_btn':   { 'it' : 'Chiudi',
+                                        'en' : 'Close'}
+                     }
+
+function Preferences(ring_endauct, deck, deck_old)
+{
+    this.ring_endauct = ring_endauct;
+    this.deck = deck;
+    this.deck_old = deck_old;
+}
+
+Preferences.prototype = {
+    ring_endauct: true,
+    deck: null,
+    deck_old: null
+}
+
 function background_set()
 {
     $("bg").style.backgroundImage = 'url("img/brisk_table_sand'+table_pos+'.jpg")'; 
@@ -114,7 +133,7 @@ function dispose_asta(idx, pnt, nopoint)
        btn.style.left = asta_xarr[i % 3];
        btn.style.top = parseInt(i / 3) * 50 + 24;
        btn.src = "img/astalascio"+lng+".png";
-       btn.style.visibility = "visible";
+       btn.style.visibility = "";
        btn.onclick = function () { safelascio(); };
        }
     else {
@@ -158,7 +177,7 @@ function choose_seed(card)
     $("astalascio").style.visibility = "hidden"; 
     $("chooseed").style.visibility = "visible";
     for (i = 0 ; i < 4 ; i++) {
-       $("seed"+i).src = "img/"+i+""+card+".png";
+       $("seed"+i).setAttribute('data-card-id', '' + i + card);
        seed=$("seed"+i);
        eval("seed.onclick = function () { act_choose("+i+""+card+"); };");
     }
@@ -209,7 +228,7 @@ function table_init() {
     show_astat(-2,-2,-2,-2,-2);
     set_iscalling(-1);
 
-    for (i=0 ; i < 8 ; i++) {
+    for (i=0 ; i < CARD_HAND ; i++) {
        Drag.init($("card" + i), card_mouseup_cb);
        for (e = 0 ; e < PLAYERS_N ; e++)
            $("card"+sux[e]+i).style.visibility = "hidden";
@@ -219,7 +238,7 @@ function table_init() {
        $("takes"+sux[i]).style.visibility = "hidden";
        }
 
-    for (i = 0 ; i < 8 ; i++) {
+    for (i=0 ; i < CARD_HAND ; i++) {
        cards_pos[i] = i;
        cards_ea_pos[i] = i;
        cards_ne_pos[i] = i;
@@ -265,21 +284,23 @@ function act_reload()
 {
     window.onunload = null;
     window.onbeforeunload = null;
-    document.location.reload();
+    // alert(document.location.toString());
+    document.location.assign("index.php");
+    // document.location.reload();
 }
 
 function set_names(so,ea,ne,nw,we)
 {
     // alert("SET NAME");
-    $("name").innerHTML = italizer(so);
-    $("name").title = unescapeHTML(so[1]); 
-    $("name_ea").innerHTML = italizer(ea);
+    $("name").innerHTML    = user_decorator(so, false);
+    $("name").title    = unescapeHTML(so[1]); 
+    $("name_ea").innerHTML = user_decorator(ea, false);
     $("name_ea").title = unescapeHTML(ea[1]);
-    $("name_ne").innerHTML = italizer(ne);
+    $("name_ne").innerHTML = user_decorator(ne, false);
     $("name_ne").title = unescapeHTML(ne[1]);
-    $("name_nw").innerHTML = italizer(nw);
+    $("name_nw").innerHTML = user_decorator(nw, false);
     $("name_nw").title = unescapeHTML(nw[1]);
-    $("name_we").innerHTML = italizer(we);
+    $("name_we").innerHTML = user_decorator(we, false);
     $("name_we").title = unescapeHTML(we[1]);
 
     for (i = 0 ; i < PLAYERS_N ; i++) 
@@ -294,39 +315,65 @@ function set_iscalling(idx)
 
     for (i = 0 ; i < PLAYERS_N ; i++) {
         $("name"+astat_suffix[i]).className = "pubinfo"+astat_suffix[i]+(i == idx ? "_iscalling" : "");
-        $("name"+astat_suffix[i]).title = $("name"+astat_suffix[i]).title_orig + (i == idx ? " sta chiamando" : "");
+        $("name"+astat_suffix[i]).title = $("name"+astat_suffix[i]).title_orig + (i == idx ? mlang_briskin5['is_calling'][g_lang] : "");
     }
 }
 
+var preferences = new Preferences(true, 'xx', 'xx');
+// FIXME move it in the html dynamic generation scope
+var deck_list = { 'xx': 'Normal cards',
+                  'yy': 'Slim cards' }
 function preferences_init()
 {
     var rd;
 
     if ((rd = readCookie("CO_bin5_pref_ring_endauct")) != null) {
-        $('pref_ring_endauct').checked = (rd == "true" ? true : false);
+        preferences.ring_endauct = $('pref_ring_endauct').checked = (rd == "true" ? true : false);
+    }
+    else {
+        preferences.ring_endauct = $('pref_ring_endauct').checked = true;
+    }
+
+    if ((rd = readCookie("CO_bin5_pref_deck")) != null && rd in deck_list) {
+        $$('#pref_deck').val(rd);
+        preferences.deck = rd;
+        preferences.deck_old = rd;
     }
     else {
-        $('pref_ring_endauct').checked = false;
+        rd = 'xx';
+        $$('#pref_deck').val(rd);
+        preferences.deck = rd;
+        preferences.deck_old = rd;
     }
-    $('preferences').ring_endauct = $('pref_ring_endauct').checked;
 }
 
 function preferences_update()
 {
     var ret;
-    createCookie("CO_bin5_pref_ring_endauct", ($('preferences').ring_endauct ? "true" : "false"), 24*3650, cookiepath); 
+    createCookie("CO_bin5_pref_ring_endauct", (preferences.ring_endauct ? "true" : "false"), 24*3650, cookiepath);
+    createCookie("CO_bin5_pref_deck", preferences.deck, 24*3650, cookiepath);
     ret = server_request('mesg', 'preferences_update');
 }
 
 function act_preferences_update()
 {
-    preferences_update()
+    preferences_update();
+    if (preferences.deck != preferences.deck_old) {
+        // FIXME: with dynamic text
+        x = new notify(gst, mlang_briskin5['deckreload'],
+                       0, mlang_briskin5['close_btn'][g_lang], 400, 110);
+    }
     preferences_showhide();
 }
 
 function pref_ring_endauct_set(obj)
 {
-    $('preferences').ring_endauct = obj.checked;
+    preferences.ring_endauct = obj.checked;
+}
+
+function pref_deck_set(obj)
+{
+    preferences.deck = $$(obj).val();
 }
 
 
@@ -350,3 +397,18 @@ function preferences_showhide()
     else
         $('preferences').style.visibility = 'hidden';
 }
+
+function act_select_rules(rule_id)
+{
+    send_mesg("chatt|/rules " + rule_id);
+}
+
+function act_select_deck(deck_id)
+{
+    preferences.deck = deck_id;
+}
+
+function rules_set(id)
+{
+    $('select_rules').value = id;
+}