state = new Array();

function preload_quote_images() {
	// Create an array of the images used in the nav
	var over_images = new Array('back','bottom_left','bottom_right','top_left','top_right');

	// Preload the over images
	if (document.images) {
		for (var i = 0; i < over_images.length; i++) {
			(new Image()).src = "/images/quote_" + over_images[i] + ".gif";
		}
	}
}

function show_quote(obj, id, position, lock) {
	if(lock == "true") {
		if(state[id] == "on") {
			state[id] = "off";
		} else {
			state[id] = "on";
		}
	}
	
	if((state[id] == "on" && lock == "true") || state[id] != "on") {
		if(position == "left") {
			width = 322;
			fixedX = -1;
			fixedY = -2;
			offsetX = -322;
			offsetY = 10;
		} else {
			width = 322;
			fixedX = -2;
			fixedY = -2;
			offsetX = 322;
			offsetY = 10;
		}
		
		// fixedX: x position (-1 left aligned, -2 right aligned, -3 center of browser)
		// fixedY: y position (-1 below control, -2 above control, -3 center of browser)
		// offsetX: X offset 
		// offsetY: Y offset
		
		var div = document.getElementById(id);
		
		//if(div.style.width != width) {
		var left = 0;
		var top = 0;
		var right = 0;
		var bottom = 0;
		var leftpos = 0;
		var toppos = 0;
		var bh = 0;
		var bw = 0;
		var scrollX = 0;
		var scrollY = 0;
		var height = 0;
		
		
		toppos = obj.offsetTop; // include offset of initial object in top position calculation
		
		aTag = obj;
		do {
			aTag = aTag.offsetParent;
			leftpos	+= aTag.offsetLeft;
			toppos += aTag.offsetTop;
			// alert(toppos);
		} while(aTag.tagName!="BODY");
		
		
		if (document.documentElement && document.documentElement.clientWidth) {
			bw = document.documentElement.clientWidth;
			bh = document.documentElement.clientHeight;
		} else if (document.body) {
			bw = document.body.clientWidth;
			bh = document.body.clientHeight;
		}
		
		if(window.pageXOffset) {
			scrollX = window.pageXOffset;
		} else {
			scrollX = document.documentElement.scrollLeft;
		}
		
		if(window.pageYOffset) {
			scrollY = window.pageYOffset;
		} else {
			scrollY = document.documentElement.scrollTop;
		}
		
		div.style.width = width + 'px';
		
		
		if(fixedX == -1) {
			left =	(obj.offsetLeft + leftpos + offsetX) + "px";
		} else if (fixedX == -2) {
			right = (bw - (obj.offsetLeft + leftpos + obj.offsetWidth + offsetX)) + "px";
		} else if (fixedX == -3) {
			left = scrollX + ((bw/2)-(width/2)) + 'px';
		} else {
			left = eval(fixedX) + "px";
		}

		if(fixedY == -1) {
			top = (obj.offsetTop + toppos + obj.offsetHeight + offsetY) + "px";
		} else if (fixedY == -2) {
			// bottom = (bh - (obj.offsetTop + toppos + offsetY)) + "px";
			// top = (obj.offsetTop + toppos - obj.offsetHeight - offsetY) + "px";
			top = (toppos - getElementHeight(div)) + "px";
		} else if (fixedY == -3) {
			top = scrollY + ((bh/2)-(Math.min(150,bh/2))) + 'px';
		} else {
			top = eval(fixedY) + "px";
		}

		
		if(fixedY != -2) {
				div.style.top = top;
		} else {
			if (div.style.top == 0) {
				div.style.top = "-5000px"; // hide layer offscreen until we can display it, and set the top position based on its height.
			}
		}
		if(fixedX != -2) {
			div.style.left = left;
		} else {
			div.style.right = right;
		}
		
		if(lock == "on" || state[id] == "on") {
			div.style.display = 'block';
			if (fixedY == -2) {
				top = (toppos - getElementHeight(div)) + "px";
				div.style.top = top;
			}
		} else {
			div.style.display = 'none';
		}
	}
}

function getElementHeight(obj) {
	var ns4 = document.layers;
	var op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) 
		||(navigator.userAgent.indexOf("Opera/5")!=-1);
	var op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) 
		||(navigator.userAgent.indexOf("Opera/6")!=-1);
	var agt=navigator.userAgent.toLowerCase();
	var mac = (agt.indexOf("mac")!=-1);
	var ie = (agt.indexOf("msie") != -1); 
	var mac_ie = mac && ie;
	
	if (ns4) {
		// var elem = getObjNN4(document, Elem);
		return obj.clip.height;
	} else {
		if(document.getElementById) {
		// 	var elem = document.getElementById(Elem);
		} else if (document.all){
		// 	var elem = document.all[Elem];
		}
		if (op5) { 
			xPos = obj.style.pixelHeight;
		} else {
			xPos = obj.offsetHeight;
		}
		return xPos;
	} 
}