var _numScrolls = 0;
var _scrolls = new Array();
var _dragObject;
var _thumbLayer; 	// contains thumb for scrolling
var _barLayer; 		// contains the scroll bar
var _scrollLayer;	// points to the content that is scrolled
//var _scrollInt;
var _scrollDownInt;
var _scrollUpInt;
var _scrollLeftInt;
var _scrollRightInt;
var _scrollJumpInt;

var _scrollImgs;
var _nav4 = 0;
var _nav6 = 0;
var _ie = 0;
var _loading = false;
var _domain = document.domain;
var _childWindowLoaded = false; //Indicates the the child window in booking page is loaded or not
var _childWindowError = false; // Indicates the child window in booking page has errors or not.
var imgTopSrc = "";


//function fFrame(top,left,width,height,src,baseHREF,borderColor) 
function fFrame(top,left,width,height,src,frmName,bScroll) 
{
	/*******************************************************
	Never use _nav4 = (document.layers).The code is buggy.This is the best
	way to use.
	********************************************************/
	if(document.layers) _nav4 = 1;
	if(!document.all && document.getElementById) _nav6 = 1;
	if(document.all) _ie = 1;
	
	this.top = top;
	this.left = left;
	this.width = width;
	this.height = height;
	this.src = src;
	
	//this.baseHREF = baseHREF;
	this.borderColor = "#DDDDDD";
	
	this.baseHREF = "img/";
	this.inSync = new Array();
	this.id = _numScrolls;
	this.name = frmName;
	this.load = _fLoadSrc;
	this.scrollTo = _fScrollTo;
	this.scrollBy = _fScrollBy;
	this.init = _fInit;
	this.setup = _fSetup;
	
	if(_nav4) 
	{
		this.isInit = false;
		this.isSetup = false;
		
		if(!_scrollImgs) 
			_fLoadImages(this.baseHREF);
		
		this.init();
		this.load(false, false);
		this.setup();
	} 
	else 
	{
		var strHTML = '<IFRAME WIDTH='+width+' HEIGHT='+ height +
		' NAME="'+ this.name +'" '+
		'ID="scroll'+_numScrolls+'" '+
		'SCROLLING="' + ((bScroll) ? "auto" : "no") + '" '+
		' marginheight="0" marginwidth="0" frameborder="0" border="0" vspace="0" hspace="0"' +
		'STYLE="position:absolute;'+
		'left:'+left+'px;'+
		'top:'+top+'px;'+
		'width:'+width+'px;'+
		'height:'+height+ 'px;" '+
		'SRC="'+src+'">'+
		'</IFRAME>';
		
		document.body.innerHTML += strHTML;
		
		if(_nav6)
			this.layer = document.getElementById("scroll"+_numScrolls);
		else
			this.layer = document.all["scroll"+_numScrolls];
		
		this.isInit = true;
		this.isSetup = true;
  	}

  _numScrolls++;
  _scrolls[this.id] = this;
}

//
// Loads images into memory
//
function _fLoadImages(baseHREF) 
{
	self.status = "Please wait while the document is getting loaded...";
	if(_loading) 
	{
		setTimeout(_fLoadImages, 100, baseHREF);
		return;
	}
	_loading = true;
	
	_scrollImgs = new Array(13);
	_scrollImgs[0] = new Image(16,16);
	_scrollImgs[0].src = baseHREF + "vup.gif";
	_scrollImgs[1] = new Image(16,16);
	_scrollImgs[1].src = baseHREF + "vup2.gif";
	_scrollImgs[2] = new Image(16,16);
	_scrollImgs[2].src = baseHREF + "vdown.gif";
	_scrollImgs[3] = new Image(16,16);
	_scrollImgs[3].src = baseHREF + "vdown2.gif";
	_scrollImgs[4] = new Image(16,16);
	_scrollImgs[4].src = baseHREF + "hleft.gif";
	_scrollImgs[5] = new Image(16,16);
	_scrollImgs[5].src = baseHREF + "hleft2.gif";
	_scrollImgs[6] = new Image(16,16);
	_scrollImgs[6].src = baseHREF + "hright.gif";
	_scrollImgs[7] = new Image(16,16);
	_scrollImgs[7].src = baseHREF + "hright2.gif";
	_scrollImgs[8] = new Image(16,16);
	_scrollImgs[8].src = baseHREF + "vbg.gif";
	_scrollImgs[9] = new Image(16,17);
	_scrollImgs[9].src = baseHREF + "vthumb.gif";
	_scrollImgs[10] = new Image(16,16);
	_scrollImgs[10].src = baseHREF + "hbg.gif";
	_scrollImgs[11] = new Image(17,16);
	_scrollImgs[11].src = baseHREF + "hthumb.gif";
	_scrollImgs[12] = new Image(15,15);
	_scrollImgs[12].src = baseHREF + "null.gif";
	_loading = false;
}

