/*
 * Scrollface - A basic jQuery slideshow

 * Copyright (c) 2011 Kyle Truscott
 *
 * http://keighl.github.com/scrollface
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
(function(a){"use strict";var b={init:function(c){return a(this).each(function(){var d=a(this),e=a(this).data("scrollface"),f={pager:null,pager_builder:b.pager_builder,next:null,prev:null,active_pager_class:"active",speed:300,easing:"linear",auto:!0,interval:2e3,before:b.before,after:b.after,transition:"horizontal"};e||(c&&a.extend(f,c),f.slides=a(this).children(),f.count=f.slides.size(),f.height=a(this).height(),f.width=a(this).width(),f.index=0,f.is_moving=!1,f.timer=null,a(this).css({position:"absolute"}),a(f.slides).each(function(c,e){a(e).css({position:"absolute",left:c===0?0:f.width*100,top:0,display:c===0?"block":"none"});var g=null;a(f.pager).size()&&typeof f.pager_builder=="function"&&(g=f.pager_builder.call(d,f.pager,c,e),c===0&&a(g).addClass(f.active_pager_class),a(g).bind("click.scrollface",function(){return b.interrupt.call(d),b.step_to.call(d,c),!1}))}),a(f.next).size()&&a(f.next).bind("click.scrollface",function(a){b.interrupt.call(d),b.next.call(d)}),a(f.prev).size()&&a(f.prev).bind("click.scrollface",function(a){b.interrupt.call(d),b.prev.call(d)}),a(this).data("scrollface",f),f.auto&&b.start.call(d))})},destroy:function(){return a(this).each(function(){var b=a(this).data("scrollface");if(!b)return!1;a(b.next).size()&&a(b.next).unbind("click.scrollface"),a(b.prev).size()&&a(b.prev).unbind("click.scrollface"),a(this).data("scrollface",null)})},step_to:function(b,d){return a(this).each(function(){var e=a(this).data("scrollface");if(!e)return!1;if(!e.is_moving&&b!==e.index&&b<=e.count-1&&b>=0){e.is_moving=!0;var f={speed:e.speed,easing:e.easing,direction:null,transition:e.transition};d&&a.extend(f,d),f.direction||(b>e.index&&(f.direction="advance"),b<e.index&&(f.direction="retreat")),a(e.pager).size()&&(a("a",e.pager).removeClass(e.active_pager_class),a("a",e.pager).eq(b).addClass(e.active_pager_class));if(typeof e.before=="function"){var g={id:e.index,idx:e.index,slide:a(e.slides[e.index])},h={id:b,idx:b,slide:a(e.slides[b])};e.before.call(this,g,h)}c[f.transition].call(this,b,f)}})},next:function(c){return a(this).each(function(){var d=a(this).data("scrollface");if(!d)return!1;var e=d.index===d.count-1?0:d.index+1,f={direction:"advance"};c&&a.extend(f,c),b.step_to.call(this,e,f)})},prev:function(c){return a(this).each(function(){var d=a(this).data("scrollface");if(!d)return!1;var e=d.index===0?d.count-1:d.index-1,f={direction:"retreat"};c&&a.extend(f,c),b.step_to.call(this,e,f)})},start:function(){return a(this).each(function(){var c=a(this).data("scrollface");if(!c)return!1;var d=this;c.timer||(c.timer=setInterval(function(){b.next.call(d)},c.interval))})},stop:function(){return a(this).each(function(){var b=a(this).data("scrollface");if(!b)return!1;b.timer&&(clearInterval(b.timer),b.timer=null)})},interrupt:function(c){return a(this).each(function(){var d=a(this).data("scrollface");if(!d)return!1;var e=a(this),f=0;d.timer&&(typeof c!="number"?f=d.interval:f=c,b.stop.call(this),setTimeout(function(){b.start.call(e)},f))})},pager_builder:function(b,c,d){var e=a(document.createElement("a")).html(c+1).appendTo(a(b));return e},before:function(a,b){return!0},after:function(a,b){return!0}},c={horizontal:function(b,c){var d=a(this).data("scrollface");if(!d)return!1;var e=parseInt(a(this).css("left"),10)||0,f=a(d.slides[d.index]),g=parseInt(a(f).css("left"),10)||0,h=parseInt(a(f).css("top"),10)||0,i=c.direction==="advance"?g+d.width:g-d.width,j=a(d.slides[b]).css({left:i,top:h}).show(),k=c.direction==="advance"?e-d.width:e+d.width;a(this).stop().animate({left:k},c.speed,c.easing,function(){if(typeof d.after=="function"){var c={id:d.index,idx:d.index,slide:a(d.slides[d.index])},e={id:b,idx:b,slide:a(d.slides[b])};d.after.call(this,c,e)}a(f).hide(),d.index=b,d.is_moving=!1})},vertical:function(b,c){var d=a(this).data("scrollface");if(!d)return!1;var e=parseInt(a(this).css("top"),10)||0,f=a(d.slides[d.index]),g=parseInt(a(f).css("top"),10)||0,h=parseInt(a(f).css("left"),10)||0,i=c.direction==="advance"?g+d.height:g-d.height,j=a(d.slides[b]).css({top:i,left:h}).show(),k=c.direction==="advance"?e-d.height:e+d.height;a(this).stop().animate({top:k},c.speed,c.easing,function(){if(typeof d.after=="function"){var c={id:d.index,idx:d.index,slide:a(d.slides[d.index])},e={id:b,idx:b,slide:a(d.slides[b])};d.after.call(this,c,e)}a(f).hide(),d.index=b,d.is_moving=!1})},random:function(b,d){var e=a(this).data("scrollface");if(!e)return!1;var f=["horizontal","vertical"],g=f[Math.floor(Math.random()*f.length)];c[g].call(this,b,d)}};a.fn.scrollface=function(c){if(b[c])return b[c].apply(this,Array.prototype.slice.call(arguments,1));if(typeof c=="object"||!c)return b.init.apply(this,arguments);a.error("Method "+c+" does not exist on jQuery.scrollface!")}})(jQuery)

