/**
* license (MIT) Copyright Nubisa Inc. 2014
* JXM.io vJXMAPI_VERSION */
(function(){
function jxcore(){}
jxcore.encMode='$$encMode$$';
jxcore.clientNamespace='$$clientNamespace$$';
jxcore.clientExternal=$$clientExternal$$;
jxcore.Unique='0';
jxcore.Socket = null;
jxcore.OnError = null;
jxcore.IsConnected = false;
var _ua=navigator.userAgent;
jxcore.isMozilla=/Firefox/i.test(_ua);
jxcore.ffVersion = 0;
jxcore.ieVersion=0;
jxcore.isIE = /MSIE/i.test(_ua);
jxcore.isAndroid = /Android/i.test(_ua);
jxcore.hasWebsocket = ('WebSocket' in window || 'MozWebSocket' in window);
jxcore.AndroidVersion = _ua.match(/android (; Release\/)?(\d+(?:\.\d+)+);/i);
if (jxcore.isAndroid && jxcore.AndroidVersion && jxcore.AndroidVersion.length > 2) {
/* the [2] index contains the number e.g.: 4.1.2 */
/* websocket are not supported on android < 4.4 */
var av = jxcore.AndroidVersion[2].split('.');
if (av[0] < 4 || (av[0] == 4 && av[1] < 4))
jxcore.hasWebsocket = false;
av = null;
}
jxcore.isIOS = /iPhone|iPad|iPod/i.test(_ua);
jxcore.isOpera = /Opera/i.test(_ua);
jxcore.isChrome = /Chrome/i.test(_ua);
jxcore.isSafari = /Safari/i.test(_ua) && !jxcore.isChrome;
jxcore.isIE = jxcore.isIE || (!jxcore.isMozilla && !jxcore.isAndroid && !jxcore.isIOS && !jxcore.isOpera && !jxcore.isSafari);
if(jxcore.isIE){
jxcore.isIE6 = /MSIE 6/i.test(_ua);
jxcore.isIE8 = /MSIE 8/i.test(_ua);
jxcore.isIE7 = /MSIE 7/i.test(_ua);
jxcore.isIE9 = /MSIE 9/i.test(_ua);
jxcore.isIE10 = /MSIE 10/i.test(_ua);
jxcore.isIE11 = navigator.appName === "Netscape" && /Trident/i.test(_ua) && /rv\:11/i.test(_ua);
jxcore.ieVersion = (jxcore.isIE8) ? 8 : (jxcore.isIE7) ? 7 : (jxcore.isIE6) ? 6 : (jxcore.isIE9) ? 9 : (jxcore.isIE10) ? 10 : 11;
}
else if(jxcore.isMozilla){
/* just takes the first number, e.g. from 4.0.1 it takes 4 */
jxcore.ffVersion = _ua.match(/Firefox\/(\d+)/)[1];
}
jxcore.socketEnum = { MozWebSocket : 1, WebSocket : 2 };
jxcore.ajaxEnum = { XDomainRequest : 1, XMLHttpRequest: 2, MicrosoftXMLHTTP : 3, Msxml2XMLHTTP :4 };
jxcore.currentConnectionMode = { socket: null, ajax: null };
jxcore.LTimeout = $$listenerTimeout$$;
jxcore.ReConnCounter = 0;
jxcore.Chunked = (jxcore.ffVersion > 0 || jxcore.isChrome || jxcore.isOpera || jxcore.isSafari || jxcore.isIE11) || ($$chunked$$ && (jxcore.ieVersion==0 || jxcore.ieVersion>8) ); /* for FF chunked should be true */
jxcore.MessageCount = 0;
jxcore.CMode = jxcore.Chunked?3:4;
jxcore.ListenActive = false;
jxcore.RequestList = { s: {}, l: {}, sc: 0, sn: 0, ready: true, force_false: false };
jxcore.currentScript = null;
jxcore.findScript = function() {
if (jxcore.currentScript)
return jxcore.currentScript;
var elm = document.getElementsByTagName("script");
var oe = null;
for (var o in elm) {
oe = elm[o];
if (oe == null) {
continue;
}
try {
if (oe.src.indexOf("ms=connect") > 0) {
jxcore.currentScript = oe;
return jxcore.currentScript;
}
} catch(e) {
}
}
return null;
};
jxcore.DateTo = function (dt) {
var h = dt.getHours();
if (parseInt(h) < 10) { h = "0" + h; }
var m = dt.getMinutes();
if (parseInt(m) < 10) { m = "0" + m; }
var s = dt.getSeconds();
if (parseInt(s) < 10) { s = "0" + s; }
var mm = dt.getMonth()+1;
if (parseInt(mm) < 10) { mm = "0" + mm; }
var dd = dt.getDate();
if (parseInt(dd) < 10) { dd = "0" + dd; }
return dt.getFullYear() + "-" + mm + "-" + dd + "T" + h + ":" + m + ":" + s;
};
jxcore.toJSON = function(obj) {
var js = [];
var isArray = false, isObject = false;
var type = Object.prototype.toString.call(obj);
if (obj === null || type === '[object Null]' || type === "[object Undefined]") {
return "null";
} else
if (type === '[object Array]') {
isArray = true;
js.push("[");
}
else if (type === '[object Object]') {
isObject = true;
js.push("{");
}
else {
if (obj.substr) {
return '"' + obj.replace(/"/g,"Ɛ").replace(/\n/g,"Ə").replace(/[\\]/g, '\\\\')
.replace(/[+]/g,"+") + '"';
}
else if (obj.toUTCString) {
return '"' + jxcore.DateTo( obj ) + '"';
}
return obj.toString();
}
var isFirst = true;
for (var o in obj) {
if (isFirst) {
isFirst = false;
} else {
js.push(",");
}
if (!isArray) {
js.push('"' + o + '":' + jxcore.toJSON(obj[o]));
}
else
{
js.push(jxcore.toJSON(obj[o]));
}
}
return js.join("") + ( (isArray) ? "]" : (isObject) ? "}" : "");
};
jxcore.Callbacks = [];
jxcore.Call = function(methodName, json, cb, clientCB){
if(!methodName || !methodName.length) {
var errCode = 7; /* null or empty method name */
if (cb) {
cb(null, errCode);
return;
} else {
throw "Error no " + errCode;
}
}
var str = '{"m":"'+methodName+'"';
if(json){
str += ',"p":' + jxcore.toJSON(json);
}
if(cb){
jxcore.Callbacks.push( {cb : cb, methodName: methodName, json : json, clientCB : clientCB } );
str += ',"i":' + (jxcore.Callbacks.length).toString();
}
str += "}";
jxcore.Send(encodeURIComponent(str));
};
jxcore.call = jxcore.Call; /*alias*/
jxcore.enc = null;
jxcore.Subscribe = function(group, cb){
if(group && group.length){
jxcore.Call("nb.ssTo", {gr:group, en:jxcore.enc}, function(r, err, cbData, clientCB){
if (!err) {
jxcore.enc = r.key;
if (r.did !== null) {
jxcore.dataId = r.did;
}
}
if(clientCB){
var gr = cbData && cbData.gr ? cbData.gr : null;
clientCB(gr, err);
}
}, cb);
}
else {
var errCode = 6; /* must be non-empty string*/
if (cb) {
cb(group, errCode);
} else {
throw "Error no " + errCode;
}
}
};
jxcore.Unsubscribe = function(group, cb){
if (!jxcore.enc) {
var errCode = 2; /* not belonging to any group */
if (cb) {
cb(group, errCode);
} else {
throw "Error no " + errCode;
}
return;
}
if(group && group.length){
jxcore.Call("nb.unTo", {gr:group, en:jxcore.enc}, function(r, err, cbData, clientCB){
if (!err) {
jxcore.enc = r.key;
}
if(clientCB){
var gr = cbData && cbData.gr ? cbData.gr : null;
clientCB(gr, err);
}
}, cb);
}
else {
var errCode = 6; /* must be non-empty string*/
if (cb) {
cb(group, errCode);
} else {
throw "Error no " + errCode;
}
}
};
jxcore.SendToGroup = function(groupName, methodName, json, cb){
if(!groupName){
groupName="ALL";
}
if (cb) {
jxcore.Call("nb.stGr", {key:jxcore.enc, gr:groupName, m:methodName, j:json}, function(r, err, cbData, clientCB){
if(clientCB){
clientCB(err);
}
}, cb);
} else {
jxcore.Call("nb.stGr", {key:jxcore.enc, gr:groupName, m:methodName, j:json});
}
};
jxcore.Custom = {};
jxcore.dataId = null;
jxcore.ActualCallbackId = 0;
window.$NB = function(a)
{
if(!a){
return;
}
if (Object.prototype.toString.call(a) != '[object Array]') {
a = [a];
}
for(var o in a){
if(!o){
continue;
}
var p = a[o].o;
if(!p){
continue;
}
if(a[o].i){
jxcore.dataId = a[o].i;
}
if(p.m){
if (window[p.m]) {
window[p.m](p.p);
}
else{
jxcore.Notify(p.m + " method doesn't exist");
}
}else if (p.i && p.i < 0) {
jxcore.sscall(p.i, p.p);
}
else if(p.i){
var arg1 = p.p.nb_err ? null : p.p;
var arg2 = p.p.nb_err ? p.p.nb_err : false;
var nb_method = jxcore.Callbacks[p.i-1].methodName.indexOf("nb.") === 0;
var arg3 = nb_method ? jxcore.Callbacks[p.i-1].json : undefined;
var arg4 = nb_method ? jxcore.Callbacks[p.i-1].clientCB : undefined;
jxcore.ActualCallbackId = p.i;
if(jxcore.backup && p.i>jxcore.Callbacks.length){
jxcore.backup[p.i-1].cb(arg1, arg2, arg3, arg4);
jxcore.backup[p.i-1] = null;
}else{
/* on IE6 sometimes there was no callback ? */
if (jxcore.Callbacks[p.i-1]) {
jxcore.Callbacks[p.i-1].cb(arg1, arg2, arg3, arg4);
jxcore.Callbacks[p.i-1] = null;
}
}
if(p.i>9998){
jxcore.backup = jxcore.Callbacks;
jxcore.Callbacks = [];
}
}
}
};
jxcore.IsListenActive = function () {
return jxcore.ListenActive;
};
jxcore.eco = function(_i) {
var xo = [];
var q = 0, ln = _i.length;
do {
var _c1 = _i.charCodeAt(q++);
var _e1 = _c1 >> 2;
xo.push(jxcore._es_.charAt(_e1));
var _c2 = _i.charCodeAt(q++);
var _e2 = ((_c1 & 3) << 4) | (_c2 >> 4);
xo.push(jxcore._es_.charAt(_e2));
var _c3 = _i.charCodeAt(q++);
var _e3 = ((_c2 & 15) << 2) | (_c3 >> 6);
var _e4;
if (isNaN(_c2)) {
_e3 = 64; _e4 = 64;
} else if (isNaN(_c3)) {
_e4 = 64;
}else{
_e4 = _c3 & 63;
}
xo.push(jxcore._es_.charAt(_e3));
xo.push(jxcore._es_.charAt(_e4));
}while (q < ln);
return xo.join("");
};
jxcore.dco = function(_i) {
var xo = [];
if (jxcore._rt.exec(_i)) {
return _i;
}
_i = _i.replace(jxcore._rt, "");
var q = 0, ln=_i.length;
do {
var _e1 = jxcore._es_.indexOf(_i.charAt(q++));
var _e2 = jxcore._es_.indexOf(_i.charAt(q++));
var _cb = (_e1 << 2) | (_e2 >> 4);
xo.push(String.fromCharCode(_cb));
var _e3 = jxcore._es_.indexOf(_i.charAt(q++));
if (_e3 != 64) {
var _ca = ((_e2 & 15) << 4) | (_e3 >> 2);
xo.push(String.fromCharCode(_ca));
}
var _e4 = jxcore._es_.indexOf(_i.charAt(q++));
if (_e4 != 64) {
var _cc = ((_e3 & 3) << 6) | _e4;
xo.push(String.fromCharCode(_cc));
}
}while (q < ln);
return xo.join("");
};
jxcore._es_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv";
jxcore._rt = /[^A-Za-z0-9\+\/\=]/g;
jxcore._es_+="wxyz0123456789+/=";
jxcore.AddEvent = function (_e, _n, _h) {
if (window.attachEvent && !window.addEventListener) {
_e.attachEvent("on" + _n, _h);
}
else {
_e.addEventListener(_n, _h, false);
}
};
jxcore.RemoveEvent = function (_e, _n, _h) {
if (window.detachEvent && !window.removeEventListener) {
_e.detachEvent("on" + _n, _h);
}
else {
_e.removeEventListener(_n, _h, false);
}
};
jxcore.GetClientId = function () {
return jxcore.clid;
};
window._pci_ = jxcore.GetClientId;
jxcore.FCon = 0;
jxcore.Listen = function (cc) {
if (!jxcore.IsConnected || (!cc && jxcore.ListenActive)) {
return false;
}
jxcore.Act("Li1 - cc:"+cc, true);
jxcore._Send(-1, cc);
return true;
};
jxcore.Send = function (mess) {
if (!jxcore.IsConnected) {
return;
}
var _id = jxcore.RequestList.sn++;
jxcore.RequestList.s[_id] = { message: mess, is_send: true };
return _id;
};
jxcore.SendCheckerActive =function() {
setTimeout(function() {
try {
if(jxcore){
jxcore.SendChecker();
}
}catch(e) {
}
},10);
};
jxcore.getDate = function(){
if(Date.now){
return Date.now();
}
else
{
return new Date().valueOf();
}
};
jxcore.failCount = 0;
jxcore.SendChecker = function () {
try {
if (jxcore.ListenActive) {
jxcore.timer = jxcore.getDate();
}
if (jxcore.ListenActive) {
if (jxcore.RequestList.sn > jxcore.RequestList.sc) {
var _pool = jxcore.RequestList.sc;
if (jxcore.RequestList.s[_pool] != null) {
jxcore._Send(_pool);
delete jxcore.RequestList.s[_pool];
}
jxcore.RequestList.sc++;
}
}
if(jxcore.failCount>2){
jxcore.Closed();
return;
}
if (!jxcore.ListenActive && jxcore.IsConnected) {
if (jxcore.getDate() - jxcore.timer > 3000) {
jxcore.timer = jxcore.getDate();
jxcore.Listen(14);
jxcore.failCount++;
}
}
}catch(eo) {
jxcore.Notify(eo, "SendChecker");
}
jxcore.SendCheckerActive();
};
jxcore.fin = false;
jxcore.Close = function (silent) {
jxcore.Closed(1, silent);
};
jxcore.Closed = function (ir, silent) {
if (ir == null) {
setTimeout(function(){jxcore.ReConnect();},0);
if(jxcore.OnClose){
jxcore.OnClose(true);
}
return;
}
if(jxcore.OnClose && !silent){
jxcore.OnClose(false);
}
jxcore.OnError = null;
document.jxcoreWasConnected = jxcore.IsConnected;
document.ListenActive = false;
jxcore.IsConnected = false;
jxcore.Started = false;
try {
jxcore.RequestList.l.connector.abort();
} catch (e) { }
};
document.jxcoreWasConnected = false;
jxcore.Started = false;
jxcore.Start = function (_callback_) {
window.p_callback_ = _callback_;
setTimeout(function () {
if(!jxcore){return;}
if (jxcore.Started) {
return;
}
jxcore.Started = true;
jxcore.RequestList.l = { message: "", is_send: false, connector: null };
jxcore.OnConnected();
jxcore.timer = jxcore.getDate();
jxcore.Listen();
}, 50);
};
jxcore.OnConnected = function () {
jxcore.ReConnCounter = 0;
jxcore.IsConnected = true;
if (window.p_callback_ != null) {
window.p_callback_(true);
}
jxcore.SendCheckerActive();
};
jxcore.HMess = function(mess) {
if (mess != null && mess!="") {
mess = mess.replace(/jxcore.Listen();/g, "");
if (jxcore.OnMessageReceived != null) {
jxcore.OnMessageReceived(mess);
mess += ";if(jxcore.OnMessageExecuted!=null){jxcore.OnMessageExecuted();};";
}
try {
eval(mess.replace(new RegExp("@","g"),"@")
.replace(new RegExp("?","g"),"?")
.replace(new RegExp("+","g"),"+"));
}catch(ee) {
jxcore.Notify(ee, mess);
}
}
};
jxcore.SocketOpen = false;
jxcore.SFirst = [];
jxcore.SocketDisabled = $$socketDisabled$$;
jxcore.SocketURL= null;
jxcore.GoSockets = function(call_id) {
if(jxcore.SocketDisabled) {
return false;
}
if(jxcore.SocketURL==null || !jxcore.hasWebsocket || (jxcore.isIE && jxcore.ieVersion<9)) {
jxcore.SocketDisabled = true;
return false;
}
if(jxcore.Socket==null) {
var uri=jxcore.SocketURL + jxcore.ListenUrl+"?c="+jxcore.clid;
try{
if (window.MozWebSocket) {
jxcore.Socket = new MozWebSocket(uri);
jxcore.currentConnectionMode.socket = "MozWebSocket";
} else if (window.WebSocket) {
jxcore.Socket = new WebSocket(uri);
jxcore.currentConnectionMode.socket = "WebSocket";
} else {
jxcore.SocketDisabled = true;
return false;
}
}catch(_f){
jxcore.Act("21", false);
jxcore.SocketDisabled = true;
return false;
}
jxcore.Socket.onopen = function(ev) {
jxcore.SocketOpen = true;
if(jxcore.SFirst.length>0) {
for (var o in jxcore.SFirst) {
jxcore.Socket.send(jxcore.SFirst[o]);
}
jxcore.SFirst = [];
}
};
jxcore.Socket.onclose = function(ev) {
if(!jxcore.SocketOpen) {
jxcore.SocketDisabled = true;
jxcore.Act("15", false);
jxcore.Listen();
return;
}
jxcore.SocketOpen = false;
jxcore.Socket = null;
setTimeout(function(){if(jxcore){jxcore.Closed();}},5);
};
jxcore.Socket.onerror = function(ev) {
jxcore.Socket = null;
jxcore.SocketDisabled = true;
jxcore.Act("15", false);
jxcore.Notify("Socket error. Falling back to reverse ajax.","");
setTimeout(function() {
jxcore.Listen(1);
if (jxcore.SFirst.length > 0) {
for (var o in jxcore.SFirst) {
if (jxcore.SFirst[o] == null) {
continue;
}
jxcore.Send(jxcore.SFirst[o], false, true);
}
jxcore.SFirst = [];
}
}, 800);
};
jxcore.Socket.onmessage = function(ev) {
try {
/* server sends unescaped */
var data = ev.data;
jxcore.HMess(data);
}catch(ee)
{
jxcore.Notify(ee, ev.data);
}
};
}
if(call_id==-1) {
jxcore.Act("16", true);
return true;
}
if(jxcore.SocketOpen) {
jxcore.Socket.send(jxcore.RequestList.s[call_id].message);
}else {
jxcore.SFirst.push(jxcore.RequestList.s[call_id].message);
}
return true;
};
jxcore.actPos = 0;
jxcore.pasPos = 0;
jxcore.Act = function(pos, act){
if(act){
jxcore.actPos = pos;
}else {
jxcore.pasPos = pos;
}
jxcore.ListenActive = act;
};
jxcore.CORS = jxcore.ieVersion<10 && jxcore.isIE;
jxcore.IEHTTPMode = false;
jxcore.CreateAjax = function () {
var xmlHttp = null;
try {
if(jxcore.CORS) {
try
{
xmlHttp = new XDomainRequest();
jxcore.currentConnectionMode.ajax = "XDomainRequest";
return xmlHttp;
}catch(e) {
}
}
if(jxcore.ieVersion==6) {
throw null;
}else {
xmlHttp = new XMLHttpRequest();
jxcore.currentConnectionMode.ajax = "XMLHttpRequest";
}
}
catch (e) {
if(jxcore.isIE) {
try {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
jxcore.currentConnectionMode.ajax = "Microsoft.XMLHTTP";
jxcore.IEHTTPMode = true;
if(xmlHttp) {return xmlHttp;}
}catch(e) {
try {
xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
jxcore.currentConnectionMode.ajax = "Msxml2.XMLHTTP";
jxcore.IEHTTPMode = true;
if(xmlHttp) {return xmlHttp;}
}catch(e) {
}
}
}
if(!xmlHttp) {
if (jxcore.OnError != null) {
jxcore.OnError("Connection Problem : No Ajax Support");
}
}
}
return xmlHttp;
};
jxcore.arrToString = function(arr){
var str = "";
var first = true;
var orders = 0;
for(var o in arr){
if(!arr[o]){
continue;
}
if(first)
first = false;
else
{
str += "|";
}
var x = 1 + parseInt(o);
str += x;
orders ++;
if(orders>256){
break;
}
}
if (!str) {
str = "|";
}
return str;
};
jxcore.ListenCounter = jxcore.getDate();
jxcore._Send = function (call_id, cc) {
if (!jxcore.IsConnected) {
return;
}
if(call_id==-1){
jxcore.MessageCount = 0;
}
if(!jxcore.SocketDisabled){
if (jxcore.GoSockets(call_id, cc)) {
return;
}
}
var txt = [];
txt.push('c=' + window._pci_());
var _url = jxcore.ListenUrl;
if (jxcore.clientExternal) {
_url = jxcore.ListenProtocol + '//' + jxcore.ListenHost + jxcore.ListenUrl;
}
var xmlHttp;
if (call_id != -1) {
try {
if( jxcore.RequestList.s[call_id]!=null) {
txt.push('ms=' + jxcore.RequestList.s[call_id].message);
}
} catch (e) {
return;
}
xmlHttp = jxcore.CreateAjax(true, call_id);
}
else
{
if(jxcore.dataId){
txt.push('did=' + jxcore.dataId);
}
txt.push('pi=' + jxcore.arrToString(jxcore.Callbacks));
if(jxcore.enc){
txt.push('en=' + jxcore.enc);
}
if (jxcore.RequestList.l.connector == null) {
xmlHttp = jxcore.CreateAjax(true, call_id);
jxcore.RequestList.l.connector = xmlHttp;
}
else
{
xmlHttp = jxcore.RequestList.l.connector;
try {
jxcore.RequestList.l.connector.abort();
} catch (e) { }
}
}
txt = txt.join('&');
var ico = jxcore.ListenCounter++;
var uext = 'co=' + ico + "&io=" + (jxcore.isAndroid?1:jxcore.ieVersion);
if (_url.indexOf('?') > 0) {
uext = '&' + uext;
} else {
uext = '?' + uext;
}
try {
xmlHttp.open("POST", _url + uext, true);
if (typeof xmlHttp.setRequestHeader != 'undefined') {
xmlHttp.setRequestHeader("Cache-Control", "no-cache");
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
}
if(call_id == -1){
if(jxcore.Timo){
clearTimeout(jxcore.Timo);
}
jxcore.Timo = setTimeout(function(){
jxcore.Listen(5);
}, jxcore.LTimeout);
}
}
catch(e)
{
if(jxcore.OnError) {
jxcore.OnError(e);
}
else {
throw e;
}
return;
}
try{
xmlHttp.call_id = call_id;
}catch(e){}
try {
xmlHttp.onerror = function () {
var cid = call_id;
try {
cid = this.call_id;
}catch(e)
{
}
if (cid == -1) {
jxcore.Act("2", false);
}
}
} catch (eee) {}
xmlHttp.onreadystatechange = function () {
var _this = this;
if(jxcore.ieVersion==6) {
_this = xmlHttp;
}
var oStatus = "";
try {
oStatus = _this.status;
}
catch (e) { }
var cloid = call_id;
try{
if(_this.call_id){
cloid = _this.call_id;
}
}catch(e){}
var rs = _this.readyState;
if (cloid == -1 && !rs && _this.responseText != "" && (jxcore.isIE7 || jxcore.isIE8 || jxcore.isIE9)) {
rs = jxcore.CMode;
oStatus = 200;
}
if(cloid == -1){
jxcore.Act("1a", true);
}
if (rs == jxcore.CMode && (oStatus == 200 || oStatus == 304)) {
var mess="";
try {
var hl = false;
if (_this.responseText != "") {
/* server sends unescaped */
var smes = _this.responseText;
if(jxcore.Chunked){
mess = jxcore.ParseBase(smes);
if(mess==""){
jxcore.Act("5", true);
return;
}
}
else {
mess = smes.replace(/[@]/g,"").replace(/[?]/g,"");
}
if (mess != null && mess!="") {
var _mess = mess.replace(/jxcore.Listen\(\);/g, "");
hl = _mess.length != mess.length;
if (jxcore.OnMessageReceived != null) {
jxcore.OnMessageReceived(_mess);
_mess += ";if(jxcore.OnMessageExecuted!=null){jxcore.OnMessageExecuted();};";
}
try {
if(_mess.length>0){
if(_mess != "
"){
eval(_mess);
}
}
}catch(ee) {
jxcore.Notify(ee, mess);
}
if(jxcore.Chunked){
if (!hl) {
jxcore.Act("5", true);
}else{
jxcore.Act("6", false);
setTimeout(function () { if(jxcore){jxcore.Act("6", false);jxcore.ReCall(14);}; }, 1);
}
return;
}
}
if (hl) {
setTimeout(function () { if(jxcore){jxcore.Act("74", false);jxcore.ReCall();}}, 10);
return;
}
}
}
catch (e) {
jxcore.Act("9", false);
jxcore.Notify(e, "ORS-" + mess);
}
}
else if(rs == 4)
{
var hl = false;
var smes="";
if (_this.responseText != "") {
/* server sends unescaped */
smes = _this.responseText;
var _mess = smes.replace("jxcore.Listen();", "");
hl = _mess.length != smes.length;
}
if(cloid==-1 && !hl){
jxcore.Act("139", false);
}
try {
if(smes == "@
?" && cloid == -1) {
setTimeout(function () {if(jxcore){ jxcore.Closed();}},750);
}
}catch(e) {}
}
};
if(jxcore.CORS && !jxcore.isIE6) {
xmlHttp.onload = xmlHttp.onreadystatechange;
xmlHttp.onprogress = xmlHttp.onreadystatechange;
}
xmlHttp.send(txt);
};
jxcore.ParseBase = function(smes) {
var arr = smes.split('@');
var asub = [];
var i=0;
for(var o in arr){
if(arr[o]!="" && arr[o]!=null){
if(arr[o].charAt){
asub[i++] = arr[o];
}
}
}
var mes = "";
arr = asub;
for(;jxcore.MessageCount"){
continue;
}
mes += str;
}
mes = mes.replace(new RegExp("@","g"),"@")
.replace(new RegExp("?","g"),"?")
.replace(new RegExp("+","g"),"+");
return mes;
};
jxcore.Notify = function(e,mess) {
if (jxcore.OnError != null) {
var rt = "No Response";
if(mess!=null) {
rt = mess;
}
jxcore.OnError('Error - : ' + e + ' --- ' + rt, true);
}
};
jxcore.ReCallCo = 0;
jxcore.ReCall = function (q) {
if (!jxcore.Listen(q)) {
setTimeout(function () { if(jxcore){jxcore.Act("67", false);jxcore.ReCall(q);}}, 200);
} else {
if (jxcore.ReCallCo > 0) {
jxcore.ReCallCo--;
}
}
};
jxcore.ReConnect = function (turl) {
if(document.jxcorercnn == 2) {
return;
}
document.jxcorercnn = 2;
var rec = document.jxcoreWasConnected;
if (jxcore.IsConnected) {
jxcore.Close(5);
}
jxcore.ReConnCounter++;
if(jxcore.ReConnCounter>5){
document.jxcorercnn = 1;
if(jxcore.OnClose){
jxcore.ReConnCounter = 0;
jxcore.OnClose(false);
}
return;
}
setTimeout(function () {
try {
if(jxcore){
if(jxcore.Inter!=0) {
clearInterval(jxcore.Inter);
}
}
} catch (e) { }
document.jxcoreWasConnected = rec;
var scr = document.createElement("script");
scr.type = "text/javascript";
if(!turl) {
var oe = jxcore.findScript();
if (!oe) {
document.jxcorercnn = 1;
throw "ReConnection error: Make sure that one of the script elements contain jxcore connection parameter 'ms=connect'";
}
scr.src = oe.src + "&rc="+jxcore.getDate();
}
else {
scr.src = turl + "&rc="+jxcore.getDate();
}
var bdy = document.getElementsByTagName("body");
if (bdy.length == 0) {
document.jxcorercnn = 1;
throw ("document body must be defined to use jxcore.ReConnect!");
}
setTimeout(function() {
try {
document.jxcorercnn = 1;
if (!window[jxcore.clientNamespace].IsConnected) {
window[jxcore.clientNamespace].ReConnect();
}
}catch(ee) {
}
},3000);
jxcore.SendChecker = null;
bdy[0].appendChild(scr);
jxcore.ListenCounter++;
}, 1000);
};
jxcore.Inter = setInterval(function () {
if (document.onjxready != null) {
clearInterval(jxcore.Inter);
jxcore.Inter = 0;
setTimeout(function () {
document.onjxready();
}, 1);
}
if (jxcore.Started) {
clearInterval(jxcore.Inter);
jxcore.Inter = 0;
}
}, 250);
window[jxcore.clientNamespace] = jxcore;
jxcore.sscall = function(id, param) {
if (id==-1) {
if (param.key) {
jxcore.enc = param.key;
}
if (param.did) {
jxcore.dataId = param.did;
}
if (jxcore.OnSubscription) {
jxcore.OnSubscription(param.su, param.gr);
}
}
};
document.P_pageShown = 0;
try{
jxcore.AddEvent(window, "pageshow", function () {
if(document.P_pageShown==0) {
document.P_pageShown++;
return;
}
jxcore.fin=false;
document.jxcorercnn = 0;
if(jxcore.OnClose!=null){
jxcore.OnClose();
}
});
if (jxcore.isIE && (jxcore.isIE6 || jxcore.isIE7)) {
jxcore.AddEvent(window, "unload", function () {
if (jxcore && jxcore.Close) {
jxcore.Close();
}
});
}
}catch (ee){}
})(window);