/* Не удалось уменьшить размер. Содержимое возвращается без уменьшения.
(104,57-58): run-time error JS1195: Expected expression: >
(104,73-74): run-time error JS1004: Expected ';': )
(104,83-84): run-time error JS1195: Expected expression: >
(104,94-95): run-time error JS1004: Expected ';': )
(109,17-18): run-time error JS1002: Syntax error: }
(112,71-72): run-time error JS1195: Expected expression: )
(112,73-74): run-time error JS1004: Expected ';': {
(118,62-63): run-time error JS1195: Expected expression: >
(118,78-79): run-time error JS1004: Expected ';': )
(122,53-54): run-time error JS1195: Expected expression: >
(122,64-65): run-time error JS1195: Expected expression: .
(124,70-71): run-time error JS1195: Expected expression: >
(124,81-82): run-time error JS1004: Expected ';': )
(137,22-23): run-time error JS1195: Expected expression: )
(139,13-14): run-time error JS1002: Syntax error: }
(151,7-8): run-time error JS1002: Syntax error: }
(158,7-8): run-time error JS1002: Syntax error: }
(160,4-5): run-time error JS1197: Too many errors. The file might not be a JavaScript file: ,
 */
var ls2 = {
  get: function(key) {
    return JSON.parse(localStorage.getItem(key)) || {};
  },
  gla: function(number, one, two, five) {
    number = Math.abs(number) % 100;
    if (number >= 5 && number <= 20) return five;
    number %= 10;
    if (number == 1) return one;
    if (number >= 2 && number <= 4) return two;
    return five;
  },
  format: function(num) {
    return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 ');
  },
  init: {
    like: function(all) {
      var list = ls2.get('WL_data');

      if (list.length) {
        if (all) {
          $('.catalog-item .ecommerce-data input[name=id]').each(function() {
            if (list.indexOf($(this).val()) != -1) {
              $('.catalog-item-control-like', $(this).closest('.catalog-item')).addClass(
                'catalog-item-control-like-active'
              );
            }
          });
          $('.ecommerce-data-detail input[name=id]').each(function () {
            if (list.indexOf($(this).val()) != -1) {
              $('.card-control .control-like').addClass('control-like-active');
	          }
          });
        }

        $('.header-control-like-count, .mobile-menu-item-like-count').text(list.length);
        $('.header-control-like').addClass('header-control-like-active');
        $('.mobile-menu-item-like-icon').addClass('mobile-menu-item-like-icon-active');
      } else {
        $('.header-control-like-count, .mobile-menu-item-like-count').text('0');
        $('.header-control-like').removeClass('header-control-like-active');
        $('.mobile-menu-item-like-icon').removeClass('mobile-menu-item-like-icon-active');
      }
    },
    compare: function(all) {
      var list = ls2.get('compareData').products;

      if (list && list.length) {
        if (all) {
	        var ids = list.map(function (x) {
		        return x.id;
	        });
          $('.catalog-item .ecommerce-data input[name=id]').each(function() {
            if (ids.indexOf($(this).val()) != -1) {
              $('.catalog-item-control-compare', $(this).closest('.catalog-item')).addClass(
                'catalog-item-control-compare-active'
              );
            }
          });
          $('.ecommerce-data-detail input[name=id]').each(function () {
            if (ids.indexOf($(this).val()) != -1) {
              $('.card-control .control-compare').addClass('control-compare-active');
	          }
          });
        }

        $('.header-control-compare-count, .mobile-menu-item-compare-count').text(list.length);
        $('.header-control-compare').addClass('header-control-compare-active');
        $('.mobile-menu-item-compare-icon').addClass('mobile-menu-item-compare-icon-active');
      } else {
        $('.header-control-compare-count, .mobile-menu-item-compare-count').text('0');
        $('.header-control-compare').removeClass('header-control-compare-active');
        $('.mobile-menu-item-compare-icon').removeClass('mobile-menu-item-compare-icon-active');
      }
    },
    cart: function(all) {
      var products = ls2.get('poisk_products').products;
      if (products && products.length) {
        var clearedProducts = products.filter(function (x) {
          return parseInt(x.TypTov, 10) < 2;
        });
        if (products.length > clearedProducts.length) {
          var pp = ls2.get('poisk_products');
          pp.products = clearedProducts;
          localStorage.setItem('poisk_products', JSON.stringify(pp));
        }
	      var ids = products.map(function (x) {
		      return x.db_id;
        });
        var amount = products.reduce(function (acc, obj) {
		      return acc + obj.quantity;
	      }, 0);
        var total = products.reduce(function (acc, obj) {
	        return acc + obj.price * obj.quantity;
        }, 0);
          if (all) {
            // Инициализация активности кнопки "В корзину" в списке товаров
            $('.catalog-item .ecommerce-data input[name=id]').each(function () {
                const id = $(this).val(); // Id товара

                // Если в списке идентификаторов товаров, которые есть в хранилище есть id-товара из списка товаров
                if (ids.indexOf(id) != -1) {
                    // Уточняем, что товар не является последним (с витрины)
                    const itemById = products.filter(x => x.db_id === id).find(x => !x.isLast);

                    if (itemById) {
                        $('.catalog-item-button', $(this).closest('.catalog-item')).addClass('catalog-item-button-active');
                    }
                }
          });
            // Инициализация активности кнопки "В корзину" на странице товара
            $('.ecommerce-data-detail input[name=id]').each(function () {
                const id = $(this).val(); // Id товара

                if (ids.indexOf(id) != -1) {
                    $('.card-button-cart').each(function () {
                        const lastProductVal = $(this).attr("data-last-product");
                        const itemsById = products.filter(x => x.db_id === id);

                        // Для кнопки с атрибутом и без него проверяем наличием товара с признаком isLast и выставляем состояние активности
                        if (lastProductVal) {
                            if (itemsById.filter(x => x.isLast).length) $(this).addClass("active");
                        } else {
                            const notLastItems = itemsById.filter(x => !x.isLast);

                            if (notLastItems.length) {
                                $(this).addClass("active");

                                // Инициализация количества товаров
                                var product = notLastItems[0];
                                if (product && product.quantity != 1) {
                                    $('.ecommerce-data-detail input[name=quantity]').first().val(product.quantity);
                                    $('.quantity-number').text(product.quantity);
                                }
                            }
                        }
                    });
                }
            });
        }

        var g = ls2.gla(amount, 'товар', 'товара', 'товаров');

        $('.header-control-cart').addClass('header-control-cart-active');
        $('.header-control-cart-desc').text(amount + ' ' + g);

        $('.header-control-cart-title').text(ls2.format(total) + ' ₽');

        $('.mobile-header-cart').addClass('mobile-header-cart-active');
        $('.mobile-header-cart-count').text(amount);
      } else {
        $('.header-control-cart').removeClass('header-control-cart-active');
        $('.header-control-cart-desc').text('Пока пуста');
        $('.header-control-cart-title').text('Корзина');

        $('.mobile-header-cart').removeClass('mobile-header-cart-active');
        $('.mobile-header-cart-count').text('0');
      }
    },
  },
};;
var WishList = function () {
    this.createWL();
}
WishList.prototype = {
    getCount: function() {
        return this.WL_data.length;
    },
    emptyContent: "<p class='wl-empty-content'>Нет товаров</p>",
    createWL: function () {
        var WL_data = localStorage.getItem("WL_data");
        if (WL_data) {
            this.WL_data = JSON.parse(WL_data);
        } else {
            localStorage.setItem("WL_data", JSON.stringify([]));
            this.WL_data = [];
        }
    },
    add: function (id) {
        var inWL_status = true;
        for (var i = 0; i < this.WL_data.length; i++) {
            if (id == this.WL_data[i]) {
                inWL_status = false;
            }
        }
        if (inWL_status) {
            this.WL_data[this.WL_data.length] = id;
        }
        localStorage.setItem("WL_data", JSON.stringify(this.WL_data));
        ls2.init.like();
        return inWL_status;
    },
    remove: function (id) {
        for (var i = 0; i < this.WL_data.length; i++) {
            if (id == this.WL_data[i]) {
                this.WL_data.splice(i, 1);
                alert("Товар удалён из закладок");
            }
        }
        localStorage.setItem("WL_data", JSON.stringify(this.WL_data));
        ls2.init.like();
    },
    clear_wl: function () {
        this.WL_data.length = 0;
        localStorage.setItem("WL_data", JSON.stringify(this.WL_data));
    }
}
$(document).ready(function () {
    function updateWishText(number) {
        if (number == null) number = wishlist.getCount();
        var text = 'В избранном ' + number + ' ' + ls2.gla(number, 'товар', 'товара', 'товаров');
        $(".wish-count").text(text);
    }
    var wishlist = new WishList;
    updateWishText();
    /*-------------------*/
    //(function () {
        var editBtnStyle = function (htmlObj) {
            htmlObj.find(".add-to-wishlist").addClass("in-whishlist").html("<i class='fa fa-check' area-hidden='true'></i><span>В закладках</span>");
        }
        var inWishlistArr = wishlist.WL_data;
        $(".product-item").each(function () {
            var id = $(this).find(".article-int").val();
            for (var i = 0; i < inWishlistArr.length; i++) {
                if (id == inWishlistArr[i]) {
                    editBtnStyle($(this));
                }
            }
        })
        $("body").on("click", ".add-to-wishlist", function () {
            $(this).closest(".product-item").find(".article-int").val() ? id = $(this).closest(".product-item").find(".article-int").val() : id = $("#p_data_id").val();
            var addResult = wishlist.add(id);
            if (addResult) {
                var message = new MessageCreate("Товар добавлен в закладки");
                if (typeof ym !== 'undefined' && ym) {
                    console.log('ym');
                    ym(40213044, 'reachGoal', 'addToWishlist')
                }
                $(this).addClass("no-active").html("<i class='fa fa-check' area-hidden='true'></i> В закладках");
            } else {
                var message = new MessageCreate("Данный товар уже в закладках");
            }
            updateWishText();
            editBtnStyle($(this).closest(".product-item"));
        });
    //});
    /*-------------------*/
        if (location.pathname == "/Home/Wishlist") {
            var getWL_srv = function (data, emptyContent) {
                var preloader = new Preloader($(".wishlist"))
                preloader.on();
                if (data.length > 0) {
                  $.ajax({
                    url: "/Home/WishListResult",
                    data: "WishListData=" + JSON.stringify(data),
                    success: function(response) {
                      $(".wishlist").html(response);
                    }
                  });
                } else {
                    $(".wishlist").html(emptyContent);
                }
                updateWishText(data.length);
            }
            getWL_srv(wishlist.WL_data, wishlist.emptyContent);
            $(".wishlist").on("click", ".wishlist-remove", function () {
                var id = parseInt($(this).data("id"), 10);
                wishlist.remove(id);
                getWL_srv(wishlist.WL_data, wishlist.emptyContent);
                updateWishText();
            });
            $("#wl-clear").on("click", function () {
                wishlist.clear_wl();
                getWL_srv(wishlist.WL_data, wishlist.emptyContent);
                ls2.init.like();
            });
        };
})
;
/*----------------------*/
var pRowCreare = function(wrapName) {
  var pJSON = localStorage.getItem('poisk_products');
  if (pJSON) {
    var products = JSON.parse(pJSON);
    if (products.products.length > 0) {
      var HTML = '';
      for (var i = 0; i < products.products.length; i++) {
        HTML += "<tr><td><img src='" + products.products[i].img_url + "' width='100'></td>";
        HTML += "<td><b class='hidden'>Наименование: </b>" + products.products[i].p_name + '</td >';
        HTML += "<td><b class='hidden'>Количество: </b>" + products.products[i].quantity + '</td>';
        HTML +=
          "<td><b class='hidden'>Цена: </b>" + products.products[i].price + ' руб.</td></tr >';
      }
      var pWrap = document.getElementById(wrapName);
      pWrap.innerHTML = HTML;
    }
  }
};
/*----------------------*/

