/* jquery.innerfade.js
// Datum:2008-02-14 // Firma:Medienfreunde Hofmann & Baldes GbR // Author: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/
// and Ralf S. Engelschall http://trainofthoughts.org/ */
(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){/*remove IE-Opacity-Filter*/
if(element.style.removeAttribute){
element.style.removeAttribute('filter');
}
}
