(function($) {
  $.fn.mikos_slider = function(options) {
    opts = $.extend({}, $.fn.mikos_slider.defaults, options);

    return this.each(function() {
      $this = $(this);
      $.init();
    });
  };

  $.init = function() {
     var slider = $this;
     var visibleElements = opts.visibleElements;
     $.position_check(slider, visibleElements);
     
     $(slider).find('ul.s_container').css({ width: ($this.find('ul.s_container li').outerWidth(true) * $this.find('.s_container li').length) });
     $(slider).find('a.next').click(function() {
        $(slider).find('ul.s_container').stop().animate({ left: '-=' + ($(slider).find('ul.s_container li').outerWidth(true) * visibleElements) }, function() {
           $.position_check(slider, visibleElements);
        });
        
        return false;
     });
     
     $(slider).find('a.prev').click(function() {
        $(slider).find('ul.s_container').stop().animate({ left: '+=' + ($(slider).find('.slide_element').outerWidth(true) * visibleElements) }, function() {
           $.position_check(slider, visibleElements);
        });
        
        return false;
     });
  };

  $.position_check = function(slider, visibleElements) {
     if($(slider).find('.slide_element').length > visibleElements) {
        switch(parseInt($(slider).find('.s_container').css('left').slice(0, -2))) {
           case 0 :
              $(slider).find('a.prev').hide();
              $(slider).find('a.next').show();
              break;
           
           // case ($(slider).find('.slide_element').outerWidth(true) * -($(slider).find('.slide_element').length - visibleElements)) :
           case ($(slider).find('.slide_element').outerWidth(true) * -(Math.floor($(slider).find('.slide_element').length / visibleElements) * visibleElements)) :
              $(slider).find('a.prev').show();
              $(slider).find('a.next').hide();
              break;
              
           default :
              $(slider).find('a.nav').show();
              break;
        }
     } else {
        $(slider).find('a.nav').hide();
     }
  }

  $.fn.mikos_slider.defaults = {
     visibleElements: 1
  };
})(jQuery);

