(function(a){var b={init:function(){b.menu();b.helper();c.init()},helper:function(){a("a.formSubmit").click(function(b){b.preventDefault();a(this).closest("form").submit()});a("input.datepicker").datepicker({showOn:"both",buttonImage:"/tl_files/av_template/px/datepicker.png"})},menu:function(){a("#main-menu ul").superfish()}};var c={init:function(){c.buttons();c.gmaps.createMapLinks();c.autoComplete()},autoComplete:function(){var b=a("#ctrl_city"),c=a("#ctrl_country"),d="19";b.autocomplete({source:function(e,f){if(c.val()=="D"||c.val()==""||c.length<1){a.ajax({url:"ajax.php",data:{city:b.val(),country:c.val(),action:"fmd",id:d},success:function(a){var b=a.split(",");b[0]==""?f([]):f(b)}})}},open:function(){var c=a(".ui-menu");c.addClass(b.parents("form").attr("id"))}})},buttons:function(){var b={init:function(){b.c={$helpLinks:a("a.helpAction, a.closeAction"),helpWrapperSel:"div.helpContainer",helpContainerSel:"p.help",duplicateWrapperSel:"div.duplicateContainer",duplicateLinkSel:"a.duplicateAction",duplicateLabelTextSel:"span.duplicateLabelText",removeDuplicateClass:"removeAction"};b.toggleHelp();b.initDuplicate();b.initRemoveDuplicate()},toggleHelp:function(){b.c.$helpLinks.click(function(c){c.preventDefault();a(this).parents(b.c.helpWrapperSel).find(b.c.helpContainerSel).fadeToggle()})},initDuplicate:function(){a(b.c.duplicateWrapperSel).delegate(b.c.duplicateLinkSel,"click",function(c){c.preventDefault();var d=a(this),e=d.attr("data-max"),f=d.parents(b.c.duplicateWrapperSel),g=f.data(),h=g.count==null||isNaN(g.count)?f.find("select").length:g.count;if(e!=null&&e<=h)return false;var i=f.find("select:first, label:first"),j=f.find(b.c.duplicateLabelTextSel).text(),k=i.clone();a.each(k,function(b,c){$el=a(c);if($el.is("select")){this.id=this.id+"_"+h}if($el.is("label")){a(this).text(j).attr("for",$el.attr("for")+"_"+h)}$el.css("display","none")});$removeEl=a('<a href="#" class="'+b.c.removeDuplicateClass+' action"><span class="hidden">Feld löschen</span></a>').css("display","none");k=k.after($removeEl);k.val(k.find("option:first").val()).insertBefore(f.find(b.c.helpContainerSel)).stop().fadeToggle();g.count=h+1})},initRemoveDuplicate:function(){a(b.c.duplicateWrapperSel).delegate("a."+b.c.removeDuplicateClass,"click",function(c){c.preventDefault();var d=a(this),e=d.parent(b.c.duplicateWrapperSel),f=e.data(),g=a(this);if(!d.isClicked())return false;g=g.add(d.prev("select"));g=g.add(d.prev("select").prev("label"));g.fadeOut().remove();f.count=f.count-1})}};b.init()},gmaps:{map:null,geocoder:null,bounds:null,createMapLinks:function(){if(typeof GBrowserIsCompatible==="undefined")return false;if(a("#lawyerResultTable").length>0)id="#lawyerResultTable";else id="#lawyerProfile";a.each(a(id+" span.address"),function(b,c){a(c).after('· <a href="#" class="mapLink" id="mapLink'+b+'" title="Adresse auf dem Stadtplan zeigen"><img src="/tl_files/av_template/px/icon-maps.gif" alt=""></a>')});a.each(a(id+" a.mapLink"),function(b,d){a(d).click(function(a){a.preventDefault();c.gmaps.showAddressOnMap(this);return false})})},showAddressOnMap:function(b){address=a(b).siblings("span.address").html().replace(/\s{2,}/g," ");if(a("#google-map").html()==null)c.gmaps.showMap(b);if(c.map==null)c.gmaps.initGoogleMaps();if(a("#lawyerResultTable").length>0){rowNum=parseInt(a(b).attr("id").replace(/mapLink/,""));c.gmaps.positionMap(rowNum)}if(geocoder){map.clearOverlays();geocoder.getLatLng(address,function(a){if(!a){c.gmaps.addressNotFound(address)}else{map.addOverlay(new GMarker(a));map.setCenter(a,15)}})}c.gmaps.addRouteForm(address)},initGoogleMaps:function(){if(GBrowserIsCompatible()){map=new GMap2(document.getElementById("map"));map.addControl(new GLargeMapControl);map.addControl(new GMapTypeControl);map.addControl(new GScaleControl,new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(90,10)));map.setCenter(new GLatLng(0,0),0);geocoder=new GClientGeocoder;a("body").unload(GUnload)}},showMap:function(b){if(a("#lawyerResultTable").length>0)a("#main .inner").append('<div id="google-map"><div id="map"></div></div>');else a(b).parents(".contact").after('<div id="google-map"><div id="map"></div></div>');a("#google-map").append('<a href="#" id="closeMapLink" title="Stadtplan schließen">Fenster schließen</a>');a("#closeMapLink").click(function(){a("#google-map").remove();a("#addedRow").remove();map=null;return false})},positionMap:function(b){a("#addedRow").remove();a("#mapLink"+b).parent().parent().after('<tr id="addedRow"><td colspan="3"><div style="height:450px;width:10px" id="placeholder"></div></td></tr>');coords=a("#placeholder").offset();console.log(coords);a("#google-map").css({position:"absolute",top:coords.top+25+"px",left:coords.left})},addressNotFound:function(b){mapDiv=a("#google-map");map.setCenter(new GLatLng(50.205033,9.931641),5);a("#routeForm").remove();a("#address").html("Die Adresse <strong>"+b+"</strong> wurde nicht gefunden.");onlyPLZ=b.replace(/(.*)\, (.*)/,"$2");if(onlyPLZ!=""){bounds=new GLatLngBounds;geocoder.getLatLng(onlyPLZ,function(c){if(c){map.setCenter(c,11);a("#address").html("Die Adresse <strong>"+b+"</strong> konnte nicht genau lokalisiert werden.")}})}},addRouteForm:function(b){a("#routeForm").remove();a("#google-map").append('<form id="routeForm" action="http://maps.google.de/maps" method="get" target="_blank"></form>');a("#routeForm").append('<fieldset><legend>Routenplaner</legend><label for="saddr">Startadresse <span>(Straße, Hausnummer, PLZ Ort)</span></label><input type="text" name="saddr" id="saddr"><input type="submit" value="Route berechnen" class="button"><input type="hidden" name="daddr" value="'+b+'">')}}};a(document).ready(b.init)})(jQuery)