//
// Creates all necessary layers
//
function _fInit() 
{ 
	_fRealInit(this); 
}
function _fRealInit(frame) 
{
	// extra one pixel border outside of top/left/width/height
	if(_loading) 
	{
		setTimeout(_fRealInit, 100, frame);
		return;
	}
	_loading = true;
	
	self.status = "Please wait while the document is getting loaded...";
	
	var borderLayer, contentLayer;
	
	/*
	borderLayer = new Layer(frame.width+2);
	borderLayer.left = frame.left-1;
	borderLayer.top = frame.top-1;
	borderLayer.clip.width = frame.width+2;
	borderLayer.height = frame.height+2;
	borderLayer.clip.height = frame.height+2;
	*/
	borderLayer = new Layer(frame.width);
	borderLayer.left = frame.left;
	borderLayer.top = frame.top;
	borderLayer.width = frame.width;
	borderLayer.clip.width = frame.width;
	borderLayer.height = frame.height;
	borderLayer.clip.height = frame.height;
	
	borderLayer.document.bgColor = frame.borderColor;
	
	borderLayer.visibility = "inherit";
	
	frame.borderLayer = borderLayer;
	
	contentLayer = new Layer(frame.width);
	contentLayer.captureEvents(Event.ONLOAD);
	contentLayer.onLoad = _fOnLoad;
	
	frame.layer = contentLayer;
	
	frame.layer.frame = frame;
	
	frame.vspLayer = new Layer(16);							// contains scroll bar
	frame.vsuLayer = new Layer(16);							// contains up arrow
	frame.vsdLayer = new Layer(16);							// contains down arrow
	frame.vssLayer = new Layer(16);							// contains thumb
	
	_fInitComp(frame.vspLayer,_scrollStartVJump, _scrollEndVJump, 8);
	_fInitComp(frame.vsuLayer,_scrollStartUp, _scrollEndUp, 0);
	_fInitComp(frame.vsdLayer,_scrollStartDown, _scrollEndDown, 2);
	_fInitComp(frame.vssLayer,_scrollStartDrag, _scrollEndDrag, 9);
	
	frame.vssLayer.parLayer = frame.layer;
	frame.vssLayer.spLayer = frame.vspLayer;
	frame.vspLayer.ssLayer = frame.vssLayer;
	frame.vsuLayer.ssLayer = frame.vssLayer;
	frame.vsdLayer.ssLayer = frame.vssLayer;
	
	frame.hspLayer = new Layer(frame.width-29);	// contains scroll bar
	frame.hsuLayer = new Layer(16);				// contains left arrow
	frame.hsdLayer = new Layer(16);				// contains right arrow
	frame.hssLayer = new Layer(17);				// contains thumb
	
	_fInitComp(frame.hspLayer,_scrollStartHJump, _scrollEndHJump, 10);
	_fInitComp(frame.hsuLayer,_scrollStartLeft, _scrollEndLeft, 4);
	_fInitComp(frame.hsdLayer,_scrollStartRight, _scrollEndRight, 6);
	_fInitComp(frame.hssLayer,_scrollStartDrag, _scrollEndDrag, 11);
	
	frame.hssLayer.parLayer = frame.layer;
	frame.hssLayer.spLayer = frame.hspLayer;
	frame.hspLayer.ssLayer = frame.hssLayer;
	frame.hsuLayer.ssLayer = frame.hssLayer;
	frame.hsdLayer.ssLayer = frame.hssLayer;

	frame.nLayer = new Layer(15);// when two scroll bars
	_fInitComp(frame.nLayer,_fDoNothing, _fDoNothing, 12);
	
	frame.isInit = true;
	_loading = false;
}


