var slide_timers = [];

$(document).ready(function()
{
	if($('div.carousel_fade').length > 0)
	{
		$('div.carousel_fade').attr('rel','banner_carousel');
	}
	
	if($('div.carousel_slide').length > 0)
	{
		$('div.carousel_slide').attr('rel','banner_carousel');
	}
	
	$('div[rel="banner_carousel"]').each(function()
	{
		$(this).removeAttr('rel');
		
		if($(this).hasClass('carousel_fade'))
		{
			carousel_type = 'fade';
		}
		else
		{
			carousel_type = 'slide';
		}
		
		$(this).removeClass('carousel_'+carousel_type);
		
		var div_class = $(this).attr('class');
		
		if($('div.'+div_class+' ul.links').length > 0)
		{
			var slide_settings = $('div.'+div_class+' ul.slides').attr('class').split(' ');
			
			if(slide_settings.length > 1)
			{
				for(var i = 0; i < slide_settings.length; i++)
				{
					if(slide_settings[i] != 'slides')
					{
						if(parseInt(slide_settings[i].replace('d','')))
						{
							var slide_duration	= slide_settings[i].replace('d','');
						}
						else
						{
							var slide_direction = slide_settings[i];
						}
						
						$('ul.slides').removeClass(slide_settings[i]);
					}
				}
			}
			else
			{
				var slide_duration				= 5000;
				var slide_direction				= 'left';
			}
			
			if(carousel_type == 'slide')
			{
				var slide_width = ($('div.'+div_class+' ul.slides li.slide1').width() * $('div.'+div_class+' ul.slides li').length);
				
				$('div.'+div_class+' ul.slides').css('width',slide_width);
				
				if(slide_direction == 'right')
				{
					$('div.'+div_class+' ul.slides').css('left',-(slide_width - $('div.'+div_class+' ul.slides li.slide1').width()));
				}
			}
			
			runCarousel(div_class,carousel_type,slide_duration,slide_direction);
			
			$('div.'+div_class+' ul.links li a').each(function()
			{
				$(this).attr('rel',$(this).html());
				
				$(this).unbind().bind('click',function()
				{
					var current_slide	= $('div.'+div_class+' ul.links li a.active').html();
					
					showSlide(div_class,current_slide,$(this).html(),carousel_type,slide_direction,true);
					
					$(this).addClass('active').addClass('clicked');
					
					return false;
				});
			});
		}
	});
});

function showSlide(div_class,current_slide,next_slide,carousel_type,slide_direction,clicked)
{
	if(clicked || $('div.'+div_class+' ul.links li a.clicked').length == 0)
	{
		$('div.'+div_class+' ul.links li a').removeClass('active').removeClass('clicked');
		$('div.'+div_class+' ul.links li a[rel="'+next_slide+'"]').addClass('active');
		
		$('div.'+div_class+' ul.slides li').removeClass('active');
		$('div.'+div_class+' ul.slides li.slide'+next_slide).addClass('active');
		
		if(carousel_type == 'fade')
		{
			$('div.'+div_class+' ul.slides li.slide'+current_slide).stop(true, true).fadeOut('slow');
			$('div.'+div_class+' ul.slides li.slide'+next_slide).stop(true, true).fadeIn('slow');
		}
		else
		{
			if(next_slide == 1)
			{
				if(slide_direction == 'right')
				{
					$('div.'+div_class+' ul.slides').stop(true, true).animate({ left: -($('div.'+div_class+' ul.slides li.slide1').width() * ($('div.'+div_class+' ul.slides li').length - 1)) }, 'slow');
				}
				else
				{
					$('div.'+div_class+' ul.slides').stop(true, true).animate({ left: 0 }, 'slow');
				}
			}
			else
			{
				var slide_margin = parseInt($('div.'+div_class+' ul.slides').css('left').replace('-','').replace('px',''));
				
				if(parseInt(slide_margin))
				{
					if(slide_direction == 'right')
					{
						slide_margin -= ($('div.'+div_class+' ul.slides li.slide1').width() * (next_slide - current_slide));
					}
					else
					{
						slide_margin += ($('div.'+div_class+' ul.slides li.slide1').width() * (next_slide - current_slide));
					}
				}
				else
				{
					slide_margin = $('div.'+div_class+' ul.slides li.slide1').width();
				}
				
				$('div.'+div_class+' ul.slides').stop(true, true).animate({ left: -slide_margin }, 'slow');
			}
		}
		
		var banner_id = $('div.'+div_class+' ul.slides li.slide'+next_slide+' a').attr('class');
		
		if(banner_id != '' && banner_id != undefined)
		{
			$.ajax({
					async			: false,
					url				: _root+banner_id+'/',
					type			: "POST",
					data			: ({
											ajax			: 'true'
										}),
					success			: function(data)
					{
						if(data == 'true')
						{
							$('a.'+banner_id).removeClass(banner_id);
						}
					}
			});
		}
	}
}

function runCarousel(div_class,carousel_type,slide_duration,slide_direction)
{
	var current_slide	= $('div.'+div_class+' ul.links li a.active').html();
	
	if($('div.'+div_class+' ul.slides li.slide'+(parseInt(current_slide)+1)).length > 0)
	{
		var next_slide	= (parseInt(current_slide) + 1);
	}
	else
	{
		var next_slide	= 1;
	}
	
	window.slide_timers[div_class] = setTimeout(function()
	{
		showSlide(div_class,current_slide,next_slide,carousel_type,slide_direction,false);
		runCarousel(div_class,carousel_type,slide_duration,slide_direction);
	},slide_duration);
}
