
var map;var minimap;var IMG_BASE_URL="/images/gmap/";var LISTING_MARKERS=new Object();function parse_get_string()
{var params=[];var results;var regex=new RegExp("/[\?&]([^=]+)=([a-z0-9_]*)/i");while((results=regex.exec(window.location.href))!=null)
{params.push([results[1],results[2]]);}
return params;}
function sortSearchResults(sortby)
{var found_sort=false;var get_string_values;var outstring="?";get_string_values=parse_get_string();for(var i=0;i<get_string_values.length;i++)
{if(get_string_values[i][0]=='SORT_order')
{outstring+="SORT_order="+sortby+"&";found_sort=true;}
else{outstring+=get_string_values[i][0]+"="+get_string_values[i][1]+"&";}}
if(!found_sort){outstring+="SORT_order="+sortby;}
window.location=outstring;}
function attachSearchResultsEvents(){$$('.submit_on_change').each(function(selectobj){selectobj.observe('change',function(){this.form.submit();});});if($("featured_order_by")){$("featured_order_by").observe('change',function(){$("featured_order_form").submit();});}
$$('.btn_contact, .btn_visit').each(function(s){$(s).observe('click',function(event){popWindow(s);Event.stop(event);});});}
function createListingMarker(letter,mls_id,mls_no,point,page,lpp,index_on_page,total_listings,featured_order_by,listing_id,content_index){if(!page){page=null;}
if(!lpp){lpp=null;}
if(!index_on_page){index_on_page=null;}
if(!total_listings){total_listings=null;}
var icon_shadow=new google.maps.MarkerImage(IMG_BASE_URL+"marker_shdw.png",new google.maps.Size(34,37),new google.maps.Point(0,0),new google.maps.Point(9,35));var lettered_icon=new google.maps.MarkerImage(IMG_BASE_URL+"marker"+letter+".png",new google.maps.Size(20,34),new google.maps.Point(0,0),new google.maps.Point(10,34));var mouseover_icon=new google.maps.MarkerImage(IMG_BASE_URL+"marker"+letter+"_teal.png",new google.maps.Size(20,34),new google.maps.Point(0,0),new google.maps.Point(10,34));var selected_icon=new google.maps.MarkerImage(IMG_BASE_URL+"marker"+letter+"_green.png",new google.maps.Size(20,34),new google.maps.Point(0,0),new google.maps.Point(10,34));var markerOptions={icon:lettered_icon,position:point,map:map,shadow:icon_shadow};var listingmarker=new google.maps.Marker(markerOptions);listingmarker.id=($("FeatureMap"))?listing_id:mls_id+"_"+mls_no;listingmarker.active=false;google.maps.event.addListener(listingmarker,"mouseover",function(){if(listingmarker.active!=true){listingmarker.setIcon(mouseover_icon);}});google.maps.event.addListener(listingmarker,"mouseout",function(){if(listingmarker.active!=true){listingmarker.setIcon(lettered_icon);}});google.maps.event.addListener(listingmarker,"click",function(){if(listingmarker.active!=true){CURRENT_LISTING_ID=listingmarker.id;listingmarker.active=true;listingmarker.setIcon(selected_icon);var infowindow_html;var infowindow_url="?";if($("FeaturedMap")){new Ajax.Request(infowindow_url,{method:'post',parameters:{controller:'FeaturedListings',product:'web',action:'details',acnt:ACNT,listing_id:listing_id,featured_order_by:featured_order_by,content_index:content_index,infowindow:1},onSuccess:function(transport){infowindow_html=transport.responseText;var info_window_options={latlng:listingmarker.getPosition(),map:map,boxClass:'listing_info_window',content:infowindow_html,pixelOffset:new google.maps.Size(28,-60),boxStyle:{width:"235px"},infoBoxClearance:new google.maps.Size(1,1),shadow:'<img src="/images/gmap/listing_info_window_shadow.png" />',shadowOffset:new google.maps.Size(28,-30)};var pano_window_options={latlng:listingmarker.getPosition(),map:map,boxClass:'listing_info_window',content:infowindow_html,disableAutoPan:true,pixelOffset:new google.maps.Size(28,-160),boxStyle:{width:"235px"},infoBoxClearance:new google.maps.Size(1,1)};listingmarker.infoWindow=new InfoBox(info_window_options);listingmarker.infoWindow.open(map,listingmarker);var panorama=map.getStreetView();listingmarker.panoWindow=new InfoBox(pano_window_options);listingmarker.panoWindow.open(panorama,listingmarker);if(panorama.getVisible())
{google.maps.event.trigger(map,'resize');google.maps.event.trigger(panorama,'resize');}
google.maps.event.addListener(listingmarker.infoWindow,"closeclick",function(){if(listingmarker.active==true){listingmarker.panoWindow.close();listingmarker.active=false;listingmarker.setIcon(lettered_icon);}else{listingmarker.active=false;}});google.maps.event.addListener(listingmarker.panoWindow,"closeclick",function(){if(listingmarker.active==true){listingmarker.infoWindow.close();listingmarker.active=false;listingmarker.setIcon(lettered_icon);}else{listingmarker.active=false;}});},onFailure:function(){alert("The ajax request failed - was trying to retrieve this listing's information to show in the info window.");}});}
else{new Ajax.Request(infowindow_url,{method:'post',parameters:{controller:'ListingSearch',product:'web',action:'details',acnt:ACNT,mls_id:mls_id,mls_no:mls_no,page:page,lpp:lpp,index:index_on_page,total_listings:total_listings,infowindow:1},onSuccess:function(transport){infowindow_html=transport.responseText;var info_window_options={latlng:listingmarker.getPosition(),map:map,boxClass:'listing_info_window',content:infowindow_html,pixelOffset:new google.maps.Size(28,-60),boxStyle:{width:"235px"},infoBoxClearance:new google.maps.Size(1,1),shadow:'<img src="/images/gmap/listing_info_window_shadow.png" />',shadowOffset:new google.maps.Size(28,-30)};var pano_window_options={latlng:listingmarker.getPosition(),map:map,boxClass:'listing_info_window',content:infowindow_html,disableAutoPan:true,pixelOffset:new google.maps.Size(28,-160),boxStyle:{width:"235px"},infoBoxClearance:new google.maps.Size(1,1)};listingmarker.infoWindow=new InfoBox(info_window_options);listingmarker.infoWindow.open(map,listingmarker);var panorama=map.getStreetView();listingmarker.panoWindow=new InfoBox(pano_window_options);listingmarker.panoWindow.open(panorama,listingmarker);if(panorama.getVisible())
{google.maps.event.trigger(map,'resize');google.maps.event.trigger(panorama,'resize');}
google.maps.event.addListener(listingmarker.infoWindow,"closeclick",function(){if(listingmarker.active==true){listingmarker.panoWindow.close();listingmarker.active=false;listingmarker.setIcon(lettered_icon);}else{listingmarker.active=false;}});google.maps.event.addListener(listingmarker.panoWindow,"closeclick",function(){if(listingmarker.active==true){listingmarker.infoWindow.close();listingmarker.active=false;listingmarker.setIcon(lettered_icon);}else{listingmarker.active=false;}});},onFailure:function(){alert("The ajax request failed - was trying to retrieve this listing's information to show in the info window.");}});}}
else
{listingmarker.infoWindow.close();listingmarker.panoWindow.close();listingmarker.active=false;listingmarker.setIcon(mouseover_icon);}});return listingmarker;}
function setupListingMarkers(){var bounds=new google.maps.LatLngBounds();var index;var locate_buttons=$$('a.btn_locate');locate_buttons.each(function(s){if(s.rel!=''){var params=s.rel.split(",");var letter=params[0];var mls_id=params[1];var mls_no=params[2];var lat=params[3];var lng=params[4];var page=params[5];var lpp=params[6];var index_on_page=params[7];var total_listings=params[8];var featured_order_by=params[9];var listing_id=params[10];var content_index=params[11];var listing_point=new google.maps.LatLng(parseFloat(lat),parseFloat(lng));if(!bounds.contains(listing_point)){bounds.extend(listing_point);}
var marker=createListingMarker(letter,mls_id,mls_no,listing_point,page,lpp,index_on_page,total_listings,featured_order_by,listing_id,content_index);var listing_index="";if($("FeaturedMap")){listing_index=listing_id;}else{listing_index=mls_id+"_"+mls_no;}
LISTING_MARKERS[listing_index]=marker;$(s).observe('click',function(event){google.maps.event.trigger(LISTING_MARKERS[listing_index],"click");});}});if(locate_buttons){var bounds_center=bounds.getCenter();map.fitBounds(bounds);}}
function showStreetView(listing_id){if(!listing_id)
{alert("cannot show street view because no listing was specified");return;}
var panorama=map.getStreetView();if(panorama.getVisible())
{panorama.setVisible(false);}
else
{latlng=LISTING_MARKERS[listing_id].getPosition();sv_service=new google.maps.StreetViewService();sv_service.getPanoramaByLocation(latlng,50,function(data,status){if(status==google.maps.StreetViewStatus.OK){panorama.setPosition(latlng);panorama.setVisible(true);}
else{alert("Sorry, street view is unavailable for this location.");}});}}
function load(){var starting_centerpoint=$F("starting_centerpoint");var starting_zoom=8;var starting_map_type;var scrollwheel_enabled=$F("map_mousewheel_disable")=='Y'?false:true;switch($F("default_map_type"))
{case'HYBRID':starting_map_type=google.maps.MapTypeId.HYBRID;break;case'ROADMAP':starting_map_type=google.maps.MapTypeId.ROADMAP;break;case'SATELLITE':starting_map_type=google.maps.MapTypeId.SATELLITE;break;case'TERRAIN':starting_map_type=google.maps.MapTypeId.TERRAIN;break;default:starting_map_type=google.maps.MapTypeId.TERRAIN;}
var ctrpt=starting_centerpoint.split(",");var latlng=new google.maps.LatLng(ctrpt[0],ctrpt[1]);var mapOptions={zoom:starting_zoom,scrollwheel:scrollwheel_enabled,center:latlng,mapTypeId:starting_map_type,scaleControl:true};map=new google.maps.Map(document.getElementById("Map"),mapOptions);setupListingMarkers.delay(3);}
Event.observe(window,'load',function(){attachSearchResultsEvents();if($("Map")){load();}
$$('a.btn_locate_marker').invoke('pngFix');});
