

function mapShow(container, options) {
	var container = $('div#'+container);

	container.find('div.map-content').fadeTo(350, 0, function() {
		$(this).css('display', 'none').css('opacity', 1);
		container.find('div.map-gmap').css('display', 'block');

		// map container
		var gmapC = $('<div></div>').addClass('gmapC').css('width', container.width()).css('height', container.height()).appendTo( container.find('div.map-gmap') );

		// the map
		var gmap = new google.maps.Map(gmapC[0], {
			zoom: 14,
			disableDefaultUI: false,
			navigationControl: true,
			navigationControlOptions: {
				style: google.maps.NavigationControlStyle.SMALL,
				position: google.maps.ControlPosition.LEFT
			},
			mapTypeControl: false,
			mapTypeControlOptions: {
				style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
				position: google.maps.ControlPosition.BOTTOM_RIGHT
			},
			scaleControl: false,
			center: new google.maps.LatLng(options.latitude, options.longitude),
			mapTypeId: google.maps.MapTypeId.HYBRID
		});
		container.find('div.scroll-pane').jScrollPane(window.__jScrollPaneOptions);

		//gmap.removeMapType(google.maps.MapTypeId.HYBRID);

		if(options.markers) {
			for(var i=0; i<options.markers.length; ++i) {
				var m = options.markers[i];

				var gmark = new google.maps.Marker({
					position: new google.maps.LatLng(m.latitude, m.longitude), 
					map: gmap,
					title: ''
				});

				var buf = '';
				buf += '<div class="divGmapBubble" style="font-size:11px; line-height:14px;">'
				buf += '<div id="divGmapAddress">';
				if(m.title) buf += '<div><b>'+m.title+'</b></div>';
				if(m.address) buf += '<div>'+m.address+'</div>';
				if(m.city) buf += '<div>'+m.city+', '+m.state+' '+m.zip+'</div>';
				if(m.phone) buf +=  '<div style="margin-top:5px;">Tel: '+m.phone+'</div>';
				if(m.phone) buf +=  '<div style="margin-top:5px;"><a href="javascript:;" onclick="gmapShowDirections($(this).parents(\'div.divGmapBubble\'))">Get Directions...</a></div>';
				buf += '</div>';

				buf += '<div id="divGmapDirections" style="display:none;">';

				if(options.directions) {
					buf += '<div style="margin-bottom:10px;">';
					//buf += '<div><b>Directions From:</b></div>';
					for(var i=0; i<options.directions.length; ++i) {
						var saddr = escape(options.directions[i].address);
						var daddr = escape( m.address + ', ' + m.city + ', ' + m.state + ' ' + m.zip  );
						var href = 'http://maps.google.com/maps?saddr='+saddr+'&daddr='+daddr+'';
						buf += '<div><a href="'+href+'" target="_blank">'+options.directions[i].title+'</a></div>';
					}
					buf += '</div>';
				}

				buf += '<div>&laquo; <a href="javascript:;" onclick="gmapShowAddress($(this).parents(\'div.divGmapBubble\'))">Back to address</a></div>';

				buf += '</div>';

				var gmarkinfo = new google.maps.InfoWindow({ content: buf });
				google.maps.event.addListener(gmark, 'click', function() {
					gmarkinfo.open(gmap, gmark);
				});

				if(options.markers.length == 1) {
					$(document).ready(function() {
						gmarkinfo.open(gmap, gmark);
					});
				}		

			}
		}

		// back button
		var btnBack = $('<input type="button" value="&laquo; Back">').css('margin', 10).css('width', '100px').click(function() {
			container.find('div.map-gmap').fadeTo(350, 0, function() {
				$(this).css('display', 'none').css('opacity', 1);
				gmapC.remove();
				container.find('div.map-content').css('display', 'block');
				container.find('div.scroll-pane').jScrollPane(window.__jScrollPaneOptions);
			});
		});
		gmap.controls[google.maps.ControlPosition.TOP_LEFT].push(btnBack[0]);
		
	});
}

function gmapShowDirections(div) {
	div = $(div);
	if(!div[0]) return;

	div.find('div#divGmapAddress').fadeTo(200, 0, function() {
		$(this).css('display', 'none');

		div.find('div#divGmapDirections').css('opacity', 0).css('display', 'block').fadeTo(200, 1);
	});
}

function gmapShowAddress(div) {
	div = $(div);
	if(!div[0]) return;

	div.find('div#divGmapDirections').fadeTo(200, 0, function() {
		$(this).css('display', 'none');

		div.find('div#divGmapAddress').css('opacity', 0).css('display', 'block').fadeTo(200, 1);
	});
}
