(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 = $(" | ");
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+" | ");
$tr.append($td);
var $tdbuy = $(" | ");
$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