(function($) {

  $.fn.productSlider = function(options) {
    var opts = $.extend({}, $.fn.productSlider.defaults, options);
    var slider = this;
    var items = slider.children();

    if (items.length < opts.itemsPerSlide || items.length < 4) return false;

    if (opts.itemsPerSlide > 1) {
      items.remove();
      var itemsContainer = $('<div class="item" />').appendTo(slider);

      for (var i = 1; i <= items.length; i++) {
        itemsContainer.append(items[i-1]);

        itemsContainer.children().removeClass("clearfix").removeClass("omega");

        if (i % (opts.itemsPerSlide) == 0 && i < items.length) {
          itemsContainer.children(":last-child").addClass("last-child").addClass("last");

          var itemsContainer = $('<div class="item" />').appendTo(slider);
        }

      }

      items = slider.find(".item");

    }

    // var maxh = 0;
    // items.each(function() {
    //   if ($(this).innerHeight() > maxh) maxh = $(this).innerHeight();
    // });

    slider.wrapInner('<div class="items" />').wrapInner('<div class="swrap" />');
    slider.append(
      '<div class="overlay">'
        + '<div class="controls">'
          + (opts.controls === true ? '<a class="prev button">' + opts.prevText + '</a>' : '')
          + (opts.minimap  === true ? '<div class="minimap" />' : '')
          + (opts.controls === true ? '<a class="next button">' + opts.nextText + '</a>' : '')
        + '</div>'
        + (opts.description === true ? '<p class="descr"><span /></p>' : '')
      + '</div>'
    );

    slider.find(".tobasket").append("<div class='fade' />");

    // slideshow aktivieren
    slider.scrollable({
      circular: true
    });

    if (opts.autoscroll > 0) {
      slider.autoscroll({
        interval: opts.autoscroll,
        autopause: true
      });
    }

    if (opts.minimap === true) {
      slider.navigator({
        navi: ".minimap",
        autopause: true
      });
    }

    if (opts.height > 0) {
      var swrap = slider.find(".swrap");
      swrap.height(opts.height);
      swrap.find(".items > *").height(opts.height);

    }

  };

  $.fn.productSlider.defaults = {
    autoscroll: false,
    itemsPerSlide: 4,
    minimap: false,
    controls: true,
    description: false,
    height: 0,

    nextText: 'nächstes Produkt &raquo;',
    prevText: '&laquo; vorheriges Produkt'
  };

})(jQuery);
