/*
	jquery.biosDesign v1.3.8
	Ilya Firsaev
*/
// Предзагрузка картинок
$.fn.imagesLoaded = function(callback){
	var elems = this,
	len = elems.length,
	blank = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
      
elems.bind('load',function(){
	if (--len <= 0 && this.src !== blank){ callback.call(elems,this); }
}).each(function(){
	// cached images don't fire load sometimes, so we reset src.
	if (this.complete || this.complete === undefined){
		var src = this.src;
		// webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f
		// data uri bypasses webkit log warning (thx doug jones)
		this.src = blank;
		this.src = src;
	}
});
	return this;
};

(function($) {
	var settings = {
		'speed_imganimation': 800
	};	
	var params,
		$this, // Глобальный объект, к которому применяется анимация
		curr_index = 0, // Текущий элемент
		prev_index = 0, // Предыдущий элемент
		curr_top_index = 0, // Текущий элемент верхней панели
		prev_top_index = 0, // Предыдущий элемент верхней панели
		timer = 0, // Таймер работы слайдера
		slide_move, // Панель слайдинга, необходимо выставить высоту
		ul_thumbs, // Анимированные блоки с превью
		slide_panel, // Анимируемая панель с thumbs
		slide_panel_li, // Количество li элементов
		slider_direct_ul, // Блок управления - точки
		slider_direct_li, // Блоки элементов управления
		slider_direct_a, // Элементы управления
		top_slider, // Верхний слайдер
		top_slide_panel, // Верхняя панель слайдинга
		top_slide_li, // Верхние элементы слайдинга
		is_playing = false; // Переменная обозначает - проигрывается/не проигрывается эффект	

	var methods = {
		init : function(options) {
			$this = $(this);
			if(options) {
				params = $.extend(settings, options);
			}
			
			slide_move = $('.slide_move', $this);
			ul_thumbs = $('ul', slide_move);
			slide_panel = $('.slide_panel:eq(0)', $this);
			slide_panel_li = $('li', slide_panel);
			slider_direct_ul = $('.slider_direct ul', $this);
			slider_direct_li = $('li:eq(0)', slider_direct_ul);
			top_slider = $('#top_slider');
			top_slide_panel = $('.slide_panel:eq(0)', top_slider);
			top_slide_li = $('li a', top_slide_panel);
			
			slide_move.css({
				'height': ul_thumbs.size() * ul_thumbs.eq(0).outerHeight(true)
			});
			ul_thumbs.each(function(index) {
				var _this = $(this),
					_index = index + 1;
				if(_index > 1) {
					slider_direct_ul.append(slider_direct_li.clone().find('a').removeClass('current').end());
				}
			});
			
			slide_panel.scrollTo(ul_thumbs.eq(0), 10); // ВЫставляем в нулевую позицию
			
			slider_direct_a = $('a', slider_direct_ul); // Переопределяем количество, после клонирования
					
			slider_direct_a.each(function(index) {
				var _this = $(this);
				_this.bind('click', function() {
					slider_direct_a.removeClass('current');
					_this.addClass('current');
					methods.playindex(index);
				});
			});
			if(slide_panel_li.size() == top_slide_li.size()) {	
				methods.parseTopEffect();
			}
			slide_panel_li.each(function(index) {
				var _this = $(this),
					_this_height = _this.height(),
					_this_descr = $('.descr', _this);
				_this_descr.css({
					'height': _this_height
				});
				_this.bind('mouseenter', function() {
					_this_descr.animate({
						'top': -1 * _this_height
					});
				}).bind('mouseleave', function() {
					_this_descr.animate({
						'top': 0
					});
				});
			});
			/*
			wndwH = parseInt($(window).height()) - parseInt(headerElm.outerHeight(true) + parseInt(slideElmArrImg.eq(0).css('margin-bottom')) + slideElmArr.eq(0).find('h4:eq(0)').outerHeight(true));

			numbersBlock.find('a.prev').eq(0).click(function() {
				methods.prev();
			});
			numbersBlock.find('a.next').eq(0).click(function() {
				methods.next();
			});
			*/
		},
		parseTopEffect: function() {
			top_slide_li.each(function(index) {
				var _this = $(this);
				if(index > 0) {
					_this.parent('li:eq(0)').css({
						'position': 'absolute',
						'z-index': '10',
						'opacity': 0.0
					});
				} else {
					_this.parent('li:eq(0)').css({
						'position': 'absolute',
						'z-index': '100',
						'opacity': 1.0
					});
				}
			});
			slide_panel_li.each(function(index) {
				var _this = $(this);
				_this.bind('mouseenter', function() {
					var _this = $(this),
						_this_descr = $('.descr', _this),
						_this_descr_height = _this_descr.height();
					console.log("+");
					_this_descr.animate({
						'top': -1 * _this_descr_height
					});
				}).bind('mouseleave', function() {
					var _this = $(this),
						_this_descr = $('.descr', _this),
						_this_descr_height = _this_descr.height();
					_this_descr.animate({
						'top': 0
					});
				});
				
				/*
				_this.bind('click', function() {
					prev_top_index = curr_top_index;
					curr_top_index = index;
					top_slide_li.eq(curr_top_index).parent('li:eq(0)').animate({
						'opacity': 1.0,
						'z-index': '100'
					}, {'easing': 'easeInOutCubic', 'duration': params.speed_imganimation / 2, 'complete': function() {
						
					}});
					top_slide_li.eq(prev_top_index).parent('li:eq(0)').animate({
						'opacity': 0.0,
						'z-index': '10'
					}, {'easing': 'easeInOutCubic', 'duration': params.speed_imganimation / 2, 'complete': function() {
						
					}});
					return false;
				});
				*/
			});
		},
		next: function() {
			if(!is_playing) {
				prev_index = 1 * curr_index;
				if(curr_index == (slideElmArrLen - 1)) {
					curr_index = 0;
				} else {
					curr_index = 1 * curr_index + 1; // Текущий индекс елемента
				}
			}
			methods.play(curr_index, prev_index, 0);
		},
		prev: function() {
			if(!is_playing) {
				prev_index = 1 * curr_index;
				if(curr_index == 0) {
					curr_index = (slideElmArrLen - 1);
				} else {
					curr_index = 1 * curr_index - 1; // Текущий индекс елемента
				}
			}
			methods.play(curr_index, prev_index, 1);
		},
		playindex: function(index) {
			if(!is_playing) {
				prev_index = 1 * curr_index;
				curr_index = 1 * index; // Текущий индекс елемента
			}
			methods.play(curr_index, prev_index);
		},
		play: function(currentindex, previndex, direct) {
			if(currentindex != previndex && !is_playing) {
				//is_playing = true;

				// Анимация высоты родительского элемента
				
				slide_panel.scrollTo(ul_thumbs.eq(currentindex), {'axis': 'y', 'easing': 'easeInOutCubic', 'duration': params.speed_imganimation, 'complete': function() {

				}});

				//, {'easing': 'easeInOutCubic', 'duration': params.speed_imganimation, 'complete': function() {

				//}}
			}
		}
	};
	
	$.fn.biosDesign = function(method) {
		// Параметры скрипта по-умолчанию
		if ( methods[method] ) {
			return methods[ method ].apply(this, Array.prototype.slice.call( arguments, 1 ));
		} else if (typeof method === 'object' || ! method) {
			return methods.init.apply(this, arguments);
		} else {
			$.error( 'Method ' +  method + ' does not exist on jQuery.tooltip' );
		}   
		
	}
	
})(jQuery);

