/**
 * VERTICAL PARTNER SLIDESHOW jQUERY PLUGIN
 *
 * Important: All images should be loaded or have their height attribute set
 */
(function($){
				
	// methods
	
	function showNextRange(settings)
	{
		$this = settings.element;
		var currentRange = settings.ranges[settings.currentRange];
		if (++settings.currentRange >= settings.ranges.length) {
			settings.currentRange = 0;
		}
		var nextRange = settings.ranges[settings.currentRange];

		// hide current range
		$this.find('> a').each(function(i) {
			if (i == currentRange.end) {
				$(this).fadeOut(settings.fadeTime, function(){
					
					// show next range
					$this.find('> a').each(function(i) {
						if (i == nextRange.end) {
							$(this).fadeIn(settings.fadeTime, function(){
								setTimeout(function(){
									showNextRange(settings);
								}, settings.interval);
							});
						} else if (i <= nextRange.end && i >= nextRange.start) {
							$(this).fadeIn(settings.fadeTime);
						}
					});
					
				});
			} else if (i <= currentRange.end && i >= currentRange.start) {
				$(this).fadeOut(settings.fadeTime);
			}
		});
	}
	
	// plugin

	$.fn.verticalSlideshow = function(options)
	{
		// settings
		
		var settings = {
			height		: 470,
			interval	: 5000,
			fadeTime	: 500
		};
		$.extend(settings, options);
		
		
		// do for each element selected
		
		this.each(function(){
			$(this).css('overflow', 'hidden')
				   .css('height', settings.height);
			var ranges = new Array();
			var currentHeight = 0;
			var currentRangeStart = 0;
			var i = 0;
			$(this).find('> a').each(function() {
				var outerHeight = $(this).outerHeight();
				if (currentHeight + outerHeight > settings.height) {
					ranges.push({
						start	: currentRangeStart,
						end		: i-1
					});
					currentHeight = outerHeight;
					currentRangeStart = i;
				} else {
					currentHeight += outerHeight;
				}
				if (ranges.length > 0) {
					$(this).fadeOut(0);
				}
				i++;
			});
			if (i >= currentRangeStart) {
				ranges.push({
					start	: currentRangeStart,
					end		: i-1
				});
			}
			
			// Do the slideshow!
			
			if (ranges.length > 1) {
				var specSettings = $.extend(true, {}, settings);
				specSettings.ranges = ranges;
				specSettings.element = $(this);
				specSettings.currentRange = 0;
				setTimeout(function(){
					showNextRange(specSettings);
				}, settings.interval);
			}
		});
	}

})(jQuery);




$(document).ready(function(){
	
	$('div.logo-container').verticalSlideshow({
		height: 350,
		interval: 5000
	});
	
});
