var DealerSearch=function(D){if(typeof jQuery=="undefined"){throw new Error("DealerSearch requires 'jQuery'.")}if(typeof jQuery.tmpl=="undefined"){throw new Error("DealerSearch requires 'jQuery templates plugin'.")}if(typeof jQuery.mask=="undefined"){throw new Error("DealerSearch requires 'jQuery mask plugin'.")}var a=9;var m="/fachhaendler_finden.shtml";var E="/cgi/api/dealers/search.cgi";var x="/cgi/dealers/details.cgi?id=";var C="PLZ eingeben";var F={CSS_CLASS:"dealer_details default",TRANSITION:"elastic",SPEED:350,OPACITY:2/3,HEIGHT:"470px",MAX_HEIGHT:"98.5%",WIDTH:"880px",MAX_WIDTH:"98.5%",OVERLAY_CLOSE:true};var t={DEFAULTS:{ZOOM_LEVEL:10}};var q=['<div class="dealer ${className} clearfix">','<div class="google_maps_icon">','{{tmpl "dealerGoogleMapsIconTemplate"}}',"</div>",'<div class="details">','<div class="name">','<a class="details" href="#" title="${name} ${secondName}">${name} ${secondName}</a>',"</div>",'<div class="contact">','<span class="address">${address}</span>','<span class="zip_code">${zipCode}</span> <span class="city">${city}</span>','<div class="covertly">',"{{if telephone}}",'<div class="telephone">','<div class="label">Tel.:</div>','<div class="value">${telephone}</div>','<div class="clear"></div>',"</div>","{{/if}}","{{if fax}}",'<div class="fax">','<div class="label">Fax:</div>','<div class="value">${fax}</div>','<div class="clear"></div>',"</div>","{{/if}}","{{if email}}",'<div class="email">','<div class="label">E-Mail:</div>','<div class="value">${email}</div>','<div class="clear"></div>',"</div>","{{/if}}","{{if www}}",'<div class="www">','<div class="label">Internet:</div>','<div class="value">${www}</div>','<div class="clear"></div>',"</div>","{{/if}}","</div>","</div>","{{if productGroups}}",'{{tmpl "dealerProductRangeTemplate"}}',"{{/if}}","{{if distance}}",'{{tmpl "dealerDistanceTemplate"}}',"{{/if}}","</div>",'<div class="more_information">','<div class="links">',"{{if urlDetails}}",'{{tmpl "dealerLinkDetailsTemplate"}}',"{{/if}}","</div>","{{if isPremiumDealer}}",'{{tmpl "dealerPremiumMedallionTemplate"}}',"{{/if}}","</div>",'<div class="clear"></div>',"</div>"].join("");$.template("dealerTemplate",q);var z=["{{if isPremiumDealer}}",'<img src="/images/dealers/search/google_maps/premium_dealers/${position}.gif" title="${name}" />'," {{else}}",'<img src="/images/dealers/search/google_maps/${position}.gif" title="${name}" />',"{{/if}}"].join("");$.template("dealerGoogleMapsIconTemplate",z);var r=['<div class="product_range">','<div class="label">Sortiment:</div>','<div class="value">',"{{each(i, productGroup) productGroups}}","{{if i == (productGroups.length - 1)}}","${productGroup.group}","{{else}}","${productGroup.group},&nbsp;","{{/if}}","{{/each}}","</div>",'<div class="clear"></div>',"</div>"].join("");$.template("dealerProductRangeTemplate",r);var e=['<div class="distance">','<div class="data">${distance}</div>','<div class="label">Entfernung:</div>','<div class="value">${distance} KM</div>','<div class="clear"></div>',"</div>"].join("");$.template("dealerDistanceTemplate",e);var c=['<a class="details" href="${urlDetails}" title="Händlerdetails: ${name} ${secondName}">Händlerdetails anzeigen</a>'].join("");$.template("dealerLinkDetailsTemplate",c);var h=['<div class="medallion">','<img class="medallion" src="/images/icons/premium_dealers/medallion.gif" title="Premium Händler" />',"</div>"].join("");$.template("dealerPremiumMedallionTemplate",h);var d=['<div class="marker">','<span class="name">${name} ${secondName}</span><br />',"<br />",'<span class="address">${address}</span><br />','<span class="zip_code">${zipCode}</span> <span class="city">${city}</span>',"</div>"].join("");$.template("markerTemplate",d);var p=this;var b=$("body").attr("id")=="dealer_search"?$("form#extended_search"):$("form#dealer_search");var s;var l;var k;var i;var y=b.attr("id")=="extended_search"?true:false;var u=D.country?D.country:"de-DE";var A=D.checkboxSettings?D.checkboxSettings:new Object({});var w=D.mask?D.mask:"99999";var j=u=="de-DE"?/^([0-9]){5,5}$/i:/^([0-9]){4,4}$/i;this.init=function(){f()};var f=function(){try{if(y){s=b.find("div.fields");l=s.find("div.zip_code input#zip_code");k=b.find("div.submit a.submit");i=b.find("div.result");b.find("input[type=checkbox]").checkbox(A).bind("disable",function(){this.checked=false});var J=s.find("div.product_groups input#show_up_product_groups[type=checkbox]");var I=s.find("div.product_groups div.content");J.click(function(){$(this).attr("checked")?I.slideUp("slow"):I.slideDown("slow")});J.attr("checked")?I.slideDown("slow"):I.slideUp("slow");var H=l.val();b.validate({errorClass:"error",errorElement:"span",errorPlacement:function(K,L){K.insertAfter(L).hide().css("height","auto").slideDown("fast",function(){})},submitHandler:function(K){return B()},rules:{zip_code:{required:true,minlength:u=="de-DE"?5:4,maxlength:u=="de-DE"?5:4}},messages:{zip_code:{required:"Bitte geben Sie Ihre Postleitzahl ein.",minlength:$.format("Bitte geben Sie mindestens {0} Stellen an."),maxlength:$.format("Bitte geben Sie maximal {0} Stellen an.")}}});if(j.test(H)){o()}}else{b.attr("action",m);l=b.find("input#zip_code").mask(w,{placeholder:""});k=b.find("a.submit");l.val(C);l.blur(function(){if($(this).val()==""){$(this).val(C)}});b.submit(function(){return B()})}k.click(function(){b.submit();return false})}catch(G){}};var B=function(){var G=l.val();if(y){if(j.test(G)){o()}return false}else{return j.test(G)}};var o=function(){var G=l.val();var I=i.find("div.actions");var H=i.find("div.google_maps");I.fadeOut("normal",function(){H.slideUp("normal",function(){i.slideUp("normal",function(){$.getJSON(E,$.param({zip_code:G,product_groups:v()},true),function(J){if(J.result&&!J.errors){n(J)}else{}})})})})};var v=function(){var G=new Array();s.find("div.product_groups input[name=product_groups]:checkbox:checked").each(function(){G.push($(this).attr("value"))});return G};var n=function(H){var G=i.find("div.dealer_list");var K=G.find("div.content").empty();var J=this.country=="de-DE"?"Deutschland":"Österreich";var I=[];$.each(H.result,function(N,M){if(N>=a){return}var L=N+1;var O=M.premium?true:false;$.tmpl("dealerTemplate",{id:M.ID,className:O?"premium":"normal",name:M.name,secondName:M.secondname,address:M.address,zipCode:M.zip,city:M.place,telephone:M.phone,fax:M.fax,email:M.mail,www:M.url,productGroups:M.product_groups,distance:M.dist,position:L,isPremiumDealer:O,urlDetails:x+M.ID}).appendTo(K);I.push({address:M.address+", "+M.zip+" "+M.place+", "+J,html:$.tmpl("markerTemplate",{name:M.name,secondName:M.secondname,address:M.address,zipCode:M.zip,city:M.place}).html(),icon:{image:g(O,L),iconsize:[21,31],iconanchor:[10,31],infowindowanchor:[10,0]}})});i.slideDown("normal",function(){$(this).find("div.dealer_list div.content div.dealer div.more_information div.links a.details").click(function(){$.colorbox.style("colorbox-default");var Q=$("div#colorbox");var P=$(this).closest("div.dealer");var R=P.hasClass("premium");var S=$(this).attr("title");var O=$(this).attr("href");$.fn.colorbox({href:O,iframe:true,open:true,transition:F.TRANSITION,speed:F.SPEED,opacity:F.OPACITY,innerHeight:F.HEIGHT,maxHeight:F.MAX_HEIGHT,width:F.WIDTH,maxWidth:F.MAX_WIDTH,overlayClose:F.OVERLAY_CLOSE,title:function(){return S},onOpen:function(){Q.addClass(F.CSS_CLASS);if(R){Q.addClass("premium")}},onComplete:function(){colorBoxLoadedContent=Q.find("div#cboxLoadedContent");colorBoxLoadedContent.css({overflow:"hidden"})},onClosed:function(){if(R){Q.removeClass("premium")}Q.removeClass(F.CSS_CLASS)}});return false});$(this).find("div.dealer_list div.content div.dealer div.name a.details").click(function(){var O=$(this).closest("div.dealer");O.find("div.more_information div.links a.details").click();return false});var M=$(this).find("div.google_maps");var L=parseInt($(this).find("div.dealer_list div.content div.dealer").last().find("div.details div.distance div.data").text());var N=$(this).find("div.actions");M.slideDown("normal",function(){M.gMap({markers:I,zoom:L>=15?9:t.DEFAULTS["ZOOM_LEVEL"]});N.fadeIn("normal",function(){$.scrollTo(i,250,{offset:-10})})})})};var g=function(H,G){if(H){return $.browser.msie&&parseInt($.browser.version)==6?"/images/dealers/search/google_maps/premium_dealers/"+G+".gif":"/images/dealers/search/google_maps/premium_dealers/"+G+".png"}else{return $.browser.msie&&parseInt($.browser.version)==6?"/images/dealers/search/google_maps/"+G+".gif":"/images/dealers/search/google_maps/"+G+".png"}};f()};
