﻿$(document).ready(function(){

    if ($("#food_menu").length) {
        $(".food_page_day tr").find("td:last").css('text-align', 'center');
        $("#food_menu a, #food_time_menu a").click(function(){
            $(this).parent().siblings().removeClass('current');
            $(this).parent().addClass('current');
            var day = $("#food_menu li").index($("#food_menu li.current"));
            var time = $("#food_time_menu li").index($("#food_time_menu li.current"));
            $(".food_page_day").removeClass('current');
            $(".food_page_day:eq(" + day + ")").addClass('current');
            $(".food_page_time").removeClass('current');
            $(".food_page_day.current .food_page_time:eq(" + time + ")").addClass('current');
            return false;
        });
    }
	
	if ($("#food_menu_").length) {
        $(".food_page_day_ tr").find("td:last").css('text-align', 'center');
        $("#food_menu_ a, #food_time_menu_ a").click(function(){
            $(this).parent().siblings().removeClass('current_');
            $(this).parent().addClass('current_');
            var day = $("#food_menu_ li").index($("#food_menu_ li.current_"));
            var time = $("#food_time_menu_ li").index($("#food_time_menu_ li.current_"));
            $(".food_page_day_").removeClass('current_');
            $(".food_page_day_:eq(" + day + ")").addClass('current_');
            $(".food_page_time_").removeClass('current_');
            $(".food_page_day_.current_ .food_page_time_:eq(" + time + ")").addClass('current_');
            return false;
        });
    }
    
    if ($("#photo_pages").length) {
        $("#photo_pages span").click(function(){
            if (!$(this).hasClass('current')) {
                var ind = $(this).parent().find('span').index($(this));
                $("#photo_pages span").removeClass('current');
                $(this).addClass('current');
                $('#beauty img.bty.active').fadeOut('slow').removeClass('active');
                $('#beauty img.bty:eq(' + ind + ')').fadeIn('slow').addClass('active');
            }
        });
        setInterval('switchBty()', 5000);
    }
    if ($("div#gallery_pics.big").length) {
        $("div#gallery_pics.big").scrollable({
            next: 'a#gallery_right',
            prev: 'a#gallery_left',
            items: '#gallery_pics_inner',
            size: 2,
            navi: '.gallery_lister',
            naviItem: 'a',
            activeClass: 'current'
        });
    }
    else {
        $("div#gallery_pics").scrollable({
            next: 'a#gallery_right',
            prev: 'a#gallery_left',
            items: '#gallery_pics_inner',
            size: 3,
            navi: '.gallery_lister',
            naviItem: 'a',
            activeClass: 'current'
        });
    }
    
    
    $("#gallery_pics_inner a").bind('click', galleryBlow);
    
    if ($("#calendar").length) {
        //Переключатель страниц в резервировании
        $('#house_type_ul a').click(function(){
            var id = $(this).attr("id").slice(5);
            $('#house_type_ul li').removeClass('current');
            $(this).parent().addClass('current');
            $('div.page').removeClass('current');
            $('div.page:has(input[name=' + id + '])').addClass('current');
            setMaxPlacesOnDate();
            setSliders();
            return false;
        });
        
        $('div.page input[name=get_total]').click(function(){
            calculate();
        });
        
        $("#calendar").datepicker({
            firstDay: 1,
            dayNamesMin: ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'],
            monthNames: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
            minDate: new Date(),
            maxDate: '+2m',
            navigationAsDateFormat: true,
            nextText: '>>>',
            prevText: '<<<',
            onSelect: function(){
            },
            onChangeMonthYear: function(year, month, inst){
                setTimeout("setDays()", 200)
            }
            
        });
        $("#calendar").data('days', new Array());
        $('#reserve_submit').click(function(){
            if ($(this).hasClass('inProcess')) {
                return false;
            }
            if (check_form()) {
                $(this).addClass('inProcess');
                $.post('reserve', {
                    reserve_submit: 1,
                    house_type: $('#house_type').val(),
                    ppl_basic: $('#ppl_basic').val(),
                    ppl_add: $('#ppl_add').val(),
                    days: $('#days').val(),
                    r_name: $('#r_name').val(),
                    mail: $('#mail').val(),
                    phone: $('#phone').val(),
                    whole: $('div.page.current input[name=get_total]:checked').length
                }, function(data){
                    $('#reserve_submit').removeClass('inProcess');
                    $('#house_description').addClass('minH');
                    $('#house_description').html('<h1>Номер забронирован</h1><h2>Номер брони: ' + data.reserve_number + '</h2><p>Вам на почту выслано уведомление. Вы можете <a href="/reserve?clean_reserve&amp;key=' + data.key + '">отменить бронь</a></p>');
                }, "json");
            }
            return false;
        });
        
        $("#reserve_form :input").tooltip({
            position: ['center', 'left'],
            offset: [-2, -5],
            effect: 'toggle',
            opacity: 1
        });
        
        $("#calendar").data('lux', {
            max_basic: 4,
            min_basic: 1,
            max_add: 6,
            min_add: 0,
            date_max_basic: 4,
            date_max_add: 6
        });
        $("#calendar").data('business', {
            max_basic: 4,
            min_basic: 1,
            max_add: 2,
            min_add: 0,
            date_max_basic: 4,
            date_max_add: 2
        });
        $("#calendar").data('econom', {
            max_basic: 10,
            min_basic: 4,
            date_max_basic: 10
        });
        
		$("#calendar").data('beregovoi_1', {
            max_basic: 4,
            min_basic: 1,
            max_add: 2,
            min_add: 0,
            date_max_basic: 4,
            date_max_add: 2
        });
		$("#calendar").data('beregovoi_2', {
            max_basic: 2,
            min_basic: 1,
            max_add: 0,
            min_add: 0,
            date_max_basic: 2,
            date_max_add: 0
		});
		
        setSliders();
        calculate();
    }
    
});
function galleryBlow(){
    var gallery_big = document.createElement("div");
    $("body").append(gallery_big);
    gallery_big.id = "gallery_big";
    gallery_big.className = "gallery_big";
    
    $(".gallery_big").data('currentImage', $(this));
    
    var gallery_next = document.createElement("div");
    gallery_next.id = "gallery_next";
    $(".gallery_big").append(gallery_next);
    
    var gallery_next_a = document.createElement("a");
    $("#gallery_next").append(gallery_next_a);
    
    var gallery_prev = document.createElement("div");
    gallery_prev.id = "gallery_prev";
    $(".gallery_big").append(gallery_prev);
    
    var gallery_prev_a = document.createElement("a");
    $("#gallery_prev").append(gallery_prev_a);
    
    var left = (parseInt($("body").outerWidth()) - parseInt($(".gallery_big").outerWidth())) / 2;
    $(".gallery_big").data('left', parseInt(left));
    left = parseInt(left) + "px";
    
    var top = (window.innerHeight - parseInt($(".gallery_big").outerHeight())) / 2 + window.scrollY + "px";
    if (jQuery.browser.msie) {
        top = (document.documentElement.clientHeight - parseInt($(".gallery_big").outerHeight())) / 2 + document.body.parentNode.scrollTop;
    }
    
    top = parseInt(top) + "px";
    $(".gallery_big").data('top', parseInt(top));
    $(".gallery_big").css({
        'left': left,
        'top': top
    });
    
    $(".gallery_big").fadeIn();
    
    $(".gallery_big").click(function(){
        if ($(this).expose()) {
            $(this).expose().close();
        }
        $(this).fadeOut("fast").remove();
        return false;
    });
    
    var image = document.createElement("img");
    image.className = "gallery_image_big";
    $(".gallery_big").append(image);
    
    $(".gallery_image_big").attr("src", $(this).attr("href") + '?k=' + Math.random());
    
    $(".gallery_image_big").unbind('load');
    $(".gallery_image_big").bind('load', loadPic);
    
    $("#gallery_next").mouseover(function(){
        $("#gallery_next a").show();
    });
    $("#gallery_next").mouseout(function(){
        $("#gallery_next a").hide();
    });
    $("#gallery_next").click(function(){
        $(".gallery_image_big").queue(function(){
            $(this).fadeOut();
            $(this).dequeue();
        });
        $(".gallery_image_big").queue(function(){
            var next = $(".gallery_big").data('currentImage').next();
            $(this).attr("src", $(".gallery_big").data('currentImage').next().attr("href") + '?k=' + Math.random());
            $(".gallery_big").data('currentImage', next);
            $(this).dequeue();
        });
        return false;
    });
    $("#gallery_prev").mouseover(function(){
        $("#gallery_prev a").show();
    });
    $("#gallery_prev").mouseout(function(){
        $("#gallery_prev a").hide();
    });
    $("#gallery_prev").click(function(){
        $("#gallery > .spinner").show();
        $(".gallery_image_big").queue(function(){
            $(this).fadeOut();
            $(this).dequeue();
        });
        $(".gallery_image_big").queue(function(){
            var prev = $(".gallery_big").data('currentImage').prev();
            $(this).attr("src", $(".gallery_big").data('currentImage').prev().attr("href") + '?k=' + Math.random());
            $(".gallery_big").data('currentImage', prev);
            $(this).dequeue();
        });
        return false;
    });
    $('.gallery_big').expose({
        api: true,
        color: '#000',
        opacity: 0.5,
        onBeforeClose: function(){
            $('.gallery_big').fadeOut().remove();
        }
    }).load();
    return false;
}

