(function ($) { $.fn.apishopsAdditionalProductForm = function (options) { function ApiShopsAdditionalProductForm(el, options) { this.el = el; this.$el = $(this.el); this.$modal = null; this.$modalContent = null; this.options = { modal: '
', placement: '.apishopsModalContent', siteId: 349, orderId: 15743307, lang: 1, title: 'Спецпредложение только для Вас, нашего покупателя! Добавьте эти товары с супер-скидками к заказу сейчас!', productLoader: ' Загружаем товары...', productAdd: ' Добавляем товар к заказу...', addProductLabel: 'Добавить к заказу', addProductLabelOk: 'Товар добавлен к заказу' }; this.setOptions(options); this.initModal(); this.init(); } ApiShopsAdditionalProductForm.prototype = { setOptions: function (options) { $.extend(this.options, options); }, initModal: function(){ this.$modal = $(this.options.modal); $('body').append(this.$modal); this.$modalContent = $(this.options.placement, this.$modal); var $modal = this.$modal; $('.apishopsModalClose',this.$modal).click(function(event) { event.preventDefault(); modalHide($modal); }); $('.apishopsModalClose2',this.$modal).click(function(event) { event.preventDefault(); modalHide($modal); }); $('.apishopsModalOverlay',this.$modal).click(function(event) { event.preventDefault(); modalHide($modal); }); }, init: function () { var $el = this.$el; var $modal = this.$modal; var $modalContent = this.$modalContent; var options = this.options; var $div = $("
" + options.productLoader + "
"); $el.append($div); apishopsAdditionalGetJSONP({action: "getAdditionalProducts", siteId: options.siteId, lang: options.lang, orderId: options.orderId}, function(data){ $div.empty(); var currency='руб'; if(data.data && data.data.lang) { if(data.data.lang==8) { currency='тнг'; } if(data.data.lang==9) { currency='манат'; } if(data.data.lang==10) { currency='драм'; } if(data.data.lang==11 || data.data.lang==12 || data.data.lang==15) { currency='€'; } if(data.data.lang==13) { currency='лей'; } if(data.data.lang==14) { currency='крон'; } if(data.data.lang==6) { currency='грн'; /*UA FIX*/ $('.merchant_block').hide(); $('.merhcnaht_grid_cell_propose').css('width','0'); $('.merchant_grid_cell').css('width','100%'); } } if(data.data.items.length>0) $("

" + options.title + "

").insertBefore($el); var $table = $(""); $div.append($table); $.each(data.data.items, function(){ var img = this.img; var $tr = $(""); var $td = $(""); $tr.append($td); var $tdbuy = $("
"); if (this.img != null) { var $a = $(""); $a.bind("click", function(event){ $modalContent.html("
"); event.preventDefault(); modalShow($modal); }); $td.append($a); } $tr.append($td); $td = $("
"); var $name; if (this.description != null) { var description = this.description; $name = $("" + this.name + ""); $name.bind("click", function(event){ $modalContent.html("
" + description + "
"); event.preventDefault(); modalShow($modal); }); } else { $name = $("" + this.name + ""); } $td.append($name); $tr.append($td); $td = $("
" + this.price + " "+currency+""); $a = $("" + options.addProductLabel + ""); var productId = this.productId; var wpId = this.wpId; $a.bind("click", function(event){ event.preventDefault(); $tdbuy.html("" + options.productAdd + ""); apishopsAdditionalGetJSONP({action: "addProductToOrder", siteId: options.siteId, orderId: options.orderId, productId: productId, wpId: wpId, count: 1}, function(data){ $("#addpbuy" + data.data.productId).html("" + options.addProductLabelOk + ""); }); return false; }); $tdbuy.append($a); $tr.append($tdbuy); $table.append($tr); }); }); } }; function modalShow($modal){ $modal.css('display','block'); window.setTimeout( function(){ $modal.addClass('in').children('.apishopsModalWindow').css('top',$(this).scrollTop()+100) },100); } function modalHide($modal){ $modal.removeClass('in'); window.setTimeout( function(){ $modal.css('display','none') },100); } return this.each(function () { var apishopsAdditionalProductForm = new ApiShopsAdditionalProductForm(this, options); $(this).data('apishopsAdditionalProductForm', apishopsAdditionalProductForm); return apishopsAdditionalProductForm; }); }; }(jQuery)); var apishopsAdditionalJSONP={ gates:[ 'http://gate1.apishops.org/single.page.ajax.php?callback=?', 'http://template2.basing.ru/single.page.ajax.php?callback=?'], processes:[], checkInterval:0 } function apishopsAdditionalGetJSONP(jsonp, callBackFunction){ clearInterval(apishopsAdditionalJSONP.checkInterval); jsonp.processId=String.fromCharCode(65 + Math.floor(Math.random() * 26)) + Date.now(); apishopsAdditionalJSONP.processes.push({jsonp:jsonp,callBackFunction:callBackFunction, processId:jsonp.processId, status:'run', retrys:0}); apishopsAdditionalLog('New process #'+jsonp.processId); $.getJSON(apishopsAdditionalJSONP.gates[0], jsonp, apishopsAdditionalCallbackJSONP); apishopsAdditionalJSONP.checkInterval=setInterval(function() { apishopsAdditionalLog('Interval 5000 ms:') for(i in apishopsAdditionalJSONP.processes){ process=apishopsAdditionalJSONP.processes[i]; apishopsAdditionalLog('Check process #'+process.processId+':'); if (process.status=='run' && process.retrys