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 = document.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";				
				}
			}				
		}
	}
}



// Map component for Broad Realty search form

var Map = {
	Controller : {
		initialize : function(el) {
			var element = el;
			if(!el.getAttribute("activated") || el.getAttribute("activated") == 0) {	
				el.setAttribute("activated", 1);
				this.selectArea(element);
			}
			else {
				el.setAttribute("activated", 0);
				this.unselectArea(element);
			}
		},
		selectArea : function(el) {
			var element = el;
			if(el.id.indexOf("form_") == -1) Map.Graphics.showArea(element);
			Map.Form.selectAreas(element);
		},
		unselectArea : function(el) {
			var element = el;
			if(el.id.indexOf("form_") == -1) Map.Graphics.hideArea(element);
			Map.Form.unselectAreas(element);
		},
		rollover : function(el, display) {
			var element = el;
			if(display == 1) Map.Graphics.showArea(element);	
			else  Map.Graphics.hideArea(element);	
		}	
	},
	Graphics : {
		showArea : function(el) {
			el.style.opacity = "1";
			el.style.filter = "alpha(opacity=100)";
		},
		hideArea : function(el) {
			if(el.getAttribute("activated") != 1) {
			el.style.opacity = ".01";
			el.style.filter = "alpha(opacity=1)";
			}
		}		
	},
	Form : {
		selectAreas : function(el) {
			var refID = el.id;
			if(refID.indexOf("form_") != -1) {
				var formArea = refID.replace(/form_/g, "")
				var element = document.getElementById(formArea);
				element.setAttribute("activated", 1);
				Map.Graphics.showArea(element);
			}
			else {
				var formArea = "form_" + refID;
				var element = document.getElementById(formArea);
				element.checked = true;
				element.setAttribute("activated", 1);
			}
		},
		unselectAreas : function(el) {
			var refID = el.id;
			if(refID.indexOf("form_") != -1) {
				var formArea = refID.replace(/form_/g, "")
				var element = document.getElementById(formArea);
				element.setAttribute("activated", 0);
				Map.Graphics.hideArea(element);
			}
			else {
				var formArea = "form_" + refID;
				var element = document.getElementById(formArea);
				element.checked = false;
				element.setAttribute("activated", 0);
			}
		}		
	}
}
