//Description:平滑滚动指定ID对象中的内容
//Version:V2.0
//Other:修正上版中在Firefox下无法滚动内容
var Marquee={Start:function(id,direction,speed,step,width,height){//id,方向，速度，步长，宽度，高度
		var o=document.getElementById(id);
		if(o==null)
		{
			alert("指定对象不存在！");
			return;
		}
		with(o)
		{
			style.width=width+"px";
			style.height=height+"px";
			style.overflow='hidden';
			style.whiteSpace="nowrap";
			//onmouseover=new Function("Marquee.Status['"+id+"']=false");
			//onmouseout=new Function("Marquee.Status['"+id+"']=true");
		}
		//添加鼠标移入移出事件
        if(window.attachEvent)
        {
            //alert("Windows");
            o.attachEvent("onmouseover",new Function("Marquee.Status['"+id+"']=false"));
            o.attachEvent("onmouseout",new Function("Marquee.Status['"+id+"']=true"));
         }
         else
         {
            //alert("Firefox");
            o.addEventListener("mouseover",new Function("Marquee.Status['"+id+"']=false"),false);
            o.addEventListener("mouseout",new Function("Marquee.Status['"+id+"']=true"),false);
         }
		//临时层不存在则创建临时层
		if(typeof(this.Templayer[id])=='undefined')
		{
			var Templayerid1=Math.random().toString();
			var Templayerid2=Math.random().toString();
			var inlinecode="<div id='"+Templayerid1+"' style='display:inline;z-index:1;'>"+o.innerHTML+"</div>";
			inlinecode+="<div id='"+Templayerid2+"' style='display:inline;z-index:1;'>"+o.innerHTML+"</div>";
			//document.write(inlinecode);
			o.innerHTML=inlinecode;
			this.Templayer[id]=new Array(Templayerid1,Templayerid2);
			this.Calls[id]=Math.random();
		}
		else
		{	//存在，第二次调用，清除前次调用
			//产生新的调用ID
			this.Calls[id]=Math.random();

		}

		//设置自动开始滚动
		Marquee.Status[id]=true;
		//自动开始滚动
		this.Scroll(id,direction,step,speed,this.Calls[id]);
	},
	Scroll:function(id,direction,step,speed,callid) //id,方向,步长,速度
	{
		//如果传入的调用ID与记录的调用ID不同，则表示该循环不再执行（已被清除）
		if(callid!=this.Calls[id])
			return;
		if(!this.Status[id])
		{	
			setTimeout('Marquee.Scroll("'+id+'","'+direction+'",'+step+','+speed+','+callid+')',speed);
			return;
		}
		var demo=document.getElementById(id);
		var demo1=document.getElementById(this.Templayer[id][0]);
		var demo2=document.getElementById(this.Templayer[id][1]);
		switch(direction)
		{
			case "left":
			{
				if(demo2.offsetWidth-demo.scrollLeft<=0)
				{
					demo.scrollLeft-=demo1.offsetWidth;
					
				}
				else{
					demo.scrollLeft+=step;
				}
				
				break;
			}
			case "right":
			{
				if(demo1.offsetWidth-demo.scrollLeft>=0)
					demo.scrollLeft+=demo2.offsetWidth;
				else{
					demo.scrollLeft-=step;
				}
				break;
			}
			case "up":
			{
				if(demo2.offsetTop-demo.scrollTop<=0) //当滚动至demo1与demo2交界时
					demo.scrollTop-=demo1.offsetHeight; //demo跳到最顶端 
				else{ 
					demo.scrollTop+=step;
				} 
				break;
			}
			case "down":
			{
				if(demo1.offsetTop-demo.scrollTop>=0) 
					demo.scrollTop+=demo2.offsetHeight;
				else{ 
					demo.scrollTop-=step;
				} 
				break;
			}
			default:
			{
				alert("滚动方向错误！");
				return;
			}
		}

  		setTimeout('Marquee.Scroll("'+id+'","'+direction+'",'+step+','+speed+','+callid+')',speed);
	},
	Status:new Array(),//存储状态，是否滚动
	Templayer:new Array(),   //临时层名称记录
	Calls:new Array() 	//调用一次就产生一个新的随机ID
};