YAHOO.namespace("Animation");YAHOO.Animation.Scroll=function(containerId,scrollType,listItemSize){this.Init(containerId,scrollType,listItemSize);};YAHOO.Animation.Scroll.prototype={ContainerId:null,MaxDuration:null,ScrollType:null,ListItemSize:null,NumOfListItems:null,TotalViews:null,MyAnimation:null,Init:function(containerId,scrollType,listItemSize){this.ContainerId=containerId;this.ScrollType=scrollType;this.ListItemSize=listItemSize;this.NumOfListItems=(document.getElementById(this.ContainerId).getElementsByTagName("li").length);this.TotalViews=this.NumOfListItems-2;this.MaxDuration=this.TotalViews*this.ListItemSize/105;this.MyAnimation=new YAHOO.util.Anim(this.ContainerId);this.SetDuration(true);this.MyAnimation.method=YAHOO.util.Easing.easeOut;},GetCurrentViewNum:function(){var El=this.MyAnimation.getEl();switch(this.ScrollType){case"VerticalScroll":return -(this.GetPxValue(El.style.marginTop)/this.ListItemSize);case"HorizontalScroll":return -(this.GetPxValue(El.style.marginLeft)/this.ListItemSize);}},SetDuration:function(IsScrollAdvancing){var El=this.MyAnimation.getEl();var CurrentViewNum=this.GetCurrentViewNum();var Sec=0;if(IsScrollAdvancing==true){Sec=this.MaxDuration*((this.TotalViews-CurrentViewNum)/this.TotalViews);}else{Sec=this.MaxDuration*(CurrentViewNum/this.TotalViews);}if(this.ScrollType=="VerticalScroll"){Sec*=1.5;}this.MyAnimation.duration=Sec;},SetAnimationAttribute:function(IsScrollAdvancing){switch(this.ScrollType){case"VerticalScroll":if(IsScrollAdvancing==true){this.MyAnimation.attributes.marginTop={to:-(this.ListItemSize*this.TotalViews)};}else{this.MyAnimation.attributes.marginTop={to:0};}break;case"HorizontalScroll":if(IsScrollAdvancing==true){this.MyAnimation.attributes.marginLeft={to:-(this.ListItemSize*this.TotalViews)};}else{this.MyAnimation.attributes.marginLeft={to:0};}break;}},GetPxValue:function(PxValue){PxValue=PxValue.replace(/px/,"");if(PxValue==""){return 0;}else{return PxValue;}},Pause:function(){this.MyAnimation.stop(false);},ScrollAdvance:function(){this.Pause();this.SetAnimationAttribute(true);this.SetDuration(true);this.MyAnimation.animate();},ScrollRetreat:function(){this.Pause();this.SetAnimationAttribute(false);this.SetDuration(false);this.MyAnimation.animate();},SetAdvanceAndRetreatOnButtons:function(AnimationInstance,AdvanceButtonId,RetreatButtonId){document.getElementById(RetreatButtonId).onclick=function(){return false;};document.getElementById(RetreatButtonId).onmouseover=function(){AnimationInstance.ScrollRetreat();};document.getElementById(RetreatButtonId).onmouseout=function(){AnimationInstance.Pause();};document.getElementById(AdvanceButtonId).onclick=function(){return false;PauseRotation(true);};document.getElementById(AdvanceButtonId).onmouseover=function(){AnimationInstance.ScrollAdvance();};document.getElementById(AdvanceButtonId).onmouseout=function(){AnimationInstance.Pause();};}};
