YAHOO.namespace("extension");YAHOO.extension.Carousel=function(D,C){this.init(D,C)};YAHOO.extension.Carousel.prototype={UNBOUNDED_SIZE:1000000,init:function(S,W){var X=this;this.getCarouselItem=this.getItem;var Q="carousel-list";var P="carousel-clip-region";var a="carousel-next";var b="carousel-prev";this._carouselElemID=S;this.carouselElem=YAHOO.util.Dom.get(S);this._prevEnabled=true;this._nextEnabled=true;this.cfg=new YAHOO.util.Config(this);this.cfg.addProperty("scrollBeforeAmount",{value:0,handler:function(B,C,A){},validator:X.cfg.checkNumber});this.cfg.addProperty("scrollAfterAmount",{value:0,handler:function(B,C,A){},validator:X.cfg.checkNumber});this.cfg.addProperty("loadOnStart",{value:true,handler:function(B,C,A){},validator:X.cfg.checkBoolean});this.cfg.addProperty("orientation",{value:"horizontal",handler:function(B,C,A){X.reload()},validator:function(A){if(typeof A=="string"){return("horizontal,vertical".indexOf(A.toLowerCase())!=-1)}else{return false}}});this.cfg.addProperty("size",{value:this.UNBOUNDED_SIZE,handler:function(B,C,A){X.reload()},validator:X.cfg.checkNumber});this.cfg.addProperty("numVisible",{value:3,handler:function(B,C,A){X.reload()},validator:X.cfg.checkNumber});this.cfg.addProperty("firstVisible",{value:1,handler:function(B,C,A){X.moveTo(C[0])},validator:X.cfg.checkNumber});this.cfg.addProperty("scrollInc",{value:3,handler:function(B,C,A){},validator:X.cfg.checkNumber});this.cfg.addProperty("animationSpeed",{value:0.25,handler:function(B,C,A){X.animationSpeed=C[0]},validator:X.cfg.checkNumber});this.cfg.addProperty("animationMethod",{value:YAHOO.util.Easing.easeOut,handler:function(B,C,A){}});this.cfg.addProperty("animationCompleteHandler",{value:null,handler:function(B,C,A){if(X._animationCompleteEvt){X._animationCompleteEvt.unsubscribe(X._currAnimationCompleteHandler,X)}X._currAnimationCompleteHandler=C[0];if(X._currAnimationCompleteHandler){if(!X._animationCompleteEvt){X._animationCompleteEvt=new YAHOO.util.CustomEvent("onAnimationComplete",X)}X._animationCompleteEvt.subscribe(X._currAnimationCompleteHandler,X)}}});this.cfg.addProperty("autoPlay",{value:0,handler:function(B,D,A){var C=D[0];if(C>0){X.startAutoPlay()}else{X.stopAutoPlay()}}});this.cfg.addProperty("wrap",{value:false,handler:function(B,C,A){},validator:X.cfg.checkBoolean});this.cfg.addProperty("navMargin",{value:0,handler:function(B,C,A){X.calculateSize()},validator:X.cfg.checkNumber});this.cfg.addProperty("revealAmount",{value:0,handler:function(B,C,A){X.reload()},validator:X.cfg.checkNumber});this.cfg.addProperty("prevElementID",{value:null,handler:function(B,C,A){if(X._carouselPrev){YAHOO.util.Event.removeListener(X._carouselPrev,"click",X._scrollPrev)}X._prevElementID=C[0];if(X._prevElementID==null){X._carouselPrev=YAHOO.util.Dom.getElementsByClassName(b,"div",X.carouselElem)[0]}else{X._carouselPrev=YAHOO.util.Dom.get(X._prevElementID)}YAHOO.util.Event.addListener(X._carouselPrev,"click",X._scrollPrev,X)}});this.cfg.addProperty("prevElement",{value:null,handler:function(B,C,A){if(X._carouselPrev){YAHOO.util.Event.removeListener(X._carouselPrev,"click",X._scrollPrev)}X._prevElementID=C[0];if(X._prevElementID==null){X._carouselPrev=YAHOO.util.Dom.getElementsByClassName(b,"div",X.carouselElem)[0]}else{X._carouselPrev=YAHOO.util.Dom.get(X._prevElementID)}YAHOO.util.Event.addListener(X._carouselPrev,"click",X._scrollPrev,X)}});this.cfg.addProperty("nextElementID",{value:null,handler:function(B,C,A){if(X._carouselNext){YAHOO.util.Event.removeListener(X._carouselNext,"click",X._scrollNext)}X._nextElementID=C[0];if(X._nextElementID==null){X._carouselNext=YAHOO.util.Dom.getElementsByClassName(a,"div",X.carouselElem)}else{X._carouselNext=YAHOO.util.Dom.get(X._nextElementID)}if(X._carouselNext){YAHOO.util.Event.addListener(X._carouselNext,"click",X._scrollNext,X)}}});this.cfg.addProperty("nextElement",{value:null,handler:function(B,C,A){if(X._carouselNext){YAHOO.util.Event.removeListener(X._carouselNext,"click",X._scrollNext)}X._nextElementID=C[0];if(X._nextElementID==null){X._carouselNext=YAHOO.util.Dom.getElementsByClassName(a,"div",X.carouselElem)}else{X._carouselNext=YAHOO.util.Dom.get(X._nextElementID)}if(X._carouselNext){YAHOO.util.Event.addListener(X._carouselNext,"click",X._scrollNext,X)}}});this.cfg.addProperty("disableSelection",{value:true,handler:function(B,C,A){},validator:X.cfg.checkBoolean});this.cfg.addProperty("loadInitHandler",{value:null,handler:function(B,C,A){if(X._loadInitHandlerEvt){X._loadInitHandlerEvt.unsubscribe(X._currLoadInitHandler,X)}X._currLoadInitHandler=C[0];if(X._currLoadInitHandler){if(!X._loadInitHandlerEvt){X._loadInitHandlerEvt=new YAHOO.util.CustomEvent("onLoadInit",X)}X._loadInitHandlerEvt.subscribe(X._currLoadInitHandler,X)}}});this.cfg.addProperty("loadNextHandler",{value:null,handler:function(B,C,A){if(X._loadNextHandlerEvt){X._loadNextHandlerEvt.unsubscribe(X._currLoadNextHandler,X)}X._currLoadNextHandler=C[0];if(X._currLoadNextHandler){if(!X._loadNextHandlerEvt){X._loadNextHandlerEvt=new YAHOO.util.CustomEvent("onLoadNext",X)}X._loadNextHandlerEvt.subscribe(X._currLoadNextHandler,X)}}});this.cfg.addProperty("loadPrevHandler",{value:null,handler:function(B,C,A){if(X._loadPrevHandlerEvt){X._loadPrevHandlerEvt.unsubscribe(X._currLoadPrevHandler,X)}X._currLoadPrevHandler=C[0];if(X._currLoadPrevHandler){if(!X._loadPrevHandlerEvt){X._loadPrevHandlerEvt=new YAHOO.util.CustomEvent("onLoadPrev",X)}X._loadPrevHandlerEvt.subscribe(X._currLoadPrevHandler,X)}}});this.cfg.addProperty("prevButtonStateHandler",{value:null,handler:function(B,C,A){if(X._currPrevButtonStateHandler){X._prevButtonStateHandlerEvt.unsubscribe(X._currPrevButtonStateHandler,X)}X._currPrevButtonStateHandler=C[0];if(X._currPrevButtonStateHandler){if(!X._prevButtonStateHandlerEvt){X._prevButtonStateHandlerEvt=new YAHOO.util.CustomEvent("onPrevButtonStateChange",X)}X._prevButtonStateHandlerEvt.subscribe(X._currPrevButtonStateHandler,X)}}});this.cfg.addProperty("nextButtonStateHandler",{value:null,handler:function(B,C,A){if(X._currNextButtonStateHandler){X._nextButtonStateHandlerEvt.unsubscribe(X._currNextButtonStateHandler,X)}X._currNextButtonStateHandler=C[0];if(X._currNextButtonStateHandler){if(!X._nextButtonStateHandlerEvt){X._nextButtonStateHandlerEvt=new YAHOO.util.CustomEvent("onNextButtonStateChange",X)}X._nextButtonStateHandlerEvt.subscribe(X._currNextButtonStateHandler,X)}}});if(W){this.cfg.applyConfig(W)}YAHOO.util.Event.addListener(this.carouselElem,"mousedown",this._handleMouseDownForSelection,this,true);this._origFirstVisible=this.cfg.getProperty("firstVisible");this._currLoadInitHandler=this.cfg.getProperty("loadInitHandler");this._currLoadNextHandler=this.cfg.getProperty("loadNextHandler");this._currLoadPrevHandler=this.cfg.getProperty("loadPrevHandler");this._currPrevButtonStateHandler=this.cfg.getProperty("prevButtonStateHandler");this._currNextButtonStateHandler=this.cfg.getProperty("nextButtonStateHandler");this._currAnimationCompleteHandler=this.cfg.getProperty("animationCompleteHandler");this._nextElementID=this.cfg.getProperty("nextElementID");if(!this._nextElementID){this._nextElementID=this.cfg.getProperty("nextElement")}this._prevElementID=this.cfg.getProperty("prevElementID");if(!this._prevElementID){this._prevElementID=this.cfg.getProperty("prevElement")}this._autoPlayTimer=null;this._priorLastVisible=this._priorFirstVisible=this.cfg.getProperty("firstVisible");this._lastPrebuiltIdx=0;this.carouselList=YAHOO.util.Dom.getElementsByClassName(Q,"ul",this.carouselElem)[0];if(this._nextElementID==null){this._carouselNext=YAHOO.util.Dom.getElementsByClassName(a,"div",this.carouselElem)[0]}else{this._carouselNext=YAHOO.util.Dom.get(this._nextElementID)}if(this._prevElementID==null){this._carouselPrev=YAHOO.util.Dom.getElementsByClassName(b,"div",this.carouselElem)[0]}else{this._carouselPrev=YAHOO.util.Dom.get(this._prevElementID)}this._clipReg=YAHOO.util.Dom.getElementsByClassName(P,"div",this.carouselElem)[0];if(this.isVertical()){YAHOO.util.Dom.addClass(this.carouselList,"carousel-vertical")}this._scrollNextAnim=new YAHOO.util.Motion(this.carouselList,this.scrollNextParams,this.cfg.getProperty("animationSpeed"),this.cfg.getProperty("animationMethod"));this._scrollPrevAnim=new YAHOO.util.Motion(this.carouselList,this.scrollPrevParams,this.cfg.getProperty("animationSpeed"),this.cfg.getProperty("animationMethod"));if(this._carouselNext){YAHOO.util.Event.addListener(this._carouselNext,"click",this._scrollNext,this)}if(this._carouselPrev){YAHOO.util.Event.addListener(this._carouselPrev,"click",this._scrollPrev,this)}var Y=this.cfg.getProperty("loadInitHandler");if(Y){this._loadInitHandlerEvt=new YAHOO.util.CustomEvent("onLoadInit",this);this._loadInitHandlerEvt.subscribe(Y,this)}var U=this.cfg.getProperty("loadNextHandler");if(U){this._loadNextHandlerEvt=new YAHOO.util.CustomEvent("onLoadNext",this);this._loadNextHandlerEvt.subscribe(U,this)}var T=this.cfg.getProperty("loadPrevHandler");if(T){this._loadPrevHandlerEvt=new YAHOO.util.CustomEvent("onLoadPrev",this);this._loadPrevHandlerEvt.subscribe(T,this)}var V=this.cfg.getProperty("animationCompleteHandler");if(V){this._animationCompleteEvt=new YAHOO.util.CustomEvent("onAnimationComplete",this);this._animationCompleteEvt.subscribe(V,this)}var R=this.cfg.getProperty("prevButtonStateHandler");if(R){this._prevButtonStateHandlerEvt=new YAHOO.util.CustomEvent("onPrevButtonStateChange",this);this._prevButtonStateHandlerEvt.subscribe(R,this)}var Z=this.cfg.getProperty("nextButtonStateHandler");if(Z){this._nextButtonStateHandlerEvt=new YAHOO.util.CustomEvent("onNextButtonStateChange",this);this._nextButtonStateHandlerEvt.subscribe(Z,this)}var O=this._calculateVisibleExtent();YAHOO.util.Event.onAvailable(this._carouselElemID+"-item-"+O.start,this._calculateSize,this);if(this.cfg.getProperty("loadOnStart")){this._loadInitial()}},_handleMouseDownForSelection:function(B){if(this.cfg.getProperty("disableSelection")){YAHOO.util.Event.preventDefault(B);YAHOO.util.Event.stopPropagation(B)}},clear:function(){var B=this.cfg.getProperty("loadInitHandler");if(B){this._removeChildrenFromNode(this.carouselList);this._lastPrebuiltIdx=0}this.stopAutoPlay();this._priorLastVisible=this._priorFirstVisible=this._origFirstVisible;this.cfg.setProperty("firstVisible",this._origFirstVisible,true);this.moveTo(this._origFirstVisible)},reload:function(D){if(this._isValidObj(D)){this.cfg.setProperty("numVisible",D)}this.clear();var C=this._calculateVisibleExtent();YAHOO.util.Event.onAvailable(this._carouselElemID+"-item-"+C.start,this._calculateSize,this);this._loadInitial()},load:function(){var B=this._calculateVisibleExtent();YAHOO.util.Event.onAvailable(this._carouselElemID+"-item-"+B.start,this._calculateSize,this);this._loadInitial()},addItem:function(I,J,H){if(I>this.cfg.getProperty("size")){return null}var G=this.getItem(I);if(!this._isValidObj(G)){G=this._createItem(I,J);this.carouselList.appendChild(G)}else{if(this._isValidObj(G.placeholder)){var F=this._createItem(I,J);this.carouselList.replaceChild(F,G);G=F}}if(this._isValidObj(H)){YAHOO.util.Dom.addClass(G,H)}if(this.isVertical()){setTimeout(function(){G.style.display="block"},1)}return G},insertBefore:function(H,F){if(H>=this.cfg.getProperty("size")){return null}if(H<1){H=1}var E=H-1;if(E>this._lastPrebuiltIdx){this._prebuildItems(this._lastPrebuiltIdx,H)}var G=this._insertBeforeItem(H,F);this._enableDisableControls();return G},insertAfter:function(H,F){if(H>this.cfg.getProperty("size")){H=this.cfg.getProperty("size")}var E=H+1;if(E>this._lastPrebuiltIdx){this._prebuildItems(this._lastPrebuiltIdx,E+1)}var G=this._insertAfterItem(H,F);if(E>this.cfg.getProperty("size")){this.cfg.setProperty("size",E,true)}this._enableDisableControls();return G},scrollNext:function(){this._scrollNext(null,this);this._autoPlayTimer=null;if(this.cfg.getProperty("autoPlay")!==0){this._autoPlayTimer=this.startAutoPlay()}},scrollPrev:function(){this._scrollPrev(null,this)},scrollTo:function(B){this._position(B,true)},moveTo:function(B){this._position(B,false)},startAutoPlay:function(D){if(this._isValidObj(D)){this.cfg.setProperty("autoPlay",D,true)}if(this._autoPlayTimer!==null){return this._autoPlayTimer}var E=this;var F=function(){E.scrollNext()};this._autoPlayTimer=setTimeout(F,this.cfg.getProperty("autoPlay"));return this._autoPlayTimer},stopAutoPlay:function(){if(this._autoPlayTimer!==null){clearTimeout(this._autoPlayTimer);this._autoPlayTimer=null}},isVertical:function(){return(this.cfg.getProperty("orientation")!="horizontal")},isItemLoaded:function(C){var D=this.getItem(C);if(this._isValidObj(D)&&!this._isValidObj(D.placeholder)){return true}return false},getItem:function(D){var F=this._carouselElemID+"-item-"+D;var E=YAHOO.util.Dom.get(F);return E},show:function(){YAHOO.util.Dom.setStyle(this.carouselElem,"display","block");this.calculateSize()},hide:function(){YAHOO.util.Dom.setStyle(this.carouselElem,"display","none")},calculateSize:function(){var AK=this.carouselList.childNodes;var r=null;for(var AP=0;AP<AK.length;AP++){r=AK[AP];if(r.tagName=="LI"||r.tagName=="li"){break}}var i=this.cfg.getProperty("navMargin");var AI=this.cfg.getProperty("numVisible");var AA=this.cfg.getProperty("firstVisible");var AM=this._getStyleVal(r,"paddingLeft");var l=this._getStyleVal(r,"paddingRight");var AN=this._getStyleVal(r,"marginLeft");var m=this._getStyleVal(r,"marginRight");var n=this._getStyleVal(r,"paddingTop");var AF=this._getStyleVal(r,"paddingBottom");var o=this._getStyleVal(r,"marginTop");var AH=this._getStyleVal(r,"marginBottom");YAHOO.util.Dom.removeClass(this.carouselList,"carousel-vertical");YAHOO.util.Dom.removeClass(this.carouselList,"carousel-horizontal");if(this.isVertical()){var p=AM+l+AN+m;YAHOO.util.Dom.addClass(this.carouselList,"carousel-vertical");var AC=n+AF+o+AH;var y=this._getStyleVal(this.carouselList,"paddingTop");var j=this._getStyleVal(this.carouselList,"paddingBottom");var z=this._getStyleVal(this.carouselList,"marginTop");var k=this._getStyleVal(this.carouselList,"marginBottom");var AJ=y+j+z+k;var t=(this._isExtraRevealed())?(this.cfg.getProperty("revealAmount")+(AC)/2):0;var AE=this._getStyleVal(r,"height",true);this.scrollAmountPerInc=(AE+AC);var AD=this._getStyleVal(r,"width");this.carouselElem.style.width=(AD+p)+"px";this._clipReg.style.height=(this.scrollAmountPerInc*AI+t*2+AJ)+"px";this.carouselElem.style.height=(this.scrollAmountPerInc*AI+t*2+i*2+AJ)+"px";var AO=(this._isExtraRevealed())?(t-(Math.abs(o-AH)+Math.abs(n-AF))/2):0;YAHOO.util.Dom.setStyle(this.carouselList,"position","relative");YAHOO.util.Dom.setStyle(this.carouselList,"top",""+AO+"px");var v=YAHOO.util.Dom.getY(this.carouselList);YAHOO.util.Dom.setY(this.carouselList,v-this.scrollAmountPerInc*(AA-1))}else{YAHOO.util.Dom.addClass(this.carouselList,"carousel-horizontal");var q=this._getStyleVal(this.carouselList,"paddingLeft");var w=this._getStyleVal(this.carouselList,"paddingRight");var s=this._getStyleVal(this.carouselList,"marginLeft");var x=this._getStyleVal(this.carouselList,"marginRight");var AB=q+w+s+x;var AL=AN+m;var p=AL+l+AM;var t=(this._isExtraRevealed())?(this.cfg.getProperty("revealAmount")+(p)/2):0;var AD=r.offsetWidth;this.scrollAmountPerInc=AD+AL;this._clipReg.style.width=(this.scrollAmountPerInc*AI+t*2)+"px";this.carouselElem.style.width=(this.scrollAmountPerInc*AI+i*2+t*2+AB)+"px";var AG=(this._isExtraRevealed())?(t-(Math.abs(m-AN)+Math.abs(l-AM))/2-(s+q)):0;YAHOO.util.Dom.setStyle(this.carouselList,"position","relative");YAHOO.util.Dom.setStyle(this.carouselList,"left",""+AG+"px");var u=YAHOO.util.Dom.getX(this.carouselList);YAHOO.util.Dom.setX(this.carouselList,u-this.scrollAmountPerInc*(AA-1))}},setProperty:function(E,F,D){this.cfg.setProperty(E,F,D)},getProperty:function(B){return this.cfg.getProperty(B)},getFirstItemRevealed:function(){return this._firstItemRevealed},getLastItemRevealed:function(){return this._lastItemRevealed},getFirstVisible:function(){return this.cfg.getProperty("firstVisible")},getLastVisible:function(){var D=this.cfg.getProperty("firstVisible");var C=this.cfg.getProperty("numVisible");return D+C-1},_getStyleVal:function(F,I,H){var J=YAHOO.util.Dom.getStyle(F,I);var G=H?parseFloat(J):parseInt(J,10);if(I=="height"&&isNaN(G)){G=F.offsetHeight}else{if(isNaN(G)){G=0}}return G},_calculateSize:function(B){B.calculateSize();B.show()},_removeChildrenFromNode:function(D){if(!this._isValidObj(D)){return }var C=D.childNodes.length;while(D.hasChildNodes()){D.removeChild(D.firstChild)}},_prebuildLiElem:function(C){if(C<1){return }var D=document.createElement("li");D.id=this._carouselElemID+"-item-"+C;D.placeholder=true;this.carouselList.appendChild(D);this._lastPrebuiltIdx=(C>this._lastPrebuiltIdx)?C:this._lastPrebuiltIdx},_createItem:function(F,D){if(F<1){return }var E=document.createElement("li");E.id=this._carouselElemID+"-item-"+F;if(typeof (D)==="string"){E.innerHTML=D}else{E.appendChild(D)}return E},_insertAfterItem:function(D,C){return this._insertBeforeItem(D+1,C)},_insertBeforeItem:function(K,I){var P=this.getItem(K);var N=this.cfg.getProperty("size");if(N!=this.UNBOUNDED_SIZE){this.cfg.setProperty("size",N+1,true)}for(var O=this._lastPrebuiltIdx;O>=K;O--){var L=this.getItem(O);if(this._isValidObj(L)){L.id=this._carouselElemID+"-item-"+(O+1)}}var J=this._createItem(K,I);var M=this.carouselList.insertBefore(J,P);this._lastPrebuiltIdx+=1;return J},insertAfterEnd:function(B){return this.insertAfter(this.cfg.getProperty("size"),B)},_position:function(F,J){var I=this._priorFirstVisible;if(F>I){var H=F-I;this._scrollNextInc(H,J)}else{var G=I-F;this._scrollPrevInc(G,J)}},_scrollPrev:function(D,C){if(D!==null){C.stopAutoPlay()}C._scrollPrevInc(C.cfg.getProperty("scrollInc"),(C.cfg.getProperty("animationSpeed")!==0))},_scrollNext:function(D,C){if(D!==null){C.stopAutoPlay()}C._scrollNextInc(C.cfg.getProperty("scrollInc"),(C.cfg.getProperty("animationSpeed")!==0))},_handleAnimationComplete:function(I,J,F){var G=F[0];var H=F[1];G._animationCompleteEvt.fire(H)},_areAllItemsLoaded:function(H,I){var F=true;for(var J=H;J<=I;J++){var G=this.getItem(J);if(!this._isValidObj(G)){this._prebuildLiElem(J);F=false}else{if(this._isValidObj(G.placeholder)){F=false}}}return F},_prebuildItems:function(G,H){for(var E=G;E<=H;E++){var F=this.getItem(E);if(!this._isValidObj(F)){this._prebuildLiElem(E)}}},_isExtraRevealed:function(){return(this.cfg.getProperty("revealAmount")>0)},_scrollNextInc:function(d,Y){if(this._scrollNextAnim.isAnimated()||this._scrollPrevAnim.isAnimated()){return false}var U=this.cfg.getProperty("numVisible");var W=this._priorFirstVisible;var Z=this._priorLastVisible;var T=this.cfg.getProperty("size");var S=this._calculateAllowableScrollExtent();if(this.cfg.getProperty("wrap")&&Z==S.end){this.scrollTo(S.start);return }var X=W+d;var b=X+U-1;if(b>S.end){b=S.end;X=b-U+1}d=X-W;this.cfg.setProperty("firstVisible",X,true);if(d>0){if(this._isValidObj(this.cfg.getProperty("loadNextHandler"))){var P=this._calculateVisibleExtent(X,b);var c=(Z+1)<P.start?(Z+1):P.start;var a=this._areAllItemsLoaded(c,P.end);this._loadNextHandlerEvt.fire(P.start,P.end,a)}if(Y){var V={points:{by:[-this.scrollAmountPerInc*d,0]}};if(this.isVertical()){V={points:{by:[0,-this.scrollAmountPerInc*d]}}}this._scrollNextAnim=new YAHOO.util.Motion(this.carouselList,V,this.cfg.getProperty("animationSpeed"),this.cfg.getProperty("animationMethod"));if(this.cfg.getProperty("animationCompleteHandler")){this._scrollNextAnim.onComplete.subscribe(this._handleAnimationComplete,[this,"next"])}this._scrollNextAnim.animate()}else{if(this.isVertical()){var R=YAHOO.util.Dom.getY(this.carouselList);YAHOO.util.Dom.setY(this.carouselList,R-this.scrollAmountPerInc*d)}else{var Q=YAHOO.util.Dom.getX(this.carouselList);YAHOO.util.Dom.setX(this.carouselList,Q-this.scrollAmountPerInc*d)}}}this._priorFirstVisible=X;this._priorLastVisible=b;this._enableDisableControls();return false},_scrollPrevInc:function(b,Y){if(this._scrollNextAnim.isAnimated()||this._scrollPrevAnim.isAnimated()){return false}var U=this.cfg.getProperty("numVisible");var W=this._priorFirstVisible;var Z=this._priorLastVisible;var T=this.cfg.getProperty("size");var X=W-b;var S=this._calculateAllowableScrollExtent();X=(X<S.start)?S.start:X;var c=X+U-1;if(c>S.end){c=S.end;X=c-U+1}b=W-X;this.cfg.setProperty("firstVisible",X,true);if(b>0){if(this._isValidObj(this.cfg.getProperty("loadPrevHandler"))){var d=this._calculateVisibleExtent(X,c);var Q=(W-1)>d.end?(W-1):d.end;var a=this._areAllItemsLoaded(d.start,Q);this._loadPrevHandlerEvt.fire(d.start,d.end,a)}if(Y){var V={points:{by:[this.scrollAmountPerInc*b,0]}};if(this.isVertical()){V={points:{by:[0,this.scrollAmountPerInc*b]}}}this._scrollPrevAnim=new YAHOO.util.Motion(this.carouselList,V,this.cfg.getProperty("animationSpeed"),this.cfg.getProperty("animationMethod"));if(this.cfg.getProperty("animationCompleteHandler")){this._scrollPrevAnim.onComplete.subscribe(this._handleAnimationComplete,[this,"prev"])}this._scrollPrevAnim.animate()}else{if(this.isVertical()){var R=YAHOO.util.Dom.getY(this.carouselList);YAHOO.util.Dom.setY(this.carouselList,R+this.scrollAmountPerInc*b)}else{var P=YAHOO.util.Dom.getX(this.carouselList);YAHOO.util.Dom.setX(this.carouselList,P+this.scrollAmountPerInc*b)}}}this._priorFirstVisible=X;this._priorLastVisible=c;this._enableDisableControls();return false},_enableDisableControls:function(){var E=this.cfg.getProperty("firstVisible");var D=this.getLastVisible();var F=this._calculateAllowableScrollExtent();if(this._prevEnabled){if(E===F.start){this._disablePrev()}}if(this._prevEnabled===false){if(E>F.start){this._enablePrev()}}if(this._nextEnabled){if(D===F.end){this._disableNext()}}if(this._nextEnabled===false){if(D<F.end){this._enableNext()}}},_loadInitial:function(){var E=this.cfg.getProperty("firstVisible");this._priorLastVisible=this.getLastVisible();if(this._loadInitHandlerEvt){var D=this._calculateVisibleExtent(E,this._priorLastVisible);var F=this._areAllItemsLoaded(1,D.end);this._loadInitHandlerEvt.fire(D.start,D.end,F)}if(this.cfg.getProperty("autoPlay")!==0){this._autoPlayTimer=this.startAutoPlay()}this._enableDisableControls()},_calculateAllowableScrollExtent:function(){var F=this.cfg.getProperty("scrollBeforeAmount");var E=this.cfg.getProperty("scrollAfterAmount");var H=this.cfg.getProperty("size");var G={start:1-F,end:H+E};return G},_calculateVisibleExtent:function(F,E){if(!F){F=this.cfg.getProperty("firstVisible");E=this.getLastVisible()}var H=this.cfg.getProperty("size");F=F<1?1:F;E=E>H?H:E;var G={start:F,end:E};this._firstItemRevealed=-1;this._lastItemRevealed=-1;if(this._isExtraRevealed()){if(F>1){this._firstItemRevealed=F-1;G.start=this._firstItemRevealed}if(E<H){this._lastItemRevealed=E+1;G.end=this._lastItemRevealed}}return G},_disablePrev:function(){this._prevEnabled=false;if(this._prevButtonStateHandlerEvt){this._prevButtonStateHandlerEvt.fire(false,this._carouselPrev)}if(this._isValidObj(this._carouselPrev)){YAHOO.util.Event.removeListener(this._carouselPrev,"click",this._scrollPrev)}},_enablePrev:function(){this._prevEnabled=true;if(this._prevButtonStateHandlerEvt){this._prevButtonStateHandlerEvt.fire(true,this._carouselPrev)}if(this._isValidObj(this._carouselPrev)){YAHOO.util.Event.addListener(this._carouselPrev,"click",this._scrollPrev,this)}},_disableNext:function(){if(this.cfg.getProperty("wrap")){return }this._nextEnabled=false;if(this._isValidObj(this._nextButtonStateHandlerEvt)){this._nextButtonStateHandlerEvt.fire(false,this._carouselNext)}if(this._isValidObj(this._carouselNext)){YAHOO.util.Event.removeListener(this._carouselNext,"click",this._scrollNext)}},_enableNext:function(){this._nextEnabled=true;if(this._isValidObj(this._nextButtonStateHandlerEvt)){this._nextButtonStateHandlerEvt.fire(true,this._carouselNext)}if(this._isValidObj(this._carouselNext)){YAHOO.util.Event.addListener(this._carouselNext,"click",this._scrollNext,this)}},_isValidObj:function(B){if(null==B){return false}if("undefined"==typeof (B)){return false}return true}};
