function checkArea(area) {	
	if (theForm.cat[area-1].checked) {
	 	isOn = false;
	} else {
		isOn = true;
	}
	document.theForm.cat[area-1].checked = isOn;
}

function checkAreas(from,to) {
	if (document.theForm.cat[from].checked) {
	 	isOn = true;
	} else {
		isOn = false;
	}
	for (i=from; i<to+1; i++) {
		if (document.theForm.cat[i]) {
			document.theForm.cat[i].checked = isOn;
		}
	}
}

var Cats = {
	behavior: {
		selectAll: function(item) {
			var _controller = item.getElementsByTagName("INPUT");
			var controller = _controller[0];
			var all_cats = getElementById("cat_group_all").getElementsByTagName("INPUT");
			for(var i = 0; i < all_cats.length; i++) {
				if(controller.checked) all_cats[i].checked = true;
				else all_cats[i].checked = false;
			}
		},
		selectGroup: function(item, group) {
			if(arguments.length != 2) group = item;
			var _controller = item.getElementsByTagName("INPUT");
			var controller = _controller[0];
			if(arguments.length != 2)
				controller.checked ? controller.checked = false : controller.checked = true;
			var cats = group.getElementsByTagName("INPUT");
			for(var i = 0; i < cats.length; i++) {
				if(controller.checked) cats[i].checked = true;
				else cats[i].checked = false;
			}			
		},
		expandGroup: function(item, group) {
			var cat_display = group.style;
			if(item["display"]) {
				item["display"] = false;
				with(cat_display) {
					visibility = "visible";
					display = "block";
				}
			} else {
				item["display"] = true;
				with(cat_display) {				
					visibility = "hidden";
					display = "none";				
				}
			}				
		}
	}	
}



function area_onClick() {

	var catBoxes = document.theForm.cat;
	var manhattanSelector = document.getElementById("cat_23");		// 'select all' from the checkboxes
	
	for(var i = 0; i < catBoxes.length; i++)
		for(var j = 0; j < this.areas.length; j++)
			if(catBoxes[i].value == this.areas[j])
				catBoxes[i].checked = this.clicked;
				
	manhattanSelector.checked = (function() {
		for(var i = 0, clicked = true; i < map.components.length; i++)
			if(!map.components[i].DOM_AreaObject.isStatic)
				clicked &= map.components[i].DOM_AreaObject.clicked;
		return clicked;
	}).call();
	 
}

var selectAllTrace = false;		// need a static variable to trace the 'select all' option

function allAreas_onClick() {		

	if(typeof map == 'undefined') return;

	for(var i = 0; i < map.components.length; i++)
		if(!map.components[i].DOM_AreaObject.isStatic) {
			var mapComponentObj = map.components[i].DOM_AreaObject;
			mapComponentObj.clicked = selectAllTrace;			
			Map.USE_TOOLTIP = false;
			mapComponentObj.onclick();
			if(mapComponentObj.clicked) {
				mapComponentObj.src = mapComponentObj.src.replace(/_c/g, "");
				mapComponentObj.src = mapComponentObj.src.replace(/.gif/, "_c.gif");
			} else {
				mapComponentObj.src = mapComponentObj.src.replace(/_o/g, "");
				mapComponentObj.src = mapComponentObj.src.replace(/_c/g, "");
			}
		}

		Map.USE_TOOLTIP = true;
		
		selectAllTrace = !selectAllTrace;
	
}