$(document).ready(function(){
	var slide_current_position = 0;
	var slide_width = 242;
	var slides = $('#sidebar_slideshow .slide');
	var number_of_slides = slides.length;
	var slide_in_hover = false;
	var isIE = ($.browser.msie && parseInt($.browser.version.substr(0,1)) < 8);
	
	$.fn.fixPNG = function() {
		return this.each(function () {
			var image = $(this).css('backgroundImage');
			
			if (image.match(/^url\(["']?(.*\.png)["']?\)$/i))
			{
				image = RegExp.$1;
				$(this).css({
					'backgroundImage': 'none',
					'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=" + ($(this).css('backgroundRepeat') == 'no-repeat' ? 'crop' : 'scale') + ", src='" + image + "')"
				}).each(function () {
					var position = $(this).css('position');
					if (position != 'absolute' && position != 'relative')
						$(this).css('position', 'relative');
				});
			}
		});
	};

	$('#sidebar_slideshow #ss_container').css('overflow', 'hidden');

	slides.wrapAll('<div id="slide_inner"></div>').css({
		'float'	: 'left',
		'width'	: slide_width
	});

	$('#slide_inner').css('width', slide_width * number_of_slides);

	// Insert left and right controls in the DOM.
	$('#sidebar_slideshow')
		.append('<span class="control" id="left_control">Move Left</span>')
		.append('<span class="control" id="right_control">Move Right</span>');
	if(isIE) $('#sidebar_slideshow .control').fixPNG();

	$('#sidebar_slideshow').hover(
		function () {
			clearTimeout(delayed_auto_slide_timeout);
			slide_in_hover = true;
			manage_controls();
		},
		function () {
			delayed_auto_slide();
			slide_in_hover = false;
			manage_controls();
		});

	// Hide left arrow control on first load.
	manage_controls();

	// Create event listeners for control clicks.
	$('#sidebar_slideshow .control').bind('click', function() {
		// Determine new position
		slide_current_position = ($(this).attr('id') == 'right_control') ?
			slide_current_position + 1 : slide_current_position - 1;
		// Hide / show controls
		manage_controls();
		// Move #slide_inner using margin-left
		$('#slide_inner').animate({
			'marginLeft' : slide_width * (-slide_current_position)
		});
	});

	function manage_controls()
	{
		if(slide_in_hover)
		{
			// Hide left arrow if position is first slide.
			if(slide_current_position == 0) { $('#left_control').hide() }
			else { $('#left_control').show() }
			// Hide right arrow if position is last slide.
			if(slide_current_position == number_of_slides - 1) { $('#right_control').hide() }
			else { $('#right_control').show() }
		}
		else
			$('#sidebar_slideshow .control').hide();
	}

	var delayed_auto_slide_timeout;
	function delayed_auto_slide()
	{
		clearTimeout(delayed_auto_slide_timeout);
		delayed_auto_slide_timeout = setTimeout(function() {
			if(slide_current_position == number_of_slides - 1)
				slide_current_position = 0;
			else
				slide_current_position += 1;
			// Move #slide_inner using margin-left
			$('#slide_inner').animate({
				'marginLeft' : slide_width * (-slide_current_position)
			});
			delayed_auto_slide();
		}, 5000);
	}

	delayed_auto_slide();
});
