$(document).ready(function() {
	var center_latitude = $('#map').attr('latitude');
	var center_longitude = $('#map').attr('longitude');
	var center_zoom = parseInt($('#map').attr('zoom'));
	
	/* Initialize */
	$('#map').jmap('init', {
		mapCenter:[center_latitude, center_longitude],
		mapZoom: center_zoom,
		mapShowjMapIcon: false
	});
	
	// Zoom 8 for 100 miles
	// Zoom 9 for 25 miles
	// Zoom 10 for 10 miles
	// Zoom 11 for 5 miles

  	$('.location').each(function() {
		var name = $(this).find('.name').attr('rel');
		var address = $(this).find('.address').attr('rel');
		var city = $(this).find('.city').attr('rel');
		var state = $(this).find('.state').attr('rel');
		var zip = $(this).find('.zip').attr('rel');
		var phone = $(this).find('.phone').attr('rel');
		var url = $(this).find('.url').attr('rel');
		
		var pointAddress = address + ',' +
			city + ',' +
			state + ' ' +
			zip;
		
		var pointHTML =
			truncate_long(name, 28) + '<br>' +
			truncate_long(address, 28) + '<br>' +
			truncate_long(city, 17) + ', ' + state + ' ' + zip + '<br>' +
			truncate_long(phone, 28) + '<br>' +
			'<a target="_blank" href="' + url + '">' + truncate_long(url, 28) + '</a>' + 
			'<br><br><br>';
		
			
		var map_link = $(this).find('.showonmap');
		var links = $(this).find('.links');
		var from_address_div = $(this).find('.from_address_div');
		var from_address = $(this).find('.from_address');
			
		$('#map').jmap("searchAddress", {
			address: pointAddress
		},
		function(options, lat) {
			$('#map').jmap('addMarker', {pointLatLng:[lat.y, lat.x], pointHTML: pointHTML});
			
			map_link.click(function() {
				$('#map').jmap("moveTo", {mapCenter: [lat.y, lat.x], centerMethod: "pan"});
				return (false);
			});
		});
		
		$(this).find('.getdirections').click(function() {
			links.hide();
			from_address_div.show();
			return (false);
		});
		
		$(this).find('.getdirections_clicked').click(function() {
			var from_address_formatted = from_address.val()
			from_address_formatted = from_address_formatted.replace(/[\r\n]+/g, ' ');
			from_address_formatted = from_address_formatted.replace(/[\s]+/g, '+');
			
			var to_address_formatted = pointAddress;
			to_address_formatted = to_address_formatted.replace(/[\s]+/g, '+');
			
			var url = "http://maps.google.com/maps?f=d&saddr=" +
				from_address_formatted +
				"&daddr=" +
				to_address_formatted;
			
			window.open(url, 'directions_window');
			
			//$("#directions_panel").empty();
			//
			//$('#map').jmap("searchDirections", {fromAddress: from_address_formatted, toAddress: pointAddress, directionsPanel:"directions_panel"});
			
			return (false);
		});
	});
	
	$('textarea.hide_prefilled').click(function() {
		$(this).val('');
		
		$(this).unbind('click');
	});
	
//	$('#map').jmap("moveTo", {mapZoom: 12});
});

function truncate_long(str, maxChars)
{
	if (!str) return '';
	
	if (str.length > maxChars - 3) {
		str = str.substr(0, maxChars - 3);
		str += "...";
		return str;
	}
	else {
		return str;
	}
}
