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