      	// == shows all markers of a particular mapcategory, and ensures the checkbox is checked ==
      	function show(mapcategory) {
			eval ("show_mapcatlength = " + mapcategory + ".length");
			for (ii=0;ii<show_mapcatlength;ii++) {
				mapcatarrayname = mapcategory + "[" + ii + "]";
				eval ("map.addOverlay(" + mapcatarrayname + ")");
				eval (mapcategory + "[" + ii + "].show()");
				eval (mapcategory + "[" + ii + "].pleaseHideLater = false");
			}
      	}

      	// == hides all markers of a particular mapcategory, and ensures the checkbox is cleared ==
      	function hide(mapcategory) {
			eval ("hide_mapcatlength = " + mapcategory + ".length");
			for (ij=0;ij<hide_mapcatlength;ij++) {
				eval (mapcategory + "[" + ij + "].hide()");
				eval (mapcategory + "[" + ij + "].pleaseHideLater = true");
			}
      	}

      	// == a checkbox has been clicked ==
      	function boxclick(box,mapcategory,level,catparent) {
       		if (box.checked) {
				if (level == 2) {
					eval ("mapcatlength = " + mapcategory + ".length");	
					for (i=0;i<mapcatlength;i++) {
						eval ("show(" + mapcategory + "[" + i + "])");
						// check all level 3 checkboxes related to this level 2
				       	eval ("document.getElementById(" + mapcategory + "[" + i + "]).checked = true");
					}
				}
				else {
					eval ("show('" + mapcategory + "')");
					// check to see if all level 3 checkboxes are checked, if they are then check the level 2 checkbox
					allchecked = true;
					eval ("mapcatlength = " + catparent + ".length");	
					for (i=0;i<mapcatlength;i++) {
						eval ("ischecked = document.getElementById(" + catparent + "[" + i + "]).checked");
						if (ischecked == false)
							allchecked = false;
					}
					if (allchecked == true) {
				       	eval ("document.getElementById('" + catparent + "').checked = true");
					}
				}
			} else {
				if (level == 2) {
					eval ("mapcatlength = " + mapcategory + ".length");
					for (ib=0;ib<mapcatlength;ib++) {
						eval ("hide(" + mapcategory + "[" + ib + "])");
				       	// uncheck all level 2 and 3 checkboxes
						eval ("document.getElementById(" + mapcategory + "[" + ib + "]).checked = false");
					}
				}
				else {
					eval ("hide('" + mapcategory + "')");
					// uncheck this particular level 3 checkbox
			       	eval ("document.getElementById('" + catparent + "').checked = false");
				}
        	}
      	}
		function getItem(id)
		{
		var itm = false;
		if(document.getElementById)
			itm = document.getElementById(id);
		else if(document.all)
			itm = document.all[id];
		else if(document.layers)
			itm = document.layers[id];
		return itm;
		}

		function toggleAll(dowhat)
		{
		// Check if Hide All or Show All. Then check/uncheck all boxes and display/remove all markers
		//l2cat = .replace(/_/g," ")
		for (l2count=0;l2count<level2cats.length;l2count++) {
			boxy = document.getElementById(level2cats[l2count]);
			if(dowhat == 'collapse')
				boxy.checked = false;
			else
				boxy.checked = true;
			eval ("document.getElementById('" + level2cats[l2count] + "').checked = " + boxy.checked);
			boxclick(boxy,level2cats[l2count],2,'');
		}
		
		
		return false;
		}

		function toggleItem(id)
		{
		itm = getItem(id);
		if(!itm)
			return false;
		if(itm.style.display == 'none')
			itm.style.display = '';
		else
			itm.style.display = 'none';
		return false;
		}

      
