$(document).ready(function() {
    $.fx.speeds._default = 200;

    $("#arest").click(function(){
        $("#arest").hide();
        $("#restore").show();
        return false;
    })

    //Разворачивающиеся блоки
    $("#smart_main, #smart_flegmatic, #dopinfo, #smart_search_editor, #smart_reise").hide();

    $(".main_smart_button").click(function() {
        $("#smart_main").slideToggle(200);
        $("p.main_smart_button").toggle();
        return false;
    });

    $(".form_collapse_link").click(function() {
        $(".form_collapse").slideToggle(200);
        $("a.form_collapse_link").toggle();
        return false;
    });

    $(".reise_smart_button").click(function() {
        $("#smart_reise").slideToggle(200);
        $("p.reise_smart_button").toggle();
        return false;
    });

    $(".smart_search_editor_button").toggle(function() {
        $("#smart_search_editor").slideDown(200);
        return false;
    },

    function() {
        $("#smart_search_editor").slideUp(100);

        return false;
    });

    $(".flegmatic_smart_button").click(function() {
        $("#smart_flegmatic").slideToggle(200);
        $("p.flegmatic_smart_button").toggle();
        return false;
    });

    //Стили кликабельных блоков
    $("#pricelist tbody tr, #citylist tbody tr, #hotelprice2 tbody tr, #hotelprice tbody tr").mouseover(function() {
        $(this).css("background", "#e7ecf0");
    }).mouseout(function() {
        $(this).css("background", "#fff");
    }).mousedown(function() {
        $(this).css("background", "#fff4e1");
    }).mouseup(function() {
        $(this).css("background", "#fff");
    });

    // Кастомные экраны ожидания
    //
    var facts;
    $.getJSON('/utils/jokes.php', function(data) {
        facts = data;
    /*if($.browser.opera){
            jokeHolder.html(jokes.joke[0]);
        }*/
    });
    var waitMessage = function(message) {
        var lastFact, newFact = false, randFact = 0,
        factDelay = 6666;

        $('#waitmessage div div').remove();
        $('#waitmessage div').remove();
        $('#waitmessage').remove();
        
        var reclamka = '<div class="waittext" style="top:35px;"><a target="_blank" href="http://itunes.apple.com/ru/app/id445259566?mt=8">Качайте и пользуйтесь нашим приложением для Айфона!</a></div>';
        //var reclamka = '<div class="waittext" style="top:35px;"><a target="_blank" href="http://poezdka.ru/klm/">Выиграй 2 билета KLM в Амстердам!</a></div>';
        //var reclamka = '<div class="waittext" style="top:35px;"><a target="_blank" href="http://poezdka.ru/10prichin_letet_v_marsel.php">Как выиграть два билета в Марсель? Прямо сейчас поучаствовать в конкурсе AIRFRANCE и Poezdka.ru!</a></div>';
        var waitDiv = $('<div id="waitmessage">' +
            '<div class="preloader"><img src="/templates/nexito/images/anim.gif"/></div>' +
            '<div class="waittext"><p>' + (message ? message : 'Секундочку, Поездка обрабатывает запрос...') + '</p></div>' +
            '<div class="facts"></div>' + reclamka +
            //'<div class="anibanners" style="display:block; opacity: 1; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=100); -moz-opacity: 1; -khtml-opacity: 1;"><a target="_blank" href="http://poezdka.ru/etihad/" title="Выиграй поездку в Арабские Эмираты!"><div class="anibanner b-etihad_airwaysc"  style="display:block;"><div class="anibanner-left"></div><div class="anibanner-right"></div><div class="anibanner-logo"></div><div class="anibanner-text-big">Выиграй поездку в Арабские Эмираты!</div><div class="anibanner-text-small">Конкурс от Etihad Airways и Jebel Ali Golf Resort&amp;Spa</div></div></a><div>'+
            '</div>').appendTo($('body'));

        $.browser.opera ? $(waitDiv).show() : $(waitDiv).fadeIn("fast");

        var r = Math.floor(Math.random()*(facts.length - 1));

        var showFact = function() {

            lastFact = newFact;
            r = (r < (facts.length - 1)) ? r + 1 : 0;
            newFact = $('<div  />').appendTo($('#waitmessage .facts')).css('left', '-2000px').text( facts[ r ] ? facts[ r ] : '' ) ;

            if(lastFact && $.fn.animate) lastFact.animate({
                'left': '2000px'
            },700,function() {
                lastFact.remove();
            });
            if($.fn.animate) newFact.animate({
                'left': '0'
            },700,function() {  });
            setTimeout(showFact, factDelay);
            
        }

        showFact();
    }

    $('#waitmessage div div').remove();
    $('#waitmessage div').remove();
    $('#waitmessage').remove();
    var pic = new Image();
    pic.src="/templates/nexito/images/anim.gif";
    $(".wait").click(function() {
        waitMessage();
    });

    //Кликабельные блоки c переходом по ссылке
    $("#pricelist tbody tr, #hotelprice2 tbody tr, #hotelprice tbody tr").css("cursor", "pointer").click(function() {
        //	window.location=$(this).find("a.price").attr("href");return false;
        });

    $(".small_banner, .small_banner2").css("cursor", "pointer").click(function() {
        window.location = $(this).find("a").attr("href");
        return false;
    });

    //Экран ожидания форм
    $("form").submit(function() {
        waitMessage();
    });

    //Диалог  добавления пункта
    $(".add_punkt").click(function() {
        var for_id = $(this).prev("input").attr("id");
        var link = "/inc/selpt3.php?from=" + for_id;
        $("#s_frame").attr("src", link);
        window.closeCityDialog = function() {
            $("#for_city").dialog('close');
        }
        $("#for_city").attr("title", "Выбор пункта").dialog({
            modal: true,
            height: 480,
            width: 770

        });
        return false;
    });

    $(".small_add_punkt").click(function() {
        var for_id = $(this).attr("id");
        var link = "/inc/selpt3.php?from=" + for_id;
        $("#s_frame").attr("src", link);

        $("#for_city").attr("title", "Выбор пункта").dialog({
            modal: true,
            height: 480,
            width: 770,
            buttons: {
                Ok: function() {
                    $(this).dialog('close');
                }
            }

        });
        return false;
    });

    //Диалог конфирмации со ссылки
    $(".prompt").click(function() {
        var confirmway = $(this).attr("href");
        $("#prompt").attr("title", "Уверены?").dialog({
            modal: true,
            width: 400,
            buttons: {
                'Да': function() {
                    window.location = confirmway;
                },
                'Нет': function() {
                    $(this).dialog('close');
                }
            }

        });
        return false;
    });

    $(".prompt_sub").click(function() {
        var confirmway = $(this).attr("action");
        $("#prompt").attr("title", "Уверены?").dialog({
            modal: true,
            width: 400,
            buttons: {
                'Да': function() {
                    window.location = confirmway;
                },
                'Нет': function() {
                    $(this).dialog('close');
                }
            }

        });
        return false;
    });

    $(".friend_inviter").click(function() {

        $("#invite_friends").attr("title", "Пригласите с собой друзей!").dialog({
            modal: true,
            width: 400,
            buttons: {

                'Ок': function() {
                    $(this).dialog('close');
                }
            }

        });
    });

    $("#linkfield").click(function() {
        $(this).select();
    });

    /*Информационные диалоги*/

    $(".showrgs").click(function(e) {
        $("#rgs-info .product").hide();
        var number = {
            '0b2011ce-5250-4e8b-9d45-a2a8febd50a6': '0',
            '7b4b6143-6a47-4ccd-837f-dc408a5367f9': '1',
            '0c5bc565-7870-4dc2-9e42-6ac6bbd297b6': '2',
            '2d629f25-3670-4e6a-a1e8-9f6e14f40dbb': '3',
            '1b1d6e26-dab7-448b-b048-b4516df47c99': '4'
        }
        [$('#rgs-select').val()]
        $("#rgs-info .product-" + (number >= 0 ? number: '0')).show();

        $("#rgs-info").attr("title", "Информация о страховке").dialog({
            modal: true,
            height: 480,
            width: 770,
            buttons: {
                'Понятно!': function() {
                    $(this).dialog('close');
                }
            }
        });
        return false;
    });

    $(".dop_info_button").click(function() {
        $("#dopinfo").attr("title", "Инструкция").dialog({
            modal: true,
            height: 480,
            width: 770,
            buttons: {
                'Теперь все ясно!': function() {
                    $(this).dialog('close');
                }
            }
        })
        return false;
    });

    $("#scheme").click(function() {
        var link = "/support.html"
        $("#s_frame").attr("src", link);

        $("#for_city").attr("title", "Схема проезда").dialog({
            modal: true,
            height: 480,
            width: 770,
            buttons: {
                Ok: function() {
                    $(this).dialog('close');
                }
            }

        });
        return false;
    });

    if (!Array.indexOf) {
        Array.prototype.indexOf = function(obj) {
            for (var i = 0; i < this.length; i++) {
                if (this[i] == obj) {
                    return i;
                }
            }
            return - 1;
        }
    }
    var getDayName = function(text) {
        var matches = text.match(/\d+/g);
        if (!matches || ! matches[0] || ! matches[1] || ! matches[2]) return '';
        var date = new Date(matches[2], matches[1] - 1, matches[0]);
        var day = date.getDay();
        if (day < 0 || day > 6) return '';
        return ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'][day];
    };

    var showDayName = function(el, dayNameEl) {
        var dayName = getDayName(el.value);
        dayNameEl.html(dayName);
        ['сб', 'вс'].indexOf(dayName) >= 0 ? dayNameEl.addClass('red') : dayNameEl.removeClass('red');
    };

    $(".l_date input").add($(".l_date_birth input")).each(function(i, el) {
        var dayNameEl = $('<div class="day-name"></div>').insertAfter($(el));
        $(el).bind('change', function(a) {
            showDayName(el, dayNameEl);           
        });
        showDayName(el, dayNameEl);
    });
    
    $(".l_date input[id^='date']").datepicker({
        defaultDate: "+1w",
        numberOfMonths: 2,
        showOn: 'both',
        buttonText: 'Выберите дату',
        buttonImage: '/templates/nexito/images/calendar_big.png',
        buttonImageOnly: true,
        minDate: 0,
        maxDate: '+330D',
        onSelect: function(el) {
            var index = $(".l_date input[id^='date']").index(this);
            if((index + 1) < $(".l_date input[id^='date']").length){
                var nextField = $(".l_date #date\\[" + (index + 2) + "\\]");
                var curd = $(this).val();
                var nextd = nextField.val();
                var cur = parseDate(curd);
                var next = parseDate(nextd);
                if (next < cur) {
                    cur.setDate(cur.getDate() + 7);
                    nextField.val(formatDate(cur));
                    nextField.trigger('change');                  
                }              
            }
            $(el).trigger('change');
        }
    });

    $(".l_date #calendar_data").datepicker({
        defaultDate: "+1w",
        numberOfMonths: 2,
        showOn: 'both',
        buttonText: 'Выберите дату',
        buttonImage: '/templates/nexito/images/calendar_big.png',
        buttonImageOnly: true,
        minDate: 0,
        maxDate: '+180D',
        onSelect: function(el) {
            $(el).trigger('change');
        }
    });

    $(".small_in_date").datepicker({
        minDate: 0,
        numberOfMonths: 2,
        maxDate: '+330D'
    });

    //Подсказки
    $(".tip").tipTip({
        defaultPosition: "top"
    });
    
    //SelectBoxы 
    if($.fn.selectBox && !($.browser.msie && (parseInt($.browser.version, 10) < 8))) {
        $('select').selectBox();
        $('select').parent().css({
            'margin-left' : 0,
            'margin-right' : 0
        });
    }
    
    $('body').prepend($('<div id="ts"><p>другие версии Поездки.ру:&nbsp;&nbsp;&nbsp;<a href="http://poezdka.ru/index_mobile.php">для мобильных</a>&nbsp;&nbsp;&nbsp;<a href="http://itunes.apple.com/ru/app/id445259566?mt=8">для iPhone</a>&nbsp;&nbsp;&nbsp;<a href="http://classic.poezdka.ru">классика</a></p></div>'));          
    //$('body').prepend($('<div id="ts"><p style="font-weight:bold;">31 декабря офис работает до 16:00. С 1 по 3 января офис отдыхает, и забронированные билеты можно оплатить только картами онлайн, в салонах Евросеть и в терминалах Qiwi</p></div>'));          
    
    $('.bcprompt').click(showBcForm);
    $('.bcprompt_sub').click(showBcForm);
    
    var urlvars = getUrlVars();
    
    if(urlvars['err']){
        //alert(urlvars);
        for(var i = 1; i < 9; i++){
            if(urlvars['from['+i+']']){
                $("#from\\["+i+"\\]").val(decodeURIComponent(urlvars['from['+i+']']).replace(/\+/g,' '));
            }
            if(urlvars['to['+i+']']){
                $("#to\\["+i+"\\]").val(decodeURIComponent(urlvars['to['+i+']']).replace(/\+/g,' '));
            }
        }
    }else{
    
        if(urlvars['from2']){
            $("#from\\[1\\]").val(decodeURIComponent(urlvars['from2']).replace(/\+/g,' '));
        }
    
        if(urlvars['to2']){
            $("#to\\[1\\]").val(decodeURIComponent(urlvars['to2']).replace(/\+/g,' '));
        }
    }
    
    $("li.linktab > a").click(function(){
        var href = $(this).attr("href");
        if(href.indexOf("?") == -1){
            href = href + "?from2="+encodeURIComponent($("#from\\[1\\]").val())+"&to2="+encodeURIComponent($("#to\\[1\\]").val());
            location = href;
            return false;
        }
    });
			
});

