/**
 * Copyright (c) 2006-2007, Bill W. Scott
 * All rights reserved.
 *
 * This work is licensed under the Creative Commons Attribution 2.5 License. To view a copy 
 * of this license, visit http://creativecommons.org/licenses/by/2.5/ or send a letter to 
 * Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.
 *
 * This work was created by Bill Scott (billwscott.com, looksgoodworkswell.com).
 * 
 * The only attribution I require is to keep this notice of copyright & license 
 * in this original source file.
 *
 * Version 0.6.1 - 07.08.2007
 *
 */
YAHOO.namespace("extension");YAHOO.extension.Carousel=function(_1,_2){this.init(_1,_2);};YAHOO.extension.Carousel.prototype={UNBOUNDED_SIZE:1000000,init:function(_3,_4){var _5=this;this.getCarouselItem=this.getItem;var _6="carousel-list";var _7="carousel-clip-region";var _8="carousel-next";var _9="carousel-prev";this._carouselElemID=_3;this.carouselElem=YAHOO.util.Dom.get(_3);this._prevEnabled=true;this._nextEnabled=true;this.cfg=new YAHOO.util.Config(this);this.cfg.addProperty("scrollBeforeAmount",{value:0,handler:function(_a,_b,_c){},validator:_5.cfg.checkNumber});this.cfg.addProperty("scrollAfterAmount",{value:0,handler:function(_d,_e,_f){},validator:_5.cfg.checkNumber});this.cfg.addProperty("loadOnStart",{value:true,handler:function(_10,_11,_12){},validator:_5.cfg.checkBoolean});this.cfg.addProperty("orientation",{value:"horizontal",handler:function(_13,_14,_15){_5.reload();},validator:function(_16){if(typeof _16=="string"){return ("horizontal,vertical".indexOf(_16.toLowerCase())!=-1);}else{return false;}}});this.cfg.addProperty("size",{value:this.UNBOUNDED_SIZE,handler:function(_17,_18,_19){_5.reload();},validator:_5.cfg.checkNumber});this.cfg.addProperty("numVisible",{value:3,handler:function(_1a,_1b,_1c){_5.reload();},validator:_5.cfg.checkNumber});this.cfg.addProperty("firstVisible",{value:1,handler:function(_1d,_1e,_1f){_5.moveTo(_1e[0]);},validator:_5.cfg.checkNumber});this.cfg.addProperty("scrollInc",{value:3,handler:function(_20,_21,_22){},validator:_5.cfg.checkNumber});this.cfg.addProperty("animationSpeed",{value:0.25,handler:function(_23,_24,_25){_5.animationSpeed=_24[0];},validator:_5.cfg.checkNumber});this.cfg.addProperty("animationMethod",{value:YAHOO.util.Easing.easeOut,handler:function(_26,_27,_28){}});this.cfg.addProperty("animationCompleteHandler",{value:null,handler:function(_29,_2a,_2b){if(_5._animationCompleteEvt){_5._animationCompleteEvt.unsubscribe(_5._currAnimationCompleteHandler,_5);}_5._currAnimationCompleteHandler=_2a[0];if(_5._currAnimationCompleteHandler){if(!_5._animationCompleteEvt){_5._animationCompleteEvt=new YAHOO.util.CustomEvent("onAnimationComplete",_5);}_5._animationCompleteEvt.subscribe(_5._currAnimationCompleteHandler,_5);}}});this.cfg.addProperty("autoPlay",{value:0,handler:function(_2c,_2d,_2e){var _2f=_2d[0];if(_2f>0){_5.startAutoPlay();}else{_5.stopAutoPlay();}}});this.cfg.addProperty("wrap",{value:false,handler:function(_30,_31,_32){},validator:_5.cfg.checkBoolean});this.cfg.addProperty("navMargin",{value:0,handler:function(_33,_34,_35){_5.calculateSize();},validator:_5.cfg.checkNumber});this.cfg.addProperty("revealAmount",{value:0,handler:function(_36,_37,_38){_5.reload();},validator:_5.cfg.checkNumber});this.cfg.addProperty("prevElementID",{value:null,handler:function(_39,_3a,_3b){if(_5._carouselPrev){YAHOO.util.Event.removeListener(_5._carouselPrev,"click",_5._scrollPrev);}_5._prevElementID=_3a[0];if(_5._prevElementID==null){_5._carouselPrev=YAHOO.util.Dom.getElementsByClassName(_9,"div",_5.carouselElem)[0];}else{_5._carouselPrev=YAHOO.util.Dom.get(_5._prevElementID);}YAHOO.util.Event.addListener(_5._carouselPrev,"click",_5._scrollPrev,_5);}});this.cfg.addProperty("prevElement",{value:null,handler:function(_3c,_3d,_3e){if(_5._carouselPrev){YAHOO.util.Event.removeListener(_5._carouselPrev,"click",_5._scrollPrev);}_5._prevElementID=_3d[0];if(_5._prevElementID==null){_5._carouselPrev=YAHOO.util.Dom.getElementsByClassName(_9,"div",_5.carouselElem)[0];}else{_5._carouselPrev=YAHOO.util.Dom.get(_5._prevElementID);}YAHOO.util.Event.addListener(_5._carouselPrev,"click",_5._scrollPrev,_5);}});this.cfg.addProperty("nextElementID",{value:null,handler:function(_3f,_40,_41){if(_5._carouselNext){YAHOO.util.Event.removeListener(_5._carouselNext,"click",_5._scrollNext);}_5._nextElementID=_40[0];if(_5._nextElementID==null){_5._carouselNext=YAHOO.util.Dom.getElementsByClassName(_8,"div",_5.carouselElem);}else{_5._carouselNext=YAHOO.util.Dom.get(_5._nextElementID);}if(_5._carouselNext){YAHOO.util.Event.addListener(_5._carouselNext,"click",_5._scrollNext,_5);}}});this.cfg.addProperty("nextElement",{value:null,handler:function(_42,_43,_44){if(_5._carouselNext){YAHOO.util.Event.removeListener(_5._carouselNext,"click",_5._scrollNext);}_5._nextElementID=_43[0];if(_5._nextElementID==null){_5._carouselNext=YAHOO.util.Dom.getElementsByClassName(_8,"div",_5.carouselElem);}else{_5._carouselNext=YAHOO.util.Dom.get(_5._nextElementID);}if(_5._carouselNext){YAHOO.util.Event.addListener(_5._carouselNext,"click",_5._scrollNext,_5);}}});this.cfg.addProperty("loadInitHandler",{value:null,handler:function(_45,_46,_47){if(_5._loadInitHandlerEvt){_5._loadInitHandlerEvt.unsubscribe(_5._currLoadInitHandler,_5);}_5._currLoadInitHandler=_46[0];if(_5._currLoadInitHandler){if(!_5._loadInitHandlerEvt){_5._loadInitHandlerEvt=new YAHOO.util.CustomEvent("onLoadInit",_5);}_5._loadInitHandlerEvt.subscribe(_5._currLoadInitHandler,_5);}}});this.cfg.addProperty("loadNextHandler",{value:null,handler:function(_48,_49,_4a){if(_5._loadNextHandlerEvt){_5._loadNextHandlerEvt.unsubscribe(_5._currLoadNextHandler,_5);}_5._currLoadNextHandler=_49[0];if(_5._currLoadNextHandler){if(!_5._loadNextHandlerEvt){_5._loadNextHandlerEvt=new YAHOO.util.CustomEvent("onLoadNext",_5);}_5._loadNextHandlerEvt.subscribe(_5._currLoadNextHandler,_5);}}});this.cfg.addProperty("loadPrevHandler",{value:null,handler:function(_4b,_4c,_4d){if(_5._loadPrevHandlerEvt){_5._loadPrevHandlerEvt.unsubscribe(_5._currLoadPrevHandler,_5);}_5._currLoadPrevHandler=_4c[0];if(_5._currLoadPrevHandler){if(!_5._loadPrevHandlerEvt){_5._loadPrevHandlerEvt=new YAHOO.util.CustomEvent("onLoadPrev",_5);}_5._loadPrevHandlerEvt.subscribe(_5._currLoadPrevHandler,_5);}}});this.cfg.addProperty("prevButtonStateHandler",{value:null,handler:function(_4e,_4f,_50){if(_5._currPrevButtonStateHandler){_5._prevButtonStateHandlerEvt.unsubscribe(_5._currPrevButtonStateHandler,_5);}_5._currPrevButtonStateHandler=_4f[0];if(_5._currPrevButtonStateHandler){if(!_5._prevButtonStateHandlerEvt){_5._prevButtonStateHandlerEvt=new YAHOO.util.CustomEvent("onPrevButtonStateChange",_5);}_5._prevButtonStateHandlerEvt.subscribe(_5._currPrevButtonStateHandler,_5);}}});this.cfg.addProperty("nextButtonStateHandler",{value:null,handler:function(_51,_52,_53){if(_5._currNextButtonStateHandler){_5._nextButtonStateHandlerEvt.unsubscribe(_5._currNextButtonStateHandler,_5);}_5._currNextButtonStateHandler=_52[0];if(_5._currNextButtonStateHandler){if(!_5._nextButtonStateHandlerEvt){_5._nextButtonStateHandlerEvt=new YAHOO.util.CustomEvent("onNextButtonStateChange",_5);}_5._nextButtonStateHandlerEvt.subscribe(_5._currNextButtonStateHandler,_5);}}});if(_4){this.cfg.applyConfig(_4);}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(_6,"ul",this.carouselElem)[0];if(this._nextElementID==null){this._carouselNext=YAHOO.util.Dom.getElementsByClassName(_8,"div",this.carouselElem)[0];}else{this._carouselNext=YAHOO.util.Dom.get(this._nextElementID);}if(this._prevElementID==null){this._carouselPrev=YAHOO.util.Dom.getElementsByClassName(_9,"div",this.carouselElem)[0];}else{this._carouselPrev=YAHOO.util.Dom.get(this._prevElementID);}this._clipReg=YAHOO.util.Dom.getElementsByClassName(_7,"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 _54=this.cfg.getProperty("loadInitHandler");if(_54){this._loadInitHandlerEvt=new YAHOO.util.CustomEvent("onLoadInit",this);this._loadInitHandlerEvt.subscribe(_54,this);}var _55=this.cfg.getProperty("loadNextHandler");if(_55){this._loadNextHandlerEvt=new YAHOO.util.CustomEvent("onLoadNext",this);this._loadNextHandlerEvt.subscribe(_55,this);}var _56=this.cfg.getProperty("loadPrevHandler");if(_56){this._loadPrevHandlerEvt=new YAHOO.util.CustomEvent("onLoadPrev",this);this._loadPrevHandlerEvt.subscribe(_56,this);}var _57=this.cfg.getProperty("animationCompleteHandler");if(_57){this._animationCompleteEvt=new YAHOO.util.CustomEvent("onAnimationComplete",this);this._animationCompleteEvt.subscribe(_57,this);}var _58=this.cfg.getProperty("prevButtonStateHandler");if(_58){this._prevButtonStateHandlerEvt=new YAHOO.util.CustomEvent("onPrevButtonStateChange",this);this._prevButtonStateHandlerEvt.subscribe(_58,this);}var _59=this.cfg.getProperty("nextButtonStateHandler");if(_59){this._nextButtonStateHandlerEvt=new YAHOO.util.CustomEvent("onNextButtonStateChange",this);this._nextButtonStateHandlerEvt.subscribe(_59,this);}var _5a=this._calculateVisibleExtent();YAHOO.util.Event.onAvailable(this._carouselElemID+"-item-"+_5a.start,this._calculateSize,this);if(this.cfg.getProperty("loadOnStart")){this._loadInitial();}},clear:function(){var _5b=this.cfg.getProperty("loadInitHandler");if(_5b){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(_5c){if(this._isValidObj(_5c)){this.cfg.setProperty("numVisible",_5c);}this.clear();var _5d=this._calculateVisibleExtent();YAHOO.util.Event.onAvailable(this._carouselElemID+"-item-"+_5d.start,this._calculateSize,this);this._loadInitial();},load:function(){var _5e=this._calculateVisibleExtent();YAHOO.util.Event.onAvailable(this._carouselElemID+"-item-"+_5e.start,this._calculateSize,this);this._loadInitial();},addItem:function(idx,_60,_61){if(idx>this.cfg.getProperty("size")){return null;}var _62=this.getItem(idx);if(!this._isValidObj(_62)){_62=this._createItem(idx,_60);this.carouselList.appendChild(_62);}else{if(this._isValidObj(_62.placeholder)){var _63=this._createItem(idx,_60);this.carouselList.replaceChild(_63,_62);_62=_63;}}if(this._isValidObj(_61)){YAHOO.util.Dom.addClass(_62,_61);}if(this.isVertical()){setTimeout(function(){_62.style.display="block";},1);}return _62;},insertBefore:function(_64,_65){if(_64>=this.cfg.getProperty("size")){return null;}if(_64<1){_64=1;}var _66=_64-1;if(_66>this._lastPrebuiltIdx){this._prebuildItems(this._lastPrebuiltIdx,_64);}var _67=this._insertBeforeItem(_64,_65);this._enableDisableControls();return _67;},insertAfter:function(_68,_69){if(_68>this.cfg.getProperty("size")){_68=this.cfg.getProperty("size");}var _6a=_68+1;if(_6a>this._lastPrebuiltIdx){this._prebuildItems(this._lastPrebuiltIdx,_6a+1);}var _6b=this._insertAfterItem(_68,_69);if(_6a>this.cfg.getProperty("size")){this.cfg.setProperty("size",_6a,true);}this._enableDisableControls();return _6b;},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(_6c){this._position(_6c,true);},moveTo:function(_6d){this._position(_6d,false);},startAutoPlay:function(_6e){if(this._isValidObj(_6e)){this.cfg.setProperty("autoPlay",_6e,true);}if(this._autoPlayTimer!==null){return this._autoPlayTimer;}var _6f=this;var _70=function(){_6f.scrollNext();};this._autoPlayTimer=setTimeout(_70,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(idx){var _72=this.getItem(idx);if(this._isValidObj(_72)&&!this._isValidObj(_72.placeholder)){return true;}return false;},getItem:function(idx){var _74=this._carouselElemID+"-item-"+idx;var _75=YAHOO.util.Dom.get(_74);return _75;},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 _76=this.carouselList.childNodes;var li=null;for(var i=0;i<_76.length;i++){li=_76[i];if(li.tagName=="LI"||li.tagName=="li"){break;}}var _79=this.cfg.getProperty("navMargin");var _7a=this.cfg.getProperty("numVisible");var _7b=this.cfg.getProperty("firstVisible");var pl=this._getStyleVal(li,"paddingLeft");var pr=this._getStyleVal(li,"paddingRight");var ml=this._getStyleVal(li,"marginLeft");var mr=this._getStyleVal(li,"marginRight");var pt=this._getStyleVal(li,"paddingTop");var pb=this._getStyleVal(li,"paddingBottom");var mt=this._getStyleVal(li,"marginTop");var mb=this._getStyleVal(li,"marginBottom");YAHOO.util.Dom.removeClass(this.carouselList,"carousel-vertical");YAHOO.util.Dom.removeClass(this.carouselList,"carousel-horizontal");if(this.isVertical()){var _84=pl+pr+ml+mr;YAHOO.util.Dom.addClass(this.carouselList,"carousel-vertical");var _85=pt+pb+mt+mb;var upt=this._getStyleVal(this.carouselList,"paddingTop");var upb=this._getStyleVal(this.carouselList,"paddingBottom");var umt=this._getStyleVal(this.carouselList,"marginTop");var umb=this._getStyleVal(this.carouselList,"marginBottom");var _8a=upt+upb+umt+umb;var _8b=(this._isExtraRevealed())?(this.cfg.getProperty("revealAmount")+(_85)/2):0;var _8c=this._getStyleVal(li,"height",true);this.scrollAmountPerInc=(_8c+_85);var _8d=this._getStyleVal(li,"width");this.carouselElem.style.width=(_8d+_84)+"px";this._clipReg.style.height=(this.scrollAmountPerInc*_7a+_8b*2+_8a)+"px";this.carouselElem.style.height=(this.scrollAmountPerInc*_7a+_8b*2+_79*2+_8a)+"px";var _8e=(this._isExtraRevealed())?(_8b-(Math.abs(mt-mb)+Math.abs(pt-pb))/2):0;YAHOO.util.Dom.setStyle(this.carouselList,"position","relative");YAHOO.util.Dom.setStyle(this.carouselList,"top",""+_8e+"px");var _8f=YAHOO.util.Dom.getY(this.carouselList);YAHOO.util.Dom.setY(this.carouselList,_8f-this.scrollAmountPerInc*(_7b-1));}else{YAHOO.util.Dom.addClass(this.carouselList,"carousel-horizontal");var upl=this._getStyleVal(this.carouselList,"paddingLeft");var upr=this._getStyleVal(this.carouselList,"paddingRight");var uml=this._getStyleVal(this.carouselList,"marginLeft");var umr=this._getStyleVal(this.carouselList,"marginRight");var _94=upl+upr+uml+umr;var _95=ml+mr;var _96=_95+pr+pl;var _97=(this._isExtraRevealed())?(this.cfg.getProperty("revealAmount")+(_96)/2):0;var _98=li.offsetWidth;this.scrollAmountPerInc=_98+_95;this._clipReg.style.width=(this.scrollAmountPerInc*_7a+_97*2)+"px";this.carouselElem.style.width=(this.scrollAmountPerInc*_7a+_79*2+_97*2+_94)+"px";var _99=(this._isExtraRevealed())?(_97-(Math.abs(mr-ml)+Math.abs(pr-pl))/2-(uml+upl)):0;YAHOO.util.Dom.setStyle(this.carouselList,"position","relative");YAHOO.util.Dom.setStyle(this.carouselList,"left",""+_99+"px");var _9a=YAHOO.util.Dom.getX(this.carouselList);YAHOO.util.Dom.setX(this.carouselList,_9a-this.scrollAmountPerInc*(_7b-1));}},setProperty:function(_9b,_9c,_9d){this.cfg.setProperty(_9b,_9c,_9d);},getProperty:function(_9e){return this.cfg.getProperty(_9e);},getFirstItemRevealed:function(){return this._firstItemRevealed;},getLastItemRevealed:function(){return this._lastItemRevealed;},getFirstVisible:function(){return this.cfg.getProperty("firstVisible");},getLastVisible:function(){var _9f=this.cfg.getProperty("firstVisible");var _a0=this.cfg.getProperty("numVisible");return _9f+_a0-1;},_getStyleVal:function(li,_a2,_a3){var _a4=YAHOO.util.Dom.getStyle(li,_a2);var _a5=_a3?parseFloat(_a4):parseInt(_a4,10);if(_a2=="height"&&isNaN(_a5)){_a5=li.offsetHeight;}else{if(isNaN(_a5)){_a5=0;}}return _a5;},_calculateSize:function(me){me.calculateSize();me.show();},_removeChildrenFromNode:function(_a7){if(!this._isValidObj(_a7)){return;}var len=_a7.childNodes.length;while(_a7.hasChildNodes()){_a7.removeChild(_a7.firstChild);}},_prebuildLiElem:function(idx){if(idx<1){return;}var _aa=document.createElement("li");_aa.id=this._carouselElemID+"-item-"+idx;_aa.placeholder=true;this.carouselList.appendChild(_aa);this._lastPrebuiltIdx=(idx>this._lastPrebuiltIdx)?idx:this._lastPrebuiltIdx;},_createItem:function(idx,_ac){if(idx<1){return;}var _ad=document.createElement("li");_ad.id=this._carouselElemID+"-item-"+idx;if(typeof (_ac)==="string"){_ad.innerHTML=_ac;}else{_ad.appendChild(_ac);}return _ad;},_insertAfterItem:function(_ae,_af){return this._insertBeforeItem(_ae+1,_af);},_insertBeforeItem:function(_b0,_b1){var _b2=this.getItem(_b0);var _b3=this.cfg.getProperty("size");if(_b3!=this.UNBOUNDED_SIZE){this.cfg.setProperty("size",_b3+1,true);}for(var i=this._lastPrebuiltIdx;i>=_b0;i--){var _b5=this.getItem(i);if(this._isValidObj(_b5)){_b5.id=this._carouselElemID+"-item-"+(i+1);}}var _b6=this._createItem(_b0,_b1);var _b7=this.carouselList.insertBefore(_b6,_b2);this._lastPrebuiltIdx+=1;return _b6;},insertAfterEnd:function(_b8){return this.insertAfter(this.cfg.getProperty("size"),_b8);},_position:function(_b9,_ba){var _bb=this._priorFirstVisible;if(_b9>_bb){var inc=_b9-_bb;this._scrollNextInc(inc,_ba);}else{var dec=_bb-_b9;this._scrollPrevInc(dec,_ba);}},_scrollPrev:function(e,_bf){if(e!==null){_bf.stopAutoPlay();}if(_bf._scrollPrevAnim.isAnimated()){return false;}_bf._scrollPrevInc(_bf.cfg.getProperty("scrollInc"),(_bf.cfg.getProperty("animationSpeed")!==0));},_scrollNext:function(e,_c1){if(e!==null){_c1.stopAutoPlay();}if(_c1._scrollNextAnim.isAnimated()){return false;}_c1._scrollNextInc(_c1.cfg.getProperty("scrollInc"),(_c1.cfg.getProperty("animationSpeed")!==0));},_handleAnimationComplete:function(_c2,_c3,_c4){var _c5=_c4[0];var _c6=_c4[1];_c5._animationCompleteEvt.fire(_c6);},_areAllItemsLoaded:function(_c7,_c8){var _c9=true;for(var i=_c7;i<=_c8;i++){var _cb=this.getItem(i);if(!this._isValidObj(_cb)){this._prebuildLiElem(i);_c9=false;}else{if(this._isValidObj(_cb.placeholder)){_c9=false;}}}return _c9;},_prebuildItems:function(_cc,_cd){for(var i=_cc;i<=_cd;i++){var _cf=this.getItem(i);if(!this._isValidObj(_cf)){this._prebuildLiElem(i);}}},_isExtraRevealed:function(){return (this.cfg.getProperty("revealAmount")>0);},_scrollNextInc:function(inc,_d1){var _d2=this.cfg.getProperty("numVisible");var _d3=this._priorFirstVisible;var _d4=this._priorLastVisible;var _d5=this.cfg.getProperty("size");var _d6=this._calculateAllowableScrollExtent();if(this.cfg.getProperty("wrap")&&_d4==_d6.end){this.scrollTo(_d6.start);return;}var _d7=_d3+inc;var _d8=_d7+_d2-1;if(_d8>_d6.end){_d8=_d6.end;_d7=_d8-_d2+1;}inc=_d7-_d3;this.cfg.setProperty("firstVisible",_d7,true);if(inc>0){if(this._isValidObj(this.cfg.getProperty("loadNextHandler"))){var _d9=this._calculateVisibleExtent(_d7,_d8);var _da=(_d4+1)<_d9.start?(_d4+1):_d9.start;var _db=this._areAllItemsLoaded(_da,_d9.end);this._loadNextHandlerEvt.fire(_d9.start,_d9.end,_db);}if(_d1){var _dc={points:{by:[-this.scrollAmountPerInc*inc,0]}};if(this.isVertical()){_dc={points:{by:[0,-this.scrollAmountPerInc*inc]}};}this._scrollNextAnim=new YAHOO.util.Motion(this.carouselList,_dc,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 _dd=YAHOO.util.Dom.getY(this.carouselList);YAHOO.util.Dom.setY(this.carouselList,_dd-this.scrollAmountPerInc*inc);}else{var _de=YAHOO.util.Dom.getX(this.carouselList);YAHOO.util.Dom.setX(this.carouselList,_de-this.scrollAmountPerInc*inc);}}}this._priorFirstVisible=_d7;this._priorLastVisible=_d8;this._enableDisableControls();return false;},_scrollPrevInc:function(dec,_e0){var _e1=this.cfg.getProperty("numVisible");var _e2=this._priorFirstVisible;var _e3=this._priorLastVisible;var _e4=this.cfg.getProperty("size");var _e5=_e2-dec;var _e6=this._calculateAllowableScrollExtent();_e5=(_e5<_e6.start)?_e6.start:_e5;var _e7=_e5+_e1-1;if(_e7>_e6.end){_e7=_e6.end;_e5=_e7-_e1+1;}dec=_e2-_e5;this.cfg.setProperty("firstVisible",_e5,true);if(dec>0){if(this._isValidObj(this.cfg.getProperty("loadPrevHandler"))){var _e8=this._calculateVisibleExtent(_e5,_e7);var _e9=(_e2-1)>_e8.end?(_e2-1):_e8.end;var _ea=this._areAllItemsLoaded(_e8.start,_e9);this._loadPrevHandlerEvt.fire(_e8.start,_e8.end,_ea);}if(_e0){var _eb={points:{by:[this.scrollAmountPerInc*dec,0]}};if(this.isVertical()){_eb={points:{by:[0,this.scrollAmountPerInc*dec]}};}this._scrollPrevAnim=new YAHOO.util.Motion(this.carouselList,_eb,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 _ec=YAHOO.util.Dom.getY(this.carouselList);YAHOO.util.Dom.setY(this.carouselList,_ec+this.scrollAmountPerInc*dec);}else{var _ed=YAHOO.util.Dom.getX(this.carouselList);YAHOO.util.Dom.setX(this.carouselList,_ed+this.scrollAmountPerInc*dec);}}}this._priorFirstVisible=_e5;this._priorLastVisible=_e7;this._enableDisableControls();return false;},_enableDisableControls:function(){var _ee=this.cfg.getProperty("firstVisible");var _ef=this.getLastVisible();var _f0=this._calculateAllowableScrollExtent();if(this._prevEnabled){if(_ee===_f0.start){this._disablePrev();}}if(this._prevEnabled===false){if(_ee>_f0.start){this._enablePrev();}}if(this._nextEnabled){if(_ef===_f0.end){this._disableNext();}}if(this._nextEnabled===false){if(_ef<_f0.end){this._enableNext();}}},_loadInitial:function(){var _f1=this.cfg.getProperty("firstVisible");this._priorLastVisible=this.getLastVisible();if(this._loadInitHandlerEvt){var _f2=this._calculateVisibleExtent(_f1,this._priorLastVisible);var _f3=this._areAllItemsLoaded(1,_f2.end);this._loadInitHandlerEvt.fire(_f2.start,_f2.end,_f3);}if(this.cfg.getProperty("autoPlay")!==0){this._autoPlayTimer=this.startAutoPlay();}this._enableDisableControls();},_calculateAllowableScrollExtent:function(){var _f4=this.cfg.getProperty("scrollBeforeAmount");var _f5=this.cfg.getProperty("scrollAfterAmount");var _f6=this.cfg.getProperty("size");var _f7={start:1-_f4,end:_f6+_f5};return _f7;},_calculateVisibleExtent:function(_f8,end){if(!_f8){_f8=this.cfg.getProperty("firstVisible");end=this.getLastVisible();}var _fa=this.cfg.getProperty("size");_f8=_f8<1?1:_f8;end=end>_fa?_fa:end;var _fb={start:_f8,end:end};this._firstItemRevealed=-1;this._lastItemRevealed=-1;if(this._isExtraRevealed()){if(_f8>1){this._firstItemRevealed=_f8-1;_fb.start=this._firstItemRevealed;}if(end<_fa){this._lastItemRevealed=end+1;_fb.end=this._lastItemRevealed;}}return _fb;},_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(obj){if(null==obj){return false;}if("undefined"==typeof (obj)){return false;}return true;}};var handlePrevButtonState=function(_fd,_fe){var _ff=_fe[0];var _100=_fe[1];if(_ff){YAHOO.util.Dom.removeClass(_100,"prev-null");}else{YAHOO.util.Dom.addClass(_100,"prev-null");}};var handleNextButtonState=function(type,args){var _103=args[0];var _104=args[1];if(_103){YAHOO.util.Dom.removeClass(_104,"next-null");}else{YAHOO.util.Dom.addClass(_104,"next-null");}};var carousel;var loadInitialItems=function(type,args){spotlight(this);};