
google.load("maps", "2.x");
google.setOnLoadCallback(gooInitialize);
var googleInitialized = false;
var map;
var bounds;
var ICON_DIR = "http://www.propublica.org/projects/reinstein/icons/";
var CHART_DIV = "info-col";	
var arrMarkers = new Array()
var arrListItems = new Array();

var g_arr = new Array();



function gooInitialize(){

	mapsInit();	
	chartInit();
	googleInitialized = true;
}



function mapsInit() {

	map = new google.maps.Map2(document.getElementById("map"));
	bounds = new GLatLngBounds();
	map.addControl(new GLargeMapControl());		
//	map.addControl(new GMapTypeControl());	
	map.addMapType(G_PHYSICAL_MAP);
	map.setMapType(G_PHYSICAL_MAP);


	G_PHYSICAL_MAP.getMinimumResolution=function() {
	  return 10;
	
	};
	
	G_PHYSICAL_MAP.getMaximumResolution=function() {
	  return 15;
	
	}; 

	map.disableDoubleClickZoom();

	for(var i=0; i < places.length; i++){
		
		place = places[i];
		place.id = i;
		place.iconname = place.type.replace(/ /g, '_');
		marker = createMarker(place);
		marker.txt = place.name;
		arrMarkers[i] = marker;
		addMarkerToMap(marker);
		
		
	}

	//boundaries = new GLatLngBounds(new GLatLng(swlat,swlng), new GLatLng(nelat,nelng));
	centerAndZoomOnBounds(bounds);
		
}


function chartInit(){
	
	var div = document.getElementById(CHART_DIV);
	for(var i=0; i < places.length; i++){
		
		place = places[i];
		var item = document.createElement("div");
		item.className = "place-item";
		var h2 = document.createElement("h2");
		h2.innerHTML = place.name;
		h2.id = "place_h_" + i;
		
		var title = document.createElement("p");
		if(place.position != "-"){
			title.innerHTML = place.position;
		}
		
		var icon = document.createElement("img");
		icon.src= ICON_DIR + place.iconname + ".png";
		
		var hdiv = document.createElement("div");
		hdiv.className = "hidden";
		var hdivt = document.createElement("p");
		hdivt.innerHTML="Address: " + place.address + "<br>City: " + place.city
		if( place.link !== '-'){
			hdivt.innerHTML+="<br><a href=\""+place.link+"\">More info from the Chicago Tribune</a><br>"
		}
		hdiv.appendChild(hdivt);
		item.appendChild(h2);
		item.appendChild(title);
		h2.appendChild(icon);
		
		item.appendChild(hdiv);
		var hfoot = document.createElement("div");
		hfoot.className="place-item-footer";
		
		item.appendChild(hfoot);
		
		div.appendChild(item);
		
		$(h2).hover(
			
			function(){
				$(this).addClass("hover");
			}, 
			function(){
				$(this).removeClass("hover");
				
		})
		
		
		$(h2).click(function(){ 
			clickPoint($(this).attr('id').match(/[0-9]{1,}/));
		});
	}
	
	
	
}

function addMarkerToMap(m){

	map.addOverlay(m);
	bounds.extend(m.getLatLng());	
	
}


function createMarker(obj){
	//obj has paramaters name, type, position, etc
	
	var pt = new google.maps.LatLng(obj.lat, obj.lng);
	var iconname = obj.iconname;
	var m = new GMarker(pt, getIcon(iconname));
	
	function gotoPoint(){
		clickPoint(obj.id, true);
	}
	
	GEvent.addListener(m, 'click', gotoPoint);	
	
	return m;
	
}

function getIcon(iconname){
	var icon = iconname == undefined || iconname == null || iconname == '' ? G_DEFAULT_ICON : new GIcon(G_DEFAULT_ICON, ICON_DIR + iconname+".png");
	icon.iconSize= new GSize(23,23);
	icon.shadow = null;
	return icon;
	
}



function clickPoint(id, fromMap){
	//what happens when you click on a marker or want to goto a marker
	
	//var m = arrMarkers[id];
	var chart_item = $('#place_h_'+id); //refers only to the h2
	var chart = $("#"+CHART_DIV);
	
	var marker = arrMarkers[id];

	
	if(fromMap == true ||  chart_item.siblings('.hidden').eq(0).css("display") == 'none'){
		
		
		if(map.getZoom() < 14){ 
			map.setZoom(14);
		}
		map.panTo(marker.getLatLng());
		
		chart_item.siblings('.hidden').slideDown(300, function(){
			//alert(chart_item.offset().top + ", " + chart.scrollTop() + " = " + (chart_item.offset().top -chart.scrollTop() ) );
		//	alert(chart_item.position()["top"]);
			chart.animate({scrollTop:  ( chart_item.offset().top - chart.offset().top + chart.scrollTop() )    }, 400)
			
			
		});
		
		
		chart_item.parent().animate({backgroundColor: "#ffe96d"}, 400).animate({backgroundColor: "#ffffff"}, 800)
	}else{
		chart_item.siblings('.hidden').slideUp(); 
		
	}
	
	
	if(!isEmpty(marker.txt)){
		marker.openInfoWindowHtml(marker.txt);
	}
	
}


function centerAndZoomOnBounds(bounds) { //function for centering map around all markers
	var center = bounds.getCenter();
	var newZoom = map.getBoundsZoomLevel(bounds);
	if (map.getZoom() != newZoom) {
	
		map.setCenter(center, newZoom);
	} else {
		map.panTo(center);
	}
} 


function htrace(txt){
}