var Cart = function(cartData) {
  if (cartData) {
    this.cartData = cartData;
  } else {
    this.createLS_data();
    this.cartData = new Object();
    this.cartData['products'] = [];
  }
};

Cart.prototype = {
    // Обновляет шабку страницы (иконка тележки)
  refreshHeader: function() {
    var products = ls2.get('poisk_products').products;
    if (products && products.length) {
	    var amount = products.reduce(function (acc, obj) {
		    return acc + obj.quantity;
	    }, 0);
	    var total = products.reduce(function (acc, obj) {
		    return acc + obj.price * obj.quantity;
	    }, 0);
      var g = ls2.gla(amount, 'товар', 'товара', 'товаров');

      $('.header-control-cart').addClass('header-control-cart-active');
      $('.header-control-cart-desc').text(amount + ' ' + g); // Кол-во товаров
      $('.header-control-cart-title').text(ls2.format(total) + ' ₽'); // Сумма товаров
      $('.mobile-header-cart').addClass('mobile-header-cart-active');
      $('.mobile-header-cart-count').text(amount);
    } else {
      $('.header-control-cart').removeClass('header-control-cart-active');
      $('.header-control-cart-desc').text('Пока пуста');
      $('.header-control-cart-title').text('Корзина');
      $('.mobile-header-cart').removeClass('mobile-header-cart-active');
      $('.mobile-header-cart-count').text('0');
    }
    },
    // Обновление локальных данных корзины данными от сервера (актуальная цена, доступное кол-во и прочее)
    updateProducts: function (actualData) {
        var products = ls2.get('poisk_products').products;

        if (products && products.length) {

            for (let i = products.length - 1; i >= 0; i--) {
                const currProduct = products[i];

                // Актуальные данные по продукту с id
                const actualProductData = actualData.filter(x => x.Id.toString() === currProduct.db_id);

                // Если это товар с витрины - обновляем цену до актуальной
                if (currProduct.isLast) {
                    const lastItem = actualProductData.find(x => x.isLast);

                    // Если разночтения в корзинах между сервером и localStorage - удаляем локальный товар
                    if (lastItem) currProduct.price = lastItem.Price;
                    else products.splice(i, 1);
                } else {
                    const lastItem = actualProductData.find(x => !x.isLast);

                    if (lastItem) {
                        currProduct.price = lastItem.Price;
                        currProduct.quantity = lastItem.Kol;
                    } else {
                        products.splice(i, 1);
                    }
                }
            }
            this.cartData['products'] = products;
            localStorage.setItem('poisk_products', JSON.stringify(this.cartData));
            this.refreshHeader();
        }
  },
  ifEmpty: function(contentBox) {
    if (this.cartData.products.length === 0) {
      contentBox.html("<p class='empty-cart-desc'>На данный момент в корзине нет товаров!</p>");
    }
  },
  addClearBtn: function(btnWrapper) {
    var btn = document.createElement('button'),
      cart = this;
    btn.innerText = 'Очистить корзину';
    btn.classList.add('interface-btn');
    btn.addEventListener('click', function() {
      cart.clearCart();
      location.reload();
    });
    btnWrapper.append($(btn));
    },
  // Вычисляет общую стоимость услуг
  totalPrice: function() {
    let totalPrice = 0;

    for (let i = 0; i < this.cartData.products.length; i++) {
        const product = this.cartData.products[i];

        // Высчитываем стоимость товара и доп. услуг
        const { price, quantity, services } = product;
        const basePrice = price * quantity;
        let additionalPrice = 0;
        if (services && services.length) {
            for (let j = 0; j < services.length; j++) {
                additionalPrice += services[j].price * services[j].count;
            }
        }
        const fullPrice = basePrice + additionalPrice;
        totalPrice += fullPrice;
    }

    return totalPrice;
  },
  count: function() {
    var quantity = 0;
    for (var i = 0; i < this.cartData.products.length; i++) {
      quantity += this.cartData.products[i].quantity;
    }
    return quantity;
  },
  createLS_data: function() {
    var cartData = new Object();
    cartData['products'] = [];
    localStorage.setItem('poisk_products', JSON.stringify(cartData));
  },
  editLS_data: function (addObj) {
   this.cartData = JSON.parse(localStorage.getItem('poisk_products'));
    if (this.cartData) {
      var inCartStatus = false;
      for (var i = 0; i < this.cartData.products.length; i++) {
        if (addObj.db_id == this.cartData.products[i].db_id) {
          this.cartData.products[i].quantity += addObj.quantity;
          inCartStatus = true;
        }
      }
      if (inCartStatus === false) {
        this.cartData.products.push(addObj);
      }
      this.showPopup(addObj);
      localStorage.setItem('poisk_products', JSON.stringify(this.cartData));
        if (typeof ym !== 'undefined' && ym) {
            console.log('ym');
            ym(40213044, 'reachGoal', 'korzina')
      }
    } else {
      this.createLS_data();
      this.editLS_data(addObj);
    }
    ls2.init.cart();
    return true;
    },
    // Добавляет или удаляет продукт в зависимости от его наличия в корзине
    addProduct: function (item) {
        if (item) {
            const cart = JSON.parse(localStorage.getItem('poisk_products'));

            if (cart && cart.products) {
                const otherCartItems = Object.entries(cart).filter(([key,]) => key !== 'products'); // Элементы корзины не являющиеся списком продуктов
                const otherProducts = cart.products.filter(x => x.db_id !== item.db_id); // Список продуктов без добавляемого/удаляемого продукта

                if (this.hasProduct(item)) {
                    this.removeProduct(item);
                } else {
                    // Оставляем обратный образец (с или без isLast)
                    const targetItems = cart.products.filter(x => x.db_id === item.db_id).find(x => x.isLast !== item.isLast);
                    const addedProducts = targetItems ? [item, targetItems] : [item];
                    const newCart = Object.assign({}, Object.fromEntries(otherCartItems), { products: otherProducts.concat(addedProducts) });

                    this.cartData = newCart;
                    localStorage.setItem('poisk_products', JSON.stringify(newCart));

                    this.showPopup(item);

                    //if (typeof yaCounter40213044 !== 'undefined' && yaCounter40213044) {
                    //    yaCounter40213044.reachGoal('korzina');
                    //}
                }
            } else {
                this.createLS_data();
                this.addProduct(item);
            }

            ls2.init.cart();
        }
    },
    // Удаляет товар из корзины
    removeProduct: function (item) {
        if (item) {
            const cart = JSON.parse(localStorage.getItem('poisk_products'));

            if (cart && cart.products) {
                const otherCartItems = Object.entries(cart).filter(([key,]) => key !== 'products'); // Элементы корзины не являющиеся списком продуктов
                const otherProducts = cart.products.filter(x => x.db_id !== item.db_id); // Список продуктов без добавляемого/удаляемого продукта

                // Оставляем продукт, который не является параметром item
                const targetItems = cart.products.filter(x => x.db_id === item.db_id).filter(x => x.isLast !== item.isLast);
                const newCart = Object.assign({}, Object.fromEntries(otherCartItems), { products: otherProducts.concat(targetItems) });

                this.cartData = newCart;
                localStorage.setItem('poisk_products', JSON.stringify(newCart));
            }
        }
    },
    // Проверяет наличие товара в корзине
    hasProduct: function (item) {
        if (!item) return false;

        const cart = JSON.parse(localStorage.getItem('poisk_products'));

        if (!cart || !cart.products) return false;

        const findedProduct = cart.products.filter(x => x.db_id === item.db_id).find(x => x.isLast === item.isLast);

        return findedProduct ? true : false;
    },
  // Обновляет число товара
    editNumber: function (id, value) {
        // Обновляем только товары, которые не с витрины

        const cart = this.cartData;

        const otherCartItems = Object.entries(cart).filter(([key,]) => key !== 'products'); // Элементы корзины не являющиеся списком продуктов
        const otherProducts = cart.products.filter(x => x.db_id !== id); // Список продуктов без удаляемого продукта
        const targetItems = cart.products.filter(x => x.db_id === id); // Оставляем продукт, который нужен

        const notLastItem = targetItems.find(x => !x.isLast);
        const lastItem = targetItems.find(x => x.isLast);

        if (notLastItem) notLastItem.quantity = parseInt(value);

        const result = lastItem ? [notLastItem, lastItem] : [notLastItem];

        // Формирование и запись новой корзины
        const newCart = Object.assign({}, Object.fromEntries(otherCartItems), { products: otherProducts.concat(result) });
        this.cartData = newCart;
        localStorage.setItem('poisk_products', JSON.stringify(newCart));


       /* for (var i = 0; i < this.cartData.products.filter(x => !x.isLast).length; i++) {
            if (this.cartData.products[i].db_id == id) {
            this.cartData.products[i].quantity = parseInt(value);
            }
        }*/

      //localStorage.setItem('poisk_products', JSON.stringify(this.cartData));
    },
  // Удаляет продукт из хранилища по его id и признаку, является ли он последним
    removeLS_data: function (removeObjId, isLastProduct) {
        const cart = this.cartData;

        const otherCartItems = Object.entries(cart).filter(([key,]) => key !== 'products'); // Элементы корзины не являющиеся списком продуктов
        const otherProducts = cart.products.filter(x => x.db_id !== removeObjId); // Список продуктов без удаляемого продукта
        const targetItems = cart.products.filter(x => x.db_id === removeObjId).filter(x => x.isLast !== isLastProduct); // Оставляем продукт, который нужен

        // Формирование и запись новой корзины
        const newCart = Object.assign({}, Object.fromEntries(otherCartItems), { products: otherProducts.concat(targetItems) });

        this.cartData = newCart;
        localStorage.setItem('poisk_products', JSON.stringify(newCart));

        ls2.init.cart();
    },
  // Показывает модальное окно с краткой информацией о добавленном товаре
  showPopup: function (product) {
    if (window.innerWidth <= 750) return;
    var modal = $('#modal-cart');
        if (!modal.length) {
            const dialogHtml =
                '<div class="modal fade" id="modal-cart" tabindex="-1" role="dialog">' +
                '<div class="modal-dialog" role="document">' +
                    '<div class="modal-content-cart">' +
                        '<div class="mcc-head">Товар добавлен к заказу' +
                            '<div class="modal-close" data-dismiss="modal"></div>' +
                        '</div>' +
                        '<div class="mcc-body">' +
                            '<table>' +
                                '<tbody>' +
                                    '<tr class="mcc-row"></tr>' +
                                '</tbody>' +
                            '</table>' +
                        '</div>' +
                        '<div class="mcc-foot">' +
                            '<button type="button" class="button mcc-button" data-dismiss="modal">Продолжить покупки</button>' +
                            '<a href="/Order/Cart"><button type="button" class="button mcc-button">Перейти к оформлению</button></a>' +
                        '</div>' +
                    '</div>' +
                '</div>' +
                '</div>';

            $("body").append(dialogHtml);
            modal = $('#modal-cart');
        }

        const addChip = () =>
            '<div class="chip chip_background_yellow chip_size_s" style="margin-top: 4px">' +
            '<span class="chip__title chip__title_color_dark chip__title_size_s">Товар с витрины</span>' +
            '</div>';

        // Формирование данных в таблице
        let rowHtml = '<td><img class="cart-img" src="' + product.img_url + '"></td>';
        rowHtml += '<td>' + product.p_name + (product.isLast && addChip()) + '</td><td>' + ls2.format(product.price) + ' ₽</td>';
        modal.find('.mcc-row').html(rowHtml);
        modal.modal();
    },
    // Устанавливает дополнительную услугу для товара
    setService: function (productId, service) {
        const cart = this.cartData;

        const foundProduct = cart.products.find(x => x.db_id === productId.toString());
        if (foundProduct) {
            const updatedProduct = Object.assign({}, foundProduct, { services: service && [service] });
            
            const otherCartItems = Object.entries(cart).filter(([key,]) => key !== 'products'); // Элементы корзины не являющиеся списком продуктов
            const otherProducts = cart.products.filter(x => x.db_id !== productId.toString()); // Список продуктов без изменяемого продукта

            // Формирование и запись новой корзины
            const newCart = Object.assign({}, Object.fromEntries(otherCartItems), { products: otherProducts.concat(updatedProduct) });
            this.cartData = newCart;
            localStorage.setItem('poisk_products', JSON.stringify(newCart));
        }
    },
  clearParticalContent: function(removeArr) {
    for (var i = 0; i < removeArr.length; i++) {
      for (var cart_item = 0; cart_item < this.cartData.products.length; cart_item++) {
        if (removeArr[i] == this.cartData.products[cart_item].db_id) {
          this.cartData.products.splice(cart_item, 1);
        }
      }
    }

    localStorage.setItem('poisk_products', JSON.stringify(this.cartData));
  },
  clearCart: function() {
    this.cartData.products.length = 0;
    localStorage.setItem('poisk_products', JSON.stringify(this.cartData));
    }
};

