update info form with new Fieldify, use on-change callback to manage friendship subfo...
[brisk.git] / web / info.js
index 8a3a73d..bd2a281 100644 (file)
@@ -25,6 +25,17 @@ var mlang_info = { 'btn_close' : { 'it' : 'Chiudi.',
                                    'en' : 'Close.' }
                  };
 
+function info_onlyifknown_isvisible_cb(item)
+{
+    var vis = 'inherit';
+
+    if (item.value == 'black' || item.value == 'unknown') {
+        vis = 'hidden';
+    }
+
+    $('info').getElementsByClassName('onlyifknown_gid')[0].style.visibility = vis;
+    return true;
+}
 
 function info_fld(dobj)
 {
@@ -47,7 +58,7 @@ function info_fld(dobj)
                    match: { type: 'value', perms: 'ro' },
                    game: { type: 'value', perms: 'ro' },
                    party: { type: 'value', perms: 'ro' },
-                   friend: { type: 'radio' },
+                   friend: { type: 'radio', cb: info_onlyifknown_isvisible_cb },
                    skill: { type: 'radio' },
                    trust: { type: 'radio' }
                  };
@@ -66,7 +77,6 @@ function info_show(username)
     if (info_in.ret == 0) {
         info = info_fld($('info'));
         info.json2dom(info_in);
-        info_onlyifknown_isvisible();
         info.visible(true);
         }
     else {
@@ -108,25 +118,3 @@ function info_save()
         alert(ret);
     }
 }
-function info_onlyifknown_isvisible()
-{
-    var vis = 'inherit';
-    var arr = Fieldify.get_dom_elements([$('info')], 'friend');
-    var obj = null;
-
-    for (var k = 0 ; k < arr.length ; k++) {
-        if (arr[k].checked == true) {
-            obj = arr[k];
-            break;
-        }
-    }
-    if (obj == null) {
-        return false;
-    }
-
-    if (obj.value == 'black' || obj.value == 'unknown') {
-        vis = 'hidden';
-    }
-    $('info').getElementsByClassName('onlyifknown_gid')[0].style.visibility = vis;
-    return true;
-}