;(function(){
		var t, r, menu, total, slides, dark_bg;
		var animation_time = 1000;
		var slide_time = 5000;
				
		function slide(i,j) {
			//from, to
			//console.log('slide '+i+' '+j);
			menu.find('li').eq(i).removeClass('active');
			if (i < j) {
				//slide from left
				l_from = '150%';
				l_to = '-100%';
			} else if (i > j) {
				//slide from right
				l_from = '-100%';
				l_to = '150%';
			}
			slides.eq(j).css('left', l_from).removeClass('hidden').stop(true).animate({'left' : '50%'}, animation_time);
			if (slides.eq(j).hasClass('dark')) {
				dark_bg.stop(true, true).fadeIn();
			} else dark_bg.stop(true, true).fadeOut();
			slides.eq(i).stop(true).animate({left: l_to}, animation_time, function(){
				slides.eq(i).addClass('hidden').css('left', '50%');
			});
			menu.find('li').eq(j).addClass('active');
			return true;
		}
		
		function prev(){
			var i = menu.find('.active').index();
			var j = i-1;
			if (j < 0) j=total-1;
			slide(i,j);
		}
		
		function next(){
			var i = menu.find('.active').index();
			var j = i+1;
			if (j > total-1) j=0;
			slide(i,j);
		}

		function animate(){
			next();
			clearTimeout(t);
			t = setTimeout(animate, slide_time);
		}
			
		$(function(){
			r = $('#home-rotator-wrapper');
			menu = $('#rotator-menu');
			slides = $('#slides .slide');
			dark_bg = r.find('.rotator-bg-dark');
			total = menu.find('li').length;
			
			$(window).bind('blur', function(){
				//console.log('blur');
				clearTimeout(t);
				return false;
			}).bind('focus', function(){
				//console.log('focus');
				clearTimeout(t);
				t = setTimeout(animate, slide_time);
				return false;
			});
			
			
			menu.find('li').bind('click', function() {
				clearTimeout(t);
				if ($(this).hasClass('active')) return false;
				slide(menu.find('.active').index(), $(this).index());
				t = setTimeout(animate, slide_time);
				return false;
			});
			slides.bind('mouseover', function(){
				clearTimeout(t);
			}).bind('mouseleave', function(){
				clearTimeout(t);
				t = setTimeout(animate, slide_time);
			});
			r.find('.rotator-prev').bind('click', function(){
				clearTimeout(t);
				prev();
				t = setTimeout(animate, slide_time);
			});
			r.find('.rotator-next').bind('click', function(){
				clearTimeout(t);
				next();
				t = setTimeout(animate, slide_time);
			});
			clearTimeout(t);
			t = setTimeout(animate, slide_time);
		});
	}());
