(function($) {

// Объявляем функцию с возможностью передачи пары параметров
$.fn.newsScroll = function(options) {
	
	return this.each(function() {	
	  
		var

		  $this = $(this), 
		  
		  // Если пользователь не передал никаких параметров, используем дефолтовые
		  defaults = {
		  	speed: 400, // Скорость с которой список будет скроллиться
		  	delay: 3000, // Задержка между сменой изображений
		  	list_item_height: $this.children('li').outerHeight() // Высота каждого элемента списка. Если параметр указан, jQuery им воспользуется
	     },
	      // Создаём объект, который учитывает дефолтовые значения и  
	      // "пользовательские настройки".  У пользовательских настроек более высокий приоритет
		  settings = $.extend({}, defaults, options);
		 
	  setInterval(function() {
	  	    // Берём самую первую картинку из видимого списка
	  	    $this.children('li:first')
	  	    		// И анимируем её
	  	    		.animate({ 
	  	    			marginTop : '-' + settings.list_item_height, // Сдвинуть элемент вверх
	  	    		   opacity: 'hide' }, // Увеличить его прозрачность
	  	    		   
	  	    		   settings.speed, 
	  	    		   
	  	    		   // По завершению делаем callback
	  	    		   function() {
	  	    		   	
	  	    		   	// Заново берём самый первый элемент 
	  	 					$this.children('li:first')
	  	 					     .appendTo($this) // И перемещаем его в самы низ списка
	  	 					     
	  	 					     // Сбрасываем его margin top обратно в ноль. 
	  	 					     .css('marginTop', 0) 
	  	 					     .fadeIn(300); // Делаем его снова видимым
  		 			  }
 	 			  ); // Конец анимации
 	  }, settings.delay);
	  });
}

})(jQuery);


