// Adapted from ScrollText script by Thomas Brattli at DHTMLCentral.com

//note: need to add fix for NS4 resize bug;

//Browsercheck (needed)
function lib_bwcheck() {
	this.ver = navigator.appVersion;
	this.agent = navigator.userAgent
	this.dom = document.getElementById ? 1 : 0;
	this.opera5 = this.agent.indexOf("Opera 5") > -1;
	this.ie5 = (this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5) ? 1 : 0; 
	this.ie6 = (this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5) ? 1 : 0;
	this.ie4 = (document.all && !this.dom && !this.opera5) ? 1 : 0;
	this.ie = this.ie4 || this.ie5 || this.ie6
	this.mac = this.agent.indexOf("Mac")>-1
	this.ns6 = (this.dom && parseInt(this.ver) >= 5) ? 1 : 0; 
	this.ns4 = (document.layers && !this.dom) ? 1 : 0;
	this.bw = (this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5);
	return this;
}
var bw = new lib_bwcheck();

//object constructor for content layers
function makeLayer(obj,nest) {
	nest=(!nest) ? "" : 'document.'+nest+'.' //nest refers to the parent layer (needed for ns4)
	this.element =
		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.element.offsetHeight;
	this.clipHeight = bw.ns4 ? this.css.clip.height : this.element.offsetHeight;
	this.up = goUp;
	this.down = goDown;
	this.pageUp = goPageUp;
	this.pageDown = goPageDown;
	this.moveIt = moveIt;
	this.x = 0;
	this.y = 0;
	this.obj = obj + "Object"
    eval(this.obj + "= this")
	return this
}

var px = bw.ns4 || window.opera ? "" : "px";
clipHeight = 272; // the clipHeight of the container layer
var move = 8; // scroll increment
var page = 68; // scroll increment while paging
var scrollSpeed = 30;
var pageSpeed = 40;
var loop = false;
var scrollTimer = null;

function scrollDown(index,trigger) {
	if (scrollContentLoaded) {
		loop = true;
		if(!trigger) {eval("oContent"+index+".down()");}
		else {//scroll the content layer that is currently visible
			whichPage = currentPage[index];//currentPage is an array defined in the subway_doors.js script
			eval("oContent"+index+whichPage+".down()");
		}
	}
}
function scrollUp(index,trigger) {
	if (scrollContentLoaded) {
		loop = true;
		if(!trigger) {eval("oContent"+index+".up()");}
		else {//scroll the content layer that is currently visible
			whichPage = currentPage[index];//currentPage is an array defined in the subway_doors.js script
			eval("oContent"+index+whichPage+".up()");
		}		
	}
}
function goDown() { //Makes the object go up
	if (this.y > clipHeight - this.scrollHeight) {
		this.moveIt(0,this.y - move)
		if(loop) scrollTimer = setTimeout(this.obj+".down()",scrollSpeed);
	}
}
function goUp() { //Makes the object go down
	if (this.y < 0) {
		this.moveIt(0,this.y + move)
		if(loop) scrollTimer = setTimeout(this.obj+".up()",scrollSpeed);
	}
}
function moveIt(x,y) {
	this.x = x;
	this.y = y;
	this.css.left = this.x + px;
	this.css.top = this.y + px;
}
function noScroll(){
	loop = false;
	if (scrollTimer) clearTimeout(scrollTimer);
}

//page functions will scroll up or down automatically to a destination (destinations are always negative values)
function pageDown(index,dest,trigger) {
	if (scrollContentLoaded) {
		loop = true;
		if(!trigger) {eval("oContent"+index+".pageDown("+dest+")");}
		else {//scroll the content layer that is currently visible
			whichPage = currentPage[index];//currentPage is an array defined in the subway_doors.js script
			eval("oContent"+index+whichPage+".pageDown("+dest+")");
		}
	}
}
function goPageDown(dest) { //Makes the object go up
	if (this.y > clipHeight - this.scrollHeight && this.y > dest) {
		this.moveIt(0,this.y - page)
		if(loop) scrollTimer = setTimeout(this.obj+".pageDown("+dest+")",pageSpeed);
	}
	else {this.moveIt(0,dest);}
}
function pageUp(index,dest,trigger) {
	if (scrollContentLoaded) {
		loop = true;
		if(!trigger) {eval("oContent"+index+".pageUp("+dest+")");}
		else {//scroll the content layer that is currently visible
			whichPage = currentPage[index];//currentPage is an array defined in the subway_doors.js script
			eval("oContent"+index+whichPage+".pageUp("+dest+")");
		}			
	}
	else {this.moveIt(0,dest);}
}
function goPageUp(dest) { //Makes the object go down
	if (this.y < dest) {
		this.moveIt(0,this.y + page)
		if(loop) scrollTimer = setTimeout(this.obj+".pageUp("+dest+")",pageSpeed);
	}
	else {this.moveIt(0,dest);}
}

var scrollContentLoaded = false
function initContent() {
	if (bw.bw) {
		oContainer1 = new makeLayer('doorway1');
		oContent11 = new makeLayer('content11','doorway1');
		oContent12 = new makeLayer('content12','doorway1');
		oContent13 = new makeLayer('content13','doorway1');
		oContent14 = new makeLayer('content14','doorway1');
		oContent15 = new makeLayer('content15','doorway1');
		oContent16 = new makeLayer('content16','doorway1');
		oContent17 = new makeLayer('content17','doorway1');
		oContainer2 = new makeLayer('doorway2');
		oContent2 = new makeLayer('content2','doorway2');
		oContainer3 = new makeLayer('doorway3');
		oContent31 = new makeLayer('content31','doorway3');
		oContent32 = new makeLayer('content32','doorway3');
		oContent33 = new makeLayer('content33','doorway3');
		oContent34 = new makeLayer('content34','doorway3');
		oContent35 = new makeLayer('content35','doorway3');
		oContent36 = new makeLayer('content36','doorway3');
		oContainer4 = new makeLayer('doorway4');
		oContent41 = new makeLayer('content41','doorway4');
		oContent42 = new makeLayer('content42','doorway4');
		oContent43 = new makeLayer('content43','doorway4');
		oContent44 = new makeLayer('content44','doorway4');
		oContent45 = new makeLayer('content45','doorway4');
		oContent46 = new makeLayer('content46','doorway4');
		oContent11.moveIt(0,0);
		oContent12.moveIt(0,0);
		oContent13.moveIt(0,0);
		oContent14.moveIt(0,0);
		oContent15.moveIt(0,0);
		oContent16.moveIt(0,0);
		oContent17.moveIt(0,0);
		oContent2.moveIt(0,0);
		oContent31.moveIt(0,0);
		oContent32.moveIt(0,0);
		oContent33.moveIt(0,0);
		oContent34.moveIt(0,0);
		oContent35.moveIt(0,0);
		oContent36.moveIt(0,0);
		oContent41.moveIt(0,0);
		oContent42.moveIt(0,0);
		oContent43.moveIt(0,0);
		oContent44.moveIt(0,0);
		oContent45.moveIt(0,0);
		oContent46.moveIt(0,0);
		oContent11.css.visibility = "visible";
		oContent2.css.visibility = "visible";
		oContent31.css.visibility = "visible";
		oContent41.css.visibility = "visible";
		scrollContentLoaded = true;
		initDoors();
	}
}


