var open_window = '';
var open_marker = '';
var open_link = '';

var left = 0;
var top = 0;

var hover_box = new Object();
var display_box = new Object();
var fullsize_box = new Object();

/*
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}
*/

function findPos(link) {
	var curleft = curtop = 0;
	var obj = document.getElementById('fullmap');
	
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	
	
	var coords_array = new Array();
	coords_array = link.coords.split(',');
	
	// add icon width to the left value
	if (link.shape.search(/circle/i) != -1 && !link.fullsize)
		coords_array[0] = parseInt(coords_array[0]) + parseInt(coords_array[2]);
	else if (!link.fullsize)
		coords_array[0] = parseInt(coords_array[0]) + parseInt(coords_array[2]) - parseInt(coords_array[0]);
	
	curleft = (left == 0) ? parseInt(curleft) + parseInt(coords_array[0]) : parseInt(left) + parseInt(coords_array[0]);
	curtop = (top == 0) ? parseInt(curtop) + parseInt(coords_array[1]) : parseInt(top) + parseInt(coords_array[1]);
	
	return [curleft,curtop];
}


/***********************************************************/
/*				Hover Window					*/
/***********************************************************/
function createHover(link) {
	if (link.status == 'open') return false;
	var icon = new event(link.id);
	
	var pos = findPos(link);
	
	// DialogBox(name, close option)
	hover_box = new DialogBox('hover_' + icon.id, 0, 0, '', '');
	hover_box.setSize(200,200);
	hover_box.setContents(icon.content);
	hover_box.show();
	hover_box.moveTo(pos[0],pos[1]-10,1);
}

function event(id) {
	this.id = id;
	
	var link_array = new Array();
	link_array = this.id.split('|');
	var link = '/' + link_array[0] + '/' + link_array[1] + '.shtml#' + link_array[2];
	
	this.listener = (open_window != '') ? open_window : 'fullmap';
	this.content = "<b>" + content[id] + "</b><br />Click for more information";
	this.full_content = "";
	
	if (!full_content[id]['multiple'])
		this.full_content = "<b>" + content[id] + "</b><br />" + full_content[id];
	else	// this is a special case, more than one event in this popup
		for (var i = 0; i < full_content[id].length; i++)
			this.full_content += full_content[id][i] + "<br /><br />";
}

function deleteHover() {
	hover_box.hide();
}


/***********************************************************/
/*				Pop-up Display Window				*/
/***********************************************************/
function createDisplay(link) {
	if (link.status == 'open') return false;
	link.status = 'open';
	deleteHover();
	
	if (handleMarker(link, link.id)) {
	
		var icon = new event(link.id);
		
		var pos = findPos(link);
		
		// DialogBox(name, close option)
		display_box = new DialogBox('display_' + icon.id, 1, 0, icon.listener, '');
		display_box.setSize(400,200);
		display_box.setContents(icon.full_content);
		display_box.show();
		display_box.moveTo(pos[0],pos[1]-10,1);
	}
}

function handleMarker(link, id) {
	if (open_marker != id && open_marker != '') {
		deleteDisplay(1);
		open_marker = id;
		open_link = link;
	} else if (open_marker == '') {
		open_marker = id;
		open_link = link;
	}
	
	return true;
}

function deleteDisplay() {
	display_box.hide();
	open_link.status = 'closed';
	open_marker = '';
	open_link = '';
}


/***********************************************************/
/*				Full Size Window					*/
/***********************************************************/
function createFullSize(link) {
	if (open_marker != '') deleteDisplay();
	open_window = link.id + '_window';
	link.fullsize = 1;
	var pos = findPos(link);
	
	// Oberlin displays from bottom right corner
	if (link.id == 'oberlin-map') {
		pos[0] -= 271;
		pos[1] -= 135;
	} else if (link.id == 'key-map') { // 317 x 273
		pos[0] -= 312;
		pos[1] -= 150;
	} else if (link.id == 'avon-lake-map') { // 317 x 273
		pos[0] -= 330;
		pos[1] -= 0;
	} else if (link.id == 'vermilion-map') { // 317 x 273
		pos[0] -= 0;
		pos[1] -= 0;
	}
	
	left = pos[0];
	top = pos[1];
	
	fullsize_box = new DialogBox(link.id + '_window', 0, 1, '', {'padding':'0px','backgroundColor':'#B7BD87','border':'0px'});
	fullsize_box.setSize(200,200);
	fullsize_box.setContents("<img src='images/" + link.id + ".gif' usemap='#" + link.id + "-map' border='0' />" + full_size_content[link.id]);
	fullsize_box.show();
	fullsize_box.moveTo(left,top,1);
}


function deleteFullSize() {
	fullsize_box.hide();
	open_link.status = 'closed';
	open_window = '';
	open_marker = '';
	open_link = '';
	left = 0;
	top = 0;
}
















