(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,nextButton:null,prevButton:null,activeEvent:"click"}});SODON.widget.ScrollView.prototype={oContainer:null,_items:null,_mask:null,Config:null,cfg:null,anim:null,moveDirection:null,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)}if(this._items.length>=3*this.cfg.getConfigProperty("screenSize")){this.cfg.setConfigProperty("moveSize",this.cfg.getConfigProperty("screenSize"))}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(this.cfg.getConfigProperty("direction")=="vertical"){B.setStyle(this.oContainer,"width",this.cfg.getConfigProperty("itemWidth")+"px");B.setStyle(this.oContainer,"height",(this._items.length*(this.cfg.getConfigProperty("itemHeight")+this.cfg.getConfigProperty("itemSpace")))+"px")}else{B.setStyle(this.oContainer,"width",(this._items.length*(this.cfg.getConfigProperty("itemWidth")+this.cfg.getConfigProperty("itemSpace")))+"px");B.setStyle(this.oContainer,"height",this.cfg.getConfigProperty("itemHeight")+"px")}var F=0;while(F<this.cfg.getConfigProperty("moveSize")){B.insertBefore(B.getLastChild(this.oContainer),B.getFirstChild(this.oContainer));if(this.cfg.getConfigProperty("direction")=="vertical"){B.setStyle(this.oContainer,"top",(parseInt(B.getStyle(this.oContainer,"top"))-(this.cfg.getConfigProperty("itemHeight")+this.cfg.getConfigProperty("itemSpace")))+"px")}else{B.setStyle(this.oContainer,"left",(parseInt(B.getStyle(this.oContainer,"left"))-(this.cfg.getConfigProperty("itemWidth")+this.cfg.getConfigProperty("itemSpace")))+"px")}F++}B.setStyle(this._mask,"position","relative");B.setStyle(this._mask,"overflow","hidden");B.setStyle(this._mask,"float","left");B.setStyle(this._mask,"display","inline");if(this.cfg.getConfigProperty("direction")=="vertical"){B.setStyle(this._mask,"width",(this.cfg.getConfigProperty("itemWidth"))+"px");B.setStyle(this._mask,"height",(this.cfg.getConfigProperty("screenSize")*this.cfg.getConfigProperty("itemHeight"))+"px")}else{B.setStyle(this._mask,"width",(this.cfg.getConfigProperty("screenSize")*this.cfg.getConfigProperty("itemWidth")+(this.cfg.getConfigProperty("screenSize")-1)*this.cfg.getConfigProperty("itemSpace"))+"px");B.setStyle(this._mask,"height",(this.cfg.getConfigProperty("itemHeight"))+"px")}F=0;while(F<this._items.length){B.setStyle(this._items[F],"overflow","hidden");B.setStyle(this._items[F],"float","left");B.setStyle(this._items[F],"display","inline");B.setStyle(this._items[F],"width",this.cfg.getConfigProperty("itemWidth")+"px");B.setStyle(this._items[F],"height",this.cfg.getConfigProperty("itemHeight")+"px");var C=document.createElement("div");B.insertAfter(C,this._items[F]);B.setStyle(C,"float","left");B.setStyle(C,"display","inline");if(this.cfg.getConfigProperty("direction")=="vertical"){B.setStyle(C,"width",this.cfg.getConfigProperty("itemWidth")+"px");B.setStyle(C,"height",this.cfg.getConfigProperty("itemSpace")+"px")}else{B.setStyle(C,"width",this.cfg.getConfigProperty("itemSpace")+"px");B.setStyle(C,"height",this.cfg.getConfigProperty("itemHeight")+"px")}F++}this.anim=new YAHOO.util.Anim(this.oContainer,{});this.initEvents()},upMove:function(){if(this.isMove("top")){this.moveDirection="top";if(this._items.length==this.cfg.getConfigProperty("screenSize")+1){this.move()}else{this.prepareItems();this.move()}}},downMove:function(){if(this.isMove("bottom")){this.moveDirection="bottom";this.prepareItems();this.move()}},nextMove:function(){if(this.isMove("right")){this.moveDirection="right";this.prepareItems();this.move()}},prevMove:function(){if(this.isMove("left")){this.moveDirection="left";if(this._items.length==this.cfg.getConfigProperty("screenSize")+1){this.move()}else{this.prepareItems();this.move()}}},isMove:function(C){if(!this.anim.isAnimated()){if(this.cfg.getConfigProperty("direction")=="horizontal"&&(C=="right"||C=="left")){return true}else{if(this.cfg.getConfigProperty("direction")=="vertical"&&(C=="top"||C=="bottom")){return true}}}return false},prepareItems:function(){var C=0;if(this.moveDirection=="top"||this.moveDirection=="left"){while(C<this.cfg.getConfigProperty("moveSize")){B.insertBefore(B.getLastChild(this.oContainer),B.getFirstChild(this.oContainer));if(this.moveDirection=="top"){B.setStyle(this.oContainer,"top",(parseInt(B.getStyle(this.oContainer,"top"))-(this.cfg.getConfigProperty("itemHeight")+this.cfg.getConfigProperty("itemSpace")))+"px")}else{B.setStyle(this.oContainer,"left",(parseInt(B.getStyle(this.oContainer,"left"))-(this.cfg.getConfigProperty("itemWidth")+this.cfg.getConfigProperty("itemSpace")))+"px")}C++}}else{while(C<this.cfg.getConfigProperty("moveSize")){B.insertAfter(B.getFirstChild(this.oContainer),B.getLastChild(this.oContainer));if(this.moveDirection=="bottom"){B.setStyle(this.oContainer,"top",(parseInt(B.getStyle(this.oContainer,"top"))+(this.cfg.getConfigProperty("itemHeight")+this.cfg.getConfigProperty("itemSpace")))+"px")}else{B.setStyle(this.oContainer,"left",(parseInt(B.getStyle(this.oContainer,"left"))+(this.cfg.getConfigProperty("itemWidth")+this.cfg.getConfigProperty("itemSpace")))+"px")}C++}}},move:function(){var D=this;var C={};if(this.moveDirection=="top"){var E=(parseInt(B.getStyle(this.oContainer,"top"))+this.cfg.getConfigProperty("moveSize")*(this.cfg.getConfigProperty("itemHeight")+this.cfg.getConfigProperty("itemSpace")));C={top:{to:E,unit:"px"}}}else{if(this.moveDirection=="right"){var H=(parseInt(B.getStyle(this.oContainer,"left"))-this.cfg.getConfigProperty("moveSize")*(this.cfg.getConfigProperty("itemWidth")+this.cfg.getConfigProperty("itemSpace")));C={left:{to:H,unit:"px"}}}else{if(this.moveDirection=="bottom"){var F=(parseInt(B.getStyle(this.oContainer,"top"))-this.cfg.getConfigProperty("moveSize")*(this.cfg.getConfigProperty("itemHeight")+this.cfg.getConfigProperty("itemSpace")));C={top:{to:F,unit:"px"}}}else{if(this.moveDirection=="left"){var G=(parseInt(B.getStyle(this.oContainer,"left"))+this.cfg.getConfigProperty("moveSize")*(this.cfg.getConfigProperty("itemWidth")+this.cfg.getConfigProperty("itemSpace")));C={left:{to:G,unit:"px"}}}}}}this.anim=new YAHOO.util.Anim(this.oContainer,C,this.cfg.getConfigProperty("speed"),this.cfg.getConfigProperty("easing"));this.anim.onComplete.subscribe(function(I){if(D._items.length==D.cfg.getConfigProperty("screenSize")+1){if(D.moveDirection=="top"||D.moveDirection=="left"){D.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()})}}}})();