/* Copyright AurelienD http://themeforest.net/user/AurelienD?ref=AurelienD */

function full_width_slider(autoplay, hide_arrows, pause_time, transition_speed) {

    var total_slides = 0;
    var current_slide = 0;
    var next_slide = 0;
    var processing = true;
    var timer_slider = 0;
    var timer_button = 0;
    var buttons_over = false;
    var no_caption_fadein = 0;

    total_slides = $('.slide').length;
    current_slide = total_slides - 1;

    if ($.browser.msie && parseInt($.browser.version) == 7) {
        no_caption_fadein = transition_speed;
    }

    if ($.browser.msie && parseInt($.browser.version) == 9) {
        $('.slide').css('display', 'block');
    }

    function hide_buttons() {
        if (!buttons_over) {
            $('#slider-control').fadeOut(transition_speed);
        }
    }

    function show_buttons() {
        $('#slider-control').fadeIn(transition_speed);
        window.clearTimeout(timer_button);
        timer_button = window.setTimeout(hide_buttons, 2000);
    }

    $('#slider-button-left, #slider-button-right').mouseenter(function() {
        buttons_over = true;
    });

    $('#slider-button-left, #slider-button-right').mouseleave(function() {
        buttons_over = false;
    });

    if (total_slides > 1) {
        if (hide_arrows) {
            $('div').mousemove(function(e) {
                if (e.pageY < ($('#full-width-slider').height())) {
                    show_buttons();
                }
            });
        } else {
            $('#slider-control').css('display', 'block');
        }
    }

    $('.slide-caption').css('display', 'none');

    var img = new Image();
    $(img)
		.load(function() {
		    $('#full-width-slider').css('background', '#000');
		    $('#full-width-slider-small').css('background', '#000');
		    fadein_next_slide();
		})
		.attr('src', $('.slide:first').find('img').attr('src'));

    function fadeout_caption() {
        $('.slide').eq(current_slide).find('.slide-caption').fadeOut(transition_speed / 4);
        $('.slide').eq(current_slide).find('.slide-caption-container').animate({ left: '-=50' }, transition_speed / 1.5);
        setTimeout(fadein_next_slide, transition_speed / 2);
    }

    function fadein_next_slide() {
        $('.slide').eq(next_slide).css('display', 'none').css({ 'z-index': '5' }).fadeIn(transition_speed, function() {
            if ($('.slide').eq(next_slide).find('.slide-caption').length === 0) {
                if (total_slides > 1) {
                    $('.slide').eq(current_slide).css('display', 'none');
                }
                current_slide = next_slide;
                processing = false;
                if (autoplay) {
                    timer_slider = setTimeout(display_next_slide, pause_time);
                }
            }
        });
        if ($('.slide').eq(next_slide).find('.slide-caption').length != 0) {
            setTimeout(fadein_caption, transition_speed / 1.5);
        }
    }

    function fadein_caption() {
        $('.slide').eq(next_slide).find('.slide-caption').fadeIn(transition_speed - no_caption_fadein, function() {
            if ($.browser.msie) {
                this.style.removeAttribute('filter');
            }
            if (total_slides > 1) {
                $('.slide').eq(current_slide).css('display', 'none');
            }
            current_slide = next_slide;
            processing = false;
            if (autoplay) {
                timer_slider = setTimeout(display_next_slide, pause_time);
            }
        });
        $('.slide').eq(next_slide).find('.slide-caption-container').animate({ left: '+=50' }, transition_speed / 1.5);
    }

    function display_next_slide() {
        if (!processing) {
            window.clearTimeout(timer_slider);
            processing = true;
            if (current_slide + 1 === total_slides) {
                next_slide = 0;
            } else {
                next_slide = current_slide + 1;
            }
            $('.slide').eq(current_slide).css({ 'z-index': '4' });
            if ($('.slide').eq(current_slide).find('.slide-caption').length != 0) {
                fadeout_caption();
            } else {
                fadein_next_slide();
            }
        }
    }

    function display_previous_slide() {
        if (!processing) {
            window.clearTimeout(timer_slider);
            processing = true;
            if (current_slide === 0) {
                next_slide = total_slides - 1;
            } else {
                next_slide = current_slide - 1;
            }
            $('.slide').eq(current_slide).css({ 'z-index': '4' });
            if ($('.slide').eq(current_slide).find('.slide-caption').length != 0) {
                fadeout_caption();
            } else {
                fadein_next_slide();
            }
        }
    }

    $('#slider-button-left').click(function() {
        display_previous_slide();
        return false;
    });

    $('#slider-button-right').click(function() {
        display_next_slide();
        return false;
    });

}

function packages_slider() {

    var packages_total = $('.package').length;
    var package_num = 1;

    $('.package-number').css('display', 'block');

    function enable_disable_packages_buttons() {
        if (package_num === packages_total) {
            $('#packages-button-right').css('display', 'none');
            $('#packages-button-right-disabled').css('display', 'block');
        } else {
            $('#packages-button-right').css('display', 'block');
            $('#packages-button-right-disabled').css('display', 'none');
        }
        if (package_num === 1) {
            $('#packages-button-left').css('display', 'none');
            $('#packages-button-left-disabled').css('display', 'block');
        } else {
            $('#packages-button-left').css('display', 'block');
            $('#packages-button-left-disabled').css('display', 'none');
        }
    }

    enable_disable_packages_buttons();

    $('#packages-button-right').click(function() {
        $('#packages-slide').animate({ left: '-=300' }, 500, 'easeOutQuad');
        package_num++;
        enable_disable_packages_buttons();
        return false;
    });
    $('#packages-button-left').click(function() {
        $('#packages-slide').animate({ left: '+=300' }, 500, 'easeOutQuad');
        package_num--;
        enable_disable_packages_buttons();
        return false;
    });
}

