
var infowindow = new google.maps.InfoWindow();

(function($){
	$.fn.googleMap = function(locations, options) {
		var defaults = {
			zoom: 0,
			draggable: true,
			navigationControl: true,
			mapTypeControl: true,
			scrollwheel: false,
			bgColor: 'white'
		};  
		var options = $.extend(defaults, options); 
		var mapOptions = {
			draggable: options.draggable,
      navigationControl: options.navigationControl,
      mapTypeControl: options.mapTypeControl,
			mapTypeId: google.maps.MapTypeId.ROADMAP,
			scrollwheel: options.scrollwheel,
			zoom: options.zoom,
			backgroundColor: options.bgColor
		}
		
		return this.each(function(i, e) {
			var $e = $(e);
			var mapCenter = new google.maps.LatLng(0,0);
			var map = new google.maps.Map($e.get(0), $.extend(mapOptions, {center: mapCenter}));
			var bounds = new google.maps.LatLngBounds();

		  for (var i = 0; i < locations.length; i++) {
		    var loc = locations[i];
		    var point = new google.maps.LatLng(loc[1], loc[2]);
				bounds.extend(point);
				var m = addMarker(point, loc[0], map, loc[3]);
				m.setMap(map);
			}

      if (options.zoom > 0){
	      map.setCenter(bounds.getCenter());
	      map.setZoom(options.zoom);
	    }else{
	      map.fitBounds(bounds);
	    }

		});

    function addMarker(point, text, map, imgIcon){
      var marker=new google.maps.Marker({
		  	position: point,
		  	icon: imgIcon
		  });
		  google.maps.event.addListener(marker, 'click', function() {
		    infowindow.close();
		    infowindow.setContent(text);
		    infowindow.open(map,marker);
		  });
		  return marker;
	  }

	};
})(jQuery);
