var state = "welcome" ; // "weclome" or "paper"
var url = '';
var welcome = null;
var wtext = null;
var paper = null;
var desktop = null;
var body = null;
var peredelkino = null;
var prot_menu_activ = null;
var prot_ht = null;
var go_page= null;
var buffer= null;

var trans_reb_bt= null;
var trans_blue_bt= null;
var trans_auto= null;
var trans_text= null;
var trans_link= null;

function ToPaper()
{
    welcome.stop();
    paper.stop();
    wtext.hide();
    body.addClass("page-body");
    body.removeClass("welcome-body");
    paper.fadeIn(1000, function() { state = 'paper'; } );
}

function redrawDesktop()
{
    desktop = $("#desktop");
    buffer = buffer || $("#buffer");
    var h= desktop.height();
    if ( h%168!=0 )
        buffer.height(168-h%168+77);
    else
        buffer.height(77);
}

function onLoadAjax( data  )
{
    desktop.html( data );
    desktop.removeClass('desktop-load');
    $("#desktop a[rel='fancybox']").fancybox({
        imageScale      : false,
        centerOnScroll  : false
    });
    $("#desktop a[rel='ajax']").click(go_page);
    $("#desktop img").ifixpng();
    redrawDesktop();
}

function onErrorAjax()
{
    desktop.removeClass('desktop-load');
    alert( 'Запрашиваемую вами страницу не удалось доставить.'+
        ' Попробуйте зайти по этому адресу:' + url );
}

function tohome()
{
    if (state !== 'welcome')
    {
        welcome.stop();
        paper.stop();
        paper.fadeOut(1000, function() {
            body.removeClass("page-body");
            body.addClass("welcome-body");
            state = 'welcome';
        });
    }
    return false;
}

function initProt()
{
    prot_menu_activ = null;
    prot_ht = $("#prot-ht");
    $("#desktop .prot-menu-item a").click(function(){  setProt( $(this )); });
    setProt($("#desktop .prot-menu-item-act a"));
}
function setProt( self )
{
    if ( prot_menu_activ ){
        prot_menu_activ.removeClass('prot-menu-item-act');
    }
    var pa = self.parent();
    pa.addClass("prot-menu-item-act");
    prot_menu_activ = pa;
    var obj = $(self.attr('rel'));
    prot_ht.html(obj.html());
    $("#prot-ht a[rel='fancyboxp']").fancybox({
        imageScale      : false,
        centerOnScroll  : false
    });
    $("#prot-ht a[rel='ajax']").click(go_page);
    redrawDesktop();
};


function Core(st, trans  ){
    state = st || state;
    welcome = $("#welcome");
    wtext = $("#wtext");
    paper = $("#paper");
    desktop = $("#desktop");
    body = body || $('html,body');
    buffer = buffer || $("#buffer");
    peredelkino = peredelkino || $("div.menu-peredelkino");

    body.addClass('js');
    body.removeClass('nojs');

    $.ifixpng('pict/empty.gif');
    $('img').ifixpng();
    go_page = function(){
        if ( state === 'welcome' )  { ToPaper(); }
        url = this.href;
        desktop.empty();
        desktop.addClass('desktop-load');
        $.ajax({
            success      : onLoadAjax,
            data         : {ajax: 1},
            url          : this.href,
            dataType     : 'json',
            cache        : false,
            timeout      : 10000,
            error        : onErrorAjax
        });

        return false;
    };
    $("a[rel='ajax']").click(go_page);

    peredelkino.removeClass('menu-peredelkino-c');
    peredelkino.hover(
        function()
        {
            $(this).stop();
            $(this).addClass('menu-peredelkino-a');
            $(this).animate({ top  : "58px"}, 200);


        },
        function()
        {
            $(this).stop();
            $(this).removeClass('menu-peredelkino-a');
            $(this).animate({ top  : "73px"},  200);
        }
    );

    if ( this.state === 'welcome' ) {
        var imagesList = [
                    'welcome.jpg','desktop-background.jpg','desktop-bottom.jpg',
                    'desktop-top.jpg', 'loader.gif', 'menu-istoria.gif',
                    'menu-muzei.gif', 'menu-onas-hover.jpg', 'menu-trogesvta-hover.jpg',
                    'menu-razmeshenie-hover.jpg', 'menu-razvlechenija-hover.jpg',
                    'menu-restoran-hover.jpg', 'menu-kontakti-hover.jpg',
                    'menu-peredelkino-a.png'
        ];
    }
    else
    {
        var imagesList = [
                    'desktop-top.jpg','desktop-bottom.jpg',
                    'desktop-background.jpg', 'loader.gif', 'menu-istoria.gif',
                    'menu-muzei.gif', 'welcome.jpg', 'menu-onas-hover.jpg', 'menu-trogesvta-hover.jpg',
                    'menu-razmeshenie-hover.jpg', 'menu-razvlechenija-hover.jpg',
                    'menu-restoran-hover.jpg', 'menu-kontakti-hover.jpg',
                    'menu-peredelkino-a.png'
        ];
    }
    var aImages = [];
    for (var i = 0, len = imagesList.length; i < len; i++) {
            aImages[i] = new Image();
            aImages[i].src = 'pict/' + imagesList[i];
    }
    $("#desktop a[rel='fancybox']").fancybox({
        imageScale      : false,
        centerOnScroll  : false
    });
    if (trans)
        tarsferinit();
}

