%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/catalog.compare.list/templates/.default/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/catalog.compare.list/templates/.default/script.js |
(function (window) { if (!!window.JCCatalogCompareList) { return; } window.JCCatalogCompareList = function (params) { this.obCompare = null; this.obAdminPanel = null; this.visual = params.VISUAL; this.ajax = params.AJAX; this.position = params.POSITION; BX.ready(BX.proxy(this.init, this)); }; window.JCCatalogCompareList.prototype.init = function() { this.obCompare = BX(this.visual.ID); if (BX.type.isElementNode(this.obCompare)) { BX.addCustomEvent(window, "OnCompareChange", BX.proxy(this.reload, this)); BX.bindDelegate(this.obCompare, 'click', {tagName : 'a'}, BX.proxy(this.deleteCompare, this)); if (this.position.fixed && this.position.align.vertical === 'top') { this.obAdminPanel = BX('bx-panel'); if (BX.type.isElementNode(this.obAdminPanel)) { this.setVerticalAlign(); BX.addCustomEvent(window, 'onTopPanelCollapse', BX.proxy(this.setVerticalAlign, this)); } } } }; window.JCCatalogCompareList.prototype.reload = function() { BX.showWait(this.obCompare); BX.ajax.post( this.ajax.url, this.ajax.reload, BX.proxy(this.reloadResult, this) ); }; window.JCCatalogCompareList.prototype.reloadResult = function(result) { var mode = 'none'; BX.closeWait(); this.obCompare.innerHTML = result; if (BX.type.isNotEmptyString(result)) { if (result.indexOf('<table') >= 0) mode = 'block'; } BX.style(this.obCompare, 'display', mode); }; window.JCCatalogCompareList.prototype.deleteCompare = function() { var target = BX.proxy_context, itemID, url; if (!!target && target.hasAttribute('data-id')) { itemID = parseInt(target.getAttribute('data-id'), 10); if (!isNaN(itemID)) { BX.showWait(this.obCompare); url = this.ajax.url + this.ajax.templates.delete + itemID.toString(); BX.ajax.loadJSON( url, this.ajax.params, BX.proxy(this.deleteCompareResult, this) ); } } }; window.JCCatalogCompareList.prototype.deleteCompareResult = function(result) { var tbl, i, cnt, newCount; BX.closeWait(); if (BX.type.isPlainObject(result)) { if (BX.type.isNotEmptyString(result.STATUS) && result.STATUS === 'OK' && !!result.ID) { BX.onCustomEvent('onCatalogDeleteCompare', [result.ID]); tbl = this.obCompare.querySelector('table[data-block="item-list"]'); if (BX.type.isElementNode(tbl)) { if (tbl.rows.length > 1) { for (i = 0; i < tbl.rows.length; i++) { if ( tbl.rows[i].hasAttribute('data-row-id') && tbl.rows[i].getAttribute('data-row-id') === ('row' + result.ID) ) { tbl.deleteRow(i); } } if (BX.type.isNotEmptyString(result.COUNT) || BX.type.isNumber(result.COUNT)) { newCount = parseInt(result.COUNT, 10); if (!isNaN(newCount)) { cnt = this.obCompare.querySelector('span[data-block="count"]'); if (BX.type.isElementNode(cnt)) { cnt.innerHTML = newCount.toString(); } cnt = null; BX.style(this.obCompare, 'display', (newCount > 0 ? 'block' : 'none')); } } } else { this.reload(); } } tbl = null; } } }; window.JCCatalogCompareList.prototype.setVerticalAlign = function() { var topSize; if (BX.type.isElementNode(this.obCompare) && BX.type.isElementNode(this.obAdminPanel)) { topSize = parseInt(this.obAdminPanel.offsetHeight, 10); if (isNaN(topSize)) { topSize = 0; } topSize +=5; BX.style(this.obCompare, 'top', topSize.toString()+'px'); } }; })(window);