function testimonials_slider() {
    var top = Math.floor($('#testimonials-first-container').height() / 2);
    top = top - 16;

    var testimonials_total = $('.testimonial').length;
    var testimonial_left = 1;
    var testimonial_right = 2;
    $('#testimonials-number').html('Testimonials ' + testimonial_left + ' &amp; ' + testimonial_right + ' out of ' + testimonials_total);

    function enable_disable_testimonials_buttons() {
        if (testimonial_right === testimonials_total) {
            $('#testimonials-button-right').css('display', 'none');
            $('#testimonials-button-right-disabled').css('display', 'block');
        } else {
            $('#testimonials-button-right').css('display', 'block');
            $('#testimonials-button-right-disabled').css('display', 'none');
        }
        if (testimonial_left === 1) {
            $('#testimonials-button-left').css('display', 'none');
            $('#testimonials-button-left-disabled').css('display', 'block');
        } else {
            $('#testimonials-button-left').css('display', 'block');
            $('#testimonials-button-left-disabled').css('display', 'none');
        }
    }

    $('#testimonials-button-left').css('top', top + 'px');
    $('#testimonials-button-right').css('top', top + 'px');
    $('#testimonials-button-left-disabled').css('top', top + 'px');
    $('#testimonials-button-right-disabled').css('top', top + 'px');

    enable_disable_testimonials_buttons();

    $('#testimonials-button-right').click(function() {
        $('#testimonials-slide').animate({ left: '-=390' }, 500, 'easeOutQuad');
        testimonial_left++;
        testimonial_right++;
        $('#testimonials-number').html('Testimonials ' + testimonial_left + ' &amp; ' + testimonial_right + ' out of ' + testimonials_total);
        enable_disable_testimonials_buttons();
        return false;
    });
    $('#testimonials-button-left').click(function() {
        $('#testimonials-slide').animate({ left: '+=390' }, 500, 'easeOutQuad');
        testimonial_left--;
        testimonial_right--;
        $('#testimonials-number').html('Testimonials ' + testimonial_left + ' &amp; ' + testimonial_right + ' out of ' + testimonials_total);
        enable_disable_testimonials_buttons();
        return false;
    });
}

function prepare_room_slider() {

    var thumbnails_total = $('.room-thumbnail').length;
    var num_thumbnail_left = 1;

    function enable_disable_room_slider_buttons() {
        if (num_thumbnail_left === thumbnails_total - 4) {
            $('#room-slider-button-right').css('display', 'none');
            $('#room-slider-button-right-disabled').css('display', 'block');
        } else {
            $('#room-slider-button-right').css('display', 'block');
            $('#room-slider-button-right-disabled').css('display', 'none');
        }
        if (num_thumbnail_left === 1) {

            $('#room-slider-button-left').css('display', 'none');
            $('#room-slider-button-left-disabled').css('display', 'block');
        } else {

            $('#room-slider-button-left').css('display', 'block');
            $('#room-slider-button-left-disabled').css('display', 'none');
        }
    }

    if (thumbnails_total <= 5) {
        var room_slider_width = thumbnails_total * 80 + (thumbnails_total - 1) * 20;
        $('#room-slider-second-container').width(room_slider_width + 'px');
    } else {
        enable_disable_room_slider_buttons();
    }

    $('.room-thumbnail').eq(0).addClass('thumbnail-current');
    $('.room-thumbnail').each(function() {
        if (!$(this).hasClass('thumbnail-current')) {
            grayscale($(this).find('img'));
        }
        $(this).hover(function() {
            if (!$(this).hasClass('thumbnail-current')) {
                grayscale.reset($(this).find('img'));
            }
        }, function() {
            if (!$(this).hasClass('thumbnail-current')) {
                grayscale($(this).find('img'));
            }
        });
    });

    $('#room-slider-button-right').click(function() {
        $('#room-slider-slide').animate({ left: '-=100' }, 500, 'easeOutQuad');
        num_thumbnail_left++;
        enable_disable_room_slider_buttons();
        return false;
    });
    $('#room-slider-button-left').click(function() {
        $('#room-slider-slide').animate({ left: '+=100' }, 500, 'easeOutQuad');
        num_thumbnail_left--;
        enable_disable_room_slider_buttons();
        return false;
    });

    $('.room-thumbnail').click(function() {
        var img = new Image();
        $(img)
			.load(function() {
			    $('#room-ajax-loader').css('display', 'none');
			    $(this).hide();
			    $('#room-big-image').append(img);
			    $(this).fadeIn(function() {
			        $('#room-big-image img:first-child').remove();
			    });
			})
			.attr('src', $(this).attr('href'));
        if (!$(this).hasClass('thumbnail-current')) {
            grayscale($('.thumbnail-current'));
        }
        $('.room-thumbnail').removeClass('thumbnail-current');
        $(this).addClass('thumbnail-current');
        $('#room-ajax-loader').css('display', 'block');
        return false;
    });
}

function room_slider() {
    $(window).load(function() {
        prepare_room_slider();
    });
}
 
