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