Your IP : 3.149.236.120
/**
* Module provide basket in store in site
* @param {object} window global object
* @param {function} $ jQuery library
* @param {object} EventMgr EventMgr library
* @param {object} App Application
* @return {object} api
*/
App.StoreBasket = function(window, $, EventMgr, App) {
'use strict';
var timeout = 60000,
project = pageInfo.project || 1;
var basketTempl = '({{=it.count}}шт.) {{=it.sum}} {{=it.iso}}';
var tempFunc = window.doT.template(basketTempl);
function $basketWrapper() {
return App.Dom.byId(pageInfo.basket.blockId);
}
//init store func, get startform
function storeBasketInit() {
if (pageInfo.basket) {
setTimeout(function() {
getBasket();
}, 300);
setInterval(function() {
getBasket();
}, timeout);
}
}
function getBasket() {
var params = {
func: 'showroom.menu',
out: 'sjson'
};
params.storemode = 'on';
EventMgr.trigger('ajaxRequest', {
param: params,
outtype: 'json',
trfunc: 'storeBasketResp',
invar: {
showcaseForm: true
}
});
}
function updateBasket(basket) {
var html = tempFunc(basket),
$basketWrapperNode = $basketWrapper();
if ($basketWrapperNode) {
$basketWrapperNode.innerHTML = html;
}
}
function storeBasketRespHandler(e, data) {
EventMgr.trigger('storeUserMenuResp', data);
if (data &&
data.doc &&
data.doc.basket &&
data.doc.basket.count &&
data.doc.basket.sum &&
data.doc.basket.currency &&
data.doc.basket.currency.iso) {
var basket = data.doc.basket;
updateBasket({ count: basket.count.$, sum: basket.sum.$, iso: basket.currency.iso.$ });
}
}
function basketClickHandler(e) {
e.preventDefault();
EventMgr.trigger('openStoreBasket', {});
}
function init() {
if (pageInfo.basket && pageInfo.basket.blockId) {
EventMgr.bind('storeLoad', storeBasketInit);
EventMgr.bind('storeBasketForceUpdate', getBasket);
EventMgr.bind('storeBasketResp', storeBasketRespHandler);
EventMgr.on($($basketWrapper()), '.i-store__basket', 'click', basketClickHandler);
}
}
var api = {
init: init
};
return api;
} (window, $, EventMgr, App);