/**
 * 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.0rc
 */(function(a){a.gMap={},a.fn.gMap=function(b,c){switch(b){case"addMarker":return a(this).trigger("gMap.addMarker",[c.latitude,c.longitude,c.content]);case"centerAt":return a(this).trigger("gMap.centerAt",[c.latitude,c.longitude,c.zoom])}opts=a.extend({},a.fn.gMap.defaults,b);return this.each(function(){var b=new google.maps.Map(this);$geocoder=new google.maps.Geocoder,opts.address?$geocoder.geocode({address:opts.address},function(a,c){a.length>0&&b.setCenter(a[0].geometry.location)}):opts.latitude&&opts.longitude?b.setCenter(new google.maps.LatLng(opts.latitude,opts.longitude)):a.isArray(opts.markers)&&opts.markers.length>0?opts.markers[0].address?$geocoder.geocode({address:opts.markers[0].address},function(a,c){a.length>0&&b.setCenter(a[0].geometry.location)}):b.setCenter(new google.maps.LatLng(opts.markers[0].latitude,opts.markers[0].longitude)):b.setCenter(new google.maps.LatLng(34.885931,9.84375)),b.setZoom(opts.zoom),b.setMapTypeId(google.maps.MapTypeId[opts.maptype]),map_options={scrollwheel:opts.scrollwheel},opts.controls===!1?a.extend(map_options,{disableDefaultUI:!0}):opts.controls.length!=0&&a.extend(map_options,opts.controls,{disableDefaultUI:!0}),b.setOptions(map_options);var c=new google.maps.Marker;marker_icon=new google.maps.MarkerImage(opts.icon.image),marker_icon.size=new google.maps.Size(opts.icon.iconsize[0],opts.icon.iconsize[1]),marker_icon.anchor=new google.maps.Point(opts.icon.iconanchor[0],opts.icon.iconanchor[1]),c.setIcon(marker_icon),opts.icon.shadow&&(marker_shadow=new google.maps.MarkerImage(opts.icon.shadow),marker_shadow.size=new google.maps.Size(opts.icon.shadowsize[0],opts.icon.shadowsize[1]),marker_icon.anchor=new google.maps.Point(opts.icon.shadowanchor[0],opts.icon.shadowanchor[1]),c.setShadow(marker_shadow)),a.gMap.gIcon=c;var d=[],e=[];for(var f=0;f<opts.markers.length;f++)marker=opts.markers[f],d[f]=new google.maps.Marker({icon:c.getIcon(),shadow:c.getShadow()}),marker.icon&&(marker_icon=new google.maps.MarkerImage(marker.icon.image),marker_icon.size=new google.maps.Size(marker.icon.iconsize[0],marker.icon.iconsize[1]),marker_icon.anchor=new google.maps.Point(marker.icon.iconanchor[0],marker.icon.iconanchor[1]),d[f].setIcon(marker_icon),marker.icon.shadow&&(marker_shadow=new google.maps.MarkerImage(marker.icon.shadow),marker_shadow.size=new google.maps.Size(marker.icon.shadowsize[0],marker.icon.shadowsize[1]),marker_shadow.anchor=new google.maps.Point(marker.icon.shadowanchor[0],marker.icon.shadowanchor[1]),d[f].setShadow(marker_shadow))),marker.address?(marker.html=="_address"&&(marker.html=marker.address),$geocoder.geocode({address:marker.address},function(a){return function(c,e){c.length>0&&(d[a].setPosition(c[0].geometry.location),d[a].setMap(b))}}(f))):(marker.html=="_latlng"&&(marker.html=marker.latitude+", "+marker.longitude),d[f].setPosition(new google.maps.LatLng(marker.latitude,marker.longitude)),d[f].setMap(b)),marker.html&&(e[f]=new google.maps.InfoWindow({content:opts.html_prepend+marker.html+opts.html_append}),function(a){google.maps.event.addListener(d[a],"click",function(){e[a].open(b,d[a])})}(f)),marker.html&&marker.popup&&e[f].open(b,d[f]);a(this).bind("gMap.centerAt",function(a,c,d,e){e&&b.setZoom(e),b.panTo(new google.maps.LatLng(parseFloat(c),parseFloat(d)))}),a(this).bind("gMap.addMarker",function(a,d,e,f){var g=new google.maps.LatLng(parseFloat(d),parseFloat(e)),h=new google.maps.Marker({icon:c.getIcon(),shadow:c.getShadow(),position:g});infowindow=new google.maps.InfoWindow({content:opts.html_prepend+f+opts.html_append}),google.maps.event.addListener(h,"click",function(){infowindow.open(b,h)}),h.setMap(b);return h})})},a.fn.gMap.defaults={address:"",latitude:0,longitude:0,zoom:1,markers:[],controls:[],scrollwheel:!0,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:[19,34]}}})(jQuery)