var bcForm = '<form style="padding:20px;font-size:14px;" id="bcForm" action="/utils/feedback.php" method="post">'+
'<p style="margin:5px;">При отмене брони, забронированный тариф будет потерян<br /><br />Пожалуйста, сообщите нам причину отмены брони:</p>'+    
'<textarea name="bccmnt" cols="38" rows="4"></textarea>'+
'<input type="hidden" name="href" id="href"/>'+
'</form>';

function showBcForm(){
    var confirmway = '';
    if($(this).hasClass('bcprompt_sub')){
        confirmway = $(this).attr("action");
        $(this).parents("form").unbind();
        $(this).parents("form").submit(function(event){
            event.preventDefault();
        });
    }else{
        confirmway = $(this).attr("href");
    }
    if($("#for_dialogs").length < 1){
        $("body").append($('<div id="for_dialogs" />'));
    }
    $("#for_dialogs").empty();
    $("#for_dialogs").html(bcForm).dialog({
        title: 'Уверены?',
        modal: true,
        height:320,
        width:400,
        buttons: {
            "Отменить бронь": function() {
                $('#href').attr('value',confirmway);
                $('#bcForm').ajaxSubmit({
                    complete: function(){
                        window.location = confirmway;
                    }
                });
                $(this).dialog('close');
                $("#for_dialogs").empty();
            },
            "Сохранить бронь": function() {
                $(this).dialog('close');
                $("#for_dialogs").empty();
            }
        }

    });
    $('#bcForm').ajaxForm();
    return false;
}

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

function saveFromTo(){
    
}

function showRate(id,thi){
    var offset = $(thi).position();
    var div = $('div#'+id, $(thi).parents("#importer"));
    if(!div.length){
        div = noRate(id);
        div.prependTo($(thi).parents("#importer"));
    }
    div.css("top",offset.top-$(div).height()-10+'px');
    div.css("left",offset.left+'px');
    div.show();
}

function showRateA(id,thi){
    var offset = $(thi).offset();
    var div = $('div#A-'+id, $(thi).parents("body"));
    if(!div.length){
        div = noRate('A-'+id);
        div.appendTo($(thi).parents("body"));
    }
    div.css("top",offset.top-$(div).height()-10+'px');
    div.css("left",offset.left+'px');
    div.show();
}

function noRate(id){
    noratediv = $('<div class="rate" id="'+id+'">Пока нет данных о рейтинге</div>');
    return noratediv;
}

function hideRate(){
    $('div.rate').hide();
}

