// Layer Scroll functions

function verifyCompatibleBrowser(){ 
    this.ver=navigator.appVersion 
    this.dom=document.getElementById?1:0 
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; 
    this.ie4=(document.all && !this.dom)?1:0; 
    this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
 
    this.ns4=(document.layers && !this.dom)?1:0; 
    this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5) 
    return this 
} 

bw=new verifyCompatibleBrowser() 
 
 
var speed=50 
 
//var loop
 
function ConstructObject(obj,nest,ContainerObj){ 
    nest=(!nest) ? '':'document.'+nest+'.' 
    this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0; 
    this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0; 
	
    this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight 
    this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight 
    this.scrollWidth=bw.ns4?this.css.document.width:this.el.offsetWidth
    this.clipWidth=bw.ns4?this.css.clip.width:this.el.offsetWidth
	
    this.up=MoveAreaUp;
    this.down=MoveAreaDown; 
    this.left=MoveAreaLeft;
    this.right=MoveAreaRight;
	
    this.loop=false;
	
    this.container = ContainerObj?ContainerObj:'';

    this.MoveArea=MoveArea; this.x; this.y; 
    this.obj = obj + "Object" 
    eval(this.obj + "=this") 
    return this 
} 

function MoveArea(x,y){ 
    this.x=x;this.y=y 
    this.css.left=this.x 
    this.css.top=this.y 
} 
 
function MoveAreaDown(move){ 
	if(this.y>-this.scrollHeight+this.container.clipHeight){ 
    this.MoveArea(this.x,this.y-move) 
    if(this.loop) setTimeout(this.obj+".down("+move+")",speed) 
	} 
} 

function MoveAreaUp(move){ 
	if(this.y<0){ 
    this.MoveArea(this.x,this.y-move) 
    if(this.loop) setTimeout(this.obj+".up("+move+")",speed) 
	} 
} 

function MoveAreaRight(move){ 
	if(this.x>-this.scrollWidth+this.container.clipWidth){ 
    this.MoveArea(this.x-move, this.y) 
    if(this.loop) setTimeout(this.obj+".right("+move+")",speed) 
	} 
} 

function MoveAreaLeft(move){ 
	if(this.x<0){ 
    this.MoveArea(this.x-move,  this.y) 
    if(this.loop) setTimeout(this.obj+".left("+move+")",speed) 
	} 
} 

function PerformScrollPos(obj,ox,oy){ 
	if(initialized){ 
		if(!isNaN(ox)){obj.x = ox;}
		if(!isNaN(oy)){obj.y = oy;}
		obj.MoveArea(obj.x,obj.y);
	} 
} 


function PerformScrollV(obj,speed){ 
	if(initialized){ 
		obj.loop=true; 
		if(speed>0) obj.down(speed) 
		else obj.up(speed) 
	} 
} 
 
function PerformScrollH(obj,speed){ 
	if(initialized){ 
		obj.loop=true; 
		if(speed>0) obj.right(speed) 
		else obj.left(speed) 
	} 
} 



function AutoScrollH(obj,times,step){
	if(initialized) {
		if(times >0) {
			obj.MoveArea(obj.x + step, obj.y);
			times--;
			setTimeout("AutoScrollH(" + obj.obj + "," + times + "," + step + ")",speed);
		}
	}
}

function AutoScrollV(obj,times,step){
	if(initialized) {
		if(times >0) {
			obj.MoveArea(obj.x, obj.y+step);
			times--;
			setTimeout("AutoScrollV(" + obj.obj + "," + times + "," + step + ")",speed);
		}
	}
}
 
function CeaseScroll(obj){ 
    obj.loop=false ;
} 


var initialized; 
function InitializeScrollableArea(lyr){ 
    objContainer=new ConstructObject(lyr + 'Container') 
    objScroller=new ConstructObject(lyr + 'Content', lyr + 'Container', objContainer) 
    objScroller.MoveArea(0,0) 
    objContainer.css.visibility='visible' 
    initialized=true; 
	
	return objScroller;
}
