// jquery Billboard v0.1.1
// 2011-01-18, jens scherbl
// webninjas.net

(function($){var methods={init:function(options){return this.each(function(){var container=$(this);var elements=container.children();var nav=$(options.nav).children();var settings={effect:'show',random:false,speed:400,delay:2000};if(options){$.extend(settings,options);}
if(elements.length>1){settings.index=settings.random?Math.floor(Math.random()*elements.length):0;elements.hide();elements.eq(settings.index).show();if(nav){nav.each(function(){$(this).removeClass('active');});nav.eq(settings.index).addClass('active');}
settings.timeout=setTimeout(function(){container.billboard('next');},settings.delay);container.data('billboard',settings);container.mouseover(function(){var settings=$(this).data('billboard');clearTimeout(settings.timeout);});container.mouseout(function(){var container=$(this);var settings=container.data('billboard');settings.timeout=setTimeout(function(){container.billboard('next');},settings.delay);container.data('billboard',settings);});}});},next:function(){return this.each(function(){var container=$(this);var elements=container.children();var settings=container.data('billboard');var nav=$(settings.nav).children();var current=settings.index;var next;clearTimeout(settings.timeout);if(elements.length>1){if(settings.random){do{next=Math.floor(Math.random()*elements.length);}while(next===current);}else{next=current+1<elements.length?current+1:0;}
settings.index=next;container.data('billboard',settings);if(nav){nav.each(function(){$(this).removeClass('active');});nav.eq(next).addClass('active');}
container.billboard(settings.effect,current,next,function(){settings.timeout=setTimeout(function(){container.billboard('next');},settings.delay);container.data('billboard',settings);});}});},stop:function(next){return this.each(function(){var container=$(this);var elements=container.children();var settings=container.data('billboard');var nav=$(settings.nav).children();var current=settings.index;next=next-1;clearTimeout(settings.timeout);if(elements.length>1&&next<elements.length&&next!==current){settings.index=next;container.data('billboard',settings);if(nav){nav.each(function(){$(this).removeClass('active');});nav.eq(next).addClass('active');}
container.billboard(settings.effect,current,next);}});},show:function(current,next,callback){return this.each(function(){var container=$(this);var elements=container.children();elements.eq(current).hide();elements.eq(next).show();if(callback){callback();}});},fade:function(current,next,callback){return this.each(function(){var container=$(this);var elements=container.children();var settings=container.data('billboard');elements.eq(current).fadeOut(settings.speed);elements.eq(next).fadeIn(settings.speed,callback);});},up:function(current,next,callback){return this.each(function(){var container=$(this);var elements=container.children();var settings=container.data('billboard');var height=container.height();elements.eq(current).stop().css({top:'0px'}).animate({top:'-'+height+'px'},settings.speed);elements.eq(next).stop().css({top:height+'px'}).show().animate({top:'0px'},settings.speed,callback);});},down:function(current,next,callback){return this.each(function(){var container=$(this);var elements=container.children();var settings=container.data('billboard');var height=container.height();elements.eq(current).stop().css({top:'0px'}).animate({top:height+'px'},settings.speed);elements.eq(next).stop().css({top:'-'+height+'px'}).show().animate({top:'0px'},settings.speed,callback);});},left:function(current,next,callback){return this.each(function(){var container=$(this);var elements=container.children();var settings=container.data('billboard');var width=container.width();elements.eq(current).stop().css({left:'0px'}).animate({left:'-'+width+'px'},settings.speed);elements.eq(next).stop().css({left:width+'px'}).show().animate({left:'0px'},settings.speed,callback);});},right:function(current,next,callback){return this.each(function(){var container=$(this);var elements=container.children();var settings=container.data('billboard');var width=container.width();elements.eq(current).stop().css({left:'0px'}).animate({left:width+'px'},settings.speed);elements.eq(next).stop().css({left:'-'+width+'px'}).show().animate({left:'0px'},settings.speed,callback);});}};$.fn.billboard=function(method){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,1));}else if(typeof method==='object'||!method){return methods.init.apply(this,arguments);}else{$.error('Method '+method+' does not exist on jQuery.billboard');}};})(jQuery);
