﻿;
$(function() {

    //datepickers
    $('input[name=expressDate]', '.expressSelection', '.pod-tour').datepick({
        showOn: 'both',
        buttonImageOnly: true,
        buttonImage: '/i/icons/calendar.gif',
        gotoCurrent: true,
        minDate: new Date(),
        //rangeSelect: false,
        duration: 100,
        //beforeShowDay: datePickerCallback,
        //onSelect: validateDateFrom,
        showOtherMonths: true,
        selectOtherMonths: true,
        gotoCurrent: false,
        useThemeRoller: true,
        hideIfNoPrevNext: true,
        alignment: 'bottomLeft'
    });


    /* spo prices */
    $('.caption', '.spoAll').css({
        cursor: 'pointer'
    }).click(function() {
        $(this).next('.spoFirst').toggle(200, function() {
            clearFilters($(this)[0]);
        });
        $(this).parents('.spoAll').toggleClass('collapsed').toggleClass('expanded');
        return false;
    });

    /* / spo prices */

    /* countryInfo */
    $('.countryInfo .additional h4').css({ cursor: 'pointer' }).click(function() {
        var $add = $(this).parents('.additional');
        var $text = $(this).next('div.text');
        if ($add.hasClass('collapsed')) {
            $text.hide().toggle('normal', function() {
                clearFilters($text[0]);
            });
            $add.toggleClass('expanded').toggleClass('collapsed');
        } else {
            $text.toggle('normal', function() {
                $add.toggleClass('expanded').toggleClass('collapsed');
            });
        };

    });
    /* / countryInfo */

    /* expressSelection */
    $('.expressSelectionToggle').click(function() {
        $(this).next('.block').css({
            background: '#fff'
        }).show('fast', function() {
            clearFilters(this);
            $(this).css({
                background: 'transparent'
            });
        });
        return false;
    });
    $('.block h2', '.expressSelection:not(.expressSelection-index)').css({
        cursor: 'pointer'
    }).click(function() {
        $(this).parents('.block').css({
            background: '#fff'
        }).hide('fast');
        return false;
    });
    /* / expressSelection */


    /* mediaMap */
    if (typeof $.fn.fancybox != 'undefined') {
        $('a.mediaMap').fancybox({
            centerOnScroll: false,
            hideOnContentClick: false,
            overlayOpacity: .9,
            padding: 0,
            frameWidth: 700,
            frameHeight: 500
        });
    };

    /* mediaGal */
    $('.mediaGal img').not('.active').css({ opacity: 0 }).each(function() {
        var img = new Image;
        img.src = $(this).attr('src');
    });
    $('.mediaGal a').click(function() {
        var $gal = $(this).parents('.mediaGal');
        gal($gal, $('.pages', $gal), $(this), '.thumb');
        return false;
    });

    var fancyThumbs_scrolling = false;
    function fancyThumbs_down(total_height) {
        if (fancyThumbs_scrolling) {
            return false;
        };
        var $span = $('#fancy_thumbs span');
        var top = $span.position().top - $span.parent().height();
        if (top + total_height <= 0) {
            return false;
        };
        fancyThumbs_scrolling = true;
        $span.animate({
            top: top
        }, 500, function() {
            fancyThumbs_scrolling = false;
        });
    };

    function fancyThumbs_up(total_height) {
        if (fancyThumbs_scrolling) {
            return false;
        };
        var $span = $('#fancy_thumbs span');
        var pos = $span.position().top
        if (pos >= 0) {
            return false;
        };
        var top = pos + $span.parent().height();
        fancyThumbs_scrolling = true;
        $span.animate({
            top: top
        }, 500, function() {
            fancyThumbs_scrolling = false;
        });
    };

    var $active_fancy_source = null,
             fancy_animated = false,
             img_height = 0;

    if (typeof $.fn.fancybox != 'undefined') {

        $('.mediaGal a[rel=group]').click(function() {
            $active_fancy_source = $(this).parents('.mediaGal');
        }).fancybox({
            centerOnScroll: false,
            hideOnContentClick: false,
            overlayOpacity: .9,
            padding: 0,
            callbackOnStart: function() {
                $('a#fancy_right, a#fancy_left').append('<div class="bg" />');
                $('#fancy_outer, #fancy_loading').css({ marginLeft: -80 });
                $('body').append('<div id="fancy_thumbs"><div><span><i /></span></div></div>');
                $('#fancy_thumbs').click(function() {
                    $.fn.fancybox.close();
                });
                $('img.thumb', $active_fancy_source).clone().css({
                    opacity: 1,
                    cursor: 'pointer'
                }).appendTo('#fancy_thumbs span').click(function() {
                    if (!fancy_animated) {
                        $.fancyboxShowItem($('#fancy_thumbs span img').index($(this)));
                    };
                    return false;
                });
                var $imgs = $('img', '#fancy_thumbs');
                img_height = $imgs.eq(0).outerHeight(true);
                if ($imgs.length < 11) {
                    var height = $imgs.length * img_height;
                } else {
                    $('#fancy_thumbs').append('<a class="up" href="#" /><a class="down" href="#" />');
                    var height = 490;
                    var total_height = $imgs.length * img_height;
                    $('.up, .down', '#fancy_thumbs').click(function() {
                        if ($(this).hasClass('up')) {
                            fancyThumbs_up(total_height);
                        } else {
                            fancyThumbs_down(total_height);
                        };
                        return false;
                    });
                };
                height += 13; // fancybox "padding" ?
                var scrollTop = self.pageYOffset || document.documentElement.scrollTop;
                $('#fancy_thumbs').css({
                    top: scrollTop + parseInt(($(window).height() - height) / 2)
                });
            },
            callbackOnClose: function() {
                $active_fancy_source = null;
                $('.bg', 'a#fancy_right, a#fancy_left').remove();
                $('#fancy_outer, #fancy_loading').css({ marginLeft: 0 });
                $('#fancy_thumbs').remove();
            },
            callbackOnChange: function() {
                fancy_animated = true;
                $('img', '#fancy_thumbs span').css({
                    visibility: 'visible'
                });
                $('i', '#fancy_thumbs').animate({
                    opacity: 0
                }, 250);
            },
            callbackOnShow: function(item) {
                var $span = $('#fancy_thumbs span');
                $span.animate({
                    top: 0 - $span.parent().height() * (Math.floor((item + 10) / 10) - 1)
                }, 500);
                $('i', '#fancy_thumbs').css({
                    top: $('img:eq(' + item + ')', '#fancy_thumbs span').position().top + 2,
                    display: 'block'
                }).animate({ opacity: 1 }, 250, function() {
                    fancy_animated = false;
                    $('img:eq(' + item + ')', '#fancy_thumbs span').css({
                        visibility: 'hidden'
                    });
                });
            }
        });

    }
    /* / mediaGal */

});
