/*!
 * Lateral Slider v1.0
 * May only be used if purchased.
 * Refer to licensing details at <http://codecanyon.net/wiki/support/legal-terms/licensing-terms/>.
 * Find product at <http://codecanyon.net/user/nviswan10/portfolio?ref=nviswan10>.
 *
 * Copyright 2010, Karthik Viswanathan
 * <http://www.lateralcode.com>
 * <http://twitter.com/lateralcode/>
 */
(function(a){(function(){var b=false;var c=(/xyz/.test(function(){xyz;}))?(/\b_super\b/):(/.*/);this.Class=function(){};Class.extend=function(h){var g=this.prototype;b=true;var f=new this();b=false;for(var e in h){if(typeof h[e]=="function"&&typeof g[e]=="function"&&c.test(h[e])){f[e]=(function(i,j){return function(){var l=this._super;this._super=g[i];var k=j.apply(this,arguments);this._super=l;return k;};})(e,h[e]);}else{f[e]=h[e];}}function d(){if(!b&&this.init){this.init.apply(this,arguments);}}d.prototype=f;d.constructor=d;d.extend=arguments.callee;return d;};})();a.fn.lateralSlider=function(b){var d={displayDuration:2000,animateDuration:1500,numColumns:10,transitions:"fade,slideUp,slideDown,slideLeft,slideRight,slideUpAndDown,slideLeftAndRight,fadeAndSlideUp,fadeAndSlideDown,fadeAndSlideLeft,fadeAndSlideRight,fadeSlideUpAndRight,fadeSlideDownAndLeft",random:false,hidePrevAndNextArrows:false,hideSlideChooser:false,captionOpacity:0.8};var c=a.extend({},d,b);this.each(function(){var j=a(this);var t=Class.extend({$imgs:null,size:null,displayImg:null,nextImg:null,numDivs:null,divWidth:null,baseCSS:null,$divs:null,transitions:[],transition:null,transitionCount:null,interval:null,width:null,init:function(){this.$imgs=a("img",j);this.size=this.$imgs.size();this.$imgs.hide();this.nextImg=0;this.width=j.width();this.numDivs=c.numColumns;this.divWidth=this.width/this.numDivs;this.baseCSS={width:this.divWidth,position:"absolute",top:0,backgroundRepeat:"no-repeat"};this.createDivs();this.$divs=a("div",j);this.transitionCount=-1;},createDivs:function(){for(var A=0;A<this.numDivs;A++){var B=a("<div></div>");B.css(this.baseCSS);B.css("left",this.divWidth*A);B.appendTo(j);}}});var y=new t();var g=Class.extend({baseDuration:null,originalOffset:null,offset:null,init:function(){this.baseDuration=c.animateDuration/8;this.originalOffset=7*c.animateDuration/(8*y.numDivs);this.offset=7*c.animateDuration/(8*y.numDivs);},duration:function(){return this.baseDuration+this.offset;},increment:function(){this.offset+=this.originalOffset;},reset:function(){this.offset=this.originalOffset;},getCSS:function(A){return{};},eachDiv:function(){return{};},applyTransition:function(){y.$divs.each(this.eachDiv);this.reset();}});var v=g.extend({applyTransition:function(){var A=this;y.$divs.each(function(){var B=A.eachDiv;if(typeof(A.eachDiv)=="function"){B=B();}a(this).animate(B,A.duration());A.increment();});this.reset();}});var m=v.extend({getCSSIndex:null,eachDivIndex:null,getCSSGroup:null,eachDivGroup:null,init:function(){this._super();this.getCSSGroup=new Array();this.eachDivGroup=new Array();this.getCSSIndex=0;this.eachDivIndex=0;},getCSS:function(B){var A=this.getCSSGroup[this.getCSSIndex];this.getCSSIndex=(this.getCSSIndex+1)%this.getCSSGroup.length;return A(B);},addTransition:function(A){this.getCSSGroup.push(A.getCSS);this.eachDivGroup.push(A.eachDiv);},applyTransition:function(){var A=this;y.$divs.each(function(){var B=A.eachDivGroup[A.eachDivIndex];if(typeof(B)=="function"){B=B();}a(this).animate(B,A.duration());A.eachDivIndex=(A.eachDivIndex+1)%A.eachDivGroup.length;A.increment();});this.reset();}});var u=v.extend({getCSS:function(A){return{opacity:0};},eachDiv:{opacity:1}});var f=v.extend({getCSS:function(A){return{top:y.$imgs.eq(y.nextImg).height()};},eachDiv:{top:0}});var h=v.extend({getCSS:function(A){return{height:0};},eachDiv:function(){return{height:y.$imgs.eq(y.nextImg).height()};}});var r=v.extend({getCSS:function(B){var A=B.css("left");A=parseInt(A.substring(0,A.length-2),10);return{left:A+y.divWidth,width:0};},eachDiv:{left:"-="+y.divWidth,width:y.divWidth}});var q=v.extend({getCSS:function(A){return{width:0};},eachDiv:{width:y.divWidth}});var o=m.extend({addTransitions:function(A,B){this.addTransition(A);this.addTransition(B);}});var w=m.extend({addTransitions:function(B,A){this.addTransition(B);this.addTransition(A);}});var k=m.extend({addTransitions:function(A,B){this.addTransition(A);this.addTransition(B);}});var n=m.extend({addTransitions:function(A,B){this.addTransition(A);this.addTransition(B);}});var p=m.extend({addTransitions:function(A,B){this.addTransition(A);this.addTransition(B);}});var e=m.extend({addTransitions:function(A,B){this.addTransition(A);this.addTransition(B);}});var x=m.extend({addTransitions:function(A,C,B){this.addTransition(A);this.addTransition(C);this.addTransition(B);}});var s=m.extend({addTransitions:function(C,A,B){this.addTransition(C);this.addTransition(A);this.addTransition(B);}});var z={fade:new u(),slideUp:new f(),slideDown:new h(),slideLeft:new r(),slideRight:new q(),slideUpAndDown:new o(),slideLeftAndRight:new w(),fadeAndSlideUp:new k(),fadeAndSlideDown:new n(),fadeAndSlideLeft:new p(),fadeAndSlideRight:new e(),fadeSlideUpAndRight:new x(),fadeSlideDownAndLeft:new s()};z.slideUpAndDown.addTransitions(z.slideUp,z.slideDown);z.slideLeftAndRight.addTransitions(z.slideLeft,z.slideRight);z.fadeAndSlideUp.addTransitions(z.slideUp,z.fade);z.fadeAndSlideDown.addTransitions(z.fade,z.slideDown);z.fadeAndSlideLeft.addTransitions(z.fade,z.slideLeft);z.fadeAndSlideRight.addTransitions(z.slideRight,z.fade);z.fadeSlideUpAndRight.addTransitions(z.slideUp,z.fade,z.slideRight);z.fadeSlideDownAndLeft.addTransitions(z.slideDown,z.fade,z.slideLeft);t.prototype.populateTransitions=function(){var B=c.transitions.split(/,\s*/g);for(var A in B){this.transitions.push(z[B[A]]);}};t.prototype.getTransition=function(){if(c.random){var A=Math.floor(Math.random()*this.transitions.length);return this.transitions[A];}else{this.transitionCount=(this.transitionCount+1)%this.transitions.length;return this.transitions[this.transitionCount];}};t.prototype.addDivCSS=function(){var B=this;var C=B.$imgs.eq(B.nextImg);var D="url("+C.attr("src")+")";var A=C.height();this.$divs.each(function(){var E=a(this);E.css({backgroundImage:D,backgroundPosition:"-"+E.css("left")+" 0px",height:A});E.css(B.transition.getCSS(E));});};t.prototype.process=function(){j.css({backgroundImage:"url("+this.$imgs.eq(this.displayImg).attr("src")+")",backgroundRepeat:"no-repeat"});this.transition=this.getTransition();this.addDivCSS();this.transition.applyTransition();j.animate({height:this.$imgs.eq(this.nextImg).height()},c.animateDuration);this.advanceShow();};t.prototype.updateCurrent=function(){a('.circle[rel="'+this.displayImg+'"]').removeClass("circle-current");a('.circle[rel="'+this.nextImg+'"]').addClass("circle-current");};t.prototype.advanceShow=function(){this.updateCurrent();this.displayImg=this.nextImg;if(this.nextImg==this.size-1){this.nextImg=0;}else{this.nextImg++;}};t.prototype.startShow=function(){this.interval=window.setInterval(a.proxy(this.runner,this),c.displayDuration+c.animateDuration);};t.prototype.stopShow=function(){window.clearInterval(this.interval);};t.prototype.goToSlide=function(A){if(this.$divs.filter(":animated").size()>0){return;}this.stopShow();this.nextImg=A;this.updateCurrent();this.runner();if(this.nextImg==0){this.displayImg=this.size-1;}else{this.displayImg=this.nextImg-1;}this.startShow();};t.prototype.applyLink=function(){var C=this.$imgs.eq(this.displayImg);var B=C.parent();if(B.is("a")){B.removeAttr("style");}var A=this.$imgs.eq(this.nextImg);var D=A.parent();if(D.is("a")){D.css({display:"block",textDecoration:"none",border:"0",width:j.width(),height:A.height(),position:"absolute",top:0,left:0,zIndex:100});}};t.prototype.applyCaption=function(){var A=this.$imgs.eq(this.nextImg);var C=A.attr("title");var D=a(".caption",j);D.slideUp(function(){a(this).html(C);});if(C!=""){if(D.size()>0){if(!D.is(":visible")){D.html(C);}D.slideDown();}else{var B=a('<div class="caption"><span>'+C+"</span></div>");B.css({opacity:c.captionOpacity,width:j.width(),position:"absolute",top:0,left:0,display:"none"});B.appendTo(j);B.slideDown();}}};t.prototype.runner=function(){this.applyLink();this.applyCaption();this.process();};t.prototype.begin=function(){var A=this.$imgs.eq(this.nextImg);j.css({backgroundImage:"url("+A.attr("src")+")",height:A.height()});this.runner();this.transitionCount--;this.startShow();};var i=Class.extend({circleCount:null,init:function(){this.circleCount=0;},addAll:function(){this.addCircles();this.addPrevAndNextLinks();a("a.circle").click(this.circleClickHandler);a(".prev-link").click(this.prevLinkHandler);a(".next-link").click(this.nextLinkHandler);if(c.hideSlideChooser){a("a.circle").hide();}if(c.hidePrevAndNextArrows){a(".prev-link, .next-link").hide();}},addCircles:function(){var A=this;y.$imgs.each(function(){var B=a('<a href="#" rel="'+A.circleCount+'" class="circle"></a>');B.css({right:(y.size-A.circleCount-1)*20+10});B.appendTo(j);A.circleCount++;});},addPrevAndNextLinks:function(){a('<a href="#" class="prev-link"></a>').appendTo(j);a('<a href="#" class="next-link"></a>').appendTo(j);},circleClickHandler:function(B){var A=parseInt(a(this).attr("rel"),10);y.goToSlide(A);B.preventDefault();},prevLinkHandler:function(B){var A=y.displayImg-1;if(A<0){A=y.size-1;}y.goToSlide(A);B.preventDefault();},nextLinkHandler:function(B){var A=y.displayImg+1;if(A>=y.size){A=0;}y.goToSlide(A);B.preventDefault();}});var l=new i();l.addAll();y.populateTransitions();y.begin();});return this;};})(jQuery);
