/*
 * Как да си направим Slider или Carousel с jQuery
 * Author: Pavel Ivanov
 * Web: http://pivanov.com/
 * e-Mail: pafelka[at]gmail[dot]net
 * Authors e-Mail: authors[at]fridaycode[dot].net
 * Tutorial: http://fridaycode.net/creating-a-nice-slider-or-carousel-with-jquery/
 */

$(document).ready(function() {

	//Параметри
	var speed = 3000;
	var slide_speed = 500;
	var run = setInterval('rotate()', speed);
	
	//Взимаме широчината на обекта и пресмятаме "left value"
	var item_width = $('.slides li').outerWidth(); 
	var move_left_value = item_width * (-1); 

	//Пресмятаме общата широчина на всички елементи и я задаваме на обекта с клас ".slides"
	$('.slides').css({'width' : ($('.slides li').size()) * item_width});

    //Преместваме последния обект преди първия за да се подсигурим при евентуално кликане на бутона "назад"
	$('.slides li:first').before($('.slides li:last'));
	
	//Преместваме елемента по подразбиране на правилното му място,
	//тъй като по-горе сме преместили последния елемент като първи и вече елемента по подразбиране е втори
	$('.slides ul').css({'left' : move_left_value});

    //при кликване на бутона назад
	$('a.prev_btn').click(function() {

		//Изчисляваме правилната позиция на елемента
		var left_move = parseInt($('.slides ul').css('left')) + item_width;

		//преместваме обекта ( :not(:animated) - преместваме само ако обекта не се анимира в момента )
		$('.slides ul:not(:animated)').animate({'left' : left_move}, slide_speed,function(){

            //Преместваме последния обект преди първия
			$('.slides li:first').before($('.slides li:last'));           

			//Преместваме елемента по подразбиране на правилното му място
			$('.slides ul').css({'left' : move_left_value});
		
		});

		//do not follow link behavior
		return false;
            
	});

    //при кликване на бутона напред
	$('a.next_btn').click(function() {

		//Изчисляваме правилната позиция на елемента
		var left_move = parseInt($('.slides ul').css('left')) - item_width;
		
		//преместваме обекта ( :not(:animated) - преместваме само ако обекта не се анимира в момента )
		$('.slides ul:not(:animated)').animate({'left' : left_move}, slide_speed, function () {
            
            //Преместваме последния обект преди първия
			$('.slides li:last').after($('.slides li:first'));                 	
			
			//Преместваме елемента по подразбиране на правилното му място
			$('.slides ul').css({'left' : move_left_value});
		
		});
		         
		//do not follow link behavior
		return false;
		
	});
	
	//спираме автоматичното преместване
	$('.slides').hover( function() {
		clearInterval(run);
	}); 

});

function rotate() {
	$('a.next_btn').click();
}

$(document).keydown(function(e) {
    switch (e.keyCode) {
        case 37: $('a.prev_btn').click(); break;
        case 39: $('a.next_btn').click(); break;
    }
});
