$.googleMap = {
	maps: {},
	marker: function(lat, lng, text) 
	{
		var baseIcon = new GIcon();  
		baseIcon.iconSize=new GSize(32,32);  
		baseIcon.iconAnchor=new GPoint(16,32);  
		baseIcon.infoWindowAnchor=new GPoint(16,0); 
		
		var icon = new GIcon(baseIcon, 'http://maps.google.com/mapfiles/kml/pal5/icon6.png', null, 'http://maps.google.com/mapfiles/kml/pal5/icon6s.png');
		var marker = new GMarker(new GLatLng(lat, lng), icon);
		
		return marker;
	},

	mapNum: 1
};

$.fn.googleMap = function(lat, lng, zoom, options) {

	if (!window.GBrowserIsCompatible || !GBrowserIsCompatible()) return this;

	if (lat == null) lat = 50.289061;
	if (lng == null) lng = 18.661620;
	if (!zoom) zoom = 12;

	if (!options || typeof options != 'object')	options = {};
	options.mapOptions = options.mapOptions || {};
	options.markers = options.markers || [];
	options.controls = options.controls || {};

	return this.each(function() 
	{
		if (!this.id) this.id = "gMap" + $.googleMap.mapNum++;

		var map = $.googleMap.maps[this.id] = new GMap2(this, options.mapOptions);

     	map.setCenter(new GLatLng(lat, lng), zoom);

		for (var i = 0; i < options.controls.length; i++) 
		{
			var c = options.controls[i];
			eval("map.addControl(new " + c + "());");
		}

		var marker = null;
		
		if(options.markers.length > 0)
		{
			for (var i = 0; i < options.markers.length; i++) 
			{
				if (marker = $.googleMap.marker(options.markers[i][0], options.markers[i][1], options.markers[i][2])) 
					map.addOverlay(marker);
			}
		}
    });

};