$(document).ready(function() {
  var cartData = JSON.parse(localStorage.getItem('poisk_products'));
  var cart = new Cart(cartData);
  RenderSmallCart = function() {
    return;
    $.post(
      '/Directory/SmallCartContent',
      'products=' + JSON.stringify(cart.cartData.products),
      function(response) {
        $('.cart-target').html(response);
      }
    );
    $.post(
      '/Directory/GetTotalPrice',
      'products=' + JSON.stringify(cart.cartData.products),
      function(response) {
        $('.c_panel_cart .int').html(response);
      }
    );
  };
  RenderPreOrderWindow = function() {};
  RenderSmallCart();

  createCartContent = function() {
    var cart_html = '';
    var first_result_price = 0;
    for (var i = 0; i < cart.cartData.products.length; i++) {
      cart_html += "<tr class='cart-row'>";
      cart_html +=
        "<td width='80' class='remove-form'><button class='remove-from-cart'><i class='fa fa-times' aria-hidden='true'></i></button><tnput type='hidden' value='" +
        cart.cartData.products[i].db_id +
        "' class='del_id'></td>";
      cart_html +=
        "<td width='200'><a href='/Product/" +
        cart.cartData.products[i].db_id +
        "'><img src='" +
        cart.cartData.products[i].img_url +
        "' width='180'></a></td>";
      cart_html +=
        "<td width='400'><a href='/Product/" +
        cart.cartData.products[i].db_id +
        "'>" +
        cart.cartData.products[i].p_name +
        '</a></td>';
      cart_html += "<td width='180'>" + cart.cartData.products[i].price + '</td>';
      cart_html +=
        "<td width='110'><div class='cart-set-quality-form'><input class='price-row' type='hidden' value='" +
        cart.cartData.products[i].price +
        "'><input type='text' class='cart-set-quality-input' value='" +
        cart.cartData.products[i].quantity +
        "'><button class='cart-set-quality-plus'>+</button><button class='cart-set-quality-minus'>-</button></div></td>";
      cart_html +=
        "<td width='180' class='result-price-row'><span>" +
        cart.cartData.products[i].price * cart.cartData.products[i].quantity +
        '</span></td>';
      cart_html += '</tr>';
      first_result_price += cart.cartData.products[i].price * cart.cartData.products[i].quantity;
    }
    $('.cart-content-table')
      .children('tbody')
      .html(cart_html);
    $('.subtotal .price_int').html(first_result_price);
  };
  createCartContent();
  $('.cart-target').on('click', '.small-cart-item-del', function() {
    var del_id = $(this)
      .closest('.small-cart-item-content')
      .find('.small-cart-del-id')
      .val();
    var removeResult = cart.removeLS_data(del_id);
    RenderSmallCart();
  });
  $('body').on('click', '.add_to_cart', function() {
    var pItemBlock = $(this).closest('.product-item'),
      price_str = pItemBlock.find('.price').text();
    price = price_str.replace(/\s/g, '');
    cart.editLS_data({
      img_url: pItemBlock.find('.featured-image').attr('src'),
      p_name: pItemBlock.find('.product-name').text(),
      price: parseInt(price),
      db_id: pItemBlock.find('.article-int').val(),
      TypTov: pItemBlock.find('.TypTov').val(),
      quantity: 1,
    });
    RenderSmallCart();
    pRowCreare('productWrapper');
  });
  $('.add-to-cart_p-card').click(function() {
    cart.editLS_data({
      img_url: $('#product_data #p_data_img-url').val(),
      p_name: $('#product_data #p_data_name').val(),
      price: parseInt($('#product_data #p_data_price').val()),
      quantity: parseInt($('#quality-form').val()),
      db_id: $('#product_data #p_data_id').val(),
      TypTov: $('#product_data #TypTov').val(),
    });
    RenderSmallCart();
    pRowCreare('productWrapper');
  });
  $('#in-carl-all').on('click', function() {
    $('.wishlist-item').each(function() {
      var p_data = {};
    });
  });

    $(".send-order").on("click", function () {
        $(".promo-item-wrapper.active").removeClass("active");
        $(this).closest(".promo-item-wrapper").addClass("active");
        addObj = parseFunc($(".promo-item-wrapper.active"));

        cart.editLS_data(addObj);

        var addObj2 = {
            img_url: "/Content/img/products/1000000/300000/30000/7000/600/50/0226548/Main/200X200.jpg",
            p_name: "науш Samsung SM-R170 Galaxy Buds(SM-R170NZWASEF) White",
            price: parseInt("1"),
            db_id: "290530",
            TypTov: "0",
            quantity: 1
        };
        cart.editLS_data(addObj2);

        RenderSmallCart();
        pRowCreare("productWrapper");
    });

    var parseFunc = function (elem) {
        var name = elem.find(".promo-item-content h2").text() + " ";
        name += elem.find(".promo-item-content h4").text();
        var addObj = {
            img_url: "/Content/img/products/1000000/300000/30000/7000/600/50/0226548/Main/200X200.jpg",
            p_name: name,
            price: parseInt("1000"),
            db_id: elem.find(".promo-item-content p.kodtov").text(),
            TypTov: "0",
            quantity: 1
        };
        return addObj;
    };
});
;
/*
    jQuery Masked Input Plugin
    Copyright (c) 2007 - 2015 Josh Bush (digitalbush.com)
    Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license)
    Version: 1.4.1
*/
!function (a) { "function" == typeof define && define.amd ? define(["jquery"], a) : a("object" == typeof exports ? require("jquery") : jQuery) }(function (a) { var b, c = navigator.userAgent, d = /iphone/i.test(c), e = /chrome/i.test(c), f = /android/i.test(c); a.mask = { definitions: { 9: "[0-9]", a: "[A-Za-z]", "*": "[A-Za-z0-9]" }, autoclear: !0, dataName: "rawMaskFn", placeholder: "_" }, a.fn.extend({ caret: function (a, b) { var c; if (0 !== this.length && !this.is(":hidden")) return "number" == typeof a ? (b = "number" == typeof b ? b : a, this.each(function () { this.setSelectionRange ? this.setSelectionRange(a, b) : this.createTextRange && (c = this.createTextRange(), c.collapse(!0), c.moveEnd("character", b), c.moveStart("character", a), c.select()) })) : (this[0].setSelectionRange ? (a = this[0].selectionStart, b = this[0].selectionEnd) : document.selection && document.selection.createRange && (c = document.selection.createRange(), a = 0 - c.duplicate().moveStart("character", -1e5), b = a + c.text.length), { begin: a, end: b }) }, unmask: function () { return this.trigger("unmask") }, mask: function (c, g) { var h, i, j, k, l, m, n, o; if (!c && this.length > 0) { h = a(this[0]); var p = h.data(a.mask.dataName); return p ? p() : void 0 } return g = a.extend({ autoclear: a.mask.autoclear, placeholder: a.mask.placeholder, completed: null }, g), i = a.mask.definitions, j = [], k = n = c.length, l = null, a.each(c.split(""), function (a, b) { "?" == b ? (n--, k = a) : i[b] ? (j.push(new RegExp(i[b])), null === l && (l = j.length - 1), k > a && (m = j.length - 1)) : j.push(null) }), this.trigger("unmask").each(function () { function h() { if (g.completed) { for (var a = l; m >= a; a++) if (j[a] && C[a] === p(a)) return; g.completed.call(B) } } function p(a) { return g.placeholder.charAt(a < g.placeholder.length ? a : 0) } function q(a) { for (; ++a < n && !j[a];); return a } function r(a) { for (; --a >= 0 && !j[a];); return a } function s(a, b) { var c, d; if (!(0 > a)) { for (c = a, d = q(b) ; n > c; c++) if (j[c]) { if (!(n > d && j[c].test(C[d]))) break; C[c] = C[d], C[d] = p(d), d = q(d) } z(), B.caret(Math.max(l, a)) } } function t(a) { var b, c, d, e; for (b = a, c = p(a) ; n > b; b++) if (j[b]) { if (d = q(b), e = C[b], C[b] = c, !(n > d && j[d].test(e))) break; c = e } } function u() { var a = B.val(), b = B.caret(); if (o && o.length && o.length > a.length) { for (A(!0) ; b.begin > 0 && !j[b.begin - 1];) b.begin--; if (0 === b.begin) for (; b.begin < l && !j[b.begin];) b.begin++; B.caret(b.begin, b.begin) } else { for (A(!0) ; b.begin < n && !j[b.begin];) b.begin++; B.caret(b.begin, b.begin) } h() } function v() { A(), B.val() != E && B.change() } function w(a) { if (!B.prop("readonly")) { var b, c, e, f = a.which || a.keyCode; o = B.val(), 8 === f || 46 === f || d && 127 === f ? (b = B.caret(), c = b.begin, e = b.end, e - c === 0 && (c = 46 !== f ? r(c) : e = q(c - 1), e = 46 === f ? q(e) : e), y(c, e), s(c, e - 1), a.preventDefault()) : 13 === f ? v.call(this, a) : 27 === f && (B.val(E), B.caret(0, A()), a.preventDefault()) } } function x(b) { if (!B.prop("readonly")) { var c, d, e, g = b.which || b.keyCode, i = B.caret(); if (!(b.ctrlKey || b.altKey || b.metaKey || 32 > g) && g && 13 !== g) { if (i.end - i.begin !== 0 && (y(i.begin, i.end), s(i.begin, i.end - 1)), c = q(i.begin - 1), n > c && (d = String.fromCharCode(g), j[c].test(d))) { if (t(c), C[c] = d, z(), e = q(c), f) { var k = function () { a.proxy(a.fn.caret, B, e)() }; setTimeout(k, 0) } else B.caret(e); i.begin <= m && h() } b.preventDefault() } } } function y(a, b) { var c; for (c = a; b > c && n > c; c++) j[c] && (C[c] = p(c)) } function z() { B.val(C.join("")) } function A(a) { var b, c, d, e = B.val(), f = -1; for (b = 0, d = 0; n > b; b++) if (j[b]) { for (C[b] = p(b) ; d++ < e.length;) if (c = e.charAt(d - 1), j[b].test(c)) { C[b] = c, f = b; break } if (d > e.length) { y(b + 1, n); break } } else C[b] === e.charAt(d) && d++, k > b && (f = b); return a ? z() : k > f + 1 ? g.autoclear || C.join("") === D ? (B.val() && B.val(""), y(0, n)) : z() : (z(), B.val(B.val().substring(0, f + 1))), k ? b : l } var B = a(this), C = a.map(c.split(""), function (a, b) { return "?" != a ? i[a] ? p(b) : a : void 0 }), D = C.join(""), E = B.val(); B.data(a.mask.dataName, function () { return a.map(C, function (a, b) { return j[b] && a != p(b) ? a : null }).join("") }), B.one("unmask", function () { B.off(".mask").removeData(a.mask.dataName) }).on("focus.mask", function () { if (!B.prop("readonly")) { clearTimeout(b); var a; E = B.val(), a = A(), b = setTimeout(function () { B.get(0) === document.activeElement && (z(), a == c.replace("?", "").length ? B.caret(0, a) : B.caret(a)) }, 10) } }).on("blur.mask", v).on("keydown.mask", w).on("keypress.mask", x).on("input.mask paste.mask", function () { B.prop("readonly") || setTimeout(function () { var a = A(!0); B.caret(a), h() }, 0) }), e && f && B.off("input.mask").on("input.mask", u), A() }) } }) });
jQuery(function ($) {
    var phoneValidationSelect = function () {
        if (window.innerWidth > 540) {
            $("#usr-phone").mask("+7 (999) 999-9999");
            $("#OrderPhoneNum").mask("+7 (999) 999-9999");
            $("#footer-feedback-input").mask("+7 (999) 999-9999");
            // Маска ввода телефона при регистрации
            $("div.reg-form input#phone").mask("+7 (999) 999-9999");
            $(".send-eMail-form").find(".form-control[name='phoneNum']").mask("+7 (999) 999-9999");
            $("#createPlanForm").find("input[name='PhoneNum']").mask("+7 (999) 999-9999");
        } else {
            intOnly($("#usr-phone"));
            intOnly($("#OrderPhoneNum"))
            intOnly($("#footer-feedback-input"));
            intOnly($("#div.reg-form__phone > div.form__group > input#phone"));
            intOnly($(".send-eMail-form"));
            intOnly($("#createPlanForm"));
        }
    }
    phoneValidationSelect();
});;
var DateForm = function (input) {
    var thisForm = this
    this.input = input;
    this.input.keydown(function () {
        return false;
    })
    this.input.wrap(this.wrapHTML);
    this.inputWrapper = this.input.parent(".date-form-wrap");
    this.inputWrapper.append("<div class='date-form-inner'></div>")
    this.date = new Date();
    this.dateFormCreate();
    this.inputWrapper.on("click", ".form-nav-btn", function () {
        if ($(this).children(".fa").hasClass("fa-chevron-left")) {
            var nextMonth = thisForm.date.getMonth() - 1;
        } else if ($(this).children(".fa").hasClass("fa-chevron-right")) {
            var nextMonth = thisForm.date.getMonth() + 1;
        }
        thisForm.date.setMonth(nextMonth);
        thisForm.dateFormCreate();
    })
    this.inputWrapper.on("click", ".day", function () {
        thisForm.inputWrapper.find(".day").removeClass("select-day");
        thisForm.input.val($(this).text() + "-" + (thisForm.date.getMonth() + 1) + "-" + thisForm.date.getFullYear());
        $(this).addClass("select-day");
    })
    this.input.val(this.date.getDate() + "-" + (this.date.getMonth() + 1) + "-" + this.date.getFullYear())
    this.inputWrapper.hover(function () {
        thisForm.inputWrapper.find(".date-form-inner").fadeIn(300);
    }, function () {
        thisForm.inputWrapper.find(".date-form-inner").delay(300).fadeOut(300);
    })
}
DateForm.prototype = {
    wrapHTML: "<div class='date-form-wrap'></div>",
    monthArr: {
        "0": ["Январь", 31],
        "1": ["Февраль", 28],
        "2": ["Март", 31],
        "3": ["Апрель", 30],
        "4": ["Май", 31],
        "5": ["Июнь", 30],
        "6": ["Июль", 31],
        "7": ["Август", 31],
        "8": ["Сентябрь", 30],
        "9": ["Окрябрь", 31],
        "10": ["Ноябрь", 30],
        "11": ["Декабрь", 31]
    },
    dateFormCreate: function () {
        var month = this.date.getMonth();
        var day = this.date.getDate();
        var year = this.date.getFullYear();


        this.formHTML = "<div class='date-form-nav'>\n";
        this.formHTML += "<button class='form-nav-btn'><i class='fa fa-chevron-left' aria-hidden='true'></i></button>";
        this.formHTML += "<span class='select-month'>" + this.monthArr[month][0] + " " + year + "г. </span>";
        this.formHTML += "<button class='form-nav-btn'><i class='fa fa-chevron-right' aria-hidden='true'></i></button>";
        this.formHTML += "</div>\n";
        this.formHTML += "<div class='select-day-form'>"
        for (var i = 0; i < this.monthArr[month][1]; i++) {
            if (i != day) {
                this.formHTML += "<div class='day'>" + (i + 1) + "</div>";
            } else {
                this.formHTML += "<div class='day select-day'>" + (i + 1) + "</div>";
            }
        }
        this.inputWrapper.find(".date-form-inner").html(this.formHTML);
    },
};
/*------------Carousel application-----------*/
var Carousel = function() {
  var _self = this;
  this.updateTotalItems();
  $('.compare-control, .compare-table').on('click', 'button', function() {
    if ($(this).hasClass('owl-prev')) {
      _self.prev();
    } else if ($(this).hasClass('owl-next')) {
      _self.next();
    }
  });

  $('.compare-table').on('click', '.check__input', function() {
    _self.onlyUniq(this.checked);
  });
  var resizeTimer;
  $(window).resize(function() {
    clearTimeout(resizeTimer);
    resizeTimer = setTimeout(function() {
      var oldItemsCount = Math.min(_self.totalItems, _self.itemsLength());
      var itemsCount = Math.min(_self.updateTotalItems(), _self.itemsLength());
      if (oldItemsCount !== itemsCount) {
        $('.compare-table td[colspan]').each(function() {
          $(this).attr('colspan', itemsCount);
        });
        _self.hideOffset();
        _self.onlyUniq($('.compare-table .check__input').is(":checked"));
      }
    }, 250);
  });
  var isBelow = false;
  window.onscroll = function() {
  	if (!isBelow && window.scrollY >= 250) {
  		isBelow = true;
  		var width = $('.compare-head').height();
  		$('.compare-head').after('<tr class="compare-head-gag" style="height: ' + width + 'px;"></tr>');
  		$('.compare-head').addClass('compare-head-fixed');
  	} else if (isBelow && window.scrollY < 250) {
  		isBelow = false;
  		$('.compare-head-gag').remove();
  		$('.compare-head').removeClass('compare-head-fixed');
  	}
  };
};
Carousel.prototype = {
  prev: function() {
    if (this.carouselMinIndex > 0) {
      this.carouselMinIndex--;
      this.hideOffset();
      this.onlyUniq($('.compare-table .check__input').is(":checked"));
    }
  },
  next: function() {
    if (this.carouselItemsLength < this.itemsLength()) {
      this.carouselMinIndex++;
      this.hideOffset();
      this.onlyUniq($('.compare-table .check__input').is(":checked"));
    }
  },
  displayButtons: function() {
    if (this.itemsLength() > this.totalItems) {
      var navButtons = '<button type="button" class="owl-prev disabled"><span aria-label="Previous">‹</span></button>\n';
      navButtons += '<button type="button" class="owl-next"><span aria-label="Next">›</span></button>';
      $('.catalog-nav').html(navButtons);
    } else {
      $('.catalog-nav').html('');
    }
    if (this.carouselMinIndex === 0) $('.owl-prev').addClass('disabled');
    else $('.owl-prev').removeClass('disabled');
    if (this.carouselItemsLength === this.itemsLength()) $('.owl-next').addClass('disabled');
    else $('.owl-next').removeClass('disabled');
  },
  carouselMinIndex: 0,
  totalItems: 5,
  get carouselItemsLength() {
    return this.carouselMinIndex + this.totalItems;
  },
  updateTotalItems: function() {
    var itemWidth = window.innerWidth > 750 ? 245 : 130;
    var tableSize = $('.compare-control').width();
    return this.totalItems = Math.floor(tableSize/itemWidth);
  },
  hideOffset: function() {
    for (var j = 0; j < this.rows.length; j++) {
      var children = this.rows[j].children;
      for (var i = 0; i < children.length; i++) {
        if (i >= this.carouselMinIndex && i < this.carouselItemsLength) {
          children[i].style.removeProperty('display');
        } else {
          children[i].style.display = 'none';
        }
      }
    }
    this.displayButtons();
  },
  onlyUniq: function(isChecked) {
    if (isChecked) {
      $('.compare-row').each(function() {
        var tr = this;
        var isEqual = true;
        var text = null;
        $(this).children('td').each(function() {
          if (this.style.display !== 'none') {
            if (text === null) text = $(this).text();
            else if ($(this).text() !== text) isEqual = false;
          }
        });
        if (isEqual) {
          $(this).prev('.compare-title').hide();
          this.style.display = 'none';
        } else {
          $(this).prev('.compare-title').show();
          this.style.removeProperty('display');
        }
      });
    } else {
      $('.compare-title, .compare-row').each(function() {
        this.style.removeProperty('display');
      });
    }
  },
  update: function(rows) {
    this.rows = rows;
    this.hideOffset();
  },
  itemsLength: function() {
    if (this.rows && this.rows[0]) {
      return this.rows[0].children.length;
    }
    return 0;
  }
};