//
// Loads the src
//
function _fLoadSrc(src, noSetup) 
{ 
	_fRealLoadSrc(this, src, noSetup); 
}
function _fRealLoadSrc(frame, src, noSetup) 
{
	if(_loading || !frame.isInit) 
	{
		setTimeout(_fRealLoadSrc, 100, frame, src);
		return;
	}
	src = src || frame.src;
	
	frame.src = src;
	
	if(_nav4) 
	{
		_loading = true;
		frame.layer.load(src, frame.width);
		if(frame.isSetup) 
		{
			frame.layer.vScroll(0, false, true);
			frame.layer.hScroll(0, false, true);
		}
		if(!noSetup) 
			frame.setup();
	} 
	else 
	{
		frame.layer.src = src;
	}
}

//
// Places layers and adjusts them as necessary
//
function _fSetup() 
{ 
	_fRealSetup(this); 
}
function _fRealSetup(frame) 
{
	if(!_nav4) 
		return;
	self.status = "Please wait while the document is getting loaded...";
	if(_loading || !frame.isInit) 
	{
		// must wait until the layer has finished loading to calculate this
		setTimeout(_fRealSetup, 100, frame);
		return;
	}
	frame.layer.visibility = "show";
	/* This piece of code is written to fix the bug of the Navigator.
	If a layer contains additional layers, navigator always returns 0 
	for the top layer's document width and document height. In this application
	since layers are used left and right for all the documents, we need to 
	calculate the highest width and highest height in all the layers and then assign the highest 
	to the get the fram.layer.document.width
	Author - Sri Tadimari
	*/
	
	var actWidth = 0;
	var actHeight = 0;
	var curTop = 0;
	var index;
	
	if(frame.layer.layers.length > 0)
	{
		for(index=0;index < frame.layer.layers.length;index++)
		{
			if(frame.layer.layers[index])
			{
				if(frame.layer.layers[index].document.width > actWidth)
					actWidth = frame.layer.layers[index].document.width;
				if(frame.layer.layers[index].document.height > actHeight)
					actHeight = frame.layer.layers[index].document.height;
			}
		}
		if((frame.layer.src.indexOf("blurbAd.asp") != -1))
		{
			actHeight = frame.layer.layers["blrbInfoBlock1"].document.height + 150;
		}
		if((frame.layer.src.toLowerCase().indexOf("archivelist.asp") != -1))
		{
			if(frame.layer.layers["archInfoBlock1"])
				actHeight = frame.layer.layers["archInfoBlock1"].document.height;
			else
				actHeight = 0;
		}
	}
	else
	{
		actWidth = frame.layer.document.width;
		actHeight = frame.layer.document.height;
	}
	//frame.hMax = frame.layer.document.width;
	//frame.vMax = frame.layer.document.height;
	
	// This code has to be used becuase these particular document has layers laid out 
	// one below the other and hardcoding had to be done.Fix this problem later on
	if(frame.layer.src.indexOf("aboutUs_content_4") != -1)
	{
		actHeight = 0;
		for(index=0;index < frame.layer.layers.length;index++)
		{
			if(frame.layer.layers[index])
			{
				actHeight += frame.layer.layers[index].document.height;
			}
		}
		actHeight += 50;
	}
	if(frame.layer.src.indexOf("serviceDetails.htm") != -1)
	{
		actHeight = 0;
		for(index=0;index < frame.layer.layers.length;index++)
		{
			if(frame.layer.layers[index])
			{
				actHeight += frame.layer.layers[index].document.height;
			}
		}	
		actHeight += 120;
	}
	// if the window displayed is the Booking Window, then don't display the scrollbars.
	//if(frame.layer.src.indexOf("cusCent_content_4") != -1)
	//	actHeight = frame.height-17;
	
	frame.hMax = actWidth;
	frame.vMax = actHeight;
	
	if((frame.hMax > frame.width) && !frame.hasHScroll) 
	{
		
		frame.hasHScroll = true;
		frame.height -= 16; // make content shorter to fit horiz. scroll bar
		frame.load(); 		// reload to see if hMax changes
		return;
	} 
	else if((frame.hMax <= frame.width) && frame.hasHScroll) 
	{

		frame.hasHScroll = false;
		frame.height += 16; // make content taller
		frame.load();		// reload to see if hMax changes
		return;
	}

	if((frame.vMax > frame.height) && !frame.hasVScroll) 
	{
		frame.hasVScroll = true;
		frame.width -= 16; // make content skinnier to fit vert. scroll bar
		frame.load(); 		 // reload to see if vMax changes
		return;
	} 
	else if((frame.vMax <= frame.height) && frame.hasVScroll) 
	{
		frame.hasVScroll = false;
		frame.width += 16; 	// make content fatter
		frame.load(); 		// reload to see if hMax changes
		return;
	}
	
	self.status = "Please wait while the document is getting loaded...";
	frame.layer.left = frame.left;
	frame.layer.top = frame.top;
	frame.layer.clip.top = 0;
	frame.layer.clip.left = 0;
	frame.layer.clip.width = frame.width;
	frame.layer.clip.height = frame.height;
	frame.layer.bgColor = "#FFFFFF";
	frame.layer.visibility = "inherit";
	
	frame.layer.oHeight = frame.height;
	frame.layer.oWidth = frame.width;
	frame.layer.oTop = frame.top;
	frame.layer.oLeft = frame.left;
	frame.layer.vMax = frame.vMax;
	frame.layer.hMax = frame.hMax;
	
	frame.layer.vScroll = _fVScroll;
	frame.layer.hScroll = _fHScroll;
	
	frame.vssLayer.v = frame.hasVScroll;
	frame.hssLayer.h = frame.hasHScroll;


	if(frame.hasVScroll) 
	{
		// create scroll bar on the side of the layer here
		var vspLayerBottom = frame.height-31;
		var vspLayerTop = frame.top+16;
		var vsdLayerTop = frame.top + frame.height-16;
		if(frame.hasVScroll) 
		{
			vspLayerBottom++;
			vsdLayerTop++;
		}
		if(frame.baseHREF.indexOf("mac") != -1) 
		{
			vspLayerTop--;
			vspLayerBottom++;
		}
		
		_fMoveComp(frame.vspLayer,vspLayerTop, frame.left + frame.width, 16, vspLayerBottom);
		_fMoveComp(frame.vsuLayer,frame.top, frame.vspLayer.left, 16, 16);
		_fMoveComp(frame.vsdLayer,vsdLayerTop, frame.vspLayer.left, 16, 16);
		_fMoveComp(frame.vssLayer,vspLayerTop, frame.vspLayer.left, 16, 17);
	}
	else 
	{
		frame.vssLayer.visibility = "hide";
		frame.vspLayer.visibility = "hide";
		frame.vsuLayer.visibility = "hide";
		frame.vsdLayer.visibility = "hide";
	}

	if(frame.hasHScroll) 
	{
			// create scroll bar on the bottom of the layer here
		var hspLayerWidth = frame.width-31;
		var hspLayerLeft = frame.left+16;
		var hsdLayerLeft = frame.left + frame.width - 16;
		if(frame.hasVScroll) 
		{
			hspLayerWidth++;
			hsdLayerLeft++;
		}
		if(frame.baseHREF.indexOf("mac") != -1) 
		{
			hspLayerWidth++;
			hspLayerLeft--;
		}
		
		_fMoveComp(frame.hspLayer,frame.top+frame.height, hspLayerLeft, hspLayerWidth, 16);
		_fMoveComp(frame.hsuLayer,frame.hspLayer.top, frame.left, 16, 16);
		_fMoveComp(frame.hsdLayer,frame.hspLayer.top, hsdLayerLeft, 16, 16);
		_fMoveComp(frame.hssLayer,frame.hspLayer.top, hspLayerLeft, 17, 16);
	} 
	else 
	{
		frame.hssLayer.visibility = "hide";
		frame.hspLayer.visibility = "hide";
		frame.hsuLayer.visibility = "hide";
		frame.hsdLayer.visibility = "hide";
	}
	
	if(frame.hasHScroll || frame.hasVScroll) 
	{
		document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = _scrollDrag;
	}
	
	if(frame.hasHScroll && frame.hasVScroll)
		_fMoveComp(frame.nLayer,frame.top+frame.height+1, frame.left+frame.width+1, 15, 15);
	else
		frame.nLayer.visibility = "hide";
	self.status = "";	
	frame.isSetup = true;
}
//Register mouse event handlers here
function _fInitComp(layer, mousedown, mouseup, bgSrc) 
{
	layer.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
	layer.onmousedown = mousedown;
	layer.onmouseup = mouseup;
	layer.background.src = _scrollImgs[bgSrc].src;
}
function _fMoveComp(layer, top, left, width, height) 
{
	layer.top = top;
	layer.left = left;
	layer.clip.width = width;
	layer.clip.height = height;
	layer.visibility = "inherit";
}

