// ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// 
// Coded by Travis Beckham
// http://www.squidfingers.com | http://www.podlob.com
// If want to use this code, feel free to do so, but please leave this message intact.
//
// ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// --- version date: 01/17/03 ---------------------------------------------------------

// ||||||||||||||||||||||||||||||||||||||||||||||||||
// Cross-Browser Functions

var dom = document.getElementById;
var iex = document.all;
var ns4 = document.layers;

function addTheEvent(event,method){
	this[event] = method;
	if(ns4) this.captureEvents(Event[event.substr(2,event.length).toUpperCase()]);
}
function removeTheEvent(event){
	this[event] = null;
	if(ns4) this.releaseEvents(Event[event.substr(2,event.length).toUpperCase()]);
}
function getTheElement(name,nest){
	nest = nest ? "document."+nest+"." : "";
	var el = dom ? document.getElementById(name) : iex ? document.all[name] : ns4 ? eval(nest+"document."+name) : false;
	el.css = ns4 ? el : el.style;
	el.hideVis = function(){el.css.visibility="hidden"};
	el.showVis = function(){el.css.visibility="visible"};
	el.getTop = function(){return parseInt(el.css.top) || 0};
	el.setTop = function(y){el.css.top = ns4 ? y: y+"px"};
	el.getHeight = function(){return ns4 ? el.document.height : el.offsetHeight};
	el.getClipHeight = function(){return ns4 ? el.clip.height : el.offsetHeight};
	el.addTheEvent = addTheEvent;
	el.removeTheEvent = removeTheEvent;
	return el;
}
function getTheMouse(e){
	return iex ? event.clientY : e.pageY;
}

document.addTheEvent = addTheEvent;
document.removeTheEvent = removeTheEvent;

// ||||||||||||||||||||||||||||||||||||||||||||||||||
// imageSwapper Functions

function newImageButton(src){
	img = new Image();
	img.src = src;
	return img;
}
function imageSwapper(img,obj,div){
	obj = eval(obj);
	if(document.layers && div != null){
		document.layers[div].document.images[img].src = obj.src;
	}else{
		document.images[img].src = obj.src;
	}
}

// ||||||||||||||||||||||||||||||||||||||||||||||||||
// Scroll Functions

var currentLoadedContent = null;
var documentLoaded = false;

var wideDistributionOff = newImageButton(""+depth+"images/buttons/distribution_off.gif");
var wideDistributionOn = newImageButton(""+depth+"images/buttons/distribution_on.gif");
var wideBookingOff = newImageButton(""+depth+"images/buttons/booking_agents_off.gif");
var wideBookingOn = newImageButton(""+depth+"images/buttons/booking_agents_on.gif");
var wideRetailersOff = newImageButton(""+depth+"images/buttons/online_retailers_off.gif");
var wideRetailersOn = newImageButton(""+depth+"images/buttons/online_retailers_on.gif");

function initWideInfoScroller(){
	scrollerSpeed = 6; // scrolling speed
	draggerHeight = 28; // Height of scrollbar drag
	trackerHeight = 352; // Height of scrollbar track
	trackerObj = getTheElement("wide_track"); // Reference to the scrollbar track div
	upObject = getTheElement("wide_up"); // Reference to the up arrow div
	downObject = getTheElement("wide_down"); // Reference to the down arrow div
	dragObject = getTheElement("wide_drag"); // Reference to the scrollbar drag div
	contentMaskObject = getTheElement("wide_mask"); // Reference to the content mask div
	trackerTop = dragObject.getTop(); // Scrollbar top contraint
	trackerLength = trackerHeight-draggerHeight; // Adjusted track height
	trackerBottom = trackerTop+trackerLength; // Scrollbar bottom contraint
	contentMaskObjectHeight = contentMaskObject.getClipHeight();// Height of the div that masks the content div
	scrollerTimer = null;
	trackerObj.addTheEvent("onmousedown",scrollerJump);
	upObject.addTheEvent("onmousedown", function(){scroller(scrollerSpeed);return false});
	upObject.addTheEvent("onmouseup", stopScroller);
	upObject.addTheEvent("onmouseout", stopScroller);
	downObject.addTheEvent("onmousedown", function(){scroller(-scrollerSpeed);return false});
	downObject.addTheEvent("onmouseup", stopScroller);
	downObject.addTheEvent("onmouseout", stopScroller);
	dragObject.addTheEvent("onmousedown", startDragger);
	if(iex) dragObject.addTheEvent("ondragstart", function(){return false});
	documentLoaded = true;
	contentLoader("wideRetailers");
}



