replaced guar with info command and add user double click to obtain the same result
[brisk.git] / web / commons.js
index a38a36c..b3c6138 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  brisk - commons.js
  *
- *  Copyright (C) 2006-2012 Matteo Nastasi
+ *  Copyright (C) 2006-2015 Matteo Nastasi
  *                          mailto: nastasi@alternativeoutput.it 
  *                                  matteo.nastasi@milug.org
  *                          web: http://www.alternativeoutput.it
@@ -45,8 +45,8 @@ var mlang_commons = { 'imgload_a' : { 'it' : 'Immagini caricate ',
                                                'en' : '(only aut.)' },
                                       '2'  : { 'it' : '(isolam.to)',
                                                'en' : '(isolation)' } },
-                      'lic_refu'  : { 'it' : 'Rifiutando di sottoscrivere la nuova licenza d\' uso non ti sarà più possibile accedere col tuo utente registrato al sito, sei proprio sicuro di non voler accettare le nuove condizioni d\'uso ?',
-                                      'en' : 'EN Rifiutando di sottoscrivere la nuova licenza d\' uso non ti sarà più possibile accedere col tuo utente registrato al sito, sei proprio sicuro di non voler accettare le nuove condizioni d\'uso ?'
+                      'tos_refu'  : { 'it' : 'Rifiutando di sottoscrivere i nuovi termini del servizio non ti sarà più possibile accedere come utente registrato al sito, sei proprio sicuro di voler rifiutare le nuove condizioni d\'uso ?',
+                                      'en' : 'EN Rifiutando di sottoscrivere i nuovi termini del servizio non ti sarà più possibile accedere come utente registrato al sito, sei proprio sicuro di voler rifiutare le nuove condizioni d\'uso ?'
                                     }
                     };
 
@@ -145,7 +145,7 @@ function getStyle(x,IEstyleProp, MozStyleProp)
 
 })()
 