function tarsferinit() {
    trans_reb_bt= trans_reb_bt || $("#trans-reb-bt");
    trans_blue_bt= trans_blue_bt || $("#trans-blue-bt");
    trans_auto= trans_auto || $("#trans-auto");
    trans_text= trans_text || $("#trans-text");
    trans_link= trans_link || $("#trans-link");
    trans_text.fadeTo(0,0);
    tarsferanim();
}

function blink(obj, time, callbak) {
    obj.fadeTo(time, 0, function () {
        obj.fadeTo(time, 1, callbak);
    });
}

function tarsferanim() {
    blink(trans_reb_bt, 500, function(){
        blink(trans_blue_bt, 500, function(){
                trans_auto.fadeTo(500, 0, function () {
                    trans_text.fadeTo(500,1, function () {
                        trans_text.fadeTo(5000,1, function () {
                            trans_text.fadeTo(500,0, function () {
                                trans_auto.fadeTo(500, 1, tarsferanim);
                            });
                        });
                    });
                });
        });
    });
}

function oline_init() {
    var reis= $("[rel='reis']");
    var trans= $("#ftransfer");
    function on_trans() {
        if (trans.attr('checked')){
            reis.show();
        }
        else {
            reis.hide();
        }
    }

    function show_err(err) {
        var terr="Заявка заполнена некорректно: \n";
        for(var i=0; i<err.length; i++) {
            terr+= "   - "+err[i]+"\n";
        }
        alert(terr);
    }

    function validate() {
        var err= [];

        if (!(/^[1-4]{1}$/.test($("#fcount-rooms").val())) )
            err.push("Извините, но в нашем мини-отеле пока всего 4 номера  \n     вместительностью от 1 до 4 человек каждый. \n     Пожалуйста, укажите верное количество номеров!");
        if ($("#fguets").val().length==0)
            err.push("Пожалуйста, укажите Ф.И.О всех, кто будет проживать в номере!");
        if ($("#fpassport").val().length==0)
            err.push("Пожалуйста, укажите паспортные данные заявителя!");
        if ($("#fphone").val().length==0)
            err.push("Пожалуйста, укажите ваш телефон!");
        if (!(/^\w[-\.\w]*@([-a-z0-9]+\.)+[a-z]{2,4}$/i.test($("#fmail").val())) )
            err.push("Пожалуйста, укажите Ваш существующий Email!");
        if (!(/^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$/.test($("#fzaezd-date").val())) ||
            !(/^[0-9]{1,2}\:[0-9]{1,2}$/.test($("#fzaezd-time").val())))
            err.push("Пожалуйста, укажите дату и время заезда!");
        if (!(/^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$/.test($("#fotezd-date").val())) ||
            !(/^[0-9]{1,2}\:[0-9]{1,2}$/.test($("#fotezd-time").val())))
            err.push("Пожалуйста, укажите дату и время выезда!");
        if ($("#ftransfer").attr("checked")) {
            if (!(/^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$/.test($("#fprilet-date").val())) ||
                !(/^[0-9]{1,2}\:[0-9]{1,2}$/.test($("#fprilet-time").val())))
                err.push("Пожалуйста, укажите дату и время прилета Вашего рейса!");
            if ($("#freis").val().length==0)
                err.push("Пожалуйста, укажите № рейса!");
        }
        return err;
    }

    $.datepicker.regional['ru'] = {
            closeText: 'Закрыть',
            prevText: '&#x3c;Пред',
            nextText: 'След&#x3e;',
            currentText: 'Сегодня',
            monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
            'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
            monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
            'Июл','Авг','Сен','Окт','Ноя','Дек'],
            dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
            dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
            dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
            dateFormat: 'dd.mm.yy', firstDay: 1,
            isRTL: false
        };
    $.datepicker.setDefaults($.datepicker.regional['ru']);
    $("#fzaezd-date").datepicker();
    $("#fotezd-date").datepicker();
    $("#fprilet-date").datepicker();

    var tp={
        rangeMin: ['5', '10', '15', '20', '25,', '30', '35', '40', '45', '50', '55'],
        convention: 24
    };
    $("#fzaezd-time").timepickr(tp);
    $("#fotezd-time").timepickr(tp);
    $("#fprilet-time").timepickr(tp);

    on_trans();
    trans.click(on_trans);
    $("#fform").ajaxForm({
        url: "online_submit.php?ajax=true",
        dataType: "json",
        beforeSubmit: function() {
            var err= validate();
            if (err.length==0)
                return true;
            else {
                show_err(err);
                return false;
            }
        },
        success: function (data) {
            if (data.ok) {
                onLoadAjax(data.text);
            }
            else {
                alert(data.text);
                $("#fkcaptcha").attr('src', 'kcaptcha.php?fickiv='+Math.random());
            }
        }
    });
}