(function($) {
    $.fn.mageintern = function(options) {
        var defaults = {
            miboxWidth: 200,
            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) }, '500', '',
            function() {
                showSlideNo(position);
                if (mio.autoplay == true) setNextTimeOut();
            }
          )
                }
                 else {
                    $('#slideInner').animate({ 'marginLeft': mio.miboxWidth * (-slidesno) }, '500', '',
            function() {
                $('#slideInner').css('marginLeft', 0);
                showSlideNo(position)
                setNextTimeOut();
            }
          )
                }
            }
            function showSlideNo(position) {
               if (mio.showSlideNoDiv == true) {
         $('.slidenr').removeClass("sactive");
                 $('#slide-' + (position + 1)).addClass("sactive");
                }
       }

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);