//
// Default Event Handler
//
function _fDoNothing() {}

//
// ONLOAD Event Handler
// resets _loading, recaptures events, fixes Communicator bug
//
function _fOnLoad() 
{
	var i, out;
	_loading = false;
	for(i=0; i < this.document.links.length; i++)
		 out = this.document.links[i];
	this.captureEvents(Event.ONLOAD | Event.MOUSEDOWN);
	this.onLoad = _fOnLoad;
	this.onMouseDown = _fOnMouseDown;
	
}

//
// ONMOUSEDOWN Event Handler
// Retargets links to the floating frame
//
function _fOnMouseDown(e) 
{
	if(e && this)
	{
		if(e.target && this.frame) 
		{
			if(e.target.href) 
			{
				if((e.target.href.indexOf("mailto:") == -1) &&
					 (e.target.hostname == _domain) &&
					 ((e.target.target == null) ||
					  (e.target.target == "_self"))) 
				{ 
					this.frame.load(e.target,false);
					return false;
				}
			}
		}
	}
	return true;
}

function _fScrollTo(x, y) 
{
	if(!this) 
		return;
	if(!_nav4) 
	{
		//document.frames("scroll"+this.id).self.scrollTo(x,y);
		document.frames(this.name).self.scrollTo(x,y);
		return;
	}
	if((typeof(x) == "number") && (this.hMax > this.width)) 
	{
		var p = x / (this.hMax - this.width);
		this.layer.hScroll(p,true);
	}
	if((typeof(y) == "number") && (this.vMax > this.height)) 
	{
		var p = y/(this.vMax - this.height);
		this.layer.vScroll(p,true);
	}
}