function loadPic(){
    $(".gallery_image_big").css({
        'height': 'auto'
    });
    
    $("#gallery_prev, #gallery_next").hide();
    if (window.innerHeight < parseInt($(".gallery_image_big").innerHeight())) {
        $(".gallery_image_big").css({
            'height': (window.innerHeight - 50) + 'px'
        });
    }
    
    if (window.innerWidth < parseInt($(".gallery_image_big").innerWidth())) {
        $(".gallery_image_big").css({
            'width': (window.innerwidth - 50) + 'px'
        });
    }
    
    if (jQuery.browser.msie) {
        if (parseInt(document.documentElement.clientHeight) < parseInt($(".gallery_image_big").innerHeight())) {
            $(".gallery_image_big").css({
                'height': (parseInt(document.documentElement.clientHeight) - 50) + 'px'
            });
        }
        if (parseInt(document.documentElement.clientWidth) < parseInt($(".gallery_image_big").innerWidth())) {
            $(".gallery_image_big").css({
                'width': (parseInt(document.documentElement.clientWidth) - 50) + 'px'
            });
        }
    }
    
    var left = (parseInt($("body").outerWidth()) - parseInt($(".gallery_image_big").innerWidth())) / 2;
    
    var top = (parseInt(window.innerHeight) - parseInt($(".gallery_image_big").outerHeight())) / 2 + parseInt(window.scrollY) + "px";
    
    if (jQuery.browser.msie) {
        var top = 10;
    }
    
    $(".gallery_big").animate({
        'height': $(".gallery_image_big").innerHeight(),
        'width': $(".gallery_image_big").innerWidth(),
        'left': parseInt(left) + 'px',
        'top': parseInt(top) + 'px'
    }, "fast", null, function(){
        $(".gallery_image_big").fadeIn();
    });
    
    if ($(".gallery_big").data('currentImage').prev().length != 0) {
        $("#gallery_prev").show();
    }
    
    if ($(".gallery_big").data('currentImage').next().length != 0) {
        $("#gallery_next").show();
    }
    
}

