/*******************************
* Eye Candy for Waramaug Theme *
*******************************/

var all_slideshows;
var fadeTime = 2000;
var shortFade = 750;
var slideIndex;

function registerSlideshows(json, target_slideshow) {
    all_slideshows = json;
    for (var id in all_slideshows) {
        jQuery('.thumb-'+id).click(function() {
            var this_id = jQuery(this).children('.id').text();
            enqueueSlideshow(this_id, target_slideshow, true);
            updateRoomInfo(target_slideshow);
        }).append('<span class="id">'+id+'</span>');
    }
}


function enqueueSlideshow(id, target_slideshow, change_thumb) {
    if ((change_thumb)&&(target_slideshow['id'])) {
        old_id = target_slideshow['id'];
        fadeToPic(
            // Replace this...
            jQuery('.thumb-'+id).removeClass('thumb-'+id)
                .addClass('thumb-'+old_id)
                .children('.id').text(old_id)
                .siblings('.thumb-container'),

            // ...with this
            jQuery('<div class="thumb-container"></div>')
                .html(all_slideshows[old_id]['thumb'])
                .append('<div class="overlay">'+
                        target_slideshow['name']+'</div>'),
            shortFade);

    }
    target_slideshow['id'] = id;
    target_slideshow['name'] = all_slideshows[id]['name'];
    target_slideshow['description'] = all_slideshows[id]['description'];
    target_slideshow['slides'] = all_slideshows[id]['gallery'];
    target_slideshow['modulo'] = target_slideshow['slides'].length;
    target_slideshow['counter'] = 0;
    preloadNext(target_slideshow);
}


function animateSlides(selector, target_slideshow, waitTime) {
    fadeToPic(jQuery(selector).children('img'),
              target_slideshow['slides'][target_slideshow['counter']],
              fadeTime);
    target_slideshow['counter'] 
        = (target_slideshow['counter']+1)%target_slideshow['modulo'];
    setTimeout(function() {
        animateSlides(selector, target_slideshow, waitTime); },
               waitTime+fadeTime);
    preloadNext(target_slideshow);
}


function fadeToPic(jQ, pic, thisFadeTime) {
    jQ.before(pic).fadeOut(thisFadeTime,function(){jQuery(this).remove()});
}

function updateRoomInfo(target_slideshow) {
    jQuery('.room-name').children('h3').fadeOut(shortFade, function() {
        jQuery(this).html(target_slideshow['name']).fadeIn(shortFade); });
    jQuery('.room-description').children('p').fadeOut(shortFade, function() {
        jQuery(this).html(target_slideshow['description']).fadeIn(shortFade); });
}


function preloadNext(target_slideshow) {
    var url = jQuery(target_slideshow['slides'][target_slideshow['counter']])
        .attr('src');
    jQuery.get(url);
}


jQuery(document).ready(function() {

    /* Drop-downs */
    jQuery('.menu-item').removeClass('menu-item').addClass('jquery-menu-item')
        .hover(function(){ jQuery(this).children('ul').slideDown(); },
               function(){ jQuery(this).children('ul').slideUp(); })
        .children('ul').hide();


    /* Anchor links */
    jQuery.localScroll();

    /* Food Menu */
    jQuery('ul.collapsible ul, #brunch-message').addClass('collapsed').hide();
    jQuery('ul.collapsible h4').click(function() {
        jQuery(this).siblings('ul.collapsed')
            .slideDown('normal', function() {
                jQuery(this).removeClass('collapsed').addClass('expanded'); });
        jQuery('ul.expanded').slideUp().removeClass('expanded')
            .addClass('collapsed');
    });


    /* Dinig Slideshow */
    var diningSlideshow = new Array(
        jQuery('#dinner img'), jQuery('#brunch img'));
    if (diningSlideshow[0].length) {

        var fadeTime = 2000;
        var waitTime = fadeTime + 3000;
        var i = 1;
        var j = 0;

        diningSlideshow[1].hide();
        jQuery('#brunch-menu').click(function(){
            i = (j==1 )? i : -1;
            jQuery('#brunch-message').slideDown();});
        jQuery('#dinner-menu').click(function(){
            i = (j==0) ? i : 0; 
            jQuery('#brunch-message').slideUp();});

        var slides = diningSlideshow[j];
        nextSlide();
    }

    function nextSlide() {
        if (i <= 0) {
            j = -i;
            slides.fadeOut(fadeTime);
            slides = diningSlideshow[j];
            slides.fadeIn(fadeTime);
            i = slides.length;
        } else {
            i--;
            if (i==0) {
                i=slides.length;
                slides.eq(i-1).fadeIn(fadeTime);
                setTimeout(function() {slides.show();},
                           fadeTime+(0.5*waitTime));
            } else {
                slides.eq(i).fadeOut(fadeTime);
            }
        }
        setTimeout(nextSlide, waitTime);
    }

});



