$(document).ready(function () {
    /* MENU */
    $('#menu ul li:not(:first)').append('<span class="menu-division"></span>');
  
    /* TABS */
    $('#tabs-menu li').click(function () {
        $('#tabs > div').css('display', 'none');
        var tabsId = $(this).find('a').attr('class');
        $('#'+tabsId+'').css('display', 'block');
        $('#tabs-menu li').removeClass('active-tabs');
        $(this).addClass('active-tabs');
        $('.border-img img').trigger("borderImg");
        return false;
    });

    /* BORDER */
    if ( $.browser.msie && ($.browser.version == 7.0 || $.browser.version == 6.0)) {
        $('#text img, #tabs img').css('margin', '10px');
    } else {
        $('#text img, #tabs img').not('.banner img').wrap('<div class="border-img"></div>');
        var border = '<div class="pod-img-bg"><div class="radius-shadow-wrap"><div class="border-img-inhere"></div><div class="radius-shadow-cn bg-img-opacity shad-tl"></div><div class="radius-shadow-cn bg-img-opacity shad-tr"></div></div><div class="radius-shadow-cn bg-img-opacity shad-bl"></div><div class="radius-shadow-cn bg-img-opacity shad-br"></div></div>';
        $(".border-img").append(border);

        $('.border-img img').bind("borderImg", function () {
            var imgW = $(this).attr("width");
            var imgH = $(this).attr("height");
            var imgAl = $(this).attr("align");
            var summaOne = imgW - 30;
            var summaTwo = imgH - 28;
            var summaOneStr = summaOne + "px";
            var summaTwoStr = summaTwo + "px";

            $(this).next(".pod-img-bg").css("width", summaOneStr);
            $(this).next(".pod-img-bg").find(".border-img-inhere").css("height", summaTwoStr);
            $(this).parent(".border-img").css("float", imgAl);
        });
        $('.border-img img').trigger("borderImg");
    }

    /* CALENDAR */
    /* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
    /* Written by Andrew Stromnov (stromnov@gmail.com). */
    jQuery(function($){
        $.datepicker.regional['ru'] = {
            closeText: 'Закрыть',
            prevText: '&#x3c;Пред',
            nextText: 'След&#x3e;',
            currentText: 'Сегодня',
            monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
            'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
            monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
            'Июл','Авг','Сен','Окт','Ноя','Дек'],
            dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
            dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
            dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
            weekHeader: 'Не',
            dateFormat: 'dd.mm.yy',
            firstDay: 1,
            isRTL: false,
            showMonthAfterYear: false,
            yearSuffix: ''
        };
        $.datepicker.setDefaults($.datepicker.regional['ru']);
    });

    $.datepicker.setDefaults($.extend($.datepicker.regional['ru']));
    var dates = $('#from, #to').datepicker({
        firstDay: 1,
        minDate: 0,
        onSelect: function(selectedDate) {
            var option = this.id == "from" ? "minDate" : "maxDate";
            var instance = $(this).data("datepicker");
            var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
            dates.not(this).datepicker("option", option, date);
        }
    });

    /* ORDER */
    $('.input-small').hover(function () {
        $(this).find('small').fadeIn('slow');
    },function () {
        if ( $(this).find('small').hasClass('tooltip-active') ) {} else {
            $(this).find('small').fadeOut('slow');
        }
    });
    $('.input-small input').focus(function () {
        $(this).parent('span').find('small').addClass('tooltip-active').fadeIn('slow');
    });
    $('.input-small input').blur(function () {
        $(this).parent('span').find('small').removeClass('tooltip-active').fadeOut('slow');
    });

    $('#wrong-order').dialog({
        autoOpen: false,
        bgiframe: true,
        modal: true,
        buttons: {
            "Хорошо": function () {
                $(this).dialog('close');
                if ( $('#wrong-order').hasClass('n-ff') ) {
                    $('#wrong-order').removeClass('n-ff');
                    $('#name').focus();
                }
                else if ( $('#wrong-order').hasClass('m-ff') ) {
                    $('#wrong-order').removeClass('m-ff');
                    $('#mail').focus();
                }
                else if ( $('#wrong-order').hasClass('fr-ff') ) {
                    $('#wrong-order').removeClass('fr-ff');
                    $('#from').focus();
                }
            }
        }
    });

    $('#form').submit(function () {
        if ( $.trim($('#name').val()).length < 1 ) {
            $('#wrong-order p').html('Пожалуйста, укажите Ваше <b>имя</b>.');
            $('#name').val('');
            $('#wrong-order').addClass('n-ff').dialog('open');
            return false;
        }
        if ( ($.trim($('#mail').val()).length < 1) && ($.trim($('#phone').val()).length < 1)) {
            $('#wrong-order p').html('Вы не указали как с Вами можно связаться. Пожалуйста, укажите свой <b>номер телефона</b> или <b>электронный почтовый адрес</b>.');
            $('#wrong-order').addClass('m-ff').dialog('open');
            return false;
        }
        if ( $('#mail').val().length > 0 ) {
            var mailregsxp = /^[0-9a-z_\.\-]+@[0-9a-z_\.\-]+\.[a-z]{2,6}$/i;
            if ($('#mail').val().match(mailregsxp)==null) {
                $('#wrong-order p').html('Вы не корректно ввели контактные данные. Пожалуйста, укажите свой <b>электронный почтовый адрес правильно</b>.');
                $('#wrong-order').addClass('m-ff').dialog('open');
                return false;
            }
        }
        if ( $.trim($('#from').val()).length < 1 || $.trim($('#to').val()).length < 1 ) {
            $('#wrong-order p').html('Вы не указали время Вашего <b>проживания</b> у нас. Пожалуйста, укажите <b>дату заезда</b> и <b>отъезда</b>.');
            $('#wrong-order').addClass('fr-ff').dialog('open');
            return false;
        }
    
    });

    (function(a){
        var c=(a.browser.msie?"paste":"input")+".mask";
        var b=(window.orientation!=undefined);
        a.mask={
            definitions:{
                "9":"[0-9]",
                a:"[A-Za-z]",
                "*":"[A-Za-z0-9]"
            }
        };

        a.fn.extend({
            caret:function(e,f){
                if(this.length==0){
                    return
                }
                if(typeof e=="number"){
                    f=(typeof f=="number")?f:e;
                    return this.each(function(){
                        if(this.setSelectionRange){
                            this.focus();
                            this.setSelectionRange(e,f)
                        }else{
                            if(this.createTextRange){
                                var g=this.createTextRange();
                                g.collapse(true);
                                g.moveEnd("character",f);
                                g.moveStart("character",e);
                                g.select()
                            }
                        }
                    })
                }else{
                    if(this[0].setSelectionRange){
                        e=this[0].selectionStart;
                        f=this[0].selectionEnd
                    }else{
                        if(document.selection&&document.selection.createRange){
                            var d=document.selection.createRange();
                            e=0-d.duplicate().moveStart("character",-100000);
                            f=e+d.text.length
                        }
                    }
                    return{
                        begin:e,
                        end:f
                    }
                }
            },
            unmask:function(){
                return this.trigger("unmask")
            },
            mask:function(j,d){
                if(!j&&this.length>0){
                    var f=a(this[0]);
                    var g=f.data("tests");
                    return a.map(f.data("buffer"),function(l,m){
                        return g[m]?l:null
                    }).join("")
                }
                d=a.extend({
                    placeholder:"_",
                    completed:null
                },d);
                var k=a.mask.definitions;
                var g=[];
                var e=j.length;
                var i=null;
                var h=j.length;
                a.each(j.split(""),function(m,l){
                    if(l=="?"){
                        h--;
                        e=m
                    }else{
                        if(k[l]){
                            g.push(new RegExp(k[l]));
                            if(i==null){
                                i=g.length-1
                            }
                        }else{
                            g.push(null)
                        }
                    }
                });
                return this.each(function(){
                    var r=a(this);
                    var m=a.map(j.split(""),function(x,y){
                        if(x!="?"){
                            return k[x]?d.placeholder:x
                        }
                    });
                    var n=false;
                    var q=r.val();
                    r.data("buffer",m).data("tests",g);
                    function v(x){
                        while(++x<=h&&!g[x]){}
                        return x
                    }
                    function t(x){
                        while(!g[x]&&--x>=0){}
                        for(var y=x;y<h;y++){
                            if(g[y]){
                                m[y]=d.placeholder;
                                var z=v(y);
                                if(z<h&&g[y].test(m[z])){
                                    m[y]=m[z]
                                }else{
                                    break
                                }
                            }
                        }
                        s();
                        r.caret(Math.max(i,x))
                    }
                    function u(y){
                        for(var A=y,z=d.placeholder;A<h;A++){
                            if(g[A]){
                                var B=v(A);
                                var x=m[A];
                                m[A]=z;
                                if(B<h&&g[B].test(x)){
                                    z=x
                                }else{
                                    break
                                }
                            }
                        }
                    }
                    function l(y){
                        var x=a(this).caret();
                        var z=y.keyCode;
                        n=(z<16||(z>16&&z<32)||(z>32&&z<41));
                        if((x.begin-x.end)!=0&&(!n||z==8||z==46)){
                            w(x.begin,x.end)
                        }
                        if(z==8||z==46||(b&&z==127)){
                            t(x.begin+(z==46?0:-1));
                            return false
                        }else{
                            if(z==27){
                                r.val(q);
                                r.caret(0,p());
                                return false
                            }
                        }
                    }
                    function o(B){
                        if(n){
                            n=false;
                            return(B.keyCode==8)?false:null
                        }
                        B=B||window.event;
                        var C=B.charCode||B.keyCode||B.which;
                        var z=a(this).caret();
                        if(B.ctrlKey||B.altKey||B.metaKey){
                            return true
                        }else{
                            if((C>=32&&C<=125)||C>186){
                                var x=v(z.begin-1);
                                if(x<h){
                                    var A=String.fromCharCode(C);
                                    if(g[x].test(A)){
                                        u(x);
                                        m[x]=A;
                                        s();
                                        var y=v(x);
                                        a(this).caret(y);
                                        if(d.completed&&y==h){
                                            d.completed.call(r)
                                        }
                                    }
                                }
                            }
                        }
                        return false
                    }
                    function w(x,y){
                        for(var z=x;z<y&&z<h;z++){
                            if(g[z]){
                                m[z]=d.placeholder
                            }
                        }
                    }
                    function s(){
                        return r.val(m.join("")).val()
                    }
                    function p(y){
                        var z=r.val();
                        var C=-1;
                        for(var B=0,x=0;B<h;B++){
                            if(g[B]){
                                m[B]=d.placeholder;
                                while(x++<z.length){
                                    var A=z.charAt(x-1);
                                    if(g[B].test(A)){
                                        m[B]=A;
                                        C=B;
                                        break
                                    }
                                }
                                if(x>z.length){
                                    break
                                }
                            }else{
                                if(m[B]==z[x]&&B!=e){
                                    x++;
                                    C=B
                                }
                            }
                        }
                        if(!y&&C+1<e){
                            r.val("");
                            w(0,h)
                        }else{
                            if(y||C+1>=e){
                                s();
                                if(!y){
                                    r.val(r.val().substring(0,C+1))
                                }
                            }
                        }
                        return(e?B:i)
                    }
                    if(!r.attr("readonly")){
                        r.one("unmask",function(){
                            r.unbind(".mask").removeData("buffer").removeData("tests")
                        }).bind("focus.mask",function(){
                            q=r.val();
                            var x=p();
                            s();
                            setTimeout(function(){
                                if(x==j.length){
                                    r.caret(0,x)
                                }else{
                                    r.caret(x)
                                }
                            },0)
                        }).bind("blur.mask",function(){
                            p();
                            if(r.val()!=q){
                                r.change()
                            }
                        }).bind("keydown.mask",l).bind("keypress.mask",o).bind(c,function(){
                            setTimeout(function(){
                                r.caret(p(true))
                            },0)
                        })
                    }
                    p()
                })
            }
        })
    })(jQuery);

    $("#phone").mask("+9 (999) 999-9999");

    /* GALARY */
    $('#slide-btn span').click(function () {
        $('#slide-text').slideToggle('slow');
    });
    
    /* SELECT */
    $('.select-mini-order').selectmenu({
        style: 'dropdown',
        width: 82
    });
    $('.select-small').selectmenu({
        style: 'dropdown',
        width: 120
    });
    $('.select-big').selectmenu({
        style: 'dropdown',
        width: 310
    });

    /* CAROUSEL */
    (function($){
        $.fn.jCarouselLite=function(o){
            o=$.extend({
                btnPrev:null,
                btnNext:null,
                btnGo:null,
                mouseWheel:false,
                auto:null,
                speed:200,
                easing:null,
                vertical:false,
                circular:true,
                visible:3,
                start:0,
                scroll:1,
                beforeStart:null,
                afterEnd:null
            },o||{});
            return this.each(function(){
                var b=false,animCss=o.vertical?"top":"left",sizeCss=o.vertical?"height":"width";
                var c=$(this),ul=$("ul",c),tLi=$("li",ul),tl=tLi.size(),v=o.visible;
                if(o.circular){
                    ul.prepend(tLi.slice(tl-v-1+1).clone()).append(tLi.slice(0,v).clone());
                    o.start+=v
                }
                var f=$("li",ul),itemLength=f.size(),curr=o.start;
                c.css("visibility","visible");
                f.css({
                    overflow:"hidden",
                    float:o.vertical?"none":"left"
                });
                ul.css({
                    margin:"0",
                    padding:"0",
                    position:"relative",
                    "list-style-type":"none",
                    "z-index":"1"
                });
                c.css({
                    overflow:"hidden",
                    position:"relative",
                    "z-index":"2",
                    left:"0px"
                });
                var g=o.vertical?height(f):width(f);
                var h=g*itemLength;
                var j=g*v;
                f.css({
                    width:f.width(),
                    height:f.height()
                });
                ul.css(sizeCss,h+"px").css(animCss,-(curr*g));
                c.css(sizeCss,j+"px");
                if(o.btnPrev)$(o.btnPrev).click(function(){
                    return go(curr-o.scroll)
                });
                if(o.btnNext)$(o.btnNext).click(function(){
                    return go(curr+o.scroll)
                });
                if(o.btnGo)$.each(o.btnGo,function(i,a){
                    $(a).click(function(){
                        return go(o.circular?o.visible+i:i)
                    })
                });
                if(o.mouseWheel&&c.mousewheel)c.mousewheel(function(e,d){
                    return d>0?go(curr-o.scroll):go(curr+o.scroll)
                });
                if(o.auto)setInterval(function(){
                    go(curr+o.scroll)
                },o.auto+o.speed);
                function vis(){
                    return f.slice(curr).slice(0,v)
                };

                function go(a){
                    if(!b){
                        if(o.beforeStart)o.beforeStart.call(this,vis());
                        if(o.circular){
                            if(a<=o.start-v-1){
                                ul.css(animCss,-((itemLength-(v*2))*g)+"px");
                                curr=a==o.start-v-1?itemLength-(v*2)-1:itemLength-(v*2)-o.scroll
                            }else if(a>=itemLength-v+1){
                                ul.css(animCss,-((v)*g)+"px");
                                curr=a==itemLength-v+1?v+1:v+o.scroll
                            }else curr=a
                        }else{
                            if(a<0||a>itemLength-v)return;else curr=a
                        }
                        b=true;
                        ul.animate(animCss=="left"?{
                            left:-(curr*g)
                        }:{
                            top:-(curr*g)
                        },o.speed,o.easing,function(){
                            if(o.afterEnd)o.afterEnd.call(this,vis());
                            b=false
                        });
                        if(!o.circular){
                            $(o.btnPrev+","+o.btnNext).removeClass("disabled");
                            $((curr-o.scroll<0&&o.btnPrev)||(curr+o.scroll>itemLength-v&&o.btnNext)||[]).addClass("disabled")
                        }
                    }
                    return false
                }
            })
        };

        function css(a,b){
            return parseInt($.css(a[0],b))||0
        };

        function width(a){
            return a[0].offsetWidth+css(a,'marginLeft')+css(a,'marginRight')
        };

        function height(a){
            return a[0].offsetHeight+css(a,'marginTop')+css(a,'marginBottom')
        }
    })(jQuery);

    $("#carousel").jCarouselLite ({
        btnNext: "#next",
        btnPrev: "#prev",
        visible: 2
    });

    $('#carousel a').click(function () {
        var largePath = $(this).attr('href');
        $('#large-im img').remove();
        $('#large-im p').append('<img style="display: none" src="' + largePath + '" width="212" height="137" alt="">');
        bigImg = new Image;
        bigImg.src=largePath;
        if (bigImg.complete) {
            $('#large-im img').fadeIn('slow');
        } else {
            $(bigImg).unbind().bind('load', function() {
                $('#large-im img').fadeIn('slow');
            });
        }
        return false;
    });

});

