read terms-of-service from file
[brisk.git] / web / commons.js
index 192094d..a38a36c 100644 (file)
@@ -44,7 +44,10 @@ var mlang_commons = { 'imgload_a' : { 'it' : 'Immagini caricate ',
                                       '1'  : { 'it' : '(solo aut.)',
                                                'en' : '(only aut.)' },
                                       '2'  : { 'it' : '(isolam.to)',
-                                               'en' : '(isolation)' } }
+                                               '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 ?'
+                                    }
                     };
 
 function $(id) { return document.getElementById(id); }
@@ -473,6 +476,38 @@ function postact_logout()
     document.location.assign("index.php");
 }
 
+/*
+  type - 'hard' or 'soft'
+  code - if soft: accept (0), refuse (1), after (2)
+         if hard: accept (0), refuse (1)
+ */
+function act_licencemgr(type, code, lice_curr, lice_vers)
+{
+    if (type != "soft" && type != "hard") {
+        return false;
+    }
+    switch (code) {
+    case 0:
+    case 1:
+        send_mesg("licencemgr|"+type+"|"+code+"|"+lice_curr+"|"+lice_vers);
+        break;
+    case 2:
+        break;
+    default:
+        break;
+    }
+    return true;
+}
+
+function lice_confirm(val)
+{
+    if (val == 1) {
+        return (window.confirm(mlang_commons['lic_refu'][g_lang]));
+    }
+
+    return true;
+}
+
 /*
   function slowimg(img,x1,y1,deltat,free,action,srcend)
   img    - image to move
@@ -613,6 +648,162 @@ function div_show(div)
     div.style.visibility = "visible";
 }
 
+/*
+  st
+  text
+  tout: if < 0 => infinite
+  butt: [ strings ]
+  w:
+  h:
+  is_opa:
+  block_time:
+  */
+
+function notify_document(st, text, tout, butt, confirm_func, w, h, is_opa, block_time)
+{
+    var i, clo, clodiv_ctx, clodiv_wai, box;
+
+    this.st = st;
+
+    this.ancestor = document.body;
+    this.confirm_func = confirm_func;
+
+    this.st.st_loc_new++;
+
+    clodiv_ctx = document.createElement("div");
+    clodiv_ctx.className = "notify_clo";
+
+    for (i = 0 ; i < butt.length ; i++) {
+        this.input_add(butt[i], i, this.hide, clodiv_ctx);
+    }
+
+    if (block_time > 0) {
+        clodiv_wai = document.createElement("div");
+        clodiv_wai.className = "notify_clo";
+
+        this.input_add("leggere, prego.", 0, null, clodiv_wai);
+        this.clodiv = clodiv_wai;
+        this.clodiv_pkg = clodiv_ctx;
+        clodiv_ctx.style.display = 'none';
+    }
+    else {
+        this.clodiv = clodiv_ctx;
+    }
+
+    cont = document.createElement("div");
+
+    cont.style.borderBottomStyle = "solid";
+    cont.style.borderBottomWidth = "1px";
+    cont.style.borderBottomColor = "gray";
+    cont.style.height = (h - 30)+"px";
+    cont.style.overflow = "auto";
+    cont.style.fontFamily = "monospace";
+    cont.innerHTML = text;
+
+    box =  document.createElement("div");
+    if (is_opa)
+        box.className = "notify_opaque";
+    else
+        box.className = "notify";
+
+    box.style.zIndex = 200;
+    box.style.width  = w+"px";
+    box.style.marginLeft  = -parseInt(w/2)+"px";
+    box.style.height = h+"px";
+    box.style.top = parseInt((document.body.clientHeight - h) / 2) + document.body.scrollTop;
+    box.appendChild(cont);
+    box.appendChild(this.clodiv);
+    box.style.visibility = "visible";
+
+    this.notitag = box;
+
+    this.ancestor.appendChild(box);
+
+    if (tout > 0) {
+        this.toutid = setTimeout(function(obj){ obj.unblock(); }, tout, this);
+    }
+
+    if (block_time != 0) {
+        this.tblkid = setTimeout(function(obj){ obj.notitag.removeChild(obj.clodiv); obj.clodiv = obj.clodiv_pkg; obj.clodiv.style.display = '';  obj.notitag.appendChild(obj.clodiv); }, block_time, this);
+    }
+}
+
+notify_document.prototype = {
+    ancestor: null,
+    st: null,
+    notitag: null,
+    toutid: null,
+    clo: null,
+
+    clodiv: null,
+    clodiv_pkg: null,
+
+    butt: null,
+    tblkid: null,
+
+    confirm_func: null,
+
+    ret: -1,
+
+    /*
+      s:          button string
+      idx:        button index
+      onclick_cb: name of the onclick callback (with signature f(idx) ) or null
+      anc:        parent dom object
+
+      return new button dom object
+      */
+    input_add: function(s, idx, onclick_cb, anc)
+    {
+        var clo;
+
+        clo = document.createElement("input");
+        clo.type    = "submit";
+        clo.className = "button";
+        clo.style.bottom = "4px";
+        clo.style.margin = "2px";
+        clo.obj     = this;
+        clo.obj_idx = idx;
+        clo.value   = s;
+        if (onclick_cb)
+            clo.onclick = function () { onclick_cb.call(this.obj, this.obj_idx); };
+
+        formsub_hilite(clo);
+        anc.appendChild(clo);
+
+        return (clo);
+    },
+
+    ret_get: function()
+    {
+        // alert("quiz: "+this.rett);
+        return this.ret;
+    },
+
+    unblock: function()
+    {
+       if (this.st.st_loc < this.st.st_loc_new) {
+           this.st.st_loc++;
+       }
+    },
+
+    hide: function(val)
+    {
+        if (this.confirm_func != null) {
+            if (this.confirm_func(val) == false) {
+                return false;
+            }
+        }
+        this.ret = val;
+       clearTimeout(this.toutid);
+       this.ancestor.removeChild(this.notitag);
+       this.unblock();
+    }
+}
+
+
+
+
 function notify_ex(st, text, tout, butt, w, h, is_opa, block_time)
 {
     var clo, box;
@@ -635,7 +826,7 @@ function notify_ex(st, text, tout, butt, w, h, is_opa, block_time)
     }
     else {
         clo.value = butt;
-        clo.onclick = this.input_hide;
+        clo.onclick = function () { this.obj.hide() };
     }
 
     clodiv = document.createElement("div");
@@ -676,7 +867,7 @@ function notify_ex(st, text, tout, butt, w, h, is_opa, block_time)
     this.toutid = setTimeout(function(obj){ obj.unblock(); }, tout, this);
 
     if (block_time != 0) {
-        this.tblkid = setTimeout(function(obj){ obj.clo.value = obj.butt; obj.clo.onclick = obj.input_hide; formsub_hilite(obj.clo); obj.clo.focus(); }, block_time, this);
+        this.tblkid = setTimeout(function(obj){ obj.clo.value = obj.butt; obj.clo.onclick = function () { this.obj.hide() }; formsub_hilite(obj.clo); obj.clo.focus(); }, block_time, this);
     }
     else {
         formsub_hilite(clo);
@@ -708,13 +899,6 @@ notify_ex.prototype = {
        clearTimeout(this.toutid);
        this.ancestor.removeChild(this.notitag);
        this.unblock();
-    },
-
-    input_hide: function()
-    {
-       clearTimeout(this.obj.toutid);
-       this.obj.ancestor.removeChild(this.obj.notitag);
-       this.obj.unblock();
     }
 }