use JQuery for complex selections
[brisk.git] / web / prefs.js
index 4fe20b8..d926105 100644 (file)
@@ -1,6 +1,9 @@
-var l_list_all = 0x00;
-var l_list_auth = 0x01;
-var l_list_isol = 0x02;
+var l_list_all  = 0x00;
+var l_list_isol = 0x01;
+var l_prefs_list_idx = new Array( 0x00, 0x01 );
+var l_prefs_list_id  = new Array( "all", "isol" );
+var l_comps_name     = new Array('s_fg_r', 's_fg_g', 's_fg_b', 's_bg_r',  's_bg_g',  's_bg_b');
+
 
 function client_prefs(old)
 {
@@ -26,9 +29,6 @@ function prefs_assign(content)
     return (prefs_new);
 }
 
-var prefs_list_idx  = new Array( 0x00, 0x01, 0x02 );
-var prefs_list_id   = new Array( "all", "auth", "isol" );
-
 function prefs_apply(prefs_new, is_update, is_volat)
 {
     var i;
@@ -38,16 +38,16 @@ function prefs_apply(prefs_new, is_update, is_volat)
         return false;
     /* listen management */
     if (g_prefs.listen != prefs_new.listen || is_update) {
-        for (i = 0 ; i < prefs_list_idx.length ; i++) {
-            set_checked_value($('ra_listen_'+prefs_list_id[i]), prefs_new.listen);
-            if (prefs_new.listen == prefs_list_idx[i]) {
+        for (i = 0 ; i < l_prefs_list_idx.length ; i++) {
+            set_checked_value($('ra_listen_'+l_prefs_list_id[i]), prefs_new.listen);
+            if (prefs_new.listen == l_prefs_list_idx[i]) {
                 if (!is_volat)
-                    $('list_'+prefs_list_id[i]).style.color = 'red';
+                    $('list_'+l_prefs_list_id[i]).style.color = 'red';
                 $('list_info').innerHTML = mlang_commons['tit_list'][i][g_lang];
             }
             else {
                 if (!is_volat)
-                    $('list_'+prefs_list_id[i]).style.color = 'black';
+                    $('list_'+l_prefs_list_id[i]).style.color = 'black';
             }
         }
 
@@ -56,17 +56,17 @@ function prefs_apply(prefs_new, is_update, is_volat)
 
     // supporter component management
     if (g_prefs.supp_comp != prefs_new.supp_comp || is_update) {
+
+        for (i = 0 ; i < 6 ; i++) {
+            $(l_comps_name[i]).value = parseInt(prefs_new.supp_comp.substr(i*2,2), 16);
+        }
         $('s_img').src = 'suprend.php?comp='+prefs_new.supp_comp;
     }
 
     if (relo || !is_update) {
-        for (i = g_tables_auth_n ; i < g_tables_n ; i++) {
-            if (i % 4 == 0) {
-                $('tr_noauth'+i).style.display = (prefs_new.listen == l_list_isol ? 'none' : '');
-            }
+        $$('tr.noauth').css("display", (prefs_new.listen == l_list_isol ? 'none' : ''));
+        $$('td.noauth').css("display", (prefs_new.listen == l_list_isol ? 'none' : ''));
 
-            $('td_noauth'+i).style.display = (prefs_new.listen == l_list_isol ? 'none' : '');
-        }
         if (prefs_new.listen == l_list_isol) {
             tra.hide_noauth();
         }
@@ -107,10 +107,21 @@ function prefs_save()
     if (typeof(g_prefs) == 'undefined')
         return false;
 
-    ret = server_request('mesg', 'prefs','__POST__', 'prefs', JSON.stringify(g_prefs));
+    ret = server_request('mesg', 'prefs|save','__POST__', 'prefs', JSON.stringify(g_prefs));
 
-    if (ret == 1)
+    if (ret == 1) {
         $('preferences').style.visibility = 'hidden';
+    }
+    else {
+        alert(ret);
+    }
+}
+
+function prefs_reset()
+{
+    var ret;
+
+    ret = server_request('mesg', 'prefs|reset');
 }
 
 function prefs_update(field)
@@ -118,7 +129,6 @@ function prefs_update(field)
     var i;
     var prefs_new;
     var relo = false;
-
     // console.log("prefs_update("+field+")");
 
     if (typeof(g_prefs) == 'undefined')
@@ -128,14 +138,32 @@ function prefs_update(field)
 
     if (field == 'listen') {
         /* listen management */
-        for (i = 0 ; i < prefs_list_idx.length ; i++) {
-            prefs_new.listen = get_checked_value($('ra_listen_'+prefs_list_id[i]));
+        for (i = 0 ; i < l_prefs_list_idx.length ; i++) {
+            prefs_new.listen = get_checked_value($('ra_listen_'+l_prefs_list_id[i]));
             if (prefs_new.listen != '')
                 break;
         }
     }
     else if (field == 'supp') {
-        prefs_new.supp_comp = "" + dec2hex($('s_fg_r').value, 2) + dec2hex($('s_fg_g').value, 2) + dec2hex($('s_fg_b').value, 2) + dec2hex($('s_bg_r').value, 2) + dec2hex($('s_bg_g').value, 2) + dec2hex($('s_bg_b').value, 2);
+        for (i = 0 ; i < 6 ; i++) {
+            if (parseInt($(l_comps_name[i]).value) < 0 || parseInt($(l_comps_name[i]).value) > 255 ||
+                isNaN(parseInt($(l_comps_name[i]).value))) {
+                break;
+            }
+        }
+
+        if (i == 6) {
+            prefs_new.supp_comp = "";
+            for (i = 0 ; i < 6 ; i++) {
+                prefs_new.supp_comp += dec2hex(parseInt($(l_comps_name[i]).value), 2);
+            }
+        }
+
+        // console.log("prefs_update:: i break "+i+" ["+prefs_new.supp_comp+"]");
+
+        for (i = 0 ; i < 6 ; i++) {
+            $(l_comps_name[i]).value = parseInt(prefs_new.supp_comp.substr(i*2, 2), 16);
+        }
     }
 
     /* from form to struct */
@@ -148,16 +176,7 @@ function list_set(what, is_update, info)
     var relo = false;
     var old_st = readCookie("CO_list");
     
-    if (what == 'auth') {
-        $('list_auth').style.color = 'red';
-        $('list_isol').style.color = 'black';
-        $('list_all').style.color = 'black';
-        if (old_st == 'isolation')
-            relo = true;
-        g_listen = l_list_auth;
-    }
-    else if (what == 'isolation') {
-        $('list_auth').style.color = 'black';
+    if (what == 'isolation') {
         $('list_isol').style.color = 'red';
         $('list_all').style.color = 'black';
         if (old_st != 'isolation')
@@ -165,7 +184,6 @@ function list_set(what, is_update, info)
         g_listen = l_list_isol;
     }
     else {
-        $('list_auth').style.color = 'black';
         $('list_isol').style.color = 'black';
         $('list_all').style.color = 'red';
         if (old_st == 'isolation')
@@ -173,7 +191,6 @@ function list_set(what, is_update, info)
         g_listen = l_list_all;
     }
 
-    set_checked_value($('ra_listen_auth'), what);
     set_checked_value($('ra_listen_isol'), what);
     set_checked_value($('ra_listen_all'),  what);
 
@@ -184,14 +201,9 @@ function list_set(what, is_update, info)
 
 
     if (relo || !is_update) {
-        for (i = g_tables_auth_n ; i < g_tables_n ; i++) {
-            
-            if (i % 4 == 0) {
-                $('tr_noauth'+i).style.display = (what == 'isolation' ? 'none' : '');
-            }
-            
-            $('td_noauth'+i).style.display = (what == 'isolation' ? 'none' : '');
-        }
+        $$('tr.noauth').css("display", (what == 'isolation' ? 'none' : ''));
+        $$('td.noauth').css("display", (what == 'isolation' ? 'none' : ''));
+
         if (what == 'isolation') {
             tra.hide_noauth();
         }