$(document).ready(function() {

	var $slides = $('.slide');
	var $dots = $('.dot');
	var action = false; // set to true when a transition is in progress.
	var auto_play = true; // set to false when autoplay is to be turned off.
	var count = 0;
	play = null //interval function call
	var ie_before_9 = $.browser.msie && $.browser.version < 9;
	
	//alert(ie_before_9 ? 'true': 'false');
	
	if ($slides.length) {
		
		var slide_index = 0;
		
		function _hide_slide(index)
		{
			var $slide = $($slides[index]);
			var $text = $slide.find('.left');
			var $img = $slide.find('.right');
			
			$($dots[index]).removeClass('on');
			$text.animate({left:-($(window).width()/2)}, 600, 'easeOutQuart');
			
			if (ie_before_9)
				$img.css({display:'none', right:-100});
			else
				$img.animate({right:-100, opacity:0}, 600, 'easeOutQuart');
		}
		
		function _show_slide(index)
		{
			var $slide = $($slides[index]);
			var $text = $slide.find('.left').css('left', -($(window).width()/2));
			var $img = $slide.find('.right');
			
			$($dots[index]).addClass('on');
			$text.delay(800).animate({left:8}, 600, 'easeOutQuart');
			
			if (ie_before_9){
				$img.css({display:'block', right:-190});
				action = false;
			}else{
				$img.delay(800).animate({right:-190, opacity:1}, 600, 'easeOutQuart', function(){action = false;});
			}
		}
		
		function _fake_slide(index)
		{
			//console.log('fake: '+ slide_index);
			
			var $slide = $($slides[index]);
			var $text = $slide.find('.left');
			
			$text.stop().animate({left:40}, 400, 'easeOutQuart').animate({left:70}, 400, 'easeOutQuart', function(){action = false;});
		}
		
		function _next(e)
		{
			//console.log('next: ' + slide_index);
			e.preventDefault();
			
			if (slide_index >= $slides.length - 1) {
				slide_index = $slides.length - 1;
				_fake_slide(slide_index);
				return;
			}
			
			slide_index++;
			
			_hide_slide(slide_index-1);
			_show_slide(slide_index);
		}
		
		function _prev(e)
		{
			//console.log('prev: ' + slide_index);
			e.preventDefault();
			
			if (slide_index <= 0) {
				slide_index = 0;
				_fake_slide(slide_index);
				return;
			}
			
			slide_index--;
			
			_hide_slide(slide_index+1);
			_show_slide(slide_index);
		}
		//console.log($slides.length)

		$dots.click(function(e) {
			e.preventDefault();
			if (!action || play) {
				if (auto_play) {
					clearInterval(play);
					play = false;
				}
				action = true;
				
				_hide_slide(slide_index);
				
				slide_index = $(this).attr('data-index');
				
				_show_slide(slide_index);
			}
		});
		$(document).keydown(function(e) {
			if(!action){
				action = true;
				if(e.keyCode == 37) { // left
					if(auto_play){
						clearInterval(play);
						play = false;
					}
					_prev(e);
				}
				else if(e.keyCode == 39) { // right
					if(auto_play){
						clearInterval(play);
						play = false;
					}
					_next(e);
				}
			}else if(auto_play){
				if(e.keyCode == 37 || e.keyCode == 39){
					clearInterval(play);
					play = false;
				}
			}
		});
		
		_show_slide(0);
		if (auto_play) {
			play = setInterval(function(){action = true; _hide_slide(count); count = (count+1)%$dots.length; slide_index = $dots.eq(count).attr('data-index'); _show_slide(count);}, 7000);	
		}
	}

});
