-<% content_for "optionals" do %>
- <div class="optionalbox">
- <span class="oboxheader">Search</span>
- <% form_remote_tag(:update => :search_results_content,
- :loading => "openSearchResults()",
- :url => { :controller => :geocoder, :action => :search } ) do %>
- <%= text_field_tag :query, nil, :size => 16 %>
- <% end %>
- <p class="search_help">
- examples: 'Alkmaar', 'Regent Street, Cambridge', 'CB2 5AQ',
- or 'post offices near Lünen'
- <a href="http://wiki.openstreetmap.org/index.php/Name_finder#Searching_for_things">more examples...</a>
- </p>
- </div>
- <script type="text/javascript">
- <!--
- function openSearchResults() {
- $("search_results").style.display = "block";
- $("search_results_content").innerHTML = "<p class='search_results_entry'>Searching...</p>";
- <%= onopen %>
- }
-
- function closeSearchResults() {
- $("search_results").style.display = "none";
- <%= onclose %>
- }
- // -->
- </script>
-<% end %>
-
<div id="search_results">
<table class="search_results_title" width="100%">
<tr>
<div id="search_results_content">
</div>
</div>
+
+<script type="text/javascript">
+<!--
+ function startSearch() {
+ $("search_results_content").innerHTML = "<p class='search_results_entry'>Searching...</p>";
+ $("search_field").style.display = "none";
+ $("search_active").style.display = "inline";
+ }
+
+ function endSearch() {
+ $("search_field").style.display = "inline";
+ $("search_active").style.display = "none";
+ }
+
+ function openSearchResults() {
+ $("search_results").style.display = "block";
+ <%= onopen %>
+ }
+
+ function closeSearchResults() {
+ $("search_results").style.display = "none";
+ <%= onclose %>
+ }
+
+ function describeLocation() {
+ var position = getPosition();
+
+ <%= remote_function(:loading => "startSearch()",
+ :complete => "endSearch()",
+ :url => { :controller => :geocoder, :action => :description },
+ :with => "'lat=' + position.lat + '&lon=' + position.lon") %>
+ }
+
+ <% if params[:query] %>
+ <%= remote_function(:loading => "startSearch()",
+ :complete => "endSearch()",
+ :url => { :controller => :geocoder, :action => :search, :query => params[:query] }) %>
+ <% end %>
+// -->
+</script>
+
+<% content_for "optionals" do %>
+ <div class="optionalbox">
+ <span class="oboxheader">Search</span>
+ <span class="whereami"><a href="javascript:describeLocation()">Where am I?</a></span>
+ <div class="search_form">
+ <span id="search_field">
+ <% form_remote_tag(:loading => "startSearch()",
+ :complete => "endSearch()",
+ :url => { :controller => :geocoder, :action => :search }) do %>
+ <%= text_field_tag :query, params[:query] %>
+ <% end %>
+ </span>
+ <p id="search_active">Searching...</p>
+ </div>
+ <p class="search_help">
+ examples: 'Alkmaar', 'Regent Street, Cambridge', 'CB2 5AQ',
+ or 'post offices near Lünen'
+ <a href="http://wiki.openstreetmap.org/index.php/Search_Help">more examples...</a>
+ </p>
+ </div>
+<% end %>