update 'ws_msg' content
[brisk.git] / web / commons.js
index 6e39606..62d3330 100644 (file)
@@ -130,7 +130,7 @@ function getStyle(x,IEstyleProp, MozStyleProp)
                var fo = function () {                                                          
                    fn.apply(window,param);
                };                      
-               return nativeSetTimeout(fo,ms); 
+               return nativeSetTimeout(fo,ms);
            })(fn,ms,param);
        }
        else if(typeof(fn)=='string')
@@ -264,11 +264,34 @@ function createXMLHttpRequest() {
     return null;
 }
 
-function send_mesg(mesg)
+function send_mesg(mesg, content)
 {
-    var xhr_wr = createXMLHttpRequest();
     var is_conn = (sess == "not_connected" ? false : true);
 
+    if (is_conn && xstm && xstm.transp_type.startsWith('websocket')) {
+        if (typeof(content) != 'undefined') {
+            mesg = mesg + content;
+        }
+        var target = window.location.href.substring(0,
+            window.location.href.lastIndexOf('/') + 1) + 'index_wr.php';
+        var ws_msg = JSON.stringify({
+            target: target,
+            mesg: mesg,
+            stp:gst.st,
+            sess:sess,
+            table_idx: readCookie("table_idx"),
+            table_token: readCookie("table_token"),
+            lang: readCookie("lang")
+            });
+        // console.log(ws_msg);
+        xstm.transp.ws.send(ws_msg);
+    }
+    else {
+    var xhr_wr = createXMLHttpRequest();
+
+    if (typeof(content) != 'undefined') {
+        mesg = mesg + encodeURIComponent(content);
+    }
     // alert("xhr_wr: "+xhr_wr+"  is_conn: "+is_conn);
     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());
@@ -285,6 +308,7 @@ function send_mesg(mesg)
             eval(xhr_wr.responseText);
         }
     }
+    }
 }
 
 /*
@@ -331,7 +355,7 @@ function server_request()
     if (xhr_wr.responseText != null) {
         // console.log("server_request:resp: "+xhr_wr.responseText);
         return (xhr_wr.responseText);
-    } 
+    }
     else
         return (null);
 }
@@ -362,7 +386,7 @@ function act_chatt(value)
         info_show(value.substring(6));
     }
     else {
-        send_mesg("chatt|"+encodeURIComponent(value));
+        send_mesg("chatt|", value);
     }
     /*
     obj.disabled = true;
@@ -411,7 +435,7 @@ function act_mesgtoadm()
 
 function act_tav()
 {
-    act_chatt('/tav '+$('txt_in').value); 
+    act_chatt('/tav '+$('txt_in').value);
     $('txt_in').value = '';
 }
 
@@ -468,7 +492,7 @@ function act_shutdown()
 function postact_logout()
 {
     // alert("postact_logout");
-    try { 
+    try {
        xstm.abort();
     } catch (e) {}
 
@@ -555,7 +579,7 @@ function slowimg(img,x1,y1,deltat,free,action,srcend) {
 }
 
 slowimg.prototype = {
-    img: null, 
+    img: null,
     st: null,
     x0: 0,
     y0: 0,
@@ -585,7 +609,7 @@ slowimg.prototype = {
     },
 
 
-    settime: function(time) 
+    settime: function(time)
     {
        this.time = (time < this.deltat ? this.deltat : time);
        this.step_n = parseInt(this.time / this.deltat);
@@ -900,7 +924,7 @@ notify_ex.prototype = {
     notitag: null,
     toutid: null,
     clo: null,
-    clodiv: null, 
+    clodiv: null,
     butt: null,
     tblkid: null,
 
@@ -997,7 +1021,7 @@ function remark_off()
 function italizer(ga)
 {
     var pre, pos;
-    if (ga[0] & 2) 
+    if (ga[0] & 2)
         return "<i>"+ga[1]+"</i>";
     else
         return ga[1];
@@ -1146,12 +1170,12 @@ function onunload_cb () {
 function room_checkspace(emme,tables,inpe)
 {
     nome = "<b>";
-    for (i = 0 ; i < emme ; i++) 
+    for (i = 0 ; i < emme ; i++)
        nome += "m";
     nome += "</b>";
 
     alta = "";
-    for (i = 0 ; i < 5 ; i++) 
+    for (i = 0 ; i < 5 ; i++)
        alta += nome+"<br>";
 
     for (i = 0 ; i < tables ; i++) {