(function($) {
    $.fn.mageintern = function(options) {
        var defaults = {
            miboxWidth: 700,
            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);
