$(function()
{
	var map = new GMap2(document.getElementById('google_map'));
	var map_center = new GLatLng(intelli.config.map_latitude, intelli.config.map_longtitude);
	var geocoder = new GClientGeocoder();

	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	//map.addControl(new GOverviewMapControl());
	map.addControl(new GScaleControl());
	
	//map.setCenter(map_center, parseInt(intelli.config.map_search_zoom));

	var bounds	= new GLatLngBounds();
	
	$("div.google_map_info").each(function()
	{
		var id_listing = $(this).attr("id").replace('listing_', '');
		var address = $(this).children("input[name='address']").val();
		var city = $(this).children("input[name='city']").val();
		var state = $(this).children("input[name='state']").val();
		var zip = $(this).children("input[name='zip']").val();
		var country = $(this).children("input[name='country']").val();
		var title = $(this).children("input[name='title']").val();
		var description = $(this).children("input[name='description']").val();
		var url = $(this).children("input[name='url']").val();

		var full_address = address + ' ' + city + ', ' + state + ' ' + zip + ', ' + country;

		var lat = $(this).children("input[name='lat']").val();
		var lng = $(this).children("input[name='lng']").val();
		
		var zoom = $(this).children("input[name='zoom']").val();

		if('' != lat && '' != lng)
		{
			var point = new GLatLng(lat, lng);

			var marker = new GMarker(point);
			var html = '';

			map.addOverlay(marker);

			bounds.extend(point);

			map.setCenter(bounds.getCenter(), zoom * 1);
			
			html += '<div style="width: 250px">';
			html += '<a href="' + url + '"><strong>' + title +'</strong></a></h3>';
			html += '<p>' + description + '</p>';
			html += '</div>';

			GEvent.addListener(marker, "click", function()
			{
				map.panTo(marker.getLatLng());
				marker.openInfoWindowHtml(html);
			});
		}
		else
		{
			geocoder.getLatLng(full_address, function(point)
			{
				if(point)
				{
					var marker = new GMarker(point);
					var html = '';

					map.addOverlay(marker);

					bounds.extend(point);
					
					map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));

					html += '<div style="width: 250px">';
					html += '<a href="' + url + '"><strong>' + title +'</strong></a></h3>';
					html += '<p>' + description + '</p>';
					html += '</div>';

					GEvent.addListener(marker, "click", function()
					{
						map.panTo(marker.getLatLng());
						marker.openInfoWindowHtml(html);
					});
				}
			});
		}
	});
});
