﻿function RGSscroll(selectctrl,itemstoscroll,curclassname,mwidth,mheight,mpause,mdrection,autoscroll){
    var cccc=document.getElementById(selectctrl).getElementsByTagName("li");
    var ele=document.getElementById(itemstoscroll);
    var ccounts = cccc.length;
    ele.ss = false;
	ele.pause = mpause;	
	ele.dr = mdrection;
	ele.selectitem = 0;
	with(ele){
		style.position = "absolute";
		style.width = mwidth+"px";
		style.height = mheight+"px";
		style.overflow = "hidden";
		onmouseover = stopm;
		onmouseout = startm;
	}
    for (var ii = 0; ii< ccounts;ii++)
    {
        cccc[ii].index=ii;
        cccc[ii].onmouseover = selectSlide;
        cccc[ii].onmouseout=startm;
    }    
    function selectSlide(){		
			ele.selectitem=this.index;
			switch(mdrection){
			case("up"):
			doSlideUp(this.index); break;
			case("left"):
			doSlideLeft(this.index); break;
			default:
			doSlideLeft(this.index); break;
			}	  
			stopm();		
		}
		switch(mdrection){
			case("up"):
			setInterval(reSwitchItemsUp,mpause); break;
			case("left"):
			setInterval(reSwitchItemsLeft,mpause); break;
			default:
			setInterval(reSwitchItemsLeft,mpause); break;
			}	  
	  	function reSwitchItemsUp() {	  	
		if (ele.selectitem==cccc.length)
			{
				ele.selectitem=0;
				if(ele.ss!=true)
					ele.scrollTop=0;
			}
		doSlideUp(ele.selectitem);
		ele.selectitem=ele.selectitem+1;		
	  	}
		function reSwitchItemsLeft() {	  	
		if (ele.selectitem==cccc.length)
			{
				ele.selectitem=0;
				if(ele.ss!=true)
					ele.scrollTop=0;
			}	
		doSlideLeft(ele.selectitem);
		ele.selectitem=ele.selectitem+1;		
	  	}
		
		var n=20,t=20;
	  	//执行向上滚动
		function doSlideUp(selectindex){
		    if(ele.ss==true) return;
		    var w;		
		    var timers;
		    timers=new Array(n);   
		    w=mheight; 
		    var x=ele.scrollTop;
		    var d=selectindex*w-x;
		    if(curclassname!="")
		    {
		        for(var ii=0; ii < cccc.length; ii++){ 
				    if(ii == selectindex){ 
					    cccc[ii].className = curclassname;
				    }else{
					     cccc[ii].className = "";				 
				    }
			    }
			}
		    if(!d) return;
		    for(var i=0;i<n;i++)(function(){
		      if(timers[i])
			    clearTimeout(timers[i]);
		      var j=i;
		      timers[i]=setTimeout(function(){
			    ele.scrollTop=x+Math.round(d*Math.sin(Math.PI*(j+1)/(2*n)));
		      },(i+1)*t);
		    })();
	  	}
		//执行向左滚动
		function doSlideLeft(selectindex){
		    if(ele.ss==true) return;
		    var w;
		    var timers;
		    timers=new Array(n);   
		    w=mwidth; 
		    var x=ele.scrollLeft;
		    var d
		    d=selectindex*w-x;	
		    if(curclassname!="")
		    {
		        for(ii=0; ii < cccc.length; ii++){ 
				    if(ii == selectindex){ 
					    cccc[ii].className = curclassname;
				    }else{
					     cccc[ii].className = "";				 
				    }
			    }
			}
		    if(!d) return;
		    for(var i=0;i<n;i++)(function(){
		      if(timers[i])
			    clearTimeout(timers[i]);
		      var j=i;
		      timers[i]=setTimeout(function(){
			    ele.scrollLeft=x+Math.round(d*Math.sin(Math.PI*(j+1)/(2*n)));
		      },(i+1)*t);
		    })();
	  	}
		var tempselectindex;		
		function stopm(){ele.ss=true;tempselectindex=ele.selectitem;}
		function startm(){ele.ss=false;ele.selectitem=tempselectindex;}
}
