jQuery(function($){
    $('#slide').slide();
});

(function($){
    $.fn.slide = function(options){
        var defaults = {
            fadeTime: 1000,
            intervalTime: 7000,
            waitTime: 10000,
            window: true
        };
        options = $.extend(defaults, options);

        return this.each(function(){
            var current = 0;
            var interval = 0;
            var slides = new Array;
            var target = $(this).addClass('slideimage');
//            var navi = $('<ul>').addClass('slidenavi');

            target.find('a').each(function(){
                var image = $(this).find('img').attr('src');
                var link = $(this).prop('href');
                if (!image || !link) {
                    return;
                }

/*
                (function(index){
                    navi.append(
                        $('<li>').addClass('navi')
                        .click(function(){
                            if (index == current && interval === 0){
                                return;
                            }
                            stopSlide();
                            showSlide(index);
                            startSlide(options.waitTime);
                        })
                    );
                })(slides.length);
*/
                slides.push(
                    $('<img>').attr('src', image)
                              .click(function(){
                                  if (options.window){
                                      window.open(link);
                                  } else {
                                      window.location = link;
                                  }
                              })
                              .bind('fadeout', function(){
                                  $(this).stop()
                                         .fadeOut(options.fadeTime, function(){
                                             $(this).remove();
                                         });
                              })
                              .bind('fadein', function(){
                                  $(this).stop().fadeIn(options.fadeTime);
                              })
                );
            });

//            navi.find('li:first').addClass('current');
//            target.html(slides[0].clone(true)).after(navi);
target.html(slides[0].clone(true));
            startSlide();

            function startSlide(wait){
                wait = wait | 0;
                setTimeout(function(){
                    if (interval === 0){
                        interval = setInterval(function(){
                            showSlide(current + 1);
                        }, options.intervalTime);
                    }
                }, wait);
            }

            function stopSlide(){
                if (interval) {
                    clearInterval(interval);
                    interval = 0;
                }
            }

            function showSlide(index){
                if (index >= slides.length){
                    index = 0;
                }
                if (index == current){
                    return;
                }
                target.find('img').trigger('fadeout');
                target.prepend(slides[index].clone(true).trigger('fadein'));
//                navi.find('li').removeClass('current');
//                navi.find('li').eq(index).addClass('current');
                current = index;
            }
        });
    };
})(jQuery);
