$(function()
{
	// Create a map object  
	var map = new YMap(document.getElementById('yahoo_map'));  
	var center = new YGeoPoint(parseInt(intelli.config.map_latitude), parseInt(intelli.config.map_longtitude));
	
	// Add map type control  
	map.addTypeControl();  
	
	// Add map zoom (long) control  
	map.addZoomLong();  
	
	// Add the Pan Control  
	map.addPanControl();  
	
	// Set map type to either of: YAHOO_MAP_SAT, YAHOO_MAP_HYB, YAHOO_MAP_REG  
	map.setMapType(YAHOO_MAP_REG);  
	
	// Draw the Map  
	map.drawZoomAndCenter(center, intelli.config.map_link_detail_zoom);
	
	var markers = [];

	$("div.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 && 'undefined' != typeof lat && '' != lng && 'undefined' != typeof lng)
		{
			var currentGeoPoint = new YGeoPoint(lat, lng);  
			var marker= new YMarker(currentGeoPoint);
			
			var markerMarkup = getInfoWindowContent({url: url, title: title, description: description});  
			
			YEvent.Capture(marker, EventsList.MouseClick, function()
			{
				marker.openSmartWindow(markerMarkup);
			});
			
			map.addOverlay(marker); 

			markers.push(currentGeoPoint);
		}
		else
		{
			if('' != full_address.split(' ').join('').replace(/\,/g, ''))
			{
				$.get('controller.php?plugin=yahoomap&file=geocoding&location=' + full_address, function(out)
				{
					var data = eval('(' + out + ')');
					
					if('' != data.lat && '' != data.lng)
					{
						var currentGeoPoint = new YGeoPoint(data.lat, data.lng);  
						var marker= new YMarker(currentGeoPoint);
						
						var markerMarkup = getInfoWindowContent({url: url, title: title, description: description});  
						
						YEvent.Capture(marker, EventsList.MouseClick, function()
						{
							marker.openSmartWindow(markerMarkup);
						});
						
						map.addOverlay(marker); 
			
						markers.push(currentGeoPoint);
						
						var center_zoom = map.getBestZoomAndCenter(markers);
	
						map.drawZoomAndCenter(center_zoom.YGeoPoint, center_zoom.zoomLevel);
					}
				});
			}
		}
	});

	if(markers.length > 0)
	{
		var center_zoom = map.getBestZoomAndCenter(markers);
	
		map.drawZoomAndCenter(center_zoom.YGeoPoint, center_zoom.zoomLevel);
	}
});

function getInfoWindowContent(o)
{
	var html = '';
	
	html += '<div style="width: 250px">';
	html += '<a href="' + o.url + '"><strong>' + o.title +'</strong></a></h3>';
	html += '<p>' + o.description + '</p>';
	html += '</div>';

	return html;
}