function _fScrollBy(x, y) 
{
	if(!this) 
		return;
	if(!_nav4) 
	{
		//document.frames("scroll"+ this.id).self.scrollBy(x,y);
		document.frames(this.name).self.scrollBy(x,y);
		return;
	}
	if(typeof(x) == "number") 
	{
		x += this.layer.clip.left;
		var p = x/(this.hMax - this.width);
		this.layer.hScroll(p,true);
	}
	if(typeof(y) == "number") 
	{
		y += this.layer.clip.top;
		var p = y/(this.vMax - this.height);
		this.layer.vScroll(p,true);
	}
}

function _fVScroll(p, update, sync) 
{
	
	if(p > 1)	p = 1; 
	if(p < 0) 	p = 0;
	
	
	var i = p*(this.vMax - this.oHeight);
	this.clip.top = i;
	this.clip.bottom = this.oHeight+i;
	this.clip.height = this.oHeight;
	this.top = this.oTop - i;
	
	if(update) 
	{
		// Just move the thumb appropriately.
		var frame = this.frame;
		frame.vssLayer.top = p * (frame.vspLayer.clip.height - frame.vssLayer.clip.height) + 
								frame.vspLayer.top;
	}
	if(!sync) 
	{
		for(f in this.frame.inSync) 
		{
			f = this.frame.inSync[f];
			if(f.hMax > f.width) 
			{
				p = i/(f.vMax - f.height);
				f.layer.vScroll(p, true, true);
			}
		}
	}
}

function _fHScroll(p, update, sync) 
{
	if(p > 1) p = 1; 
	else if(p < 0) p = 0;
	
	var i = p*(this.hMax - this.oWidth);
	this.clip.left = i;
	this.clip.right = this.oWidth+i;
	this.clip.width = this.oWidth;
	this.left = this.oLeft - i;
	if(update) 
	{
		var frame = this.frame;
		frame.hssLayer.left = p*(frame.hspLayer.clip.width - frame.hssLayer.clip.width) +
													frame.hspLayer.left;
	}
	if(!sync) 
	{
		for(f in this.frame.inSync) 
		{
			f = this.frame.inSync[f];
			if(f.hMax > f.width) 
			{
				p = i/(f.hMax - f.width);
				f.layer.hScroll(p, true, true);
			}
		}
	}
}

