(function(){var p;YAHOO.widget.Carousel=function(S,R){YAHOO.log("Component creation",p);YAHOO.widget.Carousel.superclass.constructor.call(this,S,R)};var u=YAHOO.widget.Carousel,E=YAHOO.util.Dom,C=YAHOO.util.Event,P=YAHOO.lang;p="Carousel";var t={},f="afterScroll",G="allItemsRemoved",B="beforeHide",j="beforePageChange",I="beforeScroll",y="beforeShow",b="blur",x="focus",A="hide",s="itemAdded",O="itemRemoved",q="itemReplaced",c="itemSelected",l="loadItems",i="navigationStateChange",H="pageChange",h="render",v="show",z="startAutoPlay",Q="stopAutoPlay",k="uiUpdate";function g(R,S){var T;for(T in S){if(S.hasOwnProperty(T)){E.setStyle(R,T,S[T])}}}function w(S,R){var T=document.createElement(S);R=R||{};if(R.className){E.addClass(T,R.className)}if(R.styles){g(T,R.styles)}if(R.parent){R.parent.appendChild(T)}if(R.id){T.setAttribute("id",R.id)}if(R.content){if(R.content.nodeName){T.appendChild(R.content)}else{T.innerHTML=R.content}}return T}function D(T,S,R){var V;if(!T){return 0}function U(Y,X){var Z;if(X=="marginRight"&&YAHOO.env.ua.webkit){Z=parseInt(E.getStyle(Y,"marginLeft"),10)}else{Z=parseInt(E.getStyle(Y,X),10)}return P.isNumber(Z)?Z:0}function W(Y,X){var Z;if(X=="marginRight"&&YAHOO.env.ua.webkit){Z=parseFloat(E.getStyle(Y,"marginLeft"))}else{Z=parseFloat(E.getStyle(Y,X))}return P.isNumber(Z)?Z:0}if(typeof R=="undefined"){R="int"}switch(S){case"height":V=T.offsetHeight;if(V>0){V+=U(T,"marginTop")+U(T,"marginBottom")}else{V=W(T,"height")+U(T,"marginTop")+U(T,"marginBottom")+U(T,"borderTopWidth")+U(T,"borderBottomWidth")+U(T,"paddingTop")+U(T,"paddingBottom")}break;case"width":V=T.offsetWidth;if(V>0){V+=U(T,"marginLeft")+U(T,"marginRight")}else{V=W(T,"width")+U(T,"marginLeft")+U(T,"marginRight")+U(T,"borderLeftWidth")+U(T,"borderRightWidth")+U(T,"paddingLeft")+U(T,"paddingRight")}break;default:if(R=="int"){V=U(T,S)}else{if(R=="float"){V=W(T,S)}else{V=E.getStyle(T,S)}}break}return V}function o(W){var U=this,X,T,S=0,V=U.get("firstVisible"),R=false;if(U._itemsTable.numItems===0){return 0}T=U._itemsTable.items[V]||U._itemsTable.loading[V];if(P.isUndefined(T)){return 0}X=E.get(T.id);if(typeof W=="undefined"){R=U.get("isVertical")}else{R=W=="height"}if(this._itemAttrCache[W]){return this._itemAttrCache[W]}if(R){S=D(X,"height")}else{S=D(X,"width")}this._itemAttrCache[W]=S;return S}function n(){var S=this,T,R;T=S.get("isVertical");R=o.call(S,T?"height":"width");return(R*S.get("revealAmount")/100)}function M(W){var ah=this,Z=ah._cols,V=ah._rows,U,ac,ab,T,X,ad,aj=0,ae,S,ag,aa={},Y=0,ai=ah._itemsTable,af=ai.items,R=ai.loading;ab=ah.get("isVertical");ac=o.call(ah,ab?"height":"width");ac=550;ag=n.call(ah);while(Y<W){if(!af[Y]&&!R[Y]){aj++}Y++}W-=aj;if(V){U=this.getPageForItem(W);if(ab){X=Math.floor(W/Z);aj=X;ae=aj*ac;aa.top=(ae+ag)+"px";ac=o.call(ah,"width");T=W%Z;aj=T;S=aj*ac;aa.left=S+"px"}else{T=W%Z;ad=(U-1)*Z;aj=T+ad;S=aj*ac;aa.left=(S+ag)+"px";ac=o.call(ah,"height");X=Math.floor(W/Z);ad=(U-1)*V;aj=X-ad;ae=aj*ac;aa.top=ae+"px"}}else{if(ab){aa.left=0;aa.top=((W*ac)+ag)+"px"}else{aa.top=0;aa.left=((W*ac)+ag)+"px"}}return aa}function d(S){var R=this.get("numVisible");return Math.floor(S/R)*R}function J(T){var S=0,R=0;S=o.call(this);R=S*T;return R}function F(R,S){S.scrollPageBackward();C.preventDefault(R)}function K(R,S){S.scrollPageForward();C.preventDefault(R)}function N(W,S){var aa=this,ab=aa.CLASSES,R,Y=aa._firstItem,T=aa.get("isCircular"),X=aa.get("numItems"),Z=aa.get("numVisible"),V=S,U=Y+Z-1;if(V>=0&&V<X){if(!P.isUndefined(aa._itemsTable.items[V])){R=E.get(aa._itemsTable.items[V].id);if(R){E.removeClass(R,ab.SELECTED_ITEM)}}}if(P.isNumber(W)){W=parseInt(W,10);W=P.isNumber(W)?W:0}else{W=Y}if(P.isUndefined(aa._itemsTable.items[W])){W=d.call(aa,W);aa.scrollTo(W)}if(!P.isUndefined(aa._itemsTable.items[W])){R=E.get(aa._itemsTable.items[W].id);if(R){E.addClass(R,ab.SELECTED_ITEM)}}if(W<Y||W>U){W=d.call(aa,W);aa.scrollTo(W)}}function L(){var T=false,W=this,S=W.CLASSES,V,R,U;if(!W._hasRendered){return}R=W.get("navigation");U=W._firstItem+W.get("numVisible");if(R.prev){if(W.get("numItems")===0||W._firstItem===0){if(W.get("numItems")===0||!W.get("isCircular")){C.removeListener(R.prev,"click",F);E.addClass(R.prev,S.FIRST_NAV_DISABLED);for(V=0;V<W._navBtns.prev.length;V++){W._navBtns.prev[V].setAttribute("disabled","true")}W._prevEnabled=false}else{T=!W._prevEnabled}}else{T=!W._prevEnabled}if(T){C.on(R.prev,"click",F,W);E.removeClass(R.prev,S.FIRST_NAV_DISABLED);for(V=0;V<W._navBtns.prev.length;V++){W._navBtns.prev[V].removeAttribute("disabled")}W._prevEnabled=true}}T=false;if(R.next){if(U>=W.get("numItems")){if(!W.get("isCircular")){C.removeListener(R.next,"click",K);E.addClass(R.next,S.DISABLED);for(V=0;V<W._navBtns.next.length;V++){W._navBtns.next[V].setAttribute("disabled","true")}W._nextEnabled=false}else{T=!W._nextEnabled}}else{T=!W._nextEnabled}if(T){C.on(R.next,"click",K,W);E.removeClass(R.next,S.DISABLED);for(V=0;V<W._navBtns.next.length;V++){W._navBtns.next[V].removeAttribute("disabled")}W._nextEnabled=true}}W.fireEvent(i,{next:W._nextEnabled,prev:W._prevEnabled})}function r(T){var U=this,R,S;if(!U._hasRendered){return}S=U.get("numVisible");if(!P.isNumber(T)){T=Math.floor(U.get("selectedItem")/S)}R=Math.ceil(U.get("numItems")/S);U._pages.num=R;U._pages.cur=T;if(R>U.CONFIG.MAX_PAGER_BUTTONS){U._updatePagerMenu()}else{U._updatePagerButtons()}}function m(R,S){switch(S){case"height":return D(R,"marginTop")+D(R,"marginBottom")+D(R,"paddingTop")+D(R,"paddingBottom")+D(R,"borderTopWidth")+D(R,"borderBottomWidth");case"width":return D(R,"marginLeft")+D(R,"marginRight")+D(R,"paddingLeft")+D(R,"paddingRight")+D(R,"borderLeftWidth")+D(R,"borderRightWidth");default:break}return D(R,S)}function a(S){var R=this;if(!P.isObject(S)){return}switch(S.ev){case s:R._syncUiForItemAdd(S);break;case O:R._syncUiForItemRemove(S);break;case q:R._syncUiForItemReplace(S);break;case l:R._syncUiForLazyLoading(S);break}R.fireEvent(k)}function e(U,S){var W=this,V=W.get("currentPage"),T,R=W.get("numVisible");T=parseInt(W._firstItem/R,10);if(T!=V){W.setAttributeConfig("currentPage",{value:T});W.fireEvent(H,T)}if(W.get("selectOnScroll")){if(W.get("selectedItem")!=W._selectedItem){W.set("selectedItem",W._selectedItem)}}clearTimeout(W._autoPlayTimer);delete W._autoPlayTimer;if(W.isAutoPlayOn()){W.startAutoPlay()}W.fireEvent(f,{first:W._firstItem,last:S},W)}u.getById=function(R){return t[R]?t[R].object:false};YAHOO.extend(u,YAHOO.util.Element,{_rows:null,_cols:null,_animObj:null,_carouselEl:null,_clipEl:null,_firstItem:0,_hasFocus:false,_hasRendered:false,_isAnimationInProgress:false,_isAutoPlayInProgress:false,_itemsTable:null,_navBtns:null,_navEl:null,_nextEnabled:true,_pages:null,_pagination:{},_prevEnabled:true,_recomputeSize:true,_itemAttrCache:{},CLASSES:{BUTTON:"yui-carousel-button",CAROUSEL:"yui-carousel",CAROUSEL_EL:"yui-carousel-element",CONTAINER:"yui-carousel-container",CONTENT:"yui-carousel-content",DISABLED:"yui-carousel-button-disabled",FIRST_NAV:" yui-carousel-first-button",FIRST_NAV_DISABLED:"yui-carousel-first-button-disabled",FIRST_PAGE:"yui-carousel-nav-first-page",FOCUSSED_BUTTON:"yui-carousel-button-focus",HORIZONTAL:"yui-carousel-horizontal",ITEM_LOADING:"yui-carousel-item-loading",MIN_WIDTH:"yui-carousel-min-width",NAVIGATION:"yui-carousel-nav",NEXT_NAV:" yui-carousel-next-button",NEXT_PAGE:"yui-carousel-next",NAV_CONTAINER:"yui-carousel-buttons",PAGER_ITEM:"yui-carousel-pager-item",PAGINATION:"yui-carousel-pagination",PAGE_FOCUS:"yui-carousel-nav-page-focus",PREV_PAGE:"yui-carousel-prev",SELECTED_ITEM:"yui-carousel-item-selected",SELECTED_NAV:"yui-carousel-nav-page-selected",VERTICAL:"yui-carousel-vertical",MULTI_ROW:"yui-carousel-multi-row",ROW:"yui-carousel-row",VERTICAL_CONTAINER:"yui-carousel-vertical-container",VISIBLE:"yui-carousel-visible"},CONFIG:{FIRST_VISIBLE:0,HORZ_MIN_WIDTH:180,MAX_PAGER_BUTTONS:5,VERT_MIN_WIDTH:115,NUM_VISIBLE:3},STRINGS:{ITEM_LOADING_CONTENT:"Loading",NEXT_BUTTON_TEXT:"Next Page",PAGER_PREFIX_TEXT:"Go to page ",PREVIOUS_BUTTON_TEXT:"Previous Page"},addItem:function(Y,S){var X=this,U,T,R,Z=0,W,V=X.get("numItems");if(!Y){return false}if(P.isString(Y)||Y.nodeName){T=Y.nodeName?Y.innerHTML:Y}else{if(P.isObject(Y)){T=Y.content}else{YAHOO.log("Invalid argument to addItem","error",p);return false}}U=Y.className||"";R=Y.id?Y.id:E.generateId();if(P.isUndefined(S)){X._itemsTable.items.push({item:T,className:U,id:R});W=X._itemsTable.items.length-1}else{if(S<0||S>V){YAHOO.log("Index out of bounds","error",p);return false}if(!X._itemsTable.items[S]){X._itemsTable.items[S]=undefined;Z=1}X._itemsTable.items.splice(S,Z,{item:T,className:U,id:R})}X._itemsTable.numItems++;if(V<X._itemsTable.items.length){X.set("numItems",X._itemsTable.items.length)}X.fireEvent(s,{pos:S,ev:s,newPos:W});return true},addItems:function(R){var S,U,T=true;if(!P.isArray(R)){return false}for(S=0,U=R.length;S<U;S++){if(this.addItem(R[S][0],R[S][1])===false){T=false}}return T},blur:function(){this._carouselEl.blur();this.fireEvent(b)},clearItems:function(){var R=this,S=R.get("numItems");while(S>0){if(!R.removeItem(0)){YAHOO.log("Item could not be removed - missing?","warn",p)}if(R._itemsTable.numItems===0){R.set("numItems",0);break}S--}R.fireEvent(G)},focus:function(){var aa=this,V,W,X,U,Z,ab,S,T,R;if(!aa._hasRendered){return}if(aa.isAnimating()){return}R=aa.get("selectedItem");ab=aa.get("numVisible");S=aa.get("selectOnScroll");T=(R>=0)?aa.getItem(R):null;V=aa.get("firstVisible");Z=V+ab-1;X=(R<V||R>Z);W=(T&&T.id)?E.get(T.id):null;U=aa._itemsTable;if(!S&&X){W=(U&&U.items&&U.items[V])?E.get(U.items[V].id):null}if(W){try{W.focus()}catch(Y){}}aa.fireEvent(x)},hide:function(){var R=this;if(R.fireEvent(B)!==false){R.removeClass(R.CLASSES.VISIBLE);R.fireEvent(A)}},init:function(U,S){var V=this,R=U,W=false,T;if(!U){YAHOO.log(U+" is neither an HTML element, nor a string","error",p);return}V._hasRendered=false;V._navBtns={prev:[],next:[]};V._pages={el:null,num:0,cur:0};V._pagination={};V._itemAttrCache={};V._itemsTable={loading:{},numItems:0,items:[],size:0};YAHOO.log("Component initialization",p);if(P.isString(U)){U=E.get(U)}else{if(!U.nodeName){YAHOO.log(U+" is neither an HTML element, nor a string","error",p);return}}u.superclass.init.call(V,U,S);T=V.get("selectedItem");if(T>0){V.set("firstVisible",d.call(V,T))}if(U){if(!U.id){U.setAttribute("id",E.generateId())}W=V._parseCarousel(U);if(!W){V._createCarousel(R)}}else{U=V._createCarousel(R)}R=U.id;V.initEvents();if(W){V._parseCarouselItems()}if(T>0){N.call(V,T,0)}if(!S||typeof S.isVertical=="undefined"){V.set("isVertical",false)}V._parseCarouselNavigation(U);V._navEl=V._setupCarouselNavigation();t[R]={object:V};V._loadItems(Math.min(V.get("firstVisible")+V.get("numVisible"),V.get("numItems"))-1)},initAttributes:function(R){var S=this;R=R||{};u.superclass.initAttributes.call(S,R);S.setAttributeConfig("carouselEl",{validator:P.isString,value:R.carouselEl||"OL"});S.setAttributeConfig("carouselItemEl",{validator:P.isString,value:R.carouselItemEl||"LI"});S.setAttributeConfig("currentPage",{readOnly:true,value:0});S.setAttributeConfig("firstVisible",{method:S._setFirstVisible,validator:S._validateFirstVisible,value:R.firstVisible||S.CONFIG.FIRST_VISIBLE});S.setAttributeConfig("selectOnScroll",{validator:P.isBoolean,value:R.selectOnScroll||true});S.setAttributeConfig("numVisible",{setter:S._numVisibleSetter,method:S._setNumVisible,validator:S._validateNumVisible,value:R.numVisible||S.CONFIG.NUM_VISIBLE});S.setAttributeConfig("numItems",{method:S._setNumItems,validator:S._validateNumItems,value:S._itemsTable.numItems});S.setAttributeConfig("scrollIncrement",{validator:S._validateScrollIncrement,value:R.scrollIncrement||1});S.setAttributeConfig("selectedItem",{setter:S._selectedItemSetter,method:S._setSelectedItem,validator:P.isNumber,value:-1});S.setAttributeConfig("revealAmount",{method:S._setRevealAmount,validator:S._validateRevealAmount,value:R.revealAmount||0});S.setAttributeConfig("isCircular",{validator:P.isBoolean,value:R.isCircular||false});S.setAttributeConfig("isVertical",{method:S._setOrientation,validator:P.isBoolean,value:R.isVertical||false});S.setAttributeConfig("navigation",{method:S._setNavigation,validator:S._validateNavigation,value:R.navigation||{prev:null,next:null,page:null}});S.setAttributeConfig("animation",{validator:S._validateAnimation,value:R.animation||{speed:0,effect:null}});S.setAttributeConfig("autoPlay",{validator:P.isNumber,value:R.autoPlay||0});S.setAttributeConfig("autoPlayInterval",{validator:P.isNumber,value:R.autoPlayInterval||0});S.setAttributeConfig("numPages",{readOnly:true,getter:S._getNumPages});S.setAttributeConfig("lastVisible",{readOnly:true,getter:S._getLastVisible})},initEvents:function(){var T=this,S=T.CLASSES,R;T.on("keydown",T._keyboardEventHandler);T.on(f,L);T.on(s,a);T.on(O,a);T.on(q,a);T.on(c,function(){if(T._hasFocus){T.focus()}});T.on(l,a);T.on(G,function(U){T.scrollTo(0);L.call(T);r.call(T)});T.on(H,r,T);T.on(h,function(U){if(T.get("selectedItem")===null||T.get("selectedItem")<=0){T.set("selectedItem",T.get("firstVisible"))}L.call(T,U);r.call(T,U);T._setClipContainerSize();T.show()});T.on("selectedItemChange",function(U){N.call(T,U.newValue,U.prevValue);if(U.newValue>=0){T._updateTabIndex(T.getElementForItem(U.newValue))}T.fireEvent(c,U.newValue)});T.on(k,function(U){L.call(T,U);r.call(T,U)});T.on("firstVisibleChange",function(U){if(!T.get("selectOnScroll")){if(U.newValue>=0){T._updateTabIndex(T.getElementForItem(U.newValue))}}});T.on("click",function(U){if(T.isAutoPlayOn()){T.stopAutoPlay()}T._itemClickHandler(U);T._pagerClickHandler(U)});C.onFocus(T.get("element"),function(U,W){var V=C.getTarget(U);if(V&&V.nodeName.toUpperCase()=="A"&&E.getAncestorByClassName(V,S.NAVIGATION)){if(R){E.removeClass(R,S.PAGE_FOCUS)}R=V.parentNode;E.addClass(R,S.PAGE_FOCUS)}else{if(R){E.removeClass(R,S.PAGE_FOCUS)}}W._hasFocus=true;W._updateNavButtons(C.getTarget(U),true)},T);C.onBlur(T.get("element"),function(U,V){V._hasFocus=false;V._updateNavButtons(C.getTarget(U),false)},T)},isAnimating:function(){return this._isAnimationInProgress},isAutoPlayOn:function(){return this._isAutoPlayInProgress},getElementForItem:function(R){var S=this;if(R<0||R>=S.get("numItems")){YAHOO.log("Index out of bounds","error",p);return null}if(S._itemsTable.items[R]){return E.get(S._itemsTable.items[R].id)}return null},getElementForItems:function(){var T=this,S=[],R;for(R=0;R<T._itemsTable.numItems;R++){S.push(T.getElementForItem(R))}return S},getItem:function(R){var S=this;if(R<0||R>=S.get("numItems")){YAHOO.log("Index out of bounds","error",p);return null}if(S._itemsTable.numItems>R){if(!P.isUndefined(S._itemsTable.items[R])){return S._itemsTable.items[R]}}return null},getItems:function(){return this._itemsTable.items},getLoadingItems:function(){return this._itemsTable.loading},getRows:function(){return this._rows},getCols:function(){return this._cols},getItemPositionById:function(W){var U=this,V=U.get("numItems"),S=0,R=U._itemsTable.items,T;while(S<V){T=R[S]||{};if(T.id==W){return S}S++}return -1},getVisibleItems:function(){var T=this,R=T.get("firstVisible"),U=R+T.get("numVisible"),S=[];while(R<U){S.push(T.getElementForItem(R));R++}return S},removeItem:function(S){var U=this,T,R=U.get("numItems");if(S<0||S>=R){YAHOO.log("Index out of bounds","error",p);return false}T=U._itemsTable.items.splice(S,1);if(T&&T.length==1){U._itemsTable.numItems--;U.set("numItems",R-1);U.fireEvent(O,{item:T[0],pos:S,ev:O});return true}return false},replaceItem:function(Z,U){var Y=this,W,V,T,X=Y.get("numItems"),S,R=Z;if(!Z){return false}if(P.isString(Z)||Z.nodeName){V=Z.nodeName?Z.innerHTML:Z}else{if(P.isObject(Z)){V=Z.content}else{YAHOO.log("Invalid argument to replaceItem","error",p);return false}}if(P.isUndefined(U)){YAHOO.log("Index must be defined for replaceItem","error",p);return false}else{if(U<0||U>=X){YAHOO.log("Index out of bounds in replaceItem","error",p);return false}S=Y._itemsTable.items[U];if(!S){S=Y._itemsTable.loading[U];Y._itemsTable.items[U]=undefined}Y._itemsTable.items.splice(U,1,{item:V,className:Z.className||"",id:E.generateId()});R=Y._itemsTable.items[U]}Y.fireEvent(q,{newItem:R,oldItem:S,pos:U,ev:q});return true},replaceItems:function(R){var S,U,T=true;if(!P.isArray(R)){return false}for(S=0,U=R.length;S<U;S++){if(this.replaceItem(R[S][0],R[S][1])===false){T=false}}return T},render:function(S){var U=this,R=U.CLASSES,T=U._rows;U.addClass(R.CAROUSEL);if(!U._clipEl){U._clipEl=U._createCarouselClip();U._clipEl.appendChild(U._carouselEl)}if(S){U.appendChild(U._clipEl);U.appendTo(S)}else{if(!E.inDocument(U.get("element"))){YAHOO.log("Nothing to render. The container should be within the document if appendTo is not specified","error",p);return false}U.appendChild(U._clipEl)}if(T){E.addClass(U._clipEl,R.MULTI_ROW)}if(U.get("isVertical")){U.addClass(R.VERTICAL)}else{U.addClass(R.HORIZONTAL)}if(U.get("numItems")<1){YAHOO.log("No items in the Carousel to render","warn",p);return false}U._refreshUi();return true},scrollBackward:function(){var R=this;R.scrollTo(R._firstItem-R.get("scrollIncrement"))},scrollForward:function(){var R=this;R.scrollTo(R._firstItem+R.get("scrollIncrement"))},scrollPageBackward:function(){var T=this,U=T.get("isVertical"),S=T._cols,R=T._firstItem-T.get("numVisible");if(R<0){if(S){R=T._firstItem-S}}if(T.get("selectOnScroll")){T._selectedItem=T._getSelectedItem(R)}T.scrollTo(R)},scrollPageForward:function(){var S=this,R=S._firstItem+S.get("numVisible");if(R>S.get("numItems")){R=0}if(S.get("selectOnScroll")){S._selectedItem=S._getSelectedItem(R)}S.scrollTo(R)},scrollTo:function(al,ai){var ah=this,U,aj,Z,ab,ac,am,an,ao,ad,aa,V,af,S,W,T,X,ae,Y,ap,ak=ah._itemsTable,ag=ak.items,R=ak.loading;if(P.isUndefined(al)||al==ah._firstItem||ah.isAnimating()){return}aj=ah.get("animation");Z=ah.get("isCircular");ab=ah.get("isVertical");aa=ah._cols;V=ah._rows;ao=ah._firstItem;af=ah.get("numItems");S=ah.get("numVisible");T=ah.get("currentPage");ap=function(){if(ah.isAutoPlayOn()){ah.stopAutoPlay()}};if(al<0){if(Z){al=af+al}else{ap.call(ah);return}}else{if(af>0&&al>af-1){if(ah.get("isCircular")){al=af-al}else{ap.call(ah);return}}}if(isNaN(al)){return}an=(ah._firstItem>al)?"backward":"forward";ae=ao+S;ae=(ae>af-1)?af-1:ae;X=ah.fireEvent(I,{dir:an,first:ao,last:ae});if(X===false){return}ah.fireEvent(j,{page:T});ad=al+S-1;ah._loadItems(ad>af-1?af-1:ad);am=0-al;if(V){if(ab){am=parseInt(am/aa,10)}else{am=parseInt(am/V,10)}}Y=0;while(am<0&&Y<al+S-1&&Y<af){if(!ag[Y]&&!R[Y]){am++}Y+=V?V:1}ah._firstItem=al;ah.set("firstVisible",al);YAHOO.log("Scrolling to "+al+" delta = "+am,p);ae=al+S;ae=(ae>af-1)?af-1:ae;W=J.call(ah,am);YAHOO.log("Scroll offset = "+W,p);U=aj.speed>0;if(U){ah._animateAndSetCarouselOffset(W,al,ae,ai)}else{ah._setCarouselOffset(W);e.call(ah,al,ae)}},getPageForItem:function(R){return Math.ceil((R+1)/parseInt(this.get("numVisible"),10))},getFirstVisibleOnPage:function(R){return(R-1)*this.get("numVisible")},selectPreviousItem:function(){var T=this,S=0,R=T.get("selectedItem");if(R==this._firstItem){S=R-T.get("numVisible");T._selectedItem=T._getSelectedItem(R-1);T.scrollTo(S)}else{S=T.get("selectedItem")-T.get("scrollIncrement");T.set("selectedItem",T._getSelectedItem(S))}},selectNextItem:function(){var S=this,R=0;R=S.get("selectedItem")+S.get("scrollIncrement");S.set("selectedItem",S._getSelectedItem(R))},show:function(){var S=this,R=S.CLASSES;if(S.fireEvent(y)!==false){S.addClass(R.VISIBLE);S.fireEvent(v)}},startAutoPlay:function(){var R=this,S;if(P.isUndefined(R._autoPlayTimer)){S=R.get("autoPlayInterval");if(S<=0){return}R._isAutoPlayInProgress=true;R.fireEvent(z);R._autoPlayTimer=setTimeout(function(){R._autoScroll()},S)}},stopAutoPlay:function(){var R=this;if(!P.isUndefined(R._autoPlayTimer)){clearTimeout(R._autoPlayTimer);delete R._autoPlayTimer;R._isAutoPlayInProgress=false;R.fireEvent(Q)}},updatePagination:function(){var Z=this,X=Z._pagination;if(!X.el){return false}var W=Z.get("numItems"),aa=Z.get("numVisible"),U=Z.get("firstVisible")+1,V=Z.get("currentPage")+1,R=Z.get("numPages"),T={numVisible:aa,numPages:R,numItems:W,selectedItem:Z.get("selectedItem")+1,currentPage:V,firstVisible:U,lastVisible:Z.get("lastVisible")+1},S=X.callback||{},Y=S.scope&&S.obj?S.obj:Z;X.el.innerHTML=P.isFunction(S.fn)?S.fn.apply(Y,[X.template,T]):YAHOO.lang.substitute(X.template,T)},registerPagination:function(S,U,R){var T=this;T._pagination.template=S;T._pagination.callback=R||{};if(!T._pagination.el){T._pagination.el=w("DIV",{className:T.CLASSES.PAGINATION});if(U=="before"){T._navEl.insertBefore(T._pagination.el,T._navEl.firstChild)}else{T._navEl.appendChild(T._pagination.el)}T.on("itemSelected",T.updatePagination);T.on("pageChange",T.updatePagination)}T.updatePagination()},toString:function(){return p+(this.get?" (#"+this.get("id")+")":"")},_animateAndSetCarouselOffset:function(W,U,S){var V=this,T=V.get("animation"),R=null;if(V.get("isVertical")){R=new YAHOO.util.Motion(V._carouselEl,{top:{to:W}},T.speed,T.effect)}else{R=new YAHOO.util.Motion(V._carouselEl,{left:{to:W}},T.speed,T.effect)}V._isAnimationInProgress=true;R.onComplete.subscribe(V._animationCompleteHandler,{scope:V,item:U,last:S});R.animate()},_animationCompleteHandler:function(R,S,T){T.scope._isAnimationInProgress=false;e.call(T.scope,T.item,T.last)},_autoScroll:function(){var S=this,T=S._firstItem,R;if(T>=S.get("numItems")-1){if(S.get("isCircular")){R=0}else{S.stopAutoPlay()}}else{R=T+S.get("numVisible")}S._selectedItem=S._getSelectedItem(R);S.scrollTo.call(S,R)},_createCarousel:function(S){var U=this,R=U.CLASSES,T=E.get(S);if(!T){T=w("DIV",{className:R.CAROUSEL,id:S})}if(!U._carouselEl){U._carouselEl=w(U.get("carouselEl"),{className:R.CAROUSEL_EL})}return T},_createCarouselClip:function(){return w("DIV",{className:this.CLASSES.CONTENT})},_createCarouselItem:function(U){var R,T=this,S=M.call(T,U.pos);return w(T.get("carouselItemEl"),{className:U.className,styles:U.styles,content:U.content,id:U.id})},_getValidIndex:function(T){var W=this,R=W.get("isCircular"),U=W.get("numItems"),V=W.get("numVisible"),S=U-1;if(T<0){T=R?Math.ceil(U/V)*V+T:0}else{if(T>S){T=R?0:S}}return T},_getSelectedItem:function(V){var U=this,R=U.get("isCircular"),T=U.get("numItems"),S=T-1;if(V<0){if(R){V=T+V}else{V=U.get("selectedItem")}}else{if(V>S){if(R){V=V-T}else{V=U.get("selectedItem")}}}return V},_itemClickHandler:function(V){var Y=this,W=Y.get("carouselItemEl"),S=Y.get("element"),T,U,X=C.getTarget(V),R=X.tagName.toUpperCase();if(R==="INPUT"||R==="SELECT"||R==="TEXTAREA"){return}while(X&&X!=S&&X.id!=Y._carouselEl){T=X.nodeName;if(T.toUpperCase()==W){break}X=X.parentNode}if((U=Y.getItemPositionById(X.id))>=0){YAHOO.log("Setting selection to "+U,p);Y.set("selectedItem",Y._getSelectedItem(U));Y.focus()}},_keyboardEventHandler:function(T){var V=this,S=C.getCharCode(T),U=C.getTarget(T),R=false;if(V.isAnimating()||U.tagName.toUpperCase()==="SELECT"){return}switch(S){case 37:case 38:V.selectPreviousItem();R=true;break;case 39:case 40:V.selectNextItem();R=true;break;case 33:V.scrollPageBackward();R=true;break;case 34:V.scrollPageForward();R=true;break}if(R){if(V.isAutoPlayOn()){V.stopAutoPlay()}C.preventDefault(T)}},_loadItems:function(T){var W=this,S=W.get("numItems"),U=W.get("numVisible"),V=W.get("revealAmount"),X=W._itemsTable.items.length,R=W.get("lastVisible");if(X>T&&T+1>=U){X=T%U||T==R?T-T%U:T-U+1}if(V&&T<S-1){T++}if(T>=X&&(!W.getItem(X)||!W.getItem(T))){W.fireEvent(l,{ev:l,first:X,last:T,num:T-X+1})}},_pagerChangeHandler:function(S){var V=this,U=C.getTarget(S),T=U.value,R;if(T){R=V.getFirstVisibleOnPage(T);V._selectedItem=R;V.scrollTo(R);V.focus()}},_pagerClickHandler:function(X){var Z=this,T=Z.CLASSES,U=C.getTarget(X),S=U.nodeName.toUpperCase(),R,W,V,Y;if(E.hasClass(U,T.PAGER_ITEM)||E.hasClass(U.parentNode,T.PAGER_ITEM)){if(S=="EM"){U=U.parentNode}R=U.href;W=R.lastIndexOf("#");V=parseInt(R.substring(W+1),10);if(V!=-1){Y=Z.getFirstVisibleOnPage(V);Z._selectedItem=Y;Z.scrollTo(Y);Z.focus()}C.preventDefault(X)}},_parseCarousel:function(T){var W=this,X,R,S,V,U;R=W.CLASSES;S=W.get("carouselEl");V=false;for(X=T.firstChild;X;X=X.nextSibling){if(X.nodeType==1){U=X.nodeName;if(U.toUpperCase()==S){W._carouselEl=X;E.addClass(W._carouselEl,W.CLASSES.CAROUSEL_EL);YAHOO.log("Found Carousel - "+U+(X.id?" (#"+X.id+")":""),p);V=true}}}return V},_parseCarouselItems:function(){var Y=this,aa=Y.CLASSES,V=0,Z,R,T,U,S,W=Y.get("firstVisible"),X=Y._carouselEl;Z=Y._rows;T=Y.get("carouselItemEl");for(R=X.firstChild;R;R=R.nextSibling){if(R.nodeType==1){S=R.nodeName;if(S.toUpperCase()==T){if(R.id){U=R.id}else{U=E.generateId();R.setAttribute("id",U)}Y.addItem(R,W);W++}}}},_parseCarouselNavigation:function(X){var Y=this,W,Z=Y.CLASSES,S,V,U,R,T=false;R=E.getElementsByClassName(Z.PREV_PAGE,"*",X);if(R.length>0){for(V in R){if(R.hasOwnProperty(V)){S=R[V];YAHOO.log("Found Carousel previous page navigation - "+S+(S.id?" (#"+S.id+")":""),p);if(S.nodeName=="INPUT"||S.nodeName=="BUTTON"||S.nodeName=="A"){Y._navBtns.prev.push(S)}else{U=S.getElementsByTagName("INPUT");if(P.isArray(U)&&U.length>0){Y._navBtns.prev.push(U[0])}else{U=S.getElementsByTagName("BUTTON");if(P.isArray(U)&&U.length>0){Y._navBtns.prev.push(U[0])}}}}}W={prev:R}}R=E.getElementsByClassName(Z.NEXT_PAGE,"*",X);if(R.length>0){for(V in R){if(R.hasOwnProperty(V)){S=R[V];YAHOO.log("Found Carousel next page navigation - "+S+(S.id?" (#"+S.id+")":""),p);if(S.nodeName=="INPUT"||S.nodeName=="BUTTON"||S.nodeName=="A"){Y._navBtns.next.push(S)}else{U=S.getElementsByTagName("INPUT");if(P.isArray(U)&&U.length>0){Y._navBtns.next.push(U[0])}else{U=S.getElementsByTagName("BUTTON");if(P.isArray(U)&&U.length>0){Y._navBtns.next.push(U[0])}}}}}if(W){W.next=R}else{W={next:R}}}if(W){Y.set("navigation",W);T=true}return T},_refreshUi:function(){var V=this,S,W=V.get("isVertical"),Y=V.get("firstVisible"),T,X,R,U;if(V._itemsTable.numItems<1){return}U=o.call(V,W?"height":"width");T=V._itemsTable.items[Y].id;U=W?D(T,"width"):D(T,"height");U=264;E.setStyle(V._carouselEl,W?"width":"height",U+"px");V._hasRendered=true;V.fireEvent(h)},_setCarouselOffset:function(T){var R=this,S;S=R.get("isVertical")?"top":"left";E.setStyle(R._carouselEl,S,T+"px")},_setupCarouselNavigation:function(){var W=this,U,S,R,Y,V,X,T;R=W.CLASSES;V=E.getElementsByClassName(R.NAVIGATION,"DIV",W.get("element"));if(V.length===0){V=w("DIV",{className:R.NAVIGATION});W.insertBefore(V,E.getFirstChild(W.get("element")))}else{V=V[0]}W._pages.el=w("UL");V.appendChild(W._pages.el);Y=W.get("navigation");if(P.isString(Y.prev)||P.isArray(Y.prev)){if(P.isString(Y.prev)){Y.prev=[Y.prev]}for(U in Y.prev){if(Y.prev.hasOwnProperty(U)){W._navBtns.prev.push(E.get(Y.prev[U]))}}}else{T=w("SPAN",{className:R.BUTTON+R.FIRST_NAV});E.setStyle(T,"visibility","visible");U=E.generateId();T.innerHTML='<button type="button" id="'+U+'" name="'+W.STRINGS.PREVIOUS_BUTTON_TEXT+'">'+W.STRINGS.PREVIOUS_BUTTON_TEXT+"</button>";V.appendChild(T);U=E.get(U);W._navBtns.prev=[U];S={prev:[T]}}if(P.isString(Y.next)||P.isArray(Y.next)){if(P.isString(Y.next)){Y.next=[Y.next]}for(U in Y.next){if(Y.next.hasOwnProperty(U)){W._navBtns.next.push(E.get(Y.next[U]))}}}else{X=w("SPAN",{className:R.BUTTON+R.NEXT_NAV});E.setStyle(X,"visibility","visible");U=E.generateId();X.innerHTML='<button type="button" id="'+U+'" name="'+W.STRINGS.NEXT_BUTTON_TEXT+'">'+W.STRINGS.NEXT_BUTTON_TEXT+"</button>";V.appendChild(X);U=E.get(U);W._navBtns.next=[U];if(S){S.next=[X]}else{S={next:[X]}}}if(S){W.set("navigation",S)}return V},_setClipContainerSize:function(R,T){var Z=this,X=Z.get("isVertical"),ab=Z._rows,V=Z._cols,Y=Z.get("revealAmount"),S=o.call(Z,"height"),U=o.call(Z,"width"),aa,W;R=R||Z._clipEl;if(ab){aa=S*ab;W=U*V}else{T=T||Z.get("numVisible");if(X){aa=S*T}else{W=U*T}}Z._recomputeSize=(aa===0);if(Z._recomputeSize){Z._hasRendered=false;return}Y=n.call(Z);if(X){aa+=(Y*2)}else{W+=(Y*2)}if(X){aa+=m(Z._carouselEl,"height");E.setStyle(R,"height",aa+"px");if(V){W+=m(Z._carouselEl,"width");E.setStyle(R,"width",W+(0)+"px")}}else{W+=m(Z._carouselEl,"width");W=552;E.setStyle(R,"width",W+"px");if(ab){aa+=m(Z._carouselEl,"height");E.setStyle(R,"height",aa+"px")}}Z._setContainerSize(R)},_setContainerSize:function(S,T){var W=this,R=W.CONFIG,Z=W.CLASSES,V,Y,U,X;V=W.get("isVertical");Y=W._rows;U=W._cols;S=S||W._clipEl;T=T||(V?"height":"width");X=parseFloat(E.getStyle(S,T),10);X=P.isNumber(X)?X:0;if(V){X+=m(W._carouselEl,"height")+D(W._navEl,"height")}else{X+=m(W._carouselEl,"width")}if(!V){if(X<R.HORZ_MIN_WIDTH){X=R.HORZ_MIN_WIDTH;W.addClass(Z.MIN_WIDTH)}}W.setStyle(T,X+"px");if(V){X=o.call(W,"width");if(U){X=X*U}E.setStyle(W._carouselEl,"width",X+"px");if(X<R.VERT_MIN_WIDTH){X=R.VERT_MIN_WIDTH;W.addClass(Z.MIN_WIDTH)}W.setStyle("width",X+"px")}else{if(Y){X=o.call(W,"height");X=X*Y;E.setStyle(W._carouselEl,"height",X+"px")}}},_setFirstVisible:function(S){var R=this;if(S>=0&&S<R.get("numItems")){R.scrollTo(S)}else{S=R.get("firstVisible")}return S},_setNavigation:function(R){var S=this;if(R.prev){C.on(R.prev,"click",F,S)}if(R.next){C.on(R.next,"click",K,S)}},_setNumVisible:function(S){var R=this;R._setClipContainerSize(R._clipEl,S)},_numVisibleSetter:function(T){var S=this,R=T;if(P.isArray(T)){S._cols=T[0];S._rows=T[1];R=T[0]*T[1]}return R},_selectedItemSetter:function(S){var R=this;return(S<R.get("numItems"))?S:0},_setNumItems:function(T){var S=this,R=S._itemsTable.numItems;if(P.isArray(S._itemsTable.items)){if(S._itemsTable.items.length!=R){R=S._itemsTable.items.length;S._itemsTable.numItems=R}}if(T<R){while(R>T){S.removeItem(R-1);R--}}return T},_setOrientation:function(T){var S=this,R=S.CLASSES;if(T){S.replaceClass(R.HORIZONTAL,R.VERTICAL)}else{S.replaceClass(R.VERTICAL,R.HORIZONTAL)}this._itemAttrCache={};return T},_setRevealAmount:function(S){var R=this;if(S>=0&&S<=100){S=parseInt(S,10);S=P.isNumber(S)?S:0;R._setClipContainerSize()}else{S=R.get("revealAmount")}return S},_setSelectedItem:function(R){this._selectedItem=R},_getNumPages:function(){return Math.ceil(parseInt(this.get("numItems"),10)/parseInt(this.get("numVisible"),10))},_getLastVisible:function(){var R=this;return R.get("currentPage")+1==R.get("numPages")?R.get("numItems")-1:R.get("firstVisible")+R.get("numVisible")-1},_syncUiForItemAdd:function(U){var V,aa=this,X=aa._carouselEl,R,ab,T=aa._itemsTable,S,W,Y,Z;W=P.isUndefined(U.pos)?U.newPos||T.numItems-1:U.pos;if(!S){ab=T.items[W]||{};R=aa._createCarouselItem({className:ab.className,styles:ab.styles,content:ab.item,id:ab.id,pos:W});if(P.isUndefined(U.pos)){if(!P.isUndefined(T.loading[W])){S=T.loading[W]}if(S){X.replaceChild(R,S);delete T.loading[W]}else{X.appendChild(R)}}else{if(!P.isUndefined(T.items[U.pos+1])){Y=E.get(T.items[U.pos+1].id)}if(Y){X.insertBefore(R,Y)}else{YAHOO.log("Unable to find sibling","error",p)}}}else{if(P.isUndefined(U.pos)){if(!E.isAncestor(aa._carouselEl,S)){X.appendChild(S)}}else{if(!E.isAncestor(X,S)){if(!P.isUndefined(T.items[U.pos+1])){X.insertBefore(S,E.get(T.items[U.pos+1].id))}}}}if(!aa._hasRendered){aa._refreshUi()}if(aa.get("selectedItem")<0){aa.set("selectedItem",aa.get("firstVisible"))}aa._syncUiItems()},_syncUiForItemReplace:function(X){var W=this,T=W._carouselEl,R=W._itemsTable,Y=X.pos,V=X.newItem,S=X.oldItem,U;U=W._createCarouselItem({className:V.className,styles:V.styles,content:V.item,id:V.id,pos:Y});if(U&&S){C.purgeElement(S,true);T.replaceChild(U,E.get(S.id));if(!P.isUndefined(R.loading[Y])){R.numItems++;delete R.loading[Y]}}if(!W._hasRendered){W._refreshUi()}W._syncUiItems()},_syncUiForItemRemove:function(W){var V=this,R=V._carouselEl,T,U,S,X;S=V.get("numItems");U=W.item;X=W.pos;if(U&&(T=E.get(U.id))){if(T&&E.isAncestor(R,T)){C.purgeElement(T,true);R.removeChild(T)}if(V.get("selectedItem")==X){X=X>=S?S-1:X}}else{YAHOO.log("Unable to find item","warn",p)}V._syncUiItems()},_syncUiForLazyLoading:function(V){var Z=this,X=Z._carouselEl,T=Z._itemsTable,W=T.items.length,Y=T.items[V.last+1],R,S;if(!Y&&V.last<W){S=V.first;do{Y=T.items[S];S++}while(S<W&&!Y)}for(var U=V.first;U<=V.last;U++){if(P.isUndefined(T.loading[U])&&P.isUndefined(T.items[U])){R=Z._createCarouselItem({className:Z.CLASSES.ITEM_LOADING,content:Z.STRINGS.ITEM_LOADING_CONTENT,id:E.generateId(),pos:U});if(R){if(Y){Y=E.get(Y.id);if(Y){X.insertBefore(R,Y)}else{YAHOO.log("Unable to find sibling","error",p)}}else{X.appendChild(R)}}T.loading[U]=R}}Z._syncUiItems()},_syncUiItems:function(){var U,Y=this,W=Y.get("numItems"),T,S=Y._itemsTable,V=S.items,R=S.loading,Z,X;for(T=0;T<W;T++){Z=V[T]||R[T];if(Z&&Z.id){X=M.call(Y,T);Z.styles=Z.styles||{};for(U in X){if(X.hasOwnProperty(U)){Z.styles[U]=X[U]}}g(E.get(Z.id),X)}}},_updateNavButtons:function(V,S){var T,R=this.CLASSES,W,U=V.parentNode;if(!U){return}W=U.parentNode;if(V.nodeName.toUpperCase()=="BUTTON"&&E.hasClass(U,R.BUTTON)){if(S){if(W){T=E.getChildren(W);if(T){E.removeClass(T,R.FOCUSSED_BUTTON)}}E.addClass(U,R.FOCUSSED_BUTTON)}else{E.removeClass(U,R.FOCUSSED_BUTTON)}}},_updatePagerButtons:function(){var Z=this,X=Z.CLASSES,Y=Z._pages.cur,R,W,U,aa,S=Z.get("numVisible"),V=Z._pages.num,T=Z._pages.el;if(V===0||!T){return}E.setStyle(T,"visibility","hidden");while(T.firstChild){T.removeChild(T.firstChild)}for(U=0;U<V;U++){R=document.createElement("LI");if(U===0){E.addClass(R,X.FIRST_PAGE)}if(U==Y){E.addClass(R,X.SELECTED_NAV)}W="<a class="+X.PAGER_ITEM+' href="#'+(U+1)+'" tabindex="0"><em>'+Z.STRINGS.PAGER_PREFIX_TEXT+" "+(U+1)+"</em></a>";R.innerHTML=W;T.appendChild(R)}E.setStyle(T,"visibility","visible")},_updatePagerMenu:function(){var Z=this,X=Z.CLASSES,Y=Z._pages.cur,S,V,aa,T=Z.get("numVisible"),W=Z._pages.num,U=Z._pages.el,R;if(W===0){return}R=document.createElement("SELECT");if(!R){YAHOO.log("Unable to create the pager menu","error",p);return}E.setStyle(U,"visibility","hidden");while(U.firstChild){U.removeChild(U.firstChild)}for(V=0;V<W;V++){S=document.createElement("OPTION");S.value=V+1;S.innerHTML=Z.STRINGS.PAGER_PREFIX_TEXT+" "+(V+1);if(V==Y){S.setAttribute("selected","selected")}R.appendChild(S)}S=document.createElement("FORM");if(!S){YAHOO.log("Unable to create the pager menu","error",p)}else{S.appendChild(R);U.appendChild(S)}C.addListener(R,"change",Z._pagerChangeHandler,this,true);E.setStyle(U,"visibility","visible")},_updateTabIndex:function(R){var S=this;if(R){if(S._focusableItemEl){S._focusableItemEl.tabIndex=-1}S._focusableItemEl=R;R.tabIndex=0}},_validateAnimation:function(R){var S=true;if(P.isObject(R)){if(R.speed){S=S&&P.isNumber(R.speed)}if(R.effect){S=S&&P.isFunction(R.effect)}else{if(!P.isUndefined(YAHOO.util.Easing)){R.effect=YAHOO.util.Easing.easeOut}}}else{S=false}return S},_validateFirstVisible:function(T){var S=this,R=S.get("numItems");if(P.isNumber(T)){if(R===0&&T==R){return true}else{return(T>=0&&T<R)}}return false},_validateNavigation:function(R){var S;if(!P.isObject(R)){return false}if(R.prev){if(!P.isArray(R.prev)){return false}for(S in R.prev){if(R.prev.hasOwnProperty(S)){if(!P.isString(R.prev[S].nodeName)){return false}}}}if(R.next){if(!P.isArray(R.next)){return false}for(S in R.next){if(R.next.hasOwnProperty(S)){if(!P.isString(R.next[S].nodeName)){return false}}}}return true},_validateNumItems:function(R){return P.isNumber(R)&&(R>=0)},_validateNumVisible:function(R){var S=false;if(P.isNumber(R)){S=R>0&&R<=this.get("numItems")}else{if(P.isArray(R)){if(P.isNumber(R[0])&&P.isNumber(R[1])){S=R[0]*R[1]>0&&R.length==2}}}return S},_validateRevealAmount:function(R){var S=false;if(P.isNumber(R)){S=R>=0&&R<100}return S},_validateScrollIncrement:function(R){var S=false;if(P.isNumber(R)){S=(R>0&&R<this.get("numItems"))}return S}})})();YAHOO.register("carousel",YAHOO.widget.Carousel,{version:"2.8.2r1",build:"7"});