function contentLoader(name){
	if(!documentLoaded) return;
	if(currentLoadedContent!=null){
		imageSwapper(currentLoadedContent, currentLoadedContent+"Off", "nav");
		contentObject.setTop(0);
		contentObject.hideVis();
	}
	currentLoadedContent = name;
	imageSwapper(name, name+"On", "nav");
	contentObject = getTheElement(currentLoadedContent+"Content","contentMask");
	contentObjectHeight = contentObject.getHeight(); // Height of the content div
	contentObjectLength = contentObjectHeight-contentMaskObjectHeight; // Adjusted content height
	scrollObjectLength = trackerLength/contentObjectLength; // Height difference between the scrollbar track and the content
	contentObject.showVis();
	dragObject.setTop(trackerTop);
	if(contentObjectHeight<=contentMaskObjectHeight){
		trackerObj.hideVis();
		upObject.hideVis();
		downObject.hideVis();
		dragObject.hideVis();
	}else{
		trackerObj.showVis();
		upObject.showVis();
		downObject.showVis();
		dragObject.showVis();
	}
}
function startDragger(e){
	dragStartMouse = getTheMouse(e); // Holds the starting y mouse position
	dragStartOffset = dragObject.getTop(); // Holds the starting top position of the scrollbar drag
	document.addTheEvent("onmousemove", dragger); //was drag
	document.addTheEvent("onmouseup", stopDrag); //was stopDrag
	return false;
}
function stopDragger(){ //was stopDrag
	document.removeTheEvent("onmousemove");
	document.removeTheEvent("onmouseup");
}
function dragger(e){ // was drag
	var currentMouse = getTheMouse(e);
	var mouseDifference = currentMouse-dragStartMouse;
	var dragDistance = dragStartOffset+mouseDifference;
	var dragMovement = (dragDistance<trackerTop) ? trackerTop : (dragDistance>trackerBottom) ? trackerBottom : dragDistance;
	dragObject.setTop(dragMovement);
	var contentMovement = -(dragMovement-trackerTop)*(1/scrollObjectLength);
	contentObject.setTop(contentMovement);
	return false;
}
function scroller(speed){
	var contentMovement = contentObject.getTop()+speed;
	var dragMovement = trackerTop-Math.round(contentObject.getTop()*(trackerLength/contentObjectLength));
	if(contentMovement > 0){
		contentMovement = 0;
	}else if(contentMovement < -contentObjectLength){
		contentMovement = -contentObjectLength;
	}
	if(dragMovement < trackerTop){
		dragMovement = trackerTop;
	}else if(dragMovement > trackerBottom){
		dragMovement = trackerBottom;
	}
	contentObject.setTop(contentMovement);
	dragObject.setTop(dragMovement);
	scrollerTimer = window.setTimeout("scroller("+speed+")",25);
}
function stopScroller(){
	if(scrollerTimer){
		window.clearTimeout(scrollerTimer);
		scrollerTimer = null;
	}
}
function scrollerJump(e){
	var currentMouse = getTheMouse(e);
	var dragDistance = currentMouse-(draggerHeight/2);
	var dragMovement = (dragDistance<trackerTop) ? trackerTop : (dragDistance>trackerBottom) ? trackerBottom : dragDistance;
	dragObject.setTop(dragMovement);
	var contentMovement = -(dragMovement-trackerTop)*(1/scrollObjectLength);
	contentObject.setTop(contentMovement);
	return false;
}

// ||||||||||||||||||||||||||||||||||||||||||||||||||
// Utility Functions

function hideScrollbarsWide(){
	if(document.getElementsByTagName){
		document.getElementsByTagName("body")[0].style.overflow = "hidden";
	}
}
function fixOldNetscape(){
	if(ns4origWidth != window.innerWidth || ns4origHeight != window.innerHeight){
		window.location.reload();
	}	
}
if(document.layers){
	ns4origWidth = window.innerWidth;
	ns4origHeight = window.innerHeight;
	window.onresize = fixOldNetscape;
}

// ||||||||||||||||||||||||||||||||||||||||||||||||||
