/*
* (c) 2011 Aimit Solutions
* Developed by Andreas Ivarsson
*/

var aimslider_banner_rotate_time = 20000;
var aimslider_animation_time = 500;
var aimslider_banner_opacity = 0; 

$(document).ready(function() {		
	$('#banner_container div:first').addClass("active");
	$(".slide").css('top',$("#banner_pos").offset().top);						
	
	rotate(0); //init
	rotateSwitch(); //Run function on launch
	
	$("#banner_loader").hide();
	$("#banner_container").show();
	
	//On Click
	$("#banner_paging_left").click(function() {	
		clearInterval(play); //Stop the rotation		
		
		var banner_id = $(".active").attr("id").substr($(".active").attr("id").length - 1);
		
		if(banner_id == 1)
			banner_id = 5;
		else
			banner_id--;
		
		$('.slide').removeClass("active");		
		$("#banner_" + banner_id).addClass("active");
		
		rotate(aimslider_animation_time, true); //Trigger rotation immediately
		rotateSwitch(); // Resume rotation
		return false; //Prevent browser jump to link anchor
	});

	$("#banner_paging_right").click(function() {
		clearInterval(play); //Stop the rotation
		
		var banner_id = $(".active").attr("id").substr($(".active").attr("id").length - 1);
		
		if(banner_id == 5)
			banner_id = 1;
		else
			banner_id++;
		
		$('.slide').removeClass("active");		
		$("#banner_" + banner_id).addClass("active");
		
		rotate(aimslider_animation_time, false); //Trigger rotation immediately
		rotateSwitch(); // Resume rotation
		return false; //Prevent browser jump to link anchor
	});
});

//On Hover
$(".slide").hover(function() {
	clearInterval(play); //Stop the rotation
}, function() {
	rotateSwitch(); //Resume rotation
});	
	
function rotate(animationLength, reversed)
{
	var banner_id = $(".active").attr("id").substr($(".active").attr("id").length - 1);

	var banner_position = $("#banner_pos").offset();
	var standard_width = $("#banner_pos").width();			
	
	$(".slide").css('width', banner_position + 'px');
													
	$("#banner_" + banner_id).css({ opacity: 1.0 });
	$("#banner_" + banner_id).animate({ 
		left: banner_position.left,
		width: standard_width
	}, animationLength );						
	
	banner_id = setBannerRight(banner_id, 1, animationLength, reversed);
	banner_id = setBannerRight(banner_id, 2, animationLength, reversed);
	banner_id = setBannerLeftImage(banner_id, 2, animationLength, reversed);
	banner_id = setBannerLeftImage(banner_id, 1, animationLength, reversed);
}

function setBannerLeftImage(banner_id, index, animationLength, reversed)
{
	var banner_position = $("#banner_pos").offset();			
	var standard_width = $("#banner_pos").width();
	var banner_width = standard_width;
	
	if(banner_id < 5)
		banner_id++;
	else
		banner_id = 1;						
										
	if(banner_width > 0)
	{
		//First put it outside the window
		if(reversed )
		{
			$("#banner_" + banner_id).animate({ 
				left: -standard_width						
			}, 0 );				
		}	
	
		$("#banner_" + banner_id).css({ opacity: aimslider_banner_opacity });				
		$("#banner_" + banner_id).show();	
		$("#banner_" + banner_id).animate({ 
			left: banner_position.left - (standard_width * index),
			width: banner_width
		}, animationLength);
	}
	else 
		$("#banner_" + banner_id).hide();	
		
	return banner_id; 
}

function setBannerRight(banner_id, index, animationLength, reversed)
{
	var banner_position = $("#banner_pos").offset();
	var window_width = $(window).width();			
	var standard_width = $("#banner_pos").width();
	var banner_width = standard_width;

	if(banner_id < 5)
		banner_id++;
	else
		banner_id = 1;
	
	if((banner_position.left + (standard_width * (index + 1))) > window_width)
		banner_width = window_width - banner_position.left - (standard_width * index);
	else
		banner_width = standard_width;
	
	if(banner_width > 0)
	{		
		//First put it outside the window
		if(banner_width < standard_width)
		{
			$("#banner_" + banner_id).animate({ 
				left: window_width						
			}, 0 );				
		}
		
		//When reversed and moving the previous center image one position to the right
		if(reversed & index == 1)
		{
			$("#banner_" + banner_id).animate({ 
				left: banner_position.left						
			}, 0 );
		}
	
		$("#banner_" + banner_id).css({ opacity: aimslider_banner_opacity });				
		$("#banner_" + banner_id).show();
		$("#banner_" + banner_id).animate({ 
			left: banner_position.left + (standard_width * index),
			width: banner_width
		}, animationLength );
	}
	else 
		$("#banner_" + banner_id).hide();	
	
	return banner_id;
}

//Rotation + Timing Event
rotateSwitch = function(){		
	play = setInterval(function(){ //Set timer - this will repeat itself every 3 seconds
		$active = $('#banner_container .active').next(".slide");
		if ( $active.length === 0) { //If slide reaches the end...
			$active = $('#banner_container div:first'); //go back to first				
		}
		
		$('.slide').removeClass("active");
		$active.addClass("active");
		
		rotate(aimslider_animation_time, false); //Trigger the paging and slider function
	}, aimslider_banner_rotate_time); //Timer speed in milliseconds (3 seconds)
};
			
