//Обновление корзины
function updateCart()
{
    var $form = $("#cart-form");
    var data = $("input", $form).serialize();
    var url = $form.attr("action");
    $.post(url, data).success(function(response){
        $form.replaceWith(response);
        var totalItems = 0;
        $("#cart-items input").each(function(){
            totalItems += parseInt($(this).val());
        });
        $(".header_cart span").html(totalItems);
        $('.delivery_info .delivery_cont').hover( function() {
            $(this).children('.baloon').fadeIn(300);
        }, function() {
            $(this).children('.baloon').fadeOut(300);
        });
    });
}
//Фильтр по услугам на странице создания своего подарка
function filterImpressions()
{
    var categories = new Array();
    if(!$(".option_box input[name = selectAll]").is(':checked')){
        $(".option_box input:checked[name != selectAll]").each(function()
    {
        categories.push($(this).val());
    });
    }
    var prices = {
        minPrice : $("#minPrice").val().split('&nbsp;').join(''),
        maxPrice : $("#maxPrice").val().split('&nbsp;').join('')
    };
    $.post(
        'handmade/searchItems', 
        {
            params : {
                'categories' : categories, 
                'prices' : prices
            }
        },
    function(data)
    {
        $('#impressions').html(data);
        //Подготавливаем данные о уже добавленных в набор услугах
        var addedItems = new Array();
        $("#gift_list a").each(function(){
            addedItems.push($(this).attr("href").split("_")[1]);
        });
        //Отмечаем добавленные услуги
        $("#impressions li").each(function(){
            var $this = $(this); //контейнер
            var $checkbox = $('input:checkbox', $this); //чекбокс услуги
            var itemID = $checkbox.attr("id").split("_")[1];
            if($.inArray(itemID, addedItems) != -1)
            {
                $this.toggleClass('chosen');
                $checkbox.attr("checked", "checked");
            }
        });
    }
    );
}
//Фильтр по сертификатам
function updateCertificatList(addParams)
{
    var url = "?";
    $("#categories input:checked").each(function(){
        url += "category[]="+$(this).val()+"&";
    });
    url += "minPrice=" + $("#minPrice").val().split('&nbsp;').join('') + "&";
    url += "maxPrice=" + $("#maxPrice").val().split('&nbsp;').join('') + "&";
    url += "trend=" + $(".option_box a.selected").attr("rel") + "&";
    if(addParams)
    {
        $.each(addParams, function(index, value) {
            url += index + "=" + value + "&";
        });
    }
    $.fn.yiiListView.update("certificatList", {
        url:url
    });
}
//Фильтр по онлайн подбору
function updateOnlineList(addParams)
{
    var url = "?";
    $("#gift_type input:checked").each(function(){
        url += "giftType[]="+$(this).val()+"&";
    });
    $("#gift_trend input:checked").each(function(){
        url += "giftTrends[]="+$(this).val()+"&";
    });
    url += "minPrice=" + $("#minPrice").val().split('&nbsp;').join('') + "&";
    url += "maxPrice=" + $("#maxPrice").val().split('&nbsp;').join('') + "&";
    if(addParams)
    {
        $.each(addParams, function(index, value) {
            url += index + "=" + value + "&";
        });
    }
    $.fn.yiiListView.update("giftList", {
        url:url
    });
    
}
jQuery(document).ready(function() {

    $('.list_button').textShadow();
	
    $('.extra_adv_close').click( function() {
        $('.extra_adv').slideUp(500);
    });
	
    if ($.browser.msie && $.browser.version == 7) {
        $('.mainpage_header_list > li').each( function() {
            $(this).css('width', $(this).find('img').width());
        });
    }
	
    $('.item_gallery').tabs();
	
    $('.gift_gallery').tabs();
	
    $('.tabs > .ui-tabs-nav > li').each(function(i) {
        $(this).css('z-index', 100-i);
    });
	
    var params = {
        changedEl: '.custom',
        visRows: 5,
        scrollArrows: true
    }
    cuSel(params)
	
    /*Работаем над созданием подарка*/
                                       
    $(".handmade_option_box input:checkbox[name != selectAll]").change(filterImpressions);
    $(".handmade_option_box input:checkbox[name = selectAll]").change(function(){
        $(".handmade_option_box input:checkbox[name != selectAll]").attr("checked", $(this).is(':checked'));
        filterImpressions();
    });
    $('.gift_create_options')
    .delegate('ul > li input:checkbox', 'change', function() {
        var $this = $(this); //чекбокс
        var $container = $this.parents('li'); //контейнер
        var $itemData = $(".itemData", $container); //данные о услуге
        var itemID = $this.attr("id").split("_")[1]; //id услуги
        $container.toggleClass('chosen'); //изменяем статус контейнера 
        if($this.is(":checked"))
        {
            //если услуга добавляется в набор
            if($("#gift_list li").length < 10){
                //если набор ещё не заполнен
                var item = '<li><div class="gift_name">'+$itemData.attr('title')+
                '</div><div class="rel"><div class="baloon"><div class="baloon_top"></div><div class="baloon_content">'+
                $itemData.attr('rel')+'</div><div class="baloon_bottom"></div></div><img src="'+$itemData.attr('href')+
                '" alt="" /></div><div class="center"><img src="img/del.png" alt="" /><a class="link" href="#item_'+itemID+'">Удалить</a></div></li>';
                $(item).appendTo("#gift_list");
                var $totalPrice = $("#totalPrice"); 
                //Устанавливаем цену набора
                if($itemData.attr('price') - $totalPrice.attr('rel') > 0)
                {
                    var $handmadeDiscount = $("#handmadeDiscount").val();
                    if($handmadeDiscount > 0){
                        var $oldPrice = $itemData.attr('price');
                        var $newPrice = Math.round($oldPrice*(100 - $handmadeDiscount)/100);
                        $totalPrice.html("Итого: <span style='text-decoration: line-through;'>" + $oldPrice + "</span> <span style='color: #F6031B;'>" + $newPrice +" руб.</span>");
                    } else {
                        $totalPrice.html("Итого: "+ $itemData.attr('formPrice') +" руб.");
                    }
                    
                    $totalPrice.attr('rel', $itemData.attr('price'));
                }
            }
            else 
            {
                alert("В наборе уже 10 услуг!");
                $container.toggleClass('chosen'); //изменяем статус контейнера
                $this.removeAttr("checked");
            }
        }  
        else
        {
            //если услуга удаляется из набора
            $("a[href='#item_"+itemID+"']").parents("li").remove();  
            //Устанавливаем цену набора
            var totalPrice = 0;
            var formTotalPrice = 0;
            $(".gift_create_options input:checked").each(function(){
                var $itemData = $(".itemData", $(this).parents('li'));
                if($itemData.attr("price") - totalPrice > 0)
                {
                    totalPrice = $itemData.attr("price");
                    formTotalPrice = $itemData.attr("formPrice");
                }                                                   
            });
            var $totalPrice = $("#totalPrice");
            $totalPrice.html("Итого: "+ formTotalPrice +" руб.");
            $totalPrice.attr('rel', totalPrice);
        }
    })
    .delegate('ul > li', 'hover', function() {
        $(this).children('.baloon').fadeIn(300);
    })
    .delegate('ul > li', 'mouseleave', function() {
        $(this).children('.baloon').fadeOut(300);
    });
    $("#gift_list").delegate("a.link", "click", function(){
        var itemID = $(this).attr("href").split("_")[1];
        $("#item_"+itemID).removeAttr('checked').trigger("change");
        return false;
    })
    /*Конец работы над созданием подарка*/
	
    $('.gift_list').each( function() {
        setEqualHeight($(this).find('.gift_name'));
    });
	
    $('.comments > li:odd').addClass('has_bg');
	
    $('.close_howto').click( function() {
        $('.howto').slideUp(500);
    });
	
    $('.howto_open').click( function() {
        var $howto = $('.howto');
        if($howto.is(":visible"))
        {
            $howto.slideUp(500);
        }
        else
        {
            $howto.slideDown(500);
        }
    });
        
    //Добавление подарочного набора в корзину
    $('body').delegate('.set_to_cart', 'click',  function() {
        var $this = $(this);
        var set_id = $this.attr("id").split("_")[1];
        var $container = $this.parents(".set_data");
        var quantity = $(".quantity", $container).val();
        $.post(
            '/cart/toCart',
            {
                'type' : 'set', 
                'id' : set_id,
                'quantity' : quantity
            }                   
            ).success(function(data){
            $(".header_cart").html(data);
            $this.parents('li:first').addClass('in_cart');
            $this.prev().show().delay(3000).fadeOut(600);                      
        });                
    });
    //Конец добавления набора в корзину
        
    //Добавление подарочного сертификата в корзину
    $('body').delegate('.giftcertificate_to_cart', 'click', function() {
        var $this = $(this);
        var $container = $this.parents(".certificat_data");
        var certificate_id = $this.attr("id").split("_")[1];
        var price_id = $("input[name=price_id]", $container).val();
        var price_val = $("input[name=price_val]", $container).val();
        var quantity = $("input:[name=quantity]", $container).val();
        $.post(
            '/cart/toCart',
            {
                'type' : 'giftCertificate', 
                'id' : certificate_id, 
                'quantity' : quantity, 
                'price_id': price_id,
                'price_val': price_val
            }
            ).success(function(data){
            $(".header_cart").html(data);
            $this.parents('li:first').addClass('in_cart');
            $this.prev().show().delay(3000).fadeOut(600);                     
        });                
    });
    //Конец добавления подарочного сертификата в корзину
        
    //Добавление самодельного набора в корзину
    $('.customset_to_cart').click( function() {
        var selectedItems = new Array;
        var $this = $(this);
        $("#impressions input:checked").each(function(){
            selectedItems.push($(this).attr("id").split("_")[1]);
        });
        var id = $($(".choose_design input:checked").get(0)).val();
        if(selectedItems.length > 0)
        {
            $.post(
                '/cart/toCart',
                {
                    'type' : 'customSet', 
                    'selectedItems' : selectedItems, 
                    'id' : id
                }
                ).success(function(data){
                $(".header_cart").html(data);
                $this.parents('li:first').addClass('in_cart');
                $this.prev().show().delay(3000).fadeOut(600);                    
            });                   
        }            
    });
    //Конец добавления самодельного набора в корзину
        
    //Добавление карты Вподарок в корзину
    $('.vpodarok_to_cart').click( function() {
        var nominal = $("#nominal").val();
        var id = $($(".gift_card_type input:checked").get(0)).val();
        if(!id)
        {
            var id = $("#vpodarokSelect").val();
        }
        var quantity = $("#vpodarokQuantity").val();
        var $this = $(this);
        if(nominal >= 500)
        {
            $.post(
                '/cart/toCart',
                {
                    'type' : 'vpodarok', 
                    'id' : id, 
                    'nominal' : nominal,
                    'quantity' : quantity
                }
                ).success(function(data){
                $(".header_cart").html(data);
                $this.prev().show().delay(3000).fadeOut(600);                    
            });                    
        } 
    });
    //Конец добавления карты Вподарок в корзину
        
    //Активация услуги
    $(".activation_code button").click(function(){
        alert("Данный функционал пока не работает. Пожалуйста, активируйте билет по телефону, указанному на сайте.");
        /*var code = $(".activation_code input:text").val();
        $.post(
            'order/getItem',
            {
                'code':code
            }
            ).success(function(data){
            $("#activateItem").html(data).slideDown('normal');
        });*/
    });
    $(".activate_send button").click(function(){
        alert("Данный функционал пока не работает. Пожалуйста, активируйте билет по телефону, указанному на сайте.");
        return false;
    });
    //Конец активации услуги
    
    //Сортировка в каталоге наборов
    $(".choose_type a").click(function(){
        $(".choose_type a.chosen").removeAttr("class");
        $(this).attr("class", "chosen");
        $.fn.yiiListView.update("setList", {
            url:"?tag="+$(this).attr("rel")
        });
        return false;
    });
    //Конец сортировки в каталоге наборов
    
    //отображение блока с сортировкой по категориям
    $("#show-categories-box").click(function(){
        $("#categories-box").show();
        return false;
    });
    
    //Сортировка на странице сертификатов
    $("#certificat_filter .trends").click(function(){
        var $this = $(this);
        $("a.trends").removeClass("selected");
        $this.addClass('selected');
        var trendID = $this.attr("rel");
        $.post(
            'certificat/getCategories',
            {trend:trendID}
        ).success(function(data){
                $("#categories").html(data);
                updateCertificatList({trend:trendID});
        });
        return false;
    });
    $("#certificat_filter #categories").delegate('input', 'change',function(){
        updateCertificatList();
    });
    //конец сортировки
    
    //Сортировка на странице онлайн подбора подарков
    $("#online_filter .option_box_content").delegate('input', 'change',function(){
        updateOnlineList();
    });
    //конец сортировки
	
    $('.gift_catalog > li').hover( function() {
        $(this).css('z-index', '1000');
    }, function() {
        $(this).css('z-index', '10');
    });
    var position = $('li.this').index();
    var itemsCount = $('.slider_block li').length;
    position = (position > 1) ? position : 1;
    position = (itemsCount < 6) ? position+3 : position;
    $('#catalog-slider > ul').jcarousel({
        scroll: 1,
        start : position,
        animation: 700
    });
	
    $('.sub_slider').click( function() {
        $('.howto').slideDown(500);
    });
	
    $('.cart tr:even').addClass('lbg');
	
    $('.add_to_cart .button').click( function() {
        $(this).parents('li:first').addClass('this');
        $(this).parent().parent().find('.cusel').css('z-index', '10');
        $(this).parent().css('z-index', '1000');
        $(this).prev().show().delay(3000).fadeOut(600);
    });
	
    $('.search_results_sidebar .cusel').click( function() {
        $(this).parent().find('.add_to_cart').css('z-index', '10');
        $(this).css('z-index', '1000');
    });
	
    $('.gift_list li .rel').hover( function(i) {
        $(this).children('.baloon').fadeIn(300);
    }, function() {
        $(this).children('.baloon').fadeOut(300);
    });
        
    $('.gift_list')
    .delegate('li .rel', 'hover', function() {
        $(this).children('.baloon').fadeIn(300);
    })
    .delegate('li .rel', 'mouseleave', function() {
        $(this).children('.baloon').fadeOut(300);
    });
	
    $('.gift_list li').each( function(i) {
        $(this).css('z-index', 100-i);
    });

    $('.choose_all input:checkbox').click(function()
    {
        if (!$(this).is(":checked"))
        {
            $(".option_box_content input:checkbox.choose").removeAttr("checked");
            $(".option_table input:checkbox.choose").removeAttr("checked");   
        }
        else
        {
            $(".option_box_content input:checkbox.choose").attr("checked","checked");
            $(".option_table input:checkbox.choose").attr("checked","checked");
        }
        var id = $(this).attr("id");
        if(id != "onlineChooseAll")
            updateCertificatList();
    });   
	
    $('.box_tabs').tabs();
    $('.tabs').tabs();
	
    $('.choose_design > ul > li > a > label').click( function() {
        if($(this).prev().attr('checked')) {
            $(this).prev().removeAttr('checked');
        } else {
            $(this).prev().attr('checked', 'checked');
        }
    });
	
    $('.choose_design > ul > li > a > input').click( function() {
        if($(this).attr('checked')) {
            $(this).removeAttr('checked');
        } else {
            $(this).attr('checked', 'checked');
        }
    });
    
    $('.delivery_info .delivery_cont').hover( function(i) {
        $(this).children('.baloon').fadeIn(300);
    }, function() {
        $(this).children('.baloon').fadeOut(300);
    });
    
    
    //обновление данных корзины при изменении элементов

    $(".container").delegate("#cart-items input, .delivery_cont input", "change", updateCart);
    
    $(".container").delegate(".cart_del", "click", function(){
        $this = $(this);
        $this.parents('tr:first').fadeOut(500, function(){
            $this.parents('tr:first').remove();
            updateCart();
        });        
    });
	
});


function setEqualHeight(columns)
{
    var tallestcolumn = 0;
    columns.each(
        function()
        {
            currentHeight = $(this).height();
            if(currentHeight > tallestcolumn)
            {
                tallestcolumn  = currentHeight;
            }
        }
        );
    columns.height(tallestcolumn);
}
 
function classFilter(r,m,not){
    m = " " + m + " ";
    var tmp = [];
    for ( var i = 0; r[i]; i++ ) {
        var pass = (" " + r[i].className + " ").indexOf( m ) >= 0;
        if ( not ^ pass )
            tmp.push( r[i] );
    }
    return tmp;
}
