(function($){
	$.fn.innerfade=function(options){
		return this.each(function(){
			$.innerfade(this,options)
		})
	};
	$.innerfade=function(container,options){
		var settings={
			'animationtype':'fade',
			'speed':'normal',
			'type':'sequence',
			'timeout':2000,
			'containerheight':'auto',
			'runningclass':'innerfade',
			'children':null
		};
		if(options)$.extend(settings,options);
		if(settings.children===null)
			var elements=$(container).children();
		else
			var elements=$(container).children(settings.children);
		if(elements.length>1){
			$(container).css('position','relative').css('height',settings.containerheight).addClass(settings.runningclass);
			for(var i=0;i<elements.length;i++){
				$(elements[i]).css('z-index',String(elements.length-i)).css('position','absolute').hide()};
				if(settings.type=="sequence"){
					setTimeout(function(){
						$.innerfade.next(elements,settings,1,0)
					}, settings.timeout);
					$(elements[0]).show()
					$("#imgCaption").html($(elements[0]).find("img").attr('alt'));
				} else if(settings.type=="random"){
					var last=Math.floor(Math.random()*(elements.length));
					setTimeout(function(){
						do{
							current=Math.floor(Math.random()*(elements.length))
						} while(last==current);
						$.innerfade.next(elements,settings,current,last)
					}, settings.timeout);
					$(elements[last]).show();
					$("#imgCaption").html($(elements[last]).find("img").attr('alt'));
				}else if(settings.type=='random_start') {
					settings.type='sequence';
					var current=Math.floor(Math.random()*(elements.length));
					setTimeout(function(){
						$.innerfade.next(elements,settings,(current+1)%elements.length,current)
					},settings.timeout);
					$(elements[current]).show()
				} else {
					alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'')
				}
			}
		};
		$.innerfade.next=function(elements,settings,current,last){
			if(settings.animationtype=='slide'){
				$(elements[last]).slideUp(settings.speed);
				$(elements[current]).slideDown(settings.speed)
			} else if(settings.animationtype=='fade') {
				$(elements[last]).fadeOut(settings.speed);
				$(elements[current]).fadeIn(settings.speed,function() {
					removeFilter($(this)[0])
				})
			} else
				alert('Innerfade-animationtype must either be \'slide\' or \'fade\'');
			//var myID = $(elements[current]).id();
			//alert("Current: " + elements[current].id());
			$("#imgCaption").html($(elements[current]).find("img").attr('alt'));
			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('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
				setTimeout((function(){
					$.innerfade.next(elements,settings,current,last)
				}),settings.timeout)
			}
		})
(jQuery);
function removeFilter(element){
	if(element.style.removeAttribute){
		element.style.removeAttribute('filter')
	}
}
