customizable support icon finalized
[brisk.git] / web / commons.js
index 99a2983..4cf95dc 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  brisk - commons.js
  *
- *  Copyright (C) 2006-2011 Matteo Nastasi
+ *  Copyright (C) 2006-2012 Matteo Nastasi
  *                          mailto: nastasi@alternativeoutput.it 
  *                                  matteo.nastasi@milug.org
  *                          web: http://www.alternativeoutput.it
@@ -38,12 +38,29 @@ var mlang_commons = { 'imgload_a' : { 'it' : 'Immagine caricate ',
                       'btn_sit'   : { 'it' : 'Mi siedo.',
                                       'en' : 'Sit down.' },
                       'btn_exit'  : { 'it' : 'Esco.',
-                                      'en' : 'Exit.' }
-                      
-                      };
+                                      'en' : 'Exit.' },
+                      'tit_list'  : { '0'  : { 'it' : '',
+                                               'en' : '' },
+                                      '1'  : { 'it' : '(solo aut.)',
+                                               'en' : '(only aut.)' },
+                                      '2'  : { 'it' : '(isolam.to)',
+                                               'en' : '(isolation)' } }
+                    };
 
 function $(id) { return document.getElementById(id); }
 
+function dec2hex(d, padding)
+{
+    var hex = Number(d).toString(16);
+    padding = typeof (padding) === "undefined" || padding === null ? padding = 2 : padding;
+
+    while (hex.length < padding) {
+        hex = "0" + hex;
+    }
+
+    return hex;
+}
+
 function getStyle(x,IEstyleProp, MozStyleProp) 
 {
     if (x.currentStyle) {
@@ -235,8 +252,10 @@ function safestatus(a)
 }
 
 function createXMLHttpRequest() {
-    try { return new ActiveXObject("Msxml2.XMLHTTP");    } catch(e) {}
-    try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
+    if (typeof(ActiveXObject) != 'undefined') { // Konqueror complain as unknown object
+        try { return new ActiveXObject("Msxml2.XMLHTTP");    } catch(e) {}
+        try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
+    }
     try { return new XMLHttpRequest();                   } catch(e) {}
     alert("XMLHttpRequest not supported");
     return null;
@@ -266,17 +285,28 @@ function send_mesg(mesg)
 }
 
 /*
-  request to server
+  sync request to server
   server_request([arg0=arg1[, arg2=arg3[, ...]]])
+  if var name == '__POST__' than all other vars will be managed as POST content
+                                 and the call will be a POST
  */
 function server_request()
 {
     var xhr_wr = createXMLHttpRequest();
-    var i, collect = "";
+    var i, collect = "", post_collect = null, is_post = false;
 
     if (arguments.length > 0) {
         for (i = 0 ; i < arguments.length ; i+= 2) {
-            collect += (i == 0 ? "" : "&") + arguments[i] + "=" + encodeURIComponent(arguments[i+1]);
+            if (arguments[i] == "__POST__") {
+                is_post = true;
+                post_collect = "";
+                i -= 1;
+                continue;
+            }
+            if (is_post)
+                post_collect += (post_collect == "" ? "" : "&") + arguments[i] + "=" + encodeURIComponent(arguments[i+1]);
+            else
+                collect += (i == 0 ? "" : "&") + arguments[i] + "=" + encodeURIComponent(arguments[i+1]);
         }
     }
     // alert("Args: "+arguments.length);
@@ -285,9 +315,15 @@ function server_request()
     
     // console.log("server_request:preresp: "+xhr_wr.responseText);
 
-    xhr_wr.open('GET', 'index_wr.php?'+(is_conn ? 'sess='+sess+'&' : '')+collect, false);
+    if (is_post) {
+        xhr_wr.open('POST', 'index_wr.php?'+(is_conn ? 'sess='+sess+'&' : '')+collect, false);
+        xhr_wr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
+    }
+    else {
+        xhr_wr.open('GET', 'index_wr.php?'+(is_conn ? 'sess='+sess+'&' : '')+collect, false);
+    }
     xhr_wr.onreadystatechange = function() { return; };
-    xhr_wr.send(null);
+    xhr_wr.send(post_collect);
     
     if (xhr_wr.responseText != null) {
         // console.log("server_request:resp: "+xhr_wr.responseText);
@@ -811,7 +847,7 @@ function user_dec_and_state(el)
     var val_el;
 
     content = user_decorator(el);
-    content += state_add(el[0]);
+    content += state_add(el[0],(typeof(el[2]) != 'undefined' ? el[2] : null));
     
     return (content);
 }