
/* Slider für die Startseite */
(function($) {
  $.fn.m4slider = function(o) {
    var item     = o.item ? o.item : '.item';
    var speed    = o.speed ? o.speed : 500;
    var visible  = o.visible ? o.visible : 3;
    var interval = o.interval ? o.interval : 5000;

    var positions = new Array;
    var play = false;
    var pos = 0;
    var x = 0;
    var topoffset = 0;

    var elem = this;
    var items = $(item, elem).length;
    
    function _init() {
      _order();
      _nav();
      _play();
		}
    
    function _order(){
      // duplikate erzeugen
      $(item+':lt('+visible+')',elem).clone(true).appendTo(elem);
      $(item, elem).each( function(e){
        $(this).css('top', (topoffset)+'px');
        positions[x] = $(this).height()+10;
        topoffset +=  positions[x];
        x++;
      });
    }

    function _nav(){
       $(o.prev).bind('click', function(e) {
        pos--;
        _stop();
        _direction('prev');
      });

      $(o.next).bind('click', function(e) {
        pos++;
        _stop();
        _direction('next');
      });
    }

    function _direction(d){
      if(pos<0){
        pos = items-1;
        var top = 0;
        for(var i = 0; i<items; i++){
          top -= positions[i];
        }
        $(elem).css('top', top+'px');
      }else if(pos>items){
        pos = 1;
        $(elem).css('top', '0px');
      }
      _slide(d);
    }

    function _slide(d){
      var top = 0;
      for(var i = 0; i<pos; i++){
        top -= positions[i];
      }
      $(elem).animate( {'top': top+'px' }, speed);
    }

    function _stop(){
      clearInterval(play);
    }

    function _play(){
      play = setInterval(_next, interval);
    }

    function _next(){
      pos++;
      _direction('next');
    }

    $(document).ready(function() {
      _init();
    });
  }
})(jQuery);

