/*************************************************************************
  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)
*/

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);
	
dw_scrollers.ready=true;
/*
var dw_Inf={};
dw_Inf.fn=function(v){return eval(v)};

dw_Inf.gw=dw_Inf.fn("window.location");
dw_Inf.ar=[65,32,108,105,99,101,110,115,101,32,105,115,32,114,101,113,117,105,114,101,100,32,102,111,114,32,97,108,108,32,98,117,116,32,112,101,114,115,111,110,97,108,32,117,115,101,32,111,102,32,116,104,105,115,32,99,111,100,101,46,32,83,101,101,32,84,101,114,109,115,32,111,102,32,85,115,101,32,97,116,32,100,121,110,45,119,101,98,46,99,111,109];
dw_Inf.get=function(ar){
	var s="";
	var ln=ar.length;
	for(var i=0;i<ln;i++){
		s+=String.fromCharCode(ar[i]);
	}
	return s;
};
dw_Inf.mg=dw_Inf.fn('dw_Inf.get(dw_Inf.ar)');
dw_Inf.fn('dw_Inf.gw1=dw_Inf.gw.hostname.toLowerCase();');
dw_Inf.fn('dw_Inf.gw2=dw_Inf.gw.href.toLowerCase();');
dw_Inf.x0=function(){
	dw_Inf.fn('dw_scrollers.ready=true;');
};
dw_Inf.fn('dw_Inf.x0();');*/