(function($) {
    $.fn.mageintern = function(options) {
        var defaults = {
            miboxWidth: 120,
            autoplay: true,
            nextslidetime: 5000,
            showSlideNoDiv: true,
            showPause: true

        };
        var options = $.extend(defaults, options);
        return this.each(function() {
            var slideshow = $(this);
            var mio = options;
            var aktPosition = 0;
            var slides = $('.mi-slidebox');
            var slidesno = slides.length;
            var t;

            $('#mi-slidesContainer').css('overflow', 'hidden');
                        $('.mi-slidebox').mouseover(function() {
                           setNextTimeOutHover();
                                   $('.stopinfo').css('visibility', 'visible');
                                        });
                        $('.mi-slidebox').mouseout(function() {
                        nexttimeoutClear();
                        $('.stopinfo').css('visibility', 'hidden');
                        if (slidesno >=2) {
                        init();
                        }
                        });
                        slides.wrapAll('<div id="slideInner"></div>')
            .css({'float': 'left', 'width': mio.miboxWidth
                        });

           $('.mi-slidebox:first').clone().appendTo('#slideInner');
           $('#slideInner').css('width', mio.miboxWidth * (slidesno + 1));



                if (mio.showSlideNoDiv == true) {
                           if (mio.showPause == true && mio.autoplay == true) {
                slideshow.append('<div id="slideNrBox"><span class="stopinfo">pause</span></div>');}
                        else {
                slideshow.append('<div id="slideNrBox"><span class="stopinfo">&nbsp;</span></div>');}

                                if (slidesno >=2) {
                                for (var i = 1; i <= slidesno; i++) {
                    $('#slideNrBox').append('<span id="slide-' + i + '" class="slidenr">' + i + '</span>');
                }
                $('.slidenr').click(function() { goto(($(this).attr('id')).replace('slide-', '') - 1, false); return false; });
            }
                         }

                        if (slidesno >=2) {
            init();
                        }

            function init() {
                                showSlideNo(aktPosition);
                                if (mio.autoplay == true) setNextTimeOut(mio.nextslidetime);
                }
            function nextslide() {
                aktPosition++;
                                $('.stopinfo').css('visibility', 'hidden');
                if (aktPosition >= slidesno) aktPosition = 0;
                slideTo(aktPosition, true);
                                }
            function prevslide() {
                aktPosition--;
                if (aktPosition < 0) aktPosition = slidesno - 1;
                slideTo(aktPosition, false);
            }
            function goto(position) {
                aktPosition = position;
                slideTo(aktPosition, false);
            }
           function setNextTimeOut() {
                t = setTimeout(function() { nextslide(); }, mio.nextslidetime);
            }
                   function setNextTimeOutHover() {
                $('#slideInner').stop();
                nexttimeoutClear();
            }
           function nexttimeoutClear()
            {
                clearTimeout(t);
            }
                   function slideTo(position, continuously) {
                           $('#slideInner').stop();
                nexttimeoutClear();

               if (position != 0) {
                    $('#slideInner').animate({ 'marginLeft': mio.miboxWidth * (-position) }, '', '',
                                                function() {
                                                    showSlideNo(position);
                                                    if (mio.autoplay == true) setNextTimeOut();
                                                }
                                        )
                }
                 else {
                    $('#slideInner').animate({ 'marginLeft': mio.miboxWidth * (-slidesno) }, '', '',
                                                function() {
                                                    $('#slideInner').css('marginLeft', 0);
                                                    showSlideNo(position)
                                                    setNextTimeOut();
                                                }
                                        )
                }
            }
            function showSlideNo(position) {
               if (mio.showSlideNoDiv == true) {
                                 $('.slidenr').removeClass("active");
                 $('#slide-' + (position + 1)).addClass("active");
                }
                         }

if (mio.showPause == true && mio.showSlideNoDiv == false && mio.autoplay == true) {
                slideshow.append('<div id="slideNrBoxsolo"><span class="stopinfo">pause</span></div>');}

if (slidesno ==0) {
        $('#mi-slideshow').css('visibility', 'hidden');
        $('#mi-slideshow').css('width', '0px');
        $('#mi-slideshow').css('height', '0px');
}
  });
    };
})(jQuery);
