jQuery(function($) {

    // Preload
    var image = $("<img />").attr("src", toys.baseUrl + "/i/phone-a.png");
    var image = $("<img />").attr("src", toys.baseUrl + "/i/phone-arr-a.png");

    // Shopping cart
    //var modal = $("<div id=\"cartModal\" class=\"modal hide\"></div>");
    //$("body").append(modal);

    $("#cartModal").on("shown", function(){
        $(".quantity").spinner({
            min: 1,
            max: 100,
            width: 30,
            stop: function(){
                $.get(toys.cartUpdateUrl+"?id=" + this.id.replace("qp", "")+"&q="+$(this).val()+"&shippingType=novaposhta", function(data) {
                    $("#total").text(data.total);
                    $("#cartTotal").text(data.total);
                    $("#cartQuantity").text(data.quantity);

                    $(".shipping-button").each(function () {$(this).removeClass("active")});
                    $("#shippingButton"+data.shippingCost).addClass("active");
                    //update cart in toolbar
                    $(".toolbar .span3").html('<div class="top-cart pull-right">' + $(".top-cart").html() + "</div>");

                    $("#rp"+data.id+" td.orange-price span").text((data.productPrice*data.productQuantity).toFixed(0));
                }, "json");
            }
        });

        $(".removeFromCart").on("click", function(e){
            $.get(toys.cartRemoveUrl+"?id=" + e.currentTarget.id.replace("cp", "")+"&shippingType=novaposhta", function(data) {
                $("#total").text(data.total);
                $("#cartTotal").text(data.total);
                $("#cartQuantity").text(data.quantity);

                $("#rp" + data.id).remove();

                if ( parseInt(data.total) == 0 )
                {
                    $("#cartIcon").removeClass("on").addClass("off");
                    $("#orderLinkWrap").addClass("empty");
                    $("#orderLink").hide();
                    $("#cartModal").modal("hide");
                }

                $(".shipping-button").each(function () {$(this).removeClass("active")});
                $("#shippingButton"+data.shippingCost).addClass("active");
                //update cart in toolbar
                $(".toolbar .span3").html('<div class="top-cart pull-right">' + $(".top-cart").html() + "</div>");

                window.dataLayer = window.dataLayer || [];
                dataLayer.push(data.gAEEProducts);
            }, "json");
        });

        $("html, body").animate({
            scrollTop: ($("#btnMakeOrder").offset().top - 300)
        }, 0);
    }).on("hidden", function () {
        $("#cartModal").html("");
    });

    $(document).on("click", ".addToCart", function(e) {
        if($(this).attr('id')==='fbAddToCart') {
            jQuery.fancybox.close();
        }
        addToCart($(this).data('id'));
    });

    function addToCart(itemId)
    {
        // Support for AJAX loaded modal window.
        $.get(toys.cartAddUrl+"?id=" + itemId + "&shippingType=novaposhta" + toys.cartReload, function(data) {
            $("#cartTotal").text(data.total);
            $("#cartQuantity").text(data.quantity);
            $("#cartIcon").removeClass("off").addClass("on");
            $("#orderLinkWrap").removeClass("empty");
            $("#orderLink").show();
            $("#cartModal").html(data.html);
            $("#cartModal").modal("show");
            $(".shipping-button").each(function () {$(this).removeClass("active");});
            $("#shippingButton"+data.shippingCost).addClass("active");
            //update cart in toolbar
            $(".toolbar .span3").html('<div class="top-cart pull-right">' + $(".top-cart").html() + "</div>");
        }, "json");
    }

    // Modal window for Login/Registration/Reset password
    var modal = $('<div id="loginModal" class="modal hide"></div>');
    $("body").append(modal);

    $("#loginModal").on("shown", function() {

    }).on("hidden", function () {
        $.loader.close(false);
        $("#loginModal").html("");
    });
    // Loading indicator settings (for #loginModal)
    $loader_data = {
        autoCheck: 32,
        size: 32,
        bgColor: 'transparent',
        bgOpacity: 0.5,
        fontColor: '#ccc',
        title: '',
        isOnly: true,
        imgUrl: '/themes/flat/css/loading[size].gif',
        css: { marginTop:'7px' }
    };
    // Login link
    $(document).on("click", ".loginLink", function(e) {
        if (toys.isLoginPage == true)
        {
            $('.modal-header .close').trigger('click');
            $('#LoginForm_username').focus();
        }
        else
        {
            $("#loginModal").html('<div class="modal-header"><h2 style="margin:0 0 15px 0">'+toys.login+'</h2></div>');
            $("#loginModal").modal("show");
            $('.modal-header').loader($loader_data);
            $.ajax({
            	dataType:'html',
                success: function(data) {
                    $.loader.close(false);
                    $("#loginModal").html(data);
                    $('#LoginForm_username').focus();
                },
                type: 'GET',
                url: toys.loginUrl,
            });
        }
    });
    // Login submit
    $(document).on('click', '.submitLogin', function() {
        $('.submitLogin').css('visibility','hidden');
        $('.modal-header').loader($loader_data);
        var data = $('#login-form').serialize();
        $.ajax({
            type: 'POST',
            url: $('#login-form').attr('action'),
            data:data,
            success:function(data){
                $.loader.close(false);
                if ( data == 1 ) {
                    window.location.reload();
                }
                else {
                    $('#loginModal').html(data);
                }
            },
            error: function(data) { // if error occured
                alert('Ошибка! Попробуйте еще раз');
            },
            dataType:'html'
        });
        //  return false;
    });

    // Reset password link
    $(document).on("click", ".resetPasswordLink", function(e) {
        $("#loginModal").html('<div class="modal-header"><h2 style="margin:0 0 15px 0">'+toys.resetPassword+'</h2></div>');
        $("#loginModal").modal("show");
        $('.modal-header').loader($loader_data);
        $.ajax({
            type: 'GET',
            url: toys.resetPasswordUrl,
            success: function(data) {
                $.loader.close(false);
                $("#loginModal").html(data);
            }
        });
        $('#Customer_phone').focus();
    });
    // Reset password submit
    $(document).on('click', '.submitResetPassword', function() {
        $('.submitResetPassword').css('visibility','hidden');
        $('.modal-header').loader($loader_data);
        var data = $('#customer-form').serialize();
        $.ajax({
            type: 'POST',
            url: $('#customer-form').attr('action'),
            data:data,
            success:function(data){
                $.loader.close(false);
                if (data=='success') {
                    alert(toys.passwordSent);
                    $('.loginLink').trigger('click');
                    fbq('track', 'CompleteRegistration');
                }
                else if (data=='error') {
                    alert('Ошибка! Попробуйте еще раз');
                }
                else {
                    $('#loginModal').html(data);
                }
            },
            error: function(data) { // if error occured
                alert('Ошибка! Попробуйте еще раз');
            },
            dataType:'html'
        });
        //  return false;
    });

    // Registration link
    $(document).on("click", ".registrationLink", function(e) {
        $("#loginModal").html('<div class="modal-header"><h2 style="margin:0 0 15px 0">'+toys.registration+'</h2></div>');
        $("#loginModal").modal("show");
        $('.modal-header').loader($loader_data);
        $.ajax({
            type: 'GET',
            url: toys.registrationUrl,
            success: function(data) {
                $.loader.close(false);
                $("#loginModal").html(data);
            }
        });
        $('#Customer_phone').focus();
    });

    // Notification
    var modal = $("<div id=\"notificationModal\" class=\"modal hide\"></div>");
    $("body").append(modal);

    $(document).on("click", ".notificationLink", function(e) {
        $.ajax({
            type: 'GET',
            url: toys.notificationUrl,
            data: {id: $(this).data('id')},
            success: function(notificationData) {
                $("#notificationModal").append(notificationData);
                $("#notificationModal").modal("show");
            }
        });
    });

    $("#notificationModal").on("shown", function() {

    }).on("hidden", function () {
        $("#notificationModal").html("");
    });

    $(document).on('click', '.submitNotification', function() {
        var data = $('#notification-form').serialize();
        $.ajax({
            type: 'POST',
            url: $('#notification-form').attr('action'),
            data:data,
            success:function(data){
                $('#notificationModal').html(data);
            },
            error: function(data) { // if error occured
                alert('Ошибка! Попробуйте еще раз');
            },
            dataType:'html'
        });
        //  return false;
    });

    // Search popover
    $("#searchQuery").popover({
        placement : "top",
        html: true,
        //title : "Title",
        content : "Вы не ввели поисковый запрос",
        trigger: "manual"
    });

    $("#searchButton").on("click", function() {
        if ( $("#searchQuery").val() == "" )
        {
            $("#searchQuery").popover("show");
            return false;
        }
    });

    // Main menu delay
    $("ul.menu > li").hoverIntent({
        over: function() {
            if ( $(this).children("div.tab").hasClass("loaded") )
            {
                $(this).children("div.tab").slideToggle(50);
            }
            else if ( $(this).children("div.tab").data("id") )
            {
                $.ajax({
                    url: toys.categoryLoadUrl,
                    data: {id: $(this).children("div.tab").data("id")},
                    context: $(this).children("div.tab")
                }).done(function(html) {
                    $(this).addClass("loaded");
                    $(this).html(html);
                    $(this).slideToggle(30);
                });
            }
        },
        out: function() {
            $(this).children("div.tab").hide();
        },
        sensitivity: 7,
        interval: 125
        //timeout: 1000,
        //selector: "li"
    });

    // For quantity fields deny non-digital symbols.
    $(document).on("input","input.quantity, .itemQuantity",function(){
        var $item = $(this);
        var value = $item.val();
        var digitspatter = /^\d+$/;
        var replacepattern = /[^\d]+/;
        if ( value.search(digitspatter) == -1 ){
            $(this).val(value.replace(replacepattern,""));
        }
    });

    $(document).on("click",".buy1Click",function(){
        $.ajax({
            type: 'GET',
            url: toys.buy1click,
            data: {
              product_id:$(this).data('id'),
            },
            success: function(data) {
                $("#buyModal").modal("show");
                $("#buyModal").html(data);
                $('#buyModal_phone').focus();
            }
        });
    });
});