/**
 * Crossfader.js - A multi-element crossfader
 * 
 * @author Webstores <info at webstores dot nl>
 *         Copyright (c) Webstores internet totaalbureau <http://www.webstores.nl/>
 */
function Crossfader(el,srcs,options){this.el=$(el);this.srcs=srcs;this.options=options;this.cache=[];this.interval=null;this.index=0;this.construct();};Crossfader.prototype={construct:function(){if(this.el.length){this.options=$.extend({duration:1,delay:5,nodeName:'div',nodeClass:'crossfader-item'},this.options||{});var initialImg=$('<img>');initialImg.attr('src',this.srcs[this.index]);this.cache.push(initialImg);this.start();}},start:function(){var self=this;this.interval=setInterval(function(){self.next();},this.options.delay*1000);},next:function(){this.index=((this.index+1)===this.srcs.length)?0:this.index+1;if(this.cache[this.index]){this.append(this.cache[this.index]);}else{this.preloadImage(this.srcs[this.index]);}},preloadImage:function(src){var self=this;var img=$('<img>');$(img).load(function(){self.append($(this));});$(img).hide();$(img).attr('src',src);this.cache.push(img);},append:function(img){var node=null;switch(this.options.nodeName){case'div':node=$('<'+this.options.nodeName+'>');node.css('background-image','url('+img.attr('src')+')');break;case'img':node=img;break;}node.addClass(this.options.nodeClass);node.hide();this.el.append(node);this.crossfade(this.el.find(this.options.nodeName+':first-child'),node);},crossfade:function(current,next){$(current).fadeOut(this.options.duration*1000,function(){$(this).remove();});$(next).fadeIn(this.options.duration*1000);}};
