/* Мощная и крутая менялка города
 * by IonDen
 * 04.06.2010
 * v1.0
 */

(function($){

    var raw_html = '';
    var end_html = '';
    var second_level_raw_html = '';
    var second_level_end_html = '';
    var last_level_raw_html = '';
    var last_level_end_html = '';
    var off_lev_1 = 0;
    var off_lev_2 = 0;
    var lev_2_width = 0;
    var last_top = 0;
    var last_left = 0;
    var lev_name_1 = '';
    var lev_name_2 = '';
    var selected_city = '';
    var selected_city_id = 0;
    var hover_state = false;

    // Вызов первого уровня
    $("#changer > li > a").live("click", function(event){
        event.preventDefault();
        raw_html = $(this).parent().find("ul").html();
        off_lev_1 = $(this).offset();

        set_menu();
    });

    // Устанавливаем выбранный город
    $("a.changer").live("click", function(event){
        event.preventDefault();
        selected_city = $(this).text();
        selected_city_id = $(this).attr('rel');

        set_city();
    });

    // Устанавливаем выбранный город (с диалогом подтверждения)
    $("a.confchanger").live("click", function(event){
        event.preventDefault();

        selected_city_id = $(this).attr('rel');
        selected_city = $(this).attr('rel2');

        if(confirm("Для города " + selected_city + " возможен приём заказов интернет-магазина, выбрать этот город?")) {
            set_city();
        }
    });

    function set_menu() {
        end_html = '<div class="pop_menu" id="level_1"><ul>';
        end_html += raw_html;
        end_html += '</ul></div>'

        $("body").append(end_html);
        $("#level_1").fadeIn(300);

        $("#level_1").css("left", off_lev_1.left - 18).css("top", off_lev_1.top - 14);
        last_top = off_lev_1.top - 14 + $("#level_1").height();
        $("#level_1 li.lb").width($("#level_1").width());

        $("#level_1").hover(
            function() {
                hover_state = true;
            },
            function() {
                hover_state = false;
            }
        );

        // Убриаем меню
        $(document.body).mousedown(function() {
            hide_menu();
        });

        // Вызов второго уровня
        $("a.next_level").live("click", function(event){
            event.preventDefault();
            $("#level_2").remove();
            $("#level_3").remove();
            second_level_raw_html = $(this).parent().find("ul").html();
            lev_name_1 = $(this).text();
            off_lev_2 = $(this).offset();
            lev_2_width = $(this).width();
            set_menu_2();
        });
    }

    function set_menu_2() {
        second_level_end_html = '<div class="pop_menu" id="level_2"><ul>';
        second_level_end_html += second_level_raw_html;
        second_level_end_html += '</ul></div>';

        $("body").append(second_level_end_html);
        $("#level_2").fadeIn(300);

        $("#level_2").css("left", off_lev_2.left + lev_2_width + 30).css("top", off_lev_2.top - 15);
        last_left = off_lev_2.left + lev_2_width;

        $("#level_2").hover(
            function() {
                hover_state = true;
            },
            function() {
                hover_state = false;
            }
        );

        // Вызов третьего уровня
        $("a.go_next").live("click", function(event){
            event.preventDefault();
            $("#level_3").remove();
            last_level_raw_html = $(this).parent().find("ul").html();
            lev_name_2 = $(this).text();
            set_menu_3();
        });
    }

    function set_menu_3() {
        last_level_end_html = '<div class="pop_menu" id="level_3">';
        last_level_end_html += '<div class="pop_head"><span>' + lev_name_1 + ' &rarr; ' + lev_name_2 + '</span><a href="#" id="pop_close"></a></div><ul>';
        last_level_end_html += last_level_raw_html;
        last_level_end_html += '</ul></div>';

        $("body").append(last_level_end_html);
        $("#level_3").fadeIn(300);

        $("#level_3").css("top", last_top + 20).css("left", last_left - 460);

        $("#level_3").hover(
            function() {
                hover_state = true;
            },
            function() {
                hover_state = false;
            }
        );

        $("#pop_close").click(function(event){
            event.preventDefault();
            hover_state = false;
            hide_menu();
        });
    }

    function hide_menu() {
        if(hover_state === false) {
            $("#level_1").remove();
            $("#level_2").remove();
            $("#level_3").remove();
            $("#pop_photo").remove();
        }
    }

    function set_city() {
        $("#current_city").text(selected_city);
        $("#current_city_2").text(selected_city);
        $("#current_city_3").text(selected_city);
        hover_state = false;
        hide_menu();

        $.get('/ajax/', { "do": "city", "id": selected_city_id }, function(data) {
            location.reload();
        });
    }

    // выделить всё / снять выделение
    var checked_state = false;
    $("#check_btn").live("click", function(event){
        event.preventDefault();

        if(checked_state === false) {
            $("#box_place > span > input").attr("checked", "checked");
            checked_state = true;
        } else {
            $("#box_place > span > input").removeAttr("checked");
            checked_state = false;
        }

        return false;
    });

    $("#check_btn").mousemove(function(event){
        return false;
    });


    // попап фотке с описанием
    var local_photo_url = '';
    var local_photo_name = '';
    var local_go_url = '';
    var photo_of = 0;
    var photo_html = '';

    $("a.simple_zoom").live("click", function(event){
        event.preventDefault();
        local_photo_url = $(this).attr("href");
        local_photo_name = $(this).attr("name");
        local_go_url = $(this).attr("rel");
        photo_of = $(this).offset();

        photo_html = '<div class="pop_menu" id="pop_photo">';
        photo_html += '<div class="pop_head"><span>&nbsp;' + local_photo_name + '</span><a href="#" id="pop_close"></a></div><ul>';
        photo_html += '<div class="pop_cont"><img src="' + local_photo_url + '" /></div>';
        if(local_go_url != '')
        {
            photo_html += '<div class="pop_link"><a href="' + local_go_url + '">Перейти на страницу<br />' + local_photo_name + '</a> <em></em></div>';
        }
        photo_html += '</div>';

        $("body").append(photo_html);

        $("#pop_photo").fadeIn(300, change_pos).css("left", photo_of.left - 140).css("top", photo_of.top - 100);

        function change_pos() {
            if(photo_of.left - 140 + $("#pop_photo").width() > $(window).width()) {
                $("#pop_photo").css("left", $(window).width() - $("#pop_photo").width() - 20);
            }
        }

        $("#pop_photo").hover(
            function() {
                hover_state = true;
            },
            function() {
                hover_state = false;
            }
        );

        // Убриаем попап
        $(document.body).mousedown(function() {
            if(hover_state === false) {
                $("#pop_photo").remove();
            }
        });

        $("#pop_close").click(function(event){
            event.preventDefault();
            $("#pop_photo").remove();
        });
    });

    // Сабмит формы с группировкой
    $("#groupselect a").live("click", function(event){
        event.preventDefault();
        $("#groupselect").submit();
    });

    // Добавление в корзину
    $(".add_to_cart").live("click", function(event){
        event.preventDefault();
        photo_of = $(this).offset();

        var item_id = $(this).attr("rel");
        var item_p = $(this).attr("rel2");
        var item_q = $(this).prev('input').val();

        $.get('/ajax/', { "do": "basket", "id": item_id, "count": item_q }, function(data) {
            var basket_html = '<div class="pop_menu" id="pop_photo">';
            basket_html += '<div class="pop_head"><span>Корзина</span><a href="javascript:void(0);" id="pop_close"></a></div><ul>';
            basket_html += '<div class="pop_cont">' + data + '</div>';
            basket_html += '</div>';

            $("body").append(basket_html);

            $("#pop_photo").css("top", $(window).scrollTop() + $(window).height()/2);
            $("#pop_photo").fadeIn(300).css("left", Math.round($(window).width()/2) - ($("#pop_photo div.pop_cont").innerWidth()/2));
            $("div.pop_head").width($("div.pop_cont").innerWidth());

            basket_update(item_p, item_q);
        });

    });

    $("#pop_close").live("click",function(event){
        event.preventDefault();
        $("#pop_photo").remove();
    });

    // Обновление корзины
    $(".bsk_update").live("click", function(event){
        event.preventDefault();
        $("#basket").submit();
    });


    function basket_update(p, c)
    {
        var bsk_count = $('#bsk_count').text();
        var bsk_price = $('#bsk_price').text();

        bsk_count = parseInt(bsk_count) + parseInt(c);
        bsk_price = parseInt(bsk_price.replace(' ', '')) + parseInt(p) * parseInt(c);

        $('#bsk_count').text(bsk_count);
        $('#bsk_price').text(bsk_price.toMoney(2, ',' , ' '));
    }

    Number.prototype.toMoney = function(decimals, decimal_sep, thousands_sep)
    {
        var n = this,
        c = isNaN(decimals) ? 2 : Math.abs(decimals),
        d = decimal_sep || ',',
        t = (typeof thousands_sep === 'undefined') ? '.' : thousands_sep,

        sign = (n < 0) ? '-' : '',

        i = parseInt(n = Math.abs(n).toFixed(c)) + '',

        j = ((j = i.length) > 3) ? j % 3 : 0;

        return sign + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '');
    }

})(jQuery);

$(document).ready(function() {

    $('#urlitca').click(function(event){
        if($(this).is(':checked')){
            $("#optional").removeClass("inactive");
            $("#optional input").attr('disabled',false);
        }else{
            $("#optional").addClass("inactive");
            $("#optional input").attr('disabled','disabled');
        }
    });

    $('#m_metro a').click(function(e){
        e.preventDefault();

        var l = $(this).attr('href').slice(1);
        var g = $('a[name='+l+']').offset();

        $(window).scrollTop(g.top - 30);
    });

    $('#gg_select a').click(function(e){
        e.preventDefault();

        var g = $('#gg_select select').val();

        window.location = '/goods/groups/' + g + '/';
    });

});