<script type="text/javascript">
<!--
- function startSearch() {
- updateSidebar("<%= t 'site.sidebar.search_results' %>", "");
- }
-
function describeLocation() {
- var position = getPosition();
- var zoom = getZoom();
+ var args = getArgs($("viewanchor").href);
<%= remote_function(:loading => "startSearch()",
:url => { :controller => :geocoder, :action => :description },
- :with => "'lat=' + position.lat + '&lon=' + position.lon + '&zoom=' + zoom") %>
+ :with => "'lat=' + args['lat'] + '&lon=' + args['lon'] + '&zoom=' + args['zoom']") %>
}
+ function setSearchViewbox() {
+ <% if params[:action] == 'index' %>
+ var extent = getMapExtent();
+
+ var minlon = document.createElement("input");
+ minlon.type = "hidden";
+ minlon.id = "minlon";
+ minlon.name = "minlon";
+ minlon.value = extent.left;
+ $("search_form").appendChild(minlon);
+
+ var minlat = document.createElement("input");
+ minlat.type = "hidden";
+ minlat.id = "minlat";
+ minlat.name = "minlat";
+ minlat.value = extent.bottom;
+ $("search_form").appendChild(minlat);
+
+ var maxlon = document.createElement("input");
+ maxlon.type = "hidden";
+ maxlon.id = "maxlon";
+ maxlon.name = "maxlon";
+ maxlon.value = extent.left;
+ $("search_form").appendChild(maxlon);
+
+ var maxlat = document.createElement("input");
+ maxlat.type = "hidden";
+ maxlat.id = "maxlat";
+ maxlat.name = "maxlat";
+ maxlat.value = extent.bottom;
+ $("search_form").appendChild(maxlat);
+ <% end %>
+ }
+
+ function startSearch() {
+ updateSidebar("<%= t 'site.sidebar.search_results' %>", "");
+ }
+
+ function endSearch() {
+ <% if params[:action] == 'index' %>
+ $("minlon").remove();
+ $("minlat").remove();
+ $("maxlon").remove();
+ $("maxlat").remove();
+ <% end %>
+ }
+
+ document.observe("dom:loaded", function () {
+ $("search_form").observe("ajax:before", setSearchViewbox);
+ $("search_form").observe("ajax:loading", startSearch);
+ $("search_form").observe("ajax:complete", endSearch);
+ });
+
<% if params[:query] %>
<%= remote_function(:loading => "startSearch()",
:url => { :controller => :geocoder, :action => :search, :query => h(params[:query]) }) %>
// -->
</script>
-<% content_for "optionals" do %>
+<% content_for :optionals do %>
<div class="optionalbox">
- <span class="oboxheader"><%= t 'site.search.search' %></span>
<span class="whereami"><a href="javascript:describeLocation()" title="<%= t 'site.search.where_am_i_title' %>"><%= t 'site.search.where_am_i' %></a></span>
- <div class="search_form">
+ <h1><%= t 'site.search.search' %></h1>
+ <div class="search_container">
<div id="search_field">
- <% form_remote_tag(:loading => "startSearch()",
- :complete => "endSearch()",
- :url => { :controller => :geocoder, :action => :search },
- :html => { :method => "get", :action => url_for(:action => "index") }) do %>
- <%= text_field_tag :query, h(params[:query]) %>
+ <%= form_tag({ :controller => :geocoder, :action => :search },
+ { :id => "search_form", :remote => true, :method => "get", :action => url_for(:action => "index") }) do %>
+ <%= text_field_tag :query, h(params[:query]), :tabindex => "1" %>
<%= submit_tag t('site.search.submit_text') %>
<% end %>
</div>
</div>
<p class="search_help">
- <%= t 'site.search.search_help' %>
+ <%= raw(t 'site.search.search_help') %>
</p>
</div>
<% end %>