var gMapKey = 'ABQIAAAA78B_ihwLNdKyDWCkJwiztxR6HfNru_MGbBCM9SVjZ8xnfM1kHRRySM4aLjumr8CL7E5hVDEtGMu8Gg';
// for http://www.clickrainbender.com/

google.load('jquery','1');



google.setOnLoadCallback(function() {
	// console.log();
	if (GBrowserIsCompatible()) {
		
		var point = new GLatLng('43.534861','-96.731873');
		var mapSize = new GSize(720,495);
		var map = new GMap2(
			document.getElementById("map"),
			{
				size: mapSize,
				mapTypes: [G_NORMAL_MAP,G_HYBRID_MAP,G_PHYSICAL_MAP]
			});
			
		var props = [];
		var markerGroups = [];
		map.setCenter(point,11,G_NORMAL_MAP);
		// map.addControl(new GSmallMapControl(),new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(100,100)));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMenuMapTypeControl());
		map.enableScrollWheelZoom();
	
		$.getJSON(
			'/listings/data/classes.js',
			function(data) {
			
				$.each(data,function(id,name) {
					$('ul#controls').append('<li><input type="checkbox" name="layer[]" value="'+id+'" id="class'+id+'" /> '+name+'</li>');
					markerGroups[id] = [];
				});
			
			}
			);
	
		$.getJSON(
			'/listings/data/properties.js',
			function(data) {
				createLayer(map,data);
			}
			);
	
	}
	
	function createLayer(map,data) {
		var props = [];
		$.each(data,function(c,items) {
			var cprops = [];
			$.each(items,function(id,info) {
				var point = new GLatLng(info.lat,info.lon);
				var marker = createMarker(point,info.title,info.thumb,id,c);
				map.addOverlay(marker);
				marker.hide();
			});
		});	
		
		$('ul#controls li input[type=checkbox]').click(function() {
			toggleGroups(this.value);
		});
		
		$('ul#controls li:first input:checkbox').click();
	}
	
	function createMarker(point,title,thumb,id,cls) {
		var marker = new GMarker(point);
		markerGroups[cls].push(marker);
		var html = '<div style="height:175px;overflow:auto;"><b>'+title+'</b><br><a href="/ourlistings/bender-property/'+id+'" target="_parent"><img src="/listings/images/listing_photos/'+thumb+'" alt="'+title+'" border="0"></a><br><a href="/ourlistings/bender-property/'+id+'" target="_parent">More Info &raquo;</a></div>';
		GEvent.addListener(marker,'click',function() {
			marker.openInfoWindowHtml(html);
		});
		return marker;
	}
	
	function toggleGroups(c) {
		for (var i = 0; i < markerGroups[c].length; i++) {
			var marker = markerGroups[c][i];
			(marker.isHidden())? marker.show(): marker.hide();
		}
		resetView();
	}
	
	function resetView() {
		var bounds = new GLatLngBounds();
		$(markerGroups).each(function(c,e) {
			if(e) {
				$(e).each(function(i,p) {
					if(!p.isHidden()) {
						bounds.extend(p.getLatLng());
					}
				})
			}
		});
		var zoom = map.getBoundsZoomLevel(bounds);
		if (zoom > 5) {
			map.setZoom(zoom);
			map.setCenter(bounds.getCenter());
		}
	}
	
});
