/**
 * jQuery gMap - Google Maps API V3
 *
 * @url		http://github.com/marioestrada/jQuery-gMap
 * @author	Cedric Kastner <cedric@nur-text.de> and Mario Estrada <me@mario.ec>
 * @version	2.1
 */(function(a){a.fn.gMap=function(b,c){switch(b){case"addMarker":return a(this).trigger("gMap.addMarker",[c.latitude,c.longitude,c.content,c.icon,c.popup]);case"centerAt":return a(this).trigger("gMap.centerAt",[c.latitude,c.longitude,c.zoom])}var d=a.extend({},a.fn.gMap.defaults,b);return this.each(function(){var b=new google.maps.Map(this);var c=new google.maps.Geocoder;if(d.address){c.geocode({address:d.address},function(a,c){if(a&&a.length)b.setCenter(a[0].geometry.location)})}else{if(d.latitude&&d.longitude){b.setCenter(new google.maps.LatLng(d.latitude,d.longitude))}else{if(a.isArray(d.markers)&&d.markers.length>0){if(d.markers[0].address){c.geocode({address:d.markers[0].address},function(a,c){if(a&&a.length>0)b.setCenter(a[0].geometry.location)})}else{b.setCenter(new google.maps.LatLng(d.markers[0].latitude,d.markers[0].longitude))}}else{b.setCenter(new google.maps.LatLng(34.885931,9.84375))}}}b.setZoom(d.zoom);b.setMapTypeId(google.maps.MapTypeId[d.maptype]);var e={scrollwheel:d.scrollwheel,disableDoubleClickZoom:!d.doubleclickzoom};if(d.controls===false){a.extend(e,{disableDefaultUI:true})}else if(d.controls.length!=0){a.extend(e,d.controls,{disableDefaultUI:true})}b.setOptions(e);var f=new google.maps.Marker;marker_icon=new google.maps.MarkerImage(d.icon.image);marker_icon.size=new google.maps.Size(d.icon.iconsize[0],d.icon.iconsize[1]);marker_icon.anchor=new google.maps.Point(d.icon.iconanchor[0],d.icon.iconanchor[1]);f.setIcon(marker_icon);if(d.icon.shadow){marker_shadow=new google.maps.MarkerImage(d.icon.shadow);marker_shadow.size=new google.maps.Size(d.icon.shadowsize[0],d.icon.shadowsize[1]);marker_shadow.anchor=new google.maps.Point(d.icon.shadowanchor[0],d.icon.shadowanchor[1]);f.setShadow(marker_shadow)}a(this).bind("gMap.centerAt",function(a,c,d,e){if(e)b.setZoom(e);b.panTo(new google.maps.LatLng(parseFloat(c),parseFloat(d)))});var g;a(this).bind("gMap.addMarker",function(a,c,e,h,i,j){var k=new google.maps.LatLng(parseFloat(c),parseFloat(e));var l=new google.maps.Marker({position:k});if(i){marker_icon=new google.maps.MarkerImage(i.image);marker_icon.size=new google.maps.Size(i.iconsize[0],i.iconsize[1]);marker_icon.anchor=new google.maps.Point(i.iconanchor[0],i.iconanchor[1]);l.setIcon(marker_icon);if(i.shadow){marker_shadow=new google.maps.MarkerImage(i.shadow);marker_shadow.size=new google.maps.Size(i.shadowsize[0],i.shadowsize[1]);marker_shadow.anchor=new google.maps.Point(i.shadowanchor[0],i.shadowanchor[1]);f.setShadow(marker_shadow)}}else{l.setIcon(f.getIcon());l.setShadow(f.getShadow())}if(h){if(h=="_latlng")h=c+", "+e;var m=new google.maps.InfoWindow({content:d.html_prepend+h+d.html_append});google.maps.event.addListener(l,"click",function(){g&&g.close();m.open(b,l);g=m});j&&m.open(b,l)}l.setMap(b)});for(var h=0;h<d.markers.length;h++){marker=d.markers[h];if(marker.address){if(marker.html=="_address")marker.html=marker.address;var i=this;c.geocode({address:marker.address},function(b,c){return function(d,e){if(d&&d.length>0){a(c).trigger("gMap.addMarker",[d[0].geometry.location.lat(),d[0].geometry.location.lng(),b.html,b.icon])}}}(marker,i))}else{a(this).trigger("gMap.addMarker",[marker.latitude,marker.longitude,marker.html,marker.icon])}}})};a.fn.gMap.defaults={address:"",latitude:0,longitude:0,zoom:1,markers:[],controls:[],scrollwheel:false,doubleclickzoom:true,maptype:"ROADMAP",html_prepend:'<div class="gmap_marker">',html_append:"</div>",icon:{image:"http://www.google.com/mapfiles/marker.png",shadow:"http://www.google.com/mapfiles/shadow50.png",iconsize:[20,34],shadowsize:[37,34],iconanchor:[9,34],shadowanchor:[6,34]}}})(jQuery);
