function update_ul_towns(field, neighs_id, zip) {
	if (field.checked == true) {
		update_neighs(neighs_id, true);
		setDisplay(zip);	
	}
	else {
		update_neighs(neighs_id, false);
		setNoDisplay(zip);
	}
}

function update_bos_towns(field, neighs_id) {
	if (field.checked == true) {
		update_neighs(neighs_id, true);
		setBoston();
	}
	else {
		update_neighs(neighs_id, false);
		setNoBoston();
	}
}

function update_ul_towns_reverse(field_id, neighs_id) {
	if ($(field_id).checked == true) {
		$(field_id).checked = false;
		update_neighs(neighs_id, false);
	}
	else {
		$(field_id).checked = true;
		update_neighs(neighs_id, true);
	}
}

function update_neighs(neighs_id, checked) {
	var elements = Form.getElements($(neighs_id));
	elements.each ( function(input) {
		input.checked = checked;
	})
}

function loadZipImages(zipnum) {
	str = "maprollimg_" + zipnum + " = new Image();";
	eval(str);
	str = "maprollimg_" + zipnum + ".src = '/images/map/" + zipnum + ".gif';";
	eval(str);
}

maprollimg_0 = new Image();
maprollimg_0.src = "/images/map/blank.gif";
boston_zips = ['SectWATE', 'SectNEND', 'SectBEAC', 'SectMIDT', 'SectBBAY', 'SectSEND', 'SectSEAP', 'SectSBOS', 'SectSOSW', 'SectFENW', 'SectALLS', 'SectCHAR', 'SectWEND']
	
function rollOverMap(zip) {
	setDisplay(zip);
}

function rollOffMap(zip, field_id) {
	if ($(field_id).checked == true) {
		setDisplay(zip);
	}
	else {
		setNoDisplay(zip);
	}
}

function mapClick(zip, field_id, neighs_id) {
	update_ul_towns_reverse(field_id, neighs_id)
	if($(field_id).checked == true) {
		setDisplay(zip);
	}
	else {
		setNoDisplay(zip);
	}
}

function preloadMaps(townslist) {
	towns_arr = townslist.split(',');
	if (towns_arr.include('1')){
		for(i = 0, len = boston_zips.length; i < len; ++ i) {
			setDisplay(boston_zips[i]);
		}
	}
	if(towns_arr.include('-10') || towns_arr.include('-11')) {
		setDisplay('SectALLS');
	}
	else {
	  setNoDisplay('SectALLS');
	}
	if(towns_arr.include('-14') || towns_arr.include('-176')) {
		setDisplay('SectBBAY');
	}
	else {
	  setNoDisplay('SectBBAY');
	}
	if(towns_arr.include('-15') || towns_arr.include('-175')) {
		setDisplay('SectBEAC');
	}
	else {
	  setNoDisplay('SectBEAC');
	}
	if(towns_arr.include('-18') || towns_arr.include('-174')) {
		setDisplay('SectFENW');
	}
	else {
	  setNoDisplay('SectFENW');
	}
	if(towns_arr.include('-21') || towns_arr.include('-23') || towns_arr.include('-24') || towns_arr.include('-25') || towns_arr.include('-27')) {
		setDisplay('SectMIDT');
	}
	else {
	  setNoDisplay('SectMIDT');
	}
	if(towns_arr.include('-12')) {
		setDisplay('SectCHAR');
	}
	else {
	  setNoDisplay('SectCHAR');
	}
	if(towns_arr.include('-16')) {
		setDisplay('SectNEND');
	}
	else {
	  setNoDisplay('SectNEND');
	}
	if(towns_arr.include('-26')) {
		setDisplay('SectSEAP');
	}
	else {
	  setNoDisplay('SectSEAP');
	}
	if(towns_arr.include('-7') || towns_arr.include('-20') || towns_arr.include('-9')) {
		setDisplay('SectSOSW');
	}
	else {
	  setNoDisplay('SectSOSW');
	}
	if(towns_arr.include('-5') || towns_arr.include('-73')) {
		setDisplay('SectSBOS');
	}
	else {
	  setNoDisplay('SectSBOS');
	}
	if(towns_arr.include('-17') || towns_arr.include('-181')) {
		setDisplay('SectSEND');
	}
	else {
	  setNoDisplay('SectSEND');
	}
	if(towns_arr.include('-19')) {
		setDisplay('SectWATE');
	}
	else {
	  setNoDisplay('SectWATE');
	}
	if(towns_arr.include('-22')) {
		setDisplay('SectWEND');
	}
	else {
	  setNoDisplay('SectWEND');
	}
	if(towns_arr.include('13')) {
		setDisplay('SectCAMB');
	}
	else {
	  setNoDisplay('SectCAMB');
	}
	if(towns_arr.include('12')) {
		setDisplay('SectBROO');
	}
	else {
	  setNoDisplay('SectBROO');
	}
	if(towns_arr.include('39')) {
		setDisplay('SectNEWT');
	}
	else {
	  setNoDisplay('SectNEWT');
	}
	if(towns_arr.include('40')) {
		setDisplay('SectWALT');
	}
	else {
	  setNoDisplay('SectWALT');
	}
	if(towns_arr.include('41')) {
		setDisplay('SectWATT');
	}
	else {
	  setNoDisplay('SectWATT');
	}
}

function setDisplay(zip) {
	$('invisiMap'+ zip).innerHTML = "<img src=\"" + eval("maprollimg_" + zip + ".src") + "\" width=624 height=412 border=0 name=transmapsinvisiMap  usemap=#h_map class=search-map>";
}

function setNoDisplay(zip) {
	$('invisiMap'+ zip).innerHTML = "<img src=\"" + eval("maprollimg_0.src") + "\"  width=624 height=412 border=0 name=transmapsinvisiMap  usemap=#h_map class=search-map>";
}

function setBoston() {
	for(i = 0, len = boston_zips.length; i < len; ++ i) {
		setDisplay(boston_zips[i]);
	}
}

function setNoBoston() {
	for(i = 0, len = boston_zips.length; i < len; ++ i) {
		setNoDisplay(boston_zips[i]);
	}
}

Array.prototype.index = function(val) {
  for(var i = 0, l = this.length; i < l; i++) {
    if(this[i] == val) return i;
  }
  return null;
}

Array.prototype.include = function(val) {
  return this.index(val) !== null;
}
