mainNavItems = new Array(	'env',
								'people',
								'organizations',
								'vessels'
						);
						
var mainNavItemsState = new Object();
mainNavItemsState.env = "off";
mainNavItemsState.people = "off";
mainNavItemsState.organizations = "off";
mainNavItemsState.vessels = "off";


showClass='shown';
hideClass='hidden';

function DisplayPropertyNames(obj) {
    var names = "";
    for(var name in obj) names += name + "\n";
    alert(names);
} 


function showHideLists(showMe) {
	uls=document.getElementById('finder').getElementsByTagName('ul');
	subuls = document.getElementById(showMe).getElementsByTagName('ul');
	if (mainNavItemsState[showMe] == 'off') {
		cssjs('remove',uls[showMe],hideClass);
		cssjs('add',uls[showMe],showClass);
		for(i=0; i<subuls.length; i++) {
			cssjs('remove',subuls[i],hideClass);
			cssjs('add',subuls[i],showClass);
		}
		mainNavItemsState[showMe] = 'on';
		makeRequest('common/saveTopicState.php?' + showMe + '=on');
	}
	else {
		cssjs('remove',uls[showMe],showClass);
		cssjs('add',uls[showMe],hideClass);
		for(i=0; i<subuls.length; i++) {
			cssjs('remove',subuls[i],showClass);
			cssjs('add',subuls[i],hideClass);
		}
		mainNavItemsState[showMe] = 'off';
		makeRequest('common/saveTopicState.php?' + showMe + '=off');
	}	
	// don't follow the real HREF of the link
	return true;
}

function cssjs(a,o,c1,c2) {
	switch (a){
		case 'swap':
			o.className=!cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
			break;
		case 'add':
			if(!cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
			break;	
		case 'remove':
			var rep=o.className.match(' '+c1)?' '+c1:c1;
			o.className=o.className.replace(rep,'');
			break;
		case 'check':
			return new RegExp('\\b'+c1+'\\b').test(o.className)
			break;
	}
}

function makeRequest(url) {
	var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	}
	else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}
	
	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	//http_request.onreadystatechange = function() { alertContents(http_request); };
	http_request.open('GET', url, true);
	http_request.send(null);
}


function checkStates(){
		uls=document.getElementById('finder').getElementsByTagName('ul');
		if (mainNavItemsState.env == "on") {
			subuls = document.getElementById('env').getElementsByTagName('ul');
			cssjs('remove',uls['env'],hideClass);
			cssjs('add',uls['env'],showClass);
			for(i=0; i<subuls.length; i++) {
				cssjs('remove',subuls[i],hideClass);
				cssjs('add',subuls[i],showClass);
			}
		}
		if (mainNavItemsState.people == "on") {
			subuls = document.getElementById('people').getElementsByTagName('ul');
			cssjs('remove',uls['people'],hideClass);
			cssjs('add',uls['people'],showClass);
			for(i=0; i<subuls.length; i++) {
				cssjs('remove',subuls[i],hideClass);
				cssjs('add',subuls[i],showClass);
			}
		}
		if (mainNavItemsState.organizations == "on") {
			subuls = document.getElementById('organizations').getElementsByTagName('ul');
			cssjs('remove',uls['organizations'],hideClass);
			cssjs('add',uls['organizations'],showClass);
			for(i=0; i<subuls.length; i++) {
				cssjs('remove',subuls[i],hideClass);
				cssjs('add',subuls[i],showClass);
			}
		}
		if (mainNavItemsState.vessels == "on") {
			subuls = document.getElementById('vessels').getElementsByTagName('ul');
			cssjs('remove',uls['vessels'],hideClass);
			cssjs('add',uls['vessels'],showClass);
			for(i=0; i<subuls.length; i++) {
				cssjs('remove',subuls[i],hideClass);
				cssjs('add',subuls[i],showClass);
			}
		}
	}

var viewMapWindow = 0;
function openMap(url) {

	if (viewMapWindow)
	{
		if(!viewMapWindow.closed) {
			viewMapWindow.close();
		}
	}
	viewMapWindow = window.open(url, 'viewMapWindow', 'resizable=no,toolbar=no,width=600,height=500');
	viewMapWindow.focus();
}