var places = [{name:"All Faith Pavilion", type:"nursing home", address:"3500 South Giles Ave", city:"Chicago", position:"Psychiatric medical director", zip:"60653", lat:"41.830699", lng:"-87.61948", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/all-faith-pavilion/"},
{name:"Balmoral Home", type:"nursing home", address:"2055 W Balmoral Ave", city:"Chicago", position:"Sees patients", zip:"60625", lat:"41.979514", lng:"-87.680827", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/balmoral-home/"},
{name:"Belmont Nursing Home", type:"nursing home", address:"1936 W Belmont Ave", city:"Chicago", position:"Sees patients", zip:"60657", lat:"41.939729", lng:"-87.676825", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/belmont-nursing-home/"},
{name:"Central Plaza Residential Home", type:"nursing home", address:"321 N Central Ave", city:"Chicago", position:"Psychiatric medical director", zip:"60644", lat:"41.886153", lng:"-87.764889", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/central-plaza-residential-home/"},
{name:"Chicago Ridge Nursing Center", type:"nursing home", address:"10602 Southwest Highway", city:"Chicago Ridge", position:"Sees patients", zip:"60415", lat:"41.702992", lng:"-87.777782", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/chicago-ridge-nursing-center/"},
{name:"Community Mental Health Services", type:"hospital", address:"4755 N Kenmore Ave.", city:"Chicago", position:"-", zip:"60640", lat:"41.968258", lng:"-87.65593", link:"-"},
{name:"Grasmere Place", type:"nursing home", address:"4621 N Sheridan Rd", city:"Chicago", position:"Psychiatric medical director", zip:"60640", lat:"41.965984", lng:"-87.65459", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/grasmere-place/"},
{name:"Kenwood Healthcare Center", type:"nursing home", address:"6125 S Kenwood Ave", city:"Chicago", position:"Psychiatric medical director", zip:"60637", lat:"41.78364", lng:"-87.592944", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/kenwood-healthcare-center/"},
{name:"Kindred North", type:"hospital", address:"2544 West Montrose Avenue", city:"Chicago", position:"Psychiatric medical director", zip:"60618", lat:"41.961471", lng:"-87.692693", link:"-"},
{name:"Loretto Hospital", type:"hospital", address:"645 S Central Ave", city:"Chicago", position:"Admitting privileges", zip:"60644", lat:"41.872395", lng:"-87.764473", link:"-"},
{name:"Lydia Healthcare Center", type:"nursing home", address:"13901 S Lydia Ave", city:"Robbins", position:"Psychiatric medical director", zip:"60472", lat:"41.640346", lng:"-87.700078", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/lydia-healthcare/"},
{name:"Methodist Hospital", type:"hospital", address:"5025 N Paulina St", city:"Chicago", position:"Psychiatric medical director", zip:"60640", lat:"41.972783", lng:"-87.670932", link:"-"},
{name:"Ridgeview Rehab and Nursing Center", type:"nursing home", address:"6450 North Ridge Ave.", city:"Chicago", position:"Psychiatric medical director", zip:"60626", lat:"41.999497", lng:"-87.677726", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/ridgeview-rehab-nursing-center/"},
{name:"Sacred Heart Home", type:"nursing home", address:"1550 S. Albany Ave", city:"Chicago", position:"Psychiatric medical director", zip:"60623", lat:"41.85995", lng:"-87.703126", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/sacred-heart-home/"},
{name:"Skokie Meadows Nursing Center", type:"nursing home", address:"4600 Golf Rd", city:"Skokie", position:"Psychiatric medical director", zip:"60076", lat:"42.055347", lng:"-87.742081", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/skokie-meadows-nursing-center-i-i/"},
{name:"Somerset Place", type:"nursing home", address:"5009 N Sheridan Rd", city:"Chicago", position:"Psychiatric medical director", zip:"60640", lat:"41.973606", lng:"-87.654771", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/somerset-place/"},
{name:"St. Elizabeth Hospital", type:"hospital", address:"1431 North Claremont Ave.", city:"Chicago", position:"Admitting privileges", zip:"60622", lat:"41.907218", lng:"-87.685744", link:"-"},
{name:"St. Mary Hospital", type:"hospital", address:"2233 West Division St.", city:"Chicago", position:"Admitting privileges", zip:"60622", lat:"41.902931", lng:"-87.683023", link:"-"},
{name:"The Westwood Manor", type:"nursing home", address:"2444 W. Touhy Ave.", city:"Chicago", position:"Psychiatric medical director", zip:"60645", lat:"42.01239", lng:"-87.691387", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/the-westwood-manor/"},
{name:"Uptown Research Institute", type:"research", address:"1021 West Lawrence Ave.", city:"Chicago", position:"Psychiatric consultant and former research director", zip:"60640", lat:"41.968957", lng:"-87.655555", link:"-"},
{name:"Warren Park Health and Living Center", type:"nursing home", address:"6700 N. Damen Ave.", city:"Chicago", position:"Psychiatric medical director", zip:"60645", lat:"42.002838", lng:"-87.680481", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/warren-park-health-living-center/"},
{name:"Westshire (Cedar Point) Nursing and Rehab Center", type:"nursing home", address:"5825 WEST CERMAK ROAD", city:"Cicero", position:"Psychiatric medical director", zip:"60804", lat:"41.850766", lng:"-87.769848", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/westshire-nursing-rehab-center/"},
{name:"Wilson Care", type:"nursing home", address:"4544 NORTH HAZEL STREET", city:"Chicago", position:"Psychiatric medical director", zip:"60640", lat:"41.964958", lng:"-87.652565", link:"http://nursinghomes.apps.chicagotribune.com/nursing-home/wilson-care/"}];

function isEmpty(val){

	if(val==null || val==undefined || val=="")
		return true;
	else
		return false;

}