function setClicker(){
    $("#calendar td a").unbind('click');
    $("#calendar td a").click(function(){
        var year = $('.ui-datepicker-year').text();
        var yearMonthDay = year + '_' + $('.ui-datepicker-month').text() + '_' + $(this).text();
        
        var selDays = $("#calendar").data('days');
        var ind = jQuery.inArray(yearMonthDay, selDays);
        if (ind == -1) {
            selDays.push(yearMonthDay);
        }
        else {
            selDays.splice(ind, 1);
        }
        $("#calendar").data('days', selDays);
        
        $(this).toggleClass('day_selected');
        setMaxPlacesOnDate();
        setSliders();
        calculate();
        return false;
    });
}

function switchBty(){
    var count = $('#photo_pages span').length;
    var ind = $('#photo_pages span').index($('#photo_pages span.current'));
    if (ind == (count - 1)) {
        $('#photo_pages span:first').trigger('click');
    }
    else {
        $('#photo_pages span.current').next().trigger('click');
    }
}

function setDays(){
    $('#calendar').find('td a').each(function(){
        var year = $('.ui-datepicker-year').text();
        var yearMonthDay = year + '_' + $('.ui-datepicker-month').text() + '_' + $(this).text();
        var selDays = $("#calendar").data('days');
        if (jQuery.inArray(yearMonthDay, selDays) != -1) {
            $(this).toggleClass('day_selected');
        }
    });
    setClicker();
}