-function addEvent(obj,type,fn)
+function addEvent(obj, type, fn)
 {
     if (obj.addEventListener) {
         obj.addEventListener( type, fn, false);
@@ -270,7 +270,7 @@ function send_mesg(mesg)
     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.open('GET', 'index_wr.php?&'+(is_conn ? 'sess='+sess : '')+'&stp='+gst.st+'&mesg='+mesg, (is_conn ? true : false));
     xhr_wr.setRequestHeader("If-Modified-Since", new Date().toUTCString());
     xhr_wr.onreadystatechange = function() { return; };
     if (typeof(g_debug) == 'number' && g_debug > 0
@@ -358,7 +358,12 @@ function chatt_checksend(obj,e)
 }
 function act_chatt(value)
 {
-    send_mesg("chatt|"+encodeURIComponent(value));
+    if (value.substring(0, 6) == "/info ") {
+        show_user_info(value.substring(6));
+    }
+    else {
+        send_mesg("chatt|"+encodeURIComponent(value));
+    }
     /*
     obj.disabled = true;
     obj.value = "";
@@ -469,7 +474,7 @@ function postact_logout()
 {
     // alert("postact_logout");
     try { 
-       hstm.abort();
+       xstm.abort();
     } catch (e) {}
 
     // eraseCookie("sess");
@@ -478,10 +483,10 @@ function postact_logout()
 
 /*
   type - 'hard' or 'soft'
-  code - if soft: accept (0), refuse (1), after (2)
-         if hard: accept (0), refuse (1)
+  code - if soft: accept (0), refuse (1), download (2), later (3)
+         if hard: accept (0), refuse (1), download (2)
  */
-function act_licencemgr(type, code, lice_curr, lice_vers)
+function act_tosmgr(type, code, tos_curr, tos_vers)
 {
     if (type != "soft" && type != "hard") {
         return false;
@@ -489,23 +494,33 @@ function act_licencemgr(type, code, lice_curr, lice_vers)
     switch (code) {
     case 0:
     case 1:
-        send_mesg("licencemgr|"+type+"|"+code+"|"+lice_curr+"|"+lice_vers);
+        send_mesg("tosmgr|"+type+"|"+code+"|"+tos_curr+"|"+tos_vers);
         break;
     case 2:
         break;
     default:
         break;
     }
+
     return true;
 }
 
-function lice_confirm(val)
+function tos_confirm(val, url)
 {
-    if (val == 1) {
-        return (window.confirm(mlang_commons['lic_refu'][g_lang]));
-    }
+    var dlm;
 
-    return true;
+    switch (val) {
+    case 1:
+        return (window.confirm(mlang_commons['tos_refu'][g_lang]));
+        break;
+    case 2:
+        dlm = new download_mgr(url);
+        return false;
+        break;
+    default:
+        return true;
+        break;
+    }
 }
 
 /*
@@ -659,7 +674,7 @@ function div_show(div)
   block_time:
   */
 
-function notify_document(st, text, tout, butt, confirm_func, w, h, is_opa, block_time)
+function notify_document(st, text, tout, butt, confirm_func, confirm_func_args, w, h, is_opa, block_time)
 {
     var i, clo, clodiv_ctx, clodiv_wai, box;
 
@@ -667,7 +682,7 @@ function notify_document(st, text, tout, butt, confirm_func, w, h, is_opa, block
 
     this.ancestor = document.body;
     this.confirm_func = confirm_func;
-
+    this.confirm_func_args = confirm_func_args;
     this.st.st_loc_new++;
 
     clodiv_ctx = document.createElement("div");
@@ -695,8 +710,10 @@ function notify_document(st, text, tout, butt, confirm_func, w, h, is_opa, block
     cont.style.borderBottomStyle = "solid";
     cont.style.borderBottomWidth = "1px";
     cont.style.borderBottomColor = "gray";
-    cont.style.height = (h - 30)+"px";
+    cont.style.height = (h - 50)+"px";
     cont.style.overflow = "auto";
+    cont.style.textAlign = "left";
+    cont.style.padding = "8px";
     cont.style.fontFamily = "monospace";
     cont.innerHTML = text;
 
@@ -742,6 +759,7 @@ notify_document.prototype = {
     tblkid: null,
 
     confirm_func: null,
+    confirm_func_args: [],
 
     ret: -1,
 
@@ -790,7 +808,11 @@ notify_document.prototype = {
     hide: function(val)
     {
         if (this.confirm_func != null) {
-            if (this.confirm_func(val) == false) {
+            var args;
+
+            args = [ val ].concat(this.confirm_func_args);
+
+            if (this.confirm_func.apply(null, args) == false) {
                 return false;
             }
         }
@@ -913,12 +935,6 @@ function notify(st, text, tout, butt, w, h)
     notify_ex.call(this, st, text, tout, butt, w, h, false, 0);
 }
        
-
-function $(id) { 
-    return document.getElementById(id); 
-}
-
-
 function globst() {
     this.st = -1;
     this.st_loc = -1;
@@ -1013,12 +1029,24 @@ var chatt_lines_n = 0;
 
 var CHATT_MAXLINES = 40;
 
-function user_decorator(user)
+function user_decorator(user, is_real)
 {
-    var name;
-    var flags = user[0];
-    if ((flags & 0x03) != 0)
-        name = "<span class='au" + (flags & 0x03) + "'>"+user[1]+"</span>";
+    var name, i, sp = "", cl = "";
+    var flags = user[0] & 0x03 | ((user[0] & 0x0c0000) >> 16);
+
+    // console.log(user[1]+" FLAGS: "+flags);
+
+    for (i = 0 ; i < 4 ; i++) {
+        if (flags & (1 << i)) {
+            cl += sp + "au" + i;
+            sp = " ";
+        }
+    }
+
+    if (flags != 0)
+        name = "<span class='" + cl + "'><span class='" +
+        (is_real && (flags & 0xfffffe) ? "id_usr" : "") +
+        "'>"+user[1]+"</span></span>";
     else
         name = user[1];
 
@@ -1030,7 +1058,7 @@ function user_dec_and_state(el)
     var content = "";
     var val_el;
 
-    content = user_decorator(el);
+    content = user_decorator(el, true);
     content += state_add(el[0],(typeof(el[2]) != 'undefined' ? el[2] : null));
     
     return (content);
@@ -1045,7 +1073,7 @@ function chatt_sub(dt,data,str)
     var flags;
     var isauth;
     var bolder = [ (data[0] | 1), data[1] ];
-    name = user_decorator(bolder);
+    name = user_decorator(bolder, false);
 
     if ($("txt").scrollTop + parseInt(getStyle($("txt"),"height", "height")) -  $("txt").scrollHeight >= 0)
         must_scroll = true;
@@ -1092,8 +1120,10 @@ function readCookie(name) {
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
                var c = ca[i];
-               while (c.charAt(0)==' ') c = c.substring(1,c.length);
-               if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
+               while (c.charAt(0)==' ')
+                    c = c.substring(1,c.length);
+               if (c.indexOf(nameEQ) == 0)
+                    return c.substring(nameEQ.length,c.length);
        }
        return null;
 }
@@ -1108,8 +1138,8 @@ function onbeforeunload_cb () {
 
 function onunload_cb () {
     
-    if (typeof(hstm) != "undefined")
-        hstm.the_end = true; 
+    if (typeof(xstm) != "undefined")
+        xstm.the_end = true;
 
     act_shutdown();
     
@@ -1209,38 +1239,20 @@ function topbanner_cb()
     // console.log("A: "+a+"  B: "+b);
 }
 
-function sidebanner_init()
+function sidebanner_init(idx)
 {
-    setInterval(sidebanner_cb, 666);
-}
-
-function sidebanner2_init()
-{
-    setInterval(sidebanner2_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);
+    setInterval(function () { sidebanner_cb(idx); }, 666);
 }
 
-function sidebanner2_cb()
+function sidebanner_cb(idx)
 {
     var a, b;
 
-    a = $('sidebanner2').style.backgroundColor;
-    b = $('sidebanner2').style.borderLeftColor;
+    a = $('sidebanner'+idx).style.backgroundColor;
+    b = $('sidebanner'+idx).style.borderLeftColor;
 
-    $('sidebanner2').style.backgroundColor = b;
-    $('sidebanner2').style.borderColor = a+" "+a+" "+a+" "+a;
+    $('sidebanner'+idx).style.backgroundColor = b;
+    $('sidebanner'+idx).style.borderColor = a+" "+a+" "+a+" "+a;
 
     // console.log("A: "+a+"  B: "+b);
 }
@@ -1389,3 +1401,28 @@ function url_complete(parent, url)
         return (host+path+url);
     }
 }
+
+function download_mgr(url)
+{
+    var ifra;
+
+    if ((ifra = $('the_downloader')) == null) {
+        ifra = document.createElement("iframe");
+        ifra.style.display = "none";
+        ifra.id = 'the_downloader';
+        document.body.appendChild(ifra);
+    }
+
+    ifra.contentWindow.location.href = url;
+
+    this.ifra = ifra;
+}
+
+download_mgr.prototype = {
+    ifra: null
+}
+
+function submit_click(obj)
+{
+    obj.form.elements['realsub'].value = obj.id;
+}