var slideOptions = {};

jQuery().ready(function(){
    $(".slideshow").bgiframe();
    
    $("a.slides_show_link").each( function() {
        var slidesId = this.id.substring( "showSlides_".length );
        if ( !slidesId ) return;
        var slideshowElem = $('#' + slidesId).get(0);
        var numSlides = $('#slides_' + slidesId + ' img.load_later').length;
        //console.log( "slides to load: " + numSlides );
        slideshowElem.loadedSlides = 0;
        $('#slides_' + slidesId).cycle( slideOptions[slidesId] );
        var showlink = this;
        
        $('#slides_' + slidesId + ' img.load_later').each( function() {
            this.onload = function() {
                slideshowElem.loadedSlides++;
                //console.log("loaded slides: " + slideshowElem.loadedSlides);
                if ( slideshowElem.loadedSlides == numSlides ) {
                    $("#loadSlides_" + slidesId).css("display", "none" );
                    // console.log("all slides loaded");
                    if ( slideOptions[slidesId].autostart_on_load ) {
                        showlink.onclick();
                    }
                    if (slideOptions[slidesId].show_control_links ) {
                        $("#showSlides_" + slidesId).css("display", "inline" );
                    }
                }
            }
        });
        
        this.onclick = function() {
            var slide = $('#' + slidesId + " .slide:first").get(0);
            if ( slideshowElem.activeSlide ) {
                slide = slideshowElem.activeSlide;
            }
            $(slideshowElem).fadeIn( "fast", function(){
                onbeforeslide( slide, null, null );
            });
            $(this).css( "display", "none" );
            if ( slideOptions[slidesId].show_control_links ) {
                $('#hideSlides_' + slidesId).css( "display", "inline" );
            }
            //document.location.href="#slides_anchor_" + slidesId ;
            return false;
        }
        
    });
    
    $("a.slides_hide_link").each( function(){
        var slidesId = this.id.substring( "hideSlides_".length );
        if ( !slidesId ) return;
        
        this.onclick = function() {
            $('#' + slidesId).fadeOut( "fast", function() {
                $('#hideSlides_' + slidesId).css( "display", "none" );
                $('#showSlides_' + slidesId).css( "display", "inline" );
            } );
            document.location.href="#top";
            return false;
        }
        
    });
});


unibrowser.addEvent( window, "load", function() {
    $('img.load_later').each( function() {
        var real_src = this.getAttribute( 'real_src' );
        this.removeAttribute( 'real_src' );
        this.src = real_src;
    });
});

function onbeforeslide( inSlide, outSlide, options) {
    var slideshow = inSlide;
    while( slideshow.className != "slideshow" && slideshow.parentNode ) {
        slideshow = slideshow.parentNode;
    }
    if ( !slideshow ) return;
    var slidesId = slideshow.id;
    var height = inSlide.offsetHeight;
    
    var pagerId = "pager_" + slidesId;
    var pager = $("#" + pagerId).get(0);
    if ( pager != null ) {
        height = height + pager.offsetHeight;
    }
    if ( height > 0 ) {
        $(slideshow).css( "height", height + "px" );
    }
}


function onSlidePagerClick( zeroBasedSlideIndex, slideElement ) {
    var slideshow = slideElement;
    while( slideshow.className != "slideshow" && slideshow.parentNode ) {
        slideshow = slideshow.parentNode;
    }
    if ( !slideshow ) return;
    slideshow.activeSlide = slideElement;
}

function startSlideshow( pluginId ) {
    $('#showSlides_' + pluginId).click();
}