//
// From here on, you're on your on. This is hairy ugly event handler stuff.
//
function _scrollStartDown(e) 
{
	_lastScrolledId = this.ssLayer.parLayer.frame.id;
	_thumbLayer = this.ssLayer;
	_barLayer = this.ssLayer.spLayer;
	_scrollLayer = this.ssLayer.parLayer;
	this.background.src = _scrollImgs[3].src;
	_scrollDown();
	_scrollDownInt = setInterval("_scrollDown();",100);
	return true;
}
function _scrollDown() 
{
	var p = (_scrollLayer.clip.top+15) / (_scrollLayer.vMax - _scrollLayer.oHeight);
	_scrollLayer.vScroll(p, true);
}
function _scrollEndDown(e) 
{
	this.background.src = _scrollImgs[2].src;
	clearInterval(_scrollDownInt);
	return true;
}
function _scrollStartUp(e) 
{
	_lastScrolledId = this.ssLayer.parLayer.frame.id;
	_thumbLayer = this.ssLayer;
	_barLayer = this.ssLayer.spLayer;
	_scrollLayer = this.ssLayer.parLayer;
	this.background.src = _scrollImgs[1].src;
	_scrollUp();
	_scrollUpInt = setInterval("_scrollUp();",100);
	return true;
}
function _scrollUp() 
{
	var p = (_scrollLayer.clip.top-15) / (_scrollLayer.vMax - _scrollLayer.oHeight);
	_scrollLayer.vScroll(p, true);
}
function _scrollEndUp(e) 
{
	this.background.src = _scrollImgs[0].src;
	clearInterval(_scrollUpInt);
	return true;
}
function _scrollStartRight(e) 
{
	_lastScrolledId = this.ssLayer.parLayer.frame.id;
	_thumbLayer = this.ssLayer;
	_barLayer = this.ssLayer.spLayer;
	_scrollLayer = this.ssLayer.parLayer;
	this.background.src = _scrollImgs[7].src;
	_scrollRight();
	_scrollRightInt = setInterval("_scrollRight();",100);
	
	return false;
}
function _scrollRight() 
{
	var p = (_scrollLayer.clip.left+15) / (_scrollLayer.hMax - _scrollLayer.oWidth);
	_scrollLayer.hScroll(p, true);
}
function _scrollEndRight(e) 
{
	this.background.src = _scrollImgs[6].src;
	clearInterval(_scrollRightInt);
	return false;
}
function _scrollStartLeft(e) 
{
	_lastScrolledId = this.ssLayer.parLayer.frame.id;
	_thumbLayer = this.ssLayer;
	_barLayer = this.ssLayer.spLayer;
	_scrollLayer = this.ssLayer.parLayer;
	this.background.src = _scrollImgs[5].src;
	_scrollLeft();
	_scrollLeftInt = setInterval("_scrollLeft();",100);
	return false;
}
function _scrollLeft() 
{
	var p = (_scrollLayer.clip.left-15) /(_scrollLayer.hMax - _scrollLayer.oWidth);
	_scrollLayer.hScroll(p, true);
}
function _scrollEndLeft(e) 
{
	this.background.src = _scrollImgs[4].src;
	clearInterval(_scrollLeftInt);
	return false;
}
function _scrollStartVJump(e) 
{
	_lastScrolledId = this.ssLayer.parLayer.frame.id;
	_thumbLayer = this.ssLayer;
	_barLayer = this.ssLayer.spLayer;
	_scrollLayer = this.ssLayer.parLayer;
	if(e.pageY > this.ssLayer.top)
		dir = "1";
	else 
		dir = "-1";
	_scrollVJump(dir,-1);
	//_scrollVJumpInt = setInterval("_scrollVJump("+dir+","+e.pageY+");", 150);
	return false;
}
function _scrollVJump(dir,py) 
{
	var p = (_scrollLayer.clip.top+dir*_scrollLayer.clip.height) /(_scrollLayer.vMax - _scrollLayer.oHeight);
	
	if(p > 1) 	p = 1; 
	if(p < 0) 	p = 0;
	
	var t = p*(_barLayer.clip.height - _thumbLayer.clip.height) + _barLayer.top;
	
	if((dir == 1) && (py != -1) && (t > py)) return;
	if((dir == -1) && (py != -1) && (t < (py-17))) return;
	_scrollLayer.vScroll(p);
	_thumbLayer.top = t;
}
function _scrollEndVJump() 
{
	//clearInterval(_scrollVJumpInt);
	return false;
}
function _scrollStartHJump(e) 
{
	_lastScrolledId = this.ssLayer.parLayer.frame.id;
	_thumbLayer = this.ssLayer;
	_barLayer = this.ssLayer.spLayer;
	_scrollLayer = this.ssLayer.parLayer;
	if(e.pageX > this.ssLayer.left)
		dir = "1";
	else dir = "-1";
	_scrollHJump(dir,-1);
	_scrollHJumpInt = setInterval("_scrollHJump("+dir+","+e.pageX+");", 100);
	return false;
}
function _scrollHJump(dir,px) 
{
	var p = (_scrollLayer.clip.left+dir*_scrollLayer.clip.width)/
			(_scrollLayer.hMax - _scrollLayer.oWidth);
	if(p > 1) p = 1; if(p < 0) p = 0;
	t = p*(_barLayer.clip.width - _thumbLayer.clip.width) + 
			_barLayer.left;
	if((dir == 1) && (px != -1) && (t > px)) return;
	if((dir == -1) && (px != -1) && (t < (px-17))) return;
	_scrollLayer.hScroll(p);
	_thumbLayer.left = t;
}
function _scrollEndHJump() 
{
	clearInterval(_scrollHJumpInt);
	return false;
}
function _scrollStartDrag(e) 
{
	if(this.parLayer) 
	{
		_lastScrolledId = this.parLayer.frame.id;
		_dragObject = this;
		_dragObject.oTop = _dragObject.top;
		_dragObject.oLeft = _dragObject.left;
		_dragObject.hOffset = e.pageX - _dragObject.oLeft;
		_dragObject.vOffset = e.pageY - _dragObject.oTop;
		return false;
	}
	return true;
}
function _scrollDrag(e) 
{
	if(!_dragObject)
	{
		 return true;
	}
	var pY = e.pageY;
	var pX = e.pageX;
	if(_dragObject.v) 
	{
		pY -= _dragObject.vOffset;
		if((pX > (_dragObject.left+54)) || (pX < (_dragObject.left-38))) 
		{
			pY = _dragObject.oTop;
		}
		if(pY < _dragObject.spLayer.top)
			pY = _dragObject.spLayer.top;
		if(pY > _dragObject.spLayer.clip.height + _dragObject.spLayer.top - _dragObject.clip.height)
			pY = _dragObject.spLayer.clip.height +
					 _dragObject.spLayer.top - 
					 _dragObject.clip.height;	 
		_dragObject.top = pY;
		percentScroll = (pY - _dragObject.spLayer.top) / (_dragObject.spLayer.clip.height - _dragObject.clip.height);
		_dragObject.parLayer.vScroll(percentScroll);
	} 
	else 
	{
		pX -= _dragObject.hOffset;
		if((pY > (_dragObject.top+54)) || (pY < (_dragObject.top-38))) 
		{
			pX = _dragObject.oLeft;
		}
		if(pX < _dragObject.spLayer.left)
			pX = _dragObject.spLayer.left;	
		if(pX > _dragObject.spLayer.clip.width + _dragObject.spLayer.left - _dragObject.clip.width)
			pX = _dragObject.spLayer.clip.width + _dragObject.spLayer.left - _dragObject.clip.width;	
		_dragObject.left = pX;
		percentScroll = (pX - _dragObject.spLayer.left) /(_dragObject.spLayer.clip.width - _dragObject.clip.width);
		_dragObject.parLayer.hScroll(percentScroll);
	}
	return false;
}
function _scrollEndDrag() 
{
	_dragObject = false;
	return false;
}
