/* =========================================================

// jquery.innerfade.js

// Datum: 2007-01-29
// Firma: Medienfreunde Hofmann & Baldes GbR
// Autor: Torsten Baldes
// Mail: t.baldes@medienfreunde.com
// Web: http://medienfreunde.com

// based on the work of Matt Oakes http://portfolio.gizone.co.uk/applications/slideshow/

// ========================================================= */

var CurrentTabsListingTimeOut;

(function($) {

$.fn.innerfade = function(options) {

	this.each(function(){
		
		var settings = {
			animationtype: 'fade',
			speed: 'normal',
			timeout: 2000,
			type: 'sequence',
			containerheight: 'auto',
			runningclass: 'innerfade'
		};
		
		if(options)
			$.extend(settings, options);
		
		var elements = $(this).children();
	
		$.innerfade.fill_tabs(elements, settings, $(this).attr("class"), this);
		
		if (elements.length > 1) {
		
			$(this).css('position', 'relative');
	
			$(this).css('height', settings.containerheight);
			$(this).addClass(settings.runningclass);
			
			for ( var i = 0; i < elements.length; i++ ) {
				$(elements[i]).css('z-index', String(elements.length-i)).css('position', 'absolute');
				$(elements[i]).hide();
			};
			
			$.innerfade.set_links(elements, settings, 0, 0, this);
		
			if ( settings.type == 'sequence' ) {
				setTimeout(function(){
					$.innerfade.next(elements, this, settings, 1, 0);
				}, settings.timeout);
				$(elements[0]).show();
			} else if ( settings.type == 'random' ) {
				CurrentTabsListingTimeOut = setTimeout(function(){
					do { current = Math.floor ( Math.random ( ) * ( elements.length ) ); } while ( current == 0 )
					$.innerfade.next(elements, this, settings, current, 0);
				}, settings.timeout);
				$(elements[0]).show();
			}	else {
				alert('type must either be \'sequence\' or \'random\'');
			}
			
		}
		
	});
};


$.innerfade = function() {}
$.innerfade.fill_tabs = function (elements, settings, className, scroll_el) {

	var tabs = new Array();
	var ids = new Array();
	for ( var i = 0; i < elements.length; i++ ) {
		ids[i] = $(elements[i]).attr("id");
		tabs[i] = $('#' + ids[i] + '_tab').text();
	}
	for ( var i = 0; i < elements.length; i++ ) {
		var active = (i==0)?' active':'';
		$('ul.' + className + '_tabs').append('<li class="tabs_listing_tab' + active + '" id="tab_' + ids[i] + '" rel="' + ids[i] + '">' + tabs[i] + '</li>');
	}
	if (elements.length > 1) {
		$('ul.' + className + '_tabs .tabs_listing_tab')
		.click(function(){
			clearTimeout(CurrentTabsListingTimeOut);
			var parent = $(this).parents("ul").get(0);
			var children = $(parent).children();
			var current_id = $(this).attr('rel');
			for ( var i = 0; i< children.length; i++ ) {
				if ($(children[i]).attr("rel") == current_id)
					var current = i;
				if ($(children[i]).hasClass("active"))
					var last = i;
			}
			$.innerfade.next(elements, scroll_el, settings, current, last, true);
			clearTimeout(CurrentTabsListingTimeOut);
		})
		.css({'cursor':'pointer'});
	}
	$(scroll_el).click(function() {
		if ($(this).attr('href') != 'undefined')
			location.href = $(this).attr('href');
	});
}
$.innerfade.stop_scrolling = function (el) {

	$(el).innerfade = function() {};
}
$.innerfade.switch_tabs = function (elements, settings, current, last, scroll_el) {
	$('#tab_' + $(elements[last]).attr("id")).removeClass("active");
	$('#tab_' + $(elements[current]).attr("id")).addClass("active");
	$.innerfade.set_links(elements, settings, current, last, scroll_el);
}
$.innerfade.set_links = function (elements, settings, current, last, scroll_el) {
	if ($('#PROMO_LINK_' + $(elements[current]).attr("id")).length > 0) {
		$(scroll_el)
			.css({'cursor':'pointer'})
			.attr('href',$('#PROMO_LINK_' + $(elements[current]).attr("id")).attr('href'));
	} else {
		$(scroll_el)
			.css({'cursor':'default'})
			.removeAttr('href');
	}
}
$.innerfade.next = function (elements, scroll_el, settings, current, last, fast) {

	if ( settings.animationtype == 'slide' && !fast ) {
		$(elements[last]).slideUp(settings.speed, $(elements[current]).slideDown(settings.speed));
		$.innerfade.switch_tabs(elements, settings, current, last, scroll_el);
	} else if ( settings.animationtype == 'fade' && !fast ) {
		$(elements[last]).fadeOut(settings.speed);
		$(elements[current]).fadeIn(settings.speed);
		$.innerfade.switch_tabs(elements, settings, current, last, scroll_el);
	} else if ( fast ) {
		$(elements[last]).hide();
		$(elements[current]).show();
		$.innerfade.switch_tabs(elements, settings, current, last, scroll_el);
	} else {
		alert('animationtype must either be \'slide\' or \'fade\'');
	};
	
	if ( settings.type == 'sequence' ) {
		if ( ( current + 1 ) < elements.length ) {
			current = current + 1;
			last = current - 1;
		} else {
			current = 0;
			last = elements.length - 1;
		};
	}	else if ( settings.type == 'random' ) {
		last = current;
		while (	current == last ) {
			current = Math.floor ( Math.random ( ) * ( elements.length ) );
		};
	}	else {
		alert('type must either be \'sequence\' or \'random\'');
	};
	CurrentTabsListingTimeOut = setTimeout((function(){$.innerfade.next(elements, scroll_el, settings, current, last);}), settings.timeout);
};
})(jQuery);
/*3 $('#about').innerfade({
4 speed: 2000,
5 timeout: 3000,
6 containerheight: '120px',
7 }); */
