(function(h){h.fn.extend({jmap:function(Y){var G="1.3.1";var Y=jQuery.extend({provider:"google",maptype:"hybrid",center:[55.958858,-3.162302],zoom:12,controlsize:"small",showtype:true,showzoom:true,showpan:true,showoverview:true,showscale:true,dragging:true,scrollzoom:false,smoothzoom:true,clickmarker:true},Y);return this.each(function(){switch(Y.provider){case "yahoo":var o=this.jMap=new YMap(this);switch(Y.maptype){case "map":var A=YAHOO_MAP_REG;break;case "sat":var A=YAHOO_MAP_SAT;break;default:var A=YAHOO_MAP_HYB;break;}o.setMapType(A);o.drawZoomAndCenter(new YGeoPoint(Y.center[0],Y.center[1]),Y.zoom);if(Y.showtype==true){o.addTypeControl();}if(Y.showzoom==true&&Y.controlsize=="small"){o.addZoomShort();}if(Y.showzoom==true&&Y.controlsize=="large"){o.addZoomLong();}if(Y.showpan==true){o.addPanControl();}if(Y.showscale==false){o.removeZoomScale();}if(Y.dragging==false){o.disableDragMap();}if(Y.scrollzoom==false){o.disableKeyControls();}if(Y.clickmarker==true){YEvent.Capture(o,EventsList.MouseClick,function(a,B){if(a){}else{var a=new YGeoPoint(B.Lat,B.Lon);o.addMarker(a);}});}break;default:var o=this.jMap=new GMap2(this);switch(Y.maptype){case "map":var A=G_NORMAL_MAP;break;case "sat":var A=G_SATELLITE_MAP;break;default:var A=G_HYBRID_MAP;break;}o.setCenter(new GLatLng(Y.center[0],Y.center[1]),Y.zoom,A);switch(Y.controlsize){case "small":o.addControl(new GSmallMapControl());break;case "large":o.addControl(new GLargeMapControl());break;case "none":break;default:o.addControl(new GSmallMapControl());}if(Y.showtype==true){o.addControl(new GMapTypeControl());}if(Y.showoverview==true){o.addControl(new GOverviewMapControl());}if(Y.scrollzoom==true){o.enableScrollWheelZoom();}if(Y.smoothzoom==true){o.enableContinuousZoom();}if(Y.dragging==false){o.disableDragging();}if(Y.clickmarker==true){GEvent.addListener(o,"dblclick",function(a,B){if(a){o.removeOverlay(a);}else{var a=new GMarker(B);o.addOverlay(a);GEvent.addListener(a,"click",function(){pointlocation=a.getPoint();a.openInfoWindowHtml("Latitude: "+pointlocation.lat()+"<br />Longitude: "+pointlocation.lng());});}});}}if(o.b.jMap){jQuery(document).unload(function(){GUnload();});}});},myMap:function(){return this[0].jMap;},addPoint:function(I,Y,a,G,B,o){var y=this[0].jMap;if(y._mapType){var A=new YMarker(new YGeoPoint(I,Y));YEvent.Capture(A,EventsList.MouseClick,function(){A.openSmartWindow(G);});if(o==true){YEvent.Capture(A,EventsList.MouseDoubleClick,function(d){y.removeOverlay(d);});}y.addOverlay(A);}else{if(y.b.jMap){var A=new GMarker(new GLatLng(I,Y),a,{draggable:B});GEvent.addListener(A,"click",function(){A.openInfoWindowHtml(G);});if(o==true){GEvent.addListener(A,"dblclick",function(){return y.removeOverlay(A);});}return y.addOverlay(A);}}},addPoly:function(Y,o,G,A){var B=this[0].jMap;if(B._mapType){return B.addOverlay(Y,o,G,A);}else{if(B.b.jMap){return B.addOverlay(Y);}}},addRss:function(G,o){var A=this[0].jMap;if(A._mapType){var Y=new YGeoRSS(G);YEvent.Capture(A,EventsList.onEndGeoRSS,o);return A.addOverlay(Y);}else{if(A.b.jMap){var Y=new GGeoXml(G,o);return A.addOverlay(Y);}}},searchAddress:function(G,Y,o){var Y=jQuery.extend({returntype:"map"},Y);var A=this[0].jMap;if(A._mapType){A.geoCodeAddress(G);YEvent.Capture(A,EventsList.onEndGeoCode,function(I){if(I.success==0){alert(G+" not found");}else{switch(Y.returntype){case "object":var a=[];a[0]=I.GeoPoint.Lat;a[1]=I.GeoPoint.Lon;return o(a);break;default:point=new YGeoPoint(I.GeoPoint.Lat,I.GeoPoint.Lon);A.drawZoomAndCenter(point);var B=new YMarker(point);B.openSmartWindow("Latitude: "+point.Lat+"<br />Longitude: "+point.Lon);A.addOverlay(B);break;}}});}else{if(A.b.jMap){GGeocoder=new GClientGeocoder();GGeocoder.getLatLng(G,function(B){if(!B){alert(G+" not found");}else{switch(Y.returntype){case "object":var I=[];I[0]=B.y;I[1]=B.x;return o(I);break;default:A.setCenter(B);var a=new GMarker(B,{draggable:true});A.addOverlay(a);var y=a.getPoint();a.openInfoWindowHtml("Latitude: "+y.lat()+"<br />Longitude: "+y.lng());GEvent.addListener(a,"dragend",function(d){a.openInfoWindowHtml("Latitude: "+d.lat()+"<br />Longitude: "+d.lng());});break;}}});}else{alert("Map Object Not Found!");}}},searchDirections:function(B,o,G){var A=this[0].jMap;if(A._mapType){alert("Yahoo Maps Do Not Support Directions");}else{if(A.b.jMap){var Y=document.getElementById(G);search=new GDirections(A,Y);search.load("from:"+B+" to:"+o);}}},mapAds:function(Y,B){var A=this[0].jMap;var B=jQuery.extend({maxAdsOnMap:3,channel:"",minZoomLevel:6},B);if(A._mapType){alert("Yahoo Maps Do Not Support Map Ads");}else{if(A.b.jMap){var G=new GAdsManager(A,Y,B);G.enable();}}},showTraffic:function(){var G=this[0].jMap;G.addOverlay(new GTrafficOverlay());}});})(jQuery);