(function(g){g.fn._fadeIn=g.fn.fadeIn;var i=document.documentMode||0;var d=g.browser.msie&&((g.browser.version<8&&!i)||i<8);var e=g.browser.msie&&/MSIE 6.0/.test(navigator.userAgent)&&!i;g.blockUI=function(o){c(window,o)};g.unblockUI=function(o){h(window,o)};g.growlUI=function(s,q,r,o){var p=g('<div class="growlUI"></div>');if(s){p.append("<h1>"+s+"</h1>")}if(q){p.append("<h2>"+q+"</h2>")}if(r==undefined){r=3000}g.blockUI({message:p,fadeIn:700,fadeOut:1000,centerY:false,timeout:r,showOverlay:false,onUnblock:o,css:g.blockUI.defaults.growlCSS})};g.fn.block=function(o){return this.unblock({fadeOut:0}).each(function(){if(g.css(this,"position")=="static"){this.style.position="relative"}if(g.browser.msie){this.style.zoom=1}c(this,o)})};g.fn.unblock=function(o){return this.each(function(){h(this,o)})};g.blockUI.version=2.25;g.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:true,theme:false,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:0.6,cursor:"wait"},growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:0.6,cursor:null,color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:false,baseZ:1000,centerX:true,centerY:true,allowBodyStretch:true,bindEvents:true,constrainTabKey:true,fadeIn:200,fadeOut:400,timeout:0,showOverlay:true,focusInput:true,applyPlatformOpacityRules:true,onUnblock:null,quirksmodeOffsetHack:4};var b=null;var f=[];function c(o,B){var v=(o==window);var r=B&&B.message!==undefined?B.message:undefined;B=g.extend({},g.blockUI.defaults,B||{});B.overlayCSS=g.extend({},g.blockUI.defaults.overlayCSS,B.overlayCSS||{});var x=g.extend({},g.blockUI.defaults.css,B.css||{});var I=g.extend({},g.blockUI.defaults.themedCSS,B.themedCSS||{});r=r===undefined?B.message:r;if(v&&b){h(window,{fadeOut:0})}if(r&&typeof r!="string"&&(r.parentNode||r.jquery)){var D=r.jquery?r[0]:r;var J={};g(o).data("blockUI.history",J);J.el=D;J.parent=D.parentNode;J.display=D.style.display;J.position=D.style.position;if(J.parent){J.parent.removeChild(D)}}var w=B.baseZ;var H=(g.browser.msie||B.forceIframe)?g('<iframe class="blockUI" style="z-index:'+(w++)+';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+B.iframeSrc+'"></iframe>'):g('<div class="blockUI" style="display:none"></div>');var G=g('<div class="blockUI blockOverlay" style="z-index:'+(w++)+';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');var F;if(B.theme&&v){var C='<div class="blockUI blockMsg blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+w+';display:none;position:fixed"><div class="ui-widget-header ui-dialog-titlebar blockTitle">'+(B.title||"&nbsp;")+'</div><div class="ui-widget-content ui-dialog-content"></div></div>';F=g(C)}else{F=v?g('<div class="blockUI blockMsg blockPage" style="z-index:'+w+';display:none;position:fixed"></div>'):g('<div class="blockUI blockMsg blockElement" style="z-index:'+w+';display:none;position:absolute"></div>')}if(r){if(B.theme){F.css(I);F.addClass("ui-widget-content")}else{F.css(x)}}if(!B.applyPlatformOpacityRules||!(g.browser.mozilla&&/Linux/.test(navigator.platform))){G.css(B.overlayCSS)}G.css("position",v?"fixed":"absolute");if(g.browser.msie||B.forceIframe){H.css("opacity",0)}g([H[0],G[0],F[0]]).appendTo(v?"body":o);if(B.theme&&B.draggable&&g.fn.draggable){F.draggable({handle:".ui-dialog-titlebar",cancel:"li"})}var q=d&&(!g.boxModel||g("object,embed",v?null:o).length>0);if(e||q){if(v&&B.allowBodyStretch&&g.boxModel){g("html,body").css("height","100%")}if((e||!g.boxModel)&&!v){var A=l(o,"borderTopWidth"),E=l(o,"borderLeftWidth");var u=A?"(0 - "+A+")":0;var y=E?"(0 - "+E+")":0}g.each([H,G,F],function(t,M){var z=M[0].style;z.position="absolute";if(t<2){v?z.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.boxModel?0:"+B.quirksmodeOffsetHack+') + "px"'):z.setExpression("height",'this.parentNode.offsetHeight + "px"');v?z.setExpression("width",'jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):z.setExpression("width",'this.parentNode.offsetWidth + "px"');if(y){z.setExpression("left",y)}if(u){z.setExpression("top",u)}}else{if(B.centerY){if(v){z.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"')}z.marginTop=0}else{if(!B.centerY&&v){var K=(B.css&&B.css.top)?parseInt(B.css.top):0;var L="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+K+') + "px"';z.setExpression("top",L)}}}})}if(r){if(B.theme){F.find(".ui-widget-content").append(r)}else{F.append(r)}if(r.jquery||r.nodeType){g(r).show()}}if((g.browser.msie||B.forceIframe)&&B.showOverlay){H.show()}if(B.fadeIn){if(B.showOverlay){G._fadeIn(B.fadeIn)}if(r){F.fadeIn(B.fadeIn)}}else{if(B.showOverlay){G.show()}if(r){F.show()}}k(1,o,B);if(v){b=F[0];f=g(":input:enabled:visible",b);if(B.focusInput){setTimeout(n,20)}}else{a(F[0],B.centerX,B.centerY)}if(B.timeout){var p=setTimeout(function(){v?g.unblockUI(B):g(o).unblock(B)},B.timeout);g(o).data("blockUI.timeout",p)}}function h(r,s){var q=(r==window);var p=g(r);var t=p.data("blockUI.history");var u=p.data("blockUI.timeout");if(u){clearTimeout(u);p.removeData("blockUI.timeout")}s=g.extend({},g.blockUI.defaults,s||{});k(0,r,s);var o;if(q){o=g("body").children().filter(".blockUI").add("body > .blockUI")}else{o=g(".blockUI",r)}if(q){b=f=null}if(s.fadeOut){o.fadeOut(s.fadeOut);setTimeout(function(){j(o,t,s,r)},s.fadeOut)}else{j(o,t,s,r)}}function j(o,r,q,p){o.each(function(s,t){if(this.parentNode){this.parentNode.removeChild(this)}});if(r&&r.el){r.el.style.display=r.display;r.el.style.position=r.position;if(r.parent){r.parent.appendChild(r.el)}g(r.el).removeData("blockUI.history")}if(typeof q.onUnblock=="function"){q.onUnblock(p,q)}}function k(o,s,t){var r=s==window,q=g(s);if(!o&&(r&&!b||!r&&!q.data("blockUI.isBlocked"))){return}if(!r){q.data("blockUI.isBlocked",o)}if(!t.bindEvents||(o&&!t.showOverlay)){return}var p="mousedown mouseup keydown keypress";o?g(document).bind(p,t,m):g(document).unbind(p,m)}function m(r){if(r.keyCode&&r.keyCode==9){if(b&&r.data.constrainTabKey){var q=f;var p=!r.shiftKey&&r.target==q[q.length-1];var o=r.shiftKey&&r.target==q[0];if(p||o){setTimeout(function(){n(o)},10);return false}}}if(g(r.target).parents("div.blockMsg").length>0){return true}return g(r.target).parents().children().filter("div.blockUI").length==0}function n(o){if(!f){return}var p=f[o===true?f.length-1:0];if(p){p.focus()}}function a(v,o,z){var w=v.parentNode,u=v.style;var q=((w.offsetWidth-v.offsetWidth)/2)-l(w,"borderLeftWidth");var r=((w.offsetHeight-v.offsetHeight)/2)-l(w,"borderTopWidth");if(o){u.left=q>0?(q+"px"):"0"}if(z){u.top=r>0?(r+"px"):"0"}}function l(o,q){return parseInt(g.css(o,q))||0}})(jQuery);var map=false;var markers;var linkid;var userslatlon;var directions=false;var geocoder=new GClientGeocoder();function getBikes(a){$("#bikes"+a).empty();$.ajax({url:"/index/dealerbikes/uid/"+a,cache:false,dataType:"json",success:function(b){$.each(b,function(d,c){$("#bikes"+a).append("<li>"+c+"</li>")})}})}function handleSliderChange(c,b){var a=$("#SearchResults").attr("scrollHeight")-$("#SearchResults").height();$("#SearchResults").animate({scrollTop:b.value*(a/100)},1000)}function handleSliderSlide(c,b){var a=$("#SearchResults").attr("scrollHeight")-$("#SearchResults").height();$("#SearchResults").attr({scrollTop:b.value*(a/100)})}function drawRadius(lat,lng,radius,map){var bounds=new GLatLngBounds();var circlePoints=Array();with(Math){var d=radius/3963.189;var lat1=(PI/180)*lat;var lng1=(PI/180)*lng;for(var a=0;a<361;a++){var tc=(PI/180)*a;var y=asin(sin(lat1)*cos(d)+cos(lat1)*sin(d)*cos(tc));var dlng=atan2(sin(tc)*sin(d)*cos(lat1),cos(d)-sin(lat1)*sin(y));var x=((lng1-dlng+PI)%(2*PI))-PI;var point=new GLatLng(parseFloat(y*(180/PI)),parseFloat(x*(180/PI)));circlePoints.push(point);bounds.extend(point)}if(d<1.5678565720686044){circle=new GPolygon(circlePoints,"#EFEFEF",2,1,"#EFEFEF",0.35)}else{circle=new GPolygon(circlePoints,"#EFEFEF",2,1)}map.addOverlay(circle);map.setZoom(map.getBoundsZoomLevel(bounds))}}function handleResize(){var a=false;if(self.innerWidth){a=self.innerWidth}if(document.documentElement&&document.documentElement.clientWidth){a=document.documentElement.clientWidth}if(a===false){a=$(document).width()}var b=(a-400);$("#Gmap").width(b)}function panMarker(a){GEvent.trigger(markers[a][2],"click");$("#route").html("");if(directions!=false){directions.clear()}}function setupMap(){if(map===false){map=new GMap2(document.getElementById("Gmap"));var a=map.getDefaultUI();a.maptypes.physical=false;map.setUI(a);map.setCenter(userslatlon,13)}else{map.clearOverlays();$("#SearchResults").accordion("destroy")}handleResize()}function setupDirections(){if(directions===false){var a=document.getElementById("route");directions=new GDirections(map,a);GEvent.addListener(directions,"error",function(){$("#route").html("<p>Google was unable to find a route from your location.</p>")})}else{$("#route").html("");directions.clear()}}function getDirections(b){setupDirections();$("#route").show();var a=new Array(2);a[1]=markers[b][0];a[0]=userslatlon;directions.loadFromWaypoints(a);handleResize()}function showLocation(){$("#HomePanel").hide();$("#SearchResults").html("");$("#Gmap").hide();$("#route").hide();$("#AddressError").hide();$("#NoResultsError").hide();$("#Sidebar").hide();$("#route").html("");$.blockUI({theme:true,title:"Please Wait",message:"<p>We are searching for dealers matching your criteria.</p>"});geocoder.getLocations($("#address1").val(),function(b){if(!b||b.Status.code!=200){$("#AddressError").show();$.unblockUI()}else{var d=$("input[name='radius']:checked").val();var c=$("#SCategory").val();var a=$("#SBike").val();markers=[];userslatlon=new GLatLng(b.Placemark[0].Point.coordinates[1],b.Placemark[0].Point.coordinates[0]);$.ajax({url:"/index/search/lat/"+b.Placemark[0].Point.coordinates[1]+"/lon/"+b.Placemark[0].Point.coordinates[0]+"/radius/"+d+"/category/"+c+"/bike/"+a,cache:false,dataType:"json",success:function(f){var e=f.length;if(e<1){$("#NoResultsError").show();$.unblockUI()}else{$("#Gmap").show();$("#Sidebar").show();setupMap();$.each(f,function(m,o){linkid="address"+m;var k=$("<a></a>").attr("id","directions-"+linkid).attr("href","#").text(o.DealerName+" - "+o.Distance+" Miles ").click(function(){panMarker(m)});var g=$("<a></a>").attr("id",linkid).attr("href","#route").text("Get Directions").click(function(){getDirections(m);handleResize()});var j=$("<h3></h3>");var q=$("<div></div>").html("<p>"+o.Address+"</p>");var n=$("<p></p>");n.append(g);q.append("<p>Tel: "+o.Phone+"<br />Fax: "+o.Fax+"</p>");if(o.Website!=0){var l=$("<a></a>").attr("href","http://"+o.Website).text(o.Website).attr("target","_blank");q.append(l)}q.append(n);q.append('<h3>Bikes Stocked</h3><ul id="bikes'+o.Uid+'"><li>Loading....</li></ul>');j.append(k);$("#SearchResults").append(j);$("#SearchResults").append(q);var p=new GLatLng(o.Latitude,o.Longitude);var h=[p,o.Address,new GMarker(p)];markers.push(h);map.addOverlay(h[2]);h[2].bindInfoWindowHtml("<h3>"+o.DealerName+"</h3><p>"+h[1]+"</p><p>See the sidebar for further details</p>");GEvent.addListener(h[2],"infowindowopen",function(i){getBikes(o.Uid);$("#SearchResults").accordion("activate",m)})});$("#SearchResults").accordion({active:false,collapsible:true,autoHeight:false,fillSpace:false});drawRadius(b.Placemark[0].Point.coordinates[1],b.Placemark[0].Point.coordinates[0],d,map);$.unblockUI();$.growlUI("Search Finished",e+" Dealers Found")}},error:function(g,e,f){if(g.readyState==4&&g.status==200){alert("No dealers were found matching your criteria, try increasing your search radius");$.unblockUI()}else{alert("Request failed, try again");$.unblockUI()}}})}})}window.onresize=handleResize;