/*--------------Compare page application------------------*/
var Compare = function() {
  this.createDataStorage();
};
Compare.prototype = {
  createDataStorage: function() {
    var compareData = localStorage.getItem('compareData');
    if (compareData) {
      this.compareData = JSON.parse(compareData);
    } else {
      compareData = {
        products: [],
      };
      localStorage.setItem('compareData', JSON.stringify(compareData));
      this.createDataStorage();
    }
  },
  addToComparison: function(addObj) {
    this.compareData.products[this.compareData.products.length] = addObj;
    localStorage.setItem('compareData', JSON.stringify(this.compareData));
    ls2.init.compare();
    return true;
    },

  getCountComparisonIntems: function () {
    return this.compareData.products.length;
  },

  removeFromComparison: function(itemId) {
    for (var i = 0; i < this.compareData.products.length; i++) {
      if (itemId == this.compareData.products[i].id) {
        this.compareData.products.splice(i, 1);
      }
    }
    localStorage.setItem('compareData', JSON.stringify(this.compareData));
    ls2.init.compare();
  },
  clearCompassionList: function() {
    this.compareData.products.length = 0;
    localStorage.setItem('compareData', JSON.stringify(this.compareData));
    ls2.init.compare();
    },
    // Показывает модальное окно с краткой информацией о добавленном товаре
  showPopup: function (product) {
        if (window.innerWidth <= 750) return;
      var modal = $('#modal-cart-compare');
        if (!modal.length) {
            const dialogHtml =
                '<div class="modal fade" id="modal-cart-compare" tabindex="-1" role="dialog">' +
                '<div class="modal-dialog" role="document">' +
                '<div class="modal-content-cart">' +
                '<div class="mcc-head">Товар добавлен к сравнению' +
                '<div class="modal-close" data-dismiss="modal"></div>' +
                '</div>' +
                '<div class="mcc-foot">' +
                '<button type="button" class="button mcc-button" data-dismiss="modal">Продолжить покупки</button>' +
                '<a href="/Compare/ComparePage"><button type="button" class="button mcc-button">Перейти к сравнению</button></a>' +
                '</div>' +
                '</div>' +
                '</div>' +
                '</div>';

            $("body").append(dialogHtml);
            modal = $('#modal-cart-compare');
        }

        const addChip = () =>
            '<div class="chip chip_background_yellow chip_size_s" style="margin-top: 4px">' +
            '<span class="chip__title chip__title_color_dark chip__title_size_s">Товар с витрины</span>' +
          '</div>'; 

        modal.modal();
    }
};

