(function() {
  (function($) {}, $.fn.superCarusel = function() {
    var a, auto, autotimer, cur_arrow, cur_item, cur_large, cur_thumb, i, large, obj, objects, pos_x, selector, self, set_item, size, speed, thumbnails, _i, _len;
    if (!this.length) {
      return;
    }
    self = this;
    objects = [];
    $('ul li', this).each(function() {
      return objects.push({
        title: $('h3', this).text(),
        url: $('h3 a', this).attr('href'),
        subtitle: $('strong', this).text(),
        description: $('p', this).text(),
        thumb: $('img', this).attr('src'),
        image: $('img', this).attr('title')
      });
    });
    $('ul', this).hide();
    $('.count', this).text(objects.length);
    large = $('<div class="infocontainer" />').appendTo(self);
    thumbnails = $('<div class="thumbnails" />').appendTo(self);
    pos_x = {};
    $(window).resize(function() {
      return pos_x = {
        visible: 0,
        invisible_left: -$(window).width(),
        invisible_right: $(window).width() + 50,
        arrow: 300
      };
    }).resize();
    speed = {
      arrow: 1000,
      object: 900,
      second_object: 700,
      second_object_delay: 1,
      object_delay: 2,
      auto_delay: 3000
    };
    size = {
      arrow: 0
    };
    selector = {
      arrow: '.innerarrow div'
    };
    autotimer = 0;
    cur_item = 0;
    auto = function() {
      clearTimeout(autotimer);
      return autotimer = setTimeout(function() {
        return set_item(cur_item + 1);
      }, speed.auto_delay);
    };
    large.hover(function() {
      return clearTimeout(autotimer);
    }, function() {
      return auto();
    });
    set_item = function(i) {
      var current_large;
      if (i >= objects.length) {
        i = 0;
      }
      if (i !== cur_item) {
        clearTimeout(autotimer);
        current_large = objects[cur_item].large_dom;
        current_large.delay(speed.object_delay).stop().animate({
          left: pos_x.invisible_right
        }, speed.object, function() {
          return $(this).hide();
        });
        $(selector.arrow, current_large).stop().animate({
          width: 750
        }, speed.arrow);
        current_large = objects[i].large_dom;
        current_large.css('left', pos_x.invisible_left).show().stop().delay(speed.second_object_delay).animate({
          left: pos_x.visible
        }, speed.second_object, auto);
        $(selector.arrow, current_large).stop().css('width', 1000).animate({
          width: size.arrow
        }, speed.arrow);
        $('img', current_large).stop().css('right', 400).animate({
          right: 100
        }, speed.arrow);
        objects[cur_item].thumb_dom.removeClass("active");
        objects[i].thumb_dom.addClass("active");
      } else {
        objects[i].large_dom.css('left', pos_x.visible).show();
        auto();
        objects[i].thumb_dom.addClass("active");
      }
      return cur_item = i;
    };
    i = 0;
    for (_i = 0, _len = objects.length; _i < _len; _i++) {
      obj = objects[_i];
      cur_large = $('<div />').appendTo(large).hide();
      cur_arrow = $('<div class="innerarrow"><div></div></div>').appendTo(cur_large);
      cur_arrow = $(selector.arrow, cur_arrow.parent());
      if (!size.arrow) {
        size.arrow = cur_arrow.width();
      }
      $('<img />').attr('src', obj.image).appendTo(cur_large);
      $('<h2 />').text(obj.title).appendTo(cur_arrow);
      $('<strong />').text(obj.subtitle).appendTo(cur_arrow);
      $('<p />').text(obj.description).appendTo(cur_arrow);
      $('<a class="readmore" />').attr('href', obj.url).text('Läs vidare...').appendTo(cur_arrow);
      obj.large_dom = cur_large;
      cur_thumb = $('<div />').appendTo(thumbnails);
      a = $('<a href="#" />').appendTo(cur_thumb).click(function() {
        set_item($(this).closest('div').index());
        return false;
      });
      $('<img />').attr('src', obj.thumb).appendTo(a);
      obj.thumb_dom = cur_thumb;
      i++;
    }
    return set_item(0);
  })(jQuery);
}).call(this);

