var map;
var centerLatitude = 38;
var centerLongitude = -122;
var startZoom = 12;
var listingZoom = 15;
var cats='';
var showcaseCount=0;

var mTest = null;
var startScroll = null;
var prevent_scroll = false;
var mapMove = null;

var baseIcon = new GIcon();
baseIcon.iconSize = new GSize(21, 35);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(6, 20);

var deselectCurrent = function() {};

function initializePoint(pointData, index) {
	function bringToFront(marker,b) {
		focusIndex = -GOverlay.getZIndex(marker.getPoint().lat());
		return focusIndex;
	}
	function focusPoint() {
	  //deselectCurrent();
	  map.addOverlay(focusMarker);
    if (inResults) {
      inResults.style.background='#ffffcc';
    }
    var mappop = document.getElementById('mappop');
    var mappop_photo = document.getElementById('mappop_photo');
    var mappop_provider = document.getElementById('mappop_provider');
    var mappop_city_state = document.getElementById('mappop_city_state');
        
    mappop_photo.src = pointData.photo;
    mappop_provider.innerHTML = pointData.provider;
    mappop_city_state.innerHTML = pointData.city_state;
    mappop.style.display = ''; 
  }
	function unfocusPoint() {
	  deselectCurrent();
	  map.removeOverlay(focusMarker);
    if (inResults) {
      inResults.style.background='#ffffff';
    }	  
    var mappop = document.getElementById('mappop');
    mappop.style.display = 'none';
  }  
  function visitListing() {
    window.location = pointData.url;
  }
  function scrollToListing() {
    window.location.hash = 'search_result_' + index;
    moveBox(document.documentElement.scrollTop);
  }
	  
	pointData.glatlng = new GLatLng(pointData.latitude, pointData.longitude);

	var flagNumber = Number(index);
	if(flagNumber>99) {
	   flagNumber = '';
	}
 	pointData.icon = new GIcon(baseIcon);
		pointData.icon.image = "http://www.gilbertguide.com/pics/caresearch/googlemap/flag"+flagNumber+".png";
	var focusIcon = new GIcon(baseIcon);
		focusIcon.image = "http://www.gilbertguide.com/pics/caresearch/googlemap/flag"+flagNumber+"_on.png";
		
	pointData.marker = new GMarker(pointData.glatlng, {icon:pointData.icon});
	var focusMarker = new GMarker(pointData.glatlng, {zIndexProcess:bringToFront, icon:focusIcon});
			
  GEvent.addListener(pointData.marker, 'mouseover', function() { focusPoint(); /*scrollToListing();*/ });
  GEvent.addListener(focusMarker, 'click', function() { visitListing(); });
  GEvent.addListener(focusMarker, 'mouseout', function() { unfocusPoint(); });  
  
  var inResults = document.getElementById('search_results_' + flagNumber);
  if (inResults) {
    inResults.onmouseover = function() { focusPoint(); };
    inResults.onmouseout = function() { unfocusPoint(); };
  }
  	
  map.addOverlay(pointData.marker);
  
	deselectCurrent = function() {
	  map.removeOverlay(focusMarker);
	};
}

function createMarkers(newMarkers) {
	map.clearOverlays();
	var bounds = new GLatLngBounds();

	for(markerIndex in newMarkers) {
		if (markerIndex >0){
			initializePoint(newMarkers[markerIndex],markerIndex);
			bounds.extend(newMarkers[markerIndex].glatlng);
		};
	}

	if (newMarkers[0].latitude != undefined && newMarkers[0].longitude != undefined){
		newMarkers[0].glatlng = new GLatLng(newMarkers[0].latitude, newMarkers[0].longitude);
	};
	if (newMarkers[0].glatlng != undefined){
		newMarkers[0].icon = new GIcon(baseIcon);
		newMarkers[0].icon.image = "http://www.gilbertguide.com/pics/caresearch/googlemap/flag0.png";
		newMarkers[0].marker = new GMarker(newMarkers[0].glatlng, newMarkers[0].icon);
		//map.addOverlay(newMarkers[0].marker);
		bounds.extend(newMarkers[0].glatlng);
	}
	var zoom = map.getBoundsZoomLevel(bounds);
	map.setZoom(zoom);
	map.setCenter(bounds.getCenter());
}

function init() {
	if (typeof(markers) != 'undefined'){
	  map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		map.removeMapType(G_HYBRID_MAP);
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);

		createMarkers(markers);
	}
}

window.onload = init;
window.onunload = GUnload;

function toggleAlz(obj) {
  if (obj[obj.selectedIndex].value == 'AL' || obj[obj.selectedIndex].value == 'HOMECARE' || obj[obj.selectedIndex].value == 'ADS' || obj[obj.selectedIndex].value == 'CCRC') {
    document.getElementById('alz_dem_care_toggle').style.display = '';
  } else {
    document.getElementById('alz_dem_care_toggle').style.display = 'none';      
  }
}