var MAX_DISTANCE_AWAY=30;var MAX_WAYPOINTS_TO_DISPLAY=3;var INDY_LAT=39.767;var INDY_LON=-86.1563;var REQUEST_QUEUE=[];var MAX_REQUESTS=2;var HALT_REQUEST=false;function reorientMarkers(){$("div.marker_label").each(function(A,B){var C=$(B).prev("img");$(B).css("position","absolute").css("left",C.css("left")).css("top",C.css("top")).css("width",C.css("width")).css("height",C.css("height"))})}function orientationAndNorthwardsForBearingAndOffset(A,B){var C=0,E=180,F=90,H=270;var D="";if(B==undefined||B==null){B=70}var I=false;if(A>=(H)||A<=(F)){var G;if(A>=H){G=Math.abs(360-A)}else{G=Math.abs(A-C)}if(G<B){D="N";I=true}}else{if(Math.abs(A-E)<B){D="S"}}if(A>=(C)&&A<=(E)){if(Math.abs(A-F)<B){D+="E";if(D!="SE"){I=true}}}else{if(Math.abs(A-H)<B){D+="W"}}return[D,I]}function getDistanceForWaypoints(E,K){var C=E.getCenter();var A=E.getBounds();var N=[C.lat(),C.lng()];var B=[];var L=$ll(N);for(var F in K){var H=new GLatLng(K[F][0],K[F][1]);if(!A.containsLatLng(H)){var M=$ll([K[F][0],K[F][1]]);var J=L.distance_to(M);J/=_latlng.METERS_PER_MILE;var D=L.bearing_between(M);var I=orientationAndNorthwardsForBearingAndOffset(D,70);var G=I[0],O=I[1];B.push({place:F,bearing:D,distance:J,suffix:G,northward:O,remove:false})}}B.sort(function(Q,P){if(Q.distance<P.distance){return -1}else{if(Q.distance>P.distance){return 1}else{return 0}}});return B}function goTo(A){map.panTo(new GLatLng(waypoints[A][0],waypoints[A][1]))}function goHome(){map.panTo(new GLatLng(INDY_LAT,INDY_LON))}function boundsToRect(B,D){var A=B.getSouthWest(),E=B.getNorthEast();var F=D.fromLatLngToDivPixel(A),C=D.fromLatLngToDivPixel(E);return[[F.x,C.y],[C.x,C.y],[C.x,F.y],[F.x,F.y]]}function rectToBounds(A,B){var H=[null,null],E=[null,null];var G=A.to_point_array();for(var F=0;F<G.length;F++){if(H[0]==null||G[F][0]<H[0]){H[0]=G[F][0]}if(H[1]==null||G[F][1]<H[1]){H[1]=G[F][1]}if(E[0]==null||G[F][0]>E[0]){E[0]=G[F][0]}if(E[1]==null||G[F][1]>E[1]){E[1]=G[F][1]}}if(H[0]==null||H[1]==null||E[0]==null||E[1]==null){throw new Error("Could not find viable coordinates for bounding box")}var I=B.fromDivPixelToLatLng(new GPoint(H[0],H[1])),C=B.fromDivPixelToLatLng(new GPoint(E[0],E[1]));var D=new GLatLngBounds(I,C);return D}function makePoly(D,C){var B=[];D.foreach(function(E){var G=new GPoint(E.x,E.y);var F=C.fromDivPixelToLatLng(G);B.push(F)});var A=new GPolygon(B,"#000000",1,0.3,"#FF0000",0.3);C.addOverlay(A)}var loaded={},categories={},points={};function loadPlaceDivs(G,B){$("#north_locations").html("");$("#south_locations").html("");var R=0;var M=0;var A=false;for(var K=0;K<G.length;K++){var F=G[K]["place"].replace(/\s/g,"_");var L;if(G[K]["distance"]>MAX_DISTANCE_AWAY){if(!A){A=true}else{continue}}if(G[K]["northward"]){L="#north_locations";if(R>=MAX_WAYPOINTS_TO_DISPLAY){continue}R++}else{L="#south_locations";if(M>=MAX_WAYPOINTS_TO_DISPLAY){continue}M++}var E=G[K]["distance"];if(E>99){E=Math.round(E)}else{E=E.toPrecision(2)}var J=G[K]["place"]+" ("+E+" mi)";$("<span id='"+F+"'><a class='map_dir "+G[K]["suffix"].toLowerCase()+"' onClick='goTo(\""+G[K]["place"]+"\");'> "+J+"</a></span>").appendTo(L)}if(A&&(R<=1&&M<=1)){var Q=B.getCenter();var C=$ll([Q.lat(),Q.lng()]),D=$ll([INDY_LAT,INDY_LON]);var N=C.bearing_between(D);var H=orientationAndNorthwardsForBearingAndOffset(N,70);var O=H[0],P=H[1];var I=C.distance_to(D)/METERS_PER_MILE;var J="Indianapolis: "+I.toFixed(2)+" "+O;var L=(P)?"#north_locations":"#south_locations";$("<span><a onClick='goHome();'>"+J+"</a></span>").appendTo(L)}}function loadStoriesFromBoundary(E,F,A){var H=[E];var G="";for(var C=0;C<H.length;C++){if(C>0){G+="&"}G+="coords["+C+"][ne][lat]="+escape(H[C].getNorthEast().lat())+"&coords["+C+"][ne][lon]="+escape(H[C].getNorthEast().lng());G+="&coords["+C+"][sw][lat]="+escape(H[C].getSouthWest().lat())+"&coords["+C+"][sw][lon]="+escape(H[C].getSouthWest().lng())}if(REQUEST_QUEUE.length>=MAX_REQUESTS){var B=REQUEST_QUEUE.splice(0,1)[0];try{B.onreadystatechange=function(){};B.abort()}catch(D){}}REQUEST_QUEUE.push($.get("/street_cred/locations_in_bounds?"+G,null,function(I){populateMap(I,"success",null,cleanCategories);if(A){A(I)}},"json"))}function showStreet(A){if(points[A][2]==null){points[A][2]=new GStreetviewPanorama(document.getElementById("streetview"),{latlng:new GLatLng(points[A][1]["lat"],points[A][1]["lng"])});$("#streetview").slideDown("fast")}}function hideStreet(A){var B=points[A][2];if(B){$("#streetview").slideUp("fast",function(){B.remove();points[A][2]=null})}}function toggleStreet(A){if(points[A][2]){hideStreet(A)}else{showStreet(A)}}function hintQueryString(A){var B="?place="+escape(A.name);B+="&hint_latitude="+escape(A.lat.toString());B+="&hint_longitude="+escape(A.lng.toString());B+="&hint_street_address="+escape(A.street_address);B+="&hint_phone="+escape(A.phone);B+="&hint_id="+escape(A.id.toString());B+="&hint_source="+escape(A.source);B+="&hint_website="+escape(A.website);B+="&body=%20";return B}function bindWindowHtmlFN(C,B,E,D){var A=function(J){var K=0;var G="<div class='info_balloon' style='line-height:0.75;font-size:80%;'>";G+="<div class='clearfix'>";if(!B.temporal){G+="<a href='"+B.url+"'>"+B.name+"</a><br />"}else{var I=hintQueryString(B);G+="<a href='/street_cred/create"+I+"'>"+B.name+"</a><br/>"}G+=B.street_address+"<br />";G+=B.city+", "+B.state;if(J!=null&&(K=$ll([J.lat(),J.lng()]).distance_to([E.lat(),E.lng()]))<=100){G+="<br/><br/><input type='button' onClick='toggleStreet("+B.id+");' value='Street View'>"}if(B.latest){G+="<br /><div class='quote'>"+B.latest["body"]+"</div>"}if(D.length&&D.length>0){G+="<hr />Other locations near this address:<br /><div class='t5'>";for(var F=1;F<D.length;F++){G+="<a class='left r10 clear' href='"+D[F]["url"]+"'>"+D[F]["name"]+"</a>";var H=D[F]["icon"].replace(/\/images\/map_marker_/,"");H=H.replace(/.png/,"");G+="<span class='cred_count "+H+"'>"+D[F]["creds"]+"</span>"}G+="</div>"}G+="</div></div>";C.bindInfoWindowHtml(G,{maxWidth:220});C._HTML=G;C._ARGS={maxWidth:220}};return A}function bindWindowHtmlSmallFN(C,B,E,D){var A=function(H){var I=0;var F="";F+="<div class='info_balloon clearfix'>";F+="<p class='location_name'>"+B.name+"</p>";F+="<p class='location_address'>"+B.street_address+"</p>";F+="<p class='location_city_state'>"+B.city+", "+B.state+"</p>";var G='$("#form_'+B.id+'")[0]';F+="<input type='button' value='This is the address' onClick='"+G+".onsubmit(); "+G+".submit()'/>";F+="</div>";C.bindInfoWindowHtml(F);C._HTML=F;C._ARGS={}};return A}function bindClickFN(B,A){var C=new GLatLng(A.lat,A.lng);return function(){B.openInfoWindowHtml(B._HTML,B._ARGS)}}function bindWindowCloseFN(A){return(function(){if(points[A.id][2]){hideStreet(A.id)}})}function recenterMapForArray(L){var G=function(P){if(P.length&&P.length>0){return P[0]}else{return P}};var K=G(L[0]);if(L.length==1){map.setCenter(new GLatLng(K.lat,K.lng))}else{if(L.length>1){var F=[],E=$p();for(var H=0;H<L.length;H++){var M=G(L[H]);var O=$ll([M.lat,M.lng]).vector();E.add_point([O.x(),O.y(),O.z()])}var B=E.convex_hull_2d();if(B.count>=3){B.foreach(function(Q){var P=$v(Q).latlng();F.push(new GLatLng(P.lat(),P.lng()))});var D=new GPolygon(F);var J=B.centroid_3d();var N=J.latlng();var A=new GLatLng(N.lat(),N.lng());var I=D.getBounds();var C=map.getBoundsZoomLevel(I);map.setCenter(A,C)}else{map.setCenter(new GLatLng(K.lat,K.lng))}}}}function searchResults(req,cb){HALT_REQUEST=true;map.clearOverlays();$("div.marker_label").remove();points={};var list=eval("("+req.toString()+")");if(list.length==0){humanMsg.displayMsg("There were no results for your search")}else{populateMap(list,"success");recenterMapForArray(list);reorientMarkers()}if(cb){cb(req)}}function populateMap(F,D,A,B){if(A==undefined||A==null){A=bindWindowHtmlFN}REQUEST_QUEUE.splice(0,1);var H=new GStreetviewClient();var G=function(O){var T,Q=false;if(O.length&&O.length>0){T=O[0];Q=true}else{T=O}var J=new GLatLng(T.lat,T.lng);var R={};var P=T.icon;R.icon=new GIcon(G_DEFAULT_ICON,P);R.icon.iconSize=new GSize(19,22);R.icon.shadowSize=new GSize(0,0);var V="l-"+T.id.toString()+"-"+new Date().getTime().toString();R.title=V;var N=new GMarker(J,R);map.addOverlay(N);var L=document.createElement("div");var U=$("*[title='"+V+"']");var K=U[0];if(K.nodeName.toUpperCase()!="IMG"){K=U.parent().prev("img")}U.attr("title",T.name);var S=$("<div>"+T.creds+((Q)?"+":"")+"</div>");S.insertAfter(K);S.click(bindClickFN(N,T));S.addClass("marker_label");if(Q){S.addClass("marker_label_multi")}S.attr("id",V);N._my_label=S;GEvent.addListener(N,"infowindowclose",bindWindowCloseFN(T));GEvent.addListener(N,"visibilitychanged",function(W){if(W){this._my_label.show()}else{this._my_label.hide()}});H.getNearestPanoramaLatLng(J,A(N,T,J,O));if(O.length&&O.length>0){for(var M=0;M<O.length;M++){points[O[M]["id"]]=[N,O[M],null,T.id]}}else{points[T.id]=[N,T,null,T.id]}};for(var E=0;E<F.length;E++){if(F[E].length&&F[E].length>0){var I=false;for(var C=0;C<F[E].length;C++){if(points[F[E][C]["id"]]){I=true;break}}if(I){continue}}else{if(points[F[E]["id"]]){continue}}G(F[E])}reorientMarkers();if(B){B(F)}}function cleanCategories(){var F={};for(var G in points){var E=points[G][1];var D=points[G][3];var B=1;var C=false;for(var A=0;A<E.categories.length;A++){if(categories[E.categories[A]]){B=-1}}if(B&&F[points[G][3]]==-1){continue}F[points[G][3]]=B}for(var G in F){var B=(F[G]==-1)?false:true;if(!points[G][0].isHidden()&&B){points[G][0].hide()}else{if(points[G][0].isHidden()&&!B){points[G][0].show()}}}}function credLength(){var E=140;var C;var D="#cred_chars_left";var B="#btn_cred_update";var A="#cred_text";char_count=$(A).val().length;C=E-char_count;$(D).text(C+" left");if(C<=-1){$(D).addClass("alert");$(B).attr("disabled","disabled").css({opacity:0.4});$(A).focus()}else{$(D).removeClass("alert");$(B).removeAttr("disabled").css({opacity:1})}};