$(document).ready(function() {
  compare = new Compare();

  if (location.pathname === '/Compare/ComparePage') {
    carousel = new Carousel();
    var RenderCompareList = function() {
      compare.compareData['selectedCategory'] = compare.compareData.products.length ? $('#compare-categories').val() : null;
      $.ajax({
        url: '/Compare/getProducts',
        type: 'post',
        data: 'compareData=' + JSON.stringify(compare.compareData),
        success: function(response) {
          //----Рендеринг списка товаров----
          var productsCount = response.Products && response.Products.length || 0;
          var countText = 'В сравнении ' + productsCount + ' ' + ls2.gla(productsCount, 'товар', 'товара', 'товаров');
          $(".compare-count").text(countText);
          if (!response.Products) {
            return $('.compare-table').html('<h3>Список сравнений пуст, добавьте товар в сравнение для получения данных о нём.</h3>');
          }
          var charListHTML = '<tr class="compare-head">\n';
          var totalItems = carousel.updateTotalItems();
          var itemsLength = response.PropertyList && response.PropertyList[0] && response.PropertyList[0].Value.length;
          response.Products.forEach(function(product) {
            charListHTML += '<td><div class="compare-item"><a href="/Product/' + product.Id;
            charListHTML += '" class="compare-item-photo"><img src="/Content/img/products/' + product.FullDirectory + '/Main/200X200.jpg"></a>\n';
            charListHTML += '<a href="/Product/' + product.Id + '" class="compare-item-title">' + product.Name + '</a><div class="compare-item-prop"><div class="compare-item-in">В наличии</div>';
            charListHTML += '<div class="catalog-item-rating">';
            for (var i = 0; i < 5; i++) {
              charListHTML += i < product.Rating ? '<i class="active"></i>' : '<i></i>';
            }
            charListHTML += '</div></div><div class="compare-item-price"><div class="compare-item-price-new">';
            charListHTML += product.Price + '\u00A0₽</div>';
            if (product.OldPrice && product.OldPrice > product.Price) {
              charListHTML += '<div class="compare-item-price-old">' + product.OldPrice + '\u00A0₽</div>';
            }
            charListHTML += '</div><button class="compare-remove-item" type="button"></button>'
            charListHTML += '<input name="id" type="hidden" value="' + product.Id + '"></div></td>\n';
          });
          charListHTML += '</tr>\n<tr class="compare-mobile-container"><td colspan="' + Math.min(itemsLength, totalItems) + '"><div class="compare-mobile-row"><label class="table-check"><input class="check__input" type="checkbox"><span class="check__box"></span>';
          charListHTML += 'Показывать только различия</label><div class="catalog-nav"><button type="button" class="owl-prev disabled"><span aria-label="Previous">‹</span></button>';
          charListHTML += '<button type="button" class="owl-next"><span aria-label="Next">›</span></button></div></div></td></tr>';
          //----Рендеринг списка характеристик----
          response.PropertyList.forEach(function(item) {
            var colspan = Math.min(item.Value.length, totalItems);
            charListHTML += '<tr class="compare-title">\n<td colspan="' + colspan + '">' + item.Name + '</td></tr>\n<tr class="compare-row">\n';
            for (var i = 0; i < item.Value.length; i++) {
              charListHTML += '<td>' + item.Value[i] + '</td>\n';
            }
            charListHTML += '</tr>\n';
          });
          $('.compare-table').html(charListHTML);
          carousel.update($('.compare-head, .compare-row'));
        },
      });
    };

    function updateCategories() {
      $.ajax({
        url: '/Compare/getCategories',
        type: 'post',
        data: 'compareData=' + JSON.stringify(compare.compareData.products),
        success: function(response) {
          var compareListHTML = '';
          for (var i = 0; i < response.length; i++) {
            if (i === 0) {
              compareListHTML += "<option value='" + response[i].Id + "' selected>" + response[i].Name + '</option>';
            } else {
              compareListHTML += "<option value='" + response[i].Id + "'>" + response[i].Name + '</option>';
            }
          }
          $('#compare-categories').html(compareListHTML);
          RenderCompareList();
        }
      });
    }
    updateCategories();

    $('#compare-categories').change(function() {
      RenderCompareList();
    });
    $('.compare-table').on('click', '.compare-remove-item', function(event) {
      var id = $(this).siblings('input[name=id]').first().val();
      if (id) {
        var children = $('.compare-head').children().length;
        compare.removeFromComparison(id);
        if (children === 1) {
          updateCategories();
        } else {
          carousel.prev();
          RenderCompareList();
        }
      }
    });
    $('#compare-clear').click(function() {
      compare.clearCompassionList();
      location.reload();
    });
  }
});
;
intOnly = function(inputName) {
  inputName.keydown(function(event) {
    if (event.key == 'Backspace') return;
    if ((event.key < '0' || event.key > '9') && event.key != '/') {
      return false;
    }
  });
};
//-----RenderMessage-----
var RenderMessage = function(messageText) {
  var self = this;
  this.closeEventListener = [];
  this.inner = $(document.createElement('div'))
    .addClass('message-wrapper')
    .html('<p>' + messageText + '</p>');
  this.closeBtn = $(document.createElement('button'))
    .addClass('close-message')
    .html('x');
  this.closeEventListener.push(this.closeBtn);
  this.inner.append(this.closeBtn);
  if (arguments.length > 1) {
    for (var i = 0; i < arguments[1].length; i++) {
      this.inner.append(arguments[1][i]);
      this.closeEventListener.push(arguments[1][i]);
    }
  }
  $('body').append(this.inner);
  this.inner.animate(
    {
      opacity: 1,
      marginTop: -100,
    },
    300
  );
  if (arguments.length > 2) {
    if (arguments[2].shadow) {
      this.messageShadow = $(document.createElement('div')).addClass('message-shadow');
      $('body').append(this.messageShadow);
      this.messageShadow.fadeIn(300);
      this.scrollEwentOff = $(window).on('wheel', function() {
        return false;
      });
    }
  }
  this.closeMessage();
  return this.inner;
};
RenderMessage.prototype = {
  closeMessage: function() {
    var self = this;
    for (var i = 0; i < this.closeEventListener.length; i++) {
      $(this.closeEventListener[i]).on('click', function() {
        self.inner.animate(
          {
            opacity: 0,
            marginTop: -50,
          },
          300,
          function() {
            $(this).remove();
          }
        );
        if (self.messageShadow) {
          self.scrollEwentOff.off();
          self.messageShadow.animate(
            {
              opacity: 0,
            },
            300,
            function() {
              $(this).remove();
            }
          );
        }
      });
    }
  },
};
//-----Preloader-----
var Preloader = function(wrapper) {
  this.wrapper = wrapper;
};
Preloader.prototype = {
  on: function() {
    if (this.wrapper) this.wrapper.css({ position: 'relative', 'min-height': '100px' });
    if (this.wrapper) this.wrapper.append("<div id='preloader-wrapper'><i class='preloader-indicator'></i></div>");
  },
  off: function() {
      if (this.wrapper) this.wrapper.find('#preloader-wrapper').remove();
  },
};
/*-------------------------------------*/
var MessageCreate = function(message_txt) {
  $('.all').append("<div class='add-cart-message'><p>" + message_txt + '</p></div>');
  setTimeout(function() {
    $('.all')
      .find('.add-cart-message')
      .fadeOut(300, function() {
        $(this).remove();
      });
  }, 1800);
};
/*-------------------------------------*/
$(document).ready(function() {
  //get_small_cart_cont();
  $('.shop-nav-item')
    .last()
    .addClass('last-item');
  $('.store_location-link').click(function() {
    $('#select-city-shadow').fadeIn(300);
  });
  $('#feedback_on').click(function() {
    //yaCounter40213044 ? yaCounter40213044.reachGoal("feedbackFormOn") : null;
    $('#fb_shadow').fadeIn(300);
  });
  $('.footer-feedback-wrapper > button').on('click', function() {
    //yaCounter40213044 ? yaCounter40213044.reachGoal("feedbackFormOn") : null;
    $('#fb_shadow').fadeIn(300);
  });
  $('#fb-close').click(function() {
    $('#fb_shadow').fadeOut(300);
  });

  $('#mobile-slider')
    .find('.item')
    .each(function() {
      var img = $(this).find('img');
      $.ajax(img.attr('src'), {
        error: function() {
          img.closest('.item').remove();
        },
      });
    });

  $('.additional-menu')
    .children('.second-shop-nav')
    .hover(
      function() {
        $(this)
          .children('ul')
          .stop(true)
          .fadeIn(100);
      },
      function() {
        $(this)
          .children('ul')
          .stop(true)
          .fadeOut(100);
      }
    );
  //----
  (function showSecondNav(element) {
    $(element).hover(
      function() {
        $(this)
          .children('ul')
          .stop(true)
          .fadeIn(300);
      },
      function() {
        $(this)
          .children('ul')
          .stop(true)
          .fadeOut(300);
      }
    );
  })('.main-nav-item');
  //----Tabs----
  var Tab = function(tabMenu) {
    var element = this;
    tabMenu.find('li').each(function() {
      if ($(this).index() == 0) {
        $(this).addClass('active');
      }
      var targetItem = $(this).attr('target');
      $(this).click(function() {
        tabMenu.find('li').removeClass('active');
        $(this).addClass('active');
        element.tabAction(targetItem);
      });
      element.targets[element.targets.length] = targetItem;
    });
    for (var i = 0; i < element.targets.length; i++) {
      if (i != 0) {
        $(document)
          .find('.' + element.targets[i])
          .css({ display: 'none' });
      }
    }
  };
  Tab.prototype = {
    targets: [],
    tabAction: function(target) {
      for (var i = 0; i < this.targets.length; i++) {
        $(document)
          .find('.' + this.targets[i])
          .css({ display: 'none' });
      }
      $('.' + target).fadeIn({ display: 'block' }, 280);
    },
  };
  deliveryTab = new Tab($('.article-tabs'));
  //----
  (function() {
    var mm_mobile = function() {
      var mobile_mmWrapper = document.createElement('div');

      $(mobile_mmWrapper).append(
        (function() {
          var mm_inner = $(document.createElement('div'))
            .css({ width: $('body').width() })
            .attr('id', 'mm_inner');
          $(window).on('resize', function() {
            mm_inner.css({ width: $('body').width() });
          });
          mm_inner.append(
            (function() {
              var mm_citys = document.createElement('div'),
                p_elem = document.createElement('p');
              mm_citys.id = 'mm_citys';
              p_elem.classList.add('mm_show_citys');
              p_elem.innerHTML = $('.store_location-link')
                .children('span')
                .text();
              $(mm_citys)
                .append(p_elem)
                .append($('.select-city-list').clone());
              $(p_elem).on('click', function() {
                $('#mm_citys')
                  .find('.select-city-list')
                  .toggle();
              });
              return mm_citys;
            })()
          );
          mm_inner.append(
            (function() {
              //var mm_auth = document.createElement("div");
              //mm_auth.id = "mm_auth";
              //$.post("/Home/GetMobileA_Form", "data=null", function (response) {
              //    mm_auth.innerHTML = response;
              //});
              //return mm_auth;
              return null;
            })()
          );
          mm_inner.append(
            (function() {
              var mm_categories = document.createElement('div');
              mm_categories.id = 'mm_categories';
              $(mm_categories).html($('.shop-nav-list').clone(true));
              return mm_categories;
            })()
          );
          return mm_inner;
        })()
      );
      $('#mobile_mmWrapper').append(mobile_mmWrapper);
      $('body').on('click', '#mm_toggle', function() {
        var toggleStatus = $(this).find('.fa');
        if (toggleStatus.hasClass('fa-align-justify')) {
          toggleStatus.addClass('fa-times').removeClass('fa-align-justify');
          $('#mm_inner').show(0);
          $('.shop-nav-list').show(0);
        } else if (toggleStatus.hasClass('fa-times')) {
          toggleStatus.removeClass('fa-times').addClass('fa-align-justify');
          $('#mm_inner').hide(0);
        }
      });
    };
    mm_mobile();
    $('body').on('submit', '#mobile_A_Form', function() {
      LoginData = {
        Login: $('#mobile_A_Form_UN').val(),
        Password: $('#mobile_A_Form_Pass').val(),
      };
      $.post('/Account/login', 'LoginData=' + JSON.stringify(LoginData), function(response) {
        if (response.IdError == 0) {
          alert(response.Message);
          location.reload();
        } else {
          alert(response.Message);
        }
      });
      return false;
    });
  })();
  if (location.pathname == '/') {
    $('.main-nav-list').css({ display: 'block' });
  }
  //---Библиотека фильтрации----
  Filter = {
    GetFromURL: function(key, str) {
      return Filter.SearchObjCreate(str)[key];
    },
    SearchObjCreate: function(str) {
      if (str) {
        var SearchStr = str,
          SearchParamObj = new Object();
        SearchStr = SearchStr.split('?');
        StrUrl = SearchStr[0];
        StrUrl = StrUrl.split('/');
        if (StrUrl.length > 1) SearchParamObj['Catalog_id'] = StrUrl[StrUrl.length - 1];

        if (SearchStr.length > 1) {
          StrPar = SearchStr[1];
          SearchParam = StrPar.split('&');
          for (var i = 0; i < SearchParam.length; i++) {
            SearchParamItem = SearchParam[i].split('=');
            SearchParamObj[SearchParamItem[0]] = SearchParamItem[1];
          }
        }
        return SearchParamObj;
      }
    },
    //Создание объекта фильтрации
    GetFilterData_FORM: function() {
      var FilterData = new Object();
      FilterData.MinPrice = $('#filter-price-min input').val();
      FilterData.MaxPrice = $('#filter-price-max input').val();
      $('.filter-param').each(function() {
        if ($(this).children('.filter-active-item').length > 0) {
          var FilterParamLength = $(this).children('.filter-active-item').length,
            FilterIndex = 1;
          FilterData['prop_' + $(this).attr('rel')] = '';
          $(this)
            .children('.filter-active-item')
            .each(function() {
              FilterData[
                'prop_' +
                  $(this)
                    .parent('.filter-param')
                    .attr('rel')
              ] += $(this).attr('rel');
              if (FilterParamLength != FilterIndex) {
                FilterData[
                  'prop_' +
                    $(this)
                      .parent('.filter-param')
                      .attr('rel')
                ] += ',';
              }
              FilterIndex++;
            });
        }
      });
      FilterData['CurrentPage'] = parseInt(
        $('.prod-list-nav')
          .find('.active-page')
          .text()
      );
      FilterData['Catalog_id'] = Filter.GetFromURL('Catalog_id', window.location.pathname);
      FilterData['ViewType'] = (function() {
        return $('.change-pl-view')
          .find('input:radio:checked')
          .val();
      })();
      return FilterData;
    },
    CreateSearchStr: function(data) {
      var SearchStr = '?';
      var DataIndex = 1;
      for (var key in data) {
        if (DataIndex < Object.keys(data).length) {
          SearchStr += key + '=' + data[key] + '&';
        } else {
          SearchStr += key + '=' + data[key];
        }
        DataIndex++;
      }
      return SearchStr;
    },
    //Восстановление объекта фильтрации из локального харнилища
    GetFilterData_LS: function() {
      if (location.search == undefined || location.search == '') return;
      var FilterDataJSON = localStorage.getItem('FilterData');
      if (FilterDataJSON) {
        var FilterData = JSON.parse(FilterDataJSON);
        var pagePanel = $('.prod-list-nav').find('a');
        for (var i = 0; i < pagePanel.length; i++) {
          var PageInfo = pagePanel[i];
          if ($(PageInfo).attr('href')) {
            var PageURL = PageInfo.href;
            var CurrentPage = Filter.GetFromURL('CurrentPage', PageURL);
            var CatalogName = Filter.GetFromURL('Catalog_id', PageURL);
            if (CatalogName == FilterData.Catalog_id) {
              var LinkUrl = '?';
              for (var FilterParamKey in FilterData) {
                LinkUrl += FilterParamKey + '=' + FilterData[FilterParamKey] + '&';
              }
              LinkUrl += '&CurrentPage=' + CurrentPage;
              $(PageInfo).attr('href', LinkUrl);
            }
          }
        }
        if (
          FilterData.Catalog_id ==
          Filter.GetFromURL('Catalog_id', $('.prod-list-nav a').attr('href'))
        ) {
          for (var SelectedProp in FilterData) {
            arr = SelectedProp.split('_');
            if (arr.length > 1) {
              var Select = $(".filter-param[rel='" + arr[1] + "']");
              if (Select.length > 0) {
                var SelectedItemArr = FilterData[SelectedProp].split(',');
                Select.children('.filter-param-item').each(function() {
                  for (var i = 0; i < SelectedItemArr.length; i++) {
                    if ($(this).attr('rel') == SelectedItemArr[i]) {
                      $(this).addClass('filter-active-item');
                    }
                  }
                });
              }
            }
          }
          if (FilterData.MaxPrice) {
            $('#filter-price-max input').val(FilterData.MaxPrice);
          }
          if (FilterData.MinPrice) {
            $('#filter-price-min input').val(FilterData.MinPrice);
          }
        }
      }
    },
    EditFilterData_LS: function(ParamName, ParamValue) {
      FilterObj = Filter.SearchObjCreate(location.href);
      FilterObj[ParamName] = ParamValue;
      localStorage.setItem('FilterData', JSON.stringify(FilterObj));
    },
  };
  //----Мобильная фильтрация----
  // var modileFilterView = function(deviceMinWidth) {
  //   var deviceWidth = $(window).width();
  //   if (deviceWidth < deviceMinWidth && $('.filters').length == 1) {
  //     var mFilter = document.createElement('div');
  //     mFilter.classList.add('mFilter-wrapper');
  //     $(mFilter).append(
  //       (function() {
  //         var mFilter_btn = document.createElement('button');
  //         mFilter_btn.innerHTML = '<i class="fa fa-filter" aria-hidden="true"></i> Фильтры';
  //         mFilter_btn.classList.add('show-mFilter');
  //         mFilter_btn.addEventListener('click', function() {
  //           $('.mFilter-wrapper')
  //             .find('.filters')
  //             .toggle();
  //         });
  //         return mFilter_btn;
  //       })()
  //     );
  //     $('.filters').css({ display: 'none' });
  //     $(mFilter).append($('.filters'));
  //     $('#edit-view-panel').html(mFilter);
  //     $('.filters').on('submit', function() {
  //       $(this).hide();
  //     });
  //   } else {
  //     $('.right-colum').append($('.filters'));
  //     $('.mFilter-wrapper').remove();
  //     $('.filters').css({ display: 'block' });
  //   }
  // };
  // modileFilterView(400);
  //----Кнопки мобильной версии----
  (function() {
    $('.ms-on').on('click', function() {
      if ($('.search-form').css('display') == 'none') {
        $('.search-form').css({ display: 'inline-block' });
        $(this).css({ color: '#333' });
      } else {
        $('.search-form').css({ display: 'none' });
        $(this).css({ color: '#a9a9a9' });
      }
    });
    $('.m-to-cart').on('click', function() {
      location.pathname = '/Order/Cart';
    });
  })();
  //----Изменение нижней корзины(!Возможны ошибки, требуется отладка!)----
  function FooterCartDataEdit() {
    var CartData = JSON.parse(localStorage.getItem('poisk_products'));
    if (CartData) {
      if (CartData.products.length > 0) {
        $('.c_panel_cart .int').html(CartData.products.length);
        var TotalPrice = 0;
        for (var i = 0; i < CartData.products.length; i++) {
          TotalPrice +=
            parseInt(CartData.products[i].price) * parseInt(CartData.products[i].quantity);
        }
        $('.c_panel_cart .price').text(TotalPrice);
      }
    }
  }
  //----Парсинг URL(Определение контроллера и представления для вывода сценария страницы)----
  var path_str = document.location.pathname.split('/'),
    controller = path_str[1];
  action = path_str[2];
  function SearchStringParse() {
    if (!document.location.search == '') {
      var keys_str = document.location.search.split('?');
      keys = keys_str[1].split('&');
      search_keys = new Object();
      for (var i = 0; i < keys.length; i++) {
        key_item = keys[i].split('=');
        search_keys[key_item[0]] = key_item[1];
      }
    } else {
      search_keys = false;
    }
    return search_keys;
  }
  search_keys = SearchStringParse();
  $('.shop-nav .shop-nav-item').hover(
    function() {
      var scrollPos = window.pageYOffset;
      var maxScrollPos = $(this)
        .closest('.shop-nav-list')
        .offset().top;
      if (scrollPos > maxScrollPos) {
        var marginTop = scrollPos - maxScrollPos;
        $(this)
          .children('.second-shop-nav-list')
          .css({ marginTop: marginTop });
      } else {
        $(this)
          .children('.second-shop-nav-list')
          .css({ marginTop: 0 });
      }
      $(this)
        .children('.second-shop-nav-list')
        .stop(true)
        .fadeIn(0);
    },
    function() {
      $(this)
        .children('.second-shop-nav-list')
        .stop(true)
        .fadeOut(0);
    }
  );
  $('.second-shop-nav-list').each(function() {
    var CategoryLength = $(this).children('.second-shop-nav-item').length;
    if (CategoryLength > 33) {
      $(this).css({ width: '872px', overflow: 'scroll' });
    } else if (CategoryLength > 22) {
      $(this).width(654);
    } else if (CategoryLength > 11) {
      $(this).width(436);
    }
  });
  //----
  $('.product-item .add_to_cart')
    .mousedown(function() {
      $(this).addClass('on-click');
    })
    .mouseup(function() {
      $(this).removeClass('on-click');
    });
  $('.product-list')
    .on('mouseenter', '.product-item', function() {
      $(this)
        .find('.credit-price')
        .fadeIn(200);
    })
    .on('mouseleave', '.product-item', function() {
      $(this)
        .find('.credit-price')
        .fadeOut(200);
    });
  //----
  $('#to-start').on('click', function() {
    $('body').animate({ scrollTop: 0 }, 500);
    $('html').animate({ scrollTop: 0 }, 500);
  });
  if ($(document).scrollTop() < $(window).height()) {
    $('#to-start').css({ display: 'none' });
  } else {
    $('#to-start').css({ display: 'block' });
  }
  $(document).scroll(function() {
    if ($(document).scrollTop() > $(window).height()) {
      $('#to-start').fadeIn(300);
    } else {
      $('#to-start').fadeOut(300);
    }
  });
  $('.offers-box').hover(
    function() {
      $(this)
        .find('.shadow-top')
        .stop(true)
        .animate({ width: $(this).width() + 'px', height: $(this).height() + 'px' }, 350);
      $(this)
        .find('.shadow-bottom')
        .stop(true)
        .animate({ width: $(this).width() + 'px', height: $(this).height() + 'px' }, 350);
    },
    function() {
      $(this)
        .find('.shadow-top')
        .stop(true)
        .animate({ width: '0px', height: '0px' }, 350);
      $(this)
        .find('.shadow-bottom')
        .stop(true)
        .animate({ width: '0px', height: '0px' }, 350);
    }
  );
  //---Карусель (Лидеры продаж)---
  //1. Отсутствует кроссплатформенность (работает только если 3 товара в строке)
  //2. Исправить ошибки при безостаточном делении массива с данными
  var BestSellerHeight = ($('.best-sellers-p_item').height() + 50) * 2;
  function carousel_run() {
    $('.best-sellers-p_list-wrapper').height(BestSellerHeight);
    var NumberOfIterations =
      ($('.best-sellers-p_item').length - ($('.best-sellers-p_item').length % 6)) / 6 + 1;
    for (var i = 0; i < NumberOfIterations; i++) {
      $('#best-sellers-list-nav').append(
        "<button class='best-sellers-list-nav-btn' value='" + i + "'></button>"
      );
    }
  }
  if ($('.best-sellers-p_item').length > 6) {
    carousel_run();
  }
  $('#best-sellers-list-nav').on('click', '.best-sellers-list-nav-btn', function() {
    var BestSellerFactor = $(this).val();
    $('.best-sellers-p_list').animate(
      { 'margin-top': '-' + BestSellerHeight * BestSellerFactor + 'px' },
      480
    );
  });
  //----
  //----Страница товара----
  $('#quality_plus').click(function() {
    $('#quality-form').val(Number($('#quality-form').val()) + 1);
  });
  $('#quality_minus').click(function() {
    if (Number($('#quality-form').val()) > 1) {
      $('#quality-form').val(Number($('#quality-form').val()) - 1);
    }
  });
  //----
  //----Список товаров категории-----
  if (
    controller == 'ProductList' ||
    controller == 'Catalog' ||
    action == 'ProductList' ||
    action == 'MenuClick' ||
    action == 'Catalog'
  ) {
    Filter.GetFilterData_LS();
    $('.filter-active-item').css('display', 'inline-block');
    $('.filter-param-header').click(function() {
      if (
        $(this)
          .parent('.filter-param')
          .hasClass('on')
      ) {
        $(this)
          .parent('.filter-param')
          .removeClass('on');
        $(this)
          .parent('.filter-param')
          .children('.filter-param-item')
          .css({ display: 'none' });
        $(this)
          .children('i')
          .css({ transform: 'rotate(0deg)' });
      } else {
        $(this)
          .parent('.filter-param')
          .addClass('on');
        $(this)
          .parent('.filter-param')
          .children('.filter-param-item')
          .css({ display: 'inline-block' });
        $(this)
          .children('i')
          .css({ transform: 'rotate(-90deg)' });
      }
    });
    $('#get-filter-data').click(function() {
      FilterData = Filter.GetFilterData_FORM();
      localStorage.setItem('FilterData', JSON.stringify(FilterData));
      window.location.search = Filter.CreateSearchStr(FilterData);
    });
    $('#clear-filter-data').click(function() {
      localStorage.removeItem('FilterData');
      var SelectedProperty = Filter.SearchObjCreate(window.location.search),
        ClearObj = new Object();
      if (SelectedProperty.Catalog_id) {
        ClearObj.Catalog_id = SelectedProperty.Catalog_id;
      }
      if (SelectedProperty.CurrentPage) {
        ClearObj.CurrentPage = SelectedProperty.CurrentPage;
      }
      window.location.search = Filter.CreateSearchStr(ClearObj);
    });
  }
  //----
  //----Карточка товара
  if (controller == 'Product' || controller == 'Collection') {
    //----Галерея---
    $('#gallery_nav .gallery_item').click(function() {
      $('#gallery_nav .gallery_item.active').removeClass('active');
      $(this).addClass('active');
      $('#gallery')
        .children('img')
        .attr('src', $(this).attr('rel'));
    });
    var options_num = 0;
    function hideTableRows(visibleRows) {
      options_num = 0;
      $('.performance-table-wrapper')
        .find('tr')
        .each(function() {
          if (options_num > visibleRows) {
            $(this).css({ display: 'none' });
          }
          options_num++;
        });
    }
    hideTableRows(10);
    if (options_num > 10) {
      $('.performance-table-wrapper').append(
        "<button class='interface-btn show_more_options'>Показать все характеристики</button>"
      );
    }
    $('.performance-table-wrapper').on('click', 'button', function() {
      if ($(this).hasClass('show_more_options')) {
        $('.performance-table-wrapper')
          .find('tr')
          .each(function() {
            $(this).css({ display: 'table-row' });
          });
        $(this)
          .text('Скрыть характеристики')
          .addClass('hide_more_options')
          .removeClass('show_more_options');
      } else if ($(this).hasClass('hide_more_options')) {
        hideTableRows(10);
        $(this)
          .text('Показать все характеристики')
          .addClass('show_more_options')
          .removeClass('hide_more_options');
      }
    });
  }
  //----
  //----Корзина (LocalStorage)----
  /*function OrderFormTransform() {
        var windowHeight = $(window).height(),
            formHeight = $(".order-form").height();
        $(".order-form").css({ "margin-top": "-" + formHeight/2 + "px" })
    }*/
  if (action == 'Cart') {
    $('.nav-tabs li a').click(function() {
      //OrderFormTransform()
    });
  }
  //----
  //----Личный кабинет----
  if (action == 'PersonalArea') {
    $(document).on('click', '.close-message', function() {
      $(this)
        .parent('div')
        .fadeOut(330);
    });
    $('.p-area-btn').mousedown(function() {
      $(this).addClass('clicked');
    });
    $('.p-area-btn').mouseup(function() {
      $(this).removeClass('clicked');
    });
    if (search_keys.select == 'mailing') {
      function MailingSettings(SettingsData) {
        var SettingsIndex = 1;
        $('.mailing-on').each(function() {
          if (SettingsData['mailing_' + SettingsIndex] == 'true') {
            $(this).prop('checked', true);
          } else {
            $(this).prop('checked', false);
          }
          SettingsIndex++;
        });
      }
      var UsrId = $('#user-id').val();
      $.ajax({
        url: 'ajax/edit_usr_data.php',
        type: 'post',
        dataType: 'json',
        data: {
          UsrId: UsrId,
        },
        success: function(data) {
          MailingSettings(JSON.parse(data));
        },
      });
      $('#edit-mailing-param').click(function() {
        var UsrId_edit = $('#user-id').val(),
          UsrData_edit = new Object();
        $('.mailing-row').each(function() {
          if (
            $(this)
              .find('.mailing-on')
              .is(':checked')
          ) {
            UsrData_edit['mailing_' + $(this).index()] = true;
          } else {
            UsrData_edit['mailing_' + $(this).index()] = false;
          }
        });
        $.ajax({
          url: 'ajax/edit_usr_data.php',
          type: 'post',
          dataType: 'json',
          data: {
            UsrId_edit: UsrId_edit,
            UsrData_edit: UsrData_edit,
          },
          success: function(data) {
            MailingSettings(data);
            $('#edit-result').html(
              "<span class='success'>Данные успешно изменены!</span><button class='close-message'><i class='fa fa-times' aria-hidden='true'></i></button>"
            );
            $('#edit-result').fadeIn(330);
          },
        });
      });
    }
    if (search_keys.select == 'history_of_orders') {
      $('.order-edit').click(function() {
        $(this)
          .parent('.orders-item-row-cp')
          .find('.p-area-btn')
          .fadeIn(330);
        $('.order-delete').click(function() {
          var OrderId = $(this)
            .parent('.orders-item-row-cp')
            .children('.order-id')
            .val();
          $.ajax({
            url: 'ajax/edit_usr_data.php',
            type: 'post',
            dataType: 'html',
            data: {
              OrderId: OrderId,
            },
            success: function(data) {
              alert(data);
            },
          });
          $(this)
            .parent('.orders-item-row-cp')
            .parent('.orders-item')
            .fadeOut(420);
        });
      });
    }
  }
  var quickAuth = function(htmlObj) {
    var authWrap = document.createElement('div');
    authWrap.classList.add('quick-auth-wrap');
    createInnerHTML = function() {
      if (htmlObj.find('.quick-auth-wrap').length == 0) {
        $.ajax({
          url: '/Account/quickAuthForm',
          success: function(response) {
            authWrap.innerHTML = response;
            htmlObj.append(authWrap).removeClass('qa-wr');
          },
        });
      }
    };
    htmlObj.find('span').on('click', function() {
      htmlObj.addClass('qa-wr');
      createInnerHTML();
    });
    htmlObj.on('click', '.qa-close', function() {
      authWrap.remove();
    });
    htmlObj.on('submit', 'form', function() {
      var UserData = {};
      $(this)
        .find('input')
        .each(function() {
          UserData[$(this).attr('name')] = $(this).val();
        });
      $.ajax({
        url: '/Account/Login',
        data: 'LoginData=' + JSON.stringify(UserData),
        success: function(response) {
          console.log(response);
          if (response.IdError == 0) {
            alert(response.Message);
            //yaCounter40213044 ? yaCounter40213044.reachGoal("userAuthorization") : null;
            location.reload();
          } else {
            alert(response.Message);
          }
        },
      });
      return false;
    });
  };
  quickAuth($('.qa-on'));
  var attentionMessage = function(HTMLobj, message) {
    var messageWrapper = document.createElement('div');
    messageWrapper.classList.add('attention-message');
    messageWrapper.innerHTML =
      "<button class='attention-message-close'>x</button><p>" + message + '</p>';
    HTMLobj.find('img')
      .on('click', function() {
        $(this)
          .parent('div')
          .append(messageWrapper);
      })
      .css({ cursor: 'pointer' });
    HTMLobj.on('click', '.attention-message-close', function() {
      messageWrapper.remove();
    });
  };
  /*----13.03.2017 Сиротенко С.С.----*/
  (function() {
    $('.categories-item')
      .find('span')
      .on('click', function() {
        if ($(this).hasClass('show')) {
          $(this)
            .removeClass('show')
            .addClass('hide')
            .html('-');
          $(this)
            .closest('.categories-item')
            .children('ul')
            .fadeIn(400);
        } else if ($(this).hasClass('hide')) {
          $(this)
            .addClass('show')
            .removeClass('hide')
            .html('+');
          $(this)
            .closest('.categories-item')
            .children('ul')
            .fadeOut(400);
        }
      });
  })();
  var message =
    'Товар является витринным образцом, поэтому может иметь незначительные внешние изъяны. Также у него могут отсутствовать упаковка и инструкция. При получении товара в магазине, вы сможете его осмотреть и принять окончательное решение о покупке.';
  attentionMessage($('.attention-wrap'), message);
  $('.send-eMail-form').on('submit', function() {
    var pa = $(this)
      .find('.pd_permission_accept')
      .find('input')
      .prop('checked');
    if (pa) {
      var formData =
        $(this).serialize() +
        '&City=' +
        $('.store_location-link')
          .children('span')
          .text();
      $.post(
        '/Feedback/MailForm',
        formData,
        function(response) {
          alert(response);
          $('.send-eMail-form')
            .find('.form-control')
            .each(function() {
              $(this).val('');
            });
        },
        'html'
      );
    } else {
      alert('Вы не дали разрешение на обработку персональных данных.');
    }
    return false;
  });
  var AJAX_searchList = function(formInput, reqWrapper) {
    var self = this;
    this.formInput = formInput;
    this.reqWrapper = reqWrapper;
    this.formInput.on('keyup', function() {
      self.sendRequest($(this).val(), null);
    });
  };
  AJAX_searchList.prototype = {
    sendRequest: function(data, timer) {
      var self = this;
      if (data) {
        if (window.req_interval) {
          clearInterval(window.req_interval);
        }
        window.req_interval = setTimeout(function() {
          $.get('/home/SearchSimpleResult?SearchText=' + data, function(response) {
            self.rehder_list(response);
            self.reqWrapper.css({ display: 'block' });
          });
        }, 350);
      } else {
        this.reqWrapper.css({ display: 'none' });
      }
    },
    rehder_list: function(data) {
      if (data.length > 0) {
        self = this;
        var resp_html = document.createElement('UL');
        var num = 0;
        while (num < data.length) {
          resp_html.appendChild(
            (function(li_elem_data) {
              var resp_row_html = document.createElement('LI');
              switch (li_elem_data.Type) {
                case 'Product':
                  resp_row_html.appendChild(self.render_product_link(li_elem_data));
                  break;
                case 'Catalog':
                  resp_row_html.appendChild(self.render_category_link(li_elem_data));
                  break;
              }
              return resp_row_html;
            })(data[num])
          );
          num++;
        }
        if (data.length == 5) {
          var more_results_row = document.createElement('LI');
          var more_results_link = document.createElement('A');

          more_results_link.style.paddingTop = '6px';
          more_results_link.style.paddingBottom = '6px';
          more_results_link.style.backgroundColor = '#f1f1f1';
          more_results_link.style.borderRadius = '5px';

          more_results_link.href = '/Home/SearchResult?SearchText=' + $('#search-input').val();
          more_results_link.innerHTML = '<span>Показать все результаты...</span>';
          more_results_row.appendChild(more_results_link);
          resp_html.appendChild(more_results_row);
        }
        this.reqWrapper.html(resp_html);
      } else {
        this.reqWrapper.css({ display: 'none' });
      }
    },
    render_product_link: function(data) {
      var resp_row_link = document.createElement('A');
      resp_row_link.classList.add('simple-search-link');
      resp_row_link.href = data.UrlObject;
      //resp_row_link.innerHTML = "<img src='" + data.UrlImage + "' />";
      resp_row_link.innerHTML += '<span>' + data.Name + '</span>';
      return resp_row_link;
    },
    render_category_link: function(data) {
      var resp_row_link = document.createElement('A');
      resp_row_link.href = data.UrlObject;
      resp_row_link.innerHTML +=
        "<h4 style='color: #0062bd; padding: 8px 17px; font-size: 17px'>" + data.Name + '</h4>';
      return resp_row_link;
    },
  };
  var simple_ajax_search = new AJAX_searchList($('#search-input'), $('#ajax-search-result'));

  /*===26.01.18 Сиротенко С.С.===*/

  if (window.innerWidth > 600) {
    $("input[name='OrderPhoneNum']").mask('+7 (999) 999-9999');
  } else {
    $("input[name='OrderPhoneNum']").keyup(function(e) {
      this.value = this.value.replace(/[^0-9\.]/g, '');
    });
  }
  var renderForm = function(formData) {
    var form = $(document.createElement('form')).addClass('product-data');
    for (var i = 0; i < formData.length; i++) {
      var formRow = document.createElement('input');
      $(formRow)
        .attr('type', 'hidden')
        .attr('value', formData[i].value)
        .attr('name', formData[i].name);
      form.append(formRow);
    }
    return form;
  };

  var getProducts_OCB = function(qName, idName, isLast = false) {
    const productForm = $('.ecommerce-data-detail').first();

    let obj = {};
    obj[qName] = isLast ? '1' : productForm.find("input[name='quantity']").val();
    obj[idName] = productForm.find("input[name='id']").val();
    obj['isLast'] = isLast;

    return [obj];
  };

    var renderShopsList_OCB = function(select, data) {
        select.html('');
        for (var i = 0; i < data.length; i++) {
          var option = $(document.createElement('option'))
            .attr('value', data[i].Id)
            .text(data[i].Name);
          select.append(option);
        }
    };
  
    var getShopPoints = function (data) {
        $.post('/Order/GetStoreAvailableList', 'Jdata=' + JSON.stringify(data), function(response) {
            renderShopsList_OCB($("select[name='citysList']"), response);

            $("select[name='citysList']").closest('.form-group').show(0);
        });
    };

    $('body').on('click', "a[href='#pCardModal']", function () {
        getShopPoints(getProducts_OCB('quantity', 'db_id'));
        return false;
    });

    // Щелчок по кнопке "Купить в 1 клик"
    $(".pCard-btn[data-target='#pCardModal']").on('click', function () {
        const clickedLastProduct = $(this).attr('data-last-product'); // Покупка товара с витрины 

        // Дописываем в форму диалога параметр isLast
        if (clickedLastProduct) $('#oneClickByForm').attr('data-last-product', true);
        else $('#oneClickByForm').removeAttr('data-last-product');

        const product = getProducts_OCB('quantity', 'db_id', Boolean(clickedLastProduct));

        getShopPoints(product); // Получить список филиалов выдачи и показать модальное окно
    });

    $('#oneClickByForm').on('submit', function () {
        const clickedLastProduct = $(this).attr('data-last-product'); // Покупка товара с витрины 

        $("button[form='oneClickByForm']").prop('disabled', true);
        var CartData = {}, self = $(this);
        CartData['OrderType'] = 3;
        CartData['OrderUserName'] = $("input[name='OrderUserName']").val();
        CartData['OrderPhoneNum'] = $("input[name='OrderPhoneNum']").val();
        CartData['CityId'] = $('#selectedCity').data('city-id');
        CartData['products'] = getProducts_OCB('Kol', 'Id', Boolean(clickedLastProduct));

        CartData['Stock'] = $("select[name='citysList']").val();

        $.post('/Order/OrderResult', 'OrderData=' + JSON.stringify(CartData), function (response) {
            if (response.IdError == 0) {
                alert(
                    'Ваш заказ успешно оформлен. Номер вашего заказа: ' +
                    response.orderNum +
                    '. Благодарим за покупку.'
                );
                self.find("input[type='text']").val('');
                self.find("input[type='number']").val('');
                $('#pCardModal').modal('hide');
                $("button[form='oneClickByForm']").prop('disabled', false);

                ecommerceOrderCreate(response.Message, response.products);
                //if (typeof yaCounter40213044 !== 'undefined' && yaCounter40213044) {
                //    yaCounter40213044.reachGoal('1click');
                //}
            } else {
                alert('Ошибка при оформлении заказа. Приносим свои извинения за неудобства.');
            }
        });

        return false;
  });

  $('#installation-include').on('change', function() {
    $(this).submit();
  });
  $('.close-select-city-form').on('click', function() {
    $('#select-city-shadow').fadeOut(200);
  });
  $('.footer-phone-link').on('click', function() {
    $('#fb_shadow').fadeIn(200);
  });
});
;
$(document).ready(function () {
    var ShowPromo = function () {
        $(".bonus-promo-wrap").fadeIn(300, function () {
            $(this).find(".bonus-promo-inner").animate({
                marginLeft: 0
            }, 300);
        });
    };
    var HidePromo = function () {
        $(".bonus-promo-wrap > .bonus-promo-inner").animate({
            marginLeft: -300
        },300, function () {
            $(this).closest(".bonus-promo-wrap").fadeOut(300);
            });
        ChengePromoCheck(true);
        return false;
    };
    var SecondPromoForm = function () {
        var Promo = $(".bonus-promo-inner");
        Promo.find(".s_1st").fadeOut(300, function () {
            Promo.find(".s_2st").fadeIn(300);
        });
    };
    var PromoCheck = function () {
        return !!localStorage.getItem("promo_check");
    };
    var ChengePromoCheck = function (val) {
        val ? localStorage.setItem("promo_check", true) : localStorage.removeItem("promo_check");
    };
    if (!PromoCheck() && location.pathname.toLowerCase() != "/bonus/kupon") setTimeout(ShowPromo, 2000);
    $(".close-promo, .promo-no").on("click", HidePromo);
    $(".promo-yes").on("click", SecondPromoForm);
    $(".promo-form").on("submit", function () {
        $.post("/Bonus/AddingKupon/", $(this).serialize(), function (res) {
            if (res.IdError == 0) {
                alert(res.Message);
            } else {
                alert(res.Message);
            }
            ChengePromoCheck(true);
        });
        HidePromo();
        return false;
    });
    $(".promo-form").on("change", function () {
        var pc = $(this).find("input[name='promo_compliance']").prop("checked");
        var sb = $(this).find("input[type='submit']");
        pc ? sb.prop("disabled", false) : sb.prop("disabled", true);
    });
});;
