﻿var hidingTemplate = '[acompare] <small class="gray smallCompareCount"></small>';
var acompare = '<a href="/catalog/compare/">Перейти к сравнению</a>';
var acompare1 = 'Добавьте еще один товар';

var month = 30 * 24 * 60 * 60 * 1000;
var year = 365 * 24 * 60 * 60 * 1000;

$(function() {
    Compare();
    SoonNotify();
});

if (Array.indexOf = "undefined" || !Array.indexOf) {
    Array.prototype.indexOf = function(obj) {
        for (var i = 0; i < this.length; i++) {
            if (this[i] == obj) {
                return i;
            }
        }
        return -1;
    }
}

function Compare() {
    $(".compare-btn").unbind("click").click(function() {
        if ($(this).hasClass("compare-btn-disabled")) {
            return false;
        }
    });

    $("span[id^=addCompare_]").unbind("click").click(function() {
        var count = 0;
        var a = $(this);
        var id = a[0].id.split('_')[1];
        if (a.hasClass("not")) {
            a.removeClass("not");
            a.html("<span>Добавить к сравнению</span>");

            var arr = GetCookie(CompareCookieName).split(',');
            arr.splice(arr.indexOf(id), 1);
            var val = "";
            for (var i = 0; i < arr.length; i++) {
                if (val == "")
                    val += arr[i];
                else
                    val += ',' + arr[i];
            }

            if (val == "") {
                $(".compare-btn").addClass("compare-btn-disabled");
                $("*[class*=clear-compare]").addClass("compare-btn-disabled");
                $(".hiding").html("");
                $(".btn-compare-count").html("(0)");
                SetCookie(CompareCookieName, val, new Date(new Date().getTime() - month).toUTCString());
            }
            else {
                count = arr.length;
                if (count == 1) {
                    $(".compare-btn").addClass("compare-btn-disabled");
                    $("*[class*=clear-compare]").removeClass("compare-btn-disabled");        
                    $(".hiding").html(hidingTemplate.replace("[acompare]", acompare1));
                } else {
                    $(".compare-btn").removeClass("compare-btn-disabled");
                    $("*[class*=clear-compare]").removeClass("compare-btn-disabled");
                    $(".hiding").html(hidingTemplate.replace("[acompare]", acompare));
                }
                $("*[class*=smallCompareCount]").html(count);
                $(".btn-compare-count").html("(" + (count) + ")");
                SetCookie(CompareCookieName, val, new Date(new Date().getTime() + month).toUTCString());
            }
            NotifySuccessRemove();
        }
        else {
            var val = GetCookie(CompareCookieName);
            if (val == null)
                val = id;
            else {
                count = val.split(",").length;
                if (count >= 4) {
                    $.notifier("Вы уже добавили к сравнению 4 товара. Удалите, пожалуйста какой-нибудь из них.", "error");
                    return false;
                }
                else {
                    if (val.indexOf(id) == -1) {
                        val += "," + id
                    }                                  
                }
            }
            a.addClass("not");
            a.html("<span>Удалить из сравнения</span>");
            count = val.split(",").length;
            if (count == 1) {
                $(".compare-btn").addClass("compare-btn-disabled");
                $("*[class*=clear-compare]").removeClass("compare-btn-disabled");
                $(".hiding").html(hidingTemplate.replace("[acompare]", acompare1));
            } else {
                $(".compare-btn").removeClass("compare-btn-disabled");
                $("*[class*=clear-compare]").removeClass("compare-btn-disabled");
                $(".hiding").html(hidingTemplate.replace("[acompare]", acompare));
            }
            $("*[class*=smallCompareCount]").html(count);
            $(".btn-compare-count").html("(" + (count) + ")");
            SetCookie(CompareCookieName, val, new Date(new Date().getTime() + month).toUTCString());
            NotifySuccessAdd();
        }

        return false;
    });
}

function NotifySuccessAdd() {
    $.notifier("Товар успешно добавлен к сравнению.", "success");
}
function NotifySuccessRemove() {
    $.notifier("Товар успешно удален из сравнения.", "success");
}

function SoonNotify() {
    $("*[id^=aSoonNotify_]").unbind("click").click(function() {
        var id = this.id.split("_")[1];
        $("#spanSoonName").html($("#hSoonName_" + id + "").val());
        $("#hProductId").val(id);
        $("#divPopup").fadeIn();
        return false;
    });

    $("#aAddSubscription").unbind("click").click(function() {
        var val = $("#tbEmail").val();
        var id = $("input[id$=hProductId]").val();
        if (val != null && ValidateEmail(val)) {
            $.ajax({
                type: "POST",
                url: "/Catalog/Category.aspx/AddSubscription",
                data: "{productId: '" + id + "', email: '" + val + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(response) { $('#divPopup').fadeOut(); $.notifier("Вы успешно подписались на рассылку уведомлений.", "success"); },
                error: function(response, textStatus) { $.notifier("Произошла ошибка. Попробуйте снова.", "error"); }
            });
        }
        else {
            $.notifier("Ошибка. Поля заполнены неверно", "error");
        }
    });
}

function clearCompare(e) {
    var val = GetCookie(CompareCookieName);
    if (val == null)
        return;
    val = "";
    $("span[id*=addCompare_]").html("<span>Добавить к сравнению</span>");
    $("span[id*=addCompare_]").removeClass("not");
    $(".compare-btn").addClass("compare-btn-disabled");
    $("*[class*=clear-compare]").addClass("compare-btn-disabled");
    $(".hiding").html("");
    $(".btn-compare-count").html("(0)");
    SetCookie(CompareCookieName, val, new Date(new Date().getTime() - month).toUTCString());
    $.notifier("Товары успешно удалены из сравнения.", "success");    
}