(function(){var B=YAHOO.util.Dom;var A=YAHOO.util.Event;SODON.widget.ScrollView=function(C,D){this.init.apply(this,arguments)};SODON.widget.ScrollView.cfg=function(C){SODON.widget.ScrollView.cfg.superclass.constructor.apply(this,arguments)};YAHOO.extend(SODON.widget.ScrollView.cfg,SODON.util.Config,{_DEFAULT_CONFIG:{direction:"horizontal",screenSize:1,moveSize:1,itemWidth:null,itemHeight:null,itemSpace:null,easing:YAHOO.util.Easing.easeOut,speed:1,upButton:null,downButton:null,prevButton:null,nextButton:null,activeEvent:"click"}});SODON.widget.ScrollView.prototype={oContainer:null,_items:null,_mask:null,Config:null,cfg:null,anim:null,moveDirection:null,VERTICAL:"vertical",HORIZONTAL:"horizontal",TOP:"top",BOTTOM:"bottom",LEFT:"left",RIGHT:"right",init:function(D,E){this.oContainer=B.get(D)||"scroll-container";this._items=B.getChildren(this.oContainer);this._mask=this.oContainer.parentNode;this.Config={};this.cfg=new SODON.widget.ScrollView.cfg(this);this.cfg.setupConfig();if(E!=null){this.cfg.setConfig(E)}var K=this.cfg.getConfigProperty("direction");var I=this.cfg.getConfigProperty("itemWidth");var F=this.cfg.getConfigProperty("itemHeight");var H=this.cfg.getConfigProperty("itemSpace");var C=this.cfg.getConfigProperty("screenSize");if(!this._isShowButtons()){if(K==this.VERTICAL){this._setVisibleOfUpButton(false);this._setVisibleOfDownButton(false)}else{this._setVisibleOfPrevButton(false);this._setVisibleOfNextButton(false)}}if(this._items.length>=3*C){this.cfg.setConfigProperty("moveSize",C)}B.setStyle(this.oContainer,"position","absolute");B.setStyle(this.oContainer,"float","left");B.setStyle(this.oContainer,"display","inline");B.setStyle(this.oContainer,"top","0px");B.setStyle(this.oContainer,"left","0px");if(K==this.VERTICAL){B.setStyle(this.oContainer,"width",I+"px");B.setStyle(this.oContainer,"height",(this._items.length*(F+H))+"px")}else{B.setStyle(this.oContainer,"width",(this._items.length*(I+H))+"px");B.setStyle(this.oContainer,"height",F+"px")}B.setStyle(this._mask,"position","relative");B.setStyle(this._mask,"overflow","hidden");B.setStyle(this._mask,"float","left");B.setStyle(this._mask,"display","inline");var G=0;var J=0;if(K==this.VERTICAL){G=I;B.setStyle(this._mask,"width",G+"px");J=C*(F+H)-H;B.setStyle(this._mask,"height",J+"px")}else{G=C*(I+H)-H;B.setStyle(this._mask,"width",G+"px");J=F;B.setStyle(this._mask,"height",J+"px")}i=0;while(i<this._items.length){B.setStyle(this._items[i],"overflow","hidden");B.setStyle(this._items[i],"float","left");B.setStyle(this._items[i],"display","inline");B.setStyle(this._items[i],"width",I+"px");B.setStyle(this._items[i],"height",F+"px");var L=document.createElement("div");B.insertAfter(L,this._items[i]);B.setStyle(L,"float","left");B.setStyle(L,"display","inline");B.addClass(L,"seperator");if(K==this.VERTICAL){B.setStyle(L,"width",I+"px");B.setStyle(L,"height",H+"px")}else{B.setStyle(L,"width",H+"px");B.setStyle(L,"height",F+"px")}i++}this.anim=new YAHOO.util.Anim(this.oContainer,{});this.initEvents()},upMove:function(){if(this.isMove(this.TOP)){this.moveDirection=this.TOP;this.prepareItems();this.move()}},downMove:function(){if(this.isMove(this.BOTTOM)){this.moveDirection=this.BOTTOM;this.move()}},prevMove:function(){if(this.isMove(this.LEFT)){this.moveDirection=this.LEFT;this.prepareItems();this.move()}},nextMove:function(){if(this.isMove(this.RIGHT)){this.moveDirection=this.RIGHT;this.move()}},isMove:function(C){if(!this._isShowButtons()){return false}if(!this.anim.isAnimated()){if(this.cfg.getConfigProperty("direction")==this.HORIZONTAL&&(C==this.RIGHT||C==this.LEFT)){return true}else{if(this.cfg.getConfigProperty("direction")==this.VERTICAL&&(C==this.TOP||C==this.BOTTOM)){return true}}}return false},prepareItems:function(){var D=this.cfg.getConfigProperty("moveSize");var E=this.cfg.getConfigProperty("itemWidth");var G=this.cfg.getConfigProperty("itemHeight");var F=this.cfg.getConfigProperty("itemSpace");var C=0;if(this.moveDirection==this.TOP||this.moveDirection==this.LEFT){while(C<D){B.insertBefore(B.getLastChild(this.oContainer),B.getFirstChild(this.oContainer));B.insertBefore(B.getLastChild(this.oContainer),B.getFirstChild(this.oContainer));if(this.moveDirection==this.TOP){B.setStyle(this.oContainer,"top",(parseInt(B.getStyle(this.oContainer,"top"))-(G+F))+"px")}else{B.setStyle(this.oContainer,"left",(parseInt(B.getStyle(this.oContainer,"left"))-(E+F))+"px")}C++}}else{while(C<D){B.insertAfter(B.getFirstChild(this.oContainer),B.getLastChild(this.oContainer));B.insertAfter(B.getFirstChild(this.oContainer),B.getLastChild(this.oContainer));if(this.moveDirection==this.BOTTOM){B.setStyle(this.oContainer,"top",(parseInt(B.getStyle(this.oContainer,"top"))+(G+F))+"px")}else{B.setStyle(this.oContainer,"left",(parseInt(B.getStyle(this.oContainer,"left"))+(E+F))+"px")}C++}}},move:function(){var N=this;var F={};var E=this.cfg.getConfigProperty("moveSize");var J=this.cfg.getConfigProperty("itemWidth");var D=this.cfg.getConfigProperty("itemHeight");var I=this.cfg.getConfigProperty("itemSpace");var C=this.cfg.getConfigProperty("speed");var L=this.cfg.getConfigProperty("easing");if(this.moveDirection==this.TOP){var M=(parseInt(B.getStyle(this.oContainer,"top"))+E*(D+I));F={top:{to:M,unit:"px"}}}else{if(this.moveDirection==this.RIGHT){var K=(parseInt(B.getStyle(this.oContainer,"left"))-E*(J+I));F={left:{to:K,unit:"px"}}}else{if(this.moveDirection==this.BOTTOM){var G=(parseInt(B.getStyle(this.oContainer,"top"))-E*(D+I));F={top:{to:G,unit:"px"}}}else{if(this.moveDirection==this.LEFT){var H=(parseInt(B.getStyle(this.oContainer,"left"))+E*(J+I));F={left:{to:H,unit:"px"}}}}}}this.anim=new YAHOO.util.Anim(this.oContainer,F,C,L);this.anim.onComplete.subscribe(function(O){if(N.moveDirection==N.BOTTOM||N.moveDirection==N.RIGHT){N.prepareItems()}});this.anim.animate()},initEvents:function(){var C=this;var D=this.cfg.getConfigProperty("activeEvent");if(this.cfg.getConfigProperty("upButton")!=null){A.on(B.get(this.cfg.getConfigProperty("upButton")),D,function(E){C.upMove()})}if(this.cfg.getConfigProperty("downButton")!=null){A.on(B.get(this.cfg.getConfigProperty("downButton")),D,function(E){C.downMove()})}if(this.cfg.getConfigProperty("nextButton")!=null){A.on(B.get(this.cfg.getConfigProperty("nextButton")),D,function(E){C.nextMove()})}if(this.cfg.getConfigProperty("prevButton")!=null){A.on(B.get(this.cfg.getConfigProperty("prevButton")),D,function(E){C.prevMove()})}},_isShowButtons:function(){return this._items.length>this.cfg.getConfigProperty("screenSize")},_setVisibleOfUpButton:function(D){var C=this.cfg.getConfigProperty("upButton");B.setStyle(C,D?"":"none")},_setVisibleOfDownButton:function(C){var D=this.cfg.getConfigProperty("downButton");B.setStyle(D,"display",C?"":"none")},_setVisibleOfPrevButton:function(D){var C=this.cfg.getConfigProperty("prevButton");B.setStyle(C,"display",D?"":"none")},_setVisibleOfNextButton:function(C){var D=this.cfg.getConfigProperty("nextButton");B.setStyle(D,"display",C?"":"none")}}})();