var slides_current = 0;
var slides_total = 0;
var slides_timer = false;
var slides_interval = 5000;
var slides_transition = 500;
var rotation_started = false;

var target_slides = null;

$(document).ready(function(){

	target_slides = $('#slider ul#mainSlider');
	target_slides_nav = $('#slider ul#mainSlider-nav');
	
	// fix css3 rounded corners
	// target_slides_nav.find('')

	// get number of slides
	slides_total = parseInt( target_slides.find('li').length - 1 );

	// set first slide as active, hide all others
	target_slides.find('li:eq(0)').addClass('active');
	target_slides.find('li').not('.active').hide();
	target_slides_nav.find('li:eq(0)').addClass('active');

	// bind slider nav
	target_slides_nav.find('li a').click(function(e) {
		e.preventDefault();

		var index = parseInt( target_slides_nav.children().index( $(this).parent() ) );
		stop_rotation();
		swap_slide(index);
		start_rotation();
	});

	// start rotation
	slides_current = parseInt(target_slides.find('li.active').index());
	if( slides_current <= 0 ) {
		start_rotation();
	}

});

function swap_slide( index ) {
	if( slides_current == index ) { return; }

	var current_li = target_slides.find('li');
	var target_li = target_slides.find('li:eq(' + index + ')');

	// hide all slides
	current_li.fadeOut(slides_transition, function() { $(this).removeClass('active'); });
	target_slides_nav.find('li').dequeue().animate({ opacity:0.65 }, function() { $(this).removeClass('active'); });

	// show target slide
	target_li.fadeIn(slides_transition, function() { $(this).addClass('active'); });
	target_slides_nav.find('li:eq(' + index + ')').dequeue().animate({ opacity:1 }, function() { $(this).addClass('active'); });

	slides_current = index;
}

function start_rotation() {
	if( rotation_started == false ) {
		slides_timer = setInterval(function() {
			if( slides_current == slides_total ) {
				index = 0;
			} else {
				index = slides_current + 1;
			}

			swap_slide(index);
		}, slides_interval);

		rotation_started = true;
	}
}

function stop_rotation() {
	clearInterval(slides_timer);
	rotation_started = false;
}