function setSliders(){
    //console.log($('.slider_inner:visible').length);
    $('.page.current .slider_inner').each(function(){
        var type = $(this).parent().parent().find('input').attr('name');
        ind = $(this).parent().parent().find('.slider_inner').index(this);
        //console.log(ind);
        if (ind == 0) {
            $(this).slider('destroy');
            $(this).slider({
                value: parseInt($("#calendar").data(type).min_basic),
                min: parseInt($("#calendar").data(type).min_basic),
                max: parseInt($("#calendar").data(type).date_max_basic),
                step: 1,
                change: calculate
            })
            var lis = "";
            for (var j = parseInt($("#calendar").data(type).min_basic); j <= parseInt($("#calendar").data(type).date_max_basic); j++) {
                lis += '<li><a href="#">' + j + '</a></li>';
            }
            $('.page:visible .slider_values:first').html(lis);
        }
        if (ind == 1) {
            $(this).slider('destroy');
            $(this).slider({
                value: parseInt($("#calendar").data(type).min_add),
                min: parseInt($("#calendar").data(type).min_add),
                max: parseInt($("#calendar").data(type).date_max_add),
                step: 1,
                change: calculate
            })
            var lis = "";
            for (var j = 0; j <= parseInt($("#calendar").data(type).date_max_add); j++) {
                lis += '<li><a href="#">' + j + '</a></li>';
            }
            $('.page:visible .slider_values:last').html(lis);
        }
    });
    $('.slider_values:visible').each(function(){
        var width = Math.floor($(this).innerWidth() / $(this).find('li').length) + 'px';
        $(this).find('li').width(width);
        $(this).next().find('.slider_inner').css({
            marginLeft: Math.floor(parseInt(width) / 2) - 5 + 'px',
            marginRight: Math.floor(parseInt(width) / 2) + 5 + 'px'
        });
    });
    $('.slider_values li a').click(function(){
        $(this).parent().parent().next().find('.slider_inner').slider('value', $(this).text());
        return false;
    });
    calculate();
}

function setMaxPlacesOnDate(){
    $('#reserve_submit').addClass('inProcess');
    var days = $("#calendar").data('days');
    var days_string = "";
    for (var i = 0; i < days.length; i++) {
        days_string += ";" + days[i];
    }
    $.post('reserve', {
        check_reserved: 1,
        house_type: $('#house_type_ul li.current a').attr('id').slice(5),
        days: days_string.slice(1)
    }, function(data){
        if (parseInt(data.whole) != 0 || parseInt(data.places_basic) >= parseInt($("#calendar").data(data.house_type).max_basic)) {
            if (!$('#no_vacancy').length) {
                $('#reserve_left').append('<p id="no_vacancy">На выбранную дату мест нет.<br/>Пожалуйста, выберите другую.</p>');
            }
            else {
                $('#no_vacancy').show();
            }
            $('#no_vacancy').expose({
                api: true,
                color: '#000',
                opacity: 0.5
            }).load();
        }
        else {
            $("#calendar").data(data.house_type).date_max_basic = parseInt($("#calendar").data(data.house_type).max_basic) - parseInt(data.places_basic);
            if ($("#calendar").data(data.house_type).date_max_add) {
                $("#calendar").data(data.house_type).date_max_add = parseInt($("#calendar").data(data.house_type).max_add) - parseInt(data.places_add);
            }
            $('#reserve_submit').removeClass('inProcess');
            $('#no_vacancy').hide();
            
            if (data.places_basic > 0 || data.places_add > 0) {
                $('#get_total_p input').removeAttr('checked');
                $('#get_total_p').hide();
            }
            else {
                $('#get_total_p').show();
            }
        }
        setSliders();
    }, "json");
}

