/*************************************************************************
  This code is from Dynamic Web Coding at www.dyn-web.com
  Copyright 2001-5 by Sharon Paine 
  See Terms of Use at www.dyn-web.com/bus/terms.html
  regarding conditions under which you may use this code.
  This notice must be retained in the code as is!
*************************************************************************/

/*
    pausing scroller - vertical or horizontal 
    version date: March 2005 (revised GeckoTableFix)
*/

/*  Readable code available for licensed users */

function dw_scroller(id,w,h,num,axis,bMouse)	{
	this.id=id;
this.el=document.getElementById?document.getElementById(id):null;
if(!this.el)return;
this.css=this.el.style;
this.css.left=this.x=0;
this.css.top=this.y=0;
this.w=w;
this.h=h;
this.num=num;
this.axis=axis||"v";
this.ctr=0;
this.pause=5000;
this.speed=60;
if(bMouse)dw_scrollers.setMouseEvents(this.el);
this.lastTime=new Date().getTime();
this.check=0;
this.index=dw_scrollers.ar.length;
dw_scrollers.ar[this.index]=this;
this.active=true;
};



dw_scroller.prototype.setTiming=function(speed,pause)	{
	this.speed=speed;
this.pause=pause;
};



dw_scroller.prototype.controlScroll=function()	{
	if(this.ctr>this.num-1)	{
	this.shiftTo(0,0);
this.ctr=1;
}else	{
	switch(this.axis)	{
	case "v":if(this.y>-this.h*this.ctr)	{
	var ny=this.y+-1*this.elapsed/1000*this.speed;
ny=Math.max(ny,-this.h*this.ctr);
this.shiftTo(0,ny);
}else this.doPause();
break;
case "h":if(this.x>-this.w*this.ctr)	{
	var nx=this.x+-1*this.elapsed/1000*this.speed;
nx=Math.max(nx,-this.w*this.ctr);
this.shiftTo(nx,0);
}else this.doPause();
break;
}}};



dw_scroller.prototype.doPause=function()	{
	this.check+=this.elapsed;
if(this.check>=this.pause)	{
	this.ctr++;
this.check=0;
}};



dw_scroller.prototype.shiftTo=function(x,y)	{
	this.css.left=(this.x=x)+"px";
this.css.top=(this.y=y)+"px";
};



dw_scrollers=	{
	};
	
	

dw_scrollers.ar=[];
dw_scrollers.setMouseEvents=function(obj)	{
	obj.onmouseover=dw_scrollers.halt;
obj.onmouseout=dw_scrollers.resume;
};



dw_scrollers.halt=function()	{
	var curObj;
for(var i=0;
curObj=dw_scrollers.ar[i];
i++)if(curObj.id==this.id)	{
	curObj.active=false;
return;
}};



dw_scrollers.resume=function(e)	{
	var curObj;
for(var i=0;
curObj=dw_scrollers.ar[i];
i++)	{
	if(curObj.id==this.id)	{
	e=e?e:window.event;
var toEl=e.relatedTarget?e.relatedTarget:e.toElement;
if(this!=toEl&&!dw_contained(toEl,this))	{
	var now=new Date().getTime();
curObj.elapsed=now-curObj.lastTime;
curObj.lastTime=now;
curObj.active=true;
return;
}}}};



dw_scrollers.timer=window.setInterval("dw_scrollers.control()",10);
dw_scrollers.control=function()	{
	var curObj;
for(var i=0;
curObj=dw_scrollers.ar[i];
i++)	{
	if(curObj.active&&dw_scrollers.ready)	{
	var now=new Date().getTime();
curObj.elapsed=now-curObj.lastTime;
curObj.lastTime=now;
curObj.controlScroll();
}}};



dw_scrollers.GeckoTableFix=function()	{
	var ua=navigator.userAgent;
if(ua.indexOf("Gecko")>-1&&ua.indexOf("Firefox")==-1&&ua.toLowerCase().indexOf("like gecko")==-1)	{
	dw_scrollers.hold=[];
for(var i=0;
arguments[i];
i++)	{
	var wndo=document.getElementById(arguments[i]);
var holderId=wndo.parentNode.id;
var holder=document.getElementById(holderId);
document.body.appendChild(holder.removeChild(wndo));
wndo.style.zIndex=1000;
var pos=getPageOffsets(holder);
wndo.style.left=pos.x+"px";
wndo.style.top=pos.y+"px";
dw_scrollers.hold[i]=[arguments[i],holderId];
}window.addEventListener("resize",dw_scrollers.rePosition,true);
}};



dw_scrollers.rePosition=function()	{
	if(dw_scrollers.hold)	{
	for(var i=0;
dw_scrollers.hold[i];
i++)	{
	var wndo=document.getElementById(dw_scrollers.hold[i][0]);
var holder=document.getElementById(dw_scrollers.hold[i][1]);
var pos=getPageOffsets(holder);
wndo.style.left=pos.x+"px";
wndo.style.top=pos.y+"px";
}}};



function getPageOffsets(el)	{
	var left=el.offsetLeft;
var top=el.offsetTop;
if(el.offsetParent&&el.offsetParent.clientLeft||el.offsetParent.clientTop)	{
	left+=el.offsetParent.clientLeft;
top+=el.offsetParent.clientTop;
}while(el=el.offsetParent)	{
	left+=el.offsetLeft;
top+=el.offsetTop;
}return	{
	x:left,y:top};



};



function dw_contained(oNode,oCont)	{
	if(!oNode)return;
while(oNode=oNode.parentNode)if(oNode==oCont)return true;
return false;
};



dw_scrollers.unHook=function()	{
	var i,curObj;
for(i=0;
curObj=dw_scrollers.ar[i];
i++)	{
	if(curObj.el)	{
	curObj.el.onmouseover=null;
curObj.el.onmouseout=null;
curObj.el=null;
}}};



if(window.addEventListener)window.addEventListener("unload",dw_scrollers.unHook,true);
else if(window.attachEvent)window.attachEvent("onunload",dw_scrollers.unHook);

