(function($){

	$.fn.embeddedmaps = function(options) {

	

	var defaults = {

		address: '',

		streetview: true,

		zoom:14

	};

		

	var options = $.extend(defaults, options);

	

	function showMap(map, point) {

		if (point && map) {

			var gmap = new GMap2(map);

			//gmap.enableGoogleBar();

			gmap.enableScrollWheelZoom();

			//gmap.addControl(new GLargeMapControl3D());

			//gmap.addControl(new GMapTypeControl());

			gmap.setCenter(point, options.zoom);

			var marker = new GMarker(point);

			gmap.addOverlay(marker);

			//marker.openInfoWindowHtml(options.address);

		}

		else {

			$(map).css("display", "none");	

		}

	}

	

	return this.each(function() {		

		var map = this;

		

		var geocoder = new GClientGeocoder();

				

		if(options.streetview) {

			if(geocoder) { 

				geocoder.getLatLng(

					options.address,

					function(point) {

						/*if (point) {

							var panoClient = new GStreetviewClient();

							panoramaOptions = { latlng:point };

							pano = new GStreetviewPanorama(map, panoramaOptions);

							GEvent.addListener(pano);

							panoClient.getNearestPanorama(

								point, 

								function(data) {

									if(data.code == 200) {

										if(data.links.length > 0) {

											pano.followLink(data.links[0]);	

										}

									}

									else {

										pano.remove();

										showMap(map, point);	

									}

								}

							);

						}

						else {*/

							showMap(map, point);	

						//}

					}

				);

			}

			else {

				showMap(null, null);

			}

		}

		else {

			if(geocoder) {

				geocoder.getLatLng(

					options.address,

					function(point) {

						showMap(map, point);

					}

				);

			}

			else {

				showMap(null, null);

			}

		}

				

		return this;

    });

 };

})(jQuery);