function calculate(){
    if ($("#calendar").data('days')) {
        var days = $("#calendar").data('days').length;
    }
    else {
        var days = 0;
    }
    var price_basic = $('div.page.current input[name=price_basic]').val();
    var places_basic = $('div.page.current .slider_inner:first').slider('value');
    if ($('div.page.current input[name=price_add]').length) {
        var price_add = $('div.page.current input[name=price_add]').val();
    }
    else {
        var price_add = 0;
    }
    if ($('div.page.current .slider_inner').length == 2 && $('div.page.current .slider_inner:last')) {
        var places_add = $('div.page.current .slider_inner:last').slider('value');
    }
    else {
        var places_add = 0;
    }
    if ($('div.page.current input[name=get_total]:checked').length) {
        var price = $('div.page.current input[name=price_total]').val();
        $('#sub_summary').hide();
    }
    else {
        $('#sub_summary').show();
        var price = price_basic * places_basic + price_add * places_add;
        price / (parseInt(places_basic) + parseInt(places_add));
    }
    if (days) {
		$('#price_total').show();
		$('#sub_summary').html('<span id="people_count"></span> на <span id="days_count"></span><br/> по <span id="price"></span> р. в день');
		$('#days_count').text(days + ' ' + spellNumeric('день', days));
        $('#people_count').text(parseInt(places_basic) + parseInt(places_add) + ' ' + spellNumeric('место', parseInt(places_basic) + parseInt(places_add)));
        $('#price').text(price);
        $('#price_total').text('= ' + price * days + " р.");
    }else{
		$('#sub_summary').text("Пожалуйста, выберите нужные дни");
		$('#price_total').hide();
	}
}

function spellNumeric(text, number){
    var number = new String(number);
    if (text == "человек") {
        if ((number == 2 || number.slice(-1) == 2 || number.slice(-1) == 3 || number.slice(-1) == 4) && number != 12 && number.slice(-2) != 12 && number != 13 && number.slice(-2) != 13 && number != 14 && number.slice(-2) != 14) {
            return "человека";
        }
        else {
            return "человек";
        }
    }
    if (text == "ись") {
        if ((number != 1 && number.slice(-1) != 1) || number.slice(-2) == 11) {
            return "ись";
        }
        else {
            return "ся";
        }
    }
    if (text == "день") {
        if ((number == 2 || number.slice(-1) == 2 || number.slice(-1) == 3 || number.slice(-1) == 4) && number != 12 && number.slice(-2) != 12 && number != 13 && number.slice(-2) != 13 && number != 14 && number.slice(-2) != 14) {
            return "дня";
        }
        else 
            if ((number != 1 && number.slice(-1) != 1) || number.slice(-2) == 11) {
                return "дней";
            }
            else {
                return "день";
            }
    }
    if (text == "место") {
        if ((number.slice(-1) == 2 || number.slice(-1) == 3 || number.slice(-1) == 4) && number != 12 && number.slice(-2) != 12 && number != 13 && number.slice(-2) != 13 && number != 14 && number.slice(-2) != 14) {
            return "места";
        }
        else 
            if ((number != 1 && number.slice(-1) != 1)) {
                return "мест";
            }
            else {
                return "место";
            }
    }
}

function check_form(){
    if ($('#r_name').val() == '') {
        $('#r_name').expose({
            api: true,
            color: '#000',
            opacity: 0.2
        }).load();
        $('#r_name').focus();
        return false;
    }
    else 
        if ($('#mail').val() == '' || !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($('#mail').val())) {
            $('#mail').expose({
                api: true,
                color: '#000',
                opacity: 0.2
            }).load();
            $('#mail').focus();
            return false;
        }
        else 
            if ($('#phone').val() == '') {
                $('#phone').expose({
                    api: true,
                    color: '#000',
                    opacity: 0.2
                }).load();
                $('#phone').focus();
                return false;
            }
    $('#house_type').val($('#house_type_ul li.current a').attr('id').slice(5));
    $('#ppl_basic').val($('div.page.current .slider_inner:first').slider('value'));
    if ($('div.page.current .slider_inner').length == 2 && $('div.page.current .slider_inner:last')) {
        $('#ppl_add').val($('div.page.current .slider_inner:last').slider('value'));
    }
    var days = $("#calendar").data('days');
    var days_string = "";
    for (var i = 0; i < days.length; i++) {
        days_string += ";" + days[i];
    }
    if (days_string == "") {
        alert('Выберите хотя бы один день');
        return false;
    }
    $('#days').val(days_string.slice(1));
    return true;
	
	$('#new_price_list').hide();
	
	$('#show_price').click(function(){
		alert('ОК!');
        $('#new_price_list').slideDown();
    });


	
}

