(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()
}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()
}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\'')
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')}}
