]> git.openstreetmap.org Git - rails.git/commitdiff
Merge branch 'master' of git://git.openstreetmap.org/rails into openstreetbugs
authorKai Krueger <kakrueger@gmail.com>
Sun, 2 May 2010 10:42:58 +0000 (11:42 +0100)
committerKai Krueger <kakrueger@gmail.com>
Sun, 2 May 2010 10:42:58 +0000 (11:42 +0100)
92 files changed:
app/helpers/browse_helper.rb
app/models/notifier.rb
app/views/browse/_map.html.erb
app/views/browse/_navigation.html.erb
app/views/browse/_tag.html.erb
app/views/browse/changeset.html.erb
app/views/browse/node.html.erb
app/views/browse/node_history.html.erb
app/views/browse/relation.html.erb
app/views/browse/relation_history.html.erb
app/views/browse/way.html.erb
app/views/browse/way_history.html.erb
app/views/layouts/site.html.erb
app/views/site/copyright.html.erb [new file with mode: 0644]
app/views/site/edit.html.erb
app/views/user/no_such_user.html.erb
config/environment.rb
config/initializers/wiki_pages.rb [new file with mode: 0644]
config/locales/af.yml
config/locales/ar.yml
config/locales/arz.yml
config/locales/br.yml
config/locales/ca.yml
config/locales/cs.yml
config/locales/da.yml
config/locales/de.yml
config/locales/dsb.yml
config/locales/en.yml
config/locales/eo.yml
config/locales/es.yml
config/locales/fi.yml
config/locales/fr.yml
config/locales/fur.yml
config/locales/gl.yml
config/locales/gsw.yml
config/locales/he.yml
config/locales/hi.yml
config/locales/hr.yml
config/locales/hsb.yml
config/locales/hu.yml
config/locales/ia.yml
config/locales/is.yml
config/locales/it.yml
config/locales/ja.yml
config/locales/km.yml
config/locales/mk.yml
config/locales/nds.yml
config/locales/ne.yml
config/locales/nl.yml
config/locales/no.yml
config/locales/pl.yml
config/locales/pt-BR.yml
config/locales/pt.yml
config/locales/ro.yml
config/locales/ru.yml
config/locales/sk.yml
config/locales/sl.yml
config/locales/sr-EC.yml
config/locales/sv.yml
config/locales/te.yml
config/locales/uk.yml
config/locales/vi.yml
config/locales/zh-TW.yml
config/openlayers.cfg
config/potlatch/locales/br.yml
config/potlatch/locales/da.yml
config/potlatch/locales/dsb.yml
config/potlatch/locales/en.yml
config/potlatch/locales/uk.yml
config/routes.rb
config/wiki_pages.yml [new file with mode: 0644]
db/.gitignore [new file with mode: 0644]
db/functions/.gitignore [new file with mode: 0644]
public/openlayers/OpenLayers.js
public/openlayers/theme/default/google.css
public/openlayers/theme/default/style.css
public/robots.txt
public/stylesheets/common.css
script/misc/update-wiki-pages [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/de-AT.yml
vendor/plugins/rails-i18n/locale/de-CH.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/de.yml
vendor/plugins/rails-i18n/locale/id.yml
vendor/plugins/rails-i18n/locale/nb.yml
vendor/plugins/rails-i18n/locale/nl.yml
vendor/plugins/rails-i18n/locale/pl.yml
vendor/plugins/rails-i18n/locale/pt-BR.yml
vendor/plugins/rails-i18n/locale/pt-PT.yml
vendor/plugins/rails-i18n/locale/ro.yml
vendor/plugins/rails-i18n/locale/sv-SE.yml
vendor/plugins/rails-i18n/locale/zh-CN.yml
vendor/plugins/rails-i18n/locale/zh-TW.yml

index aed0c518f4ce46255f0597d47b1f8772abfd7472..ff702aed11f7a0ac04a0d284c604b4d3f467c9d8 100644 (file)
@@ -15,4 +15,65 @@ module BrowseHelper
     end
     return name
   end
+
+  def format_key(key)
+    if url = wiki_link("key", key)
+      link_to h(key), url, :title => t('browse.tag_details.wiki_link.key', :key => key)
+    else
+      h(key)
+    end
+  end
+
+  def format_value(key, value)
+    if wp = wikipedia_link(key, value)
+      link_to h(wp[:title]), wp[:url], :title => t('browse.tag_details.wikipedia_link', :page => wp[:title])
+    elsif url = wiki_link("tag", "#{key}=#{value}")
+      link_to h(value), url, :title => t('browse.tag_details.wiki_link.tag', :key => key, :value => value)
+    else
+      linkify h(value)
+    end
+  end
+
+private
+
+  def wiki_link(type, lookup)
+    locale = I18n.locale.to_s
+
+    if page = WIKI_PAGES[locale][type][lookup] rescue nil
+      url = "http://wiki.openstreetmap.org/wiki/#{page}?uselang=#{locale}"
+    elsif page = WIKI_PAGES["en"][type][lookup] rescue nil
+      url = "http://wiki.openstreetmap.org/wiki/#{page}?uselang=#{locale}"
+    end
+
+    return url
+  end
+
+  def wikipedia_link(key, value)
+    # Some k/v's are wikipedia=http://en.wikipedia.org/wiki/Full%20URL
+    return nil if value =~ /^http:\/\//
+
+    if key == "wikipedia"
+      # This regex should match Wikipedia language codes, everything
+      # from de to zh-classical
+      if value =~ /^([a-z-]{2,12}):(.+)$/
+        # Value is <lang>:<title> so split it up
+        lang  = $1
+        value = $2
+      else
+        # Value is <title> so default to English Wikipedia
+        lang = 'en'
+      end
+    elsif key =~ /^wikipedia:(\S+)$/
+      # Language is in the key, so assume value is a simple title
+      lang = $1
+    else
+      # Not a wikipedia key!
+      return nil
+    end
+
+    return {
+      :url => "http://#{lang}.wikipedia.org/wiki/#{value}?uselang=#{I18n.locale}",
+      :title => value
+    }
+  end
 end
index df30d651bd75ce4d678ee12ec799587f202b8cb8..41734bb5b21e1954d35d6052b41905df225c0768 100644 (file)
@@ -99,8 +99,8 @@ private
   def common_headers(recipient)
     recipients recipient.email
     locale recipient.preferred_language_from(I18n.available_locales)
-    from "OpenStreetMap <webmaster@openstreetmap.org>"
-    headers "return-path" => "bounces@openstreetmap.org",
+    from EMAIL_FROM
+    headers "return-path" => EMAIL_RETURN_PATH,
             "Auto-Submitted" => "auto-generated"
   end
 
index 5d7285840c05aa097bfbdc9fa1242213282b6b64..0b7f76f238b80daf3416433d3194f275cde38835 100644 (file)
@@ -1,22 +1,20 @@
 <%= javascript_include_tag '/openlayers/OpenLayers.js' %>
 <%= javascript_include_tag '/openlayers/OpenStreetMap.js' %>
 <%= javascript_include_tag 'map.js' %>
-<td>
-  <div style="width: 250px; margin: auto; text-align: right"">
-    <% if map.instance_of? Changeset or map.visible %>
-      <div id="small_map" style="width:250px; height: 300px; border: solid 1px black">
-      </div>
-      <span id="loading"><%= t 'browse.map.loading' %></span>
-      <a id="area_larger_map" href=""></a>
-      <% unless map.instance_of? Changeset %>
-        <br />
-        <a id="object_larger_map" href=""></a>
-      <% end %>
-    <% else %>
-      <%= t 'browse.map.deleted' %>
-    <% end %>
+<div id="browse_map">
+  <% if map.instance_of? Changeset or map.visible %>
+  <div id="small_map">
   </div>
-</td>
+  <span id="loading"><%= t 'browse.map.loading' %></span>
+  <a id="area_larger_map" href=""></a>
+  <% unless map.instance_of? Changeset %>
+    <br />
+    <a id="object_larger_map" href=""></a>
+  <% end %>
+  <% else %>
+    <%= t 'browse.map.deleted' %>
+  <% end %>
+</div>
 <% if map.instance_of? Changeset or map.visible %>
   <script type="text/javascript">
     OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>");
index ed483d8ec48aeba3a7997fb62725758cb354a828..54e792a9fdc9ff63a0fe5038ab8b1b75574012e9 100644 (file)
@@ -1,40 +1,42 @@
-<div style="float:right; text-align:center; width: 100%;">
+<% type = (@next || @prev).class.name.downcase %>
+<% margin = @next_by_user || @prev_by_user ? 9 : 18 %>
+<div id="browse_navigation" style="margin-top: <%= margin %>px">
   <% if @next_by_user or @prev_by_user %>
     <span class="nowrap">
       <% if @prev_by_user %>
-        <%= link_to t('browse.changeset_navigation.paging.user.prev', :id => @prev_by_user.id.to_s),
+        <%= link_to t('browse.navigation.paging.user.prev', :id => @prev_by_user.id.to_s),
                     { :id => @prev_by_user.id },
-                    { :title => t('browse.changeset_navigation.user.prev_tooltip', :user => @prev_by_user.user.display_name) } %>
+                    { :title => t("browse.navigation.user.prev_#{type}_tooltip", :user => @prev_by_user.user.display_name) } %>
         |
       <% end %>
       <%=
       user = (@prev_by_user || @next_by_user).user.display_name
       link_to h(user),
               { :controller => "changeset", :action => "list", :display_name => user },
-              { :title => t('browse.changeset_navigation.user.name_tooltip', :user => h(user)) }
+              { :title => t("browse.navigation.user.name_#{type}_tooltip", :user => h(user)) }
       %>
       <% if @next_by_user %>
         |
-        <%= link_to t('browse.changeset_navigation.paging.user.next', :id => @next_by_user.id.to_s),
+        <%= link_to t('browse.navigation.paging.user.next', :id => @next_by_user.id.to_s),
                     { :id => @next_by_user.id },
-                    { :title => t('browse.changeset_navigation.user.next_tooltip', :user => @next_by_user.user.display_name) } %>
+                    { :title => t("browse.navigation.user.next_#{type}_tooltip", :user => @next_by_user.user.display_name) } %>
       <% end %>
     </span>
     <br/>
   <% end %>
   <span class="nowrap">
     <% if @prev %>
-      <%= link_to t('browse.changeset_navigation.paging.all.prev', :id => @prev.id.to_s),
+      <%= link_to t('browse.navigation.paging.all.prev', :id => @prev.id.to_s),
                   { :id => @prev.id },
-                  { :title => t('browse.changeset_navigation.all.prev_tooltip') } %>
+                  { :title => t("browse.navigation.all.prev_#{type}_tooltip") } %>
     <% end %>
     <% if @prev and @next %>
       | 
     <% end %>
     <% if @next %>
-      <%= link_to t('browse.changeset_navigation.paging.all.next', :id => @next.id.to_s),
+      <%= link_to t('browse.navigation.paging.all.next', :id => @next.id.to_s),
                   { :id => @next.id },
-                  { :title => t('browse.changeset_navigation.all.next_tooltip') } %>
+                  { :title => t("browse.navigation.all.next_#{type}_tooltip") } %>
     <% end %>
   </span>
 </div>
index ab5707f9e0d82b572c408121a6b993f02e245be9..2eadad4f2db4a99bbb90cbb57f2134aa20bfb06f 100644 (file)
@@ -1,3 +1,3 @@
 <tr>
-  <td><%= h(tag[0]) %> = <%= linkify(h(tag[1])) %></td>
+  <td><%= format_key(tag[0]) %> = <%= format_value(tag[0], tag[1]) %></td>
 </tr> 
index 8e110212893968f9f0c6c15d2e49fb5364386e82..bd93708e0785ee82e4e24906c73374b71d8e5740 100644 (file)
@@ -1,21 +1,9 @@
-<table width="100%">
-  <tr>
-    <td>
-      <h2><%= t 'browse.changeset.changeset', :id => @changeset.id %></h2>
-    </td>
-    <td>
-      <%= render :partial => "navigation" %>
-    </td>
-  </tr>
-  <tr valign="top">
-    <td>
-    <%= render :partial => "changeset_details", :object => @changeset %>
-    <hr />
-    <%= t 'browse.changeset.download', :changeset_xml_link => link_to(t('browse.changeset.changesetxml'), :controller => "changeset", :action => "read"), 
-                                       :osmchange_xml_link => link_to(t('browse.changeset.osmchangexml'), :controller => "changeset", :action => "download") %>
-    </td>
-    <% if @changeset.has_valid_bbox? %>
-    <%= render :partial => "map", :object => @changeset %>
-    <% end %>
-  </tr>
-</table>
+<%= render :partial => "navigation" %>
+<h2><%= t 'browse.changeset.changeset', :id => @changeset.id %></h2>
+<% if @changeset.has_valid_bbox? %>
+<%= render :partial => "map", :object => @changeset %>
+<% end %>
+<%= render :partial => "changeset_details", :object => @changeset %>
+<hr />
+<%= t 'browse.changeset.download', :changeset_xml_link => link_to(t('browse.changeset.changesetxml'), :controller => "changeset", :action => "read"), 
+                                   :osmchange_xml_link => link_to(t('browse.changeset.osmchangexml'), :controller => "changeset", :action => "download") %>
index 14e8aa503bcc35d40dee649d962f0cc6fcc7b729..95176ab04305610c1a34159b42d1202932589cd3 100644 (file)
@@ -2,24 +2,12 @@
 @name = printable_name @node
 @title = t('browse.node.node') + ' | ' + @name
 %>
-<table width="100%">
-  <tr>
-    <td>
-      <h2><%= t'browse.node.node_title', :node_name => h(@name) %></h2>
-    </td>
-    <td>
-      <%= render :partial => "navigation" %>
-    </td>
-  </tr>
-  <tr valign="top">
-    <td>
-      <%= render :partial => "node_details", :object => @node %>
-      <hr />
-      <%= t'browse.node.download', :download_xml_link => link_to(t('browse.node.download_xml'), :controller => "node", :action => "read"),
-                                   :view_history_link => link_to(t('browse.node.view_history'), :action => "node_history"),
-                                   :edit_link => link_to(t('browse.node.edit'), :controller => "site", :action => "edit", :lat => @node.lat, :lon => @node.lon, :zoom => 18, :node => @node.id)
-      %>
-    </td>
-    <%= render :partial => "map", :object => @node %>
-  </tr>
-</table>
+<%= render :partial => "navigation" %>
+<h2><%= t'browse.node.node_title', :node_name => h(@name) %></h2>
+<%= render :partial => "map", :object => @node %>
+<%= render :partial => "node_details", :object => @node %>
+<hr />
+<%= t'browse.node.download', :download_xml_link => link_to(t('browse.node.download_xml'), :controller => "node", :action => "read"),
+                             :view_history_link => link_to(t('browse.node.view_history'), :action => "node_history"),
+                             :edit_link => link_to(t('browse.node.edit'), :controller => "site", :action => "edit", :lat => @node.lat, :lon => @node.lon, :zoom => 18, :node => @node.id)
+%>
index fe6c79812cf1b592e0f365d7ac7035dfa6f5baaf..90b67744088a9befe372a919c7adde8a8b535504 100644 (file)
@@ -3,17 +3,10 @@
 @title = t('browse.node_history.node_history') + ' | ' + @name
 %>
 <h2><%= t'browse.node_history.node_history_title', :node_name => link_to(h(@name), :action => "node", :id => @node.id) %></h2>
-
-<table width="100%">
-  <tr valign="top">
-    <td>
-      <% @node.old_nodes.reverse.each do |node| %>
-        <%= render :partial => "node_details", :object => node %>
-        <hr />
-      <% end %>
-      <%= t 'browse.node_history.download', :download_xml_link => link_to(t('browse.node_history.download_xml'), :controller => "old_node", :action => "history"),
-                                            :view_details_link => link_to(t('browse.node_history.view_details'), :action => "node") %>
-    </td>
-    <%= render :partial => "map", :object => @node %>
-  </tr>
-</table>
+<%= render :partial => "map", :object => @node %>
+<% @node.old_nodes.reverse.each do |node| %>
+  <%= render :partial => "node_details", :object => node %>
+  <hr />
+<% end %>
+<%= t 'browse.node_history.download', :download_xml_link => link_to(t('browse.node_history.download_xml'), :controller => "old_node", :action => "history"),
+                                      :view_details_link => link_to(t('browse.node_history.view_details'), :action => "node") %>
index e180da084377d05929c08380e088c501c79e8b2e..b1184d647b8ba19654c9a76945aa4e9baf0befa4 100644 (file)
@@ -2,22 +2,10 @@
 @name = printable_name @relation
 @title = t('browse.relation.relation') + ' | ' + @name
 %>
-<table width="100%">
-  <tr>
-    <td>
-      <h2><%= t'browse.relation.relation_title', :relation_name => h(@name) %></h2>
-    </td>
-    <td>
-      <%= render :partial => "navigation" %>
-    </td>
-  </tr>
-  <tr valign="top">
-    <td>
-      <%= render :partial => "relation_details", :object => @relation %>
-      <hr />
-      <%= t'browse.relation.download', :download_xml_link => link_to(t('browse.relation.download_xml'), :controller => "relation", :action => "read"),
-                                       :view_history_link => link_to(t('browse.relation.view_history'), :action => "relation_history") %>
-    </td>
-    <%= render :partial => "map", :object => @relation %>
-  </tr>
-</table>
+<%= render :partial => "navigation" %>
+<h2><%= t'browse.relation.relation_title', :relation_name => h(@name) %></h2>
+<%= render :partial => "map", :object => @relation %>
+<%= render :partial => "relation_details", :object => @relation %>
+<hr />
+<%= t'browse.relation.download', :download_xml_link => link_to(t('browse.relation.download_xml'), :controller => "relation", :action => "read"),
+                                 :view_history_link => link_to(t('browse.relation.view_history'), :action => "relation_history") %>
index a62ac2ef73e674d189e8dc76787cba43f8ba63fd..61b4d04fb031d42eb4ba014ae496c888f8ce8dfa 100644 (file)
@@ -3,17 +3,10 @@
 @title = t('browse.relation_history.relation_history') + ' | ' + @name
 %>
 <h2><%= t'browse.relation_history.relation_history_title', :relation_name => link_to(h(@name), :action => "relation", :id => @relation.id) %></h2>
-
-<table width="100%">
-  <tr valign="top">
-    <td>
-      <% @relation.old_relations.reverse.each do |relation| %>
-        <%= render :partial => "relation_details", :object => relation %>
-        <hr />
-      <% end %>
-      <%= t'browse.relation_history.download', :download_xml_link => link_to(t('browse.relation_history.download_xml'), :controller => "old_relation", :action => "history"), 
-                                               :view_details_link => link_to(t('browse.relation_history.view_details'), :action => "relation") %>
-    </td>
-    <%= render :partial => "map", :object => @relation %>
-  </tr>
-</table>
+<%= render :partial => "map", :object => @relation %>
+<% @relation.old_relations.reverse.each do |relation| %>
+  <%= render :partial => "relation_details", :object => relation %>
+  <hr />
+<% end %>
+<%= t'browse.relation_history.download', :download_xml_link => link_to(t('browse.relation_history.download_xml'), :controller => "old_relation", :action => "history"), 
+                                         :view_details_link => link_to(t('browse.relation_history.view_details'), :action => "relation") %>
index 48b37429d614a0d31282845ad3b6368719435853..55618247fccd524c055f0d18e770ae28a11ae721 100644 (file)
@@ -2,25 +2,13 @@
 @name = printable_name @way
 @title = t('browse.way.way') + ' | ' + @name
 %>
-<table width="100%">
-  <tr>
-    <td>
-      <h2><%= t'browse.way.way_title', :way_name => h(@name) %></h2>
-    </td>
-    <td>
-      <%= render :partial => "navigation" %>
-    </td>
-  </tr>
-  <tr valign="top">
-    <td>
-      <%= render :partial => "way_details", :object => @way %>
-      <hr />
-      <%= link_to(t('browse.way.download_xml'), :controller => "way", :action => "read") %>
-      | <%= link_to(t('browse.way.view_history'), :action => "way_history") %>
-      <% unless @midnode.nil? %>
-        | <%= link_to(t('browse.way.edit'), :controller => "site", :action => "edit", :way => @way.id, :lat => @midnode.lat, :lon => @midnode.lon, :zoom => 16) %>
-      <% end %>
-    </td>
-    <%= render :partial => "map", :object => @way %>
-  </tr>
-</table>
+<%= render :partial => "navigation" %>
+<h2><%= t'browse.way.way_title', :way_name => h(@name) %></h2>
+<%= render :partial => "map", :object => @way %>
+<%= render :partial => "way_details", :object => @way %>
+<hr />
+<%= link_to(t('browse.way.download_xml'), :controller => "way", :action => "read") %>
+| <%= link_to(t('browse.way.view_history'), :action => "way_history") %>
+<% unless @midnode.nil? %>
+  | <%= link_to(t('browse.way.edit'), :controller => "site", :action => "edit", :way => @way.id, :lat => @midnode.lat, :lon => @midnode.lon, :zoom => 16) %>
+<% end %>
index f61fa6fa142ee7167603fdbc5480713767467f3b..e653c021a85ff795ac234e8535e4099b49bbd3fb 100644 (file)
@@ -3,17 +3,10 @@
 @title = t('browse.way_history.way_history') + ' | ' + @name
 %>
 <h2><%= t'browse.way_history.way_history_title', :way_name => link_to(h(@name), :action => "way", :id => @way.id) %></h2>
-
-<table width="100%">
-  <tr valign="top">
-    <td>
-      <% @way.old_ways.reverse.each do |way| %>
-        <%= render :partial => "way_details", :object => way %>
-        <hr />
-      <% end %>
-      <%= t'browse.way_history.download', :download_xml_link => link_to(t('browse.way_history.download_xml'), :controller => "old_way", :action => "history"), 
-                                          :view_details_link => link_to(t('browse.way_history.view_details'), :action => "way") %>
-    </td>
-    <%= render :partial => "map", :object => @way %>
-  </tr>
-</table>
+<%= render :partial => "map", :object => @way %>
+<% @way.old_ways.reverse.each do |way| %>
+  <%= render :partial => "way_details", :object => way %>
+  <hr />
+<% end %>
+<%= t'browse.way_history.download', :download_xml_link => link_to(t('browse.way_history.download_xml'), :controller => "old_way", :action => "history"), 
+                                    :view_details_link => link_to(t('browse.way_history.view_details'), :action => "way") %>
index 5679f3e8bfcc5df4617394011b340c7ed5fa2bb3..c17255709171508eb4fe470294807211f3fb93b2 100644 (file)
 
       <div id="left_menu" class="left_menu">
         <a href="<%= t 'layouts.help_wiki_url' %>" title="<%= t 'layouts.help_wiki_tooltip' %>"><%= t 'layouts.help_wiki' %></a><br />
+        <%= link_to t('layouts.copyright'), {:controller => 'site', :action => 'copyright'} %><br />
         <a href="http://blogs.openstreetmap.org/" title="<%= t 'layouts.news_blog_tooltip' %>"><%= t 'layouts.news_blog' %></a><br />
         <a href="<%= t 'layouts.shop_url' %>" title="<%= t 'layouts.shop_tooltip' %>"><%= t 'layouts.shop' %></a><br />
         <%= yield :left_menu %>
         <div class="donate">
           <a href="http://donate.openstreetmap.org/" title="<%= h(t('layouts.make_a_donation.title')) %>"><%= h(t('layouts.make_a_donation.text')) %></a>
         </div>
-
-        <div id="cclogo" style="width: 88px">
-          <%= link_to(
-                  image_tag("cc_button.png",
-                      :alt => t('layouts.license.alt'),
-                      :border => 0,
-                      :width => 88,
-                      :height => 31,
-                      :title => t('layouts.license.title')),
-                  "http://creativecommons.org/licenses/by-sa/2.0/",
-                  { :rel => "license" }) %>
-        </div>
       </center>
     </div>
   </body>
diff --git a/app/views/site/copyright.html.erb b/app/views/site/copyright.html.erb
new file mode 100644 (file)
index 0000000..eaaf3f3
--- /dev/null
@@ -0,0 +1,45 @@
+<p style="float: right">
+  <%= link_to(
+          image_tag("cc_button.png",
+              :alt => t('layouts.license.alt'),
+              :border => 0,
+              :width => 88,
+              :height => 31,
+              :title => t('layouts.license.title')),
+          "http://creativecommons.org/licenses/by-sa/2.0/",
+          { :rel => "license" }) %>
+</p>
+
+<% if I18n.locale == 'en' or params[:copyright_locale] == 'en' %>
+  <!-- Maybe ease foreigners back to their native page -->
+  <% if t('license_page.legal_babble') != t('license_page.legal_babble', :locale => :en) %>
+    <h2><%= t 'license_page.native.title' %></h2>
+    <p>
+      <%= t 'license_page.native.text',
+              :native_link => link_to(t('license_page.native.native_link'),
+                                          :controller => 'site',
+                                          :action => 'copyright'),
+              :mapping_link => link_to(t('license_page.native.mapping_link'),
+                                          :controller => 'site',
+                                          :action => 'index') %>
+    </p>
+    <hr />
+  <% end %>
+
+  <%= t('license_page.legal_babble', :locale => :en) %>
+<% else %>
+  <!-- Maybe note that this page has been translated -->
+  <% if t('license_page.legal_babble') != t('license_page.legal_babble', :locale => :en) %>
+    <h2><%= t 'license_page.foreign.title' %></h2>
+    <p>
+      <%= t 'license_page.foreign.text',
+              :english_original_link => link_to(t('license_page.foreign.english_link'),
+                                                :controller => 'site',
+                                                :action => 'copyright',
+                                                :copyright_locale => 'en') %>
+    </p>
+    <hr />
+  <% end %>
+
+  <%= t('license_page.legal_babble') %>
+<% end %>
index 3565b046816d41658434471f34efdedfd113d7e9..779abd352b659324992a20c4efd53fc924180066 100644 (file)
@@ -20,7 +20,7 @@
 <%= render :partial => 'search' %>
 
 <%
-session[:token] = @user.tokens.create.token unless session[:token]
+session[:token] = @user.tokens.create.token unless session[:token] and UserToken.find_by_token(session[:token])
 
 # Decide on a lat lon to initialise potlatch with. Various ways of doing this
 if params['lon'] and params['lat']
index 585d29d8cde56bcec4d42a7615190c270462130c..8507f5abb2b70d475089400ad99efd3fafb5a1cd 100644 (file)
@@ -1,2 +1,2 @@
-<h2><%= t 'user.no_such_user.heading', :user => @not_found_user %></h2>
-<p><%= t 'user.no_such_user.body', :user => @not_found_user %></p>
+<h2><%= t 'user.no_such_user.heading', :user => h(@not_found_user) %></h2>
+<p><%= t 'user.no_such_user.body', :user => h(@not_found_user) %></p>
index 98fdfaa8c2b3709eb2271a7cc3745a2c3c0665a5..6158dfa8cdb3a7cd0dfaeebdea67d14188f43584 100644 (file)
@@ -13,6 +13,10 @@ SERVER_URL = ENV['OSM_SERVER_URL'] || 'www.openstreetmap.org'
 # Set the generator
 GENERATOR = ENV['OSM_SERVER_GENERATOR'] || 'OpenStreetMap server'
 
+# Settings for generated emails (e.g. signup confirmation
+EMAIL_FROM = ENV['OSM_EMAIL_FROM'] || 'OpenStreetMap <webmaster@openstreetmap.org>'
+EMAIL_RETURN_PATH = ENV['OSM_EMAIL_RETURN_PATH'] || 'bounces@openstreetmap.org'
+
 # Application constants needed for routes.rb - must go before Initializer call
 API_VERSION = ENV['OSM_API_VERSION'] || '0.6'
 
diff --git a/config/initializers/wiki_pages.rb b/config/initializers/wiki_pages.rb
new file mode 100644 (file)
index 0000000..dbaa4dd
--- /dev/null
@@ -0,0 +1 @@
+WIKI_PAGES = YAML.load_file("#{RAILS_ROOT}/config/wiki_pages.yml")
index b1d57267c0c1c6806e035e3da8ed0ee034ef7988..1273aed8e86336077272e834591b72ce9aa70a42 100644 (file)
@@ -67,14 +67,6 @@ af:
         one: "Het die volgende node:"
         other: "Het die volgende {{count}} nodes:"
       show_area_box: Wys gebied
-    changeset_navigation: 
-      all: 
-        next_tooltip: Volgende stel wysigings
-        prev_tooltip: Vorige stel wysigings
-      user: 
-        name_tooltip: Wys wysigings deur {{user}}
-        next_tooltip: Volgende wysiging deur {{user}}
-        prev_tooltip: Vorige wysiging deur {{user}}
     common_details: 
       changeset_comment: "Opmerking:"
       edited_at: "Gewysig op:"
@@ -91,6 +83,14 @@ af:
         relation: Besigtig relasie op groter kaart
         way: Besigtig weg op groter kaart
       loading: Besig om af te laai...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Volgende stel wysigings
+        prev_changeset_tooltip: Vorige stel wysigings
+      user: 
+        name_changeset_tooltip: Wys wysigings deur {{user}}
+        next_changeset_tooltip: Volgende wysiging deur {{user}}
+        prev_changeset_tooltip: Vorige wysiging deur {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} of {{edit_link}}"
       download_xml: Laai XML af
index 8a012517577a5e5591e970cfc4f0f646dd313e75..e4a57a76a7cb7043bedf62efaf58ed5a3d4e2f07 100644 (file)
@@ -112,14 +112,6 @@ ar:
         two: "فيه الطريقين التاليين:"
       no_bounding_box: لم يتم تخزين مربع الإحاطة لحزمة التغييرات هذه.
       show_area_box: اعرض مربع المنطقة
-    changeset_navigation: 
-      all: 
-        next_tooltip: حزمة التغييرات التالية
-        prev_tooltip: حزمة التغييرات السابقة
-      user: 
-        name_tooltip: اعرض تعديلات {{user}}
-        next_tooltip: التعديل التالي بواسطة {{user}}
-        prev_tooltip: عُدّل سابقًا بواسطة {{user}}
     common_details: 
       changeset_comment: "التعليق:"
       edited_at: "عُدّل في:"
@@ -137,6 +129,14 @@ ar:
         relation: اعرض العلاقة على خريطة أكبر
         way: اعرض الطريق على خريطة أكبر
       loading: جاري التحميل...
+    navigation: 
+      all: 
+        next_changeset_tooltip: حزمة التغييرات التالية
+        prev_changeset_tooltip: حزمة التغييرات السابقة
+      user: 
+        name_changeset_tooltip: اعرض تعديلات {{user}}
+        next_changeset_tooltip: التعديل التالي بواسطة {{user}}
+        prev_changeset_tooltip: عُدّل سابقًا بواسطة {{user}}
     node: 
       download: "{{download_xml_link}}، {{view_history_link}} أو {{edit_link}}"
       download_xml: نزّل إكس إم أل
index bf861a9379d8c370c34c218f62bc3dd0d8f285ec..d8139d13d737e7724d8496937dba47b5a07ef8ca 100644 (file)
@@ -108,14 +108,6 @@ arz:
         two: "فيه الطريقين التاليين:"
       no_bounding_box: لم يتم تخزين مربع الإحاطه لحزمه التغييرات هذه.
       show_area_box: اعرض مربع المنطقة
-    changeset_navigation: 
-      all: 
-        next_tooltip: حزمه التغييرات التالية
-        prev_tooltip: حزمه التغييرات السابقة
-      user: 
-        name_tooltip: اعرض تعديلات {{user}}
-        next_tooltip: التعديل التالى بواسطه {{user}}
-        prev_tooltip: عُدّل سابقًا بواسطه {{user}}
     common_details: 
       changeset_comment: "التعليق:"
       edited_at: "عُدّل في:"
@@ -133,6 +125,14 @@ arz:
         relation: اعرض العلاقه على خريطه أكبر
         way: اعرض الطريق على خريطه أكبر
       loading: جارى التحميل...
+    navigation: 
+      all: 
+        next_changeset_tooltip: حزمه التغييرات التالية
+        prev_changeset_tooltip: حزمه التغييرات السابقة
+      user: 
+        name_changeset_tooltip: اعرض تعديلات {{user}}
+        next_changeset_tooltip: التعديل التالى بواسطه {{user}}
+        prev_changeset_tooltip: عُدّل سابقًا بواسطه {{user}}
     node: 
       download: "{{download_xml_link}}، {{view_history_link}} أو {{edit_link}}"
       download_xml: نزّل إكس إم أل
index af01e66d79b8e2c022ecc39edef860367839b151..8c6ef94117d32815be1ec03b77cfb3c5f32f202a 100644 (file)
@@ -105,14 +105,6 @@ br:
         other: "Zo gantañ an {{count}} hent-mañ :"
       no_bounding_box: N'eus bet stoket boest bevenniñ ebet evit ar strollad kemmoù-mañ.
       show_area_box: Diskouez boest an takad
-    changeset_navigation: 
-      all: 
-        next_tooltip: Strollad kemmoù da-heul
-        prev_tooltip: Strollad kemmoù kent
-      user: 
-        name_tooltip: Gwelet an aozadennoù gant {{user}}
-        next_tooltip: Aozadenn da-heul gant {{user}}
-        prev_tooltip: Aozadenn gent gant {{user}}
     common_details: 
       changeset_comment: "Addispleg :"
       edited_at: "Aozet d'an :"
@@ -130,6 +122,14 @@ br:
         relation: Gwelet an darempred war ur gartenn vrasoc'h
         way: Gwelet an hent war ur gartenn vrasoc'h
       loading: O kargañ...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Strollad kemmoù da-heul
+        prev_changeset_tooltip: Strollad kemmoù kent
+      user: 
+        name_changeset_tooltip: Gwelet an aozadennoù gant {{user}}
+        next_changeset_tooltip: Aozadenn da-heul gant {{user}}
+        prev_changeset_tooltip: Aozadenn gent gant {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} pe {{edit_link}}"
       download_xml: Pellgargañ XML
index d2c1f31b36fc250bf18f170c79c8963e4007cf65..27cfca9b1d10db1d6ca3f511964f5a44ef49466b 100644 (file)
@@ -96,13 +96,6 @@ ca:
         one: "Té la següent via:"
         other: "Té les següents {{count}} vies:"
       show_area_box: Mostra caixa de l'àrea
-    changeset_navigation: 
-      all: 
-        next_tooltip: Conjunt de canvis següent
-        prev_tooltip: Conjunt de canvis anterior
-      user: 
-        name_tooltip: Visualitza les edicions feter per {{user}}
-        prev_tooltip: Edició anterior per l'usuari {{user}}
     common_details: 
       changeset_comment: "Comentari:"
       edited_at: "Editat:"
@@ -120,6 +113,13 @@ ca:
         relation: Visualitza la relació en un mapa més gran
         way: Visualitza la via en un mapa més gran
       loading: S'està carregant...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Conjunt de canvis següent
+        prev_changeset_tooltip: Conjunt de canvis anterior
+      user: 
+        name_changeset_tooltip: Visualitza les edicions feter per {{user}}
+        prev_changeset_tooltip: Edició anterior per l'usuari {{user}}
     node: 
       download: "{{download_xml_link}} o {{view_history_link}}"
       download_xml: Baixa l'XML
index 3cf94478340c88dbb8e00f52c4d95b1c8f4aaa42..80dbdec7e8e419f7e891f14bee48333842c3a3c1 100644 (file)
@@ -86,14 +86,6 @@ cs:
         other: "Obsahuje následujících {{count}} cest:"
       no_bounding_box: K této sadě změn nebyl uložen rozsah.
       show_area_box: Zobrazit ohraničení oblasti
-    changeset_navigation: 
-      all: 
-        next_tooltip: Další sada změn
-        prev_tooltip: Předchozí sada změn
-      user: 
-        name_tooltip: Zobrazit úpravy od {{user}}
-        next_tooltip: Další úprava od {{user}}
-        prev_tooltip: Předešlá úprava od {{user}}
     common_details: 
       changeset_comment: "Komentář:"
       edited_at: "Upraveno v:"
@@ -111,6 +103,20 @@ cs:
         relation: Zobrazit relaci na větší mapě
         way: Zobrazit cestu na větší mapě
       loading: Načítá se…
+    navigation: 
+      all: 
+        next_changeset_tooltip: Další sada změn
+        next_node_tooltip: Následující uzel
+        next_relation_tooltip: Následující relace
+        next_way_tooltip: Následující cesta
+        prev_changeset_tooltip: Předchozí sada změn
+        prev_node_tooltip: Předchozí uzel
+        prev_relation_tooltip: Předchozí relace
+        prev_way_tooltip: Předchozí cesta
+      user: 
+        name_changeset_tooltip: Zobrazit úpravy od {{user}}
+        next_changeset_tooltip: Další úprava od {{user}}
+        prev_changeset_tooltip: Předešlá úprava od {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} nebo {{edit_link}}"
       download_xml: Stáhnout XML
@@ -195,6 +201,10 @@ cs:
       zoom_or_select: Zvolte větší měřítko nebo vyberte nějakou oblast mapy
     tag_details: 
       tags: "Tagy:"
+      wiki_link: 
+        key: Stránka s popisem značky {{key}} na wiki
+        tag: Stránka s popisem značky {{key}}={{value}} na wiki
+      wikipedia_link: Článek {{page}} na Wikipedii
     timeout: 
       sorry: Promiňte, ale načítání dat {{type}} číslo {{id}} trvalo příliš dlouho.
       type: 
@@ -262,6 +272,8 @@ cs:
       reply_link: Odpovědět na tento zápis
     edit: 
       language: "Jazyk:"
+      latitude: "Zeměpisná šířka:"
+      longitude: "Zeměpisná délka:"
       save_button: Uložit
       subject: "Předmět:"
       use_map_link: použít mapu
@@ -339,6 +351,7 @@ cs:
       other: asi {{count}} km
       zero: méně než 1 km
     results: 
+      more_results: Další výsledky
       no_results: Nenalezeny žádné výsledky
     search: 
       title: 
@@ -364,17 +377,25 @@ cs:
         highway: 
           bus_stop: Autobusová zastávka
           gate: Brána
+          residential: Ulice
           secondary: Silnice II. třídy
           steps: Schody
         historic: 
           museum: Muzeum
+        landuse: 
+          cemetery: Hřbitov
+          construction: Staveniště
+          vineyard: Vinice
         leisure: 
           garden: Zahrada
+          golf_course: Golfové hřiště
+          ice_rink: Kluziště
           miniature_golf: Minigolf
           nature_reserve: Přírodní rezervace
           park: Park
           pitch: Hřiště
           stadium: Stadion
+          swimming_pool: Bazén
         natural: 
           beach: Pláž
           glacier: Ledovec
@@ -391,6 +412,7 @@ cs:
           house: Dům
           houses: Budovy
           island: Ostrov
+          islet: Ostrůvek
           locality: Oblast
           municipality: Obecní úřad
           postcode: PSČ
@@ -427,7 +449,15 @@ cs:
       base: 
         cycle_map: Cyklomapa
         noname: Nepojmenované ulice
+    site: 
+      edit_disabled_tooltip: Pro editaci mapy přejděte na větší měřítko
+      edit_tooltip: Upravit mapu
+      edit_zoom_alert: Upravovat mapu můžete jen ve větším přiblížení
+      history_disabled_tooltip: Pro zobrazení editací této oblasti přejděte na větší měřítko
+      history_tooltip: Zobrazit editace této oblasti
+      history_zoom_alert: Zobrazit editace této oblasti můžete jen ve větším přiblížení
   layouts: 
+    copyright: Copyright &amp; licence
     edit: Upravit
     export: Export
     export_tooltip: Exportovat mapová data
@@ -516,13 +546,26 @@ cs:
     sent_message_summary: 
       delete_button: Smazat
   notifier: 
+    email_confirm: 
+      subject: "[OpenStreetMap] Potvrzení vaší e-mailové adresy"
     email_confirm_plain: 
       greeting: Dobrý den,
+    friend_notification: 
+      befriend_them: Můžete si ho/ji také přidat jako přítele na {{befriendurl}}.
+      had_added_you: "{{user}} si vás na OpenStreetMap přidal(a) jako přítele."
+      see_their_profile: Jeho/její profil si můžete prohlédnout na {{userurl}}.
+      subject: "[OpenStreetMap] {{user}} si vás přidal jako přítele"
     lost_password: 
       subject: "[OpenStreetMap] Žádost o nové heslo"
     lost_password_html: 
       click_the_link: Pokud tedy chcete, kliknutím na níže uvedený odkaz získáte nové heslo.
       hopefully_you: Někdo (patrně vy) požádal o vygenerování nového hesla pro uživatele serveru openstreetmap.org s touto e-mailovou adresou.
+    message_notification: 
+      footer1: Také si můžete zprávu přečíst na {{readurl}}
+      footer2: a můžete odpovědět na {{replyurl}}
+      header: "{{from_user}} vám poslal(a) prostřednictvím OpenStreetMap zprávu s předmětem {{subject}}:"
+      hi: Dobrý den, uživateli {{to_user}},
+      subject: "[OpenStreetMap] {{user}} vám poslal novou zprávu"
     signup_confirm_plain: 
       the_wiki_url: http://wiki.openstreetmap.org/wiki/Cs:Beginners_Guide?uselang=cs
       wiki_signup_url: http://wiki.openstreetmap.org/index.php?title=Special:UserLogin&type=signup&returnto=Cs:Main_Page&uselang=cs
@@ -531,6 +574,8 @@ cs:
       flash_player_required: Pokud chcete používat Potlatch, flashový editor OpenStreetMap, potřebujete přehrávač Flashe. Můžete si <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">stáhnout Flash Player z Adobe.com</a>. Pro editaci OpenStreetMap existuje <a href="http://wiki.openstreetmap.org/wiki/Editing">mnoho dalších možností</a>.
     index: 
       js_1: Buď používáte prohlížeč bez podpory JavaScriptu, nebo máte JavaScript zakázaný.
+      js_2: OpenStreetMap používá pro svou interaktivní mapu JavaScript.
+      js_3: Pokud nemůžete JavaScript zapnout, můžete vyzkoušet <a href="http://tah.openstreetmap.org/Browse/">statický prohlížeč Tiles@Home</a>.
       license: 
         license_name: Creative Commons Uveďte autora-Zachovejte licenci 2.0 Generic
         notice: Nabízeno pod licencí {{license_name}}, vytvořeno přispěvateli {{project_name}}.
@@ -613,6 +658,9 @@ cs:
     sidebar: 
       close: Zavřít
       search_results: Výsledky vyhledávání
+  time: 
+    formats: 
+      friendly: "%e. %m. %Y v %H:%M"
   trace: 
     create: 
       trace_uploaded: Váš GPX soubor byl uložen a čeká na zařazení do databáze. Obvykle to netrvá víc jak půl hodiny. Až bude zařazen, budete informováni emailem.
@@ -687,10 +735,12 @@ cs:
   user: 
     account: 
       current email address: "Stávající e-mailová adresa:"
+      delete image: Odstranit stávající obrázek
       email never displayed publicly: (nikde se veřejně nezobrazuje)
       home location: "Poloha domova:"
       image: "Obrázek:"
       image size hint: (nejlépe fungují čtvercové obrázky velikosti nejméně 100×100)
+      keep image: Zachovat stávající obrázek
       latitude: "Šířka:"
       longitude: "Délka:"
       make edits public button: Zvěřejnit všechny moje úpravy
@@ -706,6 +756,7 @@ cs:
         enabled: Aktivní. Není anonym, smí editovat data.
         enabled link text: co tohle je?
         heading: "Veřejné editace:"
+      replace image: Nahradit stávající obrázek
       return to profile: Zpět na profil
       save changes button: Uložit změny
       title: Upravit účet
@@ -715,7 +766,11 @@ cs:
     confirm_email: 
       button: Potvrdit
       failure: Tento kód byl už pro potvrzení e-mailové adresy použit.
+      heading: Potvrzení změny e-mailové adresy
+      press confirm button: Pro potvrzení nové e-mailové adresy klikněte na níže zobrazené tlačítko.
       success: Vaše e-mailová adresa byla potvrzena, děkujeme za registraci!
+    filter: 
+      not_an_administrator: K provedení této akce musíte být správce.
     login: 
       account not active: Je mi líto, ale váš uživatelský účet dosud nebyl aktivován.<br />Svůj účet si můžete aktivovat kliknutím na odkaz v potvrzovacím e-mailu.
       auth failure: Je mi líto, ale s uvedenými údaji se nemůžete přihlásit.
@@ -729,6 +784,7 @@ cs:
       remember: "Zapamatuj si mě:"
       title: Přihlásit se
     logout: 
+      heading: Odhlášení z OpenStreetMap
       logout_button: Odhlásit se
       title: Odhlásit se
     lost_password: 
@@ -805,6 +861,10 @@ cs:
       user location: Pozice uživatele
       your friends: Vaši přátelé
   user_role: 
+    filter: 
+      already_has_role: Uživatel již roli {{role}} má.
+      doesnt_have_role: Uživatel nemá roli {{role}}.
+      not_a_role: Řetězec „{{role}}“ neoznačuje platnou roli.
     grant: 
       confirm: Potvrdit
     revoke: 
index e7324d736f6681090365aafed0dd5c80e77b6d5e..9e4c0578a8e452a56c6a7eb2a27c81a736e07feb 100644 (file)
@@ -73,14 +73,6 @@ da:
         other: "Har følgende {{count}} veje:"
       no_bounding_box: Ingen grænse er lagret for dette ændringssæt.
       show_area_box: Vis kasse på et stort kort
-    changeset_navigation: 
-      all: 
-        next_tooltip: Næste ændringssæt
-        prev_tooltip: Forrige ændringssæt
-      user: 
-        name_tooltip: Vis redigeringer af {{user}}
-        next_tooltip: Næste redigering af {{user}}
-        prev_tooltip: Forrige redigering af {{user}}
     common_details: 
       changeset_comment: "Kommentar:"
       edited_at: "Redigeret:"
@@ -98,6 +90,14 @@ da:
         relation: Vis relation på større kort
         way: Vis vej på større kort
       loading: Indlæsning...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Næste ændringssæt
+        prev_changeset_tooltip: Forrige ændringssæt
+      user: 
+        name_changeset_tooltip: Vis redigeringer af {{user}}
+        next_changeset_tooltip: Næste redigering af {{user}}
+        prev_changeset_tooltip: Forrige redigering af {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} eller {{edit_link}}"
       download_xml: Hent XML
index 7cbdb2c719eb337c55deaaf2f9da887685b7c77e..57520adbf236c6de50fb38b095974aadf1c7fdfe 100644 (file)
@@ -117,14 +117,6 @@ de:
         other: "Enthält folgende {{count}} Wege:"
       no_bounding_box: Für dieses Changeset wurde kein Bereich gespeichert.
       show_area_box: Bereichsgrenze anzeigen
-    changeset_navigation: 
-      all: 
-        next_tooltip: Nächstes Changeset
-        prev_tooltip: Vorheriges Changeset
-      user: 
-        name_tooltip: Änderungen von {{user}} anzeigen
-        next_tooltip: Nächste Änderung von {{user}}
-        prev_tooltip: Vorherige Änderung von {{user}}
     common_details: 
       changeset_comment: "Kommentar:"
       edited_at: "Bearbeitet am:"
@@ -142,6 +134,14 @@ de:
         relation: Relation auf größerer Karte
         way: Weg auf größerer Karte
       loading: Laden …
+    navigation: 
+      all: 
+        next_changeset_tooltip: Nächstes Changeset
+        prev_changeset_tooltip: Vorheriges Changeset
+      user: 
+        name_changeset_tooltip: Änderungen von {{user}} anzeigen
+        next_changeset_tooltip: Nächste Änderung von {{user}}
+        prev_changeset_tooltip: Vorherige Änderung von {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} oder {{edit_link}}"
       download_xml: XML herunterladen
index c791c6f125e7f414f1c0022b750c54f54ea4c801..142afb22ec987a3c165fe6d235629ff4d557e2ff 100644 (file)
@@ -109,14 +109,6 @@ dsb:
         two: "Ma slědujucej {{count}} puśa:"
       no_bounding_box: Za toś tu sajźbu změnow njejo se žeden wobłuk składł.
       show_area_box: Wobłukowy kašćik pokazaś
-    changeset_navigation: 
-      all: 
-        next_tooltip: Pśiduca sajźba změnow
-        prev_tooltip: Pjerwjejšna sajźba změnow
-      user: 
-        name_tooltip: Změny wužywarja {{user}} pokazaś
-        next_tooltip: Pśiduca změna wót {{user}}
-        prev_tooltip: Pjerwjejšna změna wót {{user}}
     common_details: 
       changeset_comment: "Komentar:"
       edited_at: "Wobźěłany:"
@@ -134,6 +126,20 @@ dsb:
         relation: Relaciju na wětšej kórśe pokazaś
         way: Puś na wětšej kórśe pokazaś
       loading: Zacytujo se...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Pśiduca sajźba změnow
+        next_node_tooltip: Pśiducy suk
+        next_relation_tooltip: Pśiduca relacija
+        next_way_tooltip: Pśiducy puś
+        prev_changeset_tooltip: Pjerwjejšna sajźba změnow
+        prev_node_tooltip: Pśiducy suk
+        prev_relation_tooltip: Pjerwjejšna relacija
+        prev_way_tooltip: Pjerwjejšny puś
+      user: 
+        name_changeset_tooltip: Změny wužywarja {{user}} pokazaś
+        next_changeset_tooltip: Pśiduca změna wót {{user}}
+        prev_changeset_tooltip: Pjerwjejšna změna wót {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} abo {{edit_link}}"
       download_xml: XML ześěgnuś
@@ -218,6 +224,10 @@ dsb:
       zoom_or_select: Kórtu powětšyś abo kórtowy wurězk wubraś
     tag_details: 
       tags: "Atributy:"
+      wiki_link: 
+        key: Wikijowy wopisański bok za atribut {{key}}
+        tag: Wikijowy wopisański bok za atribut {{key}}={{value}}
+      wikipedia_link: Nastawk {{page}} we Wikipediji
     timeout: 
       sorry: Wódaj, trajo pśedłujko, daty za {{type}} z ID {{id}} wótwołaś.
       type: 
@@ -370,6 +380,7 @@ dsb:
       paste_html: HTML kopěrowaś, aby se zasajźił do websedła
       scale: Měritko
       too_large: 
+        body: Toś ten wobcerk jo pśewjeliki  za eksportěrowanje ako XML-daty OpenStreetMap. Pšosym pówětš abo wubjeŕ mjeńšy wobcerk.
         heading: Wobłuk pśewjeliki
       zoom: Skalěrowanje
     start_rjs: 
@@ -517,9 +528,16 @@ dsb:
           administrative: Zastojnstwowa granica
         building: 
           apartments: Bydleński blok
+          block: Blok twarjenjow
+          bunker: Bunker
           chapel: Kapałka
           church: Cerkwja
           city_hall: Radnica
+          commercial: Źěłarstwowe twarjenje
+          dormitory: Internat
+          entrance: Zachod do twarjenja
+          faculty: Twarjenje fakulty
+          farm: Burski dom
           flats: Bydlenja
           garage: Garaža
           hall: Hala
@@ -527,9 +545,14 @@ dsb:
           hotel: Hotel
           house: Dom
           industrial: Industrijowe twarjenje
+          office: Běrowowe twarjenje
+          public: Zjawne twarjenje
+          residential: Bydleńske twarjenje
+          retail: Twarjenje drobnego wikowanja
           school: Šulske twarjenje
           shop: Wobchod
           stadium: Stadion
+          store: Wobchod
           terrace: Terasa
           tower: Torm
           train_station: Dwórnišćo
@@ -575,26 +598,56 @@ dsb:
           unsurfaced: Njewobtwarźona droga
         historic: 
           archaeological_site: Archeologiske wukopowanišćo
+          battlefield: Bitwišćo
+          boundary_stone: Granicny kamjeń
           building: Twarjenje
           castle: Grod
           church: Cerkwja
           house: Dom
           icon: Ikona
+          manor: Kubło
+          memorial: Wopomnišćo
+          mine: Pódkopy
           monument: Pomnik
           museum: Muzeum
           ruins: Ruiny
           tower: Torm
+          wayside_cross: Kśica drogi
+          wayside_shrine: Lodka drogi
           wreck: Wrak
         landuse: 
+          allotments: Gumnyška
+          basin: Basenk
+          brownfield: Industrijowe lědo
           cemetery: Kjarchob
+          commercial: Źěłarstwowy wobcerk
+          conservation: Pśirodošćit
           construction: Twarnišćo
           farm: Farma
+          farmland: Rola
+          farmyard: Žywnosć
           forest: Góla
+          grass: Błomje
+          greenfield: njewobtwarjona zemja
           industrial: Industrijowy wobcerk
+          landfill: Wótchytanišćo
+          meadow: Łuka
+          military: Militarny wobcerk
+          mine: Pódkopy
           mountain: Góra
+          nature_reserve: Strony šćitaneje pśirody
           park: Park
+          piste: Pista
           plaza: Naměstno
+          quarry: Skała
           railway: Zeleznica
+          recreation_ground: Wódychańske strony
+          reservoir: Gaśeński jazor
+          residential: Bydleński wobcerk
+          retail: Drobne wikowanje
+          village_green: Wejsny najs
+          vineyard: Winowe kubło
+          wetland: Mokšy teren
           wood: Lěs
         leisure: 
           beach_resort: Mórske kupjele
@@ -679,10 +732,28 @@ dsb:
           unincorporated_area: Bźezgmejnske strony
           village: Wjas
         railway: 
+          abandoned: Spušćona zeleznicowa cera
+          construction: Zeleznicowa cera se twari
+          disused: Njewužywana zeleznicowa cera
+          disused_station: Njewužywane dwórnišćo
+          funicular: Powrjozowa zeleznica
+          halt: Zeleznicowe zastanišćo
           historic_station: Historiske dwórnišćo
+          junction: Zeleznicowe kśicnišćo
+          level_crossing: Zeleznicowy pśechod
+          light_rail: Měsćańska zeleznica
+          monorail: Jadnokólejowa zeleznica
+          narrow_gauge: Wuskokólejata zeleznica
+          platform: Pśistupnišćo
+          preserved: Wuchowana zeleznica
+          spur: Kólejowy wótstawk
           station: Dwórnišćo
+          subway: Zastanišćo pódzemskeje
+          subway_entrance: Zachod k pódzemskej
+          switch: Pśestajadło
           tram: Elektriska
           tram_stop: Zastanišćo elektriskeje
+          yard: Ranžěrowańske dwórnišćo
         shop: 
           alcohol: Wobchod za spirituoze
           apparel: Woblekarnja
@@ -802,10 +873,14 @@ dsb:
         cycle_map: Kórta za kolesowarjow
         noname: ŽednoMě
     site: 
+      edit_disabled_tooltip: Za wobźěłowanje kórty  powětšyś
       edit_tooltip: Kórtu wobźěłaś
       edit_zoom_alert: Musyš powětšyś, aby wobźěłał kórtu
+      history_disabled_tooltip: Powětšyś, aby se woglědał změny za toś ten wobcerk
+      history_tooltip: Změny za toś ten wobcerk pokazaś
       history_zoom_alert: Musyš powětšyś, aby wiźeł wobźěłowańsku historiju
   layouts: 
+    copyright: Awtorske pšawo a licenca
     donate: Pódprěj OpenStreetMap pśez {{link}} do fondsa aktualizacije hardware
     donate_link_text: dar
     edit: Wobźěłaś
@@ -856,6 +931,16 @@ dsb:
     view_tooltip: Kórtu se woglědaś
     welcome_user: Witaj, {{user_link}}
     welcome_user_link_tooltip: Twój wužywarski bok
+  license_page: 
+    foreign: 
+      english_link: engelskim originalom
+      text: W paźe konflikta mjazy pśełožonym bokom a {{english_original_link}}, engelski bok ma prědnosć měś
+      title: Wó toś tom pśełožku
+    native: 
+      mapping_link: kartěrowanje zachopiś
+      native_link: dolnoserbskej wersiji
+      text: Woglědujoš se engelsku wersiju boka awtorskego pšawa. Móžoš se k {{native_link}} toś togo boka wrośiś abo pśestaś wó awtorskem pšawje cytaś a {{mapping_link}}.
+      title: Wó toś tom boku
   message: 
     delete: 
       deleted: Powěsć wulašowana
@@ -887,6 +972,7 @@ dsb:
       subject: Temowe nadpismo
       title: Powěsć pósłaś
     no_such_message: 
+      body: Bóžko powěźeńka z tym ID njeeksistěrujo.
       heading: Powěsć njeeksistěrujo
       title: Powěsć njeeksistěrujo
     no_such_user: 
@@ -916,6 +1002,9 @@ dsb:
       title: Powěsć cytaś
       to: Komu
       unread_button: Ako njepśecytany markěrowaś
+      wrong_user: Sy ako `{{user}} pśizjawjony, ale powěsć, kótaruž sy kśěł cytaś, njejo se pósłała wót togo wužywarja abo k tomu wužywarjeju. Pšosym pśizjaw se ako korektny wužywaŕ, aby ju cytał.
+    reply: 
+      wrong_user: "Sy ako `{{user}}' pśizjawjony, ale powěsć, na kótaruž sy kśěł wótegroniś, njejo se pósłała k tomu wužywarjeju.\nPšosym pśizjaw se ako korektny wužywaŕ, aby wótegronił."
     sent_message_summary: 
       delete_button: Lašowaś
   notifier: 
@@ -936,6 +1025,7 @@ dsb:
       hopefully_you_1: Něchten (naźejucy ty) co swóju e-mailowu adresu pla
       hopefully_you_2: "{{server_url}} do {{new_address}} změniś."
     friend_notification: 
+      befriend_them: Móžoš někogo na {{befriendurl}} ako pśijaśela pśidaś.
       had_added_you: "{{user}} jo śi na OpenStreetMap ako pśijaśela pśidał."
       see_their_profile: Móžoš profil na {{userurl}} wiźeś.
       subject: "[OpenStreetMap] {{user}} jo śi ako pśijaśela pśidał."
@@ -1274,6 +1364,7 @@ dsb:
       flash update success confirm needed: Wužywarske informacije wuspěšnje zaktualizěrowane. Dostanjoš e-mail z napominanim, twóju e-mailowu adresu wobkšuśiś.
       home location: "Bydlišćo:"
       image: "Wobraz:"
+      image size hint: (kwadratiske wobraze z nanejmjenjej 100x100 funkcioněruju nejlěpjej)
       keep image: Aktualny wobraz wobchowaś
       latitude: "Šyrina:"
       longitude: "Dlinina:"
@@ -1325,6 +1416,7 @@ dsb:
       lost password link: Sy swójo gronidło zabył?
       password: "Gronidło:"
       please login: Pšosym pśizjaw se abo {{create_user_link}}.
+      remember: "Spomnjeś se:"
       title: Pśizjawjenje
     logout: 
       heading: Z OpenStreetMap se wótzjawiś
index abec2d991f1af9fce042d66e9070fc39ee628cf2..7e9046c4f75948484273a77f7e1e156cbe27ca55 100644 (file)
@@ -3,7 +3,7 @@ en:
     dir: ltr
   time:
     formats:
-      friendly: "%e %B %Y at %H:%M"    
+      friendly: "%e %B %Y at %H:%M"
   activerecord:
     # Translates all the model names, which is used in error handling on the web site
     models:
@@ -89,7 +89,7 @@ en:
       feed:
         title: "Changeset {{id}}"
         title_comment: "Changeset {{id}} - {{comment}}"
-    changeset_navigation:
+    navigation:
       paging:
         user:
           prev: "&laquo; {{id}}"
@@ -98,12 +98,18 @@ en:
           prev: "&laquo; {{id}}"
           next: "{{id}} &raquo;"
       user:
-        name_tooltip: "View edits by {{user}}"
-        prev_tooltip: "Previous edit by {{user}}"
-        next_tooltip: "Next edit by {{user}}"
+        name_changeset_tooltip: "View edits by {{user}}"
+        prev_changeset_tooltip: "Previous edit by {{user}}"
+        next_changeset_tooltip: "Next edit by {{user}}"
       all:
-        prev_tooltip: "Previous changeset"
-        next_tooltip: "Next changeset"
+        prev_node_tooltip: "Previous node"
+        next_node_tooltip: "Next node"
+        prev_way_tooltip: "Previous way"
+        next_way_tooltip: "Next way"
+        prev_relation_tooltip: "Previous relation"
+        next_relation_tooltip: "Next relation"
+        prev_changeset_tooltip: "Previous changeset"
+        next_changeset_tooltip: "Next changeset"
     changeset_details:
       created_at: "Created at:"
       closed_at: "Closed at:"
@@ -121,7 +127,7 @@ en:
       has_relations:
         one:  "Has the following {{count}} relation:"
         other: "Has the following {{count}} relations:"
-    common_details: 
+    common_details:
       edited_at: "Edited at:"
       edited_by: "Edited by:"
       version: "Version:"
@@ -233,6 +239,10 @@ en:
             # There is no 'relation' type because it is not represented in OpenLayers
     tag_details:
       tags: "Tags:"
+      wiki_link:
+        key: "The wiki description page for the {{key}} tag"
+        tag: "The wiki description page for the {{key}}={{value}} tag"
+      wikipedia_link: "The {{page}} article on Wikipedia"
     way_details:
       nodes: "Nodes:"
       part_of: "Part of:"
@@ -264,7 +274,7 @@ en:
       comment: "Comment:"
       date: "Date:"
   changeset:
-    changeset_paging_nav: 
+    changeset_paging_nav:
       showing_page: "Showing page {{page}}"
       next: "Next &raquo;"
       previous: "&laquo; Previous"
@@ -925,6 +935,7 @@ en:
     help_wiki: "Help &amp; Wiki"
     help_wiki_tooltip: "Help &amp; Wiki site for the project"
     help_wiki_url: "http://wiki.openstreetmap.org"
+    copyright: "Copyright &amp; License"
     news_blog: "News blog"
     news_blog_tooltip: "News blog about OpenStreetMap, free geographical data, etc."
     shop: Shop
@@ -937,6 +948,118 @@ en:
     make_a_donation:
       title: Support OpenStreetMap with a monetary donation
       text: Make a Donation
+
+  license_page:
+    foreign:
+      title: About this translation
+      text: In the event of a conflict between this translated page and {{english_original_link}}, the English page shall take precedence
+      english_link: the English original
+    native:
+      title: About this page
+      text: You are viewing the English version of the copyright page. You can go back to the {{native_link}} of this pag or you can stop reading about copyright and {{mapping_link}}.
+      native_link: THIS_LANGUAGE_NAME_HERE version
+      mapping_link: start mapping
+    legal_babble: |
+      <h2>Copyright and License</h2>
+      <p>
+         OpenStreetMap is <i>open data</i>, licensed under the <a
+         href="http://creativecommons.org/licenses/by-sa/2.0/">Creative
+         Commons Attribution-ShareAlike 2.0</a> licence (CC-BY-SA).
+      </p>
+      <p>
+        You are free to copy, distribute, transmit and adapt our maps
+        and data, as long as you credit OpenStreetMap and its
+        contributors. If you alter or build upon our maps or data, you
+        may distribute the result only under the same licence. The
+        full <a
+        href="http://creativecommons.org/licenses/by-sa/2.0/legalcode">legal
+        code</a> explains your rights and responsibilities.
+      </p>
+
+      <h3>How to credit OpenStreetMap</h3>
+      <p>
+        If you are using OpenStreetMap map images, we request that
+        your credit reads at least &ldquo;&copy; OpenStreetMap
+        contributors, CC-BY-SA&rdquo;. If you are using map data only,
+        we request &ldquo;Map data &copy; OpenStreetMap contributors,
+        CC-BY-SA&rdquo;.
+      </p>
+      <p>
+        Where possible, OpenStreetMap should be hyperlinked to <a
+        href="http://www.openstreetmap.org/">http://www.openstreetmap.org/</a>
+        and CC-BY-SA to <a
+        href="http://creativecommons.org/licenses/by-sa/2.0/">http://creativecommons.org/licenses/by-sa/2.0/</a>. If
+        you are using a medium where links are not possible (e.g. a
+        printed work), we suggest you direct your readers to
+        www.openstreetmap.org (perhaps by expanding
+        &lsquo;OpenStreetMap&rsquo; to this full address) and to
+        www.creativecommons.org.
+      </p>
+
+      <h3>Finding out more</h3>
+      <p>
+        Read more about using our data at the <a
+        href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">Legal
+        FAQ</a>.
+      </p>
+      <p>
+        OSM contributors are reminded never to add data from any
+        copyrighted sources (e.g. Google Maps or printed maps) without
+        explicit permission from the copyright holders.
+      </p>
+      <p>
+        Although OpenStreetMap is open data, we cannot provide a
+        free-of-charge map API for third-party developers.
+
+        See our <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">API Usage Policy</a>,
+        <a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">Tile Usage Policy</a>
+        and <a href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">Nominatim Usage Policy</a>.
+      </p>
+
+      <h3>Our contributors</h3>
+      <p>
+        Our CC-BY-SA licence requires you to &ldquo;give the Original
+        Author credit reasonable to the medium or means You are
+        utilising&rdquo;. Individual OSM mappers do not request a
+        credit over and above that to &ldquo;OpenStreetMap
+        contributors&rdquo;, but where data from a national mapping
+        agency or other major source has been included in
+        OpenStreetMap, it may be reasonable to credit them by directly
+        reproducing their credit or by linking to it on this page.
+      </p>
+
+      <!--
+      Information for page editors
+
+      The following lists only those organisations who require attribution
+      as a condition of their data being used in OpenStreetMap. It is not a
+      general catalogue of imports, and must not be used except when
+      attribution is required to comply with the licence of the imported
+      data.
+
+      Any additions here must be discussed with OSM sysadmins first.
+      -->
+
+      <ul id="contributors">
+          <li><strong>Australia</strong>: Contains suburb data based
+          on Australian Bureau of Statistics data.</li>
+          <li><strong>Canada</strong>: Contains data from
+          GeoBase&reg;, GeoGratis (&copy; Department of Natural
+          Resources Canada), CanVec (&copy; Department of Natural
+          Resources Canada), and StatCan (Geography Division,
+          Statistics Canada).</li>
+          <li><strong>New Zealand</strong>: Contains data sourced from
+          Land Information New Zealand. Crown Copyright reserved.</li>
+          <li><strong>United Kingdom</strong>: Contains Ordnance
+          Survey data &copy; Crown copyright and database right
+          2010.</li>
+      </ul>
+
+      <p>
+        Inclusion of data in OpenStreetMap does not imply that the original
+        data provider endorses OpenStreetMap, provides any warranty, or
+        accepts any liability.
+      </p>
   notifier:
     diary_comment_notification:
       subject: "[OpenStreetMap] {{user}} commented on your diary entry"
@@ -1034,7 +1157,7 @@ en:
       subject: "Subject"
       date: "Date"
       no_messages_yet: "You have no messages yet. Why not get in touch with some of the {{people_mapping_nearby_link}}?"
-      people_mapping_nearby: "people mapping nearby" 
+      people_mapping_nearby: "people mapping nearby"
     message_summary:
       unread_button: "Mark as unread"
       read_button: "Mark as read"
@@ -1057,7 +1180,7 @@ en:
       title: "No such message"
       heading: "No such message"
       body: "Sorry there is no message with that id."
-    outbox: 
+    outbox:
       title: "Outbox"
       my_inbox: "My {{inbox_link}}"
       inbox: "inbox"
@@ -1357,7 +1480,7 @@ en:
       allow_write_api:   "modify the map."
       allow_read_gpx:    "read their private GPS traces."
       allow_write_gpx:   "upload GPS traces."
-    not_found: 
+    not_found:
       sorry: "Sorry, that {{type}} could not be found."
     create:
       flash: "Registered the information successfully"
@@ -1381,7 +1504,7 @@ en:
     logout:
       title: "Logout"
       heading: "Logout from OpenStreetMap"
-      logout_button: "Logout"      
+      logout_button: "Logout"
     lost_password:
       title: "Lost password"
       heading: "Forgotten Password?"
index ab18da65b9a016167564b5d8874a5c15247e0f90..3e68fc708a1b520c1bf0c0b69c5902f7ca78fd20 100644 (file)
@@ -88,14 +88,6 @@ eo:
         other: "havas tiujn {{count}} vojojn:"
       no_bounding_box: Neniu limskatolo estis registrita por tiu ŝanĝaro.
       show_area_box: Montri la skatolon de la areo
-    changeset_navigation: 
-      all: 
-        next_tooltip: Sekvanta ŝanĝaro
-        prev_tooltip: Antaŭa ŝanĝaro
-      user: 
-        name_tooltip: Vidi redaktojn el {{user}}
-        next_tooltip: Sekvanta redakto de {{user}}
-        prev_tooltip: Antaŭa redakto de {{user}}
     common_details: 
       changeset_comment: "Komento:"
       edited_at: "Redaktita je:"
@@ -113,6 +105,14 @@ eo:
         relation: Vidi la rilaton en pli granda mapo
         way: Vidi la vojon en pli granda mapo
       loading: Ŝarĝante...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Sekvanta ŝanĝaro
+        prev_changeset_tooltip: Antaŭa ŝanĝaro
+      user: 
+        name_changeset_tooltip: Vidi redaktojn el {{user}}
+        next_changeset_tooltip: Sekvanta redakto de {{user}}
+        prev_changeset_tooltip: Antaŭa redakto de {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} au {{edit_link}}"
       download_xml: Elŝuti XML
index e7a95265d7ca3754ef308f777616d35f11038a2c..773c266eeddd8f54b892dd67d17577bf944723ce 100644 (file)
@@ -106,14 +106,6 @@ es:
       has_ways: "Tiene {{count}} vías:"
       no_bounding_box: No se ha guardado una envoltura para este conjunto de cambios
       show_area_box: Mostrar caja del Área
-    changeset_navigation: 
-      all: 
-        next_tooltip: Siguiente conjunto de cambios
-        prev_tooltip: Conjunto de cambios anterior
-      user: 
-        name_tooltip: Ver ediciones hechas por {{user}}
-        next_tooltip: Próxima edición por {{user}}
-        prev_tooltip: Ediciones previas hechas por {{user}}
     common_details: 
       changeset_comment: "Comentario:"
       edited_at: Editado en
@@ -131,6 +123,20 @@ es:
         relation: Ver la relación en un mapa más grande
         way: Ver la vía en un mapa más grande
       loading: Cargando...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Siguiente conjunto de cambios
+        next_node_tooltip: Siguiente nodo
+        next_relation_tooltip: Siguiente relación
+        next_way_tooltip: Siguiente vía
+        prev_changeset_tooltip: Conjunto de cambios anterior
+        prev_node_tooltip: Nodo anterior
+        prev_relation_tooltip: Relación anterior
+        prev_way_tooltip: Vía anterior
+      user: 
+        name_changeset_tooltip: Ver ediciones hechas por {{user}}
+        next_changeset_tooltip: Próxima edición por {{user}}
+        prev_changeset_tooltip: Ediciones previas hechas por {{user}}
     node: 
       download: "{{download_xml_link}} o {{view_history_link}}"
       download_xml: Descargar XML
@@ -215,6 +221,10 @@ es:
       zoom_or_select: Para ver los datos, haga más zoom o seleccione un Área del mapa
     tag_details: 
       tags: Etiquetas
+      wiki_link: 
+        key: La página en el wiki con la descripción de la etiqueta {{key}}
+        tag: La página en el wiki con la descripción de la etiqueta {{key}}={{value}}
+      wikipedia_link: El {{page}} artículo en Wikipedia
     timeout: 
       sorry: Lo sentimos, los datos para el {{type}} con el identificador {{id}} han tomado demasiado tiempo para obtenerse.
       type: 
@@ -863,6 +873,7 @@ es:
       history_tooltip: Ver ediciones para este área
       history_zoom_alert: Debe hacer más zoom para ver el histórico de ediciones
   layouts: 
+    copyright: Copyright y licencia
     donate: Apoye a OpenStreetMap {{link}} al Fondo de Actualización de Hardware.
     donate_link_text: donando
     edit: Editar
index cb579699d66b4e695ea6354eae69188972c4e54e..54351cab304316099e60a67c4c37ad9487abfb76 100644 (file)
@@ -99,14 +99,6 @@ fi:
         other: "Sisältää seuraavat {{count}} polkua:"
       no_bounding_box: Tässä muutoskokoelmassa ei ole rajattua aluetta.
       show_area_box: Näytä rajattu alue
-    changeset_navigation: 
-      all: 
-        next_tooltip: Seuraava muutoskokoelma
-        prev_tooltip: Edellinen muutoskokoelma
-      user: 
-        name_tooltip: Näytä käyttäjän {{user}} muutokset
-        next_tooltip: Käyttäjän {{user}} seuraava muutos
-        prev_tooltip: Käyttäjän {{user}} edellinen muutos
     common_details: 
       changeset_comment: "Kommentti:"
       edited_at: "Muokattu:"
@@ -124,6 +116,14 @@ fi:
         relation: Näytä relaatio suurella kartalla
         way: Näytä polku suurella kartalla
       loading: Ladataan…
+    navigation: 
+      all: 
+        next_changeset_tooltip: Seuraava muutoskokoelma
+        prev_changeset_tooltip: Edellinen muutoskokoelma
+      user: 
+        name_changeset_tooltip: Näytä käyttäjän {{user}} muutokset
+        next_changeset_tooltip: Käyttäjän {{user}} seuraava muutos
+        prev_changeset_tooltip: Käyttäjän {{user}} edellinen muutos
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} tai {{edit_link}}"
       download_xml: Lataa XML
index 728d24ee888e9203b2269d3580bb31974546fa02..e4e217c8f898d1a5508963a6880b10b250a8e91e 100644 (file)
@@ -109,14 +109,6 @@ fr:
       has_ways: "Concerne les {{count}} chemins suivants :"
       no_bounding_box: Aucun cadre de délimitation n'a été stocké pour ce groupe de modifications.
       show_area_box: Montrer le cadre de la zone
-    changeset_navigation: 
-      all: 
-        next_tooltip: Groupe de modifications suivant
-        prev_tooltip: Groupe de modifications précédent
-      user: 
-        name_tooltip: Voir les modifications par {{user}}
-        next_tooltip: Modifications suivantes par {{user}}
-        prev_tooltip: Modifications précédentes par {{user}}
     common_details: 
       changeset_comment: "Commentaire :"
       edited_at: "Modifié le :"
@@ -134,6 +126,14 @@ fr:
         relation: Voir la relation sur une carte plus grande
         way: Voir le chemin sur une carte plus grande
       loading: Chargement...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Groupe de modifications suivant
+        prev_changeset_tooltip: Groupe de modifications précédent
+      user: 
+        name_changeset_tooltip: Voir les modifications par {{user}}
+        next_changeset_tooltip: Modifications suivantes par {{user}}
+        prev_changeset_tooltip: Modifications précédentes par {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} ou {{edit_link}}"
       download_xml: Télécharger XML
index 2b671631472decd19fd6ed4e3c1c1793b7476071..25e8eed3a65bbb01d12a892d30f0b2cb7386b5dd 100644 (file)
@@ -67,14 +67,6 @@ fur:
       has_relations: 
         one: "Al à la {{count}} relazion ca sot:"
         other: "Al à lis {{count}} relazions ca sot:"
-    changeset_navigation: 
-      all: 
-        next_tooltip: Grup di cambiaments sucessîf
-        prev_tooltip: Grup di cambiaments precedent
-      user: 
-        name_tooltip: Vîot i cambiaments di {{user}}
-        next_tooltip: Cambiament sucessîf di {{user}}
-        prev_tooltip: Cambiament precedent di {{user}}
     common_details: 
       changeset_comment: "Coment:"
       edited_at: "Cambiât ai:"
@@ -90,6 +82,14 @@ fur:
         area: Viôt la aree suntune mape plui grande
         relation: Viôt la relazion suntune mape plui grande
       loading: Daûr a cjamâ...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Grup di cambiaments sucessîf
+        prev_changeset_tooltip: Grup di cambiaments precedent
+      user: 
+        name_changeset_tooltip: Vîot i cambiaments di {{user}}
+        next_changeset_tooltip: Cambiament sucessîf di {{user}}
+        prev_changeset_tooltip: Cambiament precedent di {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} o {{edit_link}}"
       download_xml: Discjame XML
index 5e75c380db1fd05847a589d12f6f78c6e922920f..8dbcdcff428b15b96d0af59d7a9640f8f02cecb1 100644 (file)
@@ -81,14 +81,6 @@ gl:
         other: "Ten os seguintes {{count}} camiños:"
       no_bounding_box: Non se seleccionou ningunha caixa de envoltura para este conxunto de cambios.
       show_area_box: Amosar a caixa de zona
-    changeset_navigation: 
-      all: 
-        next_tooltip: Seguinte conxunto de cambios
-        prev_tooltip: Conxunto de cambios anterior
-      user: 
-        name_tooltip: Ver as edicións de {{user}}
-        next_tooltip: Seguinte edición de {{user}}
-        prev_tooltip: Edición anterior de {{user}}
     common_details: 
       changeset_comment: "Comentario:"
       edited_at: "Editado o:"
@@ -106,6 +98,20 @@ gl:
         relation: Ver a relación nun mapa máis grande
         way: Ver o camiño nun mapa máis grande
       loading: Cargando...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Seguinte conxunto de cambios
+        next_node_tooltip: Nodo seguinte
+        next_relation_tooltip: Seguinte relación
+        next_way_tooltip: Camiño seguinte
+        prev_changeset_tooltip: Conxunto de cambios anterior
+        prev_node_tooltip: Nodo anterior
+        prev_relation_tooltip: Relación anterior
+        prev_way_tooltip: Camiño anterior
+      user: 
+        name_changeset_tooltip: Ver as edicións de {{user}}
+        next_changeset_tooltip: Seguinte edición de {{user}}
+        prev_changeset_tooltip: Edición anterior de {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} ou {{edit_link}}"
       download_xml: Descargar en XML
@@ -190,6 +196,10 @@ gl:
       zoom_or_select: Escolla unha zona do mapa ou achéguese a ela para vela
     tag_details: 
       tags: "Etiquetas:"
+      wiki_link: 
+        key: A páxina de descrición da etiqueta {{key}}
+        tag: A páxina de descrición da etiqueta {{key}}={{value}}
+      wikipedia_link: O artigo sobre {{page}} na Wikipedia
     timeout: 
       sorry: Tardouse demasiado en obter os datos para o {{type}} co id {{id}}.
       type: 
@@ -217,6 +227,18 @@ gl:
       way_history: Historial do camiño
       way_history_title: "Historial co camiño: {{way_name}}"
   changeset: 
+    changeset: 
+      anonymous: Anónimo
+      big_area: (grande)
+      no_comment: (ningún)
+      no_edits: (sen edicións)
+      show_area_box: mostrar o cadro da zona
+      still_editing: (en edición)
+      view_changeset_details: Ollar os detalles do conxunto de cambios
+    changeset_paging_nav: 
+      next: Seguinte &raquo;
+      previous: "&laquo; Anterior"
+      showing_page: Mostrando a páxina {{page}}
     changesets: 
       area: Zona
       comment: Comentario
@@ -238,6 +260,7 @@ gl:
       title_user_bbox: Conxuntos de cambios por {{user}} en {{bbox}}
   diary_entry: 
     diary_comment: 
+      comment_from: Comentario de {{link_user}} o {{comment_created_at}}
       confirm: Confirmar
       hide_link: Agochar este comentario
     diary_entry: 
@@ -248,6 +271,8 @@ gl:
       confirm: Confirmar
       edit_link: Editar esta entrada
       hide_link: Agochar esta entrada
+      posted_by: Publicado por {{link_user}} o {{created}} en {{language_link}}
+      reply_link: Responder a esta entrada
     edit: 
       body: "Corpo:"
       language: "Lingua:"
@@ -256,27 +281,38 @@ gl:
       longitude: "Lonxitude:"
       save_button: Gardar
       subject: "Asunto:"
+      use_map_link: usar o mapa
     location: 
       edit: Editar
       location: "Localización:"
       view: Ver
     view: 
+      leave_a_comment: Deixar un comentario
+      login_to_leave_a_comment: "{{login_link}} para deixar un comentario"
       save_button: Gardar
+      title: Diario de {{user}} | {{title}}
+      user_title: Diario de {{user}}
   export: 
     start: 
       add_marker: Engadir un marcador ao mapa
       area_to_export: Zona a exportar
+      embeddable_html: HTML incorporable
       export_button: Exportar
+      export_details: Os datos do OpenStreetMap están licenciados baixo a <a href="http://creativecommons.org/licenses/by-sa/2.0/deed.gl">licenza Creative Commons recoñecemento compartir igual 2.0</a> .
       format: Formato
       format_to_export: Formato de exportación
       image_size: Tamaño da imaxe
       latitude: "Lat:"
       licence: Licenza
       longitude: "Lon:"
+      manually_select: Seleccionar manualmente outra zona
       mapnik_image: Imaxe de Mapnik
       max: máx.
       options: Opcións
       osm_xml_data: Datos XML do OpenStreetMap
+      osmarender_image: Imaxe do Osmarender
+      output: Saída
+      paste_html: Pegue o código HTML para incluílo na páxina web
       scale: Escala
       too_large: 
         body: Esta zona é grande de máis para ser exportada como datos XML do OpenStreetMap. Amplíe a zona ou escolla unha menor.
@@ -332,12 +368,119 @@ gl:
       suffix_place: ", {{distance}} ao {{direction}} de {{placename}}"
     search_osm_nominatim: 
       prefix: 
+        amenity: 
+          airport: Aeroporto
+          arts_centre: Centro artístico
+          atm: Caixeiro automático
+          auditorium: Auditorio
+          bank: Banco
+          bar: Bar
+          bench: Banco
+          bicycle_parking: Aparcadoiro de bicicletas
+          bicycle_rental: Aluguer de bicicletas
+          brothel: Prostíbulo
+          bus_station: Estación de autobuses
+          cafe: Cafetaría
+          car_rental: Aluguer de automóbiles
+          car_sharing: Aluguer de automóbiles
+          casino: Casino
+          cinema: Cine
+          clinic: Clínica
+          club: Club
+          college: Instituto
+          community_centre: Centro comunitario
+          courthouse: Xulgado
+          crematorium: Crematorio
+          dentist: Dentista
+          dormitory: Residencia universitaria
+          drinking_water: Auga potable
+          driving_school: Escola de condución
+          emergency_phone: Teléfono de emerxencia
+          fast_food: Comida rápida
+          fire_station: Parque de bombeiros
+          fountain: Fonte
+          fuel: Combustible
+          grave_yard: Cemiterio
+          gym: Ximnasio
+          health_centre: Centro de saúde
+          hospital: Hospital
+          hotel: Hotel
+          ice_cream: Xeadaría
+          kindergarten: Xardín de infancia
+          library: Biblioteca
+          market: Mercado
+          marketplace: Praza de mercado
+          nightclub: Club nocturno
+          office: Oficina
+          park: Parque
+          parking: Aparcadoiro
+          pharmacy: Farmacia
+          place_of_worship: Lugar de culto
+          police: Policía
+          post_box: Caixa de correos
+          post_office: Oficina de correos
+          preschool: Preescolar
+          prison: Prisión
+          pub: Pub
+          public_building: Edificio público
+          public_market: Mercado público
+          recycling: Punto de reciclaxe
+          restaurant: Restaurante
+          retirement_home: Residencia de xubilados
+          sauna: Sauna
+          school: Escola
+          shelter: Abeiro
+          shop: Tenda
+          shopping: Comercio
+          social_club: Club social
+          studio: Estudio
+          supermarket: Supermercado
+          telephone: Teléfono público
+          theatre: Teatro
+          toilets: Aseos
+          townhall: Concello
+          university: Universidade
+          vending_machine: Máquina expendedora
+          veterinary: Clínica veterinaria
+          wifi: Acceso WiFi
+          youth_centre: Casa da xuventude
         highway: 
+          bridleway: Pista de cabalos
+          bus_stop: Parada de autobús
+          byway: Camiño secundario
+          construction: Autoestrada en construción
+          cycleway: Pista de bicicletas
+          distance_marker: Indicador quilométrico
           emergency_access_point: Punto de acceso de emerxencia
           footway: Carreiro
+          ford: Vao
+          gate: Porta
+          living_street: Rúa residencial
+          minor: Estrada lateral
+          motorway: Autoestrada
           motorway_junction: Cruce de autovías
+          motorway_link: Enlace de autoestrada
+          path: Camiño
+          pedestrian: Camiño peonil
+          platform: Plataforma
+          primary: Estrada primaria
           primary_link: Estrada principal
+          raceway: Circuíto
+          residential: Residencial
+          road: Estrada
+          secondary: Estrada secundaria
           secondary_link: Estrada secundaria
+          service: Estrada de servizo
+          services: Área de servizo
+          steps: Chanzos
+          stile: Escada
+          tertiary: Estrada terciaria
+          track: Pista
+          trail: Pista
+          trunk: Estrada nacional
+          trunk_link: Estrada nacional
+          unclassified: Estrada sen clasificar
+          unsurfaced: Estrada non pavimentada
         leisure: 
           beach_resort: Balneario
           common: Terreo común
@@ -370,6 +513,7 @@ gl:
           feature: Elemento
           fell: Brañal
           fjord: Fiorde
+          geyser: Géiser
           glacier: Glaciar
           hill: Outeiro
           island: Illa
@@ -380,9 +524,11 @@ gl:
           peak: Pico
           point: Punto
           reef: Arrecife
+          ridge: Crista
           river: Río
           rock: Rocha
           scree: Pedregal
+          scrub: Matogueira
           shoal: Cardume
           spring: Primavera
           strait: Estreito
@@ -416,6 +562,48 @@ gl:
           town: Cidade
           unincorporated_area: Área non incorporada
           village: Vila
+        shop: 
+          apparel: Tenda de roupa
+          art: Tenda de arte
+          bakery: Panadaría
+          bicycle: Tenda de bicicletas
+          books: Libraría
+          butcher: Carnizaría
+          car_repair: Taller mecánico
+          carpet: Tenda de alfombras
+          charity: Tenda benéfica
+          chemist: Farmacia
+          clothes: Tenda de roupa
+          computer: Tenda informática
+          department_store: Gran almacén
+          doityourself: Tenda de bricolaxe
+          estate_agent: Axencia inmobiliaria
+          fashion: Tenda de moda
+          fish: Peixaría
+          florist: Floraría
+          food: Tenda de alimentación
+          gallery: Galería
+          general: Tenda de ultramarinos
+          hairdresser: Perrucaría
+          hardware: Ferraxaría
+          hifi: Hi-Fi
+          jewelry: Xoiaría
+          mall: Centro comercial
+          market: Mercado
+          mobile_phone: Tenda de telefonía móbil
+          motorcycle: Tenda de motocicletas
+          music: Tenda de música
+          optician: Oftalmólogo
+          organic: Tenda de alimentos orgánicos
+          outdoor: Tenda de deportes ao aire libre
+          photo: Tenda de fotografía
+          shoes: Zapataría
+          shopping_centre: Centro comercial
+          sports: Tenda de deportes
+          stationery: Papelaría
+          supermarket: Supermercado
+          toys: Xoguetaría
+          travel_agency: Axencia de viaxes
         tourism: 
           alpine_hut: Cabana alpina
           artwork: Obra de arte
@@ -442,44 +630,136 @@ gl:
     export: Exportar
     export_tooltip: Exportar os datos do mapa
     history: Historial
+    inbox: caixa de entrada ({{count}})
     intro_3_partners: wiki
+    license: 
+      title: Os datos do OpenStreetMap están licenciados baixo a licenza Creative Commons recoñecemento xenérico 2.0
+    logo: 
+      alt_text: Logo do OpenStreetMap
     make_a_donation: 
       text: Facer unha doazón
     news_blog: Blogue de novas
+    shop: Tenda
     sign_up_tooltip: Crear unha conta para editar
+    user_diaries_tooltip: Ollar os diarios do usuario
     view: Ver
     view_tooltip: Ver o mapa
+    welcome_user: Benvido, {{user_link}}
+    welcome_user_link_tooltip: A súa páxina de usuario
   message: 
+    delete: 
+      deleted: Mensaxe borrada
     inbox: 
       date: Data
+      from: De
+      my_inbox: A miña caixa de entrada
+      no_messages_yet: Aínda non ten ningunha mensaxe. Por que non se pon en contacto con algunhas das {{people_mapping_nearby_link}}?
+      outbox: caixa de saída
+      people_mapping_nearby: persoas próximas a vostede
       subject: Asunto
+      title: Caixa de entrada
+      you_have: Ten {{new_count}} mensaxes novas e {{old_count}} vellas
+    mark: 
+      as_read: Mensaxe marcada como lida
+      as_unread: Mensaxe marcada como non lida
     message_summary: 
       delete_button: Borrar
       read_button: Marcar como lido
       reply_button: Responder
       unread_button: Marcar como non lido
     new: 
+      back_to_inbox: Voltar á caixa de entrada
       body: Corpo
+      limit_exceeded: Estivo enviando unha morea de mensaxes ultimamente. Agarde uns intres antes de intentar enviar máis.
+      message_sent: Mensaxe enviada
+      send_button: Enviar
+      send_message_to: Enviarlle unha nova mensaxe a {{name}}
       subject: Asunto
+      title: Enviar unha mensaxe
+    no_such_message: 
+      body: Non hai ningunha mensaxe con esa id.
+      heading: Non se atopou a mensaxe
+      title: Non se atopou a mensaxe
+    no_such_user: 
+      body: Non hai ningún usuario con ese nome.
+      heading: Non se atopou o usuario
+      title: Non se atopou o usuario
     outbox: 
       date: Data
+      inbox: caixa de entrada
+      my_inbox: A miña {{inbox_link}}
+      no_sent_messages: Aínda non enviou ningunha mensaxe. Por que non se pon en contacto con algunhas das {{people_mapping_nearby_link}}?
+      outbox: caixa de saída
+      people_mapping_nearby: persoas próximas a vostede
       subject: Asunto
+      title: Caixa de saída
+      to: Para
+      you_have_sent_messages: Enviou {{count}} mensaxes
     read: 
+      back_to_inbox: Voltar á caixa de entrada
+      back_to_outbox: Voltar á caixa de saída
       date: Data
+      from: De
+      reading_your_messages: Lendo as súas mensaxes
+      reading_your_sent_messages: Lendo as mensaxes enviadas
       reply_button: Responder
       subject: Asunto
+      title: Ler a mensaxe
+      to: Para
+      unread_button: Marcar como non lida
     sent_message_summary: 
       delete_button: Borrar
   notifier: 
+    diary_comment_notification: 
+      hi: "Ola {{to_user}}:"
     email_confirm: 
       subject: "[OpenStreetMap] Confirme o seu enderezo de correo electrónico"
+    email_confirm_html: 
+      greeting: "Ola:"
+    email_confirm_plain: 
+      greeting: "Ola:"
+    gpx_notification: 
+      greeting: "Ola:"
+    lost_password_html: 
+      greeting: "Ola:"
+    lost_password_plain: 
+      greeting: "Ola:"
+    message_notification: 
+      hi: "Ola {{to_user}}:"
+    signup_confirm_html: 
+      greeting: Boas!
+    signup_confirm_plain: 
+      greeting: Boas!
   oauth_clients: 
     edit: 
       submit: Editar
       title: Editar a súa aplicación
+    form: 
+      name: Nome
+      required: Obrigatorio
     index: 
       application: Nome da aplicación
       register_new: Rexistrar a súa aplicación
+      revoke: Revogar!
+    new: 
+      submit: Rexistrar
+      title: Rexistrar unha nova aplicación
+  site: 
+    edit: 
+      user_page_link: páxina de usuario
+    index: 
+      license: 
+        license_name: Creative Commons recoñecemento compartir igual 2.0
+        notice: Baixo a licenza {{license_name}} polo {{project_name}} e os seus colaboradores.
+        project_name: proxecto OpenStreetMap
+      permalink: Ligazón permanente
+      shortlink: Atallo
+    search: 
+      submit_text: Ir
+      where_am_i: Onde estou?
+    sidebar: 
+      close: Pechar
+      search_results: Resultados da procura
   time: 
     formats: 
       friendly: "%e %B %Y ás %H:%M"
@@ -558,6 +838,7 @@ gl:
       my settings: Os meus axustes
       new email address: "Novo enderezo de correo electrónico:"
       new image: Engadir unha imaxe
+      no home location: Non inseriu o seu lugar de orixe.
       preferred languages: "Linguas preferidas:"
       profile description: "Descrición do perfil:"
       public editing: 
@@ -640,12 +921,15 @@ gl:
       add as friend: engadir como amigo
       ago: (hai {{time_in_words_ago}})
       block_history: ver os bloqueos recibidos
+      blocks by me: bloqueos efectuados
+      blocks on me: os meus bloqueos
       confirm: Confirmar
       create_block: bloquear este usuario
       created from: "Creado a partir de:"
       deactivate_user: desactivar este usuario
       delete_user: borrar este usuario
       description: Descrición
+      diary: diario
       edits: edicións
       email address: "Enderezo de correo electrónico:"
       hide_user: agochar este usuario
@@ -653,8 +937,11 @@ gl:
       km away: a {{count}}km de distancia
       m away: a {{count}}m de distancia
       moderator_history: ver os bloqueos dados
+      my diary: o meu diario
       my edits: as miñas edicións
       my settings: os meus axustes
+      nearby users: Outros usuarios próximos
+      new diary entry: nova entrada no diario
       no friends: Aínda non engadiu ningún amigo.
       oauth settings: axustes OAuth
       remove as friend: eliminar como amigo
@@ -672,6 +959,9 @@ gl:
       unhide_user: descubrir este usuario
       user location: Localización do usuario
       your friends: Os seus amigos
+  user_block: 
+    revoke: 
+      revoke: Revogar!
   user_role: 
     filter: 
       already_has_role: O usuario xa ten o rol {{role}}.
index 839e56cc5ff1bbffe5f272ff1eb4b9be70a26815..d4f5297d08788877b9988331d4b342919a5bdee1 100644 (file)
@@ -30,14 +30,14 @@ gsw:
         other: "Het die {{count}} Wäg:"
       no_bounding_box: Fir des Changeset isch kei Beryych gspycheret.
       show_area_box: Beryychsgränzen aazeige
-    changeset_navigation: 
+    navigation: 
       all: 
-        next_tooltip: Negscht Changeset
-        prev_tooltip: Vorig Changeset
+        next_changeset_tooltip: Negscht Changeset
+        prev_changeset_tooltip: Vorig Changeset
       user: 
-        name_tooltip: Änderige vu {{user}} aazeige
-        next_tooltip: Negschti Änderig vu {{user}}
-        prev_tooltip: Vorigi Änderig vu {{user}}
+        name_changeset_tooltip: Änderige vu {{user}} aazeige
+        next_changeset_tooltip: Negschti Änderig vu {{user}}
+        prev_changeset_tooltip: Vorigi Änderig vu {{user}}
     common_details: 
       changeset_comment: "Kommentar:"
       edited_at: "Bearbeitet am:"
index d098292acd481721fdbf653c03d338707be4a295..acfe79e49a415800dd9f0557f5fd79fa73968176 100644 (file)
@@ -45,11 +45,11 @@ he:
       box: תיבה
       created_at: "נוצר בתאריך:"
       show_area_box: הצגת תיבת תחום
-    changeset_navigation: 
+    navigation: 
       user: 
-        name_tooltip: צפייה בעריכות של {{user}}
-        next_tooltip: העריכה הבאה ע"י {{user}}
-        prev_tooltip: העריכה הקודמת ע"י {{user}}
+        name_changeset_tooltip: צפייה בעריכות של {{user}}
+        next_changeset_tooltip: העריכה הבאה ע"י {{user}}
+        prev_changeset_tooltip: העריכה הקודמת ע"י {{user}}
     common_details: 
       changeset_comment: "הערה:"
     containing_relation: 
index 18c816efc5d2808b047acb81ff6efae2a6f566d5..00cf1560d8a479f1fb80f62b33a7e51b719ee9f2 100644 (file)
@@ -68,9 +68,9 @@ hi:
       has_nodes: "निम्नलिखित {{count}}  आसंधि है:"
       has_relations: "निम्नलिखित {{count}} संबंध है:"
       has_ways: "निम्नलिखित {{count}} रस्ते है:"
-    changeset_navigation: 
+    navigation: 
       user: 
-        prev_tooltip: "{{user}} द्वारा पूर्व संपादित"
+        prev_changeset_tooltip: "{{user}} द्वारा पूर्व संपादित"
     common_details: 
       changeset_comment: "टिप्पणी:"
       edited_at: "समय, जिस पर संपादित:"
index 341b9698004d15fb1593b619528b235751b72358..150d648946184f27086ad8888befc6e81ab7c979 100644 (file)
@@ -108,14 +108,6 @@ hr:
         other: "Sadrži slijedećih {{count}} puteva:"
       no_bounding_box: Granični okvir nije pohranjen za ovaj set promjena.
       show_area_box: Prikaži granični okvir
-    changeset_navigation: 
-      all: 
-        next_tooltip: Slijedeći changeset
-        prev_tooltip: Prethodni changeset
-      user: 
-        name_tooltip: "Prikaži promjene korisnika:  {{user}}"
-        next_tooltip: Slijedeća promjena od {{user}}
-        prev_tooltip: Prethodno uredio {{user}}
     common_details: 
       changeset_comment: "Komentar:"
       edited_at: "Uređeno:"
@@ -133,6 +125,14 @@ hr:
         relation: Prikaži relaciju na većoj karti
         way: Prikaži put na većoj karti
       loading: Učitavanje...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Slijedeći changeset
+        prev_changeset_tooltip: Prethodni changeset
+      user: 
+        name_changeset_tooltip: "Prikaži promjene korisnika:  {{user}}"
+        next_changeset_tooltip: Slijedeća promjena od {{user}}
+        prev_changeset_tooltip: Prethodno uredio {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} ili {{edit_link}}"
       download_xml: Preuzimanje XML
@@ -321,6 +321,10 @@ hr:
       recent_entries: "Nedavni zapisi u dnevnik:"
       title: Dnevnici korisnika
       user_title: "{{user}}ov dnevnik"
+    location: 
+      edit: Uredi
+      location: "Lokacija:"
+      view: Prikaži
     new: 
       title: Novi zapis u dnevnik
     no_such_entry: 
@@ -336,7 +340,7 @@ hr:
       login: Prijava
       login_to_leave_a_comment: "{{login_link}} da bi ostavili komentar"
       save_button: Spremi
-      title: Korisnički dnevnici | {{user}}
+      title: Blog korisnika {{user}} | {{title}}
       user_title: "{{user}}ov dnevnik"
   export: 
     start: 
@@ -360,6 +364,8 @@ hr:
       output: Izlaz
       paste_html: Zalijepi HTML za ubacivanje na webstranicu
       scale: Mjerilo
+      too_large: 
+        heading: Područje je preveliko
       zoom: Zoom
     start_rjs: 
       add_marker: Dodaj makrker na kartu
@@ -860,7 +866,7 @@ hr:
     export: Izvoz
     export_tooltip: Izvoz podataka karte
     gps_traces: GPS trase
-    gps_traces_tooltip: Upravljanje GPS trasama
+    gps_traces_tooltip: Upravljaj GPS trasama
     help_wiki: Pomoć &amp; Wiki
     help_wiki_tooltip: Pomoć &amp; Wiki-site za projekt
     help_wiki_url: http://wiki.openstreetmap.org/wiki/Hr:Main_Page?uselang=hr
@@ -874,7 +880,7 @@ hr:
       zero: Nema nepročitanih poruka
     intro_1: OpenStreetMap je slobodna, promjenjiva karta cijelog svijeta. Napravili su je ljudi slični tebi.
     intro_2: OpenStreetMap omogućava pregledavanje, uređivanje i korištenje geografskih podataka u suradničkom načinu od bilo gdje sa Zemlje.
-    intro_3: Smještaj OpenStreetMapa je ljubazno podržan od {{ucl}} i {{bytemark}}.
+    intro_3: Smještaj OpenStreetMapa je ljubazno podržan od {{ucl}} i {{bytemark}}. Ostali podržavatelji projekta su navedeni u {{partners}}.
     license: 
       title: OpenStreetMap podaci su objavljeni pod licencom Creative Commons Attribution-Share Alike 2.0 Generic License
     log_in: prijava
@@ -899,7 +905,7 @@ hr:
     user_diaries: Dnevnik
     user_diaries_tooltip: Prikaži korisničke dnevnike
     view: Karta
-    view_tooltip: Prikaži kartu
+    view_tooltip: Pogledaj na karti
     welcome_user: Dobrodošli, {{user_link}}
     welcome_user_link_tooltip: Tvoja korisnička stranica
   message: 
@@ -932,9 +938,12 @@ hr:
       send_message_to: Pošalji novu poruku za {{name}}
       subject: Tema
       title: Pošalji poruku
+    no_such_message: 
+      heading: Nema takve poruke
+      title: Nema takve poruke
     no_such_user: 
-      body: Žao mi je ali ne postoji korisnik ili poruka s tim imenom ili id.
-      heading: Nema takvog korisnika ili poruke
+      body: Nažalost ne postoji korisnik s tim imenom.
+      heading: Nema takvog korisnika
       title: Nema takvog korisnika ili poruke
     outbox: 
       date: Datum
@@ -980,7 +989,7 @@ hr:
       hopefully_you_2: "{{server_url}} na {{new_address}}."
     friend_notification: 
       had_added_you: "{{user}} te je dodao kao prijatelja na OpenStreetMap-u."
-      see_their_profile: Možeš vidjeti njihov profil na {{userurl}} i dodati ih kao prijatelje ako želiš.
+      see_their_profile: Možeš vidjeti njihov profil na {{userurl}}.
       subject: "[OpenStreetMap] {{user}} te je dodao kao prijatelja"
     gpx_notification: 
       and_no_tags: i bez oznaka
@@ -1207,6 +1216,9 @@ hr:
     sidebar: 
       close: Zatvori
       search_results: Rezultazi traženja
+  time: 
+    formats: 
+      friendly: "%e %B %Y u %H:%M"
   trace: 
     create: 
       trace_uploaded: Vaša GPS datoteka je spremljena na server i čeka ubacivanje u bazu. Ovo se obično dogodi za pola sata i prije, a e-mail-om će te dobiti obavijest o završetku.
@@ -1360,6 +1372,8 @@ hr:
       password: "Lozinka:"
       please login: Molimo prijavite se ili {{create_user_link}}.
       title: Prijava
+    logout: 
+      heading: Odjava iz OpenStreetMap
     lost_password: 
       email address: "Email adresa:"
       heading: Zaboravljena lozinka?
@@ -1434,10 +1448,11 @@ hr:
       my edits: moje promjene
       my settings: moje postavke
       my traces: moje trase
-      nearby users: "Okolni korisnici:"
+      nearby users: Drugi korisnici u blizini
       new diary entry: novi unos u dnevnik
       no friends: Nisi dodao niti jednog prijatelja.
       no nearby users: Nema okolnih korisnika koji mapiraju.
+      oauth settings: oauth postavke
       remove as friend: ukloni kao prijatelja
       role: 
         administrator: Ovaj korisnik je administrator
index aecff5f91fe31156cfb2d1e0d7a316e720e7b26d..70f45e4e4f1754aa90e0b2cc66390ce14863ca9a 100644 (file)
@@ -109,14 +109,6 @@ hsb:
         two: "Ma slědowacej {{count}} pućej:"
       no_bounding_box: Za tutu sadźbu změnow njeje so wuběranski wobłuk składował.
       show_area_box: Wobłukowy kašćik pokazać
-    changeset_navigation: 
-      all: 
-        next_tooltip: Přichodna sadźba změnow
-        prev_tooltip: Předchadna sadźba změnow
-      user: 
-        name_tooltip: Změny wot wužiwarja {{user}} pokazać
-        next_tooltip: Přichodna změna wot wužiwarja {{user}}
-        prev_tooltip: Předchadna změna wot wužiwarja {{user}}
     common_details: 
       changeset_comment: "Komentar:"
       edited_at: "Wobdźěłany:"
@@ -134,6 +126,20 @@ hsb:
         relation: Relaciju na wjetšej karće pokazać
         way: Puć na wjetšej karće pokazać
       loading: Začituje so...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Přichodna sadźba změnow
+        next_node_tooltip: Přichodny suk
+        next_relation_tooltip: Přichodna relacija
+        next_way_tooltip: Přichodny puć
+        prev_changeset_tooltip: Předchadna sadźba změnow
+        prev_node_tooltip: Předchadny suk
+        prev_relation_tooltip: Předchadna relacija
+        prev_way_tooltip: Předchadny puć
+      user: 
+        name_changeset_tooltip: Změny wot wužiwarja {{user}} pokazać
+        next_changeset_tooltip: Přichodna změna wot wužiwarja {{user}}
+        prev_changeset_tooltip: Předchadna změna wot wužiwarja {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} abo {{edit_link}}"
       download_xml: XML sćahnyć
@@ -218,6 +224,10 @@ hsb:
       zoom_or_select: Wobłuk karty powjetšić abo wubrać
     tag_details: 
       tags: "Atributy:"
+      wiki_link: 
+        key: Wikijowa wopisanska strona za atribut {{key}}
+        tag: Wikijowa wopisanska strona za atribut {{key}}={{value}}
+      wikipedia_link: Nastawk {{page}} we Wikipediji
     timeout: 
       sorry: Wodaj, traje předołho, daty za {{type}} z ID {{id}} wotwołać.
       type: 
@@ -870,6 +880,7 @@ hsb:
       history_tooltip: Změny za tutón wobłuk pokazać
       history_zoom_alert: Dyrbiš powjetšić, zo by wobdźěłowansku historiju widźał
   layouts: 
+    copyright: Awtorske prawo a licenca
     donate: Podpěraj OpenStreetMap přez {{link}} k fondsej aktualizacije hardwary.
     donate_link_text: Darjenje
     edit: Wobdźěłać
@@ -921,6 +932,16 @@ hsb:
     view_tooltip: Kartu pokazać
     welcome_user: Witaj, {{user_link}}
     welcome_user_link_tooltip: Twoja wužiwarska strona
+  license_page: 
+    foreign: 
+      english_link: jendźelskim originalom
+      text: W padźe konflikta mjez přełoženej stronje a {{english_original_link}}, jendźelska strona dyrbi prioritatu měć
+      title: Wo tutym přełožku
+    native: 
+      mapping_link: kartěrowanje započeć
+      native_link: hornjoserbskej wersiji
+      text: Wobhladuješ sej jendźelsku wersiju strony awtorskeho prawa. Móžeš so k {{native_link}} tuteje strony wróćić abo wo awtorskim prawje čitać a {{mapping_link}}.
+      title: Wo tutej stronje
   message: 
     delete: 
       deleted: Powěsć zničena
index 1a175ebbd42ee8d6ba3c334c098c1017bf36e72c..709a53a9253ed2b184cd7bdd880440039cf40bb6 100644 (file)
@@ -106,14 +106,6 @@ hu:
         other: "A következő {{count}} vonalat tartalmazza:"
       no_bounding_box: Nincs eltárolva határoló ehhez a módosításcsomaghoz.
       show_area_box: Területhatároló megtekintése
-    changeset_navigation: 
-      all: 
-        next_tooltip: Következő módosításcsomag
-        prev_tooltip: Előző módosításcsomag
-      user: 
-        name_tooltip: "{{user}} szerkesztéseinek megtekintése"
-        next_tooltip: "{{user}} következő szerkesztése"
-        prev_tooltip: "{{user}} előző szerkesztése"
     common_details: 
       changeset_comment: "Megjegyzés:"
       edited_at: "Szerkesztve:"
@@ -131,6 +123,20 @@ hu:
         relation: Kapcsolat megtekintése nagyobb térképen
         way: Vonal megtekintése nagyobb térképen
       loading: Betöltés…
+    navigation: 
+      all: 
+        next_changeset_tooltip: Következő módosításcsomag
+        next_node_tooltip: Következő pont
+        next_relation_tooltip: Következő kapcsolat
+        next_way_tooltip: Következő vonal
+        prev_changeset_tooltip: Előző módosításcsomag
+        prev_node_tooltip: Előző pont
+        prev_relation_tooltip: Előző kapcsolat
+        prev_way_tooltip: Előző vonal
+      user: 
+        name_changeset_tooltip: "{{user}} szerkesztéseinek megtekintése"
+        next_changeset_tooltip: "{{user}} következő szerkesztése"
+        prev_changeset_tooltip: "{{user}} előző szerkesztése"
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} vagy {{edit_link}}"
       download_xml: XML letöltése
@@ -215,6 +221,10 @@ hu:
       zoom_or_select: Közelíts rá vagy jelölj ki egy területet a térképen a megtekintéshez
     tag_details: 
       tags: "Címkék:"
+      wiki_link: 
+        key: Wiki leírás oldal a {{key}} címkéhez
+        tag: Wiki leírás oldal a {{key}}={{value}} címkéhez
+      wikipedia_link: A(z) {{page}} szócikk a Wikipédián
     timeout: 
       sorry: Sajnálom, a(z) {{type}} típusú {{id}} azonosítójú adatok kinyerése túl sokáig tartott.
       type: 
@@ -865,6 +875,7 @@ hu:
       history_tooltip: Szerkesztések megtekintése ezen a területen
       history_zoom_alert: Közelítened kell a szerkesztési előzmények megtekintéséhez
   layouts: 
+    copyright: Szerzői jog és licenc
     donate: Támogasd az OpenStreetMapot a Hardverfrissítési Alapba történő {{link}}sal.
     donate_link_text: adományozás
     edit: Szerkesztés
index b7ffd96ee75383b864ca8cff1506eb8b4bf5c2da..d43538917fd6ae6ba9d32f9fcc965f353c8eb714 100644 (file)
@@ -103,14 +103,6 @@ ia:
         other: "Ha le sequente {{count}} vias:"
       no_bounding_box: Nulle quadro de delimitation ha essite memorisate pro iste gruppo de modificationes.
       show_area_box: Monstrar quadro del area
-    changeset_navigation: 
-      all: 
-        next_tooltip: Gruppo de modificationes sequente
-        prev_tooltip: Gruppo de modificationes precedente
-      user: 
-        name_tooltip: Vider modifications per {{user}}
-        next_tooltip: Modification sequente per {{user}}
-        prev_tooltip: Modification precedente per {{user}}
     common_details: 
       changeset_comment: "Commento:"
       edited_at: "Modificate le:"
@@ -128,6 +120,14 @@ ia:
         relation: Vider le relation in un carta plus grande
         way: Vider le via in un carta plus grande
       loading: Cargamento...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Gruppo de modificationes sequente
+        prev_changeset_tooltip: Gruppo de modificationes precedente
+      user: 
+        name_changeset_tooltip: Vider modifications per {{user}}
+        next_changeset_tooltip: Modification sequente per {{user}}
+        prev_changeset_tooltip: Modification precedente per {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} o {{edit_link}}"
       download_xml: Discargar XML
index 355660b5b1271453d4db92b42aeae4a550f963b5..dd72100520ba63487a1e852be138f998e15dd94c 100644 (file)
@@ -103,14 +103,6 @@ is:
         other: "Inniheldur {{count}} vegi:"
       no_bounding_box: Engin svæðismörk voru vistuð ásamt þessu breytingarsetti.
       show_area_box: Sýna svæðismörk á aðalkorti
-    changeset_navigation: 
-      all: 
-        next_tooltip: Næsta breytingarsett
-        prev_tooltip: Fyrra breytingarsett
-      user: 
-        name_tooltip: Skoða breytingarsett eftir {{user}}
-        next_tooltip: Næsta breytingarsett eftir {{user}}
-        prev_tooltip: Fyrri breytingarsett eftir {{user}}
     common_details: 
       changeset_comment: "Athugasemd:"
       edited_at: "Breytt:"
@@ -128,6 +120,14 @@ is:
         relation: Skoða þessi vensl á stærra korti
         way: Skoða þennan veg á stærra korti
       loading: Hleð...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Næsta breytingarsett
+        prev_changeset_tooltip: Fyrra breytingarsett
+      user: 
+        name_changeset_tooltip: Skoða breytingarsett eftir {{user}}
+        next_changeset_tooltip: Næsta breytingarsett eftir {{user}}
+        prev_changeset_tooltip: Fyrri breytingarsett eftir {{user}}
     node: 
       download: "{{download_xml_link}} eða {{view_history_link}} eða {{edit_link}}"
       download_xml: Sækja hnútinn á XML sniði
@@ -524,6 +524,7 @@ is:
       edit_zoom_alert: Þú verður að þysja inn á smærra svæði til að breyta gögnunum
       history_zoom_alert: Þú verður að þysja inn á smærra svæði til að sjá breytingarskránna
   layouts: 
+    copyright: Höfundaréttur &amp; leyfi
     donate: Hjálpaðu OpenStreetMap verkefninu með {{link}} í vélbúnaðarsjóðinn.
     donate_link_text: fjárframlagi
     edit: Breyta
@@ -573,6 +574,17 @@ is:
     view_tooltip: Kortasýn
     welcome_user: Hæ {{user_link}}
     welcome_user_link_tooltip: Notandasíðan þín
+  license_page: 
+    foreign: 
+      english_link: ensku útgáfuna
+      text: "Stangist þessi þýðing á við {{english_original_link}} gildir\nhin síðari fram yfir íslenskuna."
+      title: Um þessa þýðingu
+    legal_babble: "<h2>Höfundaréttur og leyfi</h2>\n\n<p>\n   OpenStreetMap er <i>frjáls kortagrunnur</i> undir <a\n   href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n   Commons Attribution-ShareAlike 2.0</a> leyfinu. (CC-BY-SA).\n</p>\n\n<h2>Frekari upplýsingar</h2>\n\n<p>\n  Frekari upplýsingar má nálgast <a href=\"/copyright/en\">í ensku\n  útgáfu</a> þessa skjals.\n</p>"
+    native: 
+      mapping_link: farið að kortleggja
+      native_link: íslensku útgáfuna
+      text: "Þú ert að skoða höfundaréttarsíðuna á frummálinu. Þú getur\nlesið þessa útgáfu, farið aftur á {{native_link}}, eða hætt\nþessu lagabulli og {{mapping_link}}."
+      title: Um þessa síðu
   message: 
     delete: 
       deleted: Skilaboðunum var eytt
index 3af1e40e808cc8d2f1ccb1f3f4a308ed8003a145..78b238fb5dbdb2c21fc4a917a858a7fc3123312e 100644 (file)
@@ -94,14 +94,6 @@ it:
       has_ways: "Possiede i seguenti {{count}} percorsi:"
       no_bounding_box: Per questo gruppo di modifiche non è stato memorizzato alcun riquadro di selezione.
       show_area_box: Mostra il riquadro dell'area
-    changeset_navigation: 
-      all: 
-        next_tooltip: Gruppo di modifiche successivo
-        prev_tooltip: Gruppo di modifiche precedente
-      user: 
-        name_tooltip: Visualizza le modifiche di {{user}}
-        next_tooltip: Modifica successiva di {{user}}
-        prev_tooltip: Modifica precedente di {{user}}
     common_details: 
       changeset_comment: "Commento:"
       edited_at: "Modificato il:"
@@ -119,6 +111,14 @@ it:
         relation: Visualizza la relation in una mappa più grande
         way: Visualizza la way in una mappa più grande
       loading: Caricamento in corso...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Gruppo di modifiche successivo
+        prev_changeset_tooltip: Gruppo di modifiche precedente
+      user: 
+        name_changeset_tooltip: Visualizza le modifiche di {{user}}
+        next_changeset_tooltip: Modifica successiva di {{user}}
+        prev_changeset_tooltip: Modifica precedente di {{user}}
     node: 
       download: "{{download_xml_link}} oppure {{view_history_link}}"
       download_xml: Scarica XML
index 8e6bc1bd15c67ff6b829232efbcda99652b11866..3c06bcfa2daf6efe86ed973af6380224c4b969d7 100644 (file)
@@ -95,14 +95,6 @@ ja:
       has_ways: "次の {{count}} ウェイを持ちます:"
       no_bounding_box: この変更セットを格納する境界囲みは存在しません。
       show_area_box: 領域範囲表示
-    changeset_navigation: 
-      all: 
-        next_tooltip: 次の変更セット
-        prev_tooltip: 一つ前の変更セット
-      user: 
-        name_tooltip: "{{user}}による編集を表示"
-        next_tooltip: 次の編集({{user}}による)
-        prev_tooltip: 前の編集({{user}}による)
     common_details: 
       changeset_comment: "コメント:"
       edited_at: "編集日:"
@@ -120,6 +112,14 @@ ja:
         relation: このリレーションを大きいマップで見る
         way: このウェイを大きいマップで見る
       loading: 読み込み中…
+    navigation: 
+      all: 
+        next_changeset_tooltip: 次の変更セット
+        prev_changeset_tooltip: 一つ前の変更セット
+      user: 
+        name_changeset_tooltip: "{{user}}による編集を表示"
+        next_changeset_tooltip: 次の編集({{user}}による)
+        prev_changeset_tooltip: 前の編集({{user}}による)
     node: 
       download: "{{download_xml_link}}、{{view_history_link}}、または、{{edit_link}}"
       download_xml: XMLをダウンロード
index 00b378a984ddb7e4a306f4abe39f740fd5812abb..229bf175fd05d52bf2010ede67d8d54cd1216117 100644 (file)
@@ -57,14 +57,14 @@ km:
         title: សំនុំ​បំលាស់ប្តូរ​ {{id}}
         title_comment: សំនុំ​បំលាស់ប្តូរ​ {{id}} - {{comment}}
       title: សំនុំ​បំលាស់ប្តូរ​
-    changeset_navigation: 
+    navigation: 
       all: 
-        next_tooltip: សំនុំ​បំលាស់ប្តូរ​បន្ទាប់
-        prev_tooltip: សំនុំ​បំលាស់ប្តូរ​មុន​
+        next_changeset_tooltip: សំនុំ​បំលាស់ប្តូរ​បន្ទាប់
+        prev_changeset_tooltip: សំនុំ​បំលាស់ប្តូរ​មុន​
       user: 
-        name_tooltip: មើលកំណែប្រែ​ដោយ {{user}}
-        next_tooltip: កំណែប្រែ​បន្ទាប់ ដោយ {{user}}
-        prev_tooltip: កំណែប្រែ​មុខ ដោយ {{user}}
+        name_changeset_tooltip: មើលកំណែប្រែ​ដោយ {{user}}
+        next_changeset_tooltip: កំណែប្រែ​បន្ទាប់ ដោយ {{user}}
+        prev_changeset_tooltip: កំណែប្រែ​មុខ ដោយ {{user}}
     common_details: 
       changeset_comment: មតិយោបល់​៖
       edited_at: បានកែប្រែនៅ​៖
index 88ce245059bfcb0eefceee79750b16f6fbead7b7..296501a3b977ba676bf92015e3733df8854dcfde 100644 (file)
@@ -103,14 +103,6 @@ mk:
         other: "Ги има следниве {{count}} патишта:"
       no_bounding_box: Нема зачувано рамка за овие измени.
       show_area_box: Прикажи рамка
-    changeset_navigation: 
-      all: 
-        next_tooltip: "Следни измени:"
-        prev_tooltip: "Претходни измени:"
-      user: 
-        name_tooltip: Погледај уредувања на {{user}}
-        next_tooltip: Следно уредување на {{user}}
-        prev_tooltip: Претходно уредување на {{user}}
     common_details: 
       changeset_comment: "Коментар:"
       edited_at: "Уредено во:"
@@ -128,6 +120,14 @@ mk:
         relation: Погледај ја релацијата на поголема карта
         way: Погледај го патот на поголема карта
       loading: Се вчитува...
+    navigation: 
+      all: 
+        next_changeset_tooltip: "Следни измени:"
+        prev_changeset_tooltip: "Претходни измени:"
+      user: 
+        name_changeset_tooltip: Погледај уредувања на {{user}}
+        next_changeset_tooltip: Следно уредување на {{user}}
+        prev_changeset_tooltip: Претходно уредување на {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} или {{edit_link}}"
       download_xml: Преземи XML
index b5f452384601fa6d39120082234295bf83dc5bbb..c6b39b224fc6e657da29e13852c1167ec1dbd483 100644 (file)
@@ -47,11 +47,11 @@ nds:
       belongs_to: "Höört to:"
       closed_at: "Slaten an’n:"
       created_at: "Opstellt an’n:"
-    changeset_navigation: 
+    navigation: 
       user: 
-        name_tooltip: Ännern von {{user}} ankieken
-        next_tooltip: Tokamen Ännern von {{user}}
-        prev_tooltip: Vörig Ännern von {{user}}
+        name_changeset_tooltip: Ännern von {{user}} ankieken
+        next_changeset_tooltip: Tokamen Ännern von {{user}}
+        prev_changeset_tooltip: Vörig Ännern von {{user}}
     common_details: 
       changeset_comment: "Kommentar:"
       edited_at: "Ännert an’n:"
index bb2735fd5df939632acd0b29348496c8e35a8996..de8841147bba1236a2f3b880ff4a92d3e4dd68cf 100644 (file)
@@ -18,14 +18,14 @@ ne:
       closed_at: "बन्द गरिएको:"
       created_at: "श्रृजना गरिएको:"
       show_area_box: क्षेत्र बाकस देखाउने
-    changeset_navigation: 
+    navigation: 
       all: 
-        next_tooltip: पछिल्लो चेन्जसेट
-        prev_tooltip: अघिल्लो चेन्जसेट
+        next_changeset_tooltip: पछिल्लो चेन्जसेट
+        prev_changeset_tooltip: अघिल्लो चेन्जसेट
       user: 
-        name_tooltip: " {{user}}को सम्पादन हेर्ने"
-        next_tooltip: पछिल्लो सम्पादन {{user}}
-        prev_tooltip: पहिलो सम्पादन {{user}}
+        name_changeset_tooltip: " {{user}}को सम्पादन हेर्ने"
+        next_changeset_tooltip: पछिल्लो सम्पादन {{user}}
+        prev_changeset_tooltip: पहिलो सम्पादन {{user}}
     common_details: 
       changeset_comment: "टिप्पणी:"
       edited_at: "समपादित :"
index d14d38ea408fd1e457c3b1a260e7b5c39a6daa49..d2aeb55fe504b3cd7bf7686319c6be791b6c2874 100644 (file)
@@ -106,14 +106,6 @@ nl:
       has_ways: "Bevat de volgende {{count}} ways:"
       no_bounding_box: Er is geen selectiekader opgeslagen voor deze set wijzigingen.
       show_area_box: Gebied weergeven
-    changeset_navigation: 
-      all: 
-        next_tooltip: Volgende set wijzigingen
-        prev_tooltip: Vorige set wijzigingen
-      user: 
-        name_tooltip: Bewerkingen van {{user}} bekijken
-        next_tooltip: Volgende beweking door {{user}}
-        prev_tooltip: Vorige bewerking door {{user}}
     common_details: 
       changeset_comment: "Opmerking:"
       edited_at: "Bewerkt op:"
@@ -131,6 +123,20 @@ nl:
         relation: Relatie op grotere kaart bekijken
         way: Weg op grotere kaart bekijken
       loading: Bezig met laden...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Volgende set wijzigingen
+        next_node_tooltip: Volgende node
+        next_relation_tooltip: Volgende relatie
+        next_way_tooltip: Volgende weg
+        prev_changeset_tooltip: Vorige set wijzigingen
+        prev_node_tooltip: Vorige node
+        prev_relation_tooltip: Vorige relatie
+        prev_way_tooltip: Vorige weg
+      user: 
+        name_changeset_tooltip: Bewerkingen van {{user}} bekijken
+        next_changeset_tooltip: Volgende beweking door {{user}}
+        prev_changeset_tooltip: Vorige bewerking door {{user}}
     node: 
       download: "{{download_xml_link}} of {{view_history_link}}"
       download_xml: XML downloaden
@@ -215,6 +221,10 @@ nl:
       zoom_or_select: Inzoomen of een gebied van de kaart selecteren om te bekijken
     tag_details: 
       tags: "Labels:"
+      wiki_link: 
+        key: De wikipagina die het label {{key}} beschrijft
+        tag: De wikipagina die het label {{key}}={{value}} beschrijft
+      wikipedia_link: De pagina {{page}} op Wikipedia
     timeout: 
       sorry: Het ophalen van de gegevens voor de {{type}} met het ID {{id}} duurde te lang.
       type: 
@@ -863,6 +873,7 @@ nl:
       history_tooltip: Bewerkingen voor dit gebied bekijken
       history_zoom_alert: U moet inzoomen om de kaart te bewerkingsgeschiedenis te bekijken
   layouts: 
+    copyright: Auteursrechten &amp; licentie
     donate: Ondersteun OpenStreetMap door te {{link}} aan het Hardware Upgrade-fonds.
     donate_link_text: doneren
     edit: Bewerken
@@ -911,6 +922,17 @@ nl:
     view_tooltip: Kaart bekijken
     welcome_user: Welkom, {{user_link}}
     welcome_user_link_tooltip: Uw gebruikerspagina
+  license_page: 
+    foreign: 
+      english_link: Engelstalige origineel
+      text: In het geval deze taalversie en het {{english_original_link}} elkaar tegenspreken, hebben de bepalingen op de Engelstalige pagina voorrang.
+      title: Over deze vertaling
+    legal_babble: "<h2>Auteursrechten en licentie</h2>\n<p>\n   OpenStreetMap is <i>open data</i>, gelicenceerd onder de licentie <a\n   href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n   Commons Naamsvermelding-Gelijk delen 2.0</a> (CC-BY-SA).\n</p>\n<p>\n  Het staat u vrij onze kaarten en gegevens te kopieren, te distribueren,\n  weer te geven en aan te passen, zo lang als u OpenStreetMap en haar\n  auteurs vermeldt. Als u onze kaarten of gegevens wijzigt of erop verder bouwt,\n  mag u de resultaten onder dezelfde licentie distribueren. In de\n  volledige <a\n  href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">juridische\n  tekst</a> worden uw rechten en verantwoordelijkheden uitgelegd.\n</p>\n\n<h3>Hoe OpenStreetMap te vermelden</h3>\n<p>\n  Als u kaartmateriaal van OpenStreetMap gebruikt, vragen we u als\n  naamsvermelding tenminste op te nemen &ldquo;&copy; OpenStreetMap-auteurs, CC-BY-SA&rdquo;.\n  Als u alleen kaartgegevens gebruikt, vragen we u te vermelden\n  &ldquo;Kaartgegevens &copy; OpenStreetMap-auteurs,\n  CC-BY-SA&rdquo;.\n</p>\n<p>\n  Waar mogelijk moet u verwijzen naar OpenStreetMap met een hyperlink naar <a\n  href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n  en CC-BY-SA naar <a\n  href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Als\n  u een medium gebruikt waarin u niet met hyperlinks kunt verwijzen (bijvoorbeeld in\n  drukwerk), dan verzoeken we u uw lezers te verwijzen naar \n  www.openstreetmap.org (wellicht door \n  &lsquo;OpenStreetMap&rsquo; uit te schrijven als het complete webadres) en naar\n  www.creativecommons.org.\n</p>\n\n<h3>Meer informatie</h3>\n<p>\n  U kunt meer lezen over onze gegevens in de <a\n  href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Veel gestelde juridische\n  vragen</a>.\n</p>\n<p>\n  OSM-auteurs worden er continu aan herinnerd nooit gebruik te maken van enige\n  auteursrechtelijk beschermde bron (zoals bijvoorbeeld Google Maps of gedrukte kaarten) zonder\n  expliciete toestemming van de auteursrechthebbenden.\n</p>\n<p>\n  Hoewel OpenStreetMap open data is, kunnen we niet om niet een kaart-API\n  ter beschikking stellen voor ontwikkelaars van derde partijen.\n\n  Zie ons <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">API-gebruiksbeleid</a>,\n  <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Kaartgebruikbeleid</a>\n  en <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Nominatimgebruiksbeleid</a>.\n</p>\n\n<h3>Onze gegevensleveranciers</h3>\n<p>\n  Door onze CC-BY-SA-licentie moet u &ldquo;de Originele auteur\n  vermelden op een redelijke wijze voor het door U gebruikte medium&rdquo;.\n  Individuele OSM-mappers vragen niet om meer vermelding dan\n  &ldquo;OpenStreetMap-auteurs&rdquo;, maar daar waar gegevens van\n  een nationaal kaartenbureau afkomstig zijn of van een andere belangrijke\n  bron, en opgenomen in OpenStreetMap, kan het redelijk zijn om\n  die bron direct te vermelden of door naar deze pagina te verwijzen.\n</p>\n\n<!--\nInformatie voor paginabewerkers\n\nIn de volgende lijst zijn alleen organisaties opgenomen die\nvermelding vereisen bij opname van hun gegevens in OpenStreetMap.\nHet is geen algeheel overzicht van geïmporteerde gegevens en mag\nniet gebruikt worden, tenzij naamsvermelding verplicht is om te\nvoldoen aan de licentie van de geïmporteerde gegevens.\n\nToevoegingen op deze plaats moeten eerst met OSM-beheerders\noverlegd worden.\n-->\n\n<ul id=\"contributors\">\n   <li><strong>Australië</strong>: Bevat wijkgegevens\n   gebaseerd op gegevens van het Australian Bureau of Statistics.</li>\n   <li><strong>Canada</strong>: Bevat gegevens van\n   GeoBase&reg;, GeoGratis (&copy; Department of Natural\n   Resources Canada), CanVec (&copy; Department of Natural\n   Resources Canada), en StatCan (Geography Division,\n   Statistics Canada).</li>\n   <li><strong>Nieuw-Zeeland</strong>: Bevat gegevens van\n   Land Information New Zealand. Crown Copyright voorbehouden.</li>\n   <li><strong>Verenigd Koninkrijk</strong>: Bevat gegevens van\n   de Ordnance Survey &copy; Crown Copyright en  databaserechten\n   2010.</li>\n</ul>\n\n<p>\n  Opname van gegevens in OpenStreetMap betekent niet dat de originele\n  gegevensverstrekker OpenStreetMap ondersteunt, enige vorm van garantie geeft, of\n  aansprakelijkheid aanvaardt.\n</p>"
+    native: 
+      mapping_link: gaan mappen
+      native_link: Nederlandstalige versie
+      text: U bent de Engelstalige versie van de auteursrechtenpagina aan het bekijken. U kunt teruggaan naar de {{native_link}} van deze pagina, of u kunt ophouden met lezen over de auteursrechten en {{mapping_link}}.
+      title: Over deze pagina
   message: 
     delete: 
       deleted: Het bericht is verwijderd
index 8c127eea1efd89cdf9517ee907a693333a61d427..56057d65fffe4b03917c72e47ba699beeda6547b 100644 (file)
         other: "Har følgende {{count}} veier:"
       no_bounding_box: Ingen bounding box er lagret for dette endringssettet.
       show_area_box: Vis boks for område
-    changeset_navigation: 
-      all: 
-        next_tooltip: Neste endringssett
-        prev_tooltip: Forrige endringssett
-      user: 
-        name_tooltip: Vis redigeringer av {{user}}
-        next_tooltip: Neste redigering av {{user}}
-        prev_tooltip: Forrige redigering av {{user}}
     common_details: 
       changeset_comment: "Kommentar:"
       edited_at: "Redigert:"
         relation: Vis relasjon på større kart
         way: Vis vei på større kart
       loading: Laster ...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Neste endringssett
+        prev_changeset_tooltip: Forrige endringssett
+      user: 
+        name_changeset_tooltip: Vis redigeringer av {{user}}
+        next_changeset_tooltip: Neste redigering av {{user}}
+        prev_changeset_tooltip: Forrige redigering av {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} eller {{edit_link}}"
       download_xml: Last ned XML
index 2f8136e7304eff5b3e341e6482ffd24da2e986d7..499133193a5bfc7cb5d3d3e367435fca0dc70695 100644 (file)
@@ -110,14 +110,6 @@ pl:
         other: "Zawiera następujących {{count}} dróg:"
       no_bounding_box: Ten zestaw zmian został zapisany bez obszaru edycji.
       show_area_box: Pokaż obszar prostokątu
-    changeset_navigation: 
-      all: 
-        next_tooltip: Następny zestaw zmian
-        prev_tooltip: Poprzedni zestaw zmian
-      user: 
-        name_tooltip: Zobacz edycje wykonane przez użytkownika {{user}}
-        next_tooltip: Następna edycja wykonana przez użytkownika {{user}}
-        prev_tooltip: Poprzednia edycja wykonana przez użytkownika {{user}}
     common_details: 
       changeset_comment: "Komentarz:"
       edited_at: "Edytowano:"
@@ -135,6 +127,14 @@ pl:
         relation: Zobacz relację na większej mapie
         way: Pokaż drogę na większej mapie
       loading: Wczytywanie...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Następny zestaw zmian
+        prev_changeset_tooltip: Poprzedni zestaw zmian
+      user: 
+        name_changeset_tooltip: Zobacz edycje wykonane przez użytkownika {{user}}
+        next_changeset_tooltip: Następna edycja wykonana przez użytkownika {{user}}
+        prev_changeset_tooltip: Poprzednia edycja wykonana przez użytkownika {{user}}
     node: 
       download: "{{download_xml_link}} lub {{view_history_link}}"
       download_xml: Ściągnij XML
@@ -1323,6 +1323,10 @@ pl:
       password: "Hasło:"
       please login: Zaloguj się lub {{create_user_link}}.
       title: Logowanie
+    logout: 
+      heading: Wyloguj z OpenStreetMap
+      logout_button: Wyloguj
+      title: Wyloguj
     lost_password: 
       email address: "Adres e-mail:"
       heading: Zapomniałeś hasła?
@@ -1356,6 +1360,7 @@ pl:
       heading: Użytkownik{{user}} nie istnieje
       title: Nie znaleziono użytkownika
     popup: 
+      friend: Znajomy
       nearby mapper: Mapowicz z okolicy
       your location: Twoje położenie
     remove_friend: 
@@ -1400,7 +1405,7 @@ pl:
       nearby users: Najbliżsi użytkownicy
       new diary entry: nowy wpis w dzienniku
       no friends: Nie dodałeś/aś jeszcze żadnych znajomych.
-      no nearby users: Nikt nie przyznał się jeszcze do mapowania w tej okolicy.
+      no nearby users: Nie ma innych użytkowników, którzy przyznają się do mapowania w tej okolicy.
       oauth settings: ustawienia oauth
       remove as friend: usuń ze znajomych
       role: 
index 9b1a33d0146b1ffd67e4fdb2e78e0ee52708219c..90204a73d55dae7ba1bd0eec526ea295dc6d701d 100644 (file)
@@ -107,21 +107,6 @@ pt-BR:
         other: "Tem os seguintes {{count}} caminhos:"
       no_bounding_box: Nenhum limite de área foi armazenado para estas alterações.
       show_area_box: Área de exibição
-    changeset_navigation: 
-      all: 
-        next_tooltip: Próximo conjunto de alterações
-        prev_tooltip: Conjunto de alterações anterior
-      paging: 
-        all: 
-          next: "{{id}} &raquo;"
-          prev: "&laquo; {{id}}"
-        user: 
-          next: "{{id}} &raquo;"
-          prev: "&laquo; {{id}}"
-      user: 
-        name_tooltip: Ver edições de {{user}}
-        next_tooltip: Editado posteriormente por {{user}}
-        prev_tooltip: Editado anteriormente por {{user}}
     common_details: 
       changeset_comment: "Comentário:"
       edited_at: "Editado em:"
@@ -139,6 +124,27 @@ pt-BR:
         relation: Ver relação em um mapa maior
         way: Ver caminho em um mapa maior
       loading: Carregando...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Próximo conjunto de alterações
+        next_node_tooltip: Próximo nó
+        next_relation_tooltip: Próxima relação
+        next_way_tooltip: Próximo caminho
+        prev_changeset_tooltip: Conjunto de alterações anterior
+        prev_node_tooltip: Nó anterior
+        prev_relation_tooltip: Relação anterior
+        prev_way_tooltip: Caminho anterior
+      paging: 
+        all: 
+          next: "{{id}} &raquo;"
+          prev: "&laquo; {{id}}"
+        user: 
+          next: "{{id}} &raquo;"
+          prev: "&laquo; {{id}}"
+      user: 
+        name_changeset_tooltip: Ver edições de {{user}}
+        next_changeset_tooltip: Editado posteriormente por {{user}}
+        prev_changeset_tooltip: Editado anteriormente por {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} ou {{edit_link}}"
       download_xml: Baixar XML
@@ -224,6 +230,10 @@ pt-BR:
       zoom_or_select: Aproxime ou selecione uma área diferente para visualizar
     tag_details: 
       tags: "Etiquetas:"
+      wiki_link: 
+        key: A página no wiki com a descrição para a tag {{key}}
+        tag: A página no wiki com a descrição para a tag {{key}}={{value}}
+      wikipedia_link: O artigo na Wikipedia {{page}}
     timeout: 
       sorry: Desculpe, mas os dados para {{type}} com id {{id}} estão demorando muito para chegar.
       type: 
@@ -881,6 +891,7 @@ pt-BR:
       history_tooltip: Veja as edições desta área
       history_zoom_alert: Você deve aumentar o zoom para ver o histórico de edição
   layouts: 
+    copyright: Direitos Autorais &amp; Licença
     donate: "Ajude o OpenStreetMap fazendo doações para o Fundo de Upgrade de Hardware: {{link}}."
     donate_link_text: doando
     edit: Editar
@@ -1263,7 +1274,7 @@ pt-BR:
       search_results: Resultados da Busca
   time: 
     formats: 
-      friendly: "%e %B %E às %H:%M"
+      friendly: "%e de %B de %Y às %H:%M"
   trace: 
     create: 
       trace_uploaded: Seu arquivo GPX foi enviado e está aguardando para ser inserido no banco de dados. Isso normalmente leva meia hora, e um e-mail será enviado para você quando ocorrer.
index 1d426764632f5db61f80eb2f21fef5b2df293acc..ed5a4daf62e7090be99b89a1ff0d2f5e8893b45e 100644 (file)
@@ -10,11 +10,11 @@ pt:
       belongs_to: "Pertence a:"
       closed_at: "Fechado em:"
       created_at: "Criado em:"
-    changeset_navigation: 
+    navigation: 
       user: 
-        name_tooltip: Ver edições de {{user}}
-        next_tooltip: Próxima edição por {{user}}
-        prev_tooltip: Edição anterior por {{user}}
+        name_changeset_tooltip: Ver edições de {{user}}
+        next_changeset_tooltip: Próxima edição por {{user}}
+        prev_changeset_tooltip: Edição anterior por {{user}}
     common_details: 
       changeset_comment: "Comentário:"
       edited_at: "Editado em:"
index 12f1956dfc1a4d875a80525b10184b44553874dc..7703bc438176b3cdf494637b611284d645e6b5e0 100644 (file)
@@ -84,11 +84,11 @@ ro:
       has_ways: "Are următoarele {{count}} căi:"
       no_bounding_box: Nicio cutie împrejmuitoare nu a fost salvată pentru acest set de modificări.
       show_area_box: Afișează cutia zonei
-    changeset_navigation: 
+    navigation: 
       user: 
-        name_tooltip: Vezi editările lui {{user}}
-        next_tooltip: Următoarea editare de {{user}}
-        prev_tooltip: Editarea precedentă de {{user}}
+        name_changeset_tooltip: Vezi editările lui {{user}}
+        next_changeset_tooltip: Următoarea editare de {{user}}
+        prev_changeset_tooltip: Editarea precedentă de {{user}}
     common_details: 
       changeset_comment: "Comentariu:"
       edited_at: "Editat la:"
index a0b58bdcd63c831783c8a2a107d51f2049e342b8..4a03b20c267894a35f751e492dff2b596b20ee71 100644 (file)
@@ -109,14 +109,6 @@ ru:
       has_ways: "Содержит {{count}} линий:"
       no_bounding_box: Для этого пакета правок границы не установлены.
       show_area_box: Показать выделенную область
-    changeset_navigation: 
-      all: 
-        next_tooltip: Следующий пакет правок
-        prev_tooltip: Предыдущий пакет правок
-      user: 
-        name_tooltip: Просмотр правок {{user}}
-        next_tooltip: Следующая правка {{user}}
-        prev_tooltip: Предыдущая правка {{user}}
     common_details: 
       changeset_comment: "Комментарий:"
       edited_at: "Изменено:"
@@ -134,6 +126,20 @@ ru:
         relation: Просмотр отношения на более крупной карте
         way: Просмотр линии на более крупной карте
       loading: Загрузка...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Следующий пакет правок
+        next_node_tooltip: Следующая точка
+        next_relation_tooltip: Следующее отношение
+        next_way_tooltip: Следующая линия
+        prev_changeset_tooltip: Предыдущий пакет правок
+        prev_node_tooltip: Предыдущая точка
+        prev_relation_tooltip: Предыдущее отношение
+        prev_way_tooltip: Предыдущая линия
+      user: 
+        name_changeset_tooltip: Просмотр правок {{user}}
+        next_changeset_tooltip: Следующая правка {{user}}
+        prev_changeset_tooltip: Предыдущая правка {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} или {{edit_link}}"
       download_xml: Скачать XML
@@ -218,6 +224,10 @@ ru:
       zoom_or_select: Увеличьте или выберите область для просмотра
     tag_details: 
       tags: "Теги:"
+      wiki_link: 
+        key: Страница вики, описывающая тег {{key}}
+        tag: Страница вики, описывающая тег {{key}}={{value}}
+      wikipedia_link: Статья {{page}} в Википедии
     timeout: 
       sorry: Извините, данные для {{type}} с id {{id}} слишком длинные для извлечения.
       type: 
@@ -870,6 +880,7 @@ ru:
       history_tooltip: Просмотр правок в этой области
       history_zoom_alert: Необходимо увеличить масштаб карты, чтобы увидеть историю правок
   layouts: 
+    copyright: Авт. право и лицензия
     donate: Поддержите OpenStreetMap {{link}} в Фонд обновления оборудования.
     donate_link_text: пожертвованиями
     edit: Правка
index 11a55805fc11029078deef3c04b1839ebd787564..7420694f9602d6e6b6bb7c63c84166dbe7acad4a 100644 (file)
@@ -89,8 +89,8 @@ sk:
       closed_at: "Zatvorené o:"
       created_at: "Vytvorené o:"
       has_nodes: 
-        one: "Obsahuje nasledujúci {{count}} uzol:"
-        other: "Obsahuje nasledujúce {{count}} uzly:"
+        one: "Obsahuje nasledujúci {{count}} body:"
+        other: "Obsahuje nasledujúce {{count}} body:"
       has_relations: 
         one: "Obsahuje nasledujúcu {{count}} reláciu:"
         other: "Obsahuje nasledujúce {{count}} relácie:"
@@ -99,14 +99,6 @@ sk:
         other: "Obsahuje nasledujúce {{count}} cesty:"
       no_bounding_box: Pre tento počet zmien nie je uložený žiadny rozsah.
       show_area_box: Zobraziť Rám Oblasti
-    changeset_navigation: 
-      all: 
-        next_tooltip: Nasledujúci súbor zmien
-        prev_tooltip: Predchádzajúci súbor zmien
-      user: 
-        name_tooltip: Zobraziť úpravy od {{user}}
-        next_tooltip: Ďalšia úprava od {{user}}
-        prev_tooltip: Predošlá úprava od {{user}}
     common_details: 
       changeset_comment: "Komentár:"
       edited_at: "Upravené o:"
@@ -124,6 +116,14 @@ sk:
         relation: Zobraziť reláciu na väčšej mape
         way: Zobraziť cestu na väčšej mape
       loading: Nahrávanie...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Nasledujúci súbor zmien
+        prev_changeset_tooltip: Predchádzajúci súbor zmien
+      user: 
+        name_changeset_tooltip: Zobraziť úpravy od {{user}}
+        next_changeset_tooltip: Ďalšia úprava od {{user}}
+        prev_changeset_tooltip: Predošlá úprava od {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} alebo {{edit_link}}"
       download_xml: Stiahnuť XML
@@ -192,7 +192,7 @@ sk:
         heading: Zoznam objektov
         history: 
           type: 
-            node: Uzol [[id]]
+            node: Bod [[id]]
             way: Cesta [[id]]
         selected: 
           type: 
@@ -1322,7 +1322,7 @@ sk:
       email address: "E-mailová Adresa:"
       heading: Zabudli Ste Heslo?
       help_text: Vložte emailovú adresu, ktorú ste použili pri prihlásení, pošleme vám odkaz na to aby ste mohli resetovať vaše heslo.
-      new password button: Resetť heslo
+      new password button: Resetovať heslo
       notice email cannot find: Nemôžem nájsť emailovú adresu, prepáčte.
       notice email on way: Prepáčte stratili ste to :-( ale na ceste je mail, tak to čoskoro budete môcť resetovať.
       title: Stratené heslo
@@ -1466,6 +1466,7 @@ sk:
       sorry: Prepáčte, blok užívateľa s ID {{id}} nemohol byť nájdený.
     partial: 
       confirm: Ste si istí?
+      creator_name: Tvorca
       display_name: Blokovaný užívateľ
       edit: Upraviť
       not_revoked: (nezrušený)
index 7a878ff43e9bcd2cb1c9e7b87c49b4e4abec5a1f..803460b032196107181c5315a9c1c6f98ca9be8c 100644 (file)
@@ -81,14 +81,6 @@ sl:
         other: "Vsebuje naslednjih {{count}} poti:"
       no_bounding_box: Ta paket nima določenega pravokotnega področja.
       show_area_box: Prikaži pravokotno področje
-    changeset_navigation: 
-      all: 
-        next_tooltip: Naslednji paket sprememb
-        prev_tooltip: Prejšnji paket sprememb
-      user: 
-        name_tooltip: Prikaz prispevkov uporabnika {{user}}
-        next_tooltip: Naslednji prispevek uporabnika {{user}}
-        prev_tooltip: Prejšnji prispevek uporabnika {{user}}
     common_details: 
       edited_at: "Urejeno ob:"
       edited_by: "Uredil:"
@@ -105,6 +97,14 @@ sl:
         relation: Prikaz relacije na večjem zemljevidu
         way: Prikaz poti na večjem zemljevidu
       loading: Nalaganje ...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Naslednji paket sprememb
+        prev_changeset_tooltip: Prejšnji paket sprememb
+      user: 
+        name_changeset_tooltip: Prikaz prispevkov uporabnika {{user}}
+        next_changeset_tooltip: Naslednji prispevek uporabnika {{user}}
+        prev_changeset_tooltip: Prejšnji prispevek uporabnika {{user}}
     node: 
       download: "{{download_xml_link}} ali {{view_history_link}}"
       download_xml: prenesi XML
index b172a9c315fc874338650b322425a774c8792902..595cce4afb38cf5312c808d03d6919b404cf0e38 100644 (file)
@@ -101,14 +101,6 @@ sr-EC:
         few: "Има следеће {{count}} путање:"
         one: "Има следећу путању:"
         other: "Има следећих {{count}} путања:"
-    changeset_navigation: 
-      all: 
-        next_tooltip: Следећи скуп измена
-        prev_tooltip: Претходни скуп измена
-      user: 
-        name_tooltip: Види измене корисника {{user}}
-        next_tooltip: Следећа измена корисника {{user}}
-        prev_tooltip: Претходна измена корисника {{user}}
     common_details: 
       changeset_comment: "Напомена:"
       edited_at: "Измењено:"
@@ -126,6 +118,14 @@ sr-EC:
         relation: Погледај однос на већој мапи
         way: Погледај путању на већој мапи
       loading: Учитавање
+    navigation: 
+      all: 
+        next_changeset_tooltip: Следећи скуп измена
+        prev_changeset_tooltip: Претходни скуп измена
+      user: 
+        name_changeset_tooltip: Види измене корисника {{user}}
+        next_changeset_tooltip: Следећа измена корисника {{user}}
+        prev_changeset_tooltip: Претходна измена корисника {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} или {{edit_link}}"
       download_xml: Преузми XML
index 76c6deceec4643cd387381a82627694ce2bca1bc..3631f214f5b665feba089c96136e348a3f8cd3f5 100644 (file)
@@ -100,14 +100,6 @@ sv:
         other: "Innehåller följande {{count}} sträckor:"
       no_bounding_box: Inga yttre gränser (bounding box) lagrades för detta changeset.
       show_area_box: Visa boxarea
-    changeset_navigation: 
-      all: 
-        next_tooltip: Nästa ändringsset
-        prev_tooltip: Föregående ändringsset
-      user: 
-        name_tooltip: Se redigeringar av {{user}}
-        next_tooltip: Nästa redigering av {{user}}
-        prev_tooltip: Föregående redigering av {{user}}
     common_details: 
       changeset_comment: "Kommentar:"
       edited_at: "Redigerad:"
@@ -125,6 +117,14 @@ sv:
         relation: Se relationen på en större karta
         way: Se sträckan på en större karta
       loading: Läser in...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Nästa ändringsset
+        prev_changeset_tooltip: Föregående ändringsset
+      user: 
+        name_changeset_tooltip: Se redigeringar av {{user}}
+        next_changeset_tooltip: Nästa redigering av {{user}}
+        prev_changeset_tooltip: Föregående redigering av {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} eller {{edit_link}}"
       download_xml: Laddda hem XML
index f80b7150136cf8ceffe4a6c439bfd409cfe64c69..65e50d4413927a58b47f6e2bcf162268566974b7 100644 (file)
@@ -41,9 +41,9 @@ te:
       relation: సంబంధం
       user: వాడుకరి
   browse: 
-    changeset_navigation: 
+    navigation: 
       user: 
-        name_tooltip: "{{user}} యొక్క మార్పులను చూడండి"
+        name_changeset_tooltip: "{{user}} యొక్క మార్పులను చూడండి"
     common_details: 
       changeset_comment: "వ్యాఖ్య:"
       edited_by: "మార్చినది:"
index 4736b5df778469251bb50ddefd9ba04a55e85de9..1909d145bab443096b4a239a3b6e3e1799f11e34 100644 (file)
@@ -109,14 +109,6 @@ uk:
         other: "містить {{count}} ліній:"
       no_bounding_box: Для цього набору змін межі не встановлено.
       show_area_box: Показати виділену ділянку
-    changeset_navigation: 
-      all: 
-        next_tooltip: Наступний набір змін
-        prev_tooltip: Попередній набір змін
-      user: 
-        name_tooltip: Переглянути правки {{user}}
-        next_tooltip: Наступні зміни {{user}}
-        prev_tooltip: Попередні зміни {{user}}
     common_details: 
       changeset_comment: "Коментар:"
       edited_at: "Змінено:"
@@ -134,6 +126,20 @@ uk:
         relation: Перегляд зв’язку на більшій мапі
         way: Перегляд лінії на більшій мапі
       loading: Завантаження…
+    navigation: 
+      all: 
+        next_changeset_tooltip: Наступний набір змін
+        next_node_tooltip: Наступна точка
+        next_relation_tooltip: Наступний зв'язок
+        next_way_tooltip: Наступна лінія
+        prev_changeset_tooltip: Попередній набір змін
+        prev_node_tooltip: Попередня точка
+        prev_relation_tooltip: Попередній зв’язок
+        prev_way_tooltip: Попередня лінія
+      user: 
+        name_changeset_tooltip: Переглянути правки {{user}}
+        next_changeset_tooltip: Наступні зміни {{user}}
+        prev_changeset_tooltip: Попередні зміни {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}} або {{edit_link}}"
       download_xml: Завантажити XML
@@ -218,6 +224,10 @@ uk:
       zoom_or_select: Збільшить масштаб або виберіть ділянку на мапі для перегляду
     tag_details: 
       tags: "Теґи:"
+      wiki_link: 
+        key: Сторінка вікі, що описує теґ {{key}}
+        tag: Сторінка вікі, що описує теґ {{key}}={{value}}
+      wikipedia_link: Стаття {{page}} у Вікіпедії
     timeout: 
       sorry: На жаль, дані для {{type}} з ідентифікатором {{id}}, занадто великі для отримання.
       type: 
@@ -548,6 +558,7 @@ uk:
         highway: 
           bridleway: Дорога для їзди верхи
           bus_stop: Автобусна зупинка
+          byway: Боковий шлях
           construction: Будівництво автомагітсралі
           cycleway: Велосипедна доріжка
           distance_marker: Верстовий камінь
@@ -556,6 +567,7 @@ uk:
           ford: Броди
           gate: Ворота
           living_street: Житлова зона
+          minor: Другорядна дорога
           motorway: Автомагістраль
           motorway_junction: В'їзд на автомагістраль
           motorway_link: З’єднання з автомагістраллю
@@ -564,15 +576,20 @@ uk:
           platform: Платформа
           primary: Головна дорога
           primary_link: З’єднання з головною дорогою
+          raceway: Гоночна траса
           residential: Жила вулиця
           road: Дорога
           secondary: Другорядна дорога
           secondary_link: З’єднання з другорядною дорогою
           service: Службова дорога
+          services: Придорожній сервіс
           steps: Стежка
           stile: Турнікет
           tertiary: Третьорядна дорога
+          track: Неасфальтований шлях.
           trail: Стежка
+          trunk: Шосе
+          trunk_link: З’їзд з/на шосе
           unclassified: Дорога без класифікації
           unsurfaced: Дорога без покриття
         historic: 
@@ -641,6 +658,7 @@ uk:
           pitch: Спортмайданчик
           playground: Дитячий майданчик
           recreation_ground: База відпочинку
+          slipway: Сліп (спуск на воду)
           sports_centre: Спортивний центр
           stadium: Стадіон
           swimming_pool: Басейн
@@ -841,6 +859,7 @@ uk:
           riverbank: Берег ріки
           stream: Струмок
           wadi: Пересохле русло
+          water_point: Пункт водопостачання
           waterfall: Водоспад
           weir: Ставок
   javascripts: 
@@ -856,6 +875,7 @@ uk:
       history_tooltip: Перегляд правок для цієї ділянки
       history_zoom_alert: Потрібно збільшити масштаб мапи, щоб побачити історію правок
   layouts: 
+    copyright: Авторські права &amp; Ліцензія
     donate: Підтримайте OpenStreetMap {{link}} у фонді оновлення обладнання.
     donate_link_text: пожертвування
     edit: Правка
@@ -1207,6 +1227,7 @@ uk:
           tram: 
             - Швидкісний трамвай
             - трамвай
+          trunk: Шосе
           tunnel: Тунель (пунктиром)
           unclassified: Дорога без класифікації
           unsurfaced: Дорога без покриття
@@ -1386,6 +1407,10 @@ uk:
       please login: Будь ласка, представтесь або {{create_user_link}}.
       remember: "Запам'ятати мене:"
       title: Представтесь
+    logout: 
+      heading: Вийти з OpenStreetMap
+      logout_button: Вийти
+      title: Вийти
     lost_password: 
       email address: "Адреса ел. пошти:"
       heading: Забули пароль?
index f777fdef7881a9ac4fb7db61059ad28d018d74ee..bc6809c9086163a9e2098ba6e7782eb3477e828b 100644 (file)
@@ -103,14 +103,6 @@ vi:
         other: "Có {{count}} lối sau:"
       no_bounding_box: Không lưu hộp bao của bộ thay đổi này.
       show_area_box: Hiện Hộp vùng
-    changeset_navigation: 
-      all: 
-        next_tooltip: Bộ thay đổi sau
-        prev_tooltip: Bộ thay đổi trước
-      user: 
-        name_tooltip: Xem các đóng góp của {{user}}
-        next_tooltip: Đóng góp sau của {{user}}
-        prev_tooltip: Đóng góp trước của {{user}}
     common_details: 
       changeset_comment: "Miêu tả:"
       edited_at: "Lúc Sửa đổi:"
@@ -128,6 +120,14 @@ vi:
         relation: Xem quan hệ trên bản đồ rộng hơn
         way: Xem lối trên bản đồ rộng hơn
       loading: Đang tải...
+    navigation: 
+      all: 
+        next_changeset_tooltip: Bộ thay đổi sau
+        prev_changeset_tooltip: Bộ thay đổi trước
+      user: 
+        name_changeset_tooltip: Xem các đóng góp của {{user}}
+        next_changeset_tooltip: Đóng góp sau của {{user}}
+        prev_changeset_tooltip: Đóng góp trước của {{user}}
     node: 
       download: "{{download_xml_link}}, {{view_history_link}}, hoặc {{edit_link}}"
       download_xml: Tải xuống XML
@@ -428,6 +428,7 @@ vi:
           car_wash: Tiệm Rửa Xe
           casino: Sòng bạc
           cinema: Rạp phim
+          club: Câu lạc bộ
           college: Trường Cao đẳng
           community_centre: Trung tâm Cộng đồng
           courthouse: Tòa
@@ -476,7 +477,9 @@ vi:
           telephone: Điện thoại Công cộng
           theatre: Nhà hát
           toilets: Vệ sinh
+          townhall: Thị sảnh
           university: Trường Đại học
+          vending_machine: Máy Bán hàng
           waste_basket: Thùng rác
           wifi: Điểm Truy cập Không dây
           youth_centre: Trung tâm Thanh niên
@@ -490,8 +493,12 @@ vi:
           dormitory: Ký túc xá
           entrance: Cửa vào
           garage: Ga ra
+          hospital: Tòa nhà Bệnh viện
           hotel: Khách sạn
           house: Nhà ở
+          industrial: Tòa nhà Công nghiệp
+          office: Tòa nhà Văn phòng
+          residential: Nhà ở
           school: Nhà trường
           shop: Tiệm
           stadium: Sân vận động
@@ -499,16 +506,20 @@ vi:
           tower: Tháp
           train_station: Nhà ga
           university: Tòa nhà Đại học
+          "yes": Tòa nhà
         highway: 
           bridleway: Đường Cưỡi ngựa
           bus_stop: Chỗ Đậu Xe buýt
           construction: Đường Đang Xây
           cycleway: Đường Xe đạp
+          distance_marker: Cây số
           footway: Đường bộ
           gate: Cổng
+          living_street: Đường Hàng xóm
           minor: Đường Nhỏ
           motorway: Đường Cao tốc
           motorway_junction: Ngã tư Đường Cao tốc
+          motorway_link: Đường Cao tốc
           path: Lối
           pedestrian: Đường bộ Lớn
           primary: Đường Chính
@@ -519,10 +530,14 @@ vi:
           secondary: Đường Lớn
           secondary_link: Đường Lớn
           service: Đường phụ
+          services: Dịch vụ Dọc đường Cao tốc
           steps: Cầu thang
+          tertiary: Đường Lớn
+          track: Đường mòn
           trail: Đường mòn
           trunk: Xa lộ
           trunk_link: Xa lộ
+          unclassified: Đường Không Phân loại
           unsurfaced: Đường Không Lát
         historic: 
           archaeological_site: Khu vực Khảo cổ
@@ -612,6 +627,7 @@ vi:
           valley: Thung lũng
           volcano: Núi lửa
           water: Nước
+          wetlands: Đầm lầy
           wood: Rừng
         place: 
           airport: Sân bay
@@ -656,6 +672,7 @@ vi:
           computer: Tiệm Máy tính
           confectionery: Tiệm Kẹo
           convenience: Tiệm Tập hóa
+          cosmetics: Tiệm Mỹ phẩm
           drugstore: Nhà thuốc
           fashion: Tiệm Thời trang
           fish: Tiệm Cá
@@ -673,6 +690,7 @@ vi:
           music: Tiệm Nhạc
           newsagent: Tiệm Báo
           optician: Tiệm Kính mắt
+          organic: Tiệm Thực phẩm Hữu cơ
           photo: Tiệm Rửa Hình
           salon: Tiệm Làm tóc
           shoes: Tiệm Giày
@@ -683,15 +701,23 @@ vi:
           travel_agency: Văn phòng Du lịch
           video: Tiệm Phim
         tourism: 
+          alpine_hut: Túp lều Trên Núi
           artwork: Tác phẩm Nghệ thuật
           attraction: Nơi Du lịch
           bed_and_breakfast: Nhà trọ
           cabin: Túp lều
           camp_site: Nơi Cắm trại
+          chalet: Nhà ván
+          hostel: Nhà trọ
           hotel: Khách sạn
           information: Thông tin
+          lean_to: Nhà chái
+          motel: Khách sạn Dọc đường
           museum: Bảo tàng
+          picnic_site: Bàn ăn Ngoài trời
+          theme_park: Công viên Giải trí
           valley: Thung lũng
+          viewpoint: Thắng cảnh
           zoo: Vườn thú
         waterway: 
           canal: Kênh
@@ -718,6 +744,7 @@ vi:
       history_tooltip: Xem danh sách sửa đổi trong khu vực này
       history_zoom_alert: Hãy phóng to hơn để xem lịch sử sửa đổi
   layouts: 
+    copyright: Bản quyền &amp; Giấy phép
     donate: Hỗ trợ OpenStreetMap bằng cách {{link}} cho Quỹ Nâng cấp Phần cứng.
     donate_link_text: quyên góp
     edit: Sửa đổi
@@ -831,6 +858,9 @@ vi:
       title: Đọc thư
       to: Tới
       unread_button: Đánh dấu là chưa đọc
+      wrong_user: Bạn đã đăng nhập dùng tài khoản “{{user}}” nhưng vừa yêu cầu đọc một thư không được gửi từ hay đến bạn. Xin hãy đăng nhập với nhận diện chính xác để đọc nó.
+    reply: 
+      wrong_user: Bạn đã đăng nhập dùng tài khoản “{{user}}” nhưng vừa yêu cầu trả lời một thư không được gửi đến bạn. Xin hãy đăng nhập với nhận diện chính xác để trả lời.
     sent_message_summary: 
       delete_button: Xóa
   notifier: 
@@ -1131,6 +1161,7 @@ vi:
       count_points: "{{count}} nốt"
       edit: sửa đổi
       edit_map: Sửa đổi Bản đồ
+      identifiable: NHẬN RA ĐƯỢC
       in: trong
       map: bản đồ
       more: thêm
@@ -1138,6 +1169,7 @@ vi:
       private: RIÊNG
       public: CÔNG KHAI
       trace_details: Xem Chi tiết Tuyến đường
+      trackable: THEO DÕI ĐƯỢC
       view_map: Xem Bản đồ
     trace_form: 
       description: Miêu tả
index 7c558f4047dfaefe21322298e3d418f734d11e8c..b7de8ed0d857bc35ad71f3729f22f38ac4092eb2 100644 (file)
@@ -93,14 +93,6 @@ zh-TW:
         other: 有下列 {{count}} 個路徑:
       no_bounding_box: 這個變更組合沒有儲存綁定方塊。
       show_area_box: 顯示區域方塊
-    changeset_navigation: 
-      all: 
-        next_tooltip: 下一個變更組合
-        prev_tooltip: 上一個變更組合
-      user: 
-        name_tooltip: 檢視由 {{user}} 進行的編輯
-        next_tooltip: 下一個 {{user}} 的編輯
-        prev_tooltip: 上一個 {{user}} 的編輯
     common_details: 
       edited_at: 編輯於:
       edited_by: 編輯者:
@@ -117,6 +109,14 @@ zh-TW:
         relation: 在較大的地圖檢視關係
         way: 在較大的地圖檢視路徑
       loading: 正在載入...
+    navigation: 
+      all: 
+        next_changeset_tooltip: 下一個變更組合
+        prev_changeset_tooltip: 上一個變更組合
+      user: 
+        name_changeset_tooltip: 檢視由 {{user}} 進行的編輯
+        next_changeset_tooltip: 下一個 {{user}} 的編輯
+        prev_changeset_tooltip: 上一個 {{user}} 的編輯
     node: 
       download: "{{download_xml_link}} 或 {{view_history_link}}"
       download_xml: 下載 XML
index 39c2cc58a783300984350a2c5ae254789ce71f7e..1d9325fd18fde0fbc3da8517af90dae1c55acdb8 100644 (file)
@@ -44,14 +44,42 @@ OpenLayers/Popup/FramedCloud.js
 OpenLayers/Projection.js
 OpenLayers/Console.js
 OpenLayers/Lang.js
+OpenLayers/Lang/ar.js
+OpenLayers/Lang/be-tarask.js
+OpenLayers/Lang/bg.js
+OpenLayers/Lang/br.js
 OpenLayers/Lang/ca.js
+OpenLayers/Lang/cs-CZ.js
+OpenLayers/Lang/da-DK.js
 OpenLayers/Lang/de.js
+OpenLayers/Lang/el.js
 OpenLayers/Lang/en.js
 OpenLayers/Lang/es.js
+OpenLayers/Lang/fi.js
 OpenLayers/Lang/fr.js
+OpenLayers/Lang/fur.js
+OpenLayers/Lang/gl.js
+OpenLayers/Lang/gsw.js
+OpenLayers/Lang/hr.js
+OpenLayers/Lang/hsb.js
+OpenLayers/Lang/hu.js
+OpenLayers/Lang/ia.js
+OpenLayers/Lang/is.js
 OpenLayers/Lang/it.js
+OpenLayers/Lang/ja.js
+OpenLayers/Lang/km.js
+OpenLayers/Lang/ksh.js
+OpenLayers/Lang/nb.js
+OpenLayers/Lang/nds.js
 OpenLayers/Lang/nl.js
+OpenLayers/Lang/nn.js
+OpenLayers/Lang/pt.js
 OpenLayers/Lang/pt-BR.js
+OpenLayers/Lang/ru.js
+OpenLayers/Lang/sk.js
+OpenLayers/Lang/sv-SE.js
+OpenLayers/Lang/te.js
+OpenLayers/Lang/vi.js
 OpenLayers/Lang/zh-CN.js
 OpenLayers/Lang/zh-TW.js
 
index ca06092cc1c2b69cd880cf19c1d197f5f4e67bc2..afd056b542cf6d35222e92e16b7c815f4ca9ffcd 100644 (file)
@@ -132,6 +132,7 @@ br:
   option_layer_ooc_7th: "Istor UK : 7vet"
   option_layer_ooc_npe: Istor UK NPE
   option_layer_ooc_scotland: "R-U istorel : Skos"
+  option_layer_os_streetview: "R-U : OS StreetView"
   option_layer_streets_haiti: "Haiti: anvioù ar straedoù"
   option_layer_tip: Dibab an drekleur da ziskwel
   option_limitways: Kas ur c'hemenn pa vez karget kalz a roadennoù pounner
@@ -195,6 +196,7 @@ br:
   tags_backtolist: Distreiñ d'ar roll
   tags_descriptions: Deskrivadurioù '$1'
   tags_findatag: Kavout un tikedenn
+  tags_findtag: Kavout un tikedenn
   tags_matching: Tikedennoù brudet hag a glot gant '$1'
   tags_typesearchterm: "Lakait ar ger da glask :"
   tip_addrelation: Ouzhpennañ d'un darempred
index 1fa4426b162749ef611b3a44f41345ec44f0de1d..528c4efac184217ced13395cd9c424af8c5e3eaa 100644 (file)
@@ -8,6 +8,7 @@ da:
   a_way: $1 en vej
   action_addpoint: tilføjer et punkt til enden af en vej
   action_cancelchanges: afbryder ændringer af
+  action_changeway: ændringer til en vej
   action_createparallel: skaber parallelle veje
   action_createpoi: lave et POI (interessant punkt)
   action_deletepoint: sletter et punkt
@@ -24,32 +25,47 @@ da:
   action_waytags: sætter tags på en vej
   advanced: Avanceret
   advanced_close: Luk Changeset
+  advanced_history: Vej historie
+  advanced_inspector: Inspector
   advanced_maximise: Maksimer vinduet
   advanced_minimise: Minimer vindue
   advanced_parallel: Parallel vej
+  advanced_tooltip: Avanceret redigerings aktioner
   advanced_undelete: Genopret
+  advice_bendy: For krum til at rette ud (SHIFT at tvinge)
+  advice_conflict: Server konflikt - det kan være nødvendigt, at prøve at gemme igen
   advice_deletingpoi: Sletning af POI (Z for at fortryde)
   advice_deletingway: Sletter vej (Z for at fortryde)
+  advice_microblogged: Opdateret din $1 status
+  advice_nocommonpoint: Vejene deler ikke et fælles punkt
+  advice_revertingpoi: Vende tilbage til sidst gemte POI (Z for at fortryde)
   advice_revertingway: Vender tilbage til sidst gemte vej (Z for at fortryde)
+  advice_tagconflict: Tags matcher ikke - venligst kontrollere (Z for at fortryde)
   advice_toolong: For lang for låse op - venligst opdel i kortere veje
   advice_uploadempty: Intet at uploade
+  advice_uploadfail: Upload stoppet
   advice_uploadsuccess: Alle data uploadet succesfuldt
   advice_waydragged: Way flyttet (Z for at fortryde)
   cancel: Afbryd
   closechangeset: Lukker Changeset
+  conflict_download: Download deres version
   conflict_overwrite: Overskriv deres version
   conflict_poichanged: Siden du begyndte at redigere, har en anden ændret punkt $ 1 $ 2.
   conflict_relchanged: Siden du begyndte at redigere, har en anden ændret relation $1 $2.
+  conflict_visitpoi: Klik på 'OK' for at vise punkt.
   conflict_visitway: Klik på 'Ok' for at vise vejen.
   conflict_waychanged: Siden du begyndte at redigere, har en anden ændret vej $1 $2.
   createrelation: Lav en ny relation
   custom: "Custom:"
   delete: Slet
   deleting: sletter
+  drag_pois: Træk og slip punkter af interesse (POI)
   editinglive: Live redigering
   editingoffline: Redigering offline
   emailauthor: \n\nVenligst send en e-mail (på engelsk) til richard\@systemeD.net med en fejlrapport, og forklar hvad du gjorde da det skete.
+  error_anonymous: Du kan ikke kontakte en anonym Mapper.
   error_connectionfailed: Beklager - forbindelsen til OpenStreetMap-serveren fejlede, eventuelle nye ændringer er ikke blevet gemt. \n\nVil du prøve igen?
+  error_microblog_long: "Posting til $1 fejlede: \nHTTP-kode: $2 \nFejlmeddelelse: $3 \n$1 fejl: $ 4"
   error_nopoi: Fandt ikke POI-et, så det er ikke muligt at fortryde. (Måske er den ikke på skærmen længere?)
   error_nosharedpoint: Vejene $1 og $2 deler ikke noget punkt længere, så det er ikke muligt at fortryde delingen.
   error_noway: Fandt ikke vejen $1 så det er ikke muligt at fortryde. (Måske er den ikke på skærmen længere?)
@@ -57,49 +73,70 @@ da:
   existingrelation: Føj til en eksisterende relation
   findrelation: Find en relation som indeholder
   gpxpleasewait: Vent venligst mens GPX sporet behandles.
+  heading_drawing: Tegning
   heading_introduction: Indledning
+  heading_pois: Kom godt i gang
+  heading_quickref: Hurtig reference
   heading_surveying: Undersøge
+  heading_tagging: Tagging
+  heading_troubleshooting: Fejlfinding
   help: Hjælp
   hint_drawmode: klik for at tilføje punkt\ndobbeltklik eller enter\nfor at afslutte linie
+  hint_latlon: "breddegrad (lat) $1 \nlængdegrad (lon) $2"
   hint_loading: henter veje
   hint_overendpoint: over endepunkt\nklik for at forbinde\nshift+klik for at slå sammen til en
   hint_overpoint: over punkt\nklik for at forbinde
   hint_pointselected: punkt valgt\n(shift+klik punktet for at\nstarte en ny linie)
   hint_saving: gemmer data
+  hint_saving_loading: loader/gemmer data
   inspector: Inspektor
   inspector_duplicate: Duplikat af
   inspector_in_ways: I veje
+  inspector_latlon: "Breddegrad (Lat) $1 \nLængdegrad (Lon) $2"
   inspector_locked: Låst
+  inspector_node_count: ($1 gange)
   inspector_not_in_any_ways: Ikke på nogen veje (POI)
   inspector_unsaved: Ikke gemt
   inspector_uploading: (Uploading)
+  inspector_way_connects_to: Forbinder til $1 veje
   inspector_way_connects_to_principal: Forbinder til $1 $2 og $3 andre $4
+  inspector_way_nodes: $1 knudepunkter
   inspector_way_nodes_closed: $1 noder (lukkede)
+  loading: Loading ...
   login_pwd: "Password:"
   login_retry: Dit login blev ikke genkendt. Prøv venligst igen.
   login_title: Kunne ikke logge ind
   login_uid: "Brugernavn:"
   mail: Post
+  more: Mere
   newchangeset: "Prøv venligst igen: Potlatch vil starte et nyt changeset.."
   "no": Nej
   nobackground: Ingen baggrund
   norelations: Ingen relationer i området på skærmen
+  offset_broadcanal: Bred kanal træksti
   offset_choose: Vælg offset (m)
   offset_dual: Dobbelt vej (D2)
+  offset_motorway: Motorvej (D3)
+  offset_narrowcanal: Smal kanalen træksti
   ok: Ok
   openchangeset: Åbner Changeset
   option_custompointers: Brug pen- og håndvisere
+  option_external: "Ekstern launch:"
   option_fadebackground: Fjern baggrund
   option_layer_cycle_map: OSM - cykel kort
   option_layer_maplint: OSM - Maplint (fejl)
   option_layer_nearmap: "Australien: NearMap"
   option_layer_ooc_25k: "UK historisk: 1:25 k"
+  option_layer_ooc_7th: "UK historisk: 7."
+  option_layer_ooc_npe: "UK historisk: NPE"
+  option_layer_ooc_scotland: "UK historisk: Skotland"
   option_layer_os_streetview: "UK: OS StreetView"
   option_layer_streets_haiti: "Haiti: gadenavne"
   option_layer_tip: Vælg baggrunden til visning
   option_limitways: Advar ved loading af masser af data
   option_microblog_id: "Microblog navn:"
   option_microblog_pwd: "Microblog password:"
+  option_noname: Fremhæv unavngivene veje
   option_photo: "Foto KML:"
   option_thinareas: Brug tyndere linjer for områder
   option_thinlines: Brug tynde linier uanset skalering
@@ -108,8 +145,10 @@ da:
   point: Punkt
   preset_icon_airport: Lufthavn
   preset_icon_bar: Bar
+  preset_icon_bus_stop: Busstoppested
   preset_icon_cafe: Café
   preset_icon_cinema: Biograf
+  preset_icon_convenience: Dagligvare butik
   preset_icon_disaster: Haiti bygning
   preset_icon_fast_food: Fast food
   preset_icon_ferry_terminal: Færge
@@ -118,34 +157,46 @@ da:
   preset_icon_hotel: Hotel
   preset_icon_museum: Museum
   preset_icon_parking: Parkering
+  preset_icon_pharmacy: Apotek
   preset_icon_place_of_worship: Sted for tilbedelse
   preset_icon_police: Politistation
   preset_icon_post_box: Postkasse
+  preset_icon_pub: Pub
   preset_icon_recycling: Genbrug
+  preset_icon_restaurant: Restaurant
   preset_icon_school: Skole
   preset_icon_station: Togstation
+  preset_icon_supermarket: Supermarked
   preset_icon_taxi: Taxaholdeplads
   preset_icon_telephone: Telefon
+  preset_icon_theatre: Teater
   preset_tip: Vælg fra menuen af preset tags, der beskriver $1
   prompt_addtorelation: Tilføj $1 til en relation
   prompt_changesetcomment: "Indtast en beskrivelse af dine ændringer:"
+  prompt_closechangeset: Luk Changeset $1
   prompt_createparallel: Opret parallel vej
   prompt_editlive: Edit live
+  prompt_editsave: Rediger med gem
   prompt_helpavailable: Ny bruger? Kig nederst til venstre for at få hjælp.
   prompt_launch: Start ekstern URL
+  prompt_live: I live-mode, vil hver punkt du ændre, straks blive gemt i OpenStreetMap databasen - anbefales ikke til begyndere. Er du sikker?
   prompt_manyways: Dette område er meget detaljerede, og vil tage lang tid at hente. Foretrækker du at zoome ind?
+  prompt_microblog: Post til $1 ($2 venstre)
   prompt_revertversion: "Ret tilbage til tidligere lagret version:"
   prompt_savechanges: Gem ændringer
   prompt_taggedpoints: Nogle af punktene på denne vej har tags eller er i en relation. Vil du virkelig slette?
   prompt_track: Overfør dine GPS-spor til (låste) veje for redigering.
+  prompt_unlock: Klik for at låse op
   prompt_welcome: Velkommen til OpenStreetMap!
   retry: Prøv igen
   revert: Fortryd
   save: Gem
   tags_backtolist: Tilbage til listen
   tags_descriptions: Beskrivelser af '$ 1'
+  tags_findatag: Find et tag
   tags_findtag: Find tag
   tags_matching: Populære tags matchende '$1'
+  tags_typesearchterm: "Skriv et ord til at lede efter:"
   tip_addrelation: Føj til en relation
   tip_addtag: Tilføj et tag
   tip_alert: Der opstod en fejl, klik for detaljer
@@ -164,9 +215,13 @@ da:
   tip_tidy: Nydeliggøre vejpunkter (T)
   tip_undo: Fortryd $1 (Z)
   uploading: Overfører ...
+  uploading_deleting_pois: Sletning af POI'er
   uploading_deleting_ways: Sletter veje
   uploading_poi: Uploading POI $1
+  uploading_poi_name: Uploader POI $1, $2
+  uploading_relation: Uploader relation $1
   uploading_relation_name: Uploading relation $1, $2
+  uploading_way: Uploader vej $1
   uploading_way_name: Uploading vej$ 1, $ 2
   warning: Advarsel!
   way: Vej
index 2d8073a038b10868d32962b704da1dc94528af9f..b28a472c99b55b2080e51cb9edcd21dfe1bb37a9 100644 (file)
@@ -32,6 +32,7 @@ dsb:
   advanced_tooltip: Rozšyrjone wobźěłowańske akcije
   advanced_undelete: Wótnowiś
   advice_bendy: Pśekśiwy za zrownanje (UMSCH za wunuźenje)
+  advice_conflict: Serwerowy konflikt - móžno, až musyš znowego wopytaś składowaś
   advice_deletingpoi: Lašujo se dypk zajma (Z za anulěrowanje)
   advice_deletingway: Lašujo se puś (Z za anulěrowanje)
   advice_microblogged: Twój status $1 jo se zaktualizěrował
@@ -88,6 +89,7 @@ dsb:
   hint_saving: składuju se daty
   hint_saving_loading: zacytuju se/składuju se daty
   inspector: Inspektor
+  inspector_duplicate: Duplikat wót
   inspector_in_ways: Na puśach
   inspector_latlon: "Šyrina $1\nDlinina $2"
   inspector_locked: Zastajony
@@ -99,6 +101,7 @@ dsb:
   inspector_way_connects_to_principal: Zwězuje z {{PLURAL|one=objektom|two=$1 objektoma|few=$1 objektami|other=$1 objektami}} $2 a {{PLURAL|one=hynakšym objektom|two=$3 hynakšyma objektoma|few=$3 hynakšymi objektami|other=$3 hynakšymi objektami}} $4
   inspector_way_nodes: $1 sukow
   inspector_way_nodes_closed: $1 sukow (zacynjonych)
+  loading: Zacytujo se...
   login_pwd: "Gronidło:"
   login_retry: Twójo pśizjawjenje njejo se spóznało. Pšosym wopytaj hyšći raz.
   login_title: Pśizjawjenje njejo móžno było
@@ -125,6 +128,9 @@ dsb:
   option_layer_ooc_25k: "Wjelika Britaniska historiski: 1:25k"
   option_layer_ooc_7th: "Wjelika Britaniska historiski: 7th"
   option_layer_ooc_npe: "Wjelika Britaniska historiski: NPE"
+  option_layer_ooc_scotland: "Zjadnośone kralojstwo historiske: Šotiska"
+  option_layer_os_streetview: "Zjadnośone kralojstwo: OS StreetView"
+  option_layer_streets_haiti: "Haiti: drozne mjenja"
   option_layer_tip: Slězynu wubraś
   option_limitways: Warnowaś, gaž wjele datow se zacytujo
   option_microblog_id: "Mě mikrobloga:"
@@ -142,6 +148,7 @@ dsb:
   preset_icon_cafe: Kafejownja
   preset_icon_cinema: Kino
   preset_icon_convenience: Minimark
+  preset_icon_disaster: Haiti twarjenje
   preset_icon_fast_food: Pójědankarnja
   preset_icon_ferry_terminal: Prama
   preset_icon_fire_station: Wognjarnja
@@ -183,6 +190,12 @@ dsb:
   retry: Znowego wopytaś
   revert: Pśewobrośiś
   save: Składowaś
+  tags_backtolist: Slědk k lisćinje
+  tags_descriptions: Wopisanja wót '$1'
+  tags_findatag: Atribut namakaś
+  tags_findtag: Atribut namakaś
+  tags_matching: Woblubowane atributy, kótarež '$1' wótpowěduju
+  tags_typesearchterm: "Zapódaj pytański wuraz:"
   tip_addrelation: Relaciji pśidaś
   tip_addtag: Nowy atribut pśidaś
   tip_alert: Zmólka jo nastała - klikni za drobnostki
index 5ef926f6a223788fb457662c781f8c1edca185f6..9da6d565e83597da26932edfda80b88137d210fc 100644 (file)
@@ -139,6 +139,7 @@ en:
   option_layer_ooc_npe: "UK historic: NPE"
   option_layer_ooc_scotland: "UK historic: Scotland"
   option_layer_os_streetview: "UK: OS StreetView"
+  option_layer_surrey_air_survey: "UK: Surrey Air Survey"
   option_layer_osmarender: OSM - Osmarender
   option_layer_tip: Choose the background to display
   option_layer_yahoo: Yahoo!
index 77351131f3a9c2dedc0b29e2e2deb96358f88323..faaac413eea26ef13acd7996e7848960a46703fb 100644 (file)
@@ -33,16 +33,16 @@ uk:
   advanced_parallel: Паралельна лінія
   advanced_tooltip: Розширені дії з редагування
   advanced_undelete: Відновити
-  advice_bendy: Дуже вигнуто (SHIFT — випрямити)
-  advice_conflict: Конфлікт на сервері — можливо, потрібно зберегти знов
-  advice_deletingpoi: Вилучення об’єкта (POI) (Z — відміна)
-  advice_deletingway: Вилучення лінії (Z — відміна)
+  advice_bendy: Дуже вигнуто (SHIFT — спрямити)
+  advice_conflict: Конфлікт на сервері — можливо, потрібно зберегти знов
+  advice_deletingpoi: Вилучення об’єкта (POI) (Z — відміна)
+  advice_deletingway: Вилучення лінії (Z — відміна)
   advice_microblogged: Оновлено ваш статус $1
   advice_nocommonpoint: Лінії не мають спільну точку
   advice_revertingpoi: Повернення до останнього збереженого об’єкту (POI) (Z для відміни)
-  advice_revertingway: Повернення до останньої збереженої лінії (Z — відміна)
-  advice_tagconflict: Теґи не співпадають — перевірте (Z для відміни)
-  advice_toolong: Занадто довга лінія — розділіть її на коротші
+  advice_revertingway: Повернення до останньої збереженої лінії (Z — відміна)
+  advice_tagconflict: Теґи не збігаються — перевірте (Z для відміни)
+  advice_toolong: Занадто довга лінія — розділіть її на коротші
   advice_uploadempty: Нема чого завантажувати на сервер
   advice_uploadfail: Завантаження даних на сервер зупинено
   advice_uploadsuccess: Всі дані успішно завантажено на сервер
@@ -65,15 +65,15 @@ uk:
   editingoffline: Редагування із збереженням
   emailauthor: "\\n\\nБудь ласка, відправте повідомлення про помилку на електронну пошту: richard\\@systemeD.net, із зазначенням того, які дії ви робили."
   error_anonymous: Ви не можете зв'язатись з анонімним картографом.
-  error_connectionfailed: Вибачте — з’єднання з сервером OpenStreetMap розірвано. Усі поточні зміни не були збережені.\n\nСпробувати ще раз?
+  error_connectionfailed: Вибачте — з’єднання з сервером OpenStreetMap розірвано. Усі поточні зміни не були збережені.\n\nСпробувати ще раз?
   error_microblog_long: "Надсилання до $1 неможливе:\nHTTP код: $2\nПовідомлення про помилку: $3\n$1 помилка: $4"
-  error_nopoi: Не можливо знайти об’єкт (POI) (можливо ви зсунулися вбік?) — не можу відмінити.
+  error_nopoi: Не можливо знайти об’єкт (POI) (можливо ви зсунулися вбік?) — не можу відмінити.
   error_nosharedpoint: Лінії $1 і $2 більше не містять спільних точок, тому не можна скасувати розподілення.
   error_noway: Лінія $1 не знайдена (можливо ви зсунулися в бік?), тому не можна скасувати.
-  error_readfailed: Вибачте — сервер OpenStreetMap не відповідає на запити про дані. \n\nСпробувати ще раз?
+  error_readfailed: Вибачте — сервер OpenStreetMap не відповідає на запити про надання даних.\n\nСпробувати ще раз?
   existingrelation: Додати до існуючого зв’язку
   findrelation: Знайти зв’язки, що містять
-  gpxpleasewait: Зачекайте — обробка GPX-треку.
+  gpxpleasewait: Зачекайте — обробка GPX-треку.
   heading_drawing: Креслення
   heading_introduction: Вступ
   heading_pois: Початок роботи
@@ -125,14 +125,15 @@ uk:
   option_custompointers: Включити курсори пера і руки
   option_external: "Зовнішній запуск:"
   option_fadebackground: Бляклий фон
-  option_layer_cycle_map: OSM — вело.мапа
-  option_layer_maplint: OSM — Maplint (помилки)
+  option_layer_cycle_map: OSM — вело.мапа
+  option_layer_maplint: OSM — Maplint (помилки)
   option_layer_mapnik: OSM — Mapnik
   option_layer_nearmap: "Австралія: NearMap"
   option_layer_ooc_25k: "В.БРИТАНІЯ істор.: 1:25k"
   option_layer_ooc_7th: "В.БРИТАНІЯ істор.: 1:7000"
   option_layer_ooc_npe: "В.БРИТАНІЯ істор.: NPE"
-  option_layer_ooc_scotland: "Великобританія, історичний: Шотландія"
+  option_layer_ooc_scotland: "В.БРИТАНІЯ істор.: Шотландія"
+  option_layer_os_streetview: "В.БРИТАНІЯ: OS StreetView"
   option_layer_osmarender: OSM — Osmarender
   option_layer_streets_haiti: "Гаїті: назви вулиць"
   option_layer_tip: Оберіть фон
@@ -197,14 +198,15 @@ uk:
   tags_backtolist: Повернутись до списку
   tags_descriptions: Опис '$1'
   tags_findatag: Шукати теґ
+  tags_findtag: Знайти теґ
   tags_matching: Популярні теґи, що підходять "$1"
   tags_typesearchterm: "Введіть слово для пошуку:"
   tip_addrelation: Додати до зв’язку
   tip_addtag: Додати теґ
-  tip_alert: Помилка — клацніть, щоб дізнатись подробиці
-  tip_anticlockwise: Замкнута лінія проти годинникової стрілки — змінити напрямок
-  tip_clockwise: Замкнута лінія за годинниковою стрілкою — змінити напрямок
-  tip_direction: Напрямок лінії — змінити на протилежний
+  tip_alert: Помилка — клацніть, щоб дізнатись подробиці
+  tip_anticlockwise: Замкнена лінія проти годинникової стрілки — змінити напрямок
+  tip_clockwise: Замкнена лінія за годинниковою стрілкою — змінити напрямок
+  tip_direction: Напрямок лінії — змінити на протилежний
   tip_gps: Показати GPS-треки (G)
   tip_noundo: Відміняти нічого
   tip_options: Налаштування (вибір фону мапи)
index 5975f48b7ed69bafab2a190cdda7efb6819810c7..d12bfbb5ae6391396f23c19db1f41a4a279f5602 100644 (file)
@@ -110,6 +110,8 @@ ActionController::Routing::Routes.draw do |map|
   map.root :controller => 'site', :action => 'index'
   map.connect '/', :controller => 'site', :action => 'index'
   map.connect '/edit', :controller => 'site', :action => 'edit'
+  map.connect '/copyright', :controller => 'site', :action => 'copyright'
+  map.connect '/copyright/:copyright_locale', :controller => 'site', :action => 'copyright'
   map.connect '/history', :controller => 'changeset', :action => 'list'
   map.connect '/history/feed', :controller => 'changeset', :action => 'list', :format => :atom
   map.connect '/export', :controller => 'site', :action => 'export'
diff --git a/config/wiki_pages.yml b/config/wiki_pages.yml
new file mode 100644 (file)
index 0000000..3797376
--- /dev/null
@@ -0,0 +1,1450 @@
+# THIS FILE IS AUTOGENERATED WITH THE script/misc/update-wiki-pages
+# PROGRAM DO NOT MANUALLY EDIT IT
+
+---
+cz:
+  key:
+    historic: Cz:Key:historic
+    railway: Cz:Key:railway
+  tag:
+    route=trolleybus: Cz:Tag:route=trolleybus
+da:
+  key:
+    maxheight: Da:Key:maxheight
+  tag:
+    highway=tertiary: Da:Tag:highway=tertiary
+    highway=track: Da:Tag:highway=track
+    route=ferry: Da:Tag:route=ferry
+de:
+  key:
+    abutters: DE:Key:abutters
+    access: DE:Key:access
+    addr: DE:Key:addr
+    aerialway: DE:Key:aerialway
+    aeroway: DE:Key:aeroway
+    amenity: DE:Key:amenity
+    barrier: DE:Key:barrier
+    basin: DE:Key:basin
+    bridge: DE:Key:bridge
+    building: DE:Key:building
+    comment: DE:Key:comment
+    crossing: DE:Key:crossing
+    cycleway: DE:Key:cycleway
+    denomination: DE:Key:denomination
+    description: DE:Key:description
+    disused: DE:Key:disused
+    drink: DE:Key:drink
+    embankment: DE:Key:embankment
+    fixme: DE:Key:fixme
+    geological: DE:Key:geological
+    hazmat: DE:Key:hazmat
+    highway: DE:Key:highway
+    historic: DE:Key:historic
+    incline: DE:Key:incline
+    landuse: DE:Key:landuse
+    lanes: DE:Key:lanes
+    layer: DE:Key:layer
+    leisure: DE:Key:leisure
+    lit: DE:Key:lit
+    man_made: DE:Key:man made
+    maxheight: DE:Key:maxheight
+    maxspeed: DE:Key:maxspeed
+    military: DE:Key:military
+    mtb:scale: DE:Key:mtb:scale
+    name: DE:Key:name
+    natural: DE:Key:natural
+    noexit: DE:Key:noexit
+    note: DE:Key:note
+    oneway: DE:Key:oneway
+    opening_hours: DE:Key:opening hours
+    operator: DE:Key:operator
+    osmc:symbol: DE:Key:osmc:symbol
+    place: DE:Key:place
+    power: DE:Key:power
+    power_rating: DE:Key:power rating
+    railway: DE:Key:railway
+    route: DE:Key:route
+    sac_scale: DE:Key:sac scale
+    service: DE:Key:service
+    shop: DE:Key:shop
+    smoothness: DE:Key:smoothness
+    sport: DE:Key:sport
+    step_count: DE:Key:step count
+    surface: DE:Key:surface
+    tourism: DE:Key:tourism
+    tracktype: DE:Key:tracktype
+    trail_visibility: DE:Key:trail visibility
+    tunnel: DE:Key:tunnel
+    voltage: DE:Key:voltage
+    waterway: DE:Key:waterway
+    wheelchair: DE:Key:wheelchair
+    wires: DE:Key:wires
+    wood: DE:Key:wood
+  tag:
+    amenity=atm: DE:Tag:amenity=atm
+    amenity=baby_hatch: DE:Tag:amenity=baby hatch
+    amenity=bank: DE:Tag:amenity=bank
+    amenity=bench: DE:Tag:amenity=bench
+    amenity=bus_station: DE:Tag:amenity=bus station
+    amenity=clock: DE:Tag:amenity=clock
+    amenity=compressed_air: DE:Tag:amenity=compressed air
+    amenity=drinking_water: DE:Tag:amenity=drinking water
+    amenity=fuel: DE:Tag:amenity=fuel
+    amenity=grit_bin: DE:Tag:amenity=grit bin
+    amenity=hospital: DE:Tag:amenity=hospital
+    amenity=nightclub: DE:Tag:amenity=nightclub
+    amenity=parking: DE:Tag:amenity=parking
+    amenity=pharmacy: DE:Tag:amenity=pharmacy
+    amenity=place_of_worship: DE:Tag:amenity=place of worship
+    amenity=post_box: DE:Tag:amenity=post box
+    amenity=pub: DE:Tag:amenity=pub
+    amenity=recycling: DE:Tag:amenity=recycling
+    amenity=register_office: DE:Tag:amenity=register office
+    amenity=school: DE:Tag:amenity=school
+    amenity=toilets: DE:Tag:amenity=toilets
+    amenity=vending_machine: DE:Tag:amenity=vending machine
+    amenity=waste_basket: DE:Tag:amenity=waste basket
+    barrier=cycle_barrier: DE:Tag:barrier=cycle barrier
+    boundary=water_protection_area: DE:Tag:boundary=water protection area
+    club-mate=yes: DE:Tag:club-mate=yes
+    highway=bus_stop: DE:Tag:highway=bus stop
+    highway=crossing: DE:Tag:highway=crossing
+    highway=cycleway: DE:Tag:highway=cycleway
+    highway=emergency_access_point: DE:Tag:highway=emergency access point
+    highway=footway: DE:Tag:highway=footway
+    highway=living_street: DE:Tag:highway=living street
+    highway=mini_roundabout: DE:Tag:highway=mini roundabout
+    highway=motorway: DE:Tag:highway=motorway
+    highway=motorway_link: DE:Tag:highway=motorway link
+    highway=path: DE:Tag:highway=path
+    highway=pedestrian: DE:Tag:highway=pedestrian
+    highway=primary: DE:Tag:highway=primary
+    highway=residential: DE:Tag:highway=residential
+    highway=road: DE:Tag:highway=road
+    highway=secondary: DE:Tag:highway=secondary
+    highway=service: DE:Tag:highway=service
+    highway=services: DE:Tag:highway=services
+    highway=steps: DE:Tag:highway=steps
+    highway=tertiary: DE:Tag:highway=tertiary
+    highway=track: DE:Tag:highway=track
+    highway=traffic_signals: DE:Tag:highway=traffic signals
+    highway=trunk: DE:Tag:highway=trunk
+    highway=trunk_link: DE:Tag:highway=trunk link
+    highway=turning_circle: DE:Tag:highway=turning circle
+    highway=unclassified: DE:Tag:highway=unclassified
+    historic=archaeological_site: DE:Tag:historic=archaeological site
+    historic=castle: DE:Tag:historic=castle
+    historic=manor: DE:Tag:historic=manor
+    historic=monastery: DE:Tag:historic=monastery
+    junction=roundabout: DE:Tag:junction=roundabout
+    landuse=allotments: DE:Tag:landuse=allotments
+    landuse=farm: DE:Tag:landuse=farm
+    landuse=farmyard: DE:Tag:landuse=farmyard
+    landuse=forest: DE:Tag:landuse=forest
+    leisure=dog_park: DE:Tag:leisure=dog park
+    leisure=playground: DE:Tag:leisure=playground
+    leisure=slipway: DE:Tag:leisure=slipway
+    man_made=crane: DE:Tag:man made=crane
+    man_made=mineshaft: DE:Tag:man made=mineshaft
+    man_made=pier: DE:Tag:man made=pier
+    man_made=pipeline: DE:Tag:man made=pipeline
+    man_made=survey_point: DE:Tag:man made=survey point
+    man_made=wastewater_plant: DE:Tag:man made=wastewater plant
+    military=bunker: DE:Tag:military=bunker
+    natural=stone: DE:Tag:natural=stone
+    natural=tree: DE:Tag:natural=tree
+    natural=water: DE:Tag:natural=water
+    natural=wetland: DE:Tag:natural=wetland
+    natural=wood: DE:Tag:natural=wood
+    power=cable: DE:Tag:power=cable
+    power=cable_distribution_cabinet: DE:Tag:power=cable distribution cabinet
+    power=generator: DE:Tag:power=generator
+    power=line: DE:Tag:power=line
+    power=minor_line: DE:Tag:power=minor line
+    power=pole: DE:Tag:power=pole
+    power=sub_station: DE:Tag:power=sub station
+    power=tower: DE:Tag:power=tower
+    railway=crossing: DE:Tag:railway=crossing
+    railway=halt: DE:Tag:railway=halt
+    railway=platform: DE:Tag:railway=platform
+    railway=station: DE:Tag:railway=station
+    railway=tram: DE:Tag:railway=tram
+    railway=tram_stop: DE:Tag:railway=tram stop
+    railway=turntable: DE:Tag:railway=turntable
+    route=ferry: DE:Tag:route=ferry
+    service=parking_aisle: DE:Tag:service=parking aisle
+    shop=bakery: DE:Tag:shop=bakery
+    shop=general: DE:Tag:shop=general
+    tourism=camp_site: DE:Tag:tourism=camp site
+    tourism=caravan_site: DE:Tag:tourism=caravan site
+    tourism=picnic_site: DE:Tag:tourism=picnic site
+    vending=bicycle_tube: DE:Tag:vending=bicycle tube
+    waterway=dock: DE:Tag:waterway=dock
+    waterway=lock_gate: DE:Tag:waterway=lock gate
+    waterway=river: DE:Tag:waterway=river
+    waterway=riverbank: DE:Tag:waterway=riverbank
+    waterway=stream: DE:Tag:waterway=stream
+en:
+  key:
+    Demolished: Key:Demolished
+    TMC:Direction: Key:TMC:Direction
+    TMC:LocationCode: Key:TMC:LocationCode
+    TMC:NextLocationCode: Key:TMC:NextLocationCode
+    TMC:PrevLocationCode: Key:TMC:PrevLocationCode
+    abutters: Key:abutters
+    access: Key:access
+    addr: Key:addr
+    addr:conscriptionnumber: Key:addr:conscriptionnumber
+    addr:provisionalnumber: Key:addr:provisionalnumber
+    addr:streetnumber: Key:addr:streetnumber
+    aerialway: Key:aerialway
+    aeroway: Key:aeroway
+    amenity: Key:amenity
+    area: Key:area
+    atv: Key:atv
+    barrier: Key:barrier
+    basin: Key:basin
+    bicycle: Key:bicycle
+    boat: Key:boat
+    border_type: Key:border type
+    boundary: Key:boundary
+    bridge: Key:bridge
+    building: Key:building
+    bunker_type: Key:bunker type
+    capacity: Key:capacity
+    cep: Key:cep
+    collection_times: Key:collection times
+    comment: Key:comment
+    construction: Key:construction
+    contact: Key:contact
+    covered: Key:covered
+    created_by: Key:created by
+    crossing: Key:crossing
+    cuisine: Key:cuisine
+    cutting: Key:cutting
+    cycleway: Key:cycleway
+    denomination: Key:denomination
+    description: Key:description
+    designation: Key:designation
+    direction: Key:direction
+    dispensing: Key:dispensing
+    disused: Key:disused
+    drink: Key:drink
+    easy_overtaking: Key:easy overtaking
+    ele: Key:ele
+    electrified: Key:electrified
+    embankment: Key:embankment
+    emergency: Key:emergency
+    end_date: Key:end date
+    enforcement: Key:enforcement
+    fee: Key:fee
+    fence_type: Key:fence type
+    fenced: Key:fenced
+    fixme: Key:fixme
+    foot: Key:foot
+    gauge: Key:gauge
+    geological: Key:geological
+    hazmat: Key:hazmat
+    healthcare: Key:healthcare
+    height: Key:height
+    highway: Key:highway
+    historic: Key:historic
+    horse: Key:horse
+    incline: Key:incline
+    information: Key:information
+    internet_access: Key:internet access
+    is_in: Key:is in
+    junction: Key:junction
+    landuse: Key:landuse
+    lanes: Key:lanes
+    layer: Key:layer
+    lcn_ref: Key:lcn ref
+    leisure: Key:leisure
+    lit: Key:lit
+    lit:perceived: Key:lit:perceived
+    lock: Key:lock
+    man_made: Key:man made
+    manhole: Key:manhole
+    maxairdraft: Key:maxairdraft
+    maxaxleload: Key:maxaxleload
+    maxdraught: Key:maxdraught
+    maxheight: Key:maxheight
+    maxheight:legal: Key:maxheight:legal
+    maxheight:marine: Key:maxheight:marine
+    maxheight:physical: Key:maxheight:physical
+    maxlength: Key:maxlength
+    maxspeed: Key:maxspeed
+    maxstay: Key:maxstay
+    maxweight: Key:maxweight
+    maxwidth: Key:maxwidth
+    military: Key:military
+    minspeed: Key:minspeed
+    mooring: Key:mooring
+    motorcar: Key:motorcar
+    motorcycle: Key:motorcycle
+    motorroad: Key:motorroad
+    mountain_pass: Key:mountain pass
+    mtb:description: Key:mtb:description
+    mtb:scale: Key:mtb:scale
+    name: Key:name
+    name:cy: Key:name:cy
+    narrow: Key:narrow
+    natural: Key:natural
+    ncn_ref: Key:ncn ref
+    noexit: Key:noexit
+    noname: Key:noname
+    note: Key:note
+    oneway: Key:oneway
+    opening_hours: Key:opening hours
+    operator: Key:operator
+    osmarender:nameDirection: Key:osmarender:nameDirection
+    osmarender:render: Key:osmarender:render
+    osmarender:renderName: Key:osmarender:renderName
+    osmarender:renderRef: Key:osmarender:renderRef
+    osmc:symbol: Key:osmc:symbol
+    overtaking: Key:overtaking
+    parking: Key:parking
+    passing_places: Key:passing places
+    paved:date: Key:paved:date
+    phone: Key:phone
+    place: Key:place
+    population: Key:population
+    postal_code: Key:postal code
+    power: Key:power
+    power_rating: Key:power rating
+    power_source: Key:power source
+    proposed: Key:proposed
+    psv: Key:psv
+    railway: Key:railway
+    ramp: Key:ramp
+    rcn_ref: Key:rcn ref
+    ref: Key:ref
+    ref:isil: Key:ref:isil
+    religion: Key:religion
+    resource: Key:resource
+    route: Key:route
+    sac_scale: Key:sac scale
+    sagns_id: Key:sagns id
+    seamark: Key:seamark
+    seasonal:snowfall:regaintime: Key:seasonal:snowfall:regaintime
+    service: Key:service
+    shop: Key:shop
+    ski: Key:ski
+    smoothness: Key:smoothness
+    snowplowing: Key:snowplowing
+    snowplowing:category: Key:snowplowing:category
+    source: Key:source
+    sport: Key:sport
+    start_date: Key:start date
+    step_count: Key:step count
+    stop: Key:stop
+    sulky: Key:sulky
+    surface: Key:surface
+    tactile_paving: Key:tactile paving
+    toll: Key:toll
+    tourism: Key:tourism
+    tracktype: Key:tracktype
+    traffic:hourly: Key:traffic:hourly
+    traffic_calming: Key:traffic calming
+    traffic_sign: Key:traffic sign
+    trail_visibility: Key:trail visibility
+    trolley_wire: Key:trolley wire
+    tunnel: Key:tunnel
+    type: Key:type
+    voltage: Key:voltage
+    waterway: Key:waterway
+    website: Key:website
+    wheelchair: Key:wheelchair
+    width: Key:width
+    wikipedia: Key:wikipedia
+    wires: Key:wires
+    woeid: Key:woeid
+    wood: Key:wood
+    zoo: Key:zoo
+  tag:
+    4wd_only=yes: Tag:4wd only=yes
+    abandoned=yes: Tag:abandoned=yes
+    access=designated: Tag:access=designated
+    access=official: Tag:access=official
+    aerialway=cable_car: Tag:aerialway=cable car
+    aerialway=chair_lift: Tag:aerialway=chair lift
+    aerialway=drag_lift: Tag:aerialway=drag lift
+    aerialway=gondola: Tag:aerialway=gondola
+    aerialway=mixed_lift: Tag:aerialway=mixed lift
+    aerialway=pylon: Tag:aerialway=pylon
+    aerialway=station: Tag:aerialway=station
+    aeroway=aerodrome: Tag:aeroway=aerodrome
+    aeroway=apron: Tag:aeroway=apron
+    aeroway=control_tower: Tag:aeroway=control tower
+    aeroway=gate: Tag:aeroway=gate
+    aeroway=helipad: Tag:aeroway=helipad
+    aeroway=navigationaid: Tag:aeroway=navigationaid
+    aeroway=runway: Tag:aeroway=runway
+    aeroway=taxiway: Tag:aeroway=taxiway
+    aeroway=terminal: Tag:aeroway=terminal
+    aeroway=windsock: Tag:aeroway=windsock
+    amenity=arts_centre: Tag:amenity=arts centre
+    amenity=atm: Tag:amenity=atm
+    amenity=audiologist: Tag:amenity=audiologist
+    amenity=baby_hatch: Tag:amenity=baby hatch
+    amenity=bank: Tag:amenity=bank
+    amenity=bar: Tag:amenity=bar
+    amenity=bench: Tag:amenity=bench
+    amenity=bicycle_parking: Tag:amenity=bicycle parking
+    amenity=bicycle_rental: Tag:amenity=bicycle rental
+    amenity=biergarten: Tag:amenity=biergarten
+    amenity=brothel: Tag:amenity=brothel
+    amenity=bureau_de_change: Tag:amenity=bureau de change
+    amenity=bus_station: Tag:amenity=bus station
+    amenity=cafe: Tag:amenity=cafe
+    amenity=car_rental: Tag:amenity=car rental
+    amenity=car_sharing: Tag:amenity=car sharing
+    amenity=cinema: Tag:amenity=cinema
+    amenity=clock: Tag:amenity=clock
+    amenity=coast_guard: Tag:amenity=coast guard
+    amenity=college: Tag:amenity=college
+    amenity=community_centre: Tag:amenity=community centre
+    amenity=compressed_air: Tag:amenity=compressed air
+    amenity=courthouse: Tag:amenity=courthouse
+    amenity=crematorium: Tag:amenity=crematorium
+    amenity=drinking_water: Tag:amenity=drinking water
+    amenity=embassy: Tag:amenity=embassy
+    amenity=emergency_phone: Tag:amenity=emergency phone
+    amenity=fast_food: Tag:amenity=fast food
+    amenity=ferry_terminal: Tag:amenity=ferry terminal
+    amenity=fire_hydrant: Tag:amenity=fire hydrant
+    amenity=fire_station: Tag:amenity=fire station
+    amenity=fountain: Tag:amenity=fountain
+    amenity=fuel: Tag:amenity=fuel
+    amenity=grave_yard: Tag:amenity=grave yard
+    amenity=grit_bin: Tag:amenity=grit bin
+    amenity=hospital: Tag:amenity=hospital
+    amenity=hunting_stand: Tag:amenity=hunting stand
+    amenity=kindergarten: Tag:amenity=kindergarten
+    amenity=library: Tag:amenity=library
+    amenity=life_ring: Tag:amenity=life ring
+    amenity=marketplace: Tag:amenity=marketplace
+    amenity=milk_dispenser: Tag:amenity=milk dispenser
+    amenity=nightclub: Tag:amenity=nightclub
+    amenity=nursing_home: Tag:amenity=nursing home
+    amenity=parking: Tag:amenity=parking
+    amenity=pharmacy: Tag:amenity=pharmacy
+    amenity=place_of_worship: Tag:amenity=place of worship
+    amenity=police: Tag:amenity=police
+    amenity=post_box: Tag:amenity=post box
+    amenity=post_office: Tag:amenity=post office
+    amenity=prison: Tag:amenity=prison
+    amenity=pub: Tag:amenity=pub
+    amenity=public_building: Tag:amenity=public building
+    amenity=recycling: Tag:amenity=recycling
+    amenity=register_office: Tag:amenity=register office
+    amenity=restaurant: Tag:amenity=restaurant
+    amenity=sauna: Tag:amenity=sauna
+    amenity=school: Tag:amenity=school
+    amenity=stripclub: Tag:amenity=stripclub
+    amenity=studio: Tag:amenity=studio
+    amenity=taxi: Tag:amenity=taxi
+    amenity=telephone: Tag:amenity=telephone
+    amenity=theatre: Tag:amenity=theatre
+    amenity=toilets: Tag:amenity=toilets
+    amenity=townhall: Tag:amenity=townhall
+    amenity=university: Tag:amenity=university
+    amenity=vending_machine: Tag:amenity=vending machine
+    amenity=veterinary: Tag:amenity=veterinary
+    amenity=waste_basket: Tag:amenity=waste basket
+    amenity=waste_disposal: Tag:amenity=waste disposal
+    amenity=watering_place: Tag:amenity=watering place
+    atm=no: Tag:atm=no
+    atm=yes: Tag:atm=yes
+    barrier=block: Tag:barrier=block
+    barrier=bollard: Tag:barrier=bollard
+    barrier=cattle_grid: Tag:barrier=cattle grid
+    barrier=city_wall: Tag:barrier=city wall
+    barrier=cycle_barrier: Tag:barrier=cycle barrier
+    barrier=ditch: Tag:barrier=ditch
+    barrier=fence: Tag:barrier=fence
+    barrier=gate: Tag:barrier=gate
+    barrier=hedge: Tag:barrier=hedge
+    barrier=kissing_gate: Tag:barrier=kissing gate
+    barrier=lift_gate: Tag:barrier=lift gate
+    barrier=retaining_wall: Tag:barrier=retaining wall
+    barrier=sally_port: Tag:barrier=sally port
+    barrier=stile: Tag:barrier=stile
+    barrier=toll_booth: Tag:barrier=toll booth
+    barrier=wall: Tag:barrier=wall
+    boundary=administrative: Tag:boundary=administrative
+    boundary=civil: Tag:boundary=civil
+    boundary=maritime: Tag:boundary=maritime
+    boundary=national: Tag:boundary=national
+    boundary=national_park: Tag:boundary=national park
+    boundary=political: Tag:boundary=political
+    building=dormitory: Tag:building=dormitory
+    building=entrance: Tag:building=entrance
+    building=parliament: Tag:building=parliament
+    bunker_type=munitions: Tag:bunker type=munitions
+    bunker_type=pillbox: Tag:bunker type=pillbox
+    club-mate=yes: Tag:club-mate=yes
+    cycleway=bike_box: Tag:cycleway=bike box
+    denomination=mormon: Tag:denomination=mormon
+    geological=palaeontological_site: Tag:geological=palaeontological site
+    highway=bridleway: Tag:highway=bridleway
+    highway=bus_guideway: Tag:highway=bus guideway
+    highway=bus_stop: Tag:highway=bus stop
+    highway=byway: Tag:highway=byway
+    highway=crossing: Tag:highway=crossing
+    highway=cycleway: Tag:highway=cycleway
+    highway=emergency_access_point: Tag:highway=emergency access point
+    highway=footway: Tag:highway=footway
+    highway=ford: Tag:highway=ford
+    highway=living_street: Tag:highway=living street
+    highway=mini_roundabout: Tag:highway=mini roundabout
+    highway=motorway: Tag:highway=motorway
+    highway=motorway_junction: Tag:highway=motorway junction
+    highway=motorway_link: Tag:highway=motorway link
+    highway=passing_place: Tag:highway=passing place
+    highway=path: Tag:highway=path
+    highway=pedestrian: Tag:highway=pedestrian
+    highway=platform: Tag:highway=platform
+    highway=primary: Tag:highway=primary
+    highway=primary_link: Tag:highway=primary link
+    highway=proposed: Tag:highway=proposed
+    highway=raceway: Tag:highway=raceway
+    highway=residential: Tag:highway=residential
+    highway=road: Tag:highway=road
+    highway=secondary: Tag:highway=secondary
+    highway=secondary_link: Tag:highway=secondary link
+    highway=service: Tag:highway=service
+    highway=services: Tag:highway=services
+    highway=speed_camera: Tag:highway=speed camera
+    highway=steps: Tag:highway=steps
+    highway=stop: Tag:highway=stop
+    highway=street_lamp: Tag:highway=street lamp
+    highway=tertiary: Tag:highway=tertiary
+    highway=track: Tag:highway=track
+    highway=traffic_signals: Tag:highway=traffic signals
+    highway=trail: Tag:highway=trail
+    highway=trunk: Tag:highway=trunk
+    highway=trunk_link: Tag:highway=trunk link
+    highway=turning_circle: Tag:highway=turning circle
+    highway=unclassified: Tag:highway=unclassified
+    historic=archaeological_site: Tag:historic=archaeological site
+    historic=battlefield: Tag:historic=battlefield
+    historic=castle: Tag:historic=castle
+    historic=manor: Tag:historic=manor
+    historic=memorial: Tag:historic=memorial
+    historic=monastery: Tag:historic=monastery
+    historic=monument: Tag:historic=monument
+    historic=paleontological_site: Tag:historic=paleontological site
+    historic=ruins: Tag:historic=ruins
+    historic=wayside_cross: Tag:historic=wayside cross
+    historic=wayside_shrine: Tag:historic=wayside shrine
+    historic=wreck: Tag:historic=wreck
+    hunting=raised_hide: Tag:hunting=raised hide
+    information=guidepost: Tag:information=guidepost
+    junction=roundabout: Tag:junction=roundabout
+    landuse=allotments: Tag:landuse=allotments
+    landuse=basin: Tag:landuse=basin
+    landuse=brownfield: Tag:landuse=brownfield
+    landuse=cemetery: Tag:landuse=cemetery
+    landuse=commercial: Tag:landuse=commercial
+    landuse=construction: Tag:landuse=construction
+    landuse=farm: Tag:landuse=farm
+    landuse=farmyard: Tag:landuse=farmyard
+    landuse=forest: Tag:landuse=forest
+    landuse=garages: Tag:landuse=garages
+    landuse=grass: Tag:landuse=grass
+    landuse=greenfield: Tag:landuse=greenfield
+    landuse=greenhouse_horticulture: Tag:landuse=greenhouse horticulture
+    landuse=industrial: Tag:landuse=industrial
+    landuse=landfill: Tag:landuse=landfill
+    landuse=meadow: Tag:landuse=meadow
+    landuse=military: Tag:landuse=military
+    landuse=orchard: Tag:landuse=orchard
+    landuse=peat_cutting: Tag:landuse=peat cutting
+    landuse=pond: Tag:landuse=pond
+    landuse=quarry: Tag:landuse=quarry
+    landuse=railway: Tag:landuse=railway
+    landuse=recreation_ground: Tag:landuse=recreation ground
+    landuse=reservoir: Tag:landuse=reservoir
+    landuse=residential: Tag:landuse=residential
+    landuse=retail: Tag:landuse=retail
+    landuse=salt_pond: Tag:landuse=salt pond
+    landuse=village_green: Tag:landuse=village green
+    landuse=vineyard: Tag:landuse=vineyard
+    landuse=wood: Tag:landuse=wood
+    leisure=beach_resort: Tag:leisure=beach resort
+    leisure=common: Tag:leisure=common
+    leisure=dance: Tag:leisure=dance
+    leisure=dog_park: Tag:leisure=dog park
+    leisure=fishing: Tag:leisure=fishing
+    leisure=garden: Tag:leisure=garden
+    leisure=golf_course: Tag:leisure=golf course
+    leisure=hackerspace: Tag:leisure=hackerspace
+    leisure=ice_rink: Tag:leisure=ice rink
+    leisure=marina: Tag:leisure=marina
+    leisure=miniature_golf: Tag:leisure=miniature golf
+    leisure=nature_reserve: Tag:leisure=nature reserve
+    leisure=park: Tag:leisure=park
+    leisure=pitch: Tag:leisure=pitch
+    leisure=playground: Tag:leisure=playground
+    leisure=slipway: Tag:leisure=slipway
+    leisure=sports_centre: Tag:leisure=sports centre
+    leisure=track: Tag:leisure=track
+    leisure=water_park: Tag:leisure=water park
+    man_made=crane: Tag:man made=crane
+    man_made=cutline: Tag:man made=cutline
+    man_made=dyke: Tag:man made=dyke
+    man_made=ground_station: Tag:man made=ground station
+    man_made=jetty: Tag:man made=jetty
+    man_made=lighthouse: Tag:man made=lighthouse
+    man_made=mineshaft: Tag:man made=mineshaft
+    man_made=pier: Tag:man made=pier
+    man_made=pipeline: Tag:man made=pipeline
+    man_made=pumping_rig: Tag:man made=pumping rig
+    man_made=reservoir_covered: Tag:man made=reservoir covered
+    man_made=surveillance: Tag:man made=surveillance
+    man_made=survey_point: Tag:man made=survey point
+    man_made=wastewater_plant: Tag:man made=wastewater plant
+    man_made=water_tower: Tag:man made=water tower
+    man_made=water_works: Tag:man made=water works
+    man_made=watermill: Tag:man made=watermill
+    man_made=windmill: Tag:man made=windmill
+    man_made=works: Tag:man made=works
+    military=airfield: Tag:military=airfield
+    military=bunker: Tag:military=bunker
+    military=naval_base: Tag:military=naval base
+    natural=bay: Tag:natural=bay
+    natural=beach: Tag:natural=beach
+    natural=cave_entrance: Tag:natural=cave entrance
+    natural=cliff: Tag:natural=cliff
+    natural=coastline: Tag:natural=coastline
+    natural=fell: Tag:natural=fell
+    natural=glacier: Tag:natural=glacier
+    natural=heath: Tag:natural=heath
+    natural=lake: Tag:natural=lake
+    natural=land: Tag:natural=land
+    natural=meadow: Tag:natural=meadow
+    natural=peak: Tag:natural=peak
+    natural=spring: Tag:natural=spring
+    natural=stone: Tag:natural=stone
+    natural=tree: Tag:natural=tree
+    natural=volcano: Tag:natural=volcano
+    natural=water: Tag:natural=water
+    natural=wetland: Tag:natural=wetland
+    natural=wood: Tag:natural=wood
+    pipeline=marker: Tag:pipeline=marker
+    pipeline=valve: Tag:pipeline=valve
+    place=city: Tag:place=city
+    place=continent: Tag:place=continent
+    place=country: Tag:place=country
+    place=county: Tag:place=county
+    place=hamlet: Tag:place=hamlet
+    place=island: Tag:place=island
+    place=islet: Tag:place=islet
+    place=locality: Tag:place=locality
+    place=region: Tag:place=region
+    place=state: Tag:place=state
+    place=suburb: Tag:place=suburb
+    place=town: Tag:place=town
+    place=village: Tag:place=village
+    power=cable_distribution_cabinet: Tag:power=cable distribution cabinet
+    power=generator: Tag:power=generator
+    power=line: Tag:power=line
+    power=minor_line: Tag:power=minor line
+    power=pole: Tag:power=pole
+    power=station: Tag:power=station
+    power=sub_station: Tag:power=sub station
+    power=tower: Tag:power=tower
+    public_transport=pay_scale_area: Tag:public transport=pay scale area
+    railway=PRT: Tag:railway=PRT
+    railway=crossing: Tag:railway=crossing
+    railway=halt: Tag:railway=halt
+    railway=level_crossing: Tag:railway=level crossing
+    railway=monorail: Tag:railway=monorail
+    railway=platform: Tag:railway=platform
+    railway=rail: Tag:railway=rail
+    railway=station: Tag:railway=station
+    railway=stop: Tag:railway=stop
+    railway=subway: Tag:railway=subway
+    railway=subway_entrance: Tag:railway=subway entrance
+    railway=tram: Tag:railway=tram
+    railway=tram_stop: Tag:railway=tram stop
+    railway=turntable: Tag:railway=turntable
+    route=bus: Tag:route=bus
+    route=canal: Tag:route=canal
+    route=detour: Tag:route=detour
+    route=ferry: Tag:route=ferry
+    route=railway: Tag:route=railway
+    route=road: Tag:route=road
+    route=share_taxi: Tag:route=share taxi
+    route=ski: Tag:route=ski
+    route=train: Tag:route=train
+    route=tram: Tag:route=tram
+    route=trolleybus: Tag:route=trolleybus
+    service=alley: Tag:service=alley
+    service=drive-through: Tag:service=drive-through
+    service=driveway: Tag:service=driveway
+    service=emergency_access: Tag:service=emergency access
+    service=parking_aisle: Tag:service=parking aisle
+    service=siding: Tag:service=siding
+    service=spur: Tag:service=spur
+    service=yard: Tag:service=yard
+    shop=alcohol: Tag:shop=alcohol
+    shop=bakery: Tag:shop=bakery
+    shop=beverages: Tag:shop=beverages
+    shop=bicycle: Tag:shop=bicycle
+    shop=books: Tag:shop=books
+    shop=butcher: Tag:shop=butcher
+    shop=car: Tag:shop=car
+    shop=car_repair: Tag:shop=car repair
+    shop=cell_phones: Tag:shop=cell phones
+    shop=charity: Tag:shop=charity
+    shop=chemist: Tag:shop=chemist
+    shop=clothes: Tag:shop=clothes
+    shop=computer: Tag:shop=computer
+    shop=confectionery: Tag:shop=confectionery
+    shop=convenience: Tag:shop=convenience
+    shop=department_store: Tag:shop=department store
+    shop=doityourself: Tag:shop=doityourself
+    shop=dry_cleaning: Tag:shop=dry cleaning
+    shop=electronics: Tag:shop=electronics
+    shop=fabrics: Tag:shop=fabrics
+    shop=farm: Tag:shop=farm
+    shop=florist: Tag:shop=florist
+    shop=food: Tag:shop=food
+    shop=funeral_directors: Tag:shop=funeral directors
+    shop=furniture: Tag:shop=furniture
+    shop=garden_centre: Tag:shop=garden centre
+    shop=general: Tag:shop=general
+    shop=gift: Tag:shop=gift
+    shop=glaziery: Tag:shop=glaziery
+    shop=greengrocer: Tag:shop=greengrocer
+    shop=hairdresser: Tag:shop=hairdresser
+    shop=hearing_aids: Tag:shop=hearing aids
+    shop=hifi: Tag:shop=hifi
+    shop=jewelry: Tag:shop=jewelry
+    shop=kiosk: Tag:shop=kiosk
+    shop=laundry: Tag:shop=laundry
+    shop=locksmith: Tag:shop=locksmith
+    shop=mall: Tag:shop=mall
+    shop=massage: Tag:shop=massage
+    shop=motorcycle: Tag:shop=motorcycle
+    shop=newsagent: Tag:shop=newsagent
+    shop=optician: Tag:shop=optician
+    shop=organic: Tag:shop=organic
+    shop=outdoor: Tag:shop=outdoor
+    shop=second_hand: Tag:shop=second hand
+    shop=shoes: Tag:shop=shoes
+    shop=sports: Tag:shop=sports
+    shop=stationery: Tag:shop=stationery
+    shop=supermarket: Tag:shop=supermarket
+    shop=systembolaget: Tag:shop=systembolaget
+    shop=toys: Tag:shop=toys
+    shop=travel_agency: Tag:shop=travel agency
+    shop=video: Tag:shop=video
+    source:ele=barometric: Tag:source:ele=barometric
+    source=GURS: Tag:source=GURS
+    source=IBGE: Tag:source=IBGE
+    sport=9pin: Tag:sport=9pin
+    sport=australian_football: Tag:sport=australian football
+    sport=boules: Tag:sport=boules
+    sport=diving: Tag:sport=diving
+    sport=orienteering: Tag:sport=orienteering
+    sport=rowing: Tag:sport=rowing
+    sport=shooting: Tag:sport=shooting
+    sport=soccer: Tag:sport=soccer
+    sport=toboggan: Tag:sport=toboggan
+    sport=volleyball: Tag:sport=volleyball
+    sub_sea=reef: Tag:sub sea=reef
+    tourism=alpine_hut: Tag:tourism=alpine hut
+    tourism=aquarium: Tag:tourism=aquarium
+    tourism=artwork: Tag:tourism=artwork
+    tourism=attraction: Tag:tourism=attraction
+    tourism=camp_site: Tag:tourism=camp site
+    tourism=caravan_site: Tag:tourism=caravan site
+    tourism=chalet: Tag:tourism=chalet
+    tourism=guest_house: Tag:tourism=guest house
+    tourism=hostel: Tag:tourism=hostel
+    tourism=hotel: Tag:tourism=hotel
+    tourism=information: Tag:tourism=information
+    tourism=motel: Tag:tourism=motel
+    tourism=museum: Tag:tourism=museum
+    tourism=picnic_site: Tag:tourism=picnic site
+    tourism=theme_park: Tag:tourism=theme park
+    tourism=viewpoint: Tag:tourism=viewpoint
+    tourism=zoo: Tag:tourism=zoo
+    type=site: Tag:type=site
+    vending=bicycle_tube: Tag:vending=bicycle tube
+    waterway=boatyard: Tag:waterway=boatyard
+    waterway=canal: Tag:waterway=canal
+    waterway=dam: Tag:waterway=dam
+    waterway=derelict_canal: Tag:waterway=derelict canal
+    waterway=dock: Tag:waterway=dock
+    waterway=drain: Tag:waterway=drain
+    waterway=lock_gate: Tag:waterway=lock gate
+    waterway=river: Tag:waterway=river
+    waterway=riverbank: Tag:waterway=riverbank
+    waterway=stream: Tag:waterway=stream
+    waterway=turning_point: Tag:waterway=turning point
+    waterway=water_point: Tag:waterway=water point
+    waterway=waterfall: Tag:waterway=waterfall
+    waterway=weir: Tag:waterway=weir
+    zoo=petting_zoo: Tag:zoo=petting zoo
+es:
+  tag:
+    amenity=bar: ES:Tag:amenity=bar
+    amenity=recycling: ES:Tag:amenity=recycling
+    highway=bus_stop: ES:Tag:highway=bus stop
+et:
+  key:
+    highway: Et:Key:highway
+fi:
+  key:
+    amenity: Fi:Key:amenity
+    bridge: Fi:Key:bridge
+    crossing: Fi:Key:crossing
+    description: Fi:Key:description
+    disused: Fi:Key:disused
+    ele: Fi:Key:ele
+    embankment: Fi:Key:embankment
+    hazmat: Fi:Key:hazmat
+    lanes: Fi:Key:lanes
+    layer: Fi:Key:layer
+    leisure: Fi:Key:leisure
+    man_made: Fi:Key:man made
+    manhole: Fi:Key:manhole
+    narrow: Fi:Key:narrow
+    natural: Fi:Key:natural
+    note: Fi:Key:note
+    operator: Fi:Key:operator
+    shop: Fi:Key:shop
+    surface: Fi:Key:surface
+    tracktype: Fi:Key:tracktype
+    traffic_calming: Fi:Key:traffic calming
+    tunnel: Fi:Key:tunnel
+    waterway: Fi:Key:waterway
+    wheelchair: Fi:Key:wheelchair
+    width: Fi:Key:width
+  tag:
+    amenity=atm: Fi:Tag:amenity=atm
+    amenity=baby_hatch: Fi:Tag:amenity=baby hatch
+    amenity=bank: Fi:Tag:amenity=bank
+    amenity=bureau_de_change: Fi:Tag:amenity=bureau de change
+    amenity=car_rental: Fi:Tag:amenity=car rental
+    amenity=car_sharing: Fi:Tag:amenity=car sharing
+    amenity=cinema: Fi:Tag:amenity=cinema
+    amenity=courthouse: Fi:Tag:amenity=courthouse
+    amenity=crematorium: Fi:Tag:amenity=crematorium
+    amenity=embassy: Fi:Tag:amenity=embassy
+    amenity=ferry_terminal: Fi:Tag:amenity=ferry terminal
+    amenity=fire_station: Fi:Tag:amenity=fire station
+    amenity=fountain: Fi:Tag:amenity=fountain
+    amenity=fuel: Fi:Tag:amenity=fuel
+    amenity=library: Fi:Tag:amenity=library
+    amenity=nightclub: Fi:Tag:amenity=nightclub
+    amenity=police: Fi:Tag:amenity=police
+    amenity=prison: Fi:Tag:amenity=prison
+    amenity=recycling: Fi:Tag:amenity=recycling
+    amenity=telephone: Fi:Tag:amenity=telephone
+    amenity=theatre: Fi:Tag:amenity=theatre
+    amenity=townhall: Fi:Tag:amenity=townhall
+    amenity=veterinary: Fi:Tag:amenity=veterinary
+    highway=secondary: Fi:Tag:highway=secondary
+    highway=steps: Fi:Tag:highway=steps
+    highway=tertiary: Fi:Tag:highway=tertiary
+    highway=track: Fi:Tag:highway=track
+    highway=unclassified: Fi:Tag:highway=unclassified
+    leisure=dog_park: Fi:Tag:leisure=dog park
+    leisure=slipway: Fi:Tag:leisure=slipway
+    man_made=wastewater_plant: Fi:Tag:man made=wastewater plant
+    man_made=watermill: Fi:Tag:man made=watermill
+    natural=tree: Fi:Tag:natural=tree
+    natural=wetland: Fi:Tag:natural=wetland
+    power=line: Fi:Tag:power=line
+    power=minor_line: Fi:Tag:power=minor line
+    power=pole: Fi:Tag:power=pole
+    power=tower: Fi:Tag:power=tower
+    railway=crossing: Fi:Tag:railway=crossing
+    railway=level_crossing: Fi:Tag:railway=level crossing
+    service=parking_aisle: Fi:Tag:service=parking aisle
+    shop=bakery: Fi:Tag:shop=bakery
+    shop=bicycle: Fi:Tag:shop=bicycle
+    shop=butcher: Fi:Tag:shop=butcher
+    shop=car: Fi:Tag:shop=car
+    shop=dry_cleaning: Fi:Tag:shop=dry cleaning
+    sport=shooting: Fi:Tag:sport=shooting
+    tourism=hotel: Fi:Tag:tourism=hotel
+    tourism=zoo: Fi:Tag:tourism=zoo
+    waterway=river: Fi:Tag:waterway=river
+    waterway=stream: Fi:Tag:waterway=stream
+fr:
+  key:
+    addr: FR:Key:addr
+    amenity: FR:Key:amenity
+    barrier: FR:Key:barrier
+    boundary: FR:Key:boundary
+    bridge: FR:Key:bridge
+    building: FR:Key:building
+    collection_times: FR:Key:collection times
+    cycleway: FR:Key:cycleway
+    enforcement: FR:Key:enforcement
+    highway: FR:Key:highway
+    landuse: FR:Key:landuse
+    lanes: FR:Key:lanes
+    maxweight: FR:Key:maxweight
+    name: FR:Key:name
+    noname: FR:Key:noname
+    opening_hours: FR:Key:opening hours
+    power: FR:Key:power
+    sac_scale: FR:Key:sac scale
+    shop: FR:Key:shop
+    smoothness: FR:Key:smoothness
+    waterway: FR:Key:waterway
+  tag:
+    aeroway=runway: FR:Tag:aeroway=runway
+    amenity=bicycle_parking: FR:Tag:amenity=bicycle parking
+    amenity=bicycle_rental: FR:Tag:amenity=bicycle rental
+    amenity=fire_station: FR:Tag:amenity=fire station
+    amenity=pharmacy: FR:Tag:amenity=pharmacy
+    amenity=recycling: FR:Tag:amenity=recycling
+    amenity=townhall: FR:Tag:amenity=townhall
+    barrier=bollard: FR:Tag:barrier=bollard
+    barrier=gate: FR:Tag:barrier=gate
+    cycleway=bike_box: FR:Tag:cycleway=bike box
+    highway=bus_stop: FR:Tag:highway=bus stop
+    highway=crossing: FR:Tag:highway=crossing
+    highway=cycleway: FR:Tag:highway=cycleway
+    highway=motorway: FR:Tag:highway=motorway
+    highway=motorway_link: FR:Tag:highway=motorway link
+    landuse=farmyard: FR:Tag:landuse=farmyard
+    landuse=forest: FR:Tag:landuse=forest
+    leisure=playground: FR:Tag:leisure=playground
+    man_made=water_works: FR:Tag:man made=water works
+    natural=tree: FR:Tag:natural=tree
+    place=city: FR:Tag:place=city
+    place=hamlet: FR:Tag:place=hamlet
+    place=locality: FR:Tag:place=locality
+    place=town: FR:Tag:place=town
+    place=village: FR:Tag:place=village
+    power=generator: FR:Tag:power=generator
+    power=line: FR:Tag:power=line
+    power=tower: FR:Tag:power=tower
+    railway=subway_entrance: FR:Tag:railway=subway entrance
+    shop=bakery: FR:Tag:shop=bakery
+    shop=supermarket: FR:Tag:shop=supermarket
+    waterway=riverbank: FR:Tag:waterway=riverbank
+    waterway=stream: FR:Tag:waterway=stream
+hr:
+  key:
+    tracktype: Hr:Key:tracktype
+hu:
+  key:
+    aeroway: HU:Key:aeroway
+    shop: HU:Key:shop
+    tourism: HU:Key:tourism
+it:
+  key:
+    aerialway: IT:Key:aerialway
+    aeroway: IT:Key:aeroway
+    amenity: IT:Key:amenity
+    barrier: IT:Key:barrier
+    boundary: IT:Key:boundary
+    bridge: IT:Key:bridge
+    building: IT:Key:building
+    construction: IT:Key:construction
+    cutting: IT:Key:cutting
+    cycleway: IT:Key:cycleway
+    denomination: IT:Key:denomination
+    embankment: IT:Key:embankment
+    enforcement: IT:Key:enforcement
+    geological: IT:Key:geological
+    highway: IT:Key:highway
+    historic: IT:Key:historic
+    junction: IT:Key:junction
+    landuse: IT:Key:landuse
+    leisure: IT:Key:leisure
+    lock: IT:Key:lock
+    man_made: IT:Key:man made
+    military: IT:Key:military
+    mooring: IT:Key:mooring
+    name: IT:Key:name
+    natural: IT:Key:natural
+    osmc:symbol: IT:Key:osmc:symbol
+    passing_places: IT:Key:passing places
+    place: IT:Key:place
+    power: IT:Key:power
+    proposed: IT:Key:proposed
+    railway: IT:Key:railway
+    ref: IT:Key:ref
+    religion: IT:Key:religion
+    route: IT:Key:route
+    sac_scale: IT:Key:sac scale
+    service: IT:Key:service
+    shop: IT:Key:shop
+    sport: IT:Key:sport
+    stop: IT:Key:stop
+    tourism: IT:Key:tourism
+    tracktype: IT:Key:tracktype
+    traffic_calming: IT:Key:traffic calming
+    trail_visibility: IT:Key:trail visibility
+    tunnel: IT:Key:tunnel
+    type: IT:Key:type
+    waterway: IT:Key:waterway
+    wheelchair: IT:Key:wheelchair
+  tag:
+    amenity=bicycle_rental: IT:Tag:amenity=bicycle rental
+    amenity=college: IT:Tag:amenity=college
+    amenity=fuel: IT:Tag:amenity=fuel
+    amenity=hospital: IT:Tag:amenity=hospital
+    amenity=kindergarten: IT:Tag:amenity=kindergarten
+    amenity=place_of_worship: IT:Tag:amenity=place of worship
+    amenity=police: IT:Tag:amenity=police
+    amenity=post_office: IT:Tag:amenity=post office
+    amenity=school: IT:Tag:amenity=school
+    amenity=university: IT:Tag:amenity=university
+    amenity=waste_basket: IT:Tag:amenity=waste basket
+    barrier=toll_booth: IT:Tag:barrier=toll booth
+    geological=palaeontological_site: IT:Tag:geological=palaeontological site
+    highway=cycleway: IT:Tag:highway=cycleway
+    highway=ford: IT:Tag:highway=ford
+    highway=mini_roundabout: IT:Tag:highway=mini roundabout
+    highway=motorway: IT:Tag:highway=motorway
+    highway=motorway_link: IT:Tag:highway=motorway link
+    highway=primary: IT:Tag:highway=primary
+    highway=primary_link: IT:Tag:highway=primary link
+    highway=trunk: IT:Tag:highway=trunk
+    highway=trunk_link: IT:Tag:highway=trunk link
+    historic=paleontological_site: IT:Tag:historic=paleontological site
+    junction=roundabout: IT:Tag:junction=roundabout
+    landuse=construction: IT:Tag:landuse=construction
+    leisure=beach_resort: IT:Tag:leisure=beach resort
+    leisure=dog_park: IT:Tag:leisure=dog park
+    shop=butcher: IT:Tag:shop=butcher
+    shop=car: IT:Tag:shop=car
+    shop=florist: IT:Tag:shop=florist
+ja:
+  key:
+    abutters: Ja:Key:abutters
+    access: Ja:Key:access
+    aerialway: Ja:Key:aerialway
+    aeroway: Ja:Key:aeroway
+    amenity: Ja:Key:amenity
+    barrier: Ja:Key:barrier
+    boundary: Ja:Key:boundary
+    bridge: Ja:Key:bridge
+    building: Ja:Key:building
+    crossing: Ja:Key:crossing
+    cuisine: Ja:Key:cuisine
+    cycleway: Ja:Key:cycleway
+    fixme: Ja:Key:fixme
+    foot: Ja:Key:foot
+    highway: Ja:Key:highway
+    historic: Ja:Key:historic
+    incline: Ja:Key:incline
+    information: Ja:Key:information
+    internet_access: Ja:Key:internet access
+    landuse: Ja:Key:landuse
+    leisure: Ja:Key:leisure
+    man_made: Ja:Key:man made
+    military: Ja:Key:military
+    name: Ja:Key:name
+    natural: Ja:Key:natural
+    operator: Ja:Key:operator
+    phone: Ja:Key:phone
+    power: Ja:Key:power
+    railway: Ja:Key:railway
+    ref: Ja:Key:ref
+    route: Ja:Key:route
+    shop: Ja:Key:shop
+    step_count: Ja:Key:step count
+    surface: Ja:Key:surface
+    tactile_paving: Ja:Key:tactile paving
+    tourism: Ja:Key:tourism
+    tracktype: Ja:Key:tracktype
+    waterway: Ja:Key:waterway
+    wheelchair: Ja:Key:wheelchair
+    wood: Ja:Key:wood
+  tag:
+    amenity=arts_centre: Ja:Tag:amenity=arts centre
+    amenity=baby_hatch: Ja:Tag:amenity=baby hatch
+    amenity=cafe: Ja:Tag:amenity=cafe
+    amenity=drinking_water: Ja:Tag:amenity=drinking water
+    amenity=fast_food: Ja:Tag:amenity=fast food
+    amenity=fire_station: Ja:Tag:amenity=fire station
+    amenity=parking: Ja:Tag:amenity=parking
+    amenity=place_of_worship: Ja:Tag:amenity=place of worship
+    amenity=pub: Ja:Tag:amenity=pub
+    amenity=restaurant: Ja:Tag:amenity=restaurant
+    amenity=toilets: Ja:Tag:amenity=toilets
+    amenity=vending_machine: Ja:Tag:amenity=vending machine
+    amenity=veterinary: Ja:Tag:amenity=veterinary
+    highway=crossing: Ja:Tag:highway=crossing
+    highway=footway: Ja:Tag:highway=footway
+    highway=pedestrian: Ja:Tag:highway=pedestrian
+    highway=residential: Ja:Tag:highway=residential
+    highway=steps: Ja:Tag:highway=steps
+    highway=track: Ja:Tag:highway=track
+    highway=traffic_signals: Ja:Tag:highway=traffic signals
+    historic=archaeological_site: Ja:Tag:historic=archaeological site
+    landuse=forest: Ja:Tag:landuse=forest
+    landuse=wood: Ja:Tag:landuse=wood
+    leisure=ice_rink: Ja:Tag:leisure=ice rink
+    man_made=lighthouse: Ja:Tag:man made=lighthouse
+    natural=coastline: Ja:Tag:natural=coastline
+    natural=wood: Ja:Tag:natural=wood
+    railway=crossing: Ja:Tag:railway=crossing
+    railway=level_crossing: Ja:Tag:railway=level crossing
+    railway=rail: Ja:Tag:railway=rail
+    shop=doityourself: Ja:Tag:shop=doityourself
+    shop=outdoor: Ja:Tag:shop=outdoor
+    tourism=hotel: Ja:Tag:tourism=hotel
+    tourism=information: Ja:Tag:tourism=information
+    waterway=riverbank: Ja:Tag:waterway=riverbank
+    waterway=water_point: Ja:Tag:waterway=water point
+nl:
+  key:
+    cycleway: NL:Key:cycleway
+  tag:
+    highway=motorway: NL:Tag:highway=motorway
+    landuse=industrial: NL:Tag:landuse=industrial
+    shop=car: NL:Tag:shop=car
+    zoo=petting_zoo: NL:Tag:zoo=petting zoo
+no:
+  key:
+    fenced: No:Key:fenced
+    maxheight:marine: No:Key:maxheight:marine
+  tag:
+    amenity=bank: No:Tag:amenity=bank
+    amenity=marketplace: No:Tag:amenity=marketplace
+    amenity=pharmacy: No:Tag:amenity=pharmacy
+    amenity=place_of_worship: No:Tag:amenity=place of worship
+pl:
+  key:
+    height: Pl:Key:height
+    oneway: Pl:Key:oneway
+pt-br:
+  key:
+    access: Pt-br:Key:access
+    addr: Pt-br:Key:addr
+    aeroway: Pt-br:Key:aeroway
+    amenity: Pt-br:Key:amenity
+    barrier: Pt-br:Key:barrier
+    bicycle: Pt-br:Key:bicycle
+    boat: Pt-br:Key:boat
+    border_type: Pt-br:Key:border type
+    boundary: Pt-br:Key:boundary
+    bridge: Pt-br:Key:bridge
+    building: Pt-br:Key:building
+    cep: Pt-br:Key:cep
+    construction: Pt-br:Key:construction
+    ele: Pt-br:Key:ele
+    emergency: Pt-br:Key:emergency
+    fenced: Pt-br:Key:fenced
+    foot: Pt-br:Key:foot
+    hgv: Pt-br:Key:hgv
+    highway: Pt-br:Key:highway
+    horse: Pt-br:Key:horse
+    landuse: Pt-br:Key:landuse
+    lanes: Pt-br:Key:lanes
+    leisure: Pt-br:Key:leisure
+    man_made: Pt-br:Key:man made
+    maxdraught: Pt-br:Key:maxdraught
+    maxheight: Pt-br:Key:maxheight
+    maxheight:legal: Pt-br:Key:maxheight:legal
+    maxheight:marine: Pt-br:Key:maxheight:marine
+    maxheight:physical: Pt-br:Key:maxheight:physical
+    maxspeed: Pt-br:Key:maxspeed
+    maxweight: Pt-br:Key:maxweight
+    military: Pt-br:Key:military
+    motorcar: Pt-br:Key:motorcar
+    motorcycle: Pt-br:Key:motorcycle
+    name: Pt-br:Key:name
+    natural: Pt-br:Key:natural
+    noname: Pt-br:Key:noname
+    oneway: Pt-br:Key:oneway
+    operator: Pt-br:Key:operator
+    psv: Pt-br:Key:psv
+    religion: Pt-br:Key:religion
+    seamark: Pt-br:Key:seamark
+    shop: Pt-br:Key:shop
+    ski: Pt-br:Key:ski
+    source: Pt-br:Key:source
+    sport: Pt-br:Key:sport
+    surface: Pt-br:Key:surface
+    type: Pt-br:Key:type
+    waterway: Pt-br:Key:waterway
+  tag:
+    amenity=bank: Pt-br:Tag:amenity=bank
+    amenity=brothel: Pt-br:Tag:amenity=brothel
+    amenity=fuel: Pt-br:Tag:amenity=fuel
+    amenity=marketplace: Pt-br:Tag:amenity=marketplace
+    amenity=nightclub: Pt-br:Tag:amenity=nightclub
+    amenity=place_of_worship: Pt-br:Tag:amenity=place of worship
+    amenity=stripclub: Pt-br:Tag:amenity=stripclub
+    boundary=maritime: Pt-br:Tag:boundary=maritime
+    highway=road: Pt-br:Tag:highway=road
+    highway=stop: Pt-br:Tag:highway=stop
+    highway=unclassified: Pt-br:Tag:highway=unclassified
+    landuse=cemetery: Pt-br:Tag:landuse=cemetery
+    man_made=survey_point: Pt-br:Tag:man made=survey point
+    natural=wetland: Pt-br:Tag:natural=wetland
+    railway=rail: Pt-br:Tag:railway=rail
+    shop=mall: Pt-br:Tag:shop=mall
+    shop=stationery: Pt-br:Tag:shop=stationery
+    source=IBGE: Pt-br:Tag:source=IBGE
+    tourism=viewpoint: Pt-br:Tag:tourism=viewpoint
+    waterway=riverbank: Pt-br:Tag:waterway=riverbank
+ro:
+  tag:
+    junction=roundabout: Ro:Tag:junction=roundabout
+ro-md:
+  tag:
+    amenity=nightclub: Ro-md:Tag:amenity=nightclub
+ru:
+  key:
+    abutters: RU:Key:abutters
+    access: RU:Key:access
+    addr: RU:Key:addr
+    aerialway: RU:Key:aerialway
+    aeroway: RU:Key:aeroway
+    amenity: RU:Key:amenity
+    area: RU:Key:area
+    bicycle: RU:Key:bicycle
+    boat: RU:Key:boat
+    border_type: RU:Key:border type
+    boundary: RU:Key:boundary
+    building: RU:Key:building
+    bunker_type: RU:Key:bunker type
+    capacity: RU:Key:capacity
+    comment: RU:Key:comment
+    construction: RU:Key:construction
+    covered: RU:Key:covered
+    created_by: RU:Key:created by
+    crossing: RU:Key:crossing
+    cuisine: RU:Key:cuisine
+    cutting: RU:Key:cutting
+    denomination: RU:Key:denomination
+    description: RU:Key:description
+    direction: RU:Key:direction
+    disused: RU:Key:disused
+    ele: RU:Key:ele
+    embankment: RU:Key:embankment
+    fee: RU:Key:fee
+    fixme: RU:Key:fixme
+    foot: RU:Key:foot
+    gauge: RU:Key:gauge
+    height: RU:Key:height
+    highway: RU:Key:highway
+    historic: RU:Key:historic
+    horse: RU:Key:horse
+    information: RU:Key:information
+    internet_access: RU:Key:internet access
+    junction: RU:Key:junction
+    landuse: RU:Key:landuse
+    lanes: RU:Key:lanes
+    leisure: RU:Key:leisure
+    man_made: RU:Key:man made
+    maxheight: RU:Key:maxheight
+    maxlength: RU:Key:maxlength
+    maxspeed: RU:Key:maxspeed
+    maxweight: RU:Key:maxweight
+    maxwidth: RU:Key:maxwidth
+    military: RU:Key:military
+    minspeed: RU:Key:minspeed
+    name: RU:Key:name
+    natural: RU:Key:natural
+    noexit: RU:Key:noexit
+    note: RU:Key:note
+    oneway: RU:Key:oneway
+    opening_hours: RU:Key:opening hours
+    operator: RU:Key:operator
+    parking: RU:Key:parking
+    passing_places: RU:Key:passing places
+    paved:date: RU:Key:paved:date
+    phone: RU:Key:phone
+    place: RU:Key:place
+    population: RU:Key:population
+    power: RU:Key:power
+    railway: RU:Key:railway
+    ref: RU:Key:ref
+    religion: RU:Key:religion
+    route: RU:Key:route
+    service: RU:Key:service
+    shop: RU:Key:shop
+    smoothness: RU:Key:smoothness
+    source: RU:Key:source
+    surface: RU:Key:surface
+    tourism: RU:Key:tourism
+    tracktype: RU:Key:tracktype
+    traffic_calming: RU:Key:traffic calming
+    type: RU:Key:type
+    waterway: RU:Key:waterway
+    website: RU:Key:website
+    width: RU:Key:width
+    wikipedia: RU:Key:wikipedia
+    wood: RU:Key:wood
+  tag:
+    access=designated: RU:Tag:access=designated
+    aeroway=aerodrome: RU:Tag:aeroway=aerodrome
+    aeroway=apron: RU:Tag:aeroway=apron
+    aeroway=gate: RU:Tag:aeroway=gate
+    aeroway=helipad: RU:Tag:aeroway=helipad
+    aeroway=runway: RU:Tag:aeroway=runway
+    aeroway=taxiway: RU:Tag:aeroway=taxiway
+    aeroway=terminal: RU:Tag:aeroway=terminal
+    amenity=bank: RU:Tag:amenity=bank
+    amenity=bicycle_rental: RU:Tag:amenity=bicycle rental
+    amenity=brothel: RU:Tag:amenity=brothel
+    amenity=bus_station: RU:Tag:amenity=bus station
+    amenity=car_rental: RU:Tag:amenity=car rental
+    amenity=car_sharing: RU:Tag:amenity=car sharing
+    amenity=crematorium: RU:Tag:amenity=crematorium
+    amenity=fast_food: RU:Tag:amenity=fast food
+    amenity=fire_station: RU:Tag:amenity=fire station
+    amenity=fuel: RU:Tag:amenity=fuel
+    amenity=grave_yard: RU:Tag:amenity=grave yard
+    amenity=nightclub: RU:Tag:amenity=nightclub
+    amenity=parking: RU:Tag:amenity=parking
+    amenity=pharmacy: RU:Tag:amenity=pharmacy
+    amenity=place_of_worship: RU:Tag:amenity=place of worship
+    amenity=restaurant: RU:Tag:amenity=restaurant
+    amenity=school: RU:Tag:amenity=school
+    amenity=stripclub: RU:Tag:amenity=stripclub
+    amenity=taxi: RU:Tag:amenity=taxi
+    amenity=telephone: RU:Tag:amenity=telephone
+    amenity=theatre: RU:Tag:amenity=theatre
+    amenity=toilets: RU:Tag:amenity=toilets
+    amenity=vending_machine: RU:Tag:amenity=vending machine
+    amenity=waste_basket: RU:Tag:amenity=waste basket
+    amenity=waste_disposal: RU:Tag:amenity=waste disposal
+    atm=yes: RU:Tag:atm=yes
+    barrier=lift_gate: RU:Tag:barrier=lift gate
+    building=entrance: RU:Tag:building=entrance
+    highway=bridleway: RU:Tag:highway=bridleway
+    highway=bus_stop: RU:Tag:highway=bus stop
+    highway=crossing: RU:Tag:highway=crossing
+    highway=cycleway: RU:Tag:highway=cycleway
+    highway=emergency_access_point: RU:Tag:highway=emergency access point
+    highway=footway: RU:Tag:highway=footway
+    highway=ford: RU:Tag:highway=ford
+    highway=living_street: RU:Tag:highway=living street
+    highway=mini_roundabout: RU:Tag:highway=mini roundabout
+    highway=motorway: RU:Tag:highway=motorway
+    highway=motorway_junction: RU:Tag:highway=motorway junction
+    highway=motorway_link: RU:Tag:highway=motorway link
+    highway=passing_place: RU:Tag:highway=passing place
+    highway=path: RU:Tag:highway=path
+    highway=pedestrian: RU:Tag:highway=pedestrian
+    highway=platform: RU:Tag:highway=platform
+    highway=primary: RU:Tag:highway=primary
+    highway=primary_link: RU:Tag:highway=primary link
+    highway=residential: RU:Tag:highway=residential
+    highway=road: RU:Tag:highway=road
+    highway=secondary: RU:Tag:highway=secondary
+    highway=secondary_link: RU:Tag:highway=secondary link
+    highway=service: RU:Tag:highway=service
+    highway=services: RU:Tag:highway=services
+    highway=speed_camera: RU:Tag:highway=speed camera
+    highway=steps: RU:Tag:highway=steps
+    highway=stop: RU:Tag:highway=stop
+    highway=tertiary: RU:Tag:highway=tertiary
+    highway=track: RU:Tag:highway=track
+    highway=traffic_signals: RU:Tag:highway=traffic signals
+    highway=trunk: RU:Tag:highway=trunk
+    highway=trunk_link: RU:Tag:highway=trunk link
+    highway=turning_circle: RU:Tag:highway=turning circle
+    highway=unclassified: RU:Tag:highway=unclassified
+    historic=archaeological_site: RU:Tag:historic=archaeological site
+    historic=battlefield: RU:Tag:historic=battlefield
+    information=guidepost: RU:Tag:information=guidepost
+    junction=roundabout: RU:Tag:junction=roundabout
+    landuse=allotments: RU:Tag:landuse=allotments
+    landuse=cemetery: RU:Tag:landuse=cemetery
+    landuse=forest: RU:Tag:landuse=forest
+    landuse=garages: RU:Tag:landuse=garages
+    landuse=industrial: RU:Tag:landuse=industrial
+    landuse=meadow: RU:Tag:landuse=meadow
+    landuse=military: RU:Tag:landuse=military
+    landuse=railway: RU:Tag:landuse=railway
+    landuse=reservoir: RU:Tag:landuse=reservoir
+    landuse=residential: RU:Tag:landuse=residential
+    leisure=marina: RU:Tag:leisure=marina
+    leisure=water_park: RU:Tag:leisure=water park
+    man_made=beacon: RU:Tag:man made=beacon
+    man_made=cutline: RU:Tag:man made=cutline
+    man_made=lighthouse: RU:Tag:man made=lighthouse
+    man_made=pier: RU:Tag:man made=pier
+    natural=fell: RU:Tag:natural=fell
+    natural=spring: RU:Tag:natural=spring
+    natural=tree: RU:Tag:natural=tree
+    natural=water: RU:Tag:natural=water
+    natural=wetland: RU:Tag:natural=wetland
+    natural=wood: RU:Tag:natural=wood
+    opening_hours=24/7: RU:Tag:opening hours=24/7
+    place=island: RU:Tag:place=island
+    place=town: RU:Tag:place=town
+    place=village: RU:Tag:place=village
+    power=line: RU:Tag:power=line
+    power=sub_station: RU:Tag:power=sub station
+    power=tower: RU:Tag:power=tower
+    railway=crossing: RU:Tag:railway=crossing
+    railway=subway_entrance: RU:Tag:railway=subway entrance
+    route=bus: RU:Tag:route=bus
+    route=railway: RU:Tag:route=railway
+    route=train: RU:Tag:route=train
+    route=tram: RU:Tag:route=tram
+    service=alley: RU:Tag:service=alley
+    service=driveway: RU:Tag:service=driveway
+    service=parking_aisle: RU:Tag:service=parking aisle
+    shop=bakery: RU:Tag:shop=bakery
+    shop=bicycle: RU:Tag:shop=bicycle
+    shop=car: RU:Tag:shop=car
+    shop=clothes: RU:Tag:shop=clothes
+    shop=computer: RU:Tag:shop=computer
+    shop=confectionery: RU:Tag:shop=confectionery
+    shop=department_store: RU:Tag:shop=department store
+    shop=fabrics: RU:Tag:shop=fabrics
+    shop=florist: RU:Tag:shop=florist
+    shop=hairdresser: RU:Tag:shop=hairdresser
+    shop=kiosk: RU:Tag:shop=kiosk
+    shop=supermarket: RU:Tag:shop=supermarket
+    shop=travel_agency: RU:Tag:shop=travel agency
+    tourism=hotel: RU:Tag:tourism=hotel
+    tourism=information: RU:Tag:tourism=information
+    waterway=dam: RU:Tag:waterway=dam
+    waterway=rapids: RU:Tag:waterway=rapids
+    waterway=river: RU:Tag:waterway=river
+    waterway=riverbank: RU:Tag:waterway=riverbank
+    waterway=stream: RU:Tag:waterway=stream
+    waterway=weir: RU:Tag:waterway=weir
+sv:
+  tag:
+    amenity=place_of_worship: Sv:Tag:amenity=place of worship
+tr:
+  key:
+    amenity: Tr:Key:amenity
+    boundary: Tr:Key:boundary
+    highway: Tr:Key:highway
+    historic: Tr:Key:historic
+    leisure: Tr:Key:leisure
+    shop: Tr:Key:shop
+    sport: Tr:Key:sport
+uk:
+  key:
+    access: Uk:Key:access
+    highway: Uk:Key:highway
+    place: Uk:Key:place
+  tag:
+    highway=motorway: Uk:Tag:highway=motorway
+    highway=motorway_link: Uk:Tag:highway=motorway link
+    highway=primary: Uk:Tag:highway=primary
+    highway=primary_link: Uk:Tag:highway=primary link
+    highway=secondary: Uk:Tag:highway=secondary
+    highway=secondary_link: Uk:Tag:highway=secondary link
+    highway=tertiary: Uk:Tag:highway=tertiary
+    highway=trunk: Uk:Tag:highway=trunk
+    highway=trunk_link: Uk:Tag:highway=trunk link
+zh-hans:
+  key:
+    place: Zh-hans:Key:place
+
diff --git a/db/.gitignore b/db/.gitignore
new file mode 100644 (file)
index 0000000..6cd6b64
--- /dev/null
@@ -0,0 +1 @@
+*_structure.sql
diff --git a/db/functions/.gitignore b/db/functions/.gitignore
new file mode 100644 (file)
index 0000000..9d22eb4
--- /dev/null
@@ -0,0 +1,2 @@
+*.o
+*.so
index ee246999912aa11ac6cd60616df0ec9b525cd527..ed98776539ce826e2ad36d36c85ebb308f6df778 100644 (file)
  * issues. Applications that use the code below will continue to work seamlessly
  * when that happens.
  */
-var OpenLayers={singleFile:true};(function(){var singleFile=(typeof OpenLayers=="object"&&OpenLayers.singleFile);window.OpenLayers={_scriptName:(!singleFile)?"lib/OpenLayers.js":"OpenLayers.js",_getScriptLocation:function(){var scriptLocation="";var isOL=new RegExp("(^|(.*?\\/))("+OpenLayers._scriptName+")(\\?|$)");var scripts=document.getElementsByTagName('script');for(var i=0,len=scripts.length;i<len;i++){var src=scripts[i].getAttribute('src');if(src){var match=src.match(isOL);if(match){scriptLocation=match[1];break;}}}
-return scriptLocation;}};if(!singleFile){var jsfiles=new Array("OpenLayers/Util.js","OpenLayers/BaseTypes.js","OpenLayers/BaseTypes/Class.js","OpenLayers/BaseTypes/Bounds.js","OpenLayers/BaseTypes/Element.js","OpenLayers/BaseTypes/LonLat.js","OpenLayers/BaseTypes/Pixel.js","OpenLayers/BaseTypes/Size.js","OpenLayers/Console.js","OpenLayers/Tween.js","Rico/Corner.js","Rico/Color.js","OpenLayers/Ajax.js","OpenLayers/Events.js","OpenLayers/Request.js","OpenLayers/Request/XMLHttpRequest.js","OpenLayers/Projection.js","OpenLayers/Map.js","OpenLayers/Layer.js","OpenLayers/Icon.js","OpenLayers/Marker.js","OpenLayers/Marker/Box.js","OpenLayers/Popup.js","OpenLayers/Tile.js","OpenLayers/Tile/Image.js","OpenLayers/Tile/WFS.js","OpenLayers/Layer/Image.js","OpenLayers/Layer/SphericalMercator.js","OpenLayers/Layer/EventPane.js","OpenLayers/Layer/FixedZoomLevels.js","OpenLayers/Layer/Google.js","OpenLayers/Layer/VirtualEarth.js","OpenLayers/Layer/Yahoo.js","OpenLayers/Layer/HTTPRequest.js","OpenLayers/Layer/Grid.js","OpenLayers/Layer/MapGuide.js","OpenLayers/Layer/MapServer.js","OpenLayers/Layer/MapServer/Untiled.js","OpenLayers/Layer/KaMap.js","OpenLayers/Layer/KaMapCache.js","OpenLayers/Layer/MultiMap.js","OpenLayers/Layer/Markers.js","OpenLayers/Layer/Text.js","OpenLayers/Layer/WorldWind.js","OpenLayers/Layer/ArcGIS93Rest.js","OpenLayers/Layer/WMS.js","OpenLayers/Layer/WMS/Untiled.js","OpenLayers/Layer/ArcIMS.js","OpenLayers/Layer/GeoRSS.js","OpenLayers/Layer/Boxes.js","OpenLayers/Layer/XYZ.js","OpenLayers/Layer/TMS.js","OpenLayers/Layer/TileCache.js","OpenLayers/Popup/Anchored.js","OpenLayers/Popup/AnchoredBubble.js","OpenLayers/Popup/Framed.js","OpenLayers/Popup/FramedCloud.js","OpenLayers/Feature.js","OpenLayers/Feature/Vector.js","OpenLayers/Feature/WFS.js","OpenLayers/Handler.js","OpenLayers/Handler/Click.js","OpenLayers/Handler/Hover.js","OpenLayers/Handler/Point.js","OpenLayers/Handler/Path.js","OpenLayers/Handler/Polygon.js","OpenLayers/Handler/Feature.js","OpenLayers/Handler/Drag.js","OpenLayers/Handler/RegularPolygon.js","OpenLayers/Handler/Box.js","OpenLayers/Handler/MouseWheel.js","OpenLayers/Handler/Keyboard.js","OpenLayers/Control.js","OpenLayers/Control/Attribution.js","OpenLayers/Control/Button.js","OpenLayers/Control/ZoomBox.js","OpenLayers/Control/ZoomToMaxExtent.js","OpenLayers/Control/DragPan.js","OpenLayers/Control/Navigation.js","OpenLayers/Control/MouseDefaults.js","OpenLayers/Control/MousePosition.js","OpenLayers/Control/OverviewMap.js","OpenLayers/Control/KeyboardDefaults.js","OpenLayers/Control/PanZoom.js","OpenLayers/Control/PanZoomBar.js","OpenLayers/Control/ArgParser.js","OpenLayers/Control/Permalink.js","OpenLayers/Control/Scale.js","OpenLayers/Control/ScaleLine.js","OpenLayers/Control/Snapping.js","OpenLayers/Control/Split.js","OpenLayers/Control/LayerSwitcher.js","OpenLayers/Control/DrawFeature.js","OpenLayers/Control/DragFeature.js","OpenLayers/Control/ModifyFeature.js","OpenLayers/Control/Panel.js","OpenLayers/Control/SelectFeature.js","OpenLayers/Control/NavigationHistory.js","OpenLayers/Control/Measure.js","OpenLayers/Control/WMSGetFeatureInfo.js","OpenLayers/Geometry.js","OpenLayers/Geometry/Rectangle.js","OpenLayers/Geometry/Collection.js","OpenLayers/Geometry/Point.js","OpenLayers/Geometry/MultiPoint.js","OpenLayers/Geometry/Curve.js","OpenLayers/Geometry/LineString.js","OpenLayers/Geometry/LinearRing.js","OpenLayers/Geometry/Polygon.js","OpenLayers/Geometry/MultiLineString.js","OpenLayers/Geometry/MultiPolygon.js","OpenLayers/Geometry/Surface.js","OpenLayers/Renderer.js","OpenLayers/Renderer/Elements.js","OpenLayers/Renderer/SVG.js","OpenLayers/Renderer/Canvas.js","OpenLayers/Renderer/VML.js","OpenLayers/Layer/Vector.js","OpenLayers/Layer/Vector/RootContainer.js","OpenLayers/Strategy.js","OpenLayers/Strategy/Fixed.js","OpenLayers/Strategy/Cluster.js","OpenLayers/Strategy/Paging.js","OpenLayers/Strategy/BBOX.js","OpenLayers/Strategy/Save.js","OpenLayers/Protocol.js","OpenLayers/Protocol/HTTP.js","OpenLayers/Protocol/SQL.js","OpenLayers/Protocol/SQL/Gears.js","OpenLayers/Protocol/WFS.js","OpenLayers/Protocol/WFS/v1.js","OpenLayers/Protocol/WFS/v1_0_0.js","OpenLayers/Protocol/WFS/v1_1_0.js","OpenLayers/Layer/PointTrack.js","OpenLayers/Layer/GML.js","OpenLayers/Style.js","OpenLayers/StyleMap.js","OpenLayers/Rule.js","OpenLayers/Filter.js","OpenLayers/Filter/FeatureId.js","OpenLayers/Filter/Logical.js","OpenLayers/Filter/Comparison.js","OpenLayers/Filter/Spatial.js","OpenLayers/Format.js","OpenLayers/Format/XML.js","OpenLayers/Format/ArcXML.js","OpenLayers/Format/ArcXML/Features.js","OpenLayers/Format/GML.js","OpenLayers/Format/GML/Base.js","OpenLayers/Format/GML/v2.js","OpenLayers/Format/GML/v3.js","OpenLayers/Format/KML.js","OpenLayers/Format/GeoRSS.js","OpenLayers/Format/WFS.js","OpenLayers/Format/WFSCapabilities.js","OpenLayers/Format/WFSCapabilities/v1.js","OpenLayers/Format/WFSCapabilities/v1_0_0.js","OpenLayers/Format/WFSCapabilities/v1_1_0.js","OpenLayers/Format/WFSDescribeFeatureType.js","OpenLayers/Format/WMSDescribeLayer.js","OpenLayers/Format/WMSDescribeLayer/v1_1.js","OpenLayers/Format/WKT.js","OpenLayers/Format/OSM.js","OpenLayers/Format/GPX.js","OpenLayers/Format/Filter.js","OpenLayers/Format/Filter/v1.js","OpenLayers/Format/Filter/v1_0_0.js","OpenLayers/Format/Filter/v1_1_0.js","OpenLayers/Format/SLD.js","OpenLayers/Format/SLD/v1.js","OpenLayers/Format/SLD/v1_0_0.js","OpenLayers/Format/SLD/v1.js","OpenLayers/Format/WFST.js","OpenLayers/Format/WFST/v1.js","OpenLayers/Format/WFST/v1_0_0.js","OpenLayers/Format/WFST/v1_1_0.js","OpenLayers/Format/Text.js","OpenLayers/Format/JSON.js","OpenLayers/Format/GeoJSON.js","OpenLayers/Format/WMC.js","OpenLayers/Format/WMC/v1.js","OpenLayers/Format/WMC/v1_0_0.js","OpenLayers/Format/WMC/v1_1_0.js","OpenLayers/Format/WMSCapabilities.js","OpenLayers/Format/WMSCapabilities/v1_1.js","OpenLayers/Format/WMSCapabilities/v1_1_0.js","OpenLayers/Format/WMSCapabilities/v1_1_1.js","OpenLayers/Format/WMSGetFeatureInfo.js","OpenLayers/Layer/WFS.js","OpenLayers/Control/GetFeature.js","OpenLayers/Control/MouseToolbar.js","OpenLayers/Control/NavToolbar.js","OpenLayers/Control/PanPanel.js","OpenLayers/Control/Pan.js","OpenLayers/Control/ZoomIn.js","OpenLayers/Control/ZoomOut.js","OpenLayers/Control/ZoomPanel.js","OpenLayers/Control/EditingToolbar.js","OpenLayers/Lang.js","OpenLayers/Lang/en.js");var agent=navigator.userAgent;var docWrite=(agent.match("MSIE")||agent.match("Safari"));if(docWrite){var allScriptTags=new Array(jsfiles.length);}
+var OpenLayers={singleFile:true};(function(){var singleFile=(typeof OpenLayers=="object"&&OpenLayers.singleFile);var scriptLocation;window.OpenLayers={_scriptName:(!singleFile)?"lib/OpenLayers.js":"OpenLayers.js",_getScriptLocation:function(){if(scriptLocation!=undefined){return scriptLocation;}
+scriptLocation="";var isOL=new RegExp("(^|(.*?\\/))("+OpenLayers._scriptName+")(\\?|$)");var scripts=document.getElementsByTagName('script');for(var i=0,len=scripts.length;i<len;i++){var src=scripts[i].getAttribute('src');if(src){var match=src.match(isOL);if(match){scriptLocation=match[1];break;}}}
+return scriptLocation;}};if(!singleFile){var jsfiles=new Array("OpenLayers/Util.js","OpenLayers/BaseTypes.js","OpenLayers/BaseTypes/Class.js","OpenLayers/BaseTypes/Bounds.js","OpenLayers/BaseTypes/Element.js","OpenLayers/BaseTypes/LonLat.js","OpenLayers/BaseTypes/Pixel.js","OpenLayers/BaseTypes/Size.js","OpenLayers/Console.js","OpenLayers/Tween.js","Rico/Corner.js","Rico/Color.js","OpenLayers/Ajax.js","OpenLayers/Events.js","OpenLayers/Request.js","OpenLayers/Request/XMLHttpRequest.js","OpenLayers/Projection.js","OpenLayers/Map.js","OpenLayers/Layer.js","OpenLayers/Icon.js","OpenLayers/Marker.js","OpenLayers/Marker/Box.js","OpenLayers/Popup.js","OpenLayers/Tile.js","OpenLayers/Tile/Image.js","OpenLayers/Tile/Image/IFrame.js","OpenLayers/Tile/WFS.js","OpenLayers/Layer/Image.js","OpenLayers/Layer/SphericalMercator.js","OpenLayers/Layer/EventPane.js","OpenLayers/Layer/FixedZoomLevels.js","OpenLayers/Layer/Google.js","OpenLayers/Layer/VirtualEarth.js","OpenLayers/Layer/Yahoo.js","OpenLayers/Layer/HTTPRequest.js","OpenLayers/Layer/Grid.js","OpenLayers/Layer/MapGuide.js","OpenLayers/Layer/MapServer.js","OpenLayers/Layer/MapServer/Untiled.js","OpenLayers/Layer/KaMap.js","OpenLayers/Layer/KaMapCache.js","OpenLayers/Layer/MultiMap.js","OpenLayers/Layer/Markers.js","OpenLayers/Layer/Text.js","OpenLayers/Layer/WorldWind.js","OpenLayers/Layer/ArcGIS93Rest.js","OpenLayers/Layer/WMS.js","OpenLayers/Layer/WMS/Untiled.js","OpenLayers/Layer/WMS/Post.js","OpenLayers/Layer/ArcIMS.js","OpenLayers/Layer/GeoRSS.js","OpenLayers/Layer/Boxes.js","OpenLayers/Layer/XYZ.js","OpenLayers/Layer/TMS.js","OpenLayers/Layer/TileCache.js","OpenLayers/Layer/Zoomify.js","OpenLayers/Popup/Anchored.js","OpenLayers/Popup/AnchoredBubble.js","OpenLayers/Popup/Framed.js","OpenLayers/Popup/FramedCloud.js","OpenLayers/Feature.js","OpenLayers/Feature/Vector.js","OpenLayers/Feature/WFS.js","OpenLayers/Handler.js","OpenLayers/Handler/Click.js","OpenLayers/Handler/Hover.js","OpenLayers/Handler/Point.js","OpenLayers/Handler/Path.js","OpenLayers/Handler/Polygon.js","OpenLayers/Handler/Feature.js","OpenLayers/Handler/Drag.js","OpenLayers/Handler/RegularPolygon.js","OpenLayers/Handler/Box.js","OpenLayers/Handler/MouseWheel.js","OpenLayers/Handler/Keyboard.js","OpenLayers/Control.js","OpenLayers/Control/Attribution.js","OpenLayers/Control/Button.js","OpenLayers/Control/ZoomBox.js","OpenLayers/Control/ZoomToMaxExtent.js","OpenLayers/Control/DragPan.js","OpenLayers/Control/Navigation.js","OpenLayers/Control/MouseDefaults.js","OpenLayers/Control/MousePosition.js","OpenLayers/Control/OverviewMap.js","OpenLayers/Control/KeyboardDefaults.js","OpenLayers/Control/PanZoom.js","OpenLayers/Control/PanZoomBar.js","OpenLayers/Control/ArgParser.js","OpenLayers/Control/Permalink.js","OpenLayers/Control/Scale.js","OpenLayers/Control/ScaleLine.js","OpenLayers/Control/Snapping.js","OpenLayers/Control/Split.js","OpenLayers/Control/LayerSwitcher.js","OpenLayers/Control/DrawFeature.js","OpenLayers/Control/DragFeature.js","OpenLayers/Control/ModifyFeature.js","OpenLayers/Control/Panel.js","OpenLayers/Control/SelectFeature.js","OpenLayers/Control/NavigationHistory.js","OpenLayers/Control/Measure.js","OpenLayers/Control/WMSGetFeatureInfo.js","OpenLayers/Control/Graticule.js","OpenLayers/Control/TransformFeature.js","OpenLayers/Geometry.js","OpenLayers/Geometry/Rectangle.js","OpenLayers/Geometry/Collection.js","OpenLayers/Geometry/Point.js","OpenLayers/Geometry/MultiPoint.js","OpenLayers/Geometry/Curve.js","OpenLayers/Geometry/LineString.js","OpenLayers/Geometry/LinearRing.js","OpenLayers/Geometry/Polygon.js","OpenLayers/Geometry/MultiLineString.js","OpenLayers/Geometry/MultiPolygon.js","OpenLayers/Geometry/Surface.js","OpenLayers/Renderer.js","OpenLayers/Renderer/Elements.js","OpenLayers/Renderer/SVG.js","OpenLayers/Renderer/Canvas.js","OpenLayers/Renderer/VML.js","OpenLayers/Layer/Vector.js","OpenLayers/Layer/Vector/RootContainer.js","OpenLayers/Strategy.js","OpenLayers/Strategy/Fixed.js","OpenLayers/Strategy/Cluster.js","OpenLayers/Strategy/Paging.js","OpenLayers/Strategy/BBOX.js","OpenLayers/Strategy/Save.js","OpenLayers/Strategy/Refresh.js","OpenLayers/Filter.js","OpenLayers/Filter/FeatureId.js","OpenLayers/Filter/Logical.js","OpenLayers/Filter/Comparison.js","OpenLayers/Filter/Spatial.js","OpenLayers/Protocol.js","OpenLayers/Protocol/HTTP.js","OpenLayers/Protocol/SQL.js","OpenLayers/Protocol/SQL/Gears.js","OpenLayers/Protocol/WFS.js","OpenLayers/Protocol/WFS/v1.js","OpenLayers/Protocol/WFS/v1_0_0.js","OpenLayers/Protocol/WFS/v1_1_0.js","OpenLayers/Protocol/SOS.js","OpenLayers/Protocol/SOS/v1_0_0.js","OpenLayers/Layer/PointTrack.js","OpenLayers/Layer/GML.js","OpenLayers/Style.js","OpenLayers/StyleMap.js","OpenLayers/Rule.js","OpenLayers/Format.js","OpenLayers/Format/XML.js","OpenLayers/Format/ArcXML.js","OpenLayers/Format/ArcXML/Features.js","OpenLayers/Format/GML.js","OpenLayers/Format/GML/Base.js","OpenLayers/Format/GML/v2.js","OpenLayers/Format/GML/v3.js","OpenLayers/Format/Atom.js","OpenLayers/Format/KML.js","OpenLayers/Format/GeoRSS.js","OpenLayers/Format/WFS.js","OpenLayers/Format/WFSCapabilities.js","OpenLayers/Format/WFSCapabilities/v1.js","OpenLayers/Format/WFSCapabilities/v1_0_0.js","OpenLayers/Format/WFSCapabilities/v1_1_0.js","OpenLayers/Format/WFSDescribeFeatureType.js","OpenLayers/Format/WMSDescribeLayer.js","OpenLayers/Format/WMSDescribeLayer/v1_1.js","OpenLayers/Format/WKT.js","OpenLayers/Format/OSM.js","OpenLayers/Format/GPX.js","OpenLayers/Format/Filter.js","OpenLayers/Format/Filter/v1.js","OpenLayers/Format/Filter/v1_0_0.js","OpenLayers/Format/Filter/v1_1_0.js","OpenLayers/Format/SLD.js","OpenLayers/Format/SLD/v1.js","OpenLayers/Format/SLD/v1_0_0.js","OpenLayers/Format/CSWGetDomain.js","OpenLayers/Format/CSWGetDomain/v2_0_2.js","OpenLayers/Format/CSWGetRecords.js","OpenLayers/Format/CSWGetRecords/v2_0_2.js","OpenLayers/Format/WFST.js","OpenLayers/Format/WFST/v1.js","OpenLayers/Format/WFST/v1_0_0.js","OpenLayers/Format/WFST/v1_1_0.js","OpenLayers/Format/Text.js","OpenLayers/Format/JSON.js","OpenLayers/Format/GeoJSON.js","OpenLayers/Format/WMC.js","OpenLayers/Format/WMC/v1.js","OpenLayers/Format/WMC/v1_0_0.js","OpenLayers/Format/WMC/v1_1_0.js","OpenLayers/Format/WMSCapabilities.js","OpenLayers/Format/WMSCapabilities/v1.js","OpenLayers/Format/WMSCapabilities/v1_1.js","OpenLayers/Format/WMSCapabilities/v1_1_0.js","OpenLayers/Format/WMSCapabilities/v1_1_1.js","OpenLayers/Format/WMSCapabilities/v1_3.js","OpenLayers/Format/WMSCapabilities/v1_3_0.js","OpenLayers/Format/WMSGetFeatureInfo.js","OpenLayers/Format/OWSCommon/v1_1_0.js","OpenLayers/Format/SOSCapabilities.js","OpenLayers/Format/SOSCapabilities/v1_0_0.js","OpenLayers/Format/SOSGetObservation.js","OpenLayers/Format/SOSGetFeatureOfInterest.js","OpenLayers/Layer/WFS.js","OpenLayers/Control/GetFeature.js","OpenLayers/Control/MouseToolbar.js","OpenLayers/Control/NavToolbar.js","OpenLayers/Control/PanPanel.js","OpenLayers/Control/Pan.js","OpenLayers/Control/ZoomIn.js","OpenLayers/Control/ZoomOut.js","OpenLayers/Control/ZoomPanel.js","OpenLayers/Control/EditingToolbar.js","OpenLayers/Lang.js","OpenLayers/Lang/en.js");var agent=navigator.userAgent;var docWrite=(agent.match("MSIE")||agent.match("Safari"));if(docWrite){var allScriptTags=new Array(jsfiles.length);}
 var host=OpenLayers._getScriptLocation()+"lib/";for(var i=0,len=jsfiles.length;i<len;i++){if(docWrite){allScriptTags[i]="<script src='"+host+jsfiles[i]+"'></script>";}else{var s=document.createElement("script");s.src=host+jsfiles[i];var h=document.getElementsByTagName("head").length?document.getElementsByTagName("head")[0]:document.body;h.appendChild(s);}}
-if(docWrite){document.write(allScriptTags.join(""));}}})();OpenLayers.VERSION_NUMBER="OpenLayers 2.8 -- $Revision: 9492 $";OpenLayers.String={startsWith:function(str,sub){return(str.indexOf(sub)==0);},contains:function(str,sub){return(str.indexOf(sub)!=-1);},trim:function(str){return str.replace(/^\s\s*/,'').replace(/\s\s*$/,'');},camelize:function(str){var oStringList=str.split('-');var camelizedString=oStringList[0];for(var i=1,len=oStringList.length;i<len;i++){var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}
+if(docWrite){document.write(allScriptTags.join(""));}}})();OpenLayers.VERSION_NUMBER="$Revision: 10129 $";OpenLayers.String={startsWith:function(str,sub){return(str.indexOf(sub)==0);},contains:function(str,sub){return(str.indexOf(sub)!=-1);},trim:function(str){return str.replace(/^\s\s*/,'').replace(/\s\s*$/,'');},camelize:function(str){var oStringList=str.split('-');var camelizedString=oStringList[0];for(var i=1,len=oStringList.length;i<len;i++){var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}
 return camelizedString;},format:function(template,context,args){if(!context){context=window;}
 var replacer=function(str,match){var replacement;var subs=match.split(/\.+/);for(var i=0;i<subs.length;i++){if(i==0){replacement=context;}
 replacement=replacement[subs[i]];}
@@ -109,7 +110,7 @@ var integer=parts[0];if(tsep){var thousands=/(-?[0-9]+)([0-9]{3})/;while(thousan
 var str;if(dec==0){str=integer;}else{var rem=parts.length>1?parts[1]:"0";if(dec!=null){rem=rem+new Array(dec-rem.length+1).join("0");}
 str=integer+dsep+rem;}
 return str;}};if(!Number.prototype.limitSigDigs){Number.prototype.limitSigDigs=function(sig){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Number.limitSigDigs'}));return OpenLayers.Number.limitSigDigs(this,sig);};}
-OpenLayers.Function={bind:function(func,object){var args=Array.prototype.slice.apply(arguments,[2]);return function(){var newArgs=args.concat(Array.prototype.slice.apply(arguments,[0]));return func.apply(object,newArgs);};},bindAsEventListener:function(func,object){return function(event){return func.call(object,event||window.event);};}};if(!Function.prototype.bind){Function.prototype.bind=function(){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Function.bind'}));Array.prototype.unshift.apply(arguments,[this]);return OpenLayers.Function.bind.apply(null,arguments);};}
+OpenLayers.Function={bind:function(func,object){var args=Array.prototype.slice.apply(arguments,[2]);return function(){var newArgs=args.concat(Array.prototype.slice.apply(arguments,[0]));return func.apply(object,newArgs);};},bindAsEventListener:function(func,object){return function(event){return func.call(object,event||window.event);};},False:function(){return false;},True:function(){return true;}};if(!Function.prototype.bind){Function.prototype.bind=function(){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Function.bind'}));Array.prototype.unshift.apply(arguments,[this]);return OpenLayers.Function.bind.apply(null,arguments);};}
 if(!Function.prototype.bindAsEventListener){Function.prototype.bindAsEventListener=function(object){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Function.bindAsEventListener'}));return OpenLayers.Function.bindAsEventListener(this,object);};}
 OpenLayers.Array={filter:function(array,callback,caller){var selected=[];if(Array.prototype.filter){selected=array.filter(callback,caller);}else{var len=array.length;if(typeof callback!="function"){throw new TypeError();}
 for(var i=0;i<len;i++){if(i in array){var val=array[i];if(callback.call(caller,val,i,array)){selected.push(val);}}}}
@@ -121,12 +122,12 @@ OpenLayers.Util.extend(proto,arguments[i]);}
 return proto;};OpenLayers.Util={};OpenLayers.Util.getElement=function(){var elements=[];for(var i=0,len=arguments.length;i<len;i++){var element=arguments[i];if(typeof element=='string'){element=document.getElementById(element);}
 if(arguments.length==1){return element;}
 elements.push(element);}
-return elements;};if(typeof window.$==="undefined"){window.$=OpenLayers.Util.getElement;}
+return elements;};OpenLayers.Util.isElement=function(o){return!!(o&&o.nodeType===1);};if(typeof window.$==="undefined"){window.$=OpenLayers.Util.getElement;}
 OpenLayers.Util.extend=function(destination,source){destination=destination||{};if(source){for(var property in source){var value=source[property];if(value!==undefined){destination[property]=value;}}
 var sourceIsEvt=typeof window.Event=="function"&&source instanceof window.Event;if(!sourceIsEvt&&source.hasOwnProperty&&source.hasOwnProperty('toString')){destination.toString=source.toString;}}
 return destination;};OpenLayers.Util.removeItem=function(array,item){for(var i=array.length-1;i>=0;i--){if(array[i]==item){array.splice(i,1);}}
-return array;};OpenLayers.Util.clearArray=function(array){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'array = []'}));array.length=0;};OpenLayers.Util.indexOf=function(array,obj){for(var i=0,len=array.length;i<len;i++){if(array[i]==obj){return i;}}
-return-1;};OpenLayers.Util.modifyDOMElement=function(element,id,px,sz,position,border,overflow,opacity){if(id){element.id=id;}
+return array;};OpenLayers.Util.clearArray=function(array){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'array = []'}));array.length=0;};OpenLayers.Util.indexOf=function(array,obj){if(typeof array.indexOf=="function"){return array.indexOf(obj);}else{for(var i=0,len=array.length;i<len;i++){if(array[i]==obj){return i;}}
+return-1;}};OpenLayers.Util.modifyDOMElement=function(element,id,px,sz,position,border,overflow,opacity){if(id){element.id=id;}
 if(px){element.style.left=px.x+"px";element.style.top=px.y+"px";}
 if(sz){element.style.width=sz.w+"px";element.style.height=sz.h+"px";}
 if(position){element.style.position=position;}
@@ -139,9 +140,10 @@ OpenLayers.Util.modifyDOMElement(dom,id,px,sz,position,border,overflow,opacity);
 if(!position){position="relative";}
 OpenLayers.Util.modifyDOMElement(image,id,px,sz,position,border,null,opacity);if(delayDisplay){image.style.display="none";OpenLayers.Event.observe(image,"load",OpenLayers.Function.bind(OpenLayers.Util.onImageLoad,image));OpenLayers.Event.observe(image,"error",OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError,image));}
 image.style.alt=id;image.galleryImg="no";if(imgURL){image.src=imgURL;}
-return image;};OpenLayers.Util.setOpacity=function(element,opacity){OpenLayers.Util.modifyDOMElement(element,null,null,null,null,null,null,opacity);};OpenLayers.Util.onImageLoad=function(){if(!this.viewRequestID||(this.map&&this.viewRequestID==this.map.viewRequestID)){this.style.backgroundColor="transparent";this.style.display="";}};OpenLayers.Util.onImageLoadErrorColor="pink";OpenLayers.IMAGE_RELOAD_ATTEMPTS=0;OpenLayers.Util.onImageLoadError=function(){this._attempts=(this._attempts)?(this._attempts+1):1;if(this._attempts<=OpenLayers.IMAGE_RELOAD_ATTEMPTS){var urls=this.urls;if(urls&&urls instanceof Array&&urls.length>1){var src=this.src.toString();var current_url,k;for(k=0;current_url=urls[k];k++){if(src.indexOf(current_url)!=-1){break;}}
+return image;};OpenLayers.Util.setOpacity=function(element,opacity){OpenLayers.Util.modifyDOMElement(element,null,null,null,null,null,null,opacity);};OpenLayers.Util.onImageLoad=function(){if(!this.viewRequestID||(this.map&&this.viewRequestID==this.map.viewRequestID)){this.style.display="";}
+OpenLayers.Element.removeClass(this,"olImageLoadError");};OpenLayers.IMAGE_RELOAD_ATTEMPTS=0;OpenLayers.Util.onImageLoadError=function(){this._attempts=(this._attempts)?(this._attempts+1):1;if(this._attempts<=OpenLayers.IMAGE_RELOAD_ATTEMPTS){var urls=this.urls;if(urls&&urls instanceof Array&&urls.length>1){var src=this.src.toString();var current_url,k;for(k=0;current_url=urls[k];k++){if(src.indexOf(current_url)!=-1){break;}}
 var guess=Math.floor(urls.length*Math.random());var new_url=urls[guess];k=0;while(new_url==current_url&&k++<4){guess=Math.floor(urls.length*Math.random());new_url=urls[guess];}
-this.src=src.replace(current_url,new_url);}else{this.src=this.src;}}else{this.style.backgroundColor=OpenLayers.Util.onImageLoadErrorColor;}
+this.src=src.replace(current_url,new_url);}else{this.src=this.src;}}else{OpenLayers.Element.addClass(this,"olImageLoadError");}
 this.style.display="";};OpenLayers.Util.alphaHackNeeded=null;OpenLayers.Util.alphaHack=function(){if(OpenLayers.Util.alphaHackNeeded==null){var arVersion=navigator.appVersion.split("MSIE");var version=parseFloat(arVersion[1]);var filter=false;try{filter=!!(document.body.filters);}catch(e){}
 OpenLayers.Util.alphaHackNeeded=(filter&&(version>=5.5)&&(version<7));}
 return OpenLayers.Util.alphaHackNeeded;};OpenLayers.Util.modifyAlphaImageDiv=function(div,id,px,sz,imgURL,position,border,sizing,opacity){OpenLayers.Util.modifyDOMElement(div,id,px,sz,position,null,null,opacity);var img=div.childNodes[0];if(imgURL){img.src=imgURL;}
@@ -152,11 +154,12 @@ img.style.filter="alpha(opacity=0)";}};OpenLayers.Util.createAlphaImageDiv=funct
 OpenLayers.Util.modifyAlphaImageDiv(div,id,px,sz,imgURL,position,border,sizing,opacity);return div;};OpenLayers.Util.upperCaseObject=function(object){var uObject={};for(var key in object){uObject[key.toUpperCase()]=object[key];}
 return uObject;};OpenLayers.Util.applyDefaults=function(to,from){to=to||{};var fromIsEvt=typeof window.Event=="function"&&from instanceof window.Event;for(var key in from){if(to[key]===undefined||(!fromIsEvt&&from.hasOwnProperty&&from.hasOwnProperty(key)&&!to.hasOwnProperty(key))){to[key]=from[key];}}
 if(!fromIsEvt&&from&&from.hasOwnProperty&&from.hasOwnProperty('toString')&&!to.hasOwnProperty('toString')){to.toString=from.toString;}
-return to;};OpenLayers.Util.getParameterString=function(params){var paramsArray=[];for(var key in params){var value=params[key];if((value!=null)&&(typeof value!='function')){var encodedValue;if(typeof value=='object'&&value.constructor==Array){var encodedItemArray=[];for(var itemIndex=0,len=value.length;itemIndex<len;itemIndex++){encodedItemArray.push(encodeURIComponent(value[itemIndex]));}
+return to;};OpenLayers.Util.getParameterString=function(params){var paramsArray=[];for(var key in params){var value=params[key];if((value!=null)&&(typeof value!='function')){var encodedValue;if(typeof value=='object'&&value.constructor==Array){var encodedItemArray=[];var item;for(var itemIndex=0,len=value.length;itemIndex<len;itemIndex++){item=value[itemIndex];encodedItemArray.push(encodeURIComponent((item===null||item===undefined)?"":item));}
 encodedValue=encodedItemArray.join(",");}
 else{encodedValue=encodeURIComponent(value);}
 paramsArray.push(encodeURIComponent(key)+"="+encodedValue);}}
-return paramsArray.join("&");};OpenLayers.ImgPath='';OpenLayers.Util.getImagesLocation=function(){return OpenLayers.ImgPath||(OpenLayers._getScriptLocation()+"img/");};OpenLayers.Util.Try=function(){var returnValue=null;for(var i=0,len=arguments.length;i<len;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
+return paramsArray.join("&");};OpenLayers.Util.urlAppend=function(url,paramStr){var newUrl=url;if(paramStr){var parts=(url+" ").split(/[?&]/);newUrl+=(parts.pop()===" "?paramStr:parts.length?"&"+paramStr:"?"+paramStr);}
+return newUrl;};OpenLayers.ImgPath='';OpenLayers.Util.getImagesLocation=function(){return OpenLayers.ImgPath||(OpenLayers._getScriptLocation()+"img/");};OpenLayers.Util.Try=function(){var returnValue=null;for(var i=0,len=arguments.length;i<len;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
 return returnValue;};OpenLayers.Util.getNodes=function(p,tagName){var nodes=OpenLayers.Util.Try(function(){return OpenLayers.Util._getNodes(p.documentElement.childNodes,tagName);},function(){return OpenLayers.Util._getNodes(p.childNodes,tagName);});return nodes;};OpenLayers.Util._getNodes=function(nodes,tagName){var retArray=[];for(var i=0,len=nodes.length;i<len;i++){if(nodes[i].nodeName==tagName){retArray.push(nodes[i]);}}
 return retArray;};OpenLayers.Util.getTagText=function(parent,item,index){var result=OpenLayers.Util.getNodes(parent,item);if(result&&(result.length>0))
 {if(!index){index=0;}
@@ -171,12 +174,12 @@ var cosSigma=sinU1*sinU2+cosU1*cosU2*cosLambda;var sigma=Math.atan2(sinSigma,cos
 if(iterLimit==0){return NaN;}
 var uSq=cosSqAlpha*(a*a-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)-
 B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));var s=b*A*(sigma-deltaSigma);var d=s.toFixed(3)/1000;return d;};OpenLayers.Util.getParameters=function(url){url=url||window.location.href;var paramsString="";if(OpenLayers.String.contains(url,'?')){var start=url.indexOf('?')+1;var end=OpenLayers.String.contains(url,"#")?url.indexOf('#'):url.length;paramsString=url.substring(start,end);}
-var parameters={};var pairs=paramsString.split(/[&;]/);for(var i=0,len=pairs.length;i<len;++i){var keyValue=pairs[i].split('=');if(keyValue[0]){var key=decodeURIComponent(keyValue[0]);var value=keyValue[1]||'';value=value.split(",");for(var j=0,jlen=value.length;j<jlen;j++){value[j]=decodeURIComponent(value[j]);}
-if(value.length==1){value=value[0];}
+var parameters={};var pairs=paramsString.split(/[&;]/);for(var i=0,len=pairs.length;i<len;++i){var keyValue=pairs[i].split('=');if(keyValue[0]){var key=decodeURIComponent(keyValue[0]);var value=keyValue[1]||'';value=decodeURIComponent(value.replace(/\+/g," ")).split(",");if(value.length==1){value=value[0];}
 parameters[key]=value;}}
 return parameters;};OpenLayers.Util.getArgs=function(url){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Util.getParameters'}));return OpenLayers.Util.getParameters(url);};OpenLayers.Util.lastSeqID=0;OpenLayers.Util.createUniqueID=function(prefix){if(prefix==null){prefix="id_";}
-OpenLayers.Util.lastSeqID+=1;return prefix+OpenLayers.Util.lastSeqID;};OpenLayers.INCHES_PER_UNIT={'inches':1.0,'ft':12.0,'mi':63360.0,'m':39.3701,'km':39370.1,'dd':4374754,'yd':36};OpenLayers.INCHES_PER_UNIT["in"]=OpenLayers.INCHES_PER_UNIT.inches;OpenLayers.INCHES_PER_UNIT["degrees"]=OpenLayers.INCHES_PER_UNIT.dd;OpenLayers.INCHES_PER_UNIT["nmi"]=1852*OpenLayers.INCHES_PER_UNIT.m;OpenLayers.METERS_PER_INCH=0.02540005080010160020;OpenLayers.Util.extend(OpenLayers.INCHES_PER_UNIT,{"Inch":OpenLayers.INCHES_PER_UNIT.inches,"Meter":1.0/OpenLayers.METERS_PER_INCH,"Foot":0.30480060960121920243/OpenLayers.METERS_PER_INCH,"IFoot":0.30480000000000000000/OpenLayers.METERS_PER_INCH,"ClarkeFoot":0.3047972651151/OpenLayers.METERS_PER_INCH,"SearsFoot":0.30479947153867624624/OpenLayers.METERS_PER_INCH,"GoldCoastFoot":0.30479971018150881758/OpenLayers.METERS_PER_INCH,"IInch":0.02540000000000000000/OpenLayers.METERS_PER_INCH,"MicroInch":0.00002540000000000000/OpenLayers.METERS_PER_INCH,"Mil":0.00000002540000000000/OpenLayers.METERS_PER_INCH,"Centimeter":0.01000000000000000000/OpenLayers.METERS_PER_INCH,"Kilometer":1000.00000000000000000000/OpenLayers.METERS_PER_INCH,"Yard":0.91440182880365760731/OpenLayers.METERS_PER_INCH,"SearsYard":0.914398414616029/OpenLayers.METERS_PER_INCH,"IndianYard":0.91439853074444079983/OpenLayers.METERS_PER_INCH,"IndianYd37":0.91439523/OpenLayers.METERS_PER_INCH,"IndianYd62":0.9143988/OpenLayers.METERS_PER_INCH,"IndianYd75":0.9143985/OpenLayers.METERS_PER_INCH,"IndianFoot":0.30479951/OpenLayers.METERS_PER_INCH,"IndianFt37":0.30479841/OpenLayers.METERS_PER_INCH,"IndianFt62":0.3047996/OpenLayers.METERS_PER_INCH,"IndianFt75":0.3047995/OpenLayers.METERS_PER_INCH,"Mile":1609.34721869443738887477/OpenLayers.METERS_PER_INCH,"IYard":0.91440000000000000000/OpenLayers.METERS_PER_INCH,"IMile":1609.34400000000000000000/OpenLayers.METERS_PER_INCH,"NautM":1852.00000000000000000000/OpenLayers.METERS_PER_INCH,"Lat-66":110943.316488932731/OpenLayers.METERS_PER_INCH,"Lat-83":110946.25736872234125/OpenLayers.METERS_PER_INCH,"Decimeter":0.10000000000000000000/OpenLayers.METERS_PER_INCH,"Millimeter":0.00100000000000000000/OpenLayers.METERS_PER_INCH,"Dekameter":10.00000000000000000000/OpenLayers.METERS_PER_INCH,"Decameter":10.00000000000000000000/OpenLayers.METERS_PER_INCH,"Hectometer":100.00000000000000000000/OpenLayers.METERS_PER_INCH,"GermanMeter":1.0000135965/OpenLayers.METERS_PER_INCH,"CaGrid":0.999738/OpenLayers.METERS_PER_INCH,"ClarkeChain":20.1166194976/OpenLayers.METERS_PER_INCH,"GunterChain":20.11684023368047/OpenLayers.METERS_PER_INCH,"BenoitChain":20.116782494375872/OpenLayers.METERS_PER_INCH,"SearsChain":20.11676512155/OpenLayers.METERS_PER_INCH,"ClarkeLink":0.201166194976/OpenLayers.METERS_PER_INCH,"GunterLink":0.2011684023368047/OpenLayers.METERS_PER_INCH,"BenoitLink":0.20116782494375872/OpenLayers.METERS_PER_INCH,"SearsLink":0.2011676512155/OpenLayers.METERS_PER_INCH,"Rod":5.02921005842012/OpenLayers.METERS_PER_INCH,"IntnlChain":20.1168/OpenLayers.METERS_PER_INCH,"IntnlLink":0.201168/OpenLayers.METERS_PER_INCH,"Perch":5.02921005842012/OpenLayers.METERS_PER_INCH,"Pole":5.02921005842012/OpenLayers.METERS_PER_INCH,"Furlong":201.1684023368046/OpenLayers.METERS_PER_INCH,"Rood":3.778266898/OpenLayers.METERS_PER_INCH,"CapeFoot":0.3047972615/OpenLayers.METERS_PER_INCH,"Brealey":375.00000000000000000000/OpenLayers.METERS_PER_INCH,"ModAmFt":0.304812252984505969011938/OpenLayers.METERS_PER_INCH,"Fathom":1.8288/OpenLayers.METERS_PER_INCH,"NautM-UK":1853.184/OpenLayers.METERS_PER_INCH,"50kilometers":50000.0/OpenLayers.METERS_PER_INCH,"150kilometers":150000.0/OpenLayers.METERS_PER_INCH});OpenLayers.Util.extend(OpenLayers.INCHES_PER_UNIT,{"mm":OpenLayers.INCHES_PER_UNIT["Meter"]/1000.0,"cm":OpenLayers.INCHES_PER_UNIT["Meter"]/100.0,"dm":OpenLayers.INCHES_PER_UNIT["Meter"]*100.0,"km":OpenLayers.INCHES_PER_UNIT["Meter"]*1000.0,"kmi":OpenLayers.INCHES_PER_UNIT["nmi"],"fath":OpenLayers.INCHES_PER_UNIT["Fathom"],"ch":OpenLayers.INCHES_PER_UNIT["IntnlChain"],"link":OpenLayers.INCHES_PER_UNIT["IntnlLink"],"us-in":OpenLayers.INCHES_PER_UNIT["inches"],"us-ft":OpenLayers.INCHES_PER_UNIT["Foot"],"us-yd":OpenLayers.INCHES_PER_UNIT["Yard"],"us-ch":OpenLayers.INCHES_PER_UNIT["GunterChain"],"us-mi":OpenLayers.INCHES_PER_UNIT["Mile"],"ind-yd":OpenLayers.INCHES_PER_UNIT["IndianYd37"],"ind-ft":OpenLayers.INCHES_PER_UNIT["IndianFt37"],"ind-ch":20.11669506/OpenLayers.METERS_PER_INCH});OpenLayers.DOTS_PER_INCH=72;OpenLayers.Util.normalizeScale=function(scale){var normScale=(scale>1.0)?(1.0/scale):scale;return normScale;};OpenLayers.Util.getResolutionFromScale=function(scale,units){if(units==null){units="degrees";}
-var normScale=OpenLayers.Util.normalizeScale(scale);var resolution=1/(normScale*OpenLayers.INCHES_PER_UNIT[units]*OpenLayers.DOTS_PER_INCH);return resolution;};OpenLayers.Util.getScaleFromResolution=function(resolution,units){if(units==null){units="degrees";}
+OpenLayers.Util.lastSeqID+=1;return prefix+OpenLayers.Util.lastSeqID;};OpenLayers.INCHES_PER_UNIT={'inches':1.0,'ft':12.0,'mi':63360.0,'m':39.3701,'km':39370.1,'dd':4374754,'yd':36};OpenLayers.INCHES_PER_UNIT["in"]=OpenLayers.INCHES_PER_UNIT.inches;OpenLayers.INCHES_PER_UNIT["degrees"]=OpenLayers.INCHES_PER_UNIT.dd;OpenLayers.INCHES_PER_UNIT["nmi"]=1852*OpenLayers.INCHES_PER_UNIT.m;OpenLayers.METERS_PER_INCH=0.02540005080010160020;OpenLayers.Util.extend(OpenLayers.INCHES_PER_UNIT,{"Inch":OpenLayers.INCHES_PER_UNIT.inches,"Meter":1.0/OpenLayers.METERS_PER_INCH,"Foot":0.30480060960121920243/OpenLayers.METERS_PER_INCH,"IFoot":0.30480000000000000000/OpenLayers.METERS_PER_INCH,"ClarkeFoot":0.3047972651151/OpenLayers.METERS_PER_INCH,"SearsFoot":0.30479947153867624624/OpenLayers.METERS_PER_INCH,"GoldCoastFoot":0.30479971018150881758/OpenLayers.METERS_PER_INCH,"IInch":0.02540000000000000000/OpenLayers.METERS_PER_INCH,"MicroInch":0.00002540000000000000/OpenLayers.METERS_PER_INCH,"Mil":0.00000002540000000000/OpenLayers.METERS_PER_INCH,"Centimeter":0.01000000000000000000/OpenLayers.METERS_PER_INCH,"Kilometer":1000.00000000000000000000/OpenLayers.METERS_PER_INCH,"Yard":0.91440182880365760731/OpenLayers.METERS_PER_INCH,"SearsYard":0.914398414616029/OpenLayers.METERS_PER_INCH,"IndianYard":0.91439853074444079983/OpenLayers.METERS_PER_INCH,"IndianYd37":0.91439523/OpenLayers.METERS_PER_INCH,"IndianYd62":0.9143988/OpenLayers.METERS_PER_INCH,"IndianYd75":0.9143985/OpenLayers.METERS_PER_INCH,"IndianFoot":0.30479951/OpenLayers.METERS_PER_INCH,"IndianFt37":0.30479841/OpenLayers.METERS_PER_INCH,"IndianFt62":0.3047996/OpenLayers.METERS_PER_INCH,"IndianFt75":0.3047995/OpenLayers.METERS_PER_INCH,"Mile":1609.34721869443738887477/OpenLayers.METERS_PER_INCH,"IYard":0.91440000000000000000/OpenLayers.METERS_PER_INCH,"IMile":1609.34400000000000000000/OpenLayers.METERS_PER_INCH,"NautM":1852.00000000000000000000/OpenLayers.METERS_PER_INCH,"Lat-66":110943.316488932731/OpenLayers.METERS_PER_INCH,"Lat-83":110946.25736872234125/OpenLayers.METERS_PER_INCH,"Decimeter":0.10000000000000000000/OpenLayers.METERS_PER_INCH,"Millimeter":0.00100000000000000000/OpenLayers.METERS_PER_INCH,"Dekameter":10.00000000000000000000/OpenLayers.METERS_PER_INCH,"Decameter":10.00000000000000000000/OpenLayers.METERS_PER_INCH,"Hectometer":100.00000000000000000000/OpenLayers.METERS_PER_INCH,"GermanMeter":1.0000135965/OpenLayers.METERS_PER_INCH,"CaGrid":0.999738/OpenLayers.METERS_PER_INCH,"ClarkeChain":20.1166194976/OpenLayers.METERS_PER_INCH,"GunterChain":20.11684023368047/OpenLayers.METERS_PER_INCH,"BenoitChain":20.116782494375872/OpenLayers.METERS_PER_INCH,"SearsChain":20.11676512155/OpenLayers.METERS_PER_INCH,"ClarkeLink":0.201166194976/OpenLayers.METERS_PER_INCH,"GunterLink":0.2011684023368047/OpenLayers.METERS_PER_INCH,"BenoitLink":0.20116782494375872/OpenLayers.METERS_PER_INCH,"SearsLink":0.2011676512155/OpenLayers.METERS_PER_INCH,"Rod":5.02921005842012/OpenLayers.METERS_PER_INCH,"IntnlChain":20.1168/OpenLayers.METERS_PER_INCH,"IntnlLink":0.201168/OpenLayers.METERS_PER_INCH,"Perch":5.02921005842012/OpenLayers.METERS_PER_INCH,"Pole":5.02921005842012/OpenLayers.METERS_PER_INCH,"Furlong":201.1684023368046/OpenLayers.METERS_PER_INCH,"Rood":3.778266898/OpenLayers.METERS_PER_INCH,"CapeFoot":0.3047972615/OpenLayers.METERS_PER_INCH,"Brealey":375.00000000000000000000/OpenLayers.METERS_PER_INCH,"ModAmFt":0.304812252984505969011938/OpenLayers.METERS_PER_INCH,"Fathom":1.8288/OpenLayers.METERS_PER_INCH,"NautM-UK":1853.184/OpenLayers.METERS_PER_INCH,"50kilometers":50000.0/OpenLayers.METERS_PER_INCH,"150kilometers":150000.0/OpenLayers.METERS_PER_INCH});OpenLayers.Util.extend(OpenLayers.INCHES_PER_UNIT,{"mm":OpenLayers.INCHES_PER_UNIT["Meter"]/1000.0,"cm":OpenLayers.INCHES_PER_UNIT["Meter"]/100.0,"dm":OpenLayers.INCHES_PER_UNIT["Meter"]*100.0,"km":OpenLayers.INCHES_PER_UNIT["Meter"]*1000.0,"kmi":OpenLayers.INCHES_PER_UNIT["nmi"],"fath":OpenLayers.INCHES_PER_UNIT["Fathom"],"ch":OpenLayers.INCHES_PER_UNIT["IntnlChain"],"link":OpenLayers.INCHES_PER_UNIT["IntnlLink"],"us-in":OpenLayers.INCHES_PER_UNIT["inches"],"us-ft":OpenLayers.INCHES_PER_UNIT["Foot"],"us-yd":OpenLayers.INCHES_PER_UNIT["Yard"],"us-ch":OpenLayers.INCHES_PER_UNIT["GunterChain"],"us-mi":OpenLayers.INCHES_PER_UNIT["Mile"],"ind-yd":OpenLayers.INCHES_PER_UNIT["IndianYd37"],"ind-ft":OpenLayers.INCHES_PER_UNIT["IndianFt37"],"ind-ch":20.11669506/OpenLayers.METERS_PER_INCH});OpenLayers.DOTS_PER_INCH=72;OpenLayers.Util.normalizeScale=function(scale){var normScale=(scale>1.0)?(1.0/scale):scale;return normScale;};OpenLayers.Util.getResolutionFromScale=function(scale,units){var resolution;if(scale){if(units==null){units="degrees";}
+var normScale=OpenLayers.Util.normalizeScale(scale);resolution=1/(normScale*OpenLayers.INCHES_PER_UNIT[units]*OpenLayers.DOTS_PER_INCH);}
+return resolution;};OpenLayers.Util.getScaleFromResolution=function(resolution,units){if(units==null){units="degrees";}
 var scale=resolution*OpenLayers.INCHES_PER_UNIT[units]*OpenLayers.DOTS_PER_INCH;return scale;};OpenLayers.Util.safeStopPropagation=function(evt){OpenLayers.Event.stop(evt,true);};OpenLayers.Util.pagePosition=function(forElement){var valueT=0,valueL=0;var element=forElement;var child=forElement;while(element){if(element==document.body){if(OpenLayers.Element.getStyle(child,'position')=='absolute'){break;}}
 valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;child=element;try{element=element.offsetParent;}catch(e){OpenLayers.Console.error(OpenLayers.i18n("pagePositionFailed",{'elemId':element.id}));break;}}
 element=forElement;while(element){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;element=element.parentNode;}
@@ -199,7 +202,14 @@ if(!parentHasPositionAbsolute){container.style.position="absolute";}
 if(!w){w=parseInt(content.scrollWidth);container.style.width=w+"px";}
 if(!h){h=parseInt(content.scrollHeight);}
 container.removeChild(content);containerElement.removeChild(container);return new OpenLayers.Size(w,h);};OpenLayers.Util.getScrollbarWidth=function(){var scrollbarWidth=OpenLayers.Util._scrollbarWidth;if(scrollbarWidth==null){var scr=null;var inn=null;var wNoScroll=0;var wScroll=0;scr=document.createElement('div');scr.style.position='absolute';scr.style.top='-1000px';scr.style.left='-1000px';scr.style.width='100px';scr.style.height='50px';scr.style.overflow='hidden';inn=document.createElement('div');inn.style.width='100%';inn.style.height='200px';scr.appendChild(inn);document.body.appendChild(scr);wNoScroll=inn.offsetWidth;scr.style.overflow='scroll';wScroll=inn.offsetWidth;document.body.removeChild(document.body.lastChild);OpenLayers.Util._scrollbarWidth=(wNoScroll-wScroll);scrollbarWidth=OpenLayers.Util._scrollbarWidth;}
-return scrollbarWidth;};OpenLayers.Rico=new Object();OpenLayers.Rico.Corner={round:function(e,options){e=OpenLayers.Util.getElement(e);this._setOptions(options);var color=this.options.color;if(this.options.color=="fromElement"){color=this._background(e);}
+return scrollbarWidth;};OpenLayers.Util.getFormattedLonLat=function(coordinate,axis,dmsOption){if(!dmsOption){dmsOption='dms';}
+var abscoordinate=Math.abs(coordinate)
+var coordinatedegrees=Math.floor(abscoordinate);var coordinateminutes=(abscoordinate-coordinatedegrees)/(1/60);var tempcoordinateminutes=coordinateminutes;coordinateminutes=Math.floor(coordinateminutes);var coordinateseconds=(tempcoordinateminutes-coordinateminutes)/(1/60);coordinateseconds=Math.round(coordinateseconds*10);coordinateseconds/=10;if(coordinatedegrees<10){coordinatedegrees="0"+coordinatedegrees;}
+var str=coordinatedegrees+" ";if(dmsOption.indexOf('dm')>=0){if(coordinateminutes<10){coordinateminutes="0"+coordinateminutes;}
+str+=coordinateminutes+"'";if(dmsOption.indexOf('dms')>=0){if(coordinateseconds<10){coordinateseconds="0"+coordinateseconds;}
+str+=coordinateseconds+'"';}}
+if(axis=="lon"){str+=coordinate<0?OpenLayers.i18n("W"):OpenLayers.i18n("E");}else{str+=coordinate<0?OpenLayers.i18n("S"):OpenLayers.i18n("N");}
+return str;};OpenLayers.Rico=new Object();OpenLayers.Rico.Corner={round:function(e,options){e=OpenLayers.Util.getElement(e);this._setOptions(options);var color=this.options.color;if(this.options.color=="fromElement"){color=this._background(e);}
 var bgColor=this.options.bgColor;if(this.options.bgColor=="fromParent"){bgColor=this._background(e.offsetParent);}
 this._roundCornersImpl(e,color,bgColor);},changeColor:function(theDiv,newColor){theDiv.style.backgroundColor=newColor;var spanElements=theDiv.parentNode.getElementsByTagName("span");for(var currIdx=0;currIdx<spanElements.length;currIdx++){spanElements[currIdx].style.backgroundColor=newColor;}},changeOpacity:function(theDiv,newOpacity){var mozillaOpacity=newOpacity;var ieOpacity='alpha(opacity='+newOpacity*100+')';theDiv.style.opacity=mozillaOpacity;theDiv.style.filter=ieOpacity;var spanElements=theDiv.parentNode.getElementsByTagName("span");for(var currIdx=0;currIdx<spanElements.length;currIdx++){spanElements[currIdx].style.opacity=mozillaOpacity;spanElements[currIdx].style.filter=ieOpacity;}},reRound:function(theDiv,options){var topRico=theDiv.parentNode.childNodes[0];var bottomRico=theDiv.parentNode.childNodes[2];theDiv.parentNode.removeChild(topRico);theDiv.parentNode.removeChild(bottomRico);this.round(theDiv.parentNode,options);},_roundCornersImpl:function(e,color,bgColor){if(this.options.border){this._renderBorder(e,bgColor);}
 if(this._isTopRounded()){this._roundTopCorners(e,color,bgColor);}
@@ -222,7 +232,7 @@ else{el.style.borderLeftWidth=borderSize+"px";el.style.borderRightWidth=borderSi
 if(this.options.border!=false){el.style.borderLeftWidth=borderSize+"px";el.style.borderRightWidth=borderSize+"px";}},_marginSize:function(n){if(this._isTransparent()){return 0;}
 var marginSizes=[5,3,2,1];var blendedMarginSizes=[3,2,1,0];var compactMarginSizes=[2,1];var smBlendedMarginSizes=[1,0];if(this.options.compact&&this.options.blend){return smBlendedMarginSizes[n];}else if(this.options.compact){return compactMarginSizes[n];}else if(this.options.blend){return blendedMarginSizes[n];}else{return marginSizes[n];}},_borderSize:function(n){var transparentBorderSizes=[5,3,2,1];var blendedBorderSizes=[2,1,1,1];var compactBorderSizes=[1,0];var actualBorderSizes=[0,2,0,0];if(this.options.compact&&(this.options.blend||this._isTransparent())){return 1;}else if(this.options.compact){return compactBorderSizes[n];}else if(this.options.blend){return blendedBorderSizes[n];}else if(this.options.border){return actualBorderSizes[n];}else if(this._isTransparent()){return transparentBorderSizes[n];}
 return 0;},_hasString:function(str){for(var i=1;i<arguments.length;i++)if(str.indexOf(arguments[i])>=0){return true;}return false;},_blend:function(c1,c2){var cc1=OpenLayers.Rico.Color.createFromHex(c1);cc1.blend(OpenLayers.Rico.Color.createFromHex(c2));return cc1;},_background:function(el){try{return OpenLayers.Rico.Color.createColorFromBackground(el).asHex();}catch(err){return"#ffffff";}},_isTransparent:function(){return this.options.color=="transparent";},_isTopRounded:function(){return this._hasString(this.options.corners,"all","top","tl","tr");},_isBottomRounded:function(){return this._hasString(this.options.corners,"all","bottom","bl","br");},_hasSingleTextChild:function(el){return el.childNodes.length==1&&el.childNodes[0].nodeType==3;}};OpenLayers.Element={visible:function(element){return OpenLayers.Util.getElement(element).style.display!='none';},toggle:function(){for(var i=0,len=arguments.length;i<len;i++){var element=OpenLayers.Util.getElement(arguments[i]);var display=OpenLayers.Element.visible(element)?'hide':'show';OpenLayers.Element[display](element);}},hide:function(){for(var i=0,len=arguments.length;i<len;i++){var element=OpenLayers.Util.getElement(arguments[i]);element.style.display='none';}},show:function(){for(var i=0,len=arguments.length;i<len;i++){var element=OpenLayers.Util.getElement(arguments[i]);element.style.display='';}},remove:function(element){element=OpenLayers.Util.getElement(element);element.parentNode.removeChild(element);},getHeight:function(element){element=OpenLayers.Util.getElement(element);return element.offsetHeight;},getDimensions:function(element){element=OpenLayers.Util.getElement(element);if(OpenLayers.Element.getStyle(element,'display')!='none'){return{width:element.offsetWidth,height:element.offsetHeight};}
-var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;els.visibility='hidden';els.position='absolute';els.display='';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display='none';els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},hasClass:function(element,name){var names=element.className;return(!!names&&new RegExp("(^|\\s)"+name+"(\\s|$)").test(names));},addClass:function(element,name){if(!OpenLayers.Element.hasClass(element,name)){element.className+=(element.className?" ":"")+name;}
+var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},hasClass:function(element,name){var names=element.className;return(!!names&&new RegExp("(^|\\s)"+name+"(\\s|$)").test(names));},addClass:function(element,name){if(!OpenLayers.Element.hasClass(element,name)){element.className+=(element.className?" ":"")+name;}
 return element;},removeClass:function(element,name){var names=element.className;if(names){element.className=OpenLayers.String.trim(names.replace(new RegExp("(^|\\s+)"+name+"(\\s+|$)")," "));}
 return element;},toggleClass:function(element,name){if(OpenLayers.Element.hasClass(element,name)){OpenLayers.Element.removeClass(element,name);}else{OpenLayers.Element.addClass(element,name);}
 return element;},getStyle:function(element,style){element=OpenLayers.Util.getElement(element);var value=null;if(element&&element.style){value=element.style[OpenLayers.String.camelize(style)];if(!value){if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css.getPropertyValue(style):null;}else if(element.currentStyle){value=element.currentStyle[OpenLayers.String.camelize(style)];}}
@@ -273,20 +283,18 @@ if(origTL.y<this.map.paddingForPopups.top){newTL.y=this.map.paddingForPopups.top
 if((origTL.y+this.size.h)>(mapSize.h-this.map.paddingForPopups.bottom)){newTL.y=mapSize.h-this.map.paddingForPopups.bottom-this.size.h;}
 var dx=origTL.x-newTL.x;var dy=origTL.y-newTL.y;this.map.pan(dx,dy);},registerEvents:function(){this.events=new OpenLayers.Events(this,this.div,null,true);this.events.on({"mousedown":this.onmousedown,"mousemove":this.onmousemove,"mouseup":this.onmouseup,"click":this.onclick,"mouseout":this.onmouseout,"dblclick":this.ondblclick,scope:this});},onmousedown:function(evt){this.mousedown=true;OpenLayers.Event.stop(evt,true);},onmousemove:function(evt){if(this.mousedown){OpenLayers.Event.stop(evt,true);}},onmouseup:function(evt){if(this.mousedown){this.mousedown=false;OpenLayers.Event.stop(evt,true);}},onclick:function(evt){OpenLayers.Event.stop(evt,true);},onmouseout:function(evt){this.mousedown=false;},ondblclick:function(evt){OpenLayers.Event.stop(evt,true);},CLASS_NAME:"OpenLayers.Popup"});OpenLayers.Popup.WIDTH=200;OpenLayers.Popup.HEIGHT=200;OpenLayers.Popup.COLOR="white";OpenLayers.Popup.OPACITY=1;OpenLayers.Popup.BORDER="0px";OpenLayers.Renderer=OpenLayers.Class({container:null,root:null,extent:null,locked:false,size:null,resolution:null,map:null,initialize:function(containerID,options){this.container=OpenLayers.Util.getElement(containerID);},destroy:function(){this.container=null;this.extent=null;this.size=null;this.resolution=null;this.map=null;},supported:function(){return false;},setExtent:function(extent,resolutionChanged){this.extent=extent.clone();if(resolutionChanged){this.resolution=null;}},setSize:function(size){this.size=size.clone();this.resolution=null;},getResolution:function(){this.resolution=this.resolution||this.map.getResolution();return this.resolution;},drawFeature:function(feature,style){if(style==null){style=feature.style;}
 if(feature.geometry){var bounds=feature.geometry.getBounds();if(bounds){if(!bounds.intersectsBounds(this.extent)){style={display:"none"};}
-var rendered=this.drawGeometry(feature.geometry,style,feature.id);if(style.display!="none"&&style.label&&rendered!==false){this.drawText(feature.id,style,feature.geometry.getCentroid());}else{this.removeText(feature.id);}
+var rendered=this.drawGeometry(feature.geometry,style,feature.id);if(style.display!="none"&&style.label&&rendered!==false){var location=feature.geometry.getCentroid();if(style.labelXOffset||style.labelYOffset){xOffset=isNaN(style.labelXOffset)?0:style.labelXOffset;yOffset=isNaN(style.labelYOffset)?0:style.labelYOffset;var res=this.getResolution();location.move(xOffset*res,yOffset*res);}
+this.drawText(feature.id,style,location);}else{this.removeText(feature.id);}
 return rendered;}}},drawGeometry:function(geometry,style,featureId){},drawText:function(featureId,style,location){},removeText:function(featureId){},clear:function(){},getFeatureIdFromEvent:function(evt){},eraseFeatures:function(features){if(!(features instanceof Array)){features=[features];}
 for(var i=0,len=features.length;i<len;++i){this.eraseGeometry(features[i].geometry);this.removeText(features[i].id);}},eraseGeometry:function(geometry){},moveRoot:function(renderer){},getRenderLayerId:function(){return this.container.id;},CLASS_NAME:"OpenLayers.Renderer"});OpenLayers.Bounds=OpenLayers.Class({left:null,bottom:null,right:null,top:null,centerLonLat:null,initialize:function(left,bottom,right,top){if(left!=null){this.left=OpenLayers.Util.toFloat(left);}
 if(bottom!=null){this.bottom=OpenLayers.Util.toFloat(bottom);}
 if(right!=null){this.right=OpenLayers.Util.toFloat(right);}
 if(top!=null){this.top=OpenLayers.Util.toFloat(top);}},clone:function(){return new OpenLayers.Bounds(this.left,this.bottom,this.right,this.top);},equals:function(bounds){var equals=false;if(bounds!=null){equals=((this.left==bounds.left)&&(this.right==bounds.right)&&(this.top==bounds.top)&&(this.bottom==bounds.bottom));}
 return equals;},toString:function(){return("left-bottom=("+this.left+","+this.bottom+")"
-+" right-top=("+this.right+","+this.top+")");},toArray:function(){return[this.left,this.bottom,this.right,this.top];},toBBOX:function(decimal){if(decimal==null){decimal=6;}
-var mult=Math.pow(10,decimal);var bbox=Math.round(this.left*mult)/mult+","+
-Math.round(this.bottom*mult)/mult+","+
-Math.round(this.right*mult)/mult+","+
-Math.round(this.top*mult)/mult;return bbox;},toGeometry:function(){return new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing([new OpenLayers.Geometry.Point(this.left,this.bottom),new OpenLayers.Geometry.Point(this.right,this.bottom),new OpenLayers.Geometry.Point(this.right,this.top),new OpenLayers.Geometry.Point(this.left,this.top)])]);},getWidth:function(){return(this.right-this.left);},getHeight:function(){return(this.top-this.bottom);},getSize:function(){return new OpenLayers.Size(this.getWidth(),this.getHeight());},getCenterPixel:function(){return new OpenLayers.Pixel((this.left+this.right)/2,(this.bottom+this.top)/2);},getCenterLonLat:function(){if(!this.centerLonLat){this.centerLonLat=new OpenLayers.LonLat((this.left+this.right)/2,(this.bottom+this.top)/2);}
++" right-top=("+this.right+","+this.top+")");},toArray:function(reverseAxisOrder){if(reverseAxisOrder===true){return[this.bottom,this.left,this.top,this.right];}else{return[this.left,this.bottom,this.right,this.top];}},toBBOX:function(decimal,reverseAxisOrder){if(decimal==null){decimal=6;}
+var mult=Math.pow(10,decimal);var xmin=Math.round(this.left*mult)/mult;var ymin=Math.round(this.bottom*mult)/mult;var xmax=Math.round(this.right*mult)/mult;var ymax=Math.round(this.top*mult)/mult;if(reverseAxisOrder===true){return ymin+","+xmin+","+ymax+","+xmax;}else{return xmin+","+ymin+","+xmax+","+ymax;}},toGeometry:function(){return new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing([new OpenLayers.Geometry.Point(this.left,this.bottom),new OpenLayers.Geometry.Point(this.right,this.bottom),new OpenLayers.Geometry.Point(this.right,this.top),new OpenLayers.Geometry.Point(this.left,this.top)])]);},getWidth:function(){return(this.right-this.left);},getHeight:function(){return(this.top-this.bottom);},getSize:function(){return new OpenLayers.Size(this.getWidth(),this.getHeight());},getCenterPixel:function(){return new OpenLayers.Pixel((this.left+this.right)/2,(this.bottom+this.top)/2);},getCenterLonLat:function(){if(!this.centerLonLat){this.centerLonLat=new OpenLayers.LonLat((this.left+this.right)/2,(this.bottom+this.top)/2);}
 return this.centerLonLat;},scale:function(ratio,origin){if(origin==null){origin=this.getCenterLonLat();}
-var bounds=[];var origx,origy;if(origin.CLASS_NAME=="OpenLayers.LonLat"){origx=origin.lon;origy=origin.lat;}else{origx=origin.x;origy=origin.y;}
+var origx,origy;if(origin.CLASS_NAME=="OpenLayers.LonLat"){origx=origin.lon;origy=origin.lat;}else{origx=origin.x;origy=origin.y;}
 var left=(this.left-origx)*ratio+origx;var bottom=(this.bottom-origy)*ratio+origy;var right=(this.right-origx)*ratio+origx;var top=(this.top-origy)*ratio+origy;return new OpenLayers.Bounds(left,bottom,right,top);},add:function(x,y){if((x==null)||(y==null)){var msg=OpenLayers.i18n("boundsAddError");OpenLayers.Console.error(msg);return null;}
 return new OpenLayers.Bounds(this.left+x,this.bottom+y,this.right+x,this.top+y);},extend:function(object){var bounds=null;if(object){switch(object.CLASS_NAME){case"OpenLayers.LonLat":bounds=new OpenLayers.Bounds(object.lon,object.lat,object.lon,object.lat);break;case"OpenLayers.Geometry.Point":bounds=new OpenLayers.Bounds(object.x,object.y,object.x,object.y);break;case"OpenLayers.Bounds":bounds=object;break;}
 if(bounds){this.centerLonLat=null;if((this.left==null)||(bounds.left<this.left)){this.left=bounds.left;}
@@ -308,13 +316,13 @@ while(newLonLat.lon>maxExtent.right){newLonLat.lon-=maxExtent.getWidth();}}
 return newLonLat;},CLASS_NAME:"OpenLayers.LonLat"});OpenLayers.LonLat.fromString=function(str){var pair=str.split(",");return new OpenLayers.LonLat(parseFloat(pair[0]),parseFloat(pair[1]));};OpenLayers.Pixel=OpenLayers.Class({x:0.0,y:0.0,initialize:function(x,y){this.x=parseFloat(x);this.y=parseFloat(y);},toString:function(){return("x="+this.x+",y="+this.y);},clone:function(){return new OpenLayers.Pixel(this.x,this.y);},equals:function(px){var equals=false;if(px!=null){equals=((this.x==px.x&&this.y==px.y)||(isNaN(this.x)&&isNaN(this.y)&&isNaN(px.x)&&isNaN(px.y)));}
 return equals;},add:function(x,y){if((x==null)||(y==null)){var msg=OpenLayers.i18n("pixelAddError");OpenLayers.Console.error(msg);return null;}
 return new OpenLayers.Pixel(this.x+x,this.y+y);},offset:function(px){var newPx=this.clone();if(px){newPx=this.add(px.x,px.y);}
-return newPx;},CLASS_NAME:"OpenLayers.Pixel"});OpenLayers.Control=OpenLayers.Class({id:null,map:null,div:null,type:null,allowSelection:false,displayClass:"",title:"",active:null,handler:null,eventListeners:null,events:null,EVENT_TYPES:["activate","deactivate"],initialize:function(options){this.displayClass=this.CLASS_NAME.replace("OpenLayers.","ol").replace(/\./g,"");OpenLayers.Util.extend(this,options);this.events=new OpenLayers.Events(this,null,this.EVENT_TYPES);if(this.eventListeners instanceof Object){this.events.on(this.eventListeners);}
+return newPx;},CLASS_NAME:"OpenLayers.Pixel"});OpenLayers.Control=OpenLayers.Class({id:null,map:null,div:null,type:null,allowSelection:false,displayClass:"",title:"",autoActivate:false,active:null,handler:null,eventListeners:null,events:null,EVENT_TYPES:["activate","deactivate"],initialize:function(options){this.displayClass=this.CLASS_NAME.replace("OpenLayers.","ol").replace(/\./g,"");OpenLayers.Util.extend(this,options);this.events=new OpenLayers.Events(this,null,this.EVENT_TYPES);if(this.eventListeners instanceof Object){this.events.on(this.eventListeners);}
 if(this.id==null){this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");}},destroy:function(){if(this.events){if(this.eventListeners){this.events.un(this.eventListeners);}
 this.events.destroy();this.events=null;}
 this.eventListeners=null;if(this.handler){this.handler.destroy();this.handler=null;}
 if(this.handlers){for(var key in this.handlers){if(this.handlers.hasOwnProperty(key)&&typeof this.handlers[key].destroy=="function"){this.handlers[key].destroy();}}
 this.handlers=null;}
-if(this.map){this.map.removeControl(this);this.map=null;}},setMap:function(map){this.map=map;if(this.handler){this.handler.setMap(map);}},draw:function(px){if(this.div==null){this.div=OpenLayers.Util.createDiv(this.id);this.div.className=this.displayClass;if(!this.allowSelection){this.div.className+=" olControlNoSelect";this.div.setAttribute("unselectable","on",0);this.div.onselectstart=function(){return(false);};}
+if(this.map){this.map.removeControl(this);this.map=null;}},setMap:function(map){this.map=map;if(this.handler){this.handler.setMap(map);}},draw:function(px){if(this.div==null){this.div=OpenLayers.Util.createDiv(this.id);this.div.className=this.displayClass;if(!this.allowSelection){this.div.className+=" olControlNoSelect";this.div.setAttribute("unselectable","on",0);this.div.onselectstart=OpenLayers.Function.False;}
 if(this.title!=""){this.div.title=this.title;}}
 if(px!=null){this.position=px.clone();}
 this.moveTo(this.position);return this.div;},moveTo:function(px){if((px!=null)&&(this.div!=null)){this.div.style.left=px.x+"px";this.div.style.top=px.y+"px";}},activate:function(){if(this.active){return false;}
@@ -334,14 +342,14 @@ return message;}};OpenLayers.i18n=OpenLayers.Lang.translate;OpenLayers.Popup.Anc
 style=OpenLayers.Util.extend({'fillColor':'#000000','strokeColor':'#000000','strokeWidth':2,'fillOpacity':1,'strokeOpacity':1},style);this.features[feature.id]=[feature,style];if(feature.geometry){this.geometryMap[feature.geometry.id]=feature.id;}
 this.redraw();},drawGeometry:function(geometry,style){var className=geometry.CLASS_NAME;if((className=="OpenLayers.Geometry.Collection")||(className=="OpenLayers.Geometry.MultiPoint")||(className=="OpenLayers.Geometry.MultiLineString")||(className=="OpenLayers.Geometry.MultiPolygon")){for(var i=0;i<geometry.components.length;i++){this.drawGeometry(geometry.components[i],style);}
 return;};switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":this.drawPoint(geometry,style);break;case"OpenLayers.Geometry.LineString":this.drawLineString(geometry,style);break;case"OpenLayers.Geometry.LinearRing":this.drawLinearRing(geometry,style);break;case"OpenLayers.Geometry.Polygon":this.drawPolygon(geometry,style);break;default:break;}},drawExternalGraphic:function(pt,style){var img=new Image();img.src=style.externalGraphic;if(style.graphicTitle){img.title=style.graphicTitle;}
-var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);var opacity=style.graphicOpacity||style.fillOpacity;var context={img:img,x:(pt[0]+xOffset),y:(pt[1]+yOffset),width:width,height:height,canvas:this.canvas};img.onload=OpenLayers.Function.bind(function(){this.canvas.drawImage(this.img,this.x,this.y,this.width,this.height);},context);},setCanvasStyle:function(type,style){if(type=="fill"){this.canvas.globalAlpha=style['fillOpacity'];this.canvas.fillStyle=style['fillColor'];}else if(type=="stroke"){this.canvas.globalAlpha=style['strokeOpacity'];this.canvas.strokeStyle=style['strokeColor'];this.canvas.lineWidth=style['strokeWidth'];}else{this.canvas.globalAlpha=0;this.canvas.lineWidth=1;}},drawPoint:function(geometry,style){if(style.graphic!==false){var pt=this.getLocalXY(geometry);if(style.externalGraphic){this.drawExternalGraphic(pt,style);}else{if(style.fill!==false){this.setCanvasStyle("fill",style);this.canvas.beginPath();this.canvas.arc(pt[0],pt[1],6,0,Math.PI*2,true);this.canvas.fill();}
-if(style.stroke!==false){this.setCanvasStyle("stroke",style);this.canvas.beginPath();this.canvas.arc(pt[0],pt[1],6,0,Math.PI*2,true);this.canvas.stroke();this.setCanvasStyle("reset");}}}},drawLineString:function(geometry,style){if(style.stroke!==false){this.setCanvasStyle("stroke",style);this.canvas.beginPath();var start=this.getLocalXY(geometry.components[0]);this.canvas.moveTo(start[0],start[1]);for(var i=1;i<geometry.components.length;i++){var pt=this.getLocalXY(geometry.components[i]);this.canvas.lineTo(pt[0],pt[1]);}
+var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);var opacity=style.graphicOpacity||style.fillOpacity;var context={img:img,x:(pt[0]+xOffset),y:(pt[1]+yOffset),width:width,height:height,canvas:this.canvas};img.onload=OpenLayers.Function.bind(function(){this.canvas.drawImage(this.img,this.x,this.y,this.width,this.height);},context);},setCanvasStyle:function(type,style){if(type=="fill"){this.canvas.globalAlpha=style['fillOpacity'];this.canvas.fillStyle=style['fillColor'];}else if(type=="stroke"){this.canvas.globalAlpha=style['strokeOpacity'];this.canvas.strokeStyle=style['strokeColor'];this.canvas.lineWidth=style['strokeWidth'];}else{this.canvas.globalAlpha=0;this.canvas.lineWidth=1;}},drawPoint:function(geometry,style){if(style.graphic!==false){var pt=this.getLocalXY(geometry);if(style.externalGraphic){this.drawExternalGraphic(pt,style);}else{if(style.fill!==false){this.setCanvasStyle("fill",style);this.canvas.beginPath();this.canvas.arc(pt[0],pt[1],style.pointRadius,0,Math.PI*2,true);this.canvas.fill();}
+if(style.stroke!==false){this.setCanvasStyle("stroke",style);this.canvas.beginPath();this.canvas.arc(pt[0],pt[1],style.pointRadius,0,Math.PI*2,true);this.canvas.stroke();this.setCanvasStyle("reset");}}}},drawLineString:function(geometry,style){if(style.stroke!==false){this.setCanvasStyle("stroke",style);this.canvas.beginPath();var start=this.getLocalXY(geometry.components[0]);this.canvas.moveTo(start[0],start[1]);for(var i=1;i<geometry.components.length;i++){var pt=this.getLocalXY(geometry.components[i]);this.canvas.lineTo(pt[0],pt[1]);}
 this.canvas.stroke();}
 this.setCanvasStyle("reset");},drawLinearRing:function(geometry,style){if(style.fill!==false){this.setCanvasStyle("fill",style);this.canvas.beginPath();var start=this.getLocalXY(geometry.components[0]);this.canvas.moveTo(start[0],start[1]);for(var i=1;i<geometry.components.length-1;i++){var pt=this.getLocalXY(geometry.components[i]);this.canvas.lineTo(pt[0],pt[1]);}
 this.canvas.fill();}
 if(style.stroke!==false){var oldWidth=this.canvas.lineWidth;this.setCanvasStyle("stroke",style);this.canvas.beginPath();var start=this.getLocalXY(geometry.components[0]);this.canvas.moveTo(start[0],start[1]);for(var i=1;i<geometry.components.length;i++){var pt=this.getLocalXY(geometry.components[i]);this.canvas.lineTo(pt[0],pt[1]);}
 this.canvas.stroke();}
-this.setCanvasStyle("reset");},drawPolygon:function(geometry,style){this.drawLinearRing(geometry.components[0],style);for(var i=1;i<geometry.components.length;i++){this.drawLinearRing(geometry.components[i],{fillOpacity:0,strokeWidth:0,strokeOpacity:0,strokeColor:'#000000',fillColor:'#000000'});}},drawText:function(location,style){style=OpenLayers.Util.extend({fontColor:"#000000",labelAlign:"cm"},style);var pt=this.getLocalXY(location);this.setCanvasStyle("reset");this.canvas.fillStyle=style.fontColor;this.canvas.globalAlpha=1;var fontStyle=style.fontWeight+" "+style.fontSize+" "+style.fontFamily;if(this.canvas.fillText){var labelAlign=OpenLayers.Renderer.Canvas.LABEL_ALIGN[style.labelAlign[0]]||"middle";this.canvas.font=fontStyle;this.canvas.textAlign=labelAlign;this.canvas.fillText(style.label,pt[0],pt[1]);}else if(this.canvas.mozDrawText){this.canvas.mozTextStyle=fontStyle;var len=this.canvas.mozMeasureText(style.label);switch(style.labelAlign[0]){case"l":break;case"r":pt[0]-=len;break;case"c":default:pt[0]-=len/2;}
+this.setCanvasStyle("reset");},drawPolygon:function(geometry,style){this.drawLinearRing(geometry.components[0],style);for(var i=1;i<geometry.components.length;i++){this.drawLinearRing(geometry.components[i],{fillOpacity:0,strokeWidth:0,strokeOpacity:0,strokeColor:'#000000',fillColor:'#000000'});}},drawText:function(location,style){style=OpenLayers.Util.extend({fontColor:"#000000",labelAlign:"cm"},style);var pt=this.getLocalXY(location);this.setCanvasStyle("reset");this.canvas.fillStyle=style.fontColor;this.canvas.globalAlpha=style.fontOpacity||1.0;var fontStyle=style.fontWeight+" "+style.fontSize+" "+style.fontFamily;if(this.canvas.fillText){var labelAlign=OpenLayers.Renderer.Canvas.LABEL_ALIGN[style.labelAlign[0]]||"center";this.canvas.font=fontStyle;this.canvas.textAlign=labelAlign;this.canvas.fillText(style.label,pt[0],pt[1]);}else if(this.canvas.mozDrawText){this.canvas.mozTextStyle=fontStyle;var len=this.canvas.mozMeasureText(style.label);switch(style.labelAlign[0]){case"l":break;case"r":pt[0]-=len;break;case"c":default:pt[0]-=len/2;}
 this.canvas.translate(pt[0],pt[1]);this.canvas.mozDrawText(style.label);this.canvas.translate(-1*pt[0],-1*pt[1]);}
 this.setCanvasStyle("reset");},getLocalXY:function(point){var resolution=this.getResolution();var extent=this.extent;var x=(point.x/resolution+(-extent.left/resolution));var y=((extent.top/resolution)-point.y/resolution);return[x,y];},clear:function(){this.canvas.clearRect(0,0,this.root.width,this.root.height);},getFeatureIdFromEvent:function(evt){var loc=this.map.getLonLatFromPixel(evt.xy);var resolution=this.getResolution();var bounds=new OpenLayers.Bounds(loc.lon-resolution*5,loc.lat-resolution*5,loc.lon+resolution*5,loc.lat+resolution*5);var geom=bounds.toGeometry();for(var feat in this.features){if(!this.features.hasOwnProperty(feat)){continue;}
 if(this.features[feat][0].geometry.intersects(geom)){return feat;}}
@@ -355,7 +363,7 @@ var nodeId=newNode.id;this.determineZIndex(newNode);var leftIndex=-1;var rightIn
 this.order.splice(rightIndex,0,nodeId);this.indices[nodeId]=this.getZIndex(newNode);return this.getNextElement(rightIndex);},remove:function(node){var nodeId=node.id;var arrayIndex=OpenLayers.Util.indexOf(this.order,nodeId);if(arrayIndex>=0){this.order.splice(arrayIndex,1);delete this.indices[nodeId];if(this.order.length>0){var lastId=this.order[this.order.length-1];this.maxZIndex=this.indices[lastId];}else{this.maxZIndex=0;}}},clear:function(){this.order=[];this.indices={};this.maxZIndex=0;},exists:function(node){return(this.indices[node.id]!=null);},getZIndex:function(node){return node._style.graphicZIndex;},determineZIndex:function(node){var zIndex=node._style.graphicZIndex;if(zIndex==null){zIndex=this.maxZIndex;node._style.graphicZIndex=zIndex;}else if(zIndex>this.maxZIndex){this.maxZIndex=zIndex;}},getNextElement:function(index){var nextIndex=index+1;if(nextIndex<this.order.length){var nextElement=OpenLayers.Util.getElement(this.order[nextIndex]);if(nextElement==undefined){nextElement=this.getNextElement(nextIndex);}
 return nextElement;}else{return null;}},CLASS_NAME:"OpenLayers.ElementsIndexer"});OpenLayers.ElementsIndexer.IndexingMethods={Z_ORDER:function(indexer,newNode,nextNode){var newZIndex=indexer.getZIndex(newNode);var returnVal=0;if(nextNode){var nextZIndex=indexer.getZIndex(nextNode);returnVal=newZIndex-nextZIndex;}
 return returnVal;},Z_ORDER_DRAWING_ORDER:function(indexer,newNode,nextNode){var returnVal=OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(indexer,newNode,nextNode);if(nextNode&&returnVal==0){returnVal=1;}
-return returnVal;},Z_ORDER_Y_ORDER:function(indexer,newNode,nextNode){var returnVal=OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(indexer,newNode,nextNode);if(nextNode&&returnVal==0){var newLat=newNode._geometry.getBounds().bottom;var nextLat=nextNode._geometry.getBounds().bottom;var result=nextLat-newLat;returnVal=(result==0)?1:result;}
+return returnVal;},Z_ORDER_Y_ORDER:function(indexer,newNode,nextNode){var returnVal=OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(indexer,newNode,nextNode);if(nextNode&&returnVal===0){var result=nextNode._boundsBottom-newNode._boundsBottom;returnVal=(result===0)?1:result;}
 return returnVal;}};OpenLayers.Renderer.Elements=OpenLayers.Class(OpenLayers.Renderer,{rendererRoot:null,root:null,vectorRoot:null,textRoot:null,xmlns:null,indexer:null,BACKGROUND_ID_SUFFIX:"_background",LABEL_ID_SUFFIX:"_label",minimumSymbolizer:{strokeLinecap:"round",strokeOpacity:1,strokeDashstyle:"solid",fillOpacity:1,pointRadius:0},initialize:function(containerID,options){OpenLayers.Renderer.prototype.initialize.apply(this,arguments);this.rendererRoot=this.createRenderRoot();this.root=this.createRoot("_root");this.vectorRoot=this.createRoot("_vroot");this.textRoot=this.createRoot("_troot");this.root.appendChild(this.vectorRoot);this.root.appendChild(this.textRoot);this.rendererRoot.appendChild(this.root);this.container.appendChild(this.rendererRoot);if(options&&(options.zIndexing||options.yOrdering)){this.indexer=new OpenLayers.ElementsIndexer(options.yOrdering);}},destroy:function(){this.clear();this.rendererRoot=null;this.root=null;this.xmlns=null;OpenLayers.Renderer.prototype.destroy.apply(this,arguments);},clear:function(){if(this.vectorRoot){while(this.vectorRoot.childNodes.length>0){this.vectorRoot.removeChild(this.vectorRoot.firstChild);}}
 if(this.textRoot){while(this.textRoot.childNodes.length>0){this.textRoot.removeChild(this.textRoot.firstChild);}}
 if(this.indexer){this.indexer.clear();}},getNodeType:function(geometry,style){},drawGeometry:function(geometry,style,featureId){var className=geometry.CLASS_NAME;var rendered=true;if((className=="OpenLayers.Geometry.Collection")||(className=="OpenLayers.Geometry.MultiPoint")||(className=="OpenLayers.Geometry.MultiLineString")||(className=="OpenLayers.Geometry.MultiPolygon")){for(var i=0,len=geometry.components.length;i<len;i++){rendered=this.drawGeometry(geometry.components[i],style,featureId)&&rendered;}
@@ -363,11 +371,11 @@ return rendered;};rendered=false;if(style.display!="none"){if(style.backgroundGr
 rendered=this.redrawNode(geometry.id,geometry,style,featureId);}
 if(rendered==false){var node=document.getElementById(geometry.id);if(node){if(node._style.backgroundGraphic){node.parentNode.removeChild(document.getElementById(geometry.id+this.BACKGROUND_ID_SUFFIX));}
 node.parentNode.removeChild(node);}}
-return rendered;},redrawNode:function(id,geometry,style,featureId){var node=this.nodeFactory(id,this.getNodeType(geometry,style));node._featureId=featureId;node._geometry=geometry;node._geometryClass=geometry.CLASS_NAME;node._style=style;var drawResult=this.drawGeometryNode(node,geometry,style);if(drawResult===false){return false;}
+return rendered;},redrawNode:function(id,geometry,style,featureId){var node=this.nodeFactory(id,this.getNodeType(geometry,style));node._featureId=featureId;node._boundsBottom=geometry.getBounds().bottom;node._geometryClass=geometry.CLASS_NAME;node._style=style;var drawResult=this.drawGeometryNode(node,geometry,style);if(drawResult===false){return false;}
 node=drawResult.node;if(this.indexer){var insert=this.indexer.insert(node);if(insert){this.vectorRoot.insertBefore(node,insert);}else{this.vectorRoot.appendChild(node);}}else{if(node.parentNode!==this.vectorRoot){this.vectorRoot.appendChild(node);}}
 this.postDraw(node);return drawResult.complete;},redrawBackgroundNode:function(id,geometry,style,featureId){var backgroundStyle=OpenLayers.Util.extend({},style);backgroundStyle.externalGraphic=backgroundStyle.backgroundGraphic;backgroundStyle.graphicXOffset=backgroundStyle.backgroundXOffset;backgroundStyle.graphicYOffset=backgroundStyle.backgroundYOffset;backgroundStyle.graphicZIndex=backgroundStyle.backgroundGraphicZIndex;backgroundStyle.graphicWidth=backgroundStyle.backgroundWidth||backgroundStyle.graphicWidth;backgroundStyle.graphicHeight=backgroundStyle.backgroundHeight||backgroundStyle.graphicHeight;backgroundStyle.backgroundGraphic=null;backgroundStyle.backgroundXOffset=null;backgroundStyle.backgroundYOffset=null;backgroundStyle.backgroundGraphicZIndex=null;return this.redrawNode(id+this.BACKGROUND_ID_SUFFIX,geometry,backgroundStyle,null);},drawGeometryNode:function(node,geometry,style){style=style||node._style;OpenLayers.Util.applyDefaults(style,this.minimumSymbolizer);var options={'isFilled':style.fill===undefined?true:style.fill,'isStroked':style.stroke===undefined?!!style.strokeWidth:style.stroke};var drawn;switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":if(style.graphic===false){options.isFilled=false;options.isStroked=false;}
 drawn=this.drawPoint(node,geometry);break;case"OpenLayers.Geometry.LineString":options.isFilled=false;drawn=this.drawLineString(node,geometry);break;case"OpenLayers.Geometry.LinearRing":drawn=this.drawLinearRing(node,geometry);break;case"OpenLayers.Geometry.Polygon":drawn=this.drawPolygon(node,geometry);break;case"OpenLayers.Geometry.Surface":drawn=this.drawSurface(node,geometry);break;case"OpenLayers.Geometry.Rectangle":drawn=this.drawRectangle(node,geometry);break;default:break;}
-node._style=style;node._options=options;if(drawn!=false){return{node:this.setStyle(node,style,options,geometry),complete:drawn};}else{return false;}},postDraw:function(node){},drawPoint:function(node,geometry){},drawLineString:function(node,geometry){},drawLinearRing:function(node,geometry){},drawPolygon:function(node,geometry){},drawRectangle:function(node,geometry){},drawCircle:function(node,geometry){},drawSurface:function(node,geometry){},removeText:function(featureId){var label=document.getElementById(featureId+this.LABEL_ID_SUFFIX);if(label){this.textRoot.removeChild(label);}},getFeatureIdFromEvent:function(evt){var target=evt.target;var useElement=target&&target.correspondingUseElement;var node=useElement?useElement:(target||evt.srcElement);var featureId=node._featureId;return featureId;},eraseGeometry:function(geometry){if((geometry.CLASS_NAME=="OpenLayers.Geometry.MultiPoint")||(geometry.CLASS_NAME=="OpenLayers.Geometry.MultiLineString")||(geometry.CLASS_NAME=="OpenLayers.Geometry.MultiPolygon")||(geometry.CLASS_NAME=="OpenLayers.Geometry.Collection")){for(var i=0,len=geometry.components.length;i<len;i++){this.eraseGeometry(geometry.components[i]);}}else{var element=OpenLayers.Util.getElement(geometry.id);if(element&&element.parentNode){if(element.geometry){element.geometry.destroy();element.geometry=null;}
+node._options=options;if(drawn!=false){return{node:this.setStyle(node,style,options,geometry),complete:drawn};}else{return false;}},postDraw:function(node){},drawPoint:function(node,geometry){},drawLineString:function(node,geometry){},drawLinearRing:function(node,geometry){},drawPolygon:function(node,geometry){},drawRectangle:function(node,geometry){},drawCircle:function(node,geometry){},drawSurface:function(node,geometry){},removeText:function(featureId){var label=document.getElementById(featureId+this.LABEL_ID_SUFFIX);if(label){this.textRoot.removeChild(label);}},getFeatureIdFromEvent:function(evt){var target=evt.target;var useElement=target&&target.correspondingUseElement;var node=useElement?useElement:(target||evt.srcElement);var featureId=node._featureId;return featureId;},eraseGeometry:function(geometry){if((geometry.CLASS_NAME=="OpenLayers.Geometry.MultiPoint")||(geometry.CLASS_NAME=="OpenLayers.Geometry.MultiLineString")||(geometry.CLASS_NAME=="OpenLayers.Geometry.MultiPolygon")||(geometry.CLASS_NAME=="OpenLayers.Geometry.Collection")){for(var i=0,len=geometry.components.length;i<len;i++){this.eraseGeometry(geometry.components[i]);}}else{var element=OpenLayers.Util.getElement(geometry.id);if(element&&element.parentNode){if(element.geometry){element.geometry.destroy();element.geometry=null;}
 element.parentNode.removeChild(element);if(this.indexer){this.indexer.remove(element);}
 if(element._style.backgroundGraphic){var backgroundId=geometry.id+this.BACKGROUND_ID_SUFFIX;var bElem=OpenLayers.Util.getElement(backgroundId);if(bElem&&bElem.parentNode){bElem.parentNode.removeChild(bElem);}}}}},nodeFactory:function(id,type){var node=OpenLayers.Util.getElement(id);if(node){if(!this.nodeTypeCompare(node,type)){node.parentNode.removeChild(node);node=this.nodeFactory(id,type);}}else{node=this.createNode(type,id);}
 return node;},nodeTypeCompare:function(node,type){},createNode:function(type,id){},moveRoot:function(renderer){var root=this.root;if(renderer.root.parentNode==this.rendererRoot){root=renderer.root;}
@@ -384,30 +392,34 @@ break;}}
 if(i==this.map.controls.length){var args=OpenLayers.Util.getParameters();if(args.layers){this.layers=args.layers;this.map.events.register('addlayer',this,this.configureLayers);this.configureLayers();}
 if(args.lat&&args.lon){this.center=new OpenLayers.LonLat(parseFloat(args.lon),parseFloat(args.lat));if(args.zoom){this.zoom=parseInt(args.zoom);}
 this.map.events.register('changebaselayer',this,this.setCenter);this.setCenter();}}},setCenter:function(){if(this.map.baseLayer){this.map.events.unregister('changebaselayer',this,this.setCenter);if(this.displayProjection){this.center.transform(this.displayProjection,this.map.getProjectionObject());}
-this.map.setCenter(this.center,this.zoom);}},configureLayers:function(){if(this.layers.length==this.map.layers.length){this.map.events.unregister('addlayer',this,this.configureLayers);for(var i=0,len=this.layers.length;i<len;i++){var layer=this.map.layers[i];var c=this.layers.charAt(i);if(c=="B"){this.map.setBaseLayer(layer);}else if((c=="T")||(c=="F")){layer.setVisibility(c=="T");}}}},CLASS_NAME:"OpenLayers.Control.ArgParser"});OpenLayers.Control.Attribution=OpenLayers.Class(OpenLayers.Control,{separator:", ",initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,arguments);},destroy:function(){this.map.events.un({"removelayer":this.updateAttribution,"addlayer":this.updateAttribution,"changelayer":this.updateAttribution,"changebaselayer":this.updateAttribution,scope:this});OpenLayers.Control.prototype.destroy.apply(this,arguments);},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);this.map.events.on({'changebaselayer':this.updateAttribution,'changelayer':this.updateAttribution,'addlayer':this.updateAttribution,'removelayer':this.updateAttribution,scope:this});this.updateAttribution();return this.div;},updateAttribution:function(){var attributions=[];if(this.map&&this.map.layers){for(var i=0,len=this.map.layers.length;i<len;i++){var layer=this.map.layers[i];if(layer.attribution&&layer.getVisibility()){attributions.push(layer.attribution);}}
-this.div.innerHTML=attributions.join(this.separator);}},CLASS_NAME:"OpenLayers.Control.Attribution"});OpenLayers.Control.LayerSwitcher=OpenLayers.Class(OpenLayers.Control,{activeColor:"darkblue",layerStates:null,layersDiv:null,baseLayersDiv:null,baseLayers:null,dataLbl:null,dataLayersDiv:null,dataLayers:null,minimizeDiv:null,maximizeDiv:null,ascending:true,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,arguments);this.layerStates=[];},destroy:function(){OpenLayers.Event.stopObservingElement(this.div);OpenLayers.Event.stopObservingElement(this.minimizeDiv);OpenLayers.Event.stopObservingElement(this.maximizeDiv);this.clearLayersArray("base");this.clearLayersArray("data");this.map.events.un({"addlayer":this.redraw,"changelayer":this.redraw,"removelayer":this.redraw,"changebaselayer":this.redraw,scope:this});OpenLayers.Control.prototype.destroy.apply(this,arguments);},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);this.map.events.on({"addlayer":this.redraw,"changelayer":this.redraw,"removelayer":this.redraw,"changebaselayer":this.redraw,scope:this});},draw:function(){OpenLayers.Control.prototype.draw.apply(this);this.loadContents();if(!this.outsideViewport){this.minimizeControl();}
+this.map.setCenter(this.center,this.zoom);}},configureLayers:function(){if(this.layers.length==this.map.layers.length){this.map.events.unregister('addlayer',this,this.configureLayers);for(var i=0,len=this.layers.length;i<len;i++){var layer=this.map.layers[i];var c=this.layers.charAt(i);if(c=="B"){this.map.setBaseLayer(layer);}else if((c=="T")||(c=="F")){layer.setVisibility(c=="T");}}}},CLASS_NAME:"OpenLayers.Control.ArgParser"});OpenLayers.Control.Attribution=OpenLayers.Class(OpenLayers.Control,{separator:", ",initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,arguments);},destroy:function(){this.map.events.un({"removelayer":this.updateAttribution,"addlayer":this.updateAttribution,"changelayer":this.updateAttribution,"changebaselayer":this.updateAttribution,scope:this});OpenLayers.Control.prototype.destroy.apply(this,arguments);},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);this.map.events.on({'changebaselayer':this.updateAttribution,'changelayer':this.updateAttribution,'addlayer':this.updateAttribution,'removelayer':this.updateAttribution,scope:this});this.updateAttribution();return this.div;},updateAttribution:function(){var attributions=[];if(this.map&&this.map.layers){for(var i=0,len=this.map.layers.length;i<len;i++){var layer=this.map.layers[i];if(layer.attribution&&layer.getVisibility()){if(OpenLayers.Util.indexOf(attributions,layer.attribution)===-1){attributions.push(layer.attribution);}}}
+this.div.innerHTML=attributions.join(this.separator);}},CLASS_NAME:"OpenLayers.Control.Attribution"});OpenLayers.Control.LayerSwitcher=OpenLayers.Class(OpenLayers.Control,{roundedCorner:true,roundedCornerColor:"darkblue",layerStates:null,layersDiv:null,baseLayersDiv:null,baseLayers:null,dataLbl:null,dataLayersDiv:null,dataLayers:null,minimizeDiv:null,maximizeDiv:null,ascending:true,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,arguments);this.layerStates=[];},destroy:function(){OpenLayers.Event.stopObservingElement(this.div);OpenLayers.Event.stopObservingElement(this.minimizeDiv);OpenLayers.Event.stopObservingElement(this.maximizeDiv);this.clearLayersArray("base");this.clearLayersArray("data");this.map.events.un({"addlayer":this.redraw,"changelayer":this.redraw,"removelayer":this.redraw,"changebaselayer":this.redraw,scope:this});OpenLayers.Control.prototype.destroy.apply(this,arguments);},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);this.map.events.on({"addlayer":this.redraw,"changelayer":this.redraw,"removelayer":this.redraw,"changebaselayer":this.redraw,scope:this});},draw:function(){OpenLayers.Control.prototype.draw.apply(this);this.loadContents();if(!this.outsideViewport){this.minimizeControl();}
 this.redraw();return this.div;},clearLayersArray:function(layersType){var layers=this[layersType+"Layers"];if(layers){for(var i=0,len=layers.length;i<len;i++){var layer=layers[i];OpenLayers.Event.stopObservingElement(layer.inputElem);OpenLayers.Event.stopObservingElement(layer.labelSpan);}}
 this[layersType+"LayersDiv"].innerHTML="";this[layersType+"Layers"]=[];},checkRedraw:function(){var redraw=false;if(!this.layerStates.length||(this.map.layers.length!=this.layerStates.length)){redraw=true;}else{for(var i=0,len=this.layerStates.length;i<len;i++){var layerState=this.layerStates[i];var layer=this.map.layers[i];if((layerState.name!=layer.name)||(layerState.inRange!=layer.inRange)||(layerState.id!=layer.id)||(layerState.visibility!=layer.visibility)){redraw=true;break;}}}
 return redraw;},redraw:function(){if(!this.checkRedraw()){return this.div;}
 this.clearLayersArray("base");this.clearLayersArray("data");var containsOverlays=false;var containsBaseLayers=false;var len=this.map.layers.length;this.layerStates=new Array(len);for(var i=0;i<len;i++){var layer=this.map.layers[i];this.layerStates[i]={'name':layer.name,'visibility':layer.visibility,'inRange':layer.inRange,'id':layer.id};}
 var layers=this.map.layers.slice();if(!this.ascending){layers.reverse();}
 for(var i=0,len=layers.length;i<len;i++){var layer=layers[i];var baseLayer=layer.isBaseLayer;if(layer.displayInLayerSwitcher){if(baseLayer){containsBaseLayers=true;}else{containsOverlays=true;}
-var checked=(baseLayer)?(layer==this.map.baseLayer):layer.getVisibility();var inputElem=document.createElement("input");inputElem.id=this.id+"_input_"+layer.name;inputElem.name=(baseLayer)?"baseLayers":layer.name;inputElem.type=(baseLayer)?"radio":"checkbox";inputElem.value=layer.name;inputElem.checked=checked;inputElem.defaultChecked=checked;if(!baseLayer&&!layer.inRange){inputElem.disabled=true;}
-var context={'inputElem':inputElem,'layer':layer,'layerSwitcher':this};OpenLayers.Event.observe(inputElem,"mouseup",OpenLayers.Function.bindAsEventListener(this.onInputClick,context));var labelSpan=document.createElement("span");if(!baseLayer&&!layer.inRange){labelSpan.style.color="gray";}
+var checked=(baseLayer)?(layer==this.map.baseLayer):layer.getVisibility();var inputElem=document.createElement("input");inputElem.id=this.id+"_input_"+layer.name;inputElem.name=(baseLayer)?this.id+"_baseLayers":layer.name;inputElem.type=(baseLayer)?"radio":"checkbox";inputElem.value=layer.name;inputElem.checked=checked;inputElem.defaultChecked=checked;if(!baseLayer&&!layer.inRange){inputElem.disabled=true;}
+var context={'inputElem':inputElem,'layer':layer,'layerSwitcher':this};OpenLayers.Event.observe(inputElem,"mouseup",OpenLayers.Function.bindAsEventListener(this.onInputClick,context));var labelSpan=document.createElement("span");OpenLayers.Element.addClass(labelSpan,"labelSpan")
+if(!baseLayer&&!layer.inRange){labelSpan.style.color="gray";}
 labelSpan.innerHTML=layer.name;labelSpan.style.verticalAlign=(baseLayer)?"bottom":"baseline";OpenLayers.Event.observe(labelSpan,"click",OpenLayers.Function.bindAsEventListener(this.onInputClick,context));var br=document.createElement("br");var groupArray=(baseLayer)?this.baseLayers:this.dataLayers;groupArray.push({'layer':layer,'inputElem':inputElem,'labelSpan':labelSpan});var groupDiv=(baseLayer)?this.baseLayersDiv:this.dataLayersDiv;groupDiv.appendChild(inputElem);groupDiv.appendChild(labelSpan);groupDiv.appendChild(br);}}
 this.dataLbl.style.display=(containsOverlays)?"":"none";this.baseLbl.style.display=(containsBaseLayers)?"":"none";return this.div;},onInputClick:function(e){if(!this.inputElem.disabled){if(this.inputElem.type=="radio"){this.inputElem.checked=true;this.layer.map.setBaseLayer(this.layer);}else{this.inputElem.checked=!this.inputElem.checked;this.layerSwitcher.updateMap();}}
 OpenLayers.Event.stop(e);},onLayerClick:function(e){this.updateMap();},updateMap:function(){for(var i=0,len=this.baseLayers.length;i<len;i++){var layerEntry=this.baseLayers[i];if(layerEntry.inputElem.checked){this.map.setBaseLayer(layerEntry.layer,false);}}
-for(var i=0,len=this.dataLayers.length;i<len;i++){var layerEntry=this.dataLayers[i];layerEntry.layer.setVisibility(layerEntry.inputElem.checked);}},maximizeControl:function(e){this.div.style.width="20em";this.div.style.height="";this.showControls(false);if(e!=null){OpenLayers.Event.stop(e);}},minimizeControl:function(e){this.div.style.width="0px";this.div.style.height="0px";this.showControls(true);if(e!=null){OpenLayers.Event.stop(e);}},showControls:function(minimize){this.maximizeDiv.style.display=minimize?"":"none";this.minimizeDiv.style.display=minimize?"none":"";this.layersDiv.style.display=minimize?"none":"";},loadContents:function(){this.div.style.position="absolute";this.div.style.top="25px";this.div.style.right="0px";this.div.style.left="";this.div.style.fontFamily="sans-serif";this.div.style.fontWeight="bold";this.div.style.marginTop="3px";this.div.style.marginLeft="3px";this.div.style.marginBottom="3px";this.div.style.fontSize="smaller";this.div.style.color="white";this.div.style.backgroundColor="transparent";OpenLayers.Event.observe(this.div,"mouseup",OpenLayers.Function.bindAsEventListener(this.mouseUp,this));OpenLayers.Event.observe(this.div,"click",this.ignoreEvent);OpenLayers.Event.observe(this.div,"mousedown",OpenLayers.Function.bindAsEventListener(this.mouseDown,this));OpenLayers.Event.observe(this.div,"dblclick",this.ignoreEvent);this.layersDiv=document.createElement("div");this.layersDiv.id=this.id+"_layersDiv";this.layersDiv.style.paddingTop="5px";this.layersDiv.style.paddingLeft="10px";this.layersDiv.style.paddingBottom="5px";this.layersDiv.style.paddingRight="75px";this.layersDiv.style.backgroundColor=this.activeColor;this.layersDiv.style.width="100%";this.layersDiv.style.height="100%";this.baseLbl=document.createElement("div");this.baseLbl.innerHTML=OpenLayers.i18n("baseLayer");this.baseLbl.style.marginTop="3px";this.baseLbl.style.marginLeft="3px";this.baseLbl.style.marginBottom="3px";this.baseLayersDiv=document.createElement("div");this.baseLayersDiv.style.paddingLeft="10px";this.dataLbl=document.createElement("div");this.dataLbl.innerHTML=OpenLayers.i18n("overlays");this.dataLbl.style.marginTop="3px";this.dataLbl.style.marginLeft="3px";this.dataLbl.style.marginBottom="3px";this.dataLayersDiv=document.createElement("div");this.dataLayersDiv.style.paddingLeft="10px";if(this.ascending){this.layersDiv.appendChild(this.baseLbl);this.layersDiv.appendChild(this.baseLayersDiv);this.layersDiv.appendChild(this.dataLbl);this.layersDiv.appendChild(this.dataLayersDiv);}else{this.layersDiv.appendChild(this.dataLbl);this.layersDiv.appendChild(this.dataLayersDiv);this.layersDiv.appendChild(this.baseLbl);this.layersDiv.appendChild(this.baseLayersDiv);}
-this.div.appendChild(this.layersDiv);OpenLayers.Rico.Corner.round(this.div,{corners:"tl bl",bgColor:"transparent",color:this.activeColor,blend:false});OpenLayers.Rico.Corner.changeOpacity(this.layersDiv,0.75);var imgLocation=OpenLayers.Util.getImagesLocation();var sz=new OpenLayers.Size(18,18);var img=imgLocation+'layer-switcher-maximize.png';this.maximizeDiv=OpenLayers.Util.createAlphaImageDiv("OpenLayers_Control_MaximizeDiv",null,sz,img,"absolute");this.maximizeDiv.style.top="5px";this.maximizeDiv.style.right="0px";this.maximizeDiv.style.left="";this.maximizeDiv.style.display="none";OpenLayers.Event.observe(this.maximizeDiv,"click",OpenLayers.Function.bindAsEventListener(this.maximizeControl,this));this.div.appendChild(this.maximizeDiv);var img=imgLocation+'layer-switcher-minimize.png';var sz=new OpenLayers.Size(18,18);this.minimizeDiv=OpenLayers.Util.createAlphaImageDiv("OpenLayers_Control_MinimizeDiv",null,sz,img,"absolute");this.minimizeDiv.style.top="5px";this.minimizeDiv.style.right="0px";this.minimizeDiv.style.left="";this.minimizeDiv.style.display="none";OpenLayers.Event.observe(this.minimizeDiv,"click",OpenLayers.Function.bindAsEventListener(this.minimizeControl,this));this.div.appendChild(this.minimizeDiv);},ignoreEvent:function(evt){OpenLayers.Event.stop(evt);},mouseDown:function(evt){this.isMouseDown=true;this.ignoreEvent(evt);},mouseUp:function(evt){if(this.isMouseDown){this.isMouseDown=false;this.ignoreEvent(evt);}},CLASS_NAME:"OpenLayers.Control.LayerSwitcher"});OpenLayers.Control.PanZoom=OpenLayers.Class(OpenLayers.Control,{slideFactor:50,slideRatio:null,buttons:null,position:null,initialize:function(options){this.position=new OpenLayers.Pixel(OpenLayers.Control.PanZoom.X,OpenLayers.Control.PanZoom.Y);OpenLayers.Control.prototype.initialize.apply(this,arguments);},destroy:function(){OpenLayers.Control.prototype.destroy.apply(this,arguments);this.removeButtons();this.buttons=null;this.position=null;},draw:function(px){OpenLayers.Control.prototype.draw.apply(this,arguments);px=this.position;this.buttons=[];var sz=new OpenLayers.Size(18,18);var centered=new OpenLayers.Pixel(px.x+sz.w/2,px.y);this._addButton("panup","north-mini.png",centered,sz);px.y=centered.y+sz.h;this._addButton("panleft","west-mini.png",px,sz);this._addButton("panright","east-mini.png",px.add(sz.w,0),sz);this._addButton("pandown","south-mini.png",centered.add(0,sz.h*2),sz);this._addButton("zoomin","zoom-plus-mini.png",centered.add(0,sz.h*3+5),sz);this._addButton("zoomworld","zoom-world-mini.png",centered.add(0,sz.h*4+5),sz);this._addButton("zoomout","zoom-minus-mini.png",centered.add(0,sz.h*5+5),sz);return this.div;},_addButton:function(id,img,xy,sz){var imgLocation=OpenLayers.Util.getImagesLocation()+img;var btn=OpenLayers.Util.createAlphaImageDiv(this.id+"_"+id,xy,sz,imgLocation,"absolute");this.div.appendChild(btn);OpenLayers.Event.observe(btn,"mousedown",OpenLayers.Function.bindAsEventListener(this.buttonDown,btn));OpenLayers.Event.observe(btn,"dblclick",OpenLayers.Function.bindAsEventListener(this.doubleClick,btn));OpenLayers.Event.observe(btn,"click",OpenLayers.Function.bindAsEventListener(this.doubleClick,btn));btn.action=id;btn.map=this.map;if(!this.slideRatio){var slideFactorPixels=this.slideFactor;var getSlideFactor=function(){return slideFactorPixels;};}else{var slideRatio=this.slideRatio;var getSlideFactor=function(dim){return this.map.getSize()[dim]*slideRatio;};}
-btn.getSlideFactor=getSlideFactor;this.buttons.push(btn);return btn;},_removeButton:function(btn){OpenLayers.Event.stopObservingElement(btn);btn.map=null;this.div.removeChild(btn);OpenLayers.Util.removeItem(this.buttons,btn);},removeButtons:function(){for(var i=this.buttons.length-1;i>=0;--i){this._removeButton(this.buttons[i]);}},doubleClick:function(evt){OpenLayers.Event.stop(evt);return false;},buttonDown:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;}
+for(var i=0,len=this.dataLayers.length;i<len;i++){var layerEntry=this.dataLayers[i];layerEntry.layer.setVisibility(layerEntry.inputElem.checked);}},maximizeControl:function(e){this.div.style.width="";this.div.style.height="";this.showControls(false);if(e!=null){OpenLayers.Event.stop(e);}},minimizeControl:function(e){this.div.style.width="0px";this.div.style.height="0px";this.showControls(true);if(e!=null){OpenLayers.Event.stop(e);}},showControls:function(minimize){this.maximizeDiv.style.display=minimize?"":"none";this.minimizeDiv.style.display=minimize?"none":"";this.layersDiv.style.display=minimize?"none":"";},loadContents:function(){OpenLayers.Event.observe(this.div,"mouseup",OpenLayers.Function.bindAsEventListener(this.mouseUp,this));OpenLayers.Event.observe(this.div,"click",this.ignoreEvent);OpenLayers.Event.observe(this.div,"mousedown",OpenLayers.Function.bindAsEventListener(this.mouseDown,this));OpenLayers.Event.observe(this.div,"dblclick",this.ignoreEvent);this.layersDiv=document.createElement("div");this.layersDiv.id=this.id+"_layersDiv";OpenLayers.Element.addClass(this.layersDiv,"layersDiv");this.baseLbl=document.createElement("div");this.baseLbl.innerHTML=OpenLayers.i18n("baseLayer");OpenLayers.Element.addClass(this.baseLbl,"baseLbl");this.baseLayersDiv=document.createElement("div");OpenLayers.Element.addClass(this.baseLayersDiv,"baseLayersDiv");this.dataLbl=document.createElement("div");this.dataLbl.innerHTML=OpenLayers.i18n("overlays");OpenLayers.Element.addClass(this.dataLbl,"dataLbl");this.dataLayersDiv=document.createElement("div");OpenLayers.Element.addClass(this.dataLayersDiv,"dataLayersDiv");if(this.ascending){this.layersDiv.appendChild(this.baseLbl);this.layersDiv.appendChild(this.baseLayersDiv);this.layersDiv.appendChild(this.dataLbl);this.layersDiv.appendChild(this.dataLayersDiv);}else{this.layersDiv.appendChild(this.dataLbl);this.layersDiv.appendChild(this.dataLayersDiv);this.layersDiv.appendChild(this.baseLbl);this.layersDiv.appendChild(this.baseLayersDiv);}
+this.div.appendChild(this.layersDiv);if(this.roundedCorner){OpenLayers.Rico.Corner.round(this.div,{corners:"tl bl",bgColor:"transparent",color:this.roundedCornerColor,blend:false});OpenLayers.Rico.Corner.changeOpacity(this.layersDiv,0.75);}
+var imgLocation=OpenLayers.Util.getImagesLocation();var sz=new OpenLayers.Size(18,18);var img=imgLocation+'layer-switcher-maximize.png';this.maximizeDiv=OpenLayers.Util.createAlphaImageDiv("OpenLayers_Control_MaximizeDiv",null,sz,img,"absolute");OpenLayers.Element.addClass(this.maximizeDiv,"maximizeDiv");this.maximizeDiv.style.display="none";OpenLayers.Event.observe(this.maximizeDiv,"click",OpenLayers.Function.bindAsEventListener(this.maximizeControl,this));this.div.appendChild(this.maximizeDiv);var img=imgLocation+'layer-switcher-minimize.png';var sz=new OpenLayers.Size(18,18);this.minimizeDiv=OpenLayers.Util.createAlphaImageDiv("OpenLayers_Control_MinimizeDiv",null,sz,img,"absolute");OpenLayers.Element.addClass(this.minimizeDiv,"minimizeDiv");this.minimizeDiv.style.display="none";OpenLayers.Event.observe(this.minimizeDiv,"click",OpenLayers.Function.bindAsEventListener(this.minimizeControl,this));this.div.appendChild(this.minimizeDiv);},ignoreEvent:function(evt){OpenLayers.Event.stop(evt);},mouseDown:function(evt){this.isMouseDown=true;this.ignoreEvent(evt);},mouseUp:function(evt){if(this.isMouseDown){this.isMouseDown=false;this.ignoreEvent(evt);}},CLASS_NAME:"OpenLayers.Control.LayerSwitcher"});OpenLayers.Control.PanZoom=OpenLayers.Class(OpenLayers.Control,{slideFactor:50,slideRatio:null,buttons:null,position:null,initialize:function(options){this.position=new OpenLayers.Pixel(OpenLayers.Control.PanZoom.X,OpenLayers.Control.PanZoom.Y);OpenLayers.Control.prototype.initialize.apply(this,arguments);},destroy:function(){OpenLayers.Control.prototype.destroy.apply(this,arguments);this.removeButtons();this.buttons=null;this.position=null;},draw:function(px){OpenLayers.Control.prototype.draw.apply(this,arguments);px=this.position;this.buttons=[];var sz=new OpenLayers.Size(18,18);var centered=new OpenLayers.Pixel(px.x+sz.w/2,px.y);this._addButton("panup","north-mini.png",centered,sz);px.y=centered.y+sz.h;this._addButton("panleft","west-mini.png",px,sz);this._addButton("panright","east-mini.png",px.add(sz.w,0),sz);this._addButton("pandown","south-mini.png",centered.add(0,sz.h*2),sz);this._addButton("zoomin","zoom-plus-mini.png",centered.add(0,sz.h*3+5),sz);this._addButton("zoomworld","zoom-world-mini.png",centered.add(0,sz.h*4+5),sz);this._addButton("zoomout","zoom-minus-mini.png",centered.add(0,sz.h*5+5),sz);return this.div;},_addButton:function(id,img,xy,sz){var imgLocation=OpenLayers.Util.getImagesLocation()+img;var btn=OpenLayers.Util.createAlphaImageDiv(this.id+"_"+id,xy,sz,imgLocation,"absolute");this.div.appendChild(btn);OpenLayers.Event.observe(btn,"mousedown",OpenLayers.Function.bindAsEventListener(this.buttonDown,btn));OpenLayers.Event.observe(btn,"dblclick",OpenLayers.Function.bindAsEventListener(this.doubleClick,btn));OpenLayers.Event.observe(btn,"click",OpenLayers.Function.bindAsEventListener(this.doubleClick,btn));btn.action=id;btn.map=this.map;if(!this.slideRatio){var slideFactorPixels=this.slideFactor;var getSlideFactor=function(){return slideFactorPixels;};}else{var slideRatio=this.slideRatio;var getSlideFactor=function(dim){return this.map.getSize()[dim]*slideRatio;};}
+btn.getSlideFactor=getSlideFactor;this.buttons.push(btn);return btn;},_removeButton:function(btn){OpenLayers.Event.stopObservingElement(btn);btn.map=null;btn.getSlideFactor=null;this.div.removeChild(btn);OpenLayers.Util.removeItem(this.buttons,btn);},removeButtons:function(){for(var i=this.buttons.length-1;i>=0;--i){this._removeButton(this.buttons[i]);}},doubleClick:function(evt){OpenLayers.Event.stop(evt);return false;},buttonDown:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;}
 switch(this.action){case"panup":this.map.pan(0,-this.getSlideFactor("h"));break;case"pandown":this.map.pan(0,this.getSlideFactor("h"));break;case"panleft":this.map.pan(-this.getSlideFactor("w"),0);break;case"panright":this.map.pan(this.getSlideFactor("w"),0);break;case"zoomin":this.map.zoomIn();break;case"zoomout":this.map.zoomOut();break;case"zoomworld":this.map.zoomToMaxExtent();break;}
-OpenLayers.Event.stop(evt);},CLASS_NAME:"OpenLayers.Control.PanZoom"});OpenLayers.Control.PanZoom.X=4;OpenLayers.Control.PanZoom.Y=4;OpenLayers.Control.ScaleLine=OpenLayers.Class(OpenLayers.Control,{maxWidth:100,topOutUnits:"km",topInUnits:"m",bottomOutUnits:"mi",bottomInUnits:"ft",eTop:null,eBottom:null,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,[options]);},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);if(!this.eTop){this.div.style.display="block";this.div.style.position="absolute";this.eTop=document.createElement("div");this.eTop.className=this.displayClass+"Top";var theLen=this.topInUnits.length;this.div.appendChild(this.eTop);if((this.topOutUnits=="")||(this.topInUnits=="")){this.eTop.style.visibility="hidden";}else{this.eTop.style.visibility="visible";}
+OpenLayers.Event.stop(evt);},CLASS_NAME:"OpenLayers.Control.PanZoom"});OpenLayers.Control.PanZoom.X=4;OpenLayers.Control.PanZoom.Y=4;OpenLayers.Control.ScaleLine=OpenLayers.Class(OpenLayers.Control,{maxWidth:100,topOutUnits:"km",topInUnits:"m",bottomOutUnits:"mi",bottomInUnits:"ft",eTop:null,eBottom:null,geodesic:false,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,[options]);},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);if(!this.eTop){this.eTop=document.createElement("div");this.eTop.className=this.displayClass+"Top";var theLen=this.topInUnits.length;this.div.appendChild(this.eTop);if((this.topOutUnits=="")||(this.topInUnits=="")){this.eTop.style.visibility="hidden";}else{this.eTop.style.visibility="visible";}
 this.eBottom=document.createElement("div");this.eBottom.className=this.displayClass+"Bottom";this.div.appendChild(this.eBottom);if((this.bottomOutUnits=="")||(this.bottomInUnits=="")){this.eBottom.style.visibility="hidden";}else{this.eBottom.style.visibility="visible";}}
 this.map.events.register('moveend',this,this.update);this.update();return this.div;},getBarLen:function(maxLen){var digits=parseInt(Math.log(maxLen)/Math.log(10));var pow10=Math.pow(10,digits);var firstChar=parseInt(maxLen/pow10);var barLen;if(firstChar>5){barLen=5;}else if(firstChar>2){barLen=2;}else{barLen=1;}
 return barLen*pow10;},update:function(){var res=this.map.getResolution();if(!res){return;}
-var curMapUnits=this.map.getUnits();var inches=OpenLayers.INCHES_PER_UNIT;var maxSizeData=this.maxWidth*res*inches[curMapUnits];var topUnits;var bottomUnits;if(maxSizeData>100000){topUnits=this.topOutUnits;bottomUnits=this.bottomOutUnits;}else{topUnits=this.topInUnits;bottomUnits=this.bottomInUnits;}
-var topMax=maxSizeData/inches[topUnits];var bottomMax=maxSizeData/inches[bottomUnits];var topRounded=this.getBarLen(topMax);var bottomRounded=this.getBarLen(bottomMax);topMax=topRounded/inches[curMapUnits]*inches[topUnits];bottomMax=bottomRounded/inches[curMapUnits]*inches[bottomUnits];var topPx=topMax/res;var bottomPx=bottomMax/res;if(this.eBottom.style.visibility=="visible"){this.eBottom.style.width=Math.round(bottomPx)+"px";this.eBottom.innerHTML=bottomRounded+" "+bottomUnits;}
-if(this.eTop.style.visibility=="visible"){this.eTop.style.width=Math.round(topPx)+"px";this.eTop.innerHTML=topRounded+" "+topUnits;}},CLASS_NAME:"OpenLayers.Control.ScaleLine"});OpenLayers.Event={observers:false,KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},isRightClick:function(event){return(((event.which)&&(event.which==3))||((event.button)&&(event.button==2)));},stop:function(event,allowDefault){if(!allowDefault){if(event.preventDefault){event.preventDefault();}else{event.returnValue=false;}}
+var curMapUnits=this.map.getUnits();var inches=OpenLayers.INCHES_PER_UNIT;var maxSizeData=this.maxWidth*res*inches[curMapUnits];var geodesicRatio=1;if(this.geodesic===true){var maxSizeGeodesic=this.getGeodesicLength(this.maxWidth);var maxSizeKilometers=maxSizeData/inches["km"];geodesicRatio=maxSizeGeodesic/maxSizeKilometers;maxSizeData*=geodesicRatio;}
+var topUnits;var bottomUnits;if(maxSizeData>100000){topUnits=this.topOutUnits;bottomUnits=this.bottomOutUnits;}else{topUnits=this.topInUnits;bottomUnits=this.bottomInUnits;}
+var topMax=maxSizeData/inches[topUnits];var bottomMax=maxSizeData/inches[bottomUnits];var topRounded=this.getBarLen(topMax);var bottomRounded=this.getBarLen(bottomMax);topMax=topRounded/inches[curMapUnits]*inches[topUnits];bottomMax=bottomRounded/inches[curMapUnits]*inches[bottomUnits];var topPx=topMax/res/geodesicRatio;var bottomPx=bottomMax/res/geodesicRatio;if(this.eBottom.style.visibility=="visible"){this.eBottom.style.width=Math.round(bottomPx)+"px";this.eBottom.innerHTML=bottomRounded+" "+bottomUnits;}
+if(this.eTop.style.visibility=="visible"){this.eTop.style.width=Math.round(topPx)+"px";this.eTop.innerHTML=topRounded+" "+topUnits;}},getGeodesicLength:function(pixels){var map=this.map;var centerPx=map.getPixelFromLonLat(map.getCenter());var bottom=map.getLonLatFromPixel(centerPx.add(0,-pixels/2));var top=map.getLonLatFromPixel(centerPx.add(0,pixels/2));var source=map.getProjectionObject();var dest=new OpenLayers.Projection("EPSG:4326");if(!source.equals(dest)){bottom.transform(source,dest);top.transform(source,dest);}
+return OpenLayers.Util.distVincenty(bottom,top);},CLASS_NAME:"OpenLayers.Control.ScaleLine"});OpenLayers.Event={observers:false,KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},isRightClick:function(event){return(((event.which)&&(event.which==3))||((event.button)&&(event.button==2)));},stop:function(event,allowDefault){if(!allowDefault){if(event.preventDefault){event.preventDefault();}else{event.returnValue=false;}}
 if(event.stopPropagation){event.stopPropagation();}else{event.cancelBubble=true;}},findElement:function(event,tagName){var element=OpenLayers.Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase()))){element=element.parentNode;}
 return element;},observe:function(elementParam,name,observer,useCapture){var element=OpenLayers.Util.getElement(elementParam);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent)){name='keydown';}
 if(!this.observers){this.observers={};}
@@ -440,7 +452,7 @@ if(!this.element.lefttop){this.element.lefttop=[(document.documentElement.client
 if(!this.element.offsets){this.element.offsets=OpenLayers.Util.pagePosition(this.element);this.element.offsets[0]+=this.element.scrolls[0];this.element.offsets[1]+=this.element.scrolls[1];}
 return new OpenLayers.Pixel((evt.clientX+this.element.scrolls[0])-this.element.offsets[0]
 -this.element.lefttop[0],(evt.clientY+this.element.scrolls[1])-this.element.offsets[1]
--this.element.lefttop[1]);},CLASS_NAME:"OpenLayers.Events"});OpenLayers.Format=OpenLayers.Class({options:null,externalProjection:null,internalProjection:null,data:null,keepData:false,initialize:function(options){OpenLayers.Util.extend(this,options);this.options=options;},destroy:function(){},read:function(data){OpenLayers.Console.userError(OpenLayers.i18n("readNotImplemented"));},write:function(object){OpenLayers.Console.userError(OpenLayers.i18n("writeNotImplemented"));},CLASS_NAME:"OpenLayers.Format"});OpenLayers.Lang.ca={'unhandledRequest':"Resposta a petició no gestionada ${statusText}",'permalink':"Enllaç permanent",'overlays':"Capes addicionals",'baseLayer':"Capa Base",'sameProjection':"El mapa de referència només funciona si té la mateixa projecció que el mapa principal",'readNotImplemented':"Lectura no implementada.",'writeNotImplemented':"Escriptura no implementada.",'noFID':"No es pot actualitzar un element per al que no existeix FID.",'errorLoadingGML':"Error caregant el fitxer GML ${url}",'browserNotSupported':"El seu navegador no suporta renderització vectorial. Els renderitzadors suportats actualmente són:\n${renderers}",'componentShouldBe':"addFeatures : el component ha de ser de tipus ${geomType}",'getFeatureError':"getFeatureFromEvent ha estat cridat a una capa sense renderizador. Això normalment vol dir que "+"s'ha eliminat una capa, però no el handler associat a ella.",'minZoomLevelError':"La propietat minZoomLevel s'ha d'utilitzar només "+"amb les capes que tenen FixedZoomLevels. El fet que "+"una capa wfs comprovi minZoomLevel és una reliquia del "+"passat. No podem, però, eliminar-la sense trencar "+"les aplicacions d'OpenLayers que en puguin dependre. "+"Així doncs estem fent-la obsoleta -- la comprovació "+"minZoomLevel s'eliminarà a la versió 3.0. Feu servir "+"els paràmetres min/max resolution en substitució, tal com es descriu aquí: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacció WFS: CORRECTA ${response}",'commitFailed':"Transacció WFS: HA FALLAT ${response}",'googleWarning':"La capa Google no s'ha pogut carregar correctament.<br><br>"+"Per evitar aquest missatge, sel·leccioneu una nova Capa Base "+"al gestor de capes de la cantonada superior dreta.<br><br>"+"Probablement això és degut a que l'script de la biblioteca de "+"Google Maps no ha estat inclòs a la vostra pàgina, o no "+"conté la clau de l'API correcta per a la vostra adreça.<br><br>"+"Desenvolupadors: Per obtenir consells sobre com fer anar això, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>féu clic aquí</a>",'getLayerWarning':"Per evitar aquest missatge, sel·leccioneu una nova Capa Base "+"al gestor de capes de la cantonada superior dreta.<br><br>"+"Probablement això és degut a que l'script de la biblioteca "+"${layerLib} "+"no ha estat inclòs a la vostra pàgina.<br><br>"+"Desenvolupadors: Per obtenir consells sobre com fer anar això, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>féu clic aquí</a>",'scale':"Escala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Heu intentat afegir la capa: ${layerName} al mapa, pero ja ha estat afegida anteriorment",'reprojectDeprecated':"Esteu fent servir l'opció 'reproject' a la capa "+"${layerName}. Aquesta opció és obsoleta: el seu ús fou concebut "+"per suportar la visualització de dades sobre mapes base comercials, "+"però aquesta funcionalitat s'hauria d'assolir ara mitjançant el suport "+"de la projecció Spherical Mercator. Més informació disponible a "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Aquest mètode és obsolet i s'eliminará a la versió 3.0. "+"Si us plau feu servir em mètode alternatiu ${newMethod}.",'boundsAddError':"Ha de proporcionar els valors x i y a la funció add.",'lonlatAddError':"Ha de proporcionar els valors lon i lat a la funció add.",'pixelAddError':"Ha de proporcionar els valors x i y a la funció add.",'unsupportedGeometryType':"Tipus de geometria no suportada: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition ha fallat: l'element amb id ${elemId} pot estar fora de lloc.",'filterEvaluateNotImplemented':"evaluate no està implementat per aquest tipus de filtre.",'end':''};OpenLayers.Lang.en={'unhandledRequest':"Unhandled request return ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Base Layer",'sameProjection':"The overview map only works when it is in the same projection as the main map",'readNotImplemented':"Read not implemented.",'writeNotImplemented':"Write not implemented.",'noFID':"Can't update a feature for which there is no FID.",'errorLoadingGML':"Error in loading GML file ${url}",'browserNotSupported':"Your browser does not support vector rendering. Currently supported renderers are:\n${renderers}",'componentShouldBe':"addFeatures : component should be an ${geomType}",'getFeatureError':"getFeatureFromEvent called on layer with no renderer. This usually means you "+"destroyed a layer, but not some handler which is associated with it.",'minZoomLevelError':"The minZoomLevel property is only intended for use "+"with the FixedZoomLevels-descendent layers. That this "+"wfs layer checks for minZoomLevel is a relic of the"+"past. We cannot, however, remove it without possibly "+"breaking OL based applications that may depend on it."+" Therefore we are deprecating it -- the minZoomLevel "+"check below will be removed at 3.0. Please instead "+"use min/max resolution setting as described here: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: SUCCESS ${response}",'commitFailed':"WFS Transaction: FAILED ${response}",'googleWarning':"The Google Layer was unable to load correctly.<br><br>"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.<br><br>"+"Most likely, this is because the Google Maps library "+"script was either not included, or does not contain the "+"correct API key for your site.<br><br>"+"Developers: For help getting this working correctly, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>click here</a>",'getLayerWarning':"The ${layerType} Layer was unable to load correctly.<br><br>"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.<br><br>"+"Most likely, this is because the ${layerLib} library "+"script was not correctly included.<br><br>"+"Developers: For help getting this working correctly, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>click here</a>",'scale':"Scale = 1 : ${scaleDenom}",'layerAlreadyAdded':"You tried to add the layer: ${layerName} to the map, but it has already been added",'reprojectDeprecated':"You are using the 'reproject' option "+"on the ${layerName} layer. This option is deprecated: "+"its use was designed to support displaying data over commercial "+"basemaps, but that functionality should now be achieved by using "+"Spherical Mercator support. More information is available from "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"This method has been deprecated and will be removed in 3.0. "+"Please use ${newMethod} instead.",'boundsAddError':"You must pass both x and y values to the add function.",'lonlatAddError':"You must pass both lon and lat values to the add function.",'pixelAddError':"You must pass both x and y values to the add function.",'unsupportedGeometryType':"Unsupported geometry type: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: element with id ${elemId} may be misplaced.",'end':'','filterEvaluateNotImplemented':"evaluate is not implemented for this filter type."};OpenLayers.Lang.es={'unhandledRequest':"Respuesta a petición no gestionada ${statusText}",'permalink':"Enlace permanente",'overlays':"Capas superpuestas",'baseLayer':"Capa Base",'sameProjection':"El mini mapa sólo funciona si está en la misma proyección que el mapa principal",'readNotImplemented':"Lectura no implementada.",'writeNotImplemented':"Escritura no implementada.",'noFID':"No se puede actualizar un elemento para el que no existe FID.",'errorLoadingGML':"Error cargando el fichero GML ${url}",'browserNotSupported':"Su navegador no soporta renderización vectorial. Los renderizadores soportados actualmente son:\n${renderers}",'componentShouldBe':"addFeatures : el componente debe ser del tipo ${geomType}",'getFeatureError':"getFeatureFromEvent llamado en una capa sin renderizador. Esto normalmente quiere decir que "+"se ha destruido una capa, pero no el manejador asociado a ella.",'minZoomLevelError':"La propiedad minZoomLevel debe sólo utilizarse "+"con las capas que tienen FixedZoomLevels. El hecho de que "+"una capa wfs compruebe minZoomLevel is una reliquia del "+"pasado. Sin embargo, no podemos eliminarla sin discontinuar "+"probablemente las aplicaciones OL que puedan depender de ello. "+"Así pues estamos haciéndolo obsoleto --la comprobación "+"minZoomLevel se eliminará en la versión 3.0. Utilice el ajuste "+"de resolution min/max en su lugar, tal como se describe aquí: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacción WFS: ÉXITO ${response}",'commitFailed':"Transacción WFS: FALLÓ ${response}",'googleWarning':"La capa Google no pudo ser cargada correctamente.<br><br>"+"Para evitar este mensaje, seleccione una nueva Capa Base "+"en el selector de capas en la esquina superior derecha.<br><br>"+"Probablemente, esto se debe a que el script de la biblioteca de "+"Google Maps no fue correctamente incluido en su página, o no "+"contiene la clave del API correcta para su sitio.<br><br>"+"Desarrolladores: Para ayudar a hacer funcionar esto correctamente, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>haga clic aquí</a>",'getLayerWarning':"La capa ${layerType} no pudo ser cargada correctamente.<br><br>"+"Para evitar este mensaje, seleccione una nueva Capa Base "+"en el selector de capas en la esquina superior derecha.<br><br>"+"Probablemente, esto se debe a que el script de "+"la biblioteca ${layerLib} "+"no fue correctamente incluido en su página.<br><br>"+"Desarrolladores: Para ayudar a hacer funcionar esto correctamente, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>haga clic aquí</a>",'scale':"Escala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Intentó añadir la capa: ${layerName} al mapa, pero ya había sido añadida previamente",'reprojectDeprecated':"Está usando la opción 'reproject' en la capa "+"${layerName}. Esta opción está obsoleta: su uso fue diseñado "+"para soportar la visualización de datos sobre mapas base comerciales, "+"pero esa funcionalidad debería conseguirse ahora mediante el soporte "+"de la proyección Spherical Mercator. Más información disponible en "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Este método está obsoleto y se eliminará en la versión 3.0. "+"Por favor utilice el método ${newMethod} en su lugar.",'boundsAddError':"Debe proporcionar los valores x e y a la función add.",'lonlatAddError':"Debe proporcionar los valores lon y lat a la función add.",'pixelAddError':"Debe proporcionar los valores x e y a la función add.",'unsupportedGeometryType':"Tipo de geometría no soportada: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition falló: el elemento con id ${elemId} puede haberse colocado de manera errónea.",'filterEvaluateNotImplemented':"evaluate no está implementado para este tipo de filtro.",'end':''};OpenLayers.Lang.fr={'unhandledRequest':"Requête non gérée, retournant ${statusText}",'permalink':"Permalien",'overlays':"Calques",'baseLayer':"Calque de base",'sameProjection':"La carte de situation ne fonctionne que lorsque sa projection est la même que celle de la carte principale",'readNotImplemented':"Lecture non implémentée.",'writeNotImplemented':"Ecriture non implémentée.",'noFID':"Impossible de mettre à jour un objet sans identifiant (fid).",'errorLoadingGML':"Erreur au chargement du fichier GML ${url}",'browserNotSupported':"Votre navigateur ne supporte pas le rendu vectoriel. Les renderers actuellement supportés sont : \n${renderers}",'componentShouldBe':"addFeatures : le composant devrait être de type ${geomType}",'getFeatureError':"getFeatureFromEvent a été appelé sur un calque sans renderer. Cela signifie généralement que vous "+"avez détruit cette couche, mais que vous avez conservé un handler qui lui était associé.",'minZoomLevelError':"La propriété minZoomLevel doit seulement être utilisée "+"pour des couches FixedZoomLevels-descendent. Le fait que "+"cette couche WFS vérifie la présence de minZoomLevel "+"est une relique du passé. Nous ne pouvons toutefois la "+"supprimer sans casser des applications qui pourraient en dépendre."+" C'est pourquoi nous la déprécions -- la vérification du minZoomLevel "+"sera supprimée en version 3.0. A la place, merci d'utiliser "+"les paramètres de résolutions min/max tel que décrit sur : "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transaction WFS : SUCCES ${response}",'commitFailed':"Transaction WFS : ECHEC ${response}",'googleWarning':"La couche Google n'a pas été en mesure de se charger correctement.<br><br>"+"Pour supprimer ce message, choisissez une nouvelle BaseLayer "+"dans le sélecteur de couche en haut à droite.<br><br>"+"Cela est possiblement causé par la non-inclusion de la "+"librairie Google Maps, ou alors parce que la clé de l'API "+"ne correspond pas à votre site.<br><br>"+"Développeurs : pour savoir comment corriger ceci, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>cliquez ici</a>",'getLayerWarning':"La couche ${layerType} n'est pas en mesure de se charger correctement.<br><br>"+"Pour supprimer ce message, choisissez une nouvelle BaseLayer "+"dans le sélecteur de couche en haut à droite.<br><br>"+"Cela est possiblement causé par la non-inclusion de la "+"librairie ${layerLib}.<br><br>"+"Développeurs : pour savoir comment corriger ceci, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>cliquez ici</a>",'scale':"Echelle ~ 1 : ${scaleDenom}",'layerAlreadyAdded':"Vous avez essayé d'ajouter à la carte le calque : ${layerName}, mais il est déjà présent",'reprojectDeprecated':"Vous utilisez l'option 'reproject' "+"sur la couche ${layerName}. Cette option est dépréciée : "+"Son usage permettait d'afficher des données au dessus de couches raster commerciales."+"Cette fonctionalité est maintenant supportée en utilisant le support de la projection "+"Mercator Sphérique. Plus d'information est disponible sur "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Cette méthode est dépréciée, et sera supprimée à la version 3.0. "+"Merci d'utiliser ${newMethod} à la place.",'boundsAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'lonlatAddError':"Vous devez passer les deux valeurs lon et lat à la fonction add.",'pixelAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'unsupportedGeometryType':"Type de géométrie non supporté : ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition a échoué: l'élément d'id ${elemId} pourrait être mal positionné.",'end':''};OpenLayers.Lang.it={'unhandledRequest':"Codice di ritorno della richiesta ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Livello base",'sameProjection':"La mini mappa funziona solamente se ha la stessa proiezione della mappa principale",'readNotImplemented':"Lettura non implementata.",'writeNotImplemented':"Scrittura non implementata.",'noFID':"Impossibile aggiornare un elemento grafico che non abbia il FID.",'errorLoadingGML':"Errore nel caricamento del file GML ${url}",'browserNotSupported':"Il tuo browser non supporta il rendering vettoriale. I renderizzatore attualemnte supportati sono:\n${renderers}",'componentShouldBe':"addFeatures : il componente dovrebbe essere di tipo ${geomType}",'getFeatureError':"getFeatureFromEvent chiamata su di un livello senza renderizzatore. Ciò significa che "+"il livello è stato cancellato, ma non i gestori associati ad esso.",'minZoomLevelError':"La proprietà minZoomLevel è da utilizzare solamente "+"con livelli che abbiano FixedZoomLevels. Il fatto che "+"questo livello wfs controlli la proprietà minZoomLevel è "+"un retaggio del passato. Non possiamo comunque rimuoverla "+"senza rompere le vecchie applicazioni che dipendono su di essa."+"Quindi siamo costretti a deprecarla -- minZoomLevel "+"e sarà rimossa dalla vesione 3.0. Si prega di utilizzare i "+"settaggi di risoluzione min/max come descritto qui: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transazione WFS: SUCCESS ${response}",'commitFailed':"Transazione WFS: FAILED ${response}",'googleWarning':"Il livello Google non è riuscito a caricare correttamente.<br><br>"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.<br><br>"+"Più precisamente, ciò accade perchè la libreria Google Maps "+"non è stata inclusa nella pagina, oppure non contiene la "+"corretta API key per il tuo sito.<br><br>"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>clicca qui</a>",'getLayerWarning':"Il livello ${layerType} non è riuscito a caricare correttamente.<br><br>"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.<br><br>"+"Più precisamente, ciò accade perchè la libreria ${layerLib} "+"non è stata inclusa nella pagina.<br><br>"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>clicca qui</a>",'scale':"Scala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Stai cercando di aggiungere il livello: ${layerName} alla mappa, ma tale livello è già stato aggiunto.",'reprojectDeprecated':"Stai utilizzando l'opzione 'reproject' sul livello ${layerName}. "+"Questa opzione è deprecata: il suo utilizzo è stato introdotto per"+"supportare il disegno dei dati sopra mappe commerciali, ma tale "+"funzionalità dovrebbe essere ottenuta tramite l'utilizzo della proiezione "+"Spherical Mercator. Per maggiori informazioni consultare qui "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Questo metodo è stato deprecato e sarà rimosso dalla versione 3.0. "+"Si prega di utilizzare il metodo ${newMethod} in alternativa.",'boundsAddError':"Devi specificare i valori di x e y alla funzione add.",'lonlatAddError':"Devi specificare i valori di lon e lat alla funzione add.",'pixelAddError':"Devi specificare i valori di x e y alla funzione add.",'unsupportedGeometryType':"Tipo di geometria non supportata: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fallita: l'elemento con id ${elemId} è posizionato in modo errato.",'end':''};OpenLayers.Lang["pt-BR"]={'unhandledRequest':"A requisição retornou um erro não tratado: ${statusText}",'permalink':"Link para essa página",'overlays':"Camadas de Sobreposição",'baseLayer':"Camada Base",'sameProjection':"O mapa de referência só funciona quando ele está na mesma projeção do mapa principal",'readNotImplemented':"Leitura não implementada.",'writeNotImplemented':"Escrita não implementada.",'noFID':"Não é possível atualizar uma feição que não tenha um FID.",'errorLoadingGML':"Erro ao carregar o arquivo GML ${url}",'browserNotSupported':"Seu navegador não suporta renderização de vetores. Os renderizadores suportados atualmente são:\n${renderers}",'componentShouldBe':"addFeatures: o componente deve ser do tipo ${geomType}",'getFeatureError':"getFeatureFromEvent foi executado mas nenhum renderizador foi encontrado. "+"Isso pode indicar que você destruiu uma camana, mas não o handler associado a ela.",'minZoomLevelError':"A propriedade minZoomLevel é de uso restrito das camadas "+"descendentes de FixedZoomLevels. A verificação dessa propriedade "+"pelas camadas wfs é um resíduo do passado. Não podemos, entretanto "+"não é possível removê-la sem possívelmente quebrar o funcionamento "+"de aplicações OL que possuem depência com ela. Portanto estamos "+"tornando seu uso obsoleto -- a verificação desse atributo será "+"removida na versão 3.0. Ao invés, use as opções de resolução "+"min/max como descrito em: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transação WFS : SUCESSO ${response}",'commitFailed':"Transação WFS : ERRO ${response}",'googleWarning':"Não foi possível carregar a camada Google corretamente.<br><br>"+"Para se livrar dessa mensagem, selecione uma nova Camada Base, "+"na ferramenta de alternação de camadas localização do canto "+"superior direito.<br><br>"+"Muito provavelmente, isso foi causado porque o script da "+"biblioteca do Google Maps não foi incluído, ou porque ele não "+"contém a chave correta da API para o seu site.<br><br>"+"Desenvolvedores: Para obter ajuda em solucionar esse problema "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>cliquem aqui</a>",'getLayerWarning':"Não foi possível carregar a camada ${layerType} corretamente.<br><br>"+"Para se livrar dessa mensagem, selecione uma nova Camada Base, "+"na ferramenta de alternação de camadas localização do canto "+"superior direito.<br><br>"+"Muito provavelmente, isso foi causado porque o script da "+"biblioteca ${layerLib} não foi incluído corretamente.<br><br>"+"Desenvolvedores: Para obter ajuda em solucionar esse problema "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>cliquem aqui</a>",'scale':"Escala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Você tentou adicionar a camada: ${layerName} ao mapa, mas ela já foi adicionada",'reprojectDeprecated':"Você está usando a opção 'reproject' na camada ${layerName}. "+"Essa opção está obsoleta: seu uso foi projetado para suportar "+"a visualização de dados sobre bases de mapas comerciais, "+"entretanto essa funcionalidade deve agora ser alcançada usando "+"o suporte à projeção Mercator. Mais informação está disponível em: "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Esse método está obsoleto e será removido na versão 3.0. "+"Ao invés, por favor use ${newMethod}.",'boundsAddError':"Você deve informar ambos os valores x e y para a função add.",'lonlatAddError':"Você deve informar ambos os valores lon e lat para a função add.",'pixelAddError':"Você deve informar ambos os valores x e y para a função add.",'unsupportedGeometryType':"Tipo geométrico não suportado: ${geomType}.",'pagePositionFailed':"OpenLayers.Util.pagePosition falhou: o elemento de id ${elemId} deve estar fora do lugar.",'end':''};OpenLayers.Lang["zh-CN"]={'unhandledRequest':"未处理的请求,返回值为 ${statusText}",'permalink':"永久链接",'overlays':"叠加层",'baseLayer':"基础图层",'sameProjection':"鹰眼地图只有在和主地图使用相同的投影的时候才能正常共工作",'readNotImplemented':"读取功能没有实现。",'writeNotImplemented':"写入功能没有实现。",'noFID':"无法更新feature,缺少FID。",'errorLoadingGML':"加载GML文件 ${url} 出现错误。",'browserNotSupported':"你使用的浏览器不支持矢量渲染。当前支持的渲染方式包括:\n${renderers}",'componentShouldBe':"addFeatures : 组件类型应该是 ${geomType}",'getFeatureError':"getFeatureFromEvent方法在一个没有渲染器的图层上被调用。 这通常意味着您"+"销毁了一个图层,但并未销毁其关联的handler。",'minZoomLevelError':"minZoomLevel属性仅适合用于"+"使用了固定缩放级别的图层。这个 "+"wfs 图层检查 minZoomLevel 是过去遗留下来的。"+"然而,我们不能移除它,"+"而破坏依赖于它的基于OL的应用程序。"+"因此,我们废除了它 -- minZoomLevel "+"将会在3.0中被移除。请改用 "+"min/max resolution 设置,参考:"+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: 成功。 ${response}",'commitFailed':"WFS Transaction: 失败。 ${response}",'googleWarning':"Google图层不能正确加载。<br><br>"+"要消除这个信息,请在右上角的"+"图层控制面板中选择其他的基础图层。<br><br>"+"这种情况很可能是没有正确的包含Google地图脚本库,"+"或者是没有包含在你的站点上"+"使用的正确的Google Maps API密匙。<br><br>"+"开发者:获取使其正确工作的帮助信息,"+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>点击这里</a>",'getLayerWarning':"${layerType} 图层不能正确加载。<br><br>"+"要消除这个信息,请在右上角的"+"图层控制面板中选择其他的基础图层。<br><br>"+"这种情况很可能是没有正确的包含"+"${layerLib} 脚本库。<br><br>"+"开发者:获取使其正确工作的帮助信息,"+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>点击这里</a>",'scale':"比例尺 = 1 : ${scaleDenom}",'layerAlreadyAdded':"你尝试添加图层: ${layerName} 到地图中,但是它之前就已经被添加。",'reprojectDeprecated':"你正在使用 ${layerName} 图层上的'reproject'选项。"+"这个选项已经不再使用:"+"它是被设计用来支持显示商业的地图数据,"+"不过现在该功能可以通过使用Spherical Mercator来实现。"+"更多信息可以参阅"+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"该方法已经不再被支持,并且将在3.0中被移除。"+"请使用 ${newMethod} 方法来替代。",'boundsAddError':"您必须传递 x 和 y 两个参数值到 add 方法。",'lonlatAddError':"您必须传递 lon 和 lat 两个参数值到 add 方法。",'pixelAddError':"您必须传递 x and y 两个参数值到 add 方法。",'unsupportedGeometryType':"不支持的几何体类型: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition 失败:id 为 ${elemId} 的元素可能被错置。",'end':''};OpenLayers.Lang["zh-TW"]={'unhandledRequest':"未處理的請求,傳回值為 ${statusText}。",'permalink':"永久連結",'overlays':"額外圖層",'baseLayer':"基礎圖層",'sameProjection':"地圖縮覽(OverviewMap)只能在跟主地圖相同投影時起作用。",'readNotImplemented':"沒有實作讀取的功能。",'writeNotImplemented':"沒有實作寫入的功能。",'noFID':"因為沒有 FID 所以無法更新 feature。",'errorLoadingGML':"讀取GML檔案 ${url} 錯誤。",'browserNotSupported':"您的瀏覽器未支援向量渲染. 目前支援的渲染方式是:\n${renderers}",'componentShouldBe':"addFeatures : 元件應該為 ${geomType}",'getFeatureError':"getFeatureFromEvent 在一個沒有被渲染的圖層裡被呼叫。這通常意味著您 "+"摧毀了一個圖層,但並未摧毀相關的handler。",'minZoomLevelError':"minZoomLevel 屬性僅適合用在 "+"FixedZoomLevels-descendent 類型的圖層. 這個"+"wfs layer 的 minZoomLevel 是過去所遺留下來的,"+"然而我們不能移除它而不讓它將"+"過去的程式相容性給破壞掉。"+"因此我們將會迴避使用它 -- minZoomLevel "+"會在3.0被移除,請改"+"用在這邊描述的 min/max resolution 設定: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: 成功 ${response}",'commitFailed':"WFS Transaction: 失敗 ${response}",'googleWarning':"The Google Layer 圖層無法被正確的載入。<br><br>"+"要迴避這個訊息, 請在右上角的圖層改變器裡,"+"選一個新的基礎圖層。<br><br>"+"很有可能是因為 Google Maps 的函式庫"+"腳本沒有被正確的置入,或沒有包含 "+"您網站上正確的 API key <br><br>"+"開發者: 要幫助這個行為正確完成,"+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>請按這裡</a>",'getLayerWarning':"${layerType} 圖層無法被正確的載入。<br><br>"+"要迴避這個訊息, 請在右上角的圖層改變器裡,"+"選一個新的基礎圖層。<br><br>"+"很有可能是因為 ${layerLib} 的函式庫"+"腳本沒有被正確的置入。<br><br>"+"開發者: 要幫助這個行為正確完成,"+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>請按這裡</a>",'scale':"Scale = 1 : ${scaleDenom}",'layerAlreadyAdded':"你試著新增圖層: ${layerName} 到地圖上,但圖層之前就已經被新增了。",'reprojectDeprecated':"你正使用 'reproject' 這個選項 "+"在 ${layerName} 層。這個選項已經不再使用:"+"它的使用原本是設計用來支援在商業地圖上秀出資料,"+"但這個功能已經被"+"Spherical Mercator所取代。更多的資訊可以在 "+"http://trac.openlayers.org/wiki/SphericalMercator 找到。",'methodDeprecated':"這個方法已經不再使用且在3.0將會被移除,"+"請使用 ${newMethod} 來代替。",'boundsAddError':"您必須傳入 x 跟 y 兩者的值進 add 函數。",'lonlatAddError':"您必須傳入 lon 跟 lat 兩者的值進 add 函數。",'pixelAddError':"您必須傳入 x 跟 y 兩者的值進 add 函數。",'unsupportedGeometryType':"未支援的幾何型別: ${geomType}。",'pagePositionFailed':"OpenLayers.Util.pagePosition 失敗: id ${elemId} 的 element 可能被錯置。",'end':''};OpenLayers.Popup.AnchoredBubble=OpenLayers.Class(OpenLayers.Popup.Anchored,{rounded:false,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){this.padding=new OpenLayers.Bounds(0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE,0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE);OpenLayers.Popup.Anchored.prototype.initialize.apply(this,arguments);},draw:function(px){OpenLayers.Popup.Anchored.prototype.draw.apply(this,arguments);this.setContentHTML();this.setBackgroundColor();this.setOpacity();return this.div;},updateRelativePosition:function(){this.setRicoCorners();},setSize:function(contentSize){OpenLayers.Popup.Anchored.prototype.setSize.apply(this,arguments);this.setRicoCorners();},setBackgroundColor:function(color){if(color!=undefined){this.backgroundColor=color;}
+-this.element.lefttop[1]);},CLASS_NAME:"OpenLayers.Events"});OpenLayers.Format=OpenLayers.Class({options:null,externalProjection:null,internalProjection:null,data:null,keepData:false,initialize:function(options){OpenLayers.Util.extend(this,options);this.options=options;},destroy:function(){},read:function(data){OpenLayers.Console.userError(OpenLayers.i18n("readNotImplemented"));},write:function(object){OpenLayers.Console.userError(OpenLayers.i18n("writeNotImplemented"));},CLASS_NAME:"OpenLayers.Format"});OpenLayers.Lang["ar"]=OpenLayers.Util.applyDefaults({'permalink':"وصلة دائمة",'baseLayer':"الطبقة الاساسية",'readNotImplemented':"القراءة غير محققة.",'writeNotImplemented':"الكتابة غير محققة",'errorLoadingGML':"خطأ عند تحميل الملف جي ام ال ${url}",'scale':"النسبة = 1 : ${scaleDenom}",'W':"غ",'E':"شر",'N':"شم",'S':"ج"});OpenLayers.Lang["be-tarask"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Неапрацаваны вынік запыту ${statusText}",'permalink':"Сталая спасылка",'overlays':"Слаі",'baseLayer':"Базавы слой",'sameProjection':"Аглядная мапа працуе толькі калі яна мае тую ж праекцыю, што і асноўная мапа",'readNotImplemented':"Функцыянальнасьць чытаньня ня створаная.",'writeNotImplemented':"Функцыянальнасьць запісу ня створаная.",'noFID':"Немагчыма абнавіць магчымасьць, для якога не існуе FID.",'errorLoadingGML':"Памылка загрузкі файла GML ${url}",'browserNotSupported':"Ваш браўзэр не падтрымлівае вэктарную графіку. У цяперашні момант падтрымліваюцца: ${renderers}",'componentShouldBe':"addFeatures : кампанэнт павінен быць ${geomType}",'getFeatureError':"getFeatureFromEvent выкліканы для слоя бяз рэндэру. Звычайна гэта азначае, што Вы зьнішчылі слой, але пакінулі зьвязаны зь ім апрацоўшчык.",'minZoomLevelError':"Уласьцівасьць minZoomLevel прызначана толькі для выкарыстаньня са слаямі вытворнымі ад FixedZoomLevels. Тое, што  гэты wfs-слой правяраецца на minZoomLevel — рэха прошлага. Але мы ня можам выдаліць гэтую магчымасьць, таму што ад яе залежаць некаторыя заснаваныя на OL дастасаваньні. Тым ня менш, праверка minZoomLevel будзе выдаленая ў вэрсіі 3.0. Калі ласка, выкарыстоўваеце замест яе ўстаноўкі мінімальнага/максымальнага памераў, як апісана тут: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-транзакцыя: ПОСЬПЕХ ${response}",'commitFailed':"WFS-транзакцыя: ПАМЫЛКА ${response}",'googleWarning':"Не атрымалася загрузіць слой Google. \x3cbr\x3e\x3cbr\x3eКаб пазбавіцца гэтага паведамленьня, выберыце новы базавы слой у сьпісе ў верхнім правым куце.\x3cbr\x3e\x3cbr\x3e Хутчэй за ўсё, прычына ў тым, што скрыпт бібліятэкі Google Maps ня быў уключаныя альбо не ўтрымлівае слушны API-ключ для Вашага сайта.\x3cbr\x3e\x3cbr\x3eРаспрацоўшчыкам: Для таго, каб даведацца як зрабіць так, каб усё працавала, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eнацісьніце тут\x3c/a\x3e",'getLayerWarning':"Немагчыма загрузіць слой ${layerType}.\x3cbr\x3e\x3cbr\x3eКаб пазбавіцца гэтага паведамленьня, выберыце новы базавы слой у сьпісе ў верхнім правым куце.\x3cbr\x3e\x3cbr\x3eХутчэй за ўсё, прычына ў тым, што скрыпт бібліятэкі ${layerLib} ня быў слушна ўключаны.\x3cbr\x3e\x3cbr\x3eРаспрацоўшчыкам: Для таго, каб даведацца як зрабіць так, каб усё працавала, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eнацісьніце тут\x3c/a\x3e",'scale':"Маштаб = 1 : ${scaleDenom}",'W':"З",'E':"У",'N':"Пн",'S':"Пд",'layerAlreadyAdded':"Вы паспрабавалі дадаць слой ${layerName} на мапу, але ён ужо дададзены",'reprojectDeprecated':"Вы выкарыстоўваеце ўстаноўку \'reproject\' для слоя ${layerName}. Гэтая ўстаноўка зьяўляецца састарэлай: яна выкарыстоўвалася для падтрымкі паказу зьвестак на камэрцыйных базавых мапах, але гэта функцыя цяпер рэалізаваная ў убудаванай падтрымцы сфэрычнай праекцыі Мэркатара. Дадатковая інфармацыя ёсьць на http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Гэты мэтад састарэлы і будзе выдалены ў вэрсіі 3.0. Калі ласка, замест яго выкарыстоўвайце ${newMethod}.",'boundsAddError':"Вам неабходна падаць абодва значэньні x і y для функцыі складаньня.",'lonlatAddError':"Вам неабходна падаць абодва значэньні lon і lat для функцыі складаньня.",'pixelAddError':"Вам неабходна падаць абодва значэньні x і y для функцыі складаньня.",'unsupportedGeometryType':"Тып геамэтрыі не падтрымліваецца: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: верагодна элемэнт з ідэнтыфікатарам ${elemId} займае няслушнае месца.",'filterEvaluateNotImplemented':"evaluate не рэалізаваны для гэтага тыпу фільтру."});OpenLayers.Lang["bg"]=OpenLayers.Util.applyDefaults({'permalink':"Постоянна препратка",'baseLayer':"Основен слой",'errorLoadingGML':"Грешка при зареждане на GML файл ${url}",'scale':"Мащаб = 1 : ${scaleDenom}",'layerAlreadyAdded':"Опитахте да добавите слой ${layerName} в картата, но той вече е добавен",'methodDeprecated':"Този метод е остарял и ще бъде премахват в 3.0. Вместо него използвайте ${newMethod}."});OpenLayers.Lang["br"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Distro evel reked anveret ${statusText}",'permalink':"Peurliamm",'overlays':"Gwiskadoù",'baseLayer':"Gwiskad diazez",'sameProjection':"Ne\'z ar gartenn lec\'hiañ en-dro nemet pa vez heñvel ar banndres anezhi ha hini ar gartenn bennañ",'readNotImplemented':"N\'eo ket emplementet al lenn.",'writeNotImplemented':"N\'eo ket emplementet ar skrivañ.",'noFID':"N\'haller ket hizivaat un elfenn ma n\'eus ket a niverenn-anaout (FID) eviti.",'errorLoadingGML':"Fazi e-ser kargañ ar restr GML ${url}",'browserNotSupported':"N\'eo ket skoret an daskor vektorel gant ho merdeer. Setu aze an daskorerioù skoret evit ar poent :\n${renderers}",'componentShouldBe':"addFeatures : bez\' e tlefe ar parzh besañ eus ar seurt ${geomType}",'getFeatureError':"Galvet eo bet getFeatureFromEvent called war ur gwiskad hep daskorer. Kement-se a dalvez ez eus bet freuzet ur gwiskad hag hoc\'h eus miret un embreger bennak stag outañ.",'minZoomLevelError':"Ne zleer implijout ar perzh minZoomLevel nemet evit gwiskadoù FixedZoomLevels-descendent. Ar fed ma wiria ar gwiskad WHS-se hag-eñ ez eus eus minZoomLevel zo un aspadenn gozh. Koulskoude n\'omp ket evit e ziverkañ kuit da derriñ arloadoù diazezet war OL a c\'hallfe bezañ stag outañ. Setu perak eo dispredet -- Lamet kuit e vo ar gwiriañ minZoomLevel a-is er stumm 3.0. Ober gant an arventennoù bihanañ/brasañ evel deskrivet amañ e plas : http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Treuzgread WFS : MAT EO ${response}",'commitFailed':"Treuzgread WFS Transaction: C\'HWITET ${response}",'googleWarning':"N\'eus ket bet gallet kargañ ar gwiskad Google ent reizh.\x3cbr\x3e\x3cbr\x3eEvit en em zizober eus ar c\'hemenn-mañ, dibabit ur BaseLayer nevez en diuzer gwiskadoù er c\'horn dehoù el laez.\x3cbr\x3e\x3cbr\x3eSur a-walc\'h eo peogwir n\'eo ket bet ensoc\'het levraoueg Google Maps pe neuze ne glot ket an alc\'hwez API gant ho lec\'hienn.\x3cbr\x3e\x3cbr\x3eDiorroerien : Evit reizhañ an dra-se, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eclick here\x3c/a\x3e",'getLayerWarning':"N\'haller ket kargañ ar gwiskad ${layerType} ent reizh.\x3cbr\x3e\x3cbr\x3eEvit en em zizober eus ar c\'hemenn-mañ, dibabit ur BaseLayer nevez en diuzer gwiskadoù er c\'horn dehoù el laez.\x3cbr\x3e\x3cbr\x3eSur a-walc\'h eo peogwir n\'eo ket bet ensoc\'het mat al levraoueg ${layerLib}.\x3cbr\x3e\x3cbr\x3eDiorroerien : Evit gouzout penaos reizhañ an dra-se, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclick here\x3c/a\x3e",'scale':"Skeul = 1 : ${scaleDenom}",'W':"K",'E':"R",'N':"N",'S':"S",'layerAlreadyAdded':"Klasket hoc\'h eus ouzhpennañ ar gwiskad : ${layerName} d\'ar gartenn, met ouzhpennet e oa bet c\'hoazh",'reprojectDeprecated':"Emaoc\'h oc\'h implijout an dibarzh \'reproject\' war ar gwiskad ${layerName}. Dispredet eo an dibarzh-mañ : bet eo hag e talveze da ziskwel roadennoù war-c\'horre kartennoù diazez kenwerzhel, un dra hag a c\'haller ober bremañ gant an arc\'hwel dre skor banndres boullek Mercator. Muioc\'h a ditouroù a c\'haller da gaout war http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Dispredet eo an daore-se ha tennet e vo kuit eus ar stumm 3.0. Grit gant ${newMethod} e plas.",'boundsAddError':"Rekis eo tremen an div dalvoudenn x ha y d\'an arc\'hwel add.",'lonlatAddError':"Rekis eo tremen an div dalvoudenn hedred ha ledred d\'an arc\'hwel add.",'pixelAddError':"Rekis eo tremen an div dalvoudenn x ha y d\'an arc\'hwel add.",'unsupportedGeometryType':"Seurt mentoniezh anskoret : ${geomType}",'pagePositionFailed':"C\'hwitet eo OpenLayers.Util.pagePosition : marteze emañ lec\'hiet fall an elfenn id ${elemId}.",'filterEvaluateNotImplemented':"N\'eo ket bet emplementet ar priziañ evit seurt siloù c\'hoazh."});OpenLayers.Lang.ca={'unhandledRequest':"Resposta a petició no gestionada ${statusText}",'permalink':"Enllaç permanent",'overlays':"Capes addicionals",'baseLayer':"Capa Base",'sameProjection':"El mapa de referència només funciona si té la mateixa projecció que el mapa principal",'readNotImplemented':"Lectura no implementada.",'writeNotImplemented':"Escriptura no implementada.",'noFID':"No es pot actualitzar un element per al que no existeix FID.",'errorLoadingGML':"Error caregant el fitxer GML ${url}",'browserNotSupported':"El seu navegador no suporta renderització vectorial. Els renderitzadors suportats actualmente són:\n${renderers}",'componentShouldBe':"addFeatures : el component ha de ser de tipus ${geomType}",'getFeatureError':"getFeatureFromEvent ha estat cridat a una capa sense renderizador. Això normalment vol dir que "+"s'ha eliminat una capa, però no el handler associat a ella.",'minZoomLevelError':"La propietat minZoomLevel s'ha d'utilitzar només "+"amb les capes que tenen FixedZoomLevels. El fet que "+"una capa wfs comprovi minZoomLevel és una reliquia del "+"passat. No podem, però, eliminar-la sense trencar "+"les aplicacions d'OpenLayers que en puguin dependre. "+"Així doncs estem fent-la obsoleta -- la comprovació "+"minZoomLevel s'eliminarà a la versió 3.0. Feu servir "+"els paràmetres min/max resolution en substitució, tal com es descriu aquí: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacció WFS: CORRECTA ${response}",'commitFailed':"Transacció WFS: HA FALLAT ${response}",'googleWarning':"La capa Google no s'ha pogut carregar correctament.<br><br>"+"Per evitar aquest missatge, sel·leccioneu una nova Capa Base "+"al gestor de capes de la cantonada superior dreta.<br><br>"+"Probablement això és degut a que l'script de la biblioteca de "+"Google Maps no ha estat inclòs a la vostra pàgina, o no "+"conté la clau de l'API correcta per a la vostra adreça.<br><br>"+"Desenvolupadors: Per obtenir consells sobre com fer anar això, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>féu clic aquí</a>",'getLayerWarning':"Per evitar aquest missatge, sel·leccioneu una nova Capa Base "+"al gestor de capes de la cantonada superior dreta.<br><br>"+"Probablement això és degut a que l'script de la biblioteca "+"${layerLib} "+"no ha estat inclòs a la vostra pàgina.<br><br>"+"Desenvolupadors: Per obtenir consells sobre com fer anar això, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>féu clic aquí</a>",'scale':"Escala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Heu intentat afegir la capa: ${layerName} al mapa, pero ja ha estat afegida anteriorment",'reprojectDeprecated':"Esteu fent servir l'opció 'reproject' a la capa "+"${layerName}. Aquesta opció és obsoleta: el seu ús fou concebut "+"per suportar la visualització de dades sobre mapes base comercials, "+"però aquesta funcionalitat s'hauria d'assolir ara mitjançant el suport "+"de la projecció Spherical Mercator. Més informació disponible a "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Aquest mètode és obsolet i s'eliminará a la versió 3.0. "+"Si us plau feu servir em mètode alternatiu ${newMethod}.",'boundsAddError':"Ha de proporcionar els valors x i y a la funció add.",'lonlatAddError':"Ha de proporcionar els valors lon i lat a la funció add.",'pixelAddError':"Ha de proporcionar els valors x i y a la funció add.",'unsupportedGeometryType':"Tipus de geometria no suportada: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition ha fallat: l'element amb id ${elemId} pot estar fora de lloc.",'filterEvaluateNotImplemented':"evaluate no està implementat per aquest tipus de filtre.",'end':''};OpenLayers.Lang["cs-CZ"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nezpracovaná návratová hodnota ${statusText}",'permalink':"Trvalý odkaz",'overlays':"Překryvné vrstvy",'baseLayer':"Podkladové vrstvy",'sameProjection':"Přehledka pracuje správně pouze tehdy, pokud je ve stejné projekci jako hlavní mapa",'readNotImplemented':"Read není implementováno.",'writeNotImplemented':"Write není implementováno.",'noFID':"Nelze aktualizovat prvek, pro který neexistuje FID.",'errorLoadingGML':"Chyba při načítání souboru GML ${url}",'browserNotSupported':"Váš prohlížeč nepodporuje vykreslování vektorů. Momentálně podporované nástroje jsou::\n${renderers}",'componentShouldBe':"addFeatures : komponenta by měla být ${geomType}",'getFeatureError':"getFeatureFromEvent bylo zavoláno na vrstvě, která nemá vykreslovač. To obyčejně znamená, že jste odstranil vrstvu, ale ne rutinu s ní asociovanou.",'minZoomLevelError':"Vlastnost minZoomLevel by se měla používat pouze s potomky FixedZoomLevels vrstvami. To znamená, že vrstva wfs kontroluje, zda-li minZoomLevel není zbytek z minulosti.Nelze to ovšem vyjmout bez možnosti, že bychom rozbili aplikace postavené na OL, které by na tom mohly záviset. Proto tuto vlastnost nedoporučujeme používat --  kontrola minZoomLevel bude odstraněna ve verzi 3.0. Použijte prosím raději nastavení min/max podle příkaldu popsaného na: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: ÚSPĚCH ${response}",'commitFailed':"WFS Transaction: CHYBA ${response}",'googleWarning':"Nepodařilo se správně načíst vrstvu Google.\x3cbr\x3e\x3cbr\x3eAbyste se zbavili této zprávy, zvolte jinou základní vrstvu v přepínači vrstev.\x3cbr\x3e\x3cbr\x3eTo se většinou stává, pokud nebyl načten skript, nebo neobsahuje správný klíč pro API pro tuto stránku.\x3cbr\x3e\x3cbr\x3eVývojáři: Pro pomoc, aby tohle fungovalo , \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eklikněte sem\x3c/a\x3e",'getLayerWarning':"The ${layerType} Layer was unable to load correctly.\x3cbr\x3e\x3cbr\x3eTo get rid of this message, select a new BaseLayer in the layer switcher in the upper-right corner.\x3cbr\x3e\x3cbr\x3eMost likely, this is because the ${layerLib} library script was either not correctly included.\x3cbr\x3e\x3cbr\x3eDevelopers: For help getting this working correctly, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclick here\x3c/a\x3e",'scale':"Měřítko = 1 : ${scaleDenom}",'layerAlreadyAdded':"Pokusili jste se přidat vrstvu: ${layerName} do mapy, ale tato vrstva je již v mapě přítomna.",'reprojectDeprecated':"Použil jste volbu \'reproject\' ve vrstvě ${layerName}. Tato volba není doporučená: byla zde proto, aby bylo možno zobrazovat data z okomerčních serverů, ale tato funkce je nyní zajištěna pomocí podpory Spherical Mercator. Více informací naleznete na http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Tato metoda je zavržená a bude ve verzi 3.0 odstraněna. Prosím, použijte raději ${newMethod}.",'boundsAddError':"Pro přídavnou funkci musíte zadat obě souřadnice x a y.",'lonlatAddError':"Pro přídavnou funkci musíte zadat obě souřadnice lon a lat.",'pixelAddError':"Pro přídavnou funkci musíte zadat obě souřadnice x a y.",'unsupportedGeometryType':"Nepodporovaný typ geometrie: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition selhalo: element s  id ${elemId} je asi umístěn chybně."});OpenLayers.Lang['da-DK']={'unhandledRequest':"En ikke håndteret forespørgsel returnerede ${statusText}",'permalink':"Permalink",'overlays':"Kortlag",'baseLayer':"Baggrundslag",'sameProjection':"Oversigtskortet fungerer kun når det har samme projektion som hovedkortet",'readNotImplemented':"Læsning er ikke implementeret.",'writeNotImplemented':"Skrivning er ikke implementeret.",'noFID':"Kan ikke opdateret en feature (et objekt) der ikke har et FID.",'errorLoadingGML':"Fejlede under indlæsning af GML fil ${url}",'browserNotSupported':"Din browser understøtter ikke vektor visning. Følgende vektor visninger understøttes:\n${renderers}",'componentShouldBe':"addFeatures : komponenten skal være en ${geomType}",'getFeatureError':"getFeatureFromEvent blev kaldt på et lag uden en visning. Dette betyder som regel at du "+"har destrueret et lag, men ikke de håndteringer der var tilknyttet.",'minZoomLevelError':"Egenskaben minZoomLevel er kun beregnet til brug "+"med FixedZoomLevels. At dette WFS lag kontrollerer "+"minZoomLevel egenskaben, er et levn fra en tidligere "+"version. Vi kan desværre ikke fjerne dette uden at risikere "+"at ødelægge eksisterende OL baserede programmer der "+" benytter denne funktionalitet. "+"Egenskaben bør derfor ikke anvendes, og minZoomLevel "+"kontrollen herunder vil blive fjernet i version 3.0. "+"Benyt istedet min/max opløsnings indstillingerne, som "+"er beskrevet her: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS transaktion: LYKKEDES ${response}",'commitFailed':"WFS transaktion: MISLYKKEDES ${response}",'googleWarning':"Google laget kunne ikke indlæses.<br><br>"+"For at fjerne denne besked, vælg et nyt bagrundskort i "+"lagskifteren i øverste højre hjørne.<br><br>"+"Fejlen skyldes formentlig at Google Maps bibliotekts "+"scriptet ikke er inkluderet, eller ikke indeholder den "+"korrkte API nøgle for dit site.<br><br>"+"Udviklere: For hjælp til at få dette til at fungere, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>klik her</a>",'getLayerWarning':"${layerType}-laget kunne ikke indlæses.<br><br>"+"For at fjerne denne besked, vælg et nyt bagrundskort i "+"lagskifteren i øverste højre hjørne.<br><br>"+"Fejlen skyldes formentlig at ${layerLib} bibliotekts "+"scriptet ikke er inkluderet.<br><br>"+"Udviklere: For hjælp til at få dette til at fungere, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>klik her</a>",'scale':"Målforhold = 1 : ${scaleDenom}",'layerAlreadyAdded':"Du har forsøgt at tilføje laget: ${layerName} til kortet, men det er allerede tilføjet",'reprojectDeprecated':"Du anvender indstillingen 'reproject' på laget ${layerName}."+"Denne indstilling bør ikke længere anvendes. Den var beregnet "+"til at vise data ovenpå kommercielle grundkort, men den funktionalitet "+"bør nu opnås ved at anvende Spherical Mercator understøttelsen. "+"Mere information er tilgængelig her: "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Denne funktion bør ikke længere anvendes, og vil blive fjernet i version 3.0. "+"Anvend venligst funktionen ${newMethod} istedet.",'boundsAddError':"Du skal angive både x og y værdier i kaldet til add funktionen.",'lonlatAddError':"Du skal angive både lon og lat værdier i kaldet til add funktionen.",'pixelAddError':"Du skal angive både x og y værdier i kaldet til add funktionen.",'unsupportedGeometryType':"Geometri typen: ${geomType} er ikke understøttet.",'pagePositionFailed':"OpenLayers.Util.pagePosition fejlede: elementet med id ${elemId} er måske placeret forkert.",'filterEvaluateNotImplemented':"evaluering er ikke implementeret for denne filter type."};OpenLayers.Lang["de"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Unbehandelte Anfragerückmeldung ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Grundkarte",'sameProjection':"Die Übersichtskarte funktioniert nur, wenn sie dieselbe Projektion wie die Hauptkarte verwendet",'readNotImplemented':"Lesen nicht implementiert.",'writeNotImplemented':"Schreiben nicht implementiert.",'noFID':"Ein Feature, für das keine FID existiert, kann nicht aktualisiert werden.",'errorLoadingGML':"Fehler beim Laden der GML-Datei ${url}",'browserNotSupported':"Ihr Browser unterstützt keine Vektordarstellung. Aktuell unterstützte Renderer:\n${renderers}",'componentShouldBe':"addFeatures: Komponente muss vom Typ ${geomType} sein",'getFeatureError':"getFeatureFromEvent wurde vom einem Layer ohne Renderer aufgerufen. Dies bedeutet normalerweise, dass ein Layer entfernt wurde, aber nicht Handler, die auf ihn verweisen.",'minZoomLevelError':"Die \x3ccode\x3eminZoomLevel\x3c/code\x3e-Eigenschaft ist nur für die Verwendung mit \x3ccode\x3eFixedZoomLevels\x3c/code\x3e-untergeordneten Layers vorgesehen. Das dieser \x3ctt\x3ewfs\x3c/tt\x3e-Layer die \x3ccode\x3eminZoomLevel\x3c/code\x3e-Eigenschaft überprüft ist ein Relikt der Vergangenheit. Wir können diese Überprüfung nicht entfernen, ohne das OL basierende Applikationen nicht mehr funktionieren. Daher markieren wir es als veraltet - die \x3ccode\x3eminZoomLevel\x3c/code\x3e-Überprüfung wird in Version 3.0 entfernt werden. Bitte verwenden Sie stattdessen die Min-/Max-Lösung, wie sie unter http://trac.openlayers.org/wiki/SettingZoomLevels beschrieben ist.",'commitSuccess':"WFS-Transaktion: Erfolgreich ${response}",'commitFailed':"WFS-Transaktion: Fehlgeschlagen ${response}",'googleWarning':"Der Google-Layer konnte nicht korrekt geladen werden.\x3cbr\x3e\x3cbr\x3eUm diese Meldung nicht mehr zu erhalten, wählen Sie einen anderen Hintergrundlayer aus dem LayerSwitcher in der rechten oberen Ecke.\x3cbr\x3e\x3cbr\x3eSehr wahrscheinlich tritt dieser Fehler auf, weil das Skript der Google-Maps-Bibliothek nicht eingebunden wurde oder keinen gültigen API-Schlüssel für Ihre URL enthält.\x3cbr\x3e\x3cbr\x3eEntwickler: Besuche \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3edas Wiki\x3c/a\x3e für Hilfe zum korrekten Einbinden des Google-Layers",'getLayerWarning':"Der ${layerType}-Layer konnte nicht korrekt geladen werden.\x3cbr\x3e\x3cbr\x3eUm diese Meldung nicht mehr zu erhalten, wählen Sie einen anderen Hintergrundlayer aus dem LayerSwitcher in der rechten oberen Ecke.\x3cbr\x3e\x3cbr\x3eSehr wahrscheinlich tritt dieser Fehler auf, weil das Skript der \'${layerLib}\'-Bibliothek nicht eingebunden wurde.\x3cbr\x3e\x3cbr\x3eEntwickler: Besuche \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3edas Wiki\x3c/a\x3e für Hilfe zum korrekten Einbinden von Layern",'scale':"Maßstab = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"S",'layerAlreadyAdded':"Sie versuchen den Layer „${layerName}“ zur Karte hinzuzufügen, er wurde aber bereits hinzugefügt",'reprojectDeprecated':"Sie verwenden die „Reproject“-Option des Layers ${layerName}. Diese Option ist veraltet: Sie wurde entwickelt um die Anzeige von Daten auf kommerziellen Basiskarten zu unterstützen, aber diese Funktion sollte jetzt durch Unterstützung der „Spherical Mercator“ erreicht werden. Weitere Informationen sind unter http://trac.openlayers.org/wiki/SphericalMercator verfügbar.",'methodDeprecated':"Die Methode ist veraltet und wird in 3.0 entfernt. Bitte verwende stattdessen ${newMethod}.",'boundsAddError':"Beide Werte (x und y) müssen der add-Funktion übergeben werden.",'lonlatAddError':"Beide Werte (lon und lat) müssen der add-Funktion übergeben werden.",'pixelAddError':"Beide Werte (x und y) müssen der add-Funktion übergeben werden.",'unsupportedGeometryType':"Nicht unterstützter Geometrie-Typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fehlgeschlagen: Element mit Id ${elemId} möglicherweise falsch platziert.",'filterEvaluateNotImplemented':"„evaluate“ ist für diesen Filter-Typ nicht implementiert."});OpenLayers.Lang["el"]=OpenLayers.Util.applyDefaults({'scale':"Κλίμακα ~ 1 : ${scaleDenom}"});OpenLayers.Lang.en={'unhandledRequest':"Unhandled request return ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Base Layer",'sameProjection':"The overview map only works when it is in the same projection as the main map",'readNotImplemented':"Read not implemented.",'writeNotImplemented':"Write not implemented.",'noFID':"Can't update a feature for which there is no FID.",'errorLoadingGML':"Error in loading GML file ${url}",'browserNotSupported':"Your browser does not support vector rendering. Currently supported renderers are:\n${renderers}",'componentShouldBe':"addFeatures : component should be an ${geomType}",'getFeatureError':"getFeatureFromEvent called on layer with no renderer. This usually means you "+"destroyed a layer, but not some handler which is associated with it.",'minZoomLevelError':"The minZoomLevel property is only intended for use "+"with the FixedZoomLevels-descendent layers. That this "+"wfs layer checks for minZoomLevel is a relic of the"+"past. We cannot, however, remove it without possibly "+"breaking OL based applications that may depend on it."+" Therefore we are deprecating it -- the minZoomLevel "+"check below will be removed at 3.0. Please instead "+"use min/max resolution setting as described here: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: SUCCESS ${response}",'commitFailed':"WFS Transaction: FAILED ${response}",'googleWarning':"The Google Layer was unable to load correctly.<br><br>"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.<br><br>"+"Most likely, this is because the Google Maps library "+"script was either not included, or does not contain the "+"correct API key for your site.<br><br>"+"Developers: For help getting this working correctly, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>click here</a>",'getLayerWarning':"The ${layerType} Layer was unable to load correctly.<br><br>"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.<br><br>"+"Most likely, this is because the ${layerLib} library "+"script was not correctly included.<br><br>"+"Developers: For help getting this working correctly, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>click here</a>",'scale':"Scale = 1 : ${scaleDenom}",'W':'W','E':'E','N':'N','S':'S','layerAlreadyAdded':"You tried to add the layer: ${layerName} to the map, but it has already been added",'reprojectDeprecated':"You are using the 'reproject' option "+"on the ${layerName} layer. This option is deprecated: "+"its use was designed to support displaying data over commercial "+"basemaps, but that functionality should now be achieved by using "+"Spherical Mercator support. More information is available from "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"This method has been deprecated and will be removed in 3.0. "+"Please use ${newMethod} instead.",'boundsAddError':"You must pass both x and y values to the add function.",'lonlatAddError':"You must pass both lon and lat values to the add function.",'pixelAddError':"You must pass both x and y values to the add function.",'unsupportedGeometryType':"Unsupported geometry type: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: element with id ${elemId} may be misplaced.",'end':'','filterEvaluateNotImplemented':"evaluate is not implemented for this filter type."};OpenLayers.Lang.es={'unhandledRequest':"Respuesta a petición no gestionada ${statusText}",'permalink':"Enlace permanente",'overlays':"Capas superpuestas",'baseLayer':"Capa Base",'sameProjection':"El mini mapa sólo funciona si está en la misma proyección que el mapa principal",'readNotImplemented':"Lectura no implementada.",'writeNotImplemented':"Escritura no implementada.",'noFID':"No se puede actualizar un elemento para el que no existe FID.",'errorLoadingGML':"Error cargando el fichero GML ${url}",'browserNotSupported':"Su navegador no soporta renderización vectorial. Los renderizadores soportados actualmente son:\n${renderers}",'componentShouldBe':"addFeatures : el componente debe ser del tipo ${geomType}",'getFeatureError':"getFeatureFromEvent llamado en una capa sin renderizador. Esto normalmente quiere decir que "+"se ha destruido una capa, pero no el manejador asociado a ella.",'minZoomLevelError':"La propiedad minZoomLevel debe sólo utilizarse "+"con las capas que tienen FixedZoomLevels. El hecho de que "+"una capa wfs compruebe minZoomLevel is una reliquia del "+"pasado. Sin embargo, no podemos eliminarla sin discontinuar "+"probablemente las aplicaciones OL que puedan depender de ello. "+"Así pues estamos haciéndolo obsoleto --la comprobación "+"minZoomLevel se eliminará en la versión 3.0. Utilice el ajuste "+"de resolution min/max en su lugar, tal como se describe aquí: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacción WFS: ÉXITO ${response}",'commitFailed':"Transacción WFS: FALLÓ ${response}",'googleWarning':"La capa Google no pudo ser cargada correctamente.<br><br>"+"Para evitar este mensaje, seleccione una nueva Capa Base "+"en el selector de capas en la esquina superior derecha.<br><br>"+"Probablemente, esto se debe a que el script de la biblioteca de "+"Google Maps no fue correctamente incluido en su página, o no "+"contiene la clave del API correcta para su sitio.<br><br>"+"Desarrolladores: Para ayudar a hacer funcionar esto correctamente, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>haga clic aquí</a>",'getLayerWarning':"La capa ${layerType} no pudo ser cargada correctamente.<br><br>"+"Para evitar este mensaje, seleccione una nueva Capa Base "+"en el selector de capas en la esquina superior derecha.<br><br>"+"Probablemente, esto se debe a que el script de "+"la biblioteca ${layerLib} "+"no fue correctamente incluido en su página.<br><br>"+"Desarrolladores: Para ayudar a hacer funcionar esto correctamente, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>haga clic aquí</a>",'scale':"Escala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Intentó añadir la capa: ${layerName} al mapa, pero ya había sido añadida previamente",'reprojectDeprecated':"Está usando la opción 'reproject' en la capa "+"${layerName}. Esta opción está obsoleta: su uso fue diseñado "+"para soportar la visualización de datos sobre mapas base comerciales, "+"pero esa funcionalidad debería conseguirse ahora mediante el soporte "+"de la proyección Spherical Mercator. Más información disponible en "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Este método está obsoleto y se eliminará en la versión 3.0. "+"Por favor utilice el método ${newMethod} en su lugar.",'boundsAddError':"Debe proporcionar los valores x e y a la función add.",'lonlatAddError':"Debe proporcionar los valores lon y lat a la función add.",'pixelAddError':"Debe proporcionar los valores x e y a la función add.",'unsupportedGeometryType':"Tipo de geometría no soportada: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition falló: el elemento con id ${elemId} puede haberse colocado de manera errónea.",'filterEvaluateNotImplemented':"evaluate no está implementado para este tipo de filtro.",'end':''};OpenLayers.Lang["fi"]=OpenLayers.Util.applyDefaults({'permalink':"Ikilinkki",'overlays':"Kerrokset",'baseLayer':"Peruskerros",'sameProjection':"Yleiskuvakarttaa voi käyttää vain, kun sillä on sama projektio kuin pääkartalla.",'W':"L",'E':"I",'N':"P",'S':"E"});OpenLayers.Lang["fr"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Requête non gérée, retournant ${statusText}",'permalink':"Permalien",'overlays':"Calques",'baseLayer':"Calque de base",'sameProjection':"La carte de situation ne fonctionne que lorsque sa projection est la même que celle de la carte principale",'readNotImplemented':"Lecture non implémentée.",'writeNotImplemented':"Ecriture non implémentée.",'noFID':"Impossible de mettre à jour un objet sans identifiant (fid).",'errorLoadingGML':"Erreur au chargement du fichier GML ${url}",'browserNotSupported':"Votre navigateur ne supporte pas le rendu vectoriel. Les renderers actuellement supportés sont : \n${renderers}",'componentShouldBe':"addFeatures : le composant devrait être de type ${geomType}",'getFeatureError':"getFeatureFromEvent a été appelé sur un calque sans renderer. Cela signifie généralement que vous avez détruit cette couche, mais que vous avez conservé un handler qui lui était associé.",'minZoomLevelError':"La propriété minZoomLevel doit seulement être utilisée pour des couches FixedZoomLevels-descendent. Le fait que cette couche WFS vérifie la présence de minZoomLevel est une relique du passé. Nous ne pouvons toutefois la supprimer sans casser des applications qui pourraient en dépendre. C\'est pourquoi nous la déprécions -- la vérification du minZoomLevel sera supprimée en version 3.0. A la place, merci d\'utiliser les paramètres de résolutions min/max tel que décrit sur : http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transaction WFS : SUCCES ${response}",'commitFailed':"Transaction WFS : ECHEC ${response}",'googleWarning':"La couche Google n\'a pas été en mesure de se charger correctement.\x3cbr\x3e\x3cbr\x3ePour supprimer ce message, choisissez une nouvelle BaseLayer dans le sélecteur de couche en haut à droite.\x3cbr\x3e\x3cbr\x3eCela est possiblement causé par la non-inclusion de la librairie Google Maps, ou alors parce que la clé de l\'API ne correspond pas à votre site.\x3cbr\x3e\x3cbr\x3eDéveloppeurs : pour savoir comment corriger ceci, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3ecliquez ici\x3c/a\x3e",'getLayerWarning':"La couche ${layerType} n\'est pas en mesure de se charger correctement.\x3cbr\x3e\x3cbr\x3ePour supprimer ce message, choisissez une nouvelle BaseLayer dans le sélecteur de couche en haut à droite.\x3cbr\x3e\x3cbr\x3eCela est possiblement causé par la non-inclusion de la librairie ${layerLib}.\x3cbr\x3e\x3cbr\x3eDéveloppeurs : pour savoir comment corriger ceci, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3ecliquez ici\x3c/a\x3e",'scale':"Echelle ~ 1 : ${scaleDenom}",'W':"O",'E':"E",'N':"N",'S':"S",'layerAlreadyAdded':"Vous avez essayé d\'ajouter à la carte le calque : ${layerName}, mais il est déjà présent",'reprojectDeprecated':"Vous utilisez l\'option \'reproject\' sur la couche ${layerName}. Cette option est dépréciée : Son usage permettait d\'afficher des données au dessus de couches raster commerciales.Cette fonctionalité est maintenant supportée en utilisant le support de la projection Mercator Sphérique. Plus d\'information est disponible sur http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Cette méthode est dépréciée, et sera supprimée à la version 3.0. Merci d\'utiliser ${newMethod} à la place.",'boundsAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'lonlatAddError':"Vous devez passer les deux valeurs lon et lat à la fonction add.",'pixelAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'unsupportedGeometryType':"Type de géométrie non supporté : ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition a échoué: l\'élément d\'id ${elemId} pourrait être mal positionné.",'filterEvaluateNotImplemented':"évaluer n\'a pas encore été implémenté pour ce type de filtre."});OpenLayers.Lang["fur"]=OpenLayers.Util.applyDefaults({'permalink':"Leam Permanent",'overlays':"Livei parsore",'baseLayer':"Livel di base",'browserNotSupported':"Il to sgarfadôr nol supuarte la renderizazion vetoriâl. Al moment a son supuartâts:\n${renderers}",'scale':"Scjale = 1 : ${scaleDenom}",'W':"O",'E':"E",'N':"N",'S':"S"});OpenLayers.Lang["gl"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Solicitude non xerada; a resposta foi: ${statusText}",'permalink':"Ligazón permanente",'overlays':"Capas superpostas",'baseLayer':"Capa base",'sameProjection':"A vista xeral do mapa só funciona cando está na mesma proxección có mapa principal",'readNotImplemented':"Lectura non implementada.",'writeNotImplemented':"Escritura non implementada.",'noFID':"Non se pode actualizar a funcionalidade para a que non hai FID.",'errorLoadingGML':"Erro ao cargar o ficheiro GML $(url)",'browserNotSupported':"O seu navegador non soporta a renderización de vectores. Os renderizadores soportados actualmente son:\n${renderers}",'componentShouldBe':"addFeatures: o compoñente debera ser de tipo ${geomType}",'getFeatureError':"getFeatureFromEvent ten sido chamado a unha capa sen renderizador. Isto normalmente significa que destruíu unha capa, mais non o executador que está asociado con ela.",'minZoomLevelError':"A propiedade minZoomLevel é só para uso conxuntamente coas capas FixedZoomLevels-descendent. O feito de que esa capa wfs verifique o minZoomLevel é unha reliquia do pasado. Non podemos, con todo, eliminala sen a posibilidade de non romper as aplicacións baseadas en OL que poidan depender dela. Por iso a estamos deixando obsoleta (a comprobación minZoomLevel de embaixo será eliminada na versión 3.0). Por favor, no canto diso use o axuste de resolución mín/máx tal e como está descrito aquí: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacción WFS: ÉXITO ${response}",'commitFailed':"Transacción WFS: FALLIDA ${response}",'googleWarning':"A capa do Google non puido cargarse correctamente.\x3cbr\x3e\x3cbr\x3ePara evitar esta mensaxe, escolla unha nova capa base no seleccionador de capas na marxe superior dereita.\x3cbr\x3e\x3cbr\x3eProbablemente, isto acontece porque a escritura da libraría do Google Maps ou ben non foi incluída ou ben non contén a clave API correcta para o seu sitio.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: para axudar a facer funcionar isto correctamente, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3epremede aquí\x3c/a\x3e",'getLayerWarning':"A capa ${layerType} foi incapaz de cargarse correctamente.\x3cbr\x3e\x3cbr\x3ePara evitar esta mensaxe, escolla unha nova capa base no seleccionador de capas na marxe superior dereita.\x3cbr\x3e\x3cbr\x3eProbablemente, isto acontece porque a escritura da libraría ${layerLib} non foi ben incluída.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: para axudar a facer funcionar isto correctamente, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3epremede aquí\x3c/a\x3e",'scale':"Escala = 1 : ${scaleDenom}",'W':"O",'E':"L",'N':"N",'S':"S",'layerAlreadyAdded':"Intentou engadir a capa: ${layerName} ao mapa, pero xa fora engadida",'reprojectDeprecated':"Está usando a opción \"reproject\" na capa ${layerName}. Esta opción está obsoleta: o seu uso foi deseñado para a visualización de datos sobre mapas base comerciais, pero esta funcionalidade debera agora ser obtida utilizando a proxección Spherical Mercator. Hai dispoñible máis información en http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Este método está obsoleto e será eliminado na versión 3.0. Por favor, no canto deste use ${newMethod}.",'boundsAddError':"Debe achegar os valores x e y á función add.",'lonlatAddError':"Debe achegar tanto o valor lon coma o lat á función add.",'pixelAddError':"Debe achegar os valores x e y á función add.",'unsupportedGeometryType':"Tipo xeométrico non soportado: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fallou: o elemento con id ${elemId} pode non estar na súa posición.",'filterEvaluateNotImplemented':"avaliar non está implementado para este tipo de filtro."});OpenLayers.Lang["gsw"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nit behandleti Aafrogsruckmäldig ${statusText}",'permalink':"Permalink",'overlays':"Iberlagerige",'baseLayer':"Grundcharte",'sameProjection':"D Ibersichts-Charte funktioniert nume, wänn si di glych Projäktion brucht wie d Hauptcharte",'readNotImplemented':"Läse nit implementiert.",'writeNotImplemented':"Schrybe nit implementiert.",'noFID':"E Feature, wu s kei FID derfir git, cha nit aktualisiert wäre.",'errorLoadingGML':"Fähler bim Lade vu dr GML-Datei ${url}",'browserNotSupported':"Dyy Browser unterstitzt kei Vektordarstellig. Aktuäll unterstitzti Renderer:\n${renderers}",'componentShouldBe':"addFeatures : Komponänt sott dr Typ ${geomType} syy",'getFeatureError':"getFeatureFromEvent isch uf eme Layer ohni Renderer ufgruefe wore. Des heisst normalerwys, ass Du e Layer kaputt gmacht hesch, aber nit dr Handler, wu derzue ghert.",'minZoomLevelError':"D minZoomLevel-Eigeschaft isch nume dänk fir d Layer, wu vu dr FixedZoomLevels abstamme. Ass dää wfs-Layer minZoomLevel prieft, scih e Relikt us dr Vergangeheit. Mir chenne s aber nit ändere ohni OL_basierti Aawändige villicht kaputt gehn, wu dervu abhänge.  Us däm Grund het die Funktion d Eigeschaft \'deprecated\' iberchuu. D minZoomLevel-Priefig unte wird in dr Version 3.0 usegnuu. Bitte verwänd statt däm e min/max-Uflesig wie s do bschriben isch: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-Transaktion: ERFOLGRYCH ${response}",'commitFailed':"WFS-Transaktion: FÄHLGSCHLAA ${response}",'googleWarning':"Dr Google-Layer het nit korräkt chenne glade wäre.\x3cbr\x3e\x3cbr\x3eGo die Mäldig nimi z kriege, wehl e andere Hintergrundlayer us em LayerSwitcher im rächte obere Ecke.\x3cbr\x3e\x3cbr\x3eDää Fähler git s seli hyfig, wel s Skript vu dr Google-Maps-Bibliothek nit yybunde woren isch oder wel s kei giltige API-Schlissel fir Dyy URL din het.\x3cbr\x3e\x3cbr\x3eEntwickler: Fir Hilf zum korräkte Yybinde vum Google-Layer \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3edoo drucke\x3c/a\x3e",'getLayerWarning':"Dr ${layerType}-Layer het nit korräkt chenne glade wäre.\x3cbr\x3e\x3cbr\x3eGo die Mäldig nimi z kriege, wehl e andere Hintergrundlayer us em LayerSwitcher im rächte obere Ecke.\x3cbr\x3e\x3cbr\x3eDää Fähler git s seli hyfig, wel s Skript vu dr \'${layerLib}\'-Bibliothek nit yybunde woren isch oder wel s kei giltige API-Schlissel fir Dyy URL din het.\x3cbr\x3e\x3cbr\x3eEntwickler: Fir Hilf zum korräkte Yybinde vu Layer \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3edoo drucke\x3c/a\x3e",'scale':"Maßstab = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"S",'layerAlreadyAdded':"Du hesch versuecht dää Layer in d Charte yyzfiege: ${layerName}, aber är isch schoi yygfiegt",'reprojectDeprecated':"Du bruchsch d \'reproject\'-Option bim ${layerName}-Layer. Die Option isch nimi giltig: si isch aagleit wore go   Date iber kommerziälli Grundcharte lege, aber des sott mer jetz mache mit dr Unterstitzig vu Spherical Mercator. Meh Informatione git s uf http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Die Methode isch veraltet un wird us dr Version 3.0 usegnuu. Bitte verwäbnd statt däm ${newMethod}.",'boundsAddError':"Du muesch e x-Wärt un e y-Wärt yygee bi dr Zuefieg-Funktion",'lonlatAddError':"Du meusch e Lengi- un e Breiti-Grad yygee bi dr Zuefieg-Funktion.",'pixelAddError':"Du muesch x- un y-Wärt aagee bi dr Zuefieg-Funktion.",'unsupportedGeometryType':"Nit unterstitze Geometrii-Typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fählgschlaa: Elemänt mit ID ${elemId} isch villicht falsch gsetzt.",'filterEvaluateNotImplemented':"evaluiere isch nit implemäntiert in däm Filtertyp."});OpenLayers.Lang["hr"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nepodržani zahtjev ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Osnovna karta",'sameProjection':"Pregledna karta radi jedino kao je u istoj projekciji kao i glava karta",'readNotImplemented':"Čitanje nije implementirano.",'writeNotImplemented':"Pisanje nije implementirano.",'noFID':"Ne mogu ažurirati značajku za koju ne postoji FID.",'errorLoadingGML':"Greška u učitavanju GML datoteke ${url}",'browserNotSupported':"Vaš preglednik ne podržava vektorsko renderiranje. Trenutno podržani rendereri su: ${renderers}",'componentShouldBe':"addFeatures : komponenta bi trebala biti ${geomType}",'getFeatureError':"getFeatureFromEvent je pozvao Layer bez renderera. Ovo obično znači da ste uništiili Layer, a ne neki Handler koji je povezan s njim.",'commitSuccess':"WFS Transakcija: USPJEŠNA ${response}",'commitFailed':"WFS Transakcija: NEUSPJEŠNA ${response}",'scale':"Mjerilo = 1 : ${scaleDenom}",'layerAlreadyAdded':"Pokušali ste dodati layer:  ${layerName} na kartu, ali je već dodan",'methodDeprecated':"Ova metoda nije odobrena i biti će maknuta u 3.0. Koristite ${newMethod}.",'boundsAddError':"Morate dati obje vrijednosti ,  x i y  da bi dodali funkciju.",'lonlatAddError':"Morate dati obje vrijednosti , (lon i lat) da bi dodali funkciju.",'pixelAddError':"Morate dati obje vrijednosti ,  x i y  da bi dodali funkciju.",'unsupportedGeometryType':"Nepodržani tip geometrije: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition nije uspjelo: element sa id ${elemId} može biti krivo smješten."});OpenLayers.Lang["hsb"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Wotmołwa njewobdźěłaneho naprašowanja ${statusText}",'permalink':"Trajny wotkaz",'overlays':"Naworštowanja",'baseLayer':"Zakładna runina",'sameProjection':"Přehladowa karta jenož funguje, hdyž je w samsnej projekciji kaž hłowna karta",'readNotImplemented':"Čitanje njeimplementowane.",'writeNotImplemented':"Pisanje njeimplementowane.",'noFID':"Funkcija, za kotruž FID njeje, njeda so aktualizować.",'errorLoadingGML':"Zmylk při začitowanju dataje ${url}",'browserNotSupported':"Twój wobhladowak wektorowe rysowanje njepodpěruje. Tuchwilu podpěrowane rysowaki su:\n${renderers}",'componentShouldBe':"addFeatures: komponenta měła ${geomType} być",'getFeatureError':"getFeatureFromEvent bu na woršće bjez rysowak zawołany. To zwjetša woznamjenja, zo sy worštu zničił, ale nic wobdźěłak, kotryž je z njej zwjazany.",'minZoomLevelError':"Kajkosć minZoomLevel je jenož za wužiwanje z worštami myslena, kotrež wot FixedZoomLevels pochadźeja. Zo tuta woršta wfs za minZoomLevel přepruwuje, je relikt zańdźenosće. Njemóžemy wšak ju wotstronić, bjeztoho zo aplikacije, kotrež na OpenLayers bazěruja a snano tutu kajkosć wužiwaja, hižo njefunguja. Tohodla smy ju jako zestarjenu woznamjenili -- přepruwowanje za minZoomLevel budu so we wersiji 3.0 wotstronjeć. Prošu wužij město toho nastajenje min/max, kaž je tu wopisane: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-Transakcija: WUSPĚŠNA ${response}",'commitFailed':"WFS-Transakcija: NJEPORADŹENA ${response}",'googleWarning':"Woršta Google njemóžeše so korektnje začitać.\x3cbr\x3e\x3cbr\x3eZo by tutu zdźělenku wotbył, wubjer nowy BaseLayer z wuběra worštow horjeka naprawo.\x3cbr\x3e\x3cbr\x3eNajskerje so to stawa, dokelž skript biblioteki Google Maps pak njebu zapřijaty pak njewobsahuje korektny kluč API za twoje sydło.\x3cbr\x3e\x3cbr\x3eWuwiwarjo: Za pomoc ke korektnemu fungowanju worštow\n\x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3etu kliknyć\x3c/a\x3e",'getLayerWarning':"Woršta ${layerType} njemóžeše so korektnje začitać.\x3cbr\x3e\x3cbr\x3eZo by tutu zdźělenku wotbył, wubjer nowy BaseLayer z wuběra worštow horjeka naprawo.\x3cbr\x3e\x3cbr\x3eNajskerje so to stawa, dokelž skript biblioteki ${layerLib} njebu korektnje zapřijaty.\x3cbr\x3e\x3cbr\x3eWuwiwarjo: Za pomoc ke korektnemu fungowanju worštow\n\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3etu kliknyć\x3c/a\x3e",'scale':"Měritko = 1 : ${scaleDenom}",'W':"Z",'E':"W",'N':"S",'S':"J",'layerAlreadyAdded':"Sy spytał runinu ${layerName} karće dodać, ale je so hižo dodała",'reprojectDeprecated':"Wužiwaš opciju \"reproject\" wořšty ${layerName}. Tuta opcija je zestarjena: jeje wužiwanje bě myslene, zo by zwobraznjenje datow nad komercielnymi bazowymi kartami podpěrało, ale funkcionalnosć měła so nětko z pomocu Sperical Mercator docpěć. Dalše informacije steja na http://trac.openlayers.org/wiki/SphericalMercator k dispoziciji.",'methodDeprecated':"Tuta metoda je so njeschwaliła a budźe so w 3.0 wotstronjeć. Prošu wužij ${newMethod} město toho.",'boundsAddError':"Dyrbiš hódnotu x kaž tež y funkciji \"add\" přepodać.",'lonlatAddError':"Dyrbiš hódnotu lon kaž tež lat funkciji \"add\" přepodać.",'pixelAddError':"Dyrbiš hódnotu x kaž tež y funkciji \"add\" přepodać.",'unsupportedGeometryType':"Njepodpěrowany geometrijowy typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition je so njeporadźił: element z id ${elemId} bu snano wopak zaměstnjeny.",'filterEvaluateNotImplemented':"wuhódnoćenje njeje za tutón filtrowy typ implementowany."});OpenLayers.Lang["hu"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nem kezelt kérés visszatérése ${statusText}",'permalink':"Permalink",'overlays':"Rávetítések",'baseLayer':"Alapréteg",'sameProjection':"Az áttekintő térkép csak abban az esetben működik, ha ugyanazon a vetületen van, mint a fő térkép.",'readNotImplemented':"Olvasás nincs végrehajtva.",'writeNotImplemented':"Írás nincs végrehajtva.",'noFID':"Nem frissíthető olyan jellemző, amely nem rendelkezik FID-del.",'errorLoadingGML':"Hiba GML-fájl betöltésekor ${url}",'browserNotSupported':"A böngészője nem támogatja a vektoros renderelést. A jelenleg támogatott renderelők:\n${renderers}",'componentShouldBe':"addFeatures : az összetevőnek ilyen típusúnak kell lennie: ${geomType}",'getFeatureError':"getFeatureFromEvent réteget hívott meg renderelő nélkül. Ez rendszerint azt jelenti, hogy megsemmisített egy fóliát, de néhány ahhoz társított kezelőt nem.",'minZoomLevelError':"A minZoomLevel tulajdonságot csak a következővel való használatra szánták: FixedZoomLevels-leszármazott fóliák. Ez azt jelenti, hogy a minZoomLevel wfs fólia jelölőnégyzetei már a múlté. Mi azonban nem távolíthatjuk el annak a veszélye nélkül, hogy az esetlegesen ettől függő OL alapú alkalmazásokat tönkretennénk. Ezért ezt érvénytelenítjük -- a minZoomLevel az alul levő jelölőnégyzet a 3.0-s verzióból el lesz távolítva. Kérjük, helyette használja a  min/max felbontás beállítást, amelyről az alábbi helyen talál leírást: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS tranzakció: SIKERES ${response}",'commitFailed':"WFS tranzakció: SIKERTELEN ${response}",'googleWarning':"A Google fólia betöltése sikertelen.\x3cbr\x3e\x3cbr\x3eAhhoz, hogy ez az üzenet eltűnjön, válasszon egy új BaseLayer fóliát a jobb felső sarokban található fóliakapcsoló segítségével.\x3cbr\x3e\x3cbr\x3eNagy valószínűséggel ez azért van, mert a Google Maps könyvtár parancsfájlja nem található, vagy nem tartalmazza az Ön oldalához tartozó megfelelő API-kulcsot.\x3cbr\x3e\x3cbr\x3eFejlesztőknek: A helyes működtetésre vonatkozó segítség az alábbi helyen érhető el, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3ekattintson ide\x3c/a\x3e",'getLayerWarning':"A(z) ${layerType} fólia nem töltődött be helyesen.\x3cbr\x3e\x3cbr\x3eAhhoz, hogy ez az üzenet eltűnjön, válasszon egy új BaseLayer fóliát a jobb felső sarokban található fóliakapcsoló segítségével.\x3cbr\x3e\x3cbr\x3eNagy valószínűséggel ez azért van, mert a(z) ${layerLib} könyvtár parancsfájlja helytelen.\x3cbr\x3e\x3cbr\x3eFejlesztőknek: A helyes működtetésre vonatkozó segítség az alábbi helyen érhető el, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3ekattintson ide\x3c/a\x3e",'scale':"Lépték = 1 : ${scaleDenom}",'W':"Ny",'E':"K",'N':"É",'S':"D",'layerAlreadyAdded':"Megpróbálta hozzáadni a(z) ${layerName} fóliát a térképhez, de az már hozzá van adva",'reprojectDeprecated':"Ön a \'reproject\' beállítást használja a(z) ${layerName} fólián. Ez a beállítás érvénytelen: használata az üzleti alaptérképek fölötti adatok megjelenítésének támogatására szolgált, de ezt a funkció ezentúl a Gömbi Mercator használatával érhető el. További információ az alábbi helyen érhető el: http://trac.openlayers.org/wiki/SphericalMercator",'methodDeprecated':"Ez a módszer érvénytelenítve lett és a 3.0-s verzióból el lesz távolítva. Használja a(z) ${newMethod} módszert helyette.",'boundsAddError':"Az x és y értékeknek egyaránt meg kell felelnie, hogy a funkciót hozzáadhassa.",'lonlatAddError':"A hossz. és szél. értékeknek egyaránt meg kell felelnie, hogy a funkciót hozzáadhassa.",'pixelAddError':"Az x és y értékeknek egyaránt meg kell felelnie, hogy a funkciót hozzáadhassa.",'unsupportedGeometryType':"Nem támogatott geometriatípus: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition sikertelen: lehetséges, hogy a(z) ${elemId} azonosítójú elem téves helyre került.",'filterEvaluateNotImplemented':"ennél a szűrőtípusnál kiértékelés nem hajtódik végre."});OpenLayers.Lang["ia"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Le responsa a un requesta non esseva maneate: ${statusText}",'permalink':"Permaligamine",'overlays':"Superpositiones",'baseLayer':"Strato de base",'sameProjection':"Le mini-carta functiona solmente si illo es in le mesme projection que le carta principal",'readNotImplemented':"Lectura non implementate.",'writeNotImplemented':"Scriptura non implementate.",'noFID':"Non pote actualisar un elemento sin FID.",'errorLoadingGML':"Error al cargamento del file GML ${url}",'browserNotSupported':"Tu navigator non supporta le rendition de vectores. Le renditores actualmente supportate es:\n${renderers}",'componentShouldBe':"addFeatures: le componente debe esser del typo ${geomType}",'getFeatureError':"getFeatureFromEvent ha essite appellate in un strato sin renditor. Isto significa generalmente que tu ha destruite un strato, ma lassava un gestor associate con illo.",'minZoomLevelError':"Le proprietate minZoomLevel es solmente pro uso con le stratos descendente de FixedZoomLevels. Le facto que iste strato WFS verifica minZoomLevel es un reliquia del passato. Nonobstante, si nos lo remove immediatemente, nos pote rumper applicationes a base de OL que depende de illo. Ergo nos lo declara obsolete; le verification de minZoomLevel in basso essera removite in version 3.0. Per favor usa in su loco le configuration de resolutiones min/max como describite a: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transaction WFS: SUCCESSO ${response}",'commitFailed':"Transaction WFS: FALLEVA ${response}",'googleWarning':"Le strato Google non poteva esser cargate correctemente.\x3cbr\x3e\x3cbr\x3ePro disfacer te de iste message, selige un nove BaseLayer in le selector de strato in alto a dextra.\x3cbr\x3e\x3cbr\x3eMulto probabilemente, isto es proque le script del libreria de Google Maps non esseva includite o non contine le clave API correcte pro tu sito.\x3cbr\x3e\x3cbr\x3eDisveloppatores: Pro adjuta de corriger isto, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eclicca hic\x3c/a",'getLayerWarning':"Le strato ${layerType} non poteva esser cargate correctemente.\x3cbr\x3e\x3cbr\x3ePro disfacer te de iste message, selige un nove BaseLayer in le selector de strato in alto a dextra.\x3cbr\x3e\x3cbr\x3eMulto probabilemente, isto es proque le script del libreria de ${layerLib} non esseva correctemente includite.\x3cbr\x3e\x3cbr\x3eDisveloppatores: Pro adjuta de corriger isto, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclicca hic\x3c/a\x3e",'scale':"Scala = 1 : ${scaleDenom}",'W':"W",'E':"E",'N':"N",'S':"S",'layerAlreadyAdded':"Tu tentava adder le strato: ${layerName} al carta, ma illo es ja presente",'reprojectDeprecated':"Tu usa le option \'reproject\' in le strato ${layerName} layer. Iste option es obsolescente: illo esseva pro poter monstrar datos super cartas de base commercial, ma iste functionalitate pote ora esser attingite con le uso de Spherical Mercator. Ulterior information es disponibile a http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Iste methodo ha essite declarate obsolescente e essera removite in version 3.0. Per favor usa ${newMethod} in su loco.",'boundsAddError':"Tu debe passar le duo valores x e y al function add.",'lonlatAddError':"Tu debe passar le duo valores lon e lat al function add.",'pixelAddError':"Tu debe passar le duo valores x e y al function add.",'unsupportedGeometryType':"Typo de geometria non supportate: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition falleva: le elemento con id ${elemId} pote esser mal placiate.",'filterEvaluateNotImplemented':"\"evaluate\" non es implementate pro iste typo de filtro."});OpenLayers.Lang["is"]=OpenLayers.Util.applyDefaults({'permalink':"Varanlegur tengill",'overlays':"Þekjur",'baseLayer':"Grunnlag",'sameProjection':"Yfirlitskortið virkar aðeins ef það er í sömu vörpun og aðalkortið",'readNotImplemented':"Skrifun er óútfærð.",'writeNotImplemented':"Lestur er óútfærður.",'errorLoadingGML':"Villa kom upp við að hlaða inn GML skránni ${url}",'scale':"Skali = 1 : ${scaleDenom}",'layerAlreadyAdded':"Þú reyndir að bæta laginu ${layerName} á kortið en það er þegar búið að bæta því við",'methodDeprecated':"Þetta fall hefur verið úrelt og verður fjarlægt í 3.0. Notaðu ${newMethod} í staðin."});OpenLayers.Lang.it={'unhandledRequest':"Codice di ritorno della richiesta ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Livello base",'sameProjection':"La mini mappa funziona solamente se ha la stessa proiezione della mappa principale",'readNotImplemented':"Lettura non implementata.",'writeNotImplemented':"Scrittura non implementata.",'noFID':"Impossibile aggiornare un elemento grafico che non abbia il FID.",'errorLoadingGML':"Errore nel caricamento del file GML ${url}",'browserNotSupported':"Il tuo browser non supporta il rendering vettoriale. I renderizzatore attualemnte supportati sono:\n${renderers}",'componentShouldBe':"addFeatures : il componente dovrebbe essere di tipo ${geomType}",'getFeatureError':"getFeatureFromEvent chiamata su di un livello senza renderizzatore. Ciò significa che "+"il livello è stato cancellato, ma non i gestori associati ad esso.",'minZoomLevelError':"La proprietà minZoomLevel è da utilizzare solamente "+"con livelli che abbiano FixedZoomLevels. Il fatto che "+"questo livello wfs controlli la proprietà minZoomLevel è "+"un retaggio del passato. Non possiamo comunque rimuoverla "+"senza rompere le vecchie applicazioni che dipendono su di essa."+"Quindi siamo costretti a deprecarla -- minZoomLevel "+"e sarà rimossa dalla vesione 3.0. Si prega di utilizzare i "+"settaggi di risoluzione min/max come descritto qui: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transazione WFS: SUCCESS ${response}",'commitFailed':"Transazione WFS: FAILED ${response}",'googleWarning':"Il livello Google non è riuscito a caricare correttamente.<br><br>"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.<br><br>"+"Più precisamente, ciò accade perchè la libreria Google Maps "+"non è stata inclusa nella pagina, oppure non contiene la "+"corretta API key per il tuo sito.<br><br>"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>clicca qui</a>",'getLayerWarning':"Il livello ${layerType} non è riuscito a caricare correttamente.<br><br>"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.<br><br>"+"Più precisamente, ciò accade perchè la libreria ${layerLib} "+"non è stata inclusa nella pagina.<br><br>"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>clicca qui</a>",'scale':"Scala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Stai cercando di aggiungere il livello: ${layerName} alla mappa, ma tale livello è già stato aggiunto.",'reprojectDeprecated':"Stai utilizzando l'opzione 'reproject' sul livello ${layerName}. "+"Questa opzione è deprecata: il suo utilizzo è stato introdotto per"+"supportare il disegno dei dati sopra mappe commerciali, ma tale "+"funzionalità dovrebbe essere ottenuta tramite l'utilizzo della proiezione "+"Spherical Mercator. Per maggiori informazioni consultare qui "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Questo metodo è stato deprecato e sarà rimosso dalla versione 3.0. "+"Si prega di utilizzare il metodo ${newMethod} in alternativa.",'boundsAddError':"Devi specificare i valori di x e y alla funzione add.",'lonlatAddError':"Devi specificare i valori di lon e lat alla funzione add.",'pixelAddError':"Devi specificare i valori di x e y alla funzione add.",'unsupportedGeometryType':"Tipo di geometria non supportata: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fallita: l'elemento con id ${elemId} è posizionato in modo errato.",'end':''};OpenLayers.Lang["ja"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"未処理の要求は ${statusText} を返します",'permalink':"パーマリンク",'overlays':"オーバーレイ",'baseLayer':"基底レイヤー",'sameProjection':"概観地図はメインの地図と同じ投影法をとる場合のみ機能します",'readNotImplemented':"読み込みは実装されていません。",'writeNotImplemented':"書き込みは実装されていません。",'noFID':"FID のない地物は更新できません。",'errorLoadingGML':"GML ファイル ${url} の読み込みエラー",'browserNotSupported':"あなたのブラウザはベクターグラフィックスの描写に対応していません。現時点で対応しているソフトウェアは以下のものです。\n${renderers}",'componentShouldBe':"addFeatures: 要素は ${geomType} であるべきです",'getFeatureError':"getFeatureFromEvent がレンダラーのないレイヤーから呼ばれました。通常、これはあなたがレイヤーを、それに関連づけられたいくつかのハンドラを除いて、破壊してしまったことを意味します。",'minZoomLevelError':"minZoomLevel プロパティは FixedZoomLevels を継承するレイヤーでの使用のみを想定しています。この minZoomLevel に対する WFS レイヤーの検査は歴史的なものです。しかしながら、この検査を除去するとそれに依存する OpenLayers ベースのアプリケーションを破壊してしまう可能性があります。よって廃止が予定されており、この minZoomLevel 検査はバージョン3.0で除去されます。代わりに、http://trac.openlayers.org/wiki/SettingZoomLevels で解説されている、最小および最大解像度設定を使用してください。",'commitSuccess':"WFS トランザクション: 成功 ${response}",'commitFailed':"WFS トランザクション: 失敗 ${response}",'googleWarning':"Google レイヤーが正しく読み込みを行えませんでした。\x3cbr\x3e\x3cbr\x3eこのメッセージを消すには、右上の隅にあるレイヤー切り替え部分で新しい基底レイヤーを選んでください。\x3cbr\x3e\x3cbr\x3eおそらく、これは Google マップ用ライブラリのスクリプトが組み込まれていないか、あなたのサイトに対応する正しい API キーが設定されていないためです。\x3cbr\x3e\x3cbr\x3e開発者の方へ: 正しい動作をさせるために\x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eこちらのウィキ\x3c/a\x3eを参照してください。",'getLayerWarning':"${layerType} レイヤーが正しく読み込みを行えませんでした。\x3cbr\x3e\x3cbr\x3eこのメッセージを消すには、右上の隅にあるレイヤー切り替え部分で新しい基底レイヤーを選んでください。\x3cbr\x3e\x3cbr\x3eおそらく、これは ${layerLib} ライブラリのスクリプトが正しく組み込まれていないためです。\x3cbr\x3e\x3cbr\x3e開発者の方へ: 正しい動作をさせるために\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eこちらのウィキ\x3c/a\x3eを参照してください。",'scale':"縮尺 = 1 : ${scaleDenom}",'W':"西",'E':"東",'N':"北",'S':"南",'layerAlreadyAdded':"あなたは「${layerName}」を地図に追加しようと試みましたが、そのレイヤーは既に追加されています",'reprojectDeprecated':"あなたは「${layerName}」レイヤーで reproject オプションを使っています。このオプションは商用の基底地図上に情報を表示する目的で設計されましたが、現在ではその機能は Spherical Mercator サポートを利用して実現されており、このオプションの使用は非推奨です。追加の情報は http://trac.openlayers.org/wiki/SphericalMercator で入手できます。",'methodDeprecated':"このメソッドは廃止が予定されており、バージョン3.0で除去されます。代わりに ${newMethod} を使用してください。",'boundsAddError':"x と y 両方の値を add 関数に渡さなければなりません。",'lonlatAddError':"lon と lat 両方の値を add 関数に渡さなければなりません。",'pixelAddError':"x と y の値両方を add 関数に渡さなければなりません。",'unsupportedGeometryType':"未対応の形状型: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition が失敗しました: id ${elemId} をもつ要素が誤った位置にある可能性があります。",'filterEvaluateNotImplemented':"このフィルター型について evaluate は実装されていません。"});OpenLayers.Lang["km"]=OpenLayers.Util.applyDefaults({'permalink':"តំណភ្ជាប់អចិន្ត្រៃយ៍",'baseLayer':"ស្រទាប់បាត​",'errorLoadingGML':"កំហុសកំឡុងពេលផ្ទុកឯកសារ GML ${url}",'scale':"មាត្រដ្ឋាន = ១ ៖ ${scaleDenom}"});OpenLayers.Lang["ksh"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Met dä Antwoot op en Aanfrooch ham_mer nix aanjefange: ${statusText}",'permalink':"Lengk op Duuer",'overlays':"Drövver jelaat",'baseLayer':"Jrund-Nivoh",'sameProjection':"De Övverseeschs_Kaat deiht et bloß, wann se de sälve Projäxjuhn bruche deiht, wi de Houp_Kaat",'readNotImplemented':"„\x3ccode lang=\"en\"\x3eread\x3c/code\x3e“ is em Projramm nit fürjesinn.",'writeNotImplemented':"„\x3ccode lang=\"en\"\x3ewrite\x3c/code\x3e“ is em Projramm nit fürjesinn.",'noFID':"En Saach, woh kein \x3ci lang=\"en\"\x3eFID\x3c/i\x3e för doh es, löht sesch nit ändere.",'errorLoadingGML':"Fähler beim \x3ci lang=\"en\"\x3eGML\x3c/i\x3e-Datei-Laade vun \x3ccode\x3e${url}\x3c/code\x3e",'browserNotSupported':"Dinge Brauser kann kein Väktore ußjävve. De Zoote Ußjaabe, di em Momang jon, sen:\n${renderers}",'componentShouldBe':"\x3ccode lang=\"en\"\x3eaddFeatures\x3c/code\x3e: dä Aandeil sullt vun dä Zoot „\x3ccode lang=\"en\"\x3e${geomType}\x3c/code\x3e“ sin.",'getFeatureError':"\x3ccode lang=\"en\"\x3egetFeatureFromEvent\x3c/code\x3e es vun enem Nivoh opjeroofe woode, woh et kei Projramm zom Ußjävve jit. Dat bedügg för jewöhnlesch, dat De e Nivoh kapott jemaat häs, ävver nit e Projramm för domet ömzejonn, wat domet verbonge es.",'minZoomLevelError':"De Eijeschaff „\x3ccode lang=\"en\"\x3eminZoomLevel\x3c/code\x3e“ es bloß doför jedaach, dat mer se met dä Nivvohß bruch, di vun \x3ccode lang=\"en\"\x3eFixedZoomLevels\x3c/code\x3e affhange don. Dat dat \x3ci lang=\"en\"\x3eWFS\x3c/i\x3e-Nivvoh övverhoup de Eijeschaff „\x3ccode lang=\"en\"\x3eminZoomLevel\x3c/code\x3e“ pröhfe deiht, es noch övveresch vun fröhjer. Mer künne dat ävver jez nit fott lohße, oohne dat mer Jevaa loufe, dat Aanwendunge vun OpenLayers nit mieh loufe, di sesch doh velleijsch noch drop am verlohße sin. Dröm sare mer, dat mer et nit mieh han welle, un de „\x3ccode lang=\"en\"\x3eminZoomLevel\x3c/code\x3e“-Eijeschaff weed hee vun de Version 3.0 af nit mieh jeprööf wäde. Nemm doför de Enstellung för de hühßte un de kleinßte Oplöhsung, esu wi et en http://trac.openlayers.org/wiki/SettingZoomLevels opjeschrevve es.",'commitSuccess':"Dä \x3ci lang=\"en\"\x3eWFS\x3c/i\x3e-Vörjang es joot jeloufe: ${response}",'commitFailed':"Dä \x3ci lang=\"en\"\x3eWFS\x3c/i\x3e-Vörjang es scheif jejange: ${response}",'googleWarning':"Dat Nivvoh \x3ccode lang=\"en\"\x3eGoogle\x3c/code\x3e kunnt nit reschtesch jelaade wääde.\x3cbr /\x3e\x3cbr /\x3eÖm hee di Nohreesch loß ze krijje, donn en ander Jrund-Nivvoh ußsöhke, rähß bovve en de Äk.\x3cbr /\x3e\x3cbr /\x3eWascheinlesch es dat wiel dat \x3ci lang=\"en\"\x3eGoogle-Maps\x3c/i\x3e-Skrepp entweeder nit reschtesch enjebonge wood, udder nit dä reschtejje \x3ci lang=\"en\"\x3eAPI\x3c/i\x3e-Schlößel för Ding Web-ßait scheke deiht.\x3cbr /\x3e\x3cbr /\x3eFör Projrammierer jidd_et Hölp do_drövver, \x3ca href=\"http://trac.openlayers.org/wiki/Google\" target=\"_blank\"\x3ewi mer dat aan et Loufe brengk\x3c/a\x3e.",'getLayerWarning':"Dat Nivvoh \x3ccode\x3e${layerType}\x3c/code\x3e kunnt nit reschtesch jelaade wääde.\x3cbr /\x3e\x3cbr /\x3eÖm hee di Nohreesch loß ze krijje, donn en ander Jrund-Nivvoh ußsöhkre, rähß bovve en de Äk.\x3cbr /\x3e\x3cbr /\x3eWascheinlesch es dat, wiel dat Skrepp \x3ccode\x3e${layerLib}\x3c/code\x3e nit reschtesch enjebonge wood.\x3cbr /\x3e\x3cbr /\x3eFör Projrammierer jidd_Et Hölp do_drövver, \x3ca href=\"http://trac.openlayers.org/wiki/${layerLib}\" target=\"_blank\"\x3ewi mer dat aan et Loufe brengk\x3c/a\x3e.",'scale':"Mohßshtaab = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"S",'layerAlreadyAdded':"Do häß versöhk, dat Nivvoh \x3ccode\x3e${layerName}\x3c/code\x3e en di Kaat eren ze bränge, et wohr ävver ald do dren.",'reprojectDeprecated':"Do bruchs de Ußwahl \x3ccode\x3ereproject\x3c/code\x3e op däm Nivvoh \x3ccode\x3e${layerName}\x3c/code\x3e. Di Ußwahl es nit mieh jähn jesinn. Se wohr doför jedaach, öm Date op jeschääfsmäßesch eruß jejovve Kaate bovve drop ze moole, wat ävver enzwesche besser met dä Öngershtözung för de ßfääresche Mäkaator Beldscher jeiht. Doh kanns De mieh drövver fenge op dä Sigg: http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Hee di Metood es nim_mih aktoäll un et weed se en dä Version 3.0 nit mieh jävve. Nemm \x3ccode\x3e${newMethod}\x3c/code\x3e doföör.",'boundsAddError':"Do moß beeds vun de \x3ccode\x3ex\x3c/code\x3e un \x3ccode\x3ey\x3c/code\x3e Wääte aan de Fungkßjohn \x3ccode\x3eadd\x3c/code\x3e jävve.",'lonlatAddError':"Do moß beeds \x3ccode\x3elon\x3c/code\x3e un \x3ccode\x3elat\x3c/code\x3e aan de Fungkßjohn \x3ccode\x3eadd\x3c/code\x3e jävve.",'pixelAddError':"Do moß beeds \x3ccode\x3ex\x3c/code\x3e un \x3ccode\x3ey\x3c/code\x3e aan de Fungkßjohn \x3ccode\x3eadd\x3c/code\x3e jävve.",'unsupportedGeometryType':"De Zoot Jommetrii dom_mer nit ongershtöze: \x3ccode\x3e${geomType}\x3c/code\x3e",'pagePositionFailed':"\x3ccode lang=\"en\"\x3eOpenLayers.Util.pagePosition\x3c/code\x3e es donevve jejange: dat Denge met dä Kännong \x3ccode\x3e${elemId}\x3c/code\x3e künnt am verkeehte Plaz sin.",'filterEvaluateNotImplemented':"„\x3ccode lang=\"en\"\x3eevaluate\x3c/code\x3e“ es för di Zoot Fellter nit enjereschdt."});OpenLayers.Lang["nb"]={'unhandledRequest':"Ubehandlet forespørsel returnerte ${statusText}",'permalink':"Kobling til denne siden",'overlays':"Kartlag",'baseLayer':"Bakgrunnskart",'sameProjection':"Oversiktskartet fungerer bare når det har samme projeksjon som hovedkartet",'readNotImplemented':"Lesing er ikke implementert.",'writeNotImplemented':"Skriving er ikke implementert.",'noFID':"Kan ikke oppdatere et feature (et objekt) som ikke har FID.",'errorLoadingGML':"Feil under lasting av GML-fil ${url}",'browserNotSupported':"Din nettleser støtter ikke vektortegning. Tegnemetodene som støttes er:\n${renderers}",'componentShouldBe':"addFeatures : komponenten må være en ${geomType}",'getFeatureError':"getFeatureFromEvent har blitt kjørt mot et lag uten noen tegnemetode. Dette betyr som regel at du "+"fjernet et lag uten å fjerne alle håndterere tilknyttet laget.",'minZoomLevelError':"Egenskapen minZoomLevel er kun ment til bruk på lag "+"basert på FixedZoomLevels. At dette wfs-laget sjekker "+"minZoomLevel er en etterlevning fra tidligere versjoner. Det kan dog ikke "+"tas bort uten å risikere at OL-baserte applikasjoner "+"slutter å virke, så det er merket som foreldet: "+"minZoomLevel i sjekken nedenfor vil fjernes i 3.0. "+"Vennligst bruk innstillingene for min/maks oppløsning "+"som er beskrevet her: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-transaksjon: LYKTES ${response}",'commitFailed':"WFS-transaksjon: MISLYKTES ${response}",'googleWarning':"Google-laget kunne ikke lastes.<br><br>"+"Bytt til et annet bakgrunnslag i lagvelgeren i "+"øvre høyre hjørne for å slippe denne meldingen.<br><br>"+"Sannsynligvis forårsakes feilen av at Google Maps-biblioteket "+"ikke er riktig inkludert på nettsiden, eller at det ikke er "+"angitt riktig API-nøkkel for nettstedet.<br><br>"+"Utviklere: For hjelp til å få dette til å virke se "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>her</a>.",'getLayerWarning':"${layerType}-laget kunne ikke lastes.<br><br>"+"Bytt til et annet bakgrunnslag i lagvelgeren i "+"øvre høyre hjørne for å slippe denne meldingen.<br><br>"+"Sannsynligvis forårsakes feilen av at "+"${layerLib}-biblioteket ikke var riktig inkludert "+"på nettsiden.<br><br>"+"Utviklere: For hjelp til å få dette til å virke se "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>her</a>.",'scale':"<strong>Skala</strong> 1 : ${scaleDenom}",'layerAlreadyAdded':"Du forsøkte å legge til laget ${layerName} på kartet, men det er allerede lagt til",'reprojectDeprecated':"Du bruker innstillingen 'reproject' på laget ${layerName}. "+"Denne innstillingen er foreldet, den var ment for å støtte "+"visning av kartdata over kommersielle bakgrunnskart, men det "+"bør nå gjøres med støtten for Spherical Mercator. Mer informasjon "+"finnes på http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Denne metoden er markert som foreldet og vil bli fjernet i 3.0. "+"Vennligst bruk ${newMethod} i stedet.",'boundsAddError':"Du må gi både x- og y-verdier til funksjonen add.",'lonlatAddError':"Du må gi både lon- og lat-verdier til funksjonen add.",'pixelAddError':"Du må gi både x- og y-verdier til funksjonen add.",'unsupportedGeometryType':"Geometritypen ${geomType} er ikke støttet",'pagePositionFailed':"OpenLayers.Util.pagePosition feilet: elementet med id ${elemId} kan være feilplassert.",'end':''};OpenLayers.Lang["no"]=OpenLayers.Lang["nb"];OpenLayers.Lang["nds"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Unbehannelt Trüchmellels för de Anfraag ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Achtergrundkoort",'sameProjection':"De Översichtskoort geiht blot, wenn de sülve Projekschoon as bi de Hööftkoort bruukt warrt",'readNotImplemented':"Lesen is nich inricht.",'writeNotImplemented':"Schrieven is nich inricht.",'noFID':"En Feature, dat keen FID hett, kann nich aktuell maakt warrn.",'errorLoadingGML':"Fehler bi’t Laden vun de GML-Datei ${url}",'browserNotSupported':"Dien Browser ünnerstütt keen Vektorbiller. Ünnerstütt Renderers:\n${renderers}",'componentShouldBe':"addFeatures : Kumponent schull man den Typ ${geomType} hebben",'getFeatureError':"getFeatureFromEvent is von en Laag ahn Render opropen worrn. Dat bedüüdt normalerwies, dat en Laag wegmaakt worrn is, aver nich de Handler, de dor op verwiest.",'commitSuccess':"WFS-Transakschoon: hett klappt ${response}",'commitFailed':"WFS-Transakschoon: hett nich klappt ${response}",'scale':"Skaal = 1 : ${scaleDenom}",'layerAlreadyAdded':"Du versöchst de Laag „${layerName}“ to de Koort totofögen, man de is al toföögt",'methodDeprecated':"Disse Methood is oold un schall dat in 3.0 nich mehr geven. Bruuk dor man beter ${newMethod} för.",'boundsAddError':"De Weert x un y, de mööt all beid an de add-Funkschoon övergeven warrn.",'lonlatAddError':"De Weert lon un lat, de mööt all beid an de add-Funkschoon övergeven warrn.",'pixelAddError':"De Weert x un y, de mööt all beid an de add-Funkschoon övergeven warrn.",'unsupportedGeometryType':"Nich ünnerstütt Geometrie-Typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition güng nich: Element mit de Id ${elemId} is villicht an’n verkehrten Platz."});OpenLayers.Lang["nl"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Het verzoek is niet afgehandeld met de volgende melding: ${statusText}",'permalink':"Permanente verwijzing",'overlays':"Overlays",'baseLayer':"Achtergrondkaart",'sameProjection':"De overzichtskaart werkt alleen als de projectie gelijk is aan de projectie van de hoofdkaart",'readNotImplemented':"Lezen is niet geïmplementeerd.",'writeNotImplemented':"Schrijven is niet geïmplementeerd.",'noFID':"Een optie die geen FID heeft kan niet bijgewerkt worden.",'errorLoadingGML':"Er is een fout opgetreden bij het laden van het GML bestand van ${url}",'browserNotSupported':"Uw browser ondersteunt het weergeven van vectoren niet.\nMomenteel ondersteunde weergavemogelijkheden:\n${renderers}",'componentShouldBe':"addFeatures : component moet van het type ${geomType} zijn",'getFeatureError':"getFeatureFromEvent is aangeroepen op een laag zonder rederer.\nDit betekent meestal dat u een laag hebt verwijderd, maar niet een handler die ermee geassocieerd was.",'minZoomLevelError':"De eigenschap minZoomLevel is alleen bedoeld voor gebruik lagen met die afstammen van FixedZoomLevels-lagen.\nDat deze WFS-laag minZoomLevel controleert, is een overblijfsel uit het verleden.\nWe kunnen deze controle echter niet verwijderen zonder op OL gebaseerde applicaties die hervan afhankelijk zijn stuk te maken.\nDaarom heeft deze functionaliteit de eigenschap \'deprecated\' gekregen - de minZoomLevel wordt verwijderd in versie 3.0.\nGebruik in plaats van deze functie de mogelijkheid om min/max voor resolutie in te stellen zoals op de volgende pagina wordt beschreven:\nhttp://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-transactie: succesvol ${response}",'commitFailed':"WFS-transactie: mislukt ${response}",'googleWarning':"De Google-Layer kon niet correct geladen worden.\x3cbr /\x3e\x3cbr /\x3e\nOm deze melding niet meer te krijgen, moet u een andere achtergrondkaart kiezen in de laagwisselaar in de rechterbovenhoek.\x3cbr /\x3e\x3cbr /\x3e\nDit komt waarschijnlijk doordat de bibliotheek ${layerLib} niet correct ingevoegd is.\x3cbr /\x3e\x3cbr /\x3e\nOntwikkelaars: \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklik hier\x3c/a\x3e om dit werkend te krijgen.",'getLayerWarning':"De laag ${layerType} kon niet goed geladen worden.\x3cbr /\x3e\x3cbr /\x3e\nOm deze melding niet meer te krijgen, moet u een andere achtergrondkaart kiezen in de laagwisselaar in de rechterbovenhoek.\x3cbr /\x3e\x3cbr /\x3e\nDit komt waarschijnlijk doordat de bibliotheek ${layerLib} niet correct is ingevoegd.\x3cbr /\x3e\x3cbr /\x3e\nOntwikkelaars: \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklik hier\x3c/a\x3e om dit werkend te krijgen.",'scale':"Schaal = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"Z",'layerAlreadyAdded':"U hebt geprobeerd om de laag  ${layerName} aan de kaart toe te voegen, maar deze is al toegevoegd",'reprojectDeprecated':"U gebruikt de optie \'reproject\' op de laag ${layerName}.\nDeze optie is vervallen: deze optie was ontwikkeld om gegevens over commerciële basiskaarten weer te geven, maar deze functionaliteit wordt nu bereikt door ondersteuning van Spherical Mercator.\nMeer informatie is beschikbaar op http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Deze methode is verouderd en wordt verwijderd in versie 3.0.\nGebruik ${newMethod}.",'boundsAddError':"U moet zowel de x- als de y-waarde doorgeven aan de toevoegfunctie.",'lonlatAddError':"U moet zowel de lengte- als de breedtewaarde doorgeven aan de toevoegfunctie.",'pixelAddError':"U moet zowel de x- als de y-waarde doorgeven aan de toevoegfunctie.",'unsupportedGeometryType':"Dit geometrietype wordt niet ondersteund: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition is mislukt: het element met id ${elemId} is wellicht onjuist geplaatst.",'filterEvaluateNotImplemented':"evalueren is niet geïmplementeerd voor dit filtertype."});OpenLayers.Lang["nn"]=OpenLayers.Util.applyDefaults({'scale':"Skala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Du freista å leggja til laget «${layerName}» på kartet, men det har alt vorte lagt til.",'boundsAddError':"Du er nøydd til å gje både ein x- og ein y-verdi til «add»-funksjonen.",'lonlatAddError':"Du er nøydd til å gje både lon- og lat-verdiar til «add»-funksjonen.",'pixelAddError':"Du er nøydd til å gje både ein x- og ein y-verdi til «add»-funksjonen."});OpenLayers.Lang["pt-br"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"A requisição retornou um erro não tratado: ${statusText}",'permalink':"Link para essa página",'overlays':"Camadas de Sobreposição",'baseLayer':"Camada Base",'sameProjection':"O mapa de referência só funciona quando ele está na mesma projeção do mapa principal",'readNotImplemented':"Leitura não implementada.",'writeNotImplemented':"Escrita não implementada.",'noFID':"Não é possível atualizar uma feição que não tenha um FID.",'errorLoadingGML':"Erro ao carregar o arquivo GML ${url}",'browserNotSupported':"Seu navegador não suporta renderização de vetores. Os renderizadores suportados atualmente são:\n${renderers}",'componentShouldBe':"addFeatures: o componente deve ser do tipo ${geomType}",'getFeatureError':"getFeatureFromEvent foi executado mas nenhum renderizador foi encontrado. Isso pode indicar que você destruiu uma camana, mas não o handler associado a ela.",'minZoomLevelError':"A propriedade minZoomLevel é de uso restrito das camadas descendentes de FixedZoomLevels. A verificação dessa propriedade pelas camadas wfs é um resíduo do passado. Não podemos, entretanto não é possível removê-la sem possívelmente quebrar o funcionamento de aplicações OL que possuem depência com ela. Portanto estamos tornando seu uso obsoleto -- a verificação desse atributo será removida na versão 3.0. Ao invés, use as opções de resolução min/max como descrito em: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transação WFS : SUCESSO ${response}",'commitFailed':"Transação WFS : ERRO ${response}",'googleWarning':"Não foi possível carregar a camada Google corretamente.\x3cbr\x3e\x3cbr\x3ePara se livrar dessa mensagem, selecione uma nova Camada Base, na ferramenta de alternação de camadas localização do canto superior direito.\x3cbr\x3e\x3cbr\x3eMuito provavelmente, isso foi causado porque o script da biblioteca do Google Maps não foi incluído, ou porque ele não contém a chave correta da API para o seu site.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: Para obter ajuda em solucionar esse problema \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3ecliquem aqui\x3c/a\x3e",'getLayerWarning':"Não foi possível carregar a camada ${layerType} corretamente.\x3cbr\x3e\x3cbr\x3ePara se livrar dessa mensagem, selecione uma nova Camada Base, na ferramenta de alternação de camadas localização do canto superior direito.\x3cbr\x3e\x3cbr\x3eMuito provavelmente, isso foi causado porque o script da biblioteca ${layerLib} não foi incluído corretamente.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: Para obter ajuda em solucionar esse problema \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3ecliquem aqui\x3c/a\x3e",'scale':"Escala = 1 : ${scaleDenom}",'W':"O",'E':"L",'N':"N",'S':"S",'layerAlreadyAdded':"Você tentou adicionar a camada: ${layerName} ao mapa, mas ela já foi adicionada",'reprojectDeprecated':"Você está usando a opção \'reproject\' na camada ${layerName}. Essa opção está obsoleta: seu uso foi projetado para suportar a visualização de dados sobre bases de mapas comerciais, entretanto essa funcionalidade deve agora ser alcançada usando o suporte à projeção Mercator. Mais informação está disponível em: http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Esse método está obsoleto e será removido na versão 3.0. Ao invés, por favor use ${newMethod}.",'boundsAddError':"Você deve informar ambos os valores x e y para a função add.",'lonlatAddError':"Você deve informar ambos os valores lon e lat para a função add.",'pixelAddError':"Você deve informar ambos os valores x e y para a função add.",'unsupportedGeometryType':"Tipo geométrico não suportado: ${geomType}.",'pagePositionFailed':"OpenLayers.Util.pagePosition falhou: o elemento de id ${elemId} deve estar fora do lugar.",'filterEvaluateNotImplemented':"evaluete não está implementado para este tipo de filtro."});OpenLayers.Lang["pt"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Servidor devolveu erro não contemplado ${statusText}",'permalink':"Ligação permanente",'overlays':"Sobreposições",'baseLayer':"Camada Base",'sameProjection':"O mapa panorâmico só funciona quando está na mesma projeção que o mapa principal",'readNotImplemented':"Leitura não implementada.",'writeNotImplemented':"Escrita não implementada.",'noFID':"Não é possível atualizar um elemento para a qual não há FID.",'errorLoadingGML':"Erro ao carregar ficheiro GML ${url}",'browserNotSupported':"O seu navegador não suporta renderização vetorial. Actualmente os renderizadores suportados são:\n${renderers}",'componentShouldBe':"addFeatures: componente deve ser um(a) ${geomType}",'getFeatureError':"getFeatureFromEvent foi chamado numa camada sem renderizador. Isto normalmente significa que destruiu uma camada, mas não um manipulador \'\'(handler)\'\' que lhe está associado.",'minZoomLevelError':"A propriedade minZoomLevel só deve ser usada com as camadas descendentes da FixedZoomLevels. A verificação da propriedade por esta camada wfs é uma relíquia do passado. No entanto, não podemos removê-la sem correr o risco de afectar aplicações OL que dependam dela. Portanto, estamos a torná-la obsoleta -- a verificação minZoomLevel será removida na versão 3.0. Em vez dela, por favor, use as opções de resolução min/max descritas aqui: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacção WFS: SUCESSO ${response}",'commitFailed':"Transacção WFS: FALHOU ${response}",'googleWarning':"A Camada Google não foi correctamente carregada.\x3cbr\x3e\x3cbr\x3ePara deixar de receber esta mensagem, seleccione uma nova Camada-Base no \'\'switcher\'\' de camadas no canto superior direito.\x3cbr\x3e\x3cbr\x3eProvavelmente, isto acontece porque o \'\'script\'\' da biblioteca do Google Maps não foi incluído ou não contém a chave API correcta para o seu sítio.\x3cbr\x3e\x3cbr\x3eProgramadores: Para ajuda sobre como solucionar o problema \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eclique aqui\x3c/a\x3e .",'getLayerWarning':"A camada ${layerType} não foi correctamente carregada.\x3cbr\x3e\x3cbr\x3ePara desactivar esta mensagem, seleccione uma nova Camada-Base no \'\'switcher\'\' de camadas no canto superior direito.\x3cbr\x3e\x3cbr\x3eProvavelmente, isto acontece porque o \'\'script\'\' da biblioteca ${layerLib} não foi incluído correctamente.\x3cbr\x3e\x3cbr\x3eProgramadores: Para ajuda sobre como solucionar o problema \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclique aqui\x3c/a\x3e .",'scale':"Escala = 1 : ${scaleDenom}",'W':"O",'E':"E",'N':"N",'S':"S",'layerAlreadyAdded':"Você tentou adicionar a camada: ${layerName} ao mapa, mas ela já tinha sido adicionada antes",'reprojectDeprecated':"Está usando a opção \'reproject\' na camada ${layerName}. Esta opção é obsoleta: foi concebida para permitir a apresentação de dados sobre mapas-base comerciais, mas esta funcionalidade é agora suportada pelo Mercator Esférico. Mais informação está disponível em http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Este método foi declarado obsoleto e será removido na versão 3.0. Por favor, use ${newMethod} em vez disso.",'boundsAddError':"Você deve passar tanto o valor x como o y à função de adição.",'lonlatAddError':"Você deve passar tanto o valor lon como o lat à função de adição.",'pixelAddError':"Você deve passar tanto o valor x como o y à função de adição.",'unsupportedGeometryType':"Tipo de geometria não suportado: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition falhou: o elemento com o id ${elemId} poderá estar mal-posicionado.",'filterEvaluateNotImplemented':"avaliar não está implementado para este tipo de filtro."});OpenLayers.Lang["ru"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Необработанный запрос вернул ${statusText}",'permalink':"Постоянная ссылка",'overlays':"Слои",'baseLayer':"Основной слой",'sameProjection':"Обзорная карта работает только тогда, когда имеет ту же проекцию, что и основная",'readNotImplemented':"Чтение не реализовано.",'writeNotImplemented':"Запись не реализована.",'noFID':"Невозможно обновить объект, для которого нет FID.",'errorLoadingGML':"Ошибка при загрузке файла GML ${url}",'browserNotSupported':"Ваш браузер не поддерживает векторную графику. На данный момент поддерживаются:\n${renderers}",'componentShouldBe':"addFeatures: компонент должен быть ${geomType}",'getFeatureError':"getFeatureFromEvent вызван для слоя без рендерера. Обычно это говорит о том, что вы уничтожили слой, но оставили связанный с ним обработчик.",'minZoomLevelError':"Свойство minZoomLevel предназначено только для использования со слоями, являющимися потомками FixedZoomLevels. То, что этот WFS-слой проверяется на minZoomLevel — реликт прошлого. Однако мы не можем удалить эту функцию, так как, возможно, от неё зависят некоторые основанные на OpenLayers приложения. Функция объявлена устаревшей — проверка minZoomLevel будет удалена в 3.0. Пожалуйста, используйте вместо неё настройку мин/макс разрешения, описанную здесь: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Транзакция WFS: УСПЕШНО ${response}",'commitFailed':"Транзакция WFS: ОШИБКА ${response}",'googleWarning':"Слой Google не удалось нормально загрузить.\x3cbr\x3e\x3cbr\x3eЧтобы избавиться от этого сообщения, выбите другой основной слой в переключателе в правом верхнем углу.\x3cbr\x3e\x3cbr\x3eСкорее всего, причина в том, что библиотека Google Maps не была включена или не содержит корректного API-ключа для вашего сайта.\x3cbr\x3e\x3cbr\x3eРазработчикам: чтобы узнать, как сделать, чтобы всё заработало, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eщёлкните тут\x3c/a\x3e",'getLayerWarning':"Слой ${layerType} не удалось нормально загрузить. \x3cbr\x3e\x3cbr\x3eЧтобы избавиться от этого сообщения, выбите другой основной слой в переключателе в правом верхнем углу.\x3cbr\x3e\x3cbr\x3eСкорее всего, причина в том, что библиотека ${layerLib} не была включена или была включена некорректно.\x3cbr\x3e\x3cbr\x3eРазработчикам: чтобы узнать, как сделать, чтобы всё заработало, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eщёлкните тут\x3c/a\x3e",'scale':"Масштаб = 1 : ${scaleDenom}",'W':"З",'E':"В",'N':"С",'S':"Ю",'layerAlreadyAdded':"Вы попытались добавить слой «${layerName}» на карту, но он уже был добавлен",'reprojectDeprecated':"Вы используете опцию \'reproject\' для слоя ${layerName}. Эта опция является устаревшей: ее использование предполагалось для поддержки показа данных поверх коммерческих базовых карт, но теперь этот функционал несёт встроенная поддержка сферической проекции Меркатора. Больше сведений доступно на http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Этот метод считается устаревшим и будет удалён в версии 3.0. Пожалуйста, пользуйтесь ${newMethod}.",'boundsAddError':"Функции add надо передавать оба значения, x и y.",'lonlatAddError':"Функции add надо передавать оба значения, lon и lat.",'pixelAddError':"Функции add надо передавать оба значения, x и y.",'unsupportedGeometryType':"Неподдерживаемый тип геометрии: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: элемент с id ${elemId} может находиться не в нужном месте.",'filterEvaluateNotImplemented':"evaluate не реализовано для фильтра данного типа."});OpenLayers.Lang["sk"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Neobslúžené požiadavky vracajú ${statusText}",'permalink':"Trvalý odkaz",'overlays':"Prekrytia",'baseLayer':"Základná vrstva",'sameProjection':"Prehľadová mapka funguje iba vtedy, keď je v rovnakej projekcii ako hlavná mapa",'readNotImplemented':"Čítanie nie je implementované.",'writeNotImplemented':"Zápis nie je implementovaný.",'noFID':"Nie je možné aktualizovať vlastnosť, pre ktorú neexistuje FID.",'errorLoadingGML':"Chyba pri načítaní súboru GML ${url}",'browserNotSupported':"Váš prehliadač nepodporuje vykresľovanie vektorov. Momentálne podporované vykresľovače sú:\n${renderers}",'componentShouldBe':"addFeatures: komponent by mal byť ${geomType}",'getFeatureError':"getFeatureFromEvent bola zavolaná na vrstve bez vykresľovača. To zvyčajne znamená, že ste odstránili vrstvu, ale nie niektorú z obslúh, ktorá je s ňou asociovaná.",'minZoomLevelError':"Vlastnosť minZoomLevel je určený iba na použitie s vrstvami odvodenými od FixedZoomLevels. To, že táto wfs vrstva kontroluje minZoomLevel je pozostatok z minulosti. Nemôžeme ho však odstrániť, aby sme sa vyhli možnému porušeniu aplikácií založených na Open Layers, ktoré na tomto môže závisieť. Preto ho označujeme ako zavrhovaný - dolu uvedená kontrola minZoomLevel bude odstránená vo verzii 3.0. Použite prosím namiesto toho kontrolu min./max. rozlíšenia podľa tu uvedeného popisu: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transakcia WFS: ÚSPEŠNÁ ${response}",'commitFailed':"Transakcia WFS: ZLYHALA ${response}",'googleWarning':"Vrstvu Google nebolo možné správne načítať.\x3cbr\x3e\x3cbr\x3eAby ste sa tejto správy zbavili vyberte novú BaseLayer v prepínači vrstiev v pravom hornom rohu.\x3cbr\x3e\x3cbr\x3eToto sa stalo pravdepodobne preto, že skript knižnice Google Maps buď nebol načítaný alebo neobsahuje správny kľúč API pre vašu lokalitu.\x3cbr\x3e\x3cbr\x3eVývojári: Tu môžete získať \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3epomoc so sfunkčnením\x3c/a\x3e",'getLayerWarning':"Vrstvu ${layerType} nebolo možné správne načítať.\x3cbr\x3e\x3cbr\x3eAby ste sa tejto správy zbavili vyberte novú BaseLayer v prepínači vrstiev v pravom hornom rohu.\x3cbr\x3e\x3cbr\x3eToto sa stalo pravdepodobne preto, že skript knižnice ${layerType} buď nebol načítaný alebo neobsahuje správny kľúč API pre vašu lokalitu.\x3cbr\x3e\x3cbr\x3eVývojári: Tu môžete získať \x3ca href=\'http://trac.openlayers.org/wiki/${layerType}\' target=\'_blank\'\x3epomoc so sfunkčnením\x3c/a\x3e",'scale':"Mierka = 1 : ${scaleDenom}",'layerAlreadyAdded':"Pokúsili ste sa do mapy pridať vrstvu ${layerName}, ale tá už bola pridaná",'reprojectDeprecated':"Používate voľby „reproject“ vrstvy ${layerType}. Táto voľba je zzavrhovaná: jej použitie bolo navrhnuté na podporu zobrazovania údajov nad komerčnými základovými mapami, ale túto funkcionalitu je teraz možné dosiahnuť pomocou Spherical Mercator. Ďalšie informácie získate na stránke http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Táto metóda je zavrhovaná a bude odstránená vo verzii 3.0. Použite prosím namiesto nej metódu ${newMethod}.",'boundsAddError':"Sčítacej funkcii musíte dať hodnoty x aj y.",'lonlatAddError':"Sčítacej funkcii musíte dať hodnoty lon (zem. dĺžka) aj lat (zem. šírka).",'pixelAddError':"Sčítacej funkcii musíte dať hodnoty x aj y.",'unsupportedGeometryType':"Nepodporovaný typ geometrie: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition zlyhalo: prvok s id ${elemId} môže byť zle umiestnený.",'filterEvaluateNotImplemented':"evaluate nie je implementovaný pre tento typ filtra"});OpenLayers.Lang["sv"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Ej hanterad fråga retur ${statusText}",'permalink':"Permalänk",'overlays':"Kartlager",'baseLayer':"Bakgrundskarta",'sameProjection':"Översiktskartan fungerar endast när den har samma projektion som huvudkartan",'readNotImplemented':"Läsning ej implementerad.",'writeNotImplemented':"Skrivning ej implementerad.",'noFID':"Kan ej uppdatera feature (objekt) för vilket FID saknas.",'errorLoadingGML':"Fel i laddning av GML-fil ${url}",'browserNotSupported':"Din webbläsare stöder inte vektorvisning. För närvarande stöds följande visning:\n${renderers}",'componentShouldBe':"addFeatures : komponenten skall vara en ${geomType}",'getFeatureError':"getFeatureFromEvent anropad för lager utan utritning. Detta betyder oftast att man raderat ett lager, men inte en hanterare som är knuten till lagret.",'minZoomLevelError':"Egenskapen minZoomLevel är endast avsedd att användas med lager med FixedZoomLevels. Att detta WFS-lager kontrollerar minZoomLevel är en relik från äldre versioner. Vi kan dock inte ta bort det utan att riskera att OL-baserade tillämpningar som använder detta slutar fungera. Därför är det satt som deprecated, minZoomLevel kommer att tas bort i version 3.0. Använd i stället inställning av min/max resolution som beskrivs här: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-transaktion: LYCKADES ${response}",'commitFailed':"WFS-transaktion: MISSLYCKADES ${response}",'googleWarning':"Google-lagret kunde inte laddas korrekt.\x3cbr\x3e\x3cbr\x3eFör att slippa detta meddelande, välj en annan bakgrundskarta i lagerväljaren i övre högra hörnet.\x3cbr\x3e\x3cbr\x3eSannolikt beror felet på att Google Maps-biblioteket inte är inkluderat på webbsidan eller på att sidan inte anger korrekt API-nyckel för webbplatsen.\x3cbr\x3e\x3cbr\x3eUtvecklare: hjälp för att åtgärda detta, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eklicka här\x3c/a\x3e.",'getLayerWarning':"${layerType}-lagret kunde inte laddas korrekt.\x3cbr\x3e\x3cbr\x3eFör att slippa detta meddelande, välj en annan bakgrundskarta i lagerväljaren i övre högra hörnet.\x3cbr\x3e\x3cbr\x3eSannolikt beror felet på att ${layerLib}-biblioteket inte är inkluderat på webbsidan.\x3cbr\x3e\x3cbr\x3eUtvecklare: hjälp för att åtgärda detta, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklicka här\x3c/a\x3e.",'scale':"\x3cstrong\x3eSkala\x3c/strong\x3e 1 : ${scaleDenom}",'layerAlreadyAdded':"Du försökte lägga till lagret: ${layerName} på kartan, men det har lagts till tidigare",'reprojectDeprecated':"Du använder inställningen \'reproject\' på lagret ${layerName}. Denna inställning markerad som deprecated: den var avsedd att användas för att stödja visning av kartdata på kommersiella bakgrundskartor, men nu bör man i stället använda Spherical Mercator-stöd för den funktionaliteten. Mer information finns på http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Denna metod är markerad som deprecated och kommer att tas bort i 3.0. Använd ${newMethod} i stället.",'boundsAddError':"Du måste skicka både x- och y-värde till funktionen add.",'lonlatAddError':"Du måste skicka både lon- och lat-värde till funktionen add.",'pixelAddError':"Du måste skicka både x- och y-värde till funktionen add.",'unsupportedGeometryType':"Stöd saknas för geometritypen: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition misslyckades: elementet med id ${elemId} kan placeras fel.",'filterEvaluateNotImplemented':"evaluering har ej implementerats för denna typ av filter."});OpenLayers.Lang["te"]=OpenLayers.Util.applyDefaults({'permalink':"స్థిరలింకు",'W':"ప",'E':"తూ",'N':"ఉ",'S':"ద"});OpenLayers.Lang["vi"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Không xử lý được phản hồi ${statusText} cho yêu cầu",'permalink':"Liên kết thường trực",'overlays':"Lấp bản đồ",'baseLayer':"Lớp nền",'sameProjection':"Bản đồ toàn cảnh chỉ hoạt động khi cùng phép chiếu với bản đồ chính",'readNotImplemented':"Chưa hỗ trợ chức năng đọc.",'writeNotImplemented':"Chưa hỗ trợ chức năng viết.",'noFID':"Không thể cập nhật tính năng thiếu FID.",'errorLoadingGML':"Lỗi tải tập tin GML tại ${url}",'browserNotSupported':"Trình duyệt của bạn không hỗ trợ chức năng vẽ bằng vectơ. Hiện hỗ trợ các bộ kết xuất:\n${renderers}",'componentShouldBe':"addFeatures: bộ phận cần phải là ${geomType}",'getFeatureError':"getFeatureFromEvent được gọi từ lớp không có bộ kết xuất. Thường thì có lẽ lớp bị xóa nhưng một phần xử lý của nó vẫn còn.",'minZoomLevelError':"Chỉ nên sử dụng thuộc tính minZoomLevel với các lớp FixedZoomLevels-descendent. Việc lớp wfs này tìm cho minZoomLevel là di tích còn lại từ xưa. Tuy nhiên, nếu chúng tôi dời nó thì sẽ vỡ các chương trình OpenLayers mà dựa trên nó. Bởi vậy chúng tôi phản đối sử dụng nó\x26nbsp;– bước tìm cho minZoomLevel sẽ được dời vào phiên bản 3.0. Xin sử dụng thiết lập độ phân tích tối thiểu / tối đa thay thế, theo hướng dẫn này: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Giao dịch WFS: THÀNH CÔNG ${response}",'commitFailed':"Giao dịch WFS: THẤT BẠI ${response}",'googleWarning':"Không thể tải lớp Google đúng đắn.\x3cbr\x3e\x3cbr\x3eĐể tránh thông báo này lần sau, hãy chọn BaseLayer mới dùng điều khiển chọn lớp ở góc trên phải.\x3cbr\x3e\x3cbr\x3eChắc script thư viện Google Maps hoặc không được bao gồm hoặc không chứa khóa API hợp với website của bạn.\x3cbr\x3e\x3cbr\x3e\x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eTrợ giúp về tính năng này\x3c/a\x3e cho người phát triển.",'getLayerWarning':"Không thể tải lớp ${layerType} đúng đắn.\x3cbr\x3e\x3cbr\x3eĐể tránh thông báo này lần sau, hãy chọn BaseLayer mới dùng điều khiển chọn lớp ở góc trên phải.\x3cbr\x3e\x3cbr\x3eChắc script thư viện ${layerLib} không được bao gồm đúng kiểu.\x3cbr\x3e\x3cbr\x3e\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eTrợ giúp về tính năng này\x3c/a\x3e cho người phát triển.",'scale':"Tỷ lệ = 1 : ${scaleDenom}",'W':"T",'E':"Đ",'N':"B",'S':"N",'layerAlreadyAdded':"Bạn muốn thêm lớp ${layerName} vào bản đồ, nhưng lớp này đã được thêm",'reprojectDeprecated':"Bạn đang áp dụng chế độ “reproject” vào lớp ${layerName}. Chế độ này đã bị phản đối: nó có mục đích hỗ trợ lấp dữ liệu trên các nền bản đồ thương mại; nên thực hiện hiệu ứng đó dùng tính năng Mercator Hình cầu. Có sẵn thêm chi tiết tại http://trac.openlayers.org/wiki/SphericalMercator .",'methodDeprecated':"Phương thức này đã bị phản đối và sẽ bị dời vào phiên bản 3.0. Xin hãy sử dụng ${newMethod} thay thế.",'boundsAddError':"Cần phải cho cả giá trị x và y vào hàm add.",'lonlatAddError':"Cần phải cho cả giá trị lon và lat vào hàm add.",'pixelAddError':"Cần phải cho cả giá trị x và y vào hàm add.",'unsupportedGeometryType':"Không hỗ trợ kiểu địa lý: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition bị thất bại: nguyên tố với ID ${elemId} có thể ở chỗ sai.",'filterEvaluateNotImplemented':"chưa hỗ trợ evaluate cho loại bộ lọc này."});OpenLayers.Lang["zh-CN"]={'unhandledRequest':"未处理的请求,返回值为 ${statusText}",'permalink':"永久链接",'overlays':"叠加层",'baseLayer':"基础图层",'sameProjection':"鹰眼地图只有在和主地图使用相同的投影的时候才能正常共工作",'readNotImplemented':"读取功能没有实现。",'writeNotImplemented':"写入功能没有实现。",'noFID':"无法更新feature,缺少FID。",'errorLoadingGML':"加载GML文件 ${url} 出现错误。",'browserNotSupported':"你使用的浏览器不支持矢量渲染。当前支持的渲染方式包括:\n${renderers}",'componentShouldBe':"addFeatures : 组件类型应该是 ${geomType}",'getFeatureError':"getFeatureFromEvent方法在一个没有渲染器的图层上被调用。 这通常意味着您"+"销毁了一个图层,但并未销毁其关联的handler。",'minZoomLevelError':"minZoomLevel属性仅适合用于"+"使用了固定缩放级别的图层。这个 "+"wfs 图层检查 minZoomLevel 是过去遗留下来的。"+"然而,我们不能移除它,"+"而破坏依赖于它的基于OL的应用程序。"+"因此,我们废除了它 -- minZoomLevel "+"将会在3.0中被移除。请改用 "+"min/max resolution 设置,参考:"+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: 成功。 ${response}",'commitFailed':"WFS Transaction: 失败。 ${response}",'googleWarning':"Google图层不能正确加载。<br><br>"+"要消除这个信息,请在右上角的"+"图层控制面板中选择其他的基础图层。<br><br>"+"这种情况很可能是没有正确的包含Google地图脚本库,"+"或者是没有包含在你的站点上"+"使用的正确的Google Maps API密匙。<br><br>"+"开发者:获取使其正确工作的帮助信息,"+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>点击这里</a>",'getLayerWarning':"${layerType} 图层不能正确加载。<br><br>"+"要消除这个信息,请在右上角的"+"图层控制面板中选择其他的基础图层。<br><br>"+"这种情况很可能是没有正确的包含"+"${layerLib} 脚本库。<br><br>"+"开发者:获取使其正确工作的帮助信息,"+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>点击这里</a>",'scale':"比例尺 = 1 : ${scaleDenom}",'layerAlreadyAdded':"你尝试添加图层: ${layerName} 到地图中,但是它之前就已经被添加。",'reprojectDeprecated':"你正在使用 ${layerName} 图层上的'reproject'选项。"+"这个选项已经不再使用:"+"它是被设计用来支持显示商业的地图数据,"+"不过现在该功能可以通过使用Spherical Mercator来实现。"+"更多信息可以参阅"+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"该方法已经不再被支持,并且将在3.0中被移除。"+"请使用 ${newMethod} 方法来替代。",'boundsAddError':"您必须传递 x 和 y 两个参数值到 add 方法。",'lonlatAddError':"您必须传递 lon 和 lat 两个参数值到 add 方法。",'pixelAddError':"您必须传递 x and y 两个参数值到 add 方法。",'unsupportedGeometryType':"不支持的几何体类型: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition 失败:id 为 ${elemId} 的元素可能被错置。",'end':''};OpenLayers.Lang["zh-TW"]={'unhandledRequest':"未處理的請求,傳回值為 ${statusText}。",'permalink':"永久連結",'overlays':"額外圖層",'baseLayer':"基礎圖層",'sameProjection':"地圖縮覽(OverviewMap)只能在跟主地圖相同投影時起作用。",'readNotImplemented':"沒有實作讀取的功能。",'writeNotImplemented':"沒有實作寫入的功能。",'noFID':"因為沒有 FID 所以無法更新 feature。",'errorLoadingGML':"讀取GML檔案 ${url} 錯誤。",'browserNotSupported':"您的瀏覽器未支援向量渲染. 目前支援的渲染方式是:\n${renderers}",'componentShouldBe':"addFeatures : 元件應該為 ${geomType}",'getFeatureError':"getFeatureFromEvent 在一個沒有被渲染的圖層裡被呼叫。這通常意味著您 "+"摧毀了一個圖層,但並未摧毀相關的handler。",'minZoomLevelError':"minZoomLevel 屬性僅適合用在 "+"FixedZoomLevels-descendent 類型的圖層. 這個"+"wfs layer 的 minZoomLevel 是過去所遺留下來的,"+"然而我們不能移除它而不讓它將"+"過去的程式相容性給破壞掉。"+"因此我們將會迴避使用它 -- minZoomLevel "+"會在3.0被移除,請改"+"用在這邊描述的 min/max resolution 設定: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: 成功 ${response}",'commitFailed':"WFS Transaction: 失敗 ${response}",'googleWarning':"The Google Layer 圖層無法被正確的載入。<br><br>"+"要迴避這個訊息, 請在右上角的圖層改變器裡,"+"選一個新的基礎圖層。<br><br>"+"很有可能是因為 Google Maps 的函式庫"+"腳本沒有被正確的置入,或沒有包含 "+"您網站上正確的 API key <br><br>"+"開發者: 要幫助這個行為正確完成,"+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>請按這裡</a>",'getLayerWarning':"${layerType} 圖層無法被正確的載入。<br><br>"+"要迴避這個訊息, 請在右上角的圖層改變器裡,"+"選一個新的基礎圖層。<br><br>"+"很有可能是因為 ${layerLib} 的函式庫"+"腳本沒有被正確的置入。<br><br>"+"開發者: 要幫助這個行為正確完成,"+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>請按這裡</a>",'scale':"Scale = 1 : ${scaleDenom}",'layerAlreadyAdded':"你試著新增圖層: ${layerName} 到地圖上,但圖層之前就已經被新增了。",'reprojectDeprecated':"你正使用 'reproject' 這個選項 "+"在 ${layerName} 層。這個選項已經不再使用:"+"它的使用原本是設計用來支援在商業地圖上秀出資料,"+"但這個功能已經被"+"Spherical Mercator所取代。更多的資訊可以在 "+"http://trac.openlayers.org/wiki/SphericalMercator 找到。",'methodDeprecated':"這個方法已經不再使用且在3.0將會被移除,"+"請使用 ${newMethod} 來代替。",'boundsAddError':"您必須傳入 x 跟 y 兩者的值進 add 函數。",'lonlatAddError':"您必須傳入 lon 跟 lat 兩者的值進 add 函數。",'pixelAddError':"您必須傳入 x 跟 y 兩者的值進 add 函數。",'unsupportedGeometryType':"未支援的幾何型別: ${geomType}。",'pagePositionFailed':"OpenLayers.Util.pagePosition 失敗: id ${elemId} 的 element 可能被錯置。",'end':''};OpenLayers.Popup.AnchoredBubble=OpenLayers.Class(OpenLayers.Popup.Anchored,{rounded:false,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){this.padding=new OpenLayers.Bounds(0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE,0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE);OpenLayers.Popup.Anchored.prototype.initialize.apply(this,arguments);},draw:function(px){OpenLayers.Popup.Anchored.prototype.draw.apply(this,arguments);this.setContentHTML();this.setBackgroundColor();this.setOpacity();return this.div;},updateRelativePosition:function(){this.setRicoCorners();},setSize:function(contentSize){OpenLayers.Popup.Anchored.prototype.setSize.apply(this,arguments);this.setRicoCorners();},setBackgroundColor:function(color){if(color!=undefined){this.backgroundColor=color;}
 if(this.div!=null){if(this.contentDiv!=null){this.div.style.background="transparent";OpenLayers.Rico.Corner.changeColor(this.groupDiv,this.backgroundColor);}}},setOpacity:function(opacity){OpenLayers.Popup.Anchored.prototype.setOpacity.call(this,opacity);if(this.div!=null){if(this.groupDiv!=null){OpenLayers.Rico.Corner.changeOpacity(this.groupDiv,this.opacity);}}},setBorder:function(border){this.border=0;},setRicoCorners:function(){var corners=this.getCornersToRound(this.relativePosition);var options={corners:corners,color:this.backgroundColor,bgColor:"transparent",blend:false};if(!this.rounded){OpenLayers.Rico.Corner.round(this.div,options);this.rounded=true;}else{OpenLayers.Rico.Corner.reRound(this.groupDiv,options);this.setBackgroundColor();this.setOpacity();}},getCornersToRound:function(){var corners=['tl','tr','bl','br'];var corner=OpenLayers.Bounds.oppositeQuadrant(this.relativePosition);OpenLayers.Util.removeItem(corners,corner);return corners.join(" ");},CLASS_NAME:"OpenLayers.Popup.AnchoredBubble"});OpenLayers.Popup.AnchoredBubble.CORNER_SIZE=5;OpenLayers.Popup.Framed=OpenLayers.Class(OpenLayers.Popup.Anchored,{imageSrc:null,imageSize:null,isAlphaImage:false,positionBlocks:null,blocks:null,fixedRelativePosition:false,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){OpenLayers.Popup.Anchored.prototype.initialize.apply(this,arguments);if(this.fixedRelativePosition){this.updateRelativePosition();this.calculateRelativePosition=function(px){return this.relativePosition;};}
 this.contentDiv.style.position="absolute";this.contentDiv.style.zIndex=1;if(closeBox){this.closeDiv.style.zIndex=1;}
 this.groupDiv.style.position="absolute";this.groupDiv.style.top="0px";this.groupDiv.style.left="0px";this.groupDiv.style.height="100%";this.groupDiv.style.width="100%";},destroy:function(){this.imageSrc=null;this.imageSize=null;this.isAlphaImage=null;this.fixedRelativePosition=false;this.positionBlocks=null;for(var i=0;i<this.blocks.length;i++){var block=this.blocks[i];if(block.image){block.div.removeChild(block.image);}
@@ -454,30 +466,35 @@ var position=this.positionBlocks[firstPosition];for(var i=0;i<position.blocks.le
 if(this.size&&this.relativePosition){var position=this.positionBlocks[this.relativePosition];for(var i=0;i<position.blocks.length;i++){var positionBlock=position.blocks[i];var block=this.blocks[i];var l=positionBlock.anchor.left;var b=positionBlock.anchor.bottom;var r=positionBlock.anchor.right;var t=positionBlock.anchor.top;var w=(isNaN(positionBlock.size.w))?this.size.w-(r+l):positionBlock.size.w;var h=(isNaN(positionBlock.size.h))?this.size.h-(b+t):positionBlock.size.h;block.div.style.width=(w<0?0:w)+'px';block.div.style.height=(h<0?0:h)+'px';block.div.style.left=(l!=null)?l+'px':'';block.div.style.bottom=(b!=null)?b+'px':'';block.div.style.right=(r!=null)?r+'px':'';block.div.style.top=(t!=null)?t+'px':'';block.image.style.left=positionBlock.position.x+'px';block.image.style.top=positionBlock.position.y+'px';}
 this.contentDiv.style.left=this.padding.left+"px";this.contentDiv.style.top=this.padding.top+"px";}},CLASS_NAME:"OpenLayers.Popup.Framed"});OpenLayers.Projection=OpenLayers.Class({proj:null,projCode:null,initialize:function(projCode,options){OpenLayers.Util.extend(this,options);this.projCode=projCode;if(window.Proj4js){this.proj=new Proj4js.Proj(projCode);}},getCode:function(){return this.proj?this.proj.srsCode:this.projCode;},getUnits:function(){return this.proj?this.proj.units:null;},toString:function(){return this.getCode();},equals:function(projection){if(projection&&projection.getCode){return this.getCode()==projection.getCode();}else{return false;}},destroy:function(){delete this.proj;delete this.projCode;},CLASS_NAME:"OpenLayers.Projection"});OpenLayers.Projection.transforms={};OpenLayers.Projection.addTransform=function(from,to,method){if(!OpenLayers.Projection.transforms[from]){OpenLayers.Projection.transforms[from]={};}
 OpenLayers.Projection.transforms[from][to]=method;};OpenLayers.Projection.transform=function(point,source,dest){if(source.proj&&dest.proj){point=Proj4js.transform(source.proj,dest.proj,point);}else if(source&&dest&&OpenLayers.Projection.transforms[source.getCode()]&&OpenLayers.Projection.transforms[source.getCode()][dest.getCode()]){OpenLayers.Projection.transforms[source.getCode()][dest.getCode()](point);}
-return point;};OpenLayers.Renderer.SVG=OpenLayers.Class(OpenLayers.Renderer.Elements,{xmlns:"http://www.w3.org/2000/svg",xlinkns:"http://www.w3.org/1999/xlink",MAX_PIXEL:15000,translationParameters:null,symbolSize:{},isGecko:null,initialize:function(containerID){if(!this.supported()){return;}
-OpenLayers.Renderer.Elements.prototype.initialize.apply(this,arguments);this.translationParameters={x:0,y:0};this.isGecko=(navigator.userAgent.toLowerCase().indexOf("gecko/")!=-1);},destroy:function(){OpenLayers.Renderer.Elements.prototype.destroy.apply(this,arguments);},supported:function(){var svgFeature="http://www.w3.org/TR/SVG11/feature#";return(document.implementation&&(document.implementation.hasFeature("org.w3c.svg","1.0")||document.implementation.hasFeature(svgFeature+"SVG","1.1")||document.implementation.hasFeature(svgFeature+"BasicStructure","1.1")));},inValidRange:function(x,y,xyOnly){var left=x+(xyOnly?0:this.translationParameters.x);var top=y+(xyOnly?0:this.translationParameters.y);return(left>=-this.MAX_PIXEL&&left<=this.MAX_PIXEL&&top>=-this.MAX_PIXEL&&top<=this.MAX_PIXEL);},setExtent:function(extent,resolutionChanged){OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,arguments);var resolution=this.getResolution();var left=-extent.left/resolution;var top=extent.top/resolution;if(resolutionChanged){this.left=left;this.top=top;var extentString="0 0 "+this.size.w+" "+this.size.h;this.rendererRoot.setAttributeNS(null,"viewBox",extentString);this.translate(0,0);return true;}else{var inRange=this.translate(left-this.left,top-this.top);if(!inRange){this.setExtent(extent,true);}
+return point;};OpenLayers.Renderer.SVG=OpenLayers.Class(OpenLayers.Renderer.Elements,{xmlns:"http://www.w3.org/2000/svg",xlinkns:"http://www.w3.org/1999/xlink",MAX_PIXEL:15000,translationParameters:null,symbolMetrics:null,isGecko:null,supportUse:null,initialize:function(containerID){if(!this.supported()){return;}
+OpenLayers.Renderer.Elements.prototype.initialize.apply(this,arguments);this.translationParameters={x:0,y:0};this.supportUse=(navigator.userAgent.toLowerCase().indexOf("applewebkit/5")==-1);this.isGecko=(navigator.userAgent.toLowerCase().indexOf("gecko/")!=-1);this.symbolMetrics={};},destroy:function(){OpenLayers.Renderer.Elements.prototype.destroy.apply(this,arguments);},supported:function(){var svgFeature="http://www.w3.org/TR/SVG11/feature#";return(document.implementation&&(document.implementation.hasFeature("org.w3c.svg","1.0")||document.implementation.hasFeature(svgFeature+"SVG","1.1")||document.implementation.hasFeature(svgFeature+"BasicStructure","1.1")));},inValidRange:function(x,y,xyOnly){var left=x+(xyOnly?0:this.translationParameters.x);var top=y+(xyOnly?0:this.translationParameters.y);return(left>=-this.MAX_PIXEL&&left<=this.MAX_PIXEL&&top>=-this.MAX_PIXEL&&top<=this.MAX_PIXEL);},setExtent:function(extent,resolutionChanged){OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,arguments);var resolution=this.getResolution();var left=-extent.left/resolution;var top=extent.top/resolution;if(resolutionChanged){this.left=left;this.top=top;var extentString="0 0 "+this.size.w+" "+this.size.h;this.rendererRoot.setAttributeNS(null,"viewBox",extentString);this.translate(0,0);return true;}else{var inRange=this.translate(left-this.left,top-this.top);if(!inRange){this.setExtent(extent,true);}
 return inRange;}},translate:function(x,y){if(!this.inValidRange(x,y,true)){return false;}else{var transformString="";if(x||y){transformString="translate("+x+","+y+")";}
-this.root.setAttributeNS(null,"transform",transformString);this.translationParameters={x:x,y:y};return true;}},setSize:function(size){OpenLayers.Renderer.prototype.setSize.apply(this,arguments);this.rendererRoot.setAttributeNS(null,"width",this.size.w);this.rendererRoot.setAttributeNS(null,"height",this.size.h);},getNodeType:function(geometry,style){var nodeType=null;switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":if(style.externalGraphic){nodeType="image";}else if(this.isComplexSymbol(style.graphicName)){nodeType="use";}else{nodeType="circle";}
+this.root.setAttributeNS(null,"transform",transformString);this.translationParameters={x:x,y:y};return true;}},setSize:function(size){OpenLayers.Renderer.prototype.setSize.apply(this,arguments);this.rendererRoot.setAttributeNS(null,"width",this.size.w);this.rendererRoot.setAttributeNS(null,"height",this.size.h);},getNodeType:function(geometry,style){var nodeType=null;switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":if(style.externalGraphic){nodeType="image";}else if(this.isComplexSymbol(style.graphicName)){nodeType=this.supportUse===false?"svg":"use";}else{nodeType="circle";}
 break;case"OpenLayers.Geometry.Rectangle":nodeType="rect";break;case"OpenLayers.Geometry.LineString":nodeType="polyline";break;case"OpenLayers.Geometry.LinearRing":nodeType="polygon";break;case"OpenLayers.Geometry.Polygon":case"OpenLayers.Geometry.Curve":case"OpenLayers.Geometry.Surface":nodeType="path";break;default:break;}
 return nodeType;},setStyle:function(node,style,options){style=style||node._style;options=options||node._options;var r=parseFloat(node.getAttributeNS(null,"r"));var widthFactor=1;var pos;if(node._geometryClass=="OpenLayers.Geometry.Point"&&r){node.style.visibility="";if(style.graphic===false){node.style.visibility="hidden";}else if(style.externalGraphic){pos=this.getPosition(node);if(style.graphicTitle){node.setAttributeNS(null,"title",style.graphicTitle);}
 if(style.graphicWidth&&style.graphicHeight){node.setAttributeNS(null,"preserveAspectRatio","none");}
-var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);var opacity=style.graphicOpacity||style.fillOpacity;node.setAttributeNS(null,"x",(pos.x+xOffset).toFixed());node.setAttributeNS(null,"y",(pos.y+yOffset).toFixed());node.setAttributeNS(null,"width",width);node.setAttributeNS(null,"height",height);node.setAttributeNS(this.xlinkns,"href",style.externalGraphic);node.setAttributeNS(null,"style","opacity: "+opacity);}else if(this.isComplexSymbol(style.graphicName)){var offset=style.pointRadius*3;var size=offset*2;var id=this.importSymbol(style.graphicName);var href="#"+id;pos=this.getPosition(node);widthFactor=this.symbolSize[id]/size;var parent=node.parentNode;var nextSibling=node.nextSibling;if(parent){parent.removeChild(node);}
-node.setAttributeNS(this.xlinkns,"href",href);node.setAttributeNS(null,"width",size);node.setAttributeNS(null,"height",size);node.setAttributeNS(null,"x",pos.x-offset);node.setAttributeNS(null,"y",pos.y-offset);if(nextSibling){parent.insertBefore(node,nextSibling);}else if(parent){parent.appendChild(node);}}else{node.setAttributeNS(null,"r",style.pointRadius);}
-if(typeof style.rotation!="undefined"&&pos){var rotation=OpenLayers.String.format("rotate(${0} ${1} ${2})",[style.rotation,pos.x,pos.y]);node.setAttributeNS(null,"transform",rotation);}}
+var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);var opacity=style.graphicOpacity||style.fillOpacity;node.setAttributeNS(null,"x",(pos.x+xOffset).toFixed());node.setAttributeNS(null,"y",(pos.y+yOffset).toFixed());node.setAttributeNS(null,"width",width);node.setAttributeNS(null,"height",height);node.setAttributeNS(this.xlinkns,"href",style.externalGraphic);node.setAttributeNS(null,"style","opacity: "+opacity);}else if(this.isComplexSymbol(style.graphicName)){var offset=style.pointRadius*3;var size=offset*2;var id=this.importSymbol(style.graphicName);pos=this.getPosition(node);widthFactor=this.symbolMetrics[id][0]*3/size;var parent=node.parentNode;var nextSibling=node.nextSibling;if(parent){parent.removeChild(node);}
+if(this.supportUse===false){var src=document.getElementById(id);node.firstChild&&node.removeChild(node.firstChild);node.appendChild(src.firstChild.cloneNode(true));node.setAttributeNS(null,"viewBox",src.getAttributeNS(null,"viewBox"));}else{node.setAttributeNS(this.xlinkns,"href","#"+id);}
+node.setAttributeNS(null,"width",size);node.setAttributeNS(null,"height",size);node.setAttributeNS(null,"x",pos.x-offset);node.setAttributeNS(null,"y",pos.y-offset);if(nextSibling){parent.insertBefore(node,nextSibling);}else if(parent){parent.appendChild(node);}}else{node.setAttributeNS(null,"r",style.pointRadius);}
+var rotation=style.rotation;if(node._rotation!==rotation&&pos){node._rotation=rotation;rotation|=0;if(node.nodeName!=="svg"){node.setAttributeNS(null,"transform","rotate("+rotation+" "+pos.x+" "+
+pos.y+")");}else{var metrics=this.symbolMetrics[id]
+node.firstChild.setAttributeNS(null,"transform","rotate("+style.rotation+" "+metrics[1]+" "+metrics[2]+")");}}}
 if(options.isFilled){node.setAttributeNS(null,"fill",style.fillColor);node.setAttributeNS(null,"fill-opacity",style.fillOpacity);}else{node.setAttributeNS(null,"fill","none");}
 if(options.isStroked){node.setAttributeNS(null,"stroke",style.strokeColor);node.setAttributeNS(null,"stroke-opacity",style.strokeOpacity);node.setAttributeNS(null,"stroke-width",style.strokeWidth*widthFactor);node.setAttributeNS(null,"stroke-linecap",style.strokeLinecap);node.setAttributeNS(null,"stroke-linejoin","round");node.setAttributeNS(null,"stroke-dasharray",this.dashStyle(style,widthFactor));}else{node.setAttributeNS(null,"stroke","none");}
 if(style.pointerEvents){node.setAttributeNS(null,"pointer-events",style.pointerEvents);}
 if(style.cursor!=null){node.setAttributeNS(null,"cursor",style.cursor);}
-return node;},dashStyle:function(style,widthFactor){var w=style.strokeWidth*widthFactor;switch(style.strokeDashstyle){case'solid':return'none';case'dot':return[1,4*w].join();case'dash':return[4*w,4*w].join();case'dashdot':return[4*w,4*w,1,4*w].join();case'longdash':return[8*w,4*w].join();case'longdashdot':return[8*w,4*w,1,4*w].join();default:return style.strokeDashstyle.replace(/ /g,",");}},createNode:function(type,id){var node=document.createElementNS(this.xmlns,type);if(id){node.setAttributeNS(null,"id",id);}
+return node;},dashStyle:function(style,widthFactor){var w=style.strokeWidth*widthFactor;var str=style.strokeDashstyle;switch(str){case'solid':return'none';case'dot':return[1,4*w].join();case'dash':return[4*w,4*w].join();case'dashdot':return[4*w,4*w,1,4*w].join();case'longdash':return[8*w,4*w].join();case'longdashdot':return[8*w,4*w,1,4*w].join();default:return OpenLayers.String.trim(str).replace(/\s+/g,",");}},createNode:function(type,id){var node=document.createElementNS(this.xmlns,type);if(id){node.setAttributeNS(null,"id",id);}
 return node;},nodeTypeCompare:function(node,type){return(type==node.nodeName);},createRenderRoot:function(){return this.nodeFactory(this.container.id+"_svgRoot","svg");},createRoot:function(suffix){return this.nodeFactory(this.container.id+suffix,"g");},createDefs:function(){var defs=this.nodeFactory(this.container.id+"_defs","defs");this.rendererRoot.appendChild(defs);return defs;},drawPoint:function(node,geometry){return this.drawCircle(node,geometry,1);},drawCircle:function(node,geometry,radius){var resolution=this.getResolution();var x=(geometry.x/resolution+this.left);var y=(this.top-geometry.y/resolution);if(this.inValidRange(x,y)){node.setAttributeNS(null,"cx",x);node.setAttributeNS(null,"cy",y);node.setAttributeNS(null,"r",radius);return node;}else{return false;}},drawLineString:function(node,geometry){var componentsResult=this.getComponentsString(geometry.components);if(componentsResult.path){node.setAttributeNS(null,"points",componentsResult.path);return(componentsResult.complete?node:null);}else{return false;}},drawLinearRing:function(node,geometry){var componentsResult=this.getComponentsString(geometry.components);if(componentsResult.path){node.setAttributeNS(null,"points",componentsResult.path);return(componentsResult.complete?node:null);}else{return false;}},drawPolygon:function(node,geometry){var d="";var draw=true;var complete=true;var linearRingResult,path;for(var j=0,len=geometry.components.length;j<len;j++){d+=" M";linearRingResult=this.getComponentsString(geometry.components[j].components," ");path=linearRingResult.path;if(path){d+=" "+path;complete=linearRingResult.complete&&complete;}else{draw=false;}}
 d+=" z";if(draw){node.setAttributeNS(null,"d",d);node.setAttributeNS(null,"fill-rule","evenodd");return complete?node:null;}else{return false;}},drawRectangle:function(node,geometry){var resolution=this.getResolution();var x=(geometry.x/resolution+this.left);var y=(this.top-geometry.y/resolution);if(this.inValidRange(x,y)){node.setAttributeNS(null,"x",x);node.setAttributeNS(null,"y",y);node.setAttributeNS(null,"width",geometry.width/resolution);node.setAttributeNS(null,"height",geometry.height/resolution);return node;}else{return false;}},drawSurface:function(node,geometry){var d=null;var draw=true;for(var i=0,len=geometry.components.length;i<len;i++){if((i%3)==0&&(i/3)==0){var component=this.getShortString(geometry.components[i]);if(!component){draw=false;}
 d="M "+component;}else if((i%3)==1){var component=this.getShortString(geometry.components[i]);if(!component){draw=false;}
 d+=" C "+component;}else{var component=this.getShortString(geometry.components[i]);if(!component){draw=false;}
 d+=" "+component;}}
-d+=" Z";if(draw){node.setAttributeNS(null,"d",d);return node;}else{return false;}},drawText:function(featureId,style,location){var resolution=this.getResolution();var x=(location.x/resolution+this.left);var y=(location.y/resolution-this.top);var label=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX,"text");var tspan=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX+"_tspan","tspan");label.setAttributeNS(null,"x",x);label.setAttributeNS(null,"y",-y);label.setAttributeNS(null,"pointer-events","none");if(style.fontColor){label.setAttributeNS(null,"fill",style.fontColor);}
+d+=" Z";if(draw){node.setAttributeNS(null,"d",d);return node;}else{return false;}},drawText:function(featureId,style,location){var resolution=this.getResolution();var x=(location.x/resolution+this.left);var y=(location.y/resolution-this.top);var label=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX,"text");var tspan=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX+"_tspan","tspan");label.setAttributeNS(null,"x",x);label.setAttributeNS(null,"y",-y);if(style.fontColor){label.setAttributeNS(null,"fill",style.fontColor);}
+if(style.fontOpacity){label.setAttributeNS(null,"opacity",style.fontOpacity);}
 if(style.fontFamily){label.setAttributeNS(null,"font-family",style.fontFamily);}
 if(style.fontSize){label.setAttributeNS(null,"font-size",style.fontSize);}
 if(style.fontWeight){label.setAttributeNS(null,"font-weight",style.fontWeight);}
+if(style.labelSelect===true){label.setAttributeNS(null,"pointer-events","visible");label._featureId=featureId;tspan._featureId=featureId;tspan._geometry=location;tspan._geometryClass=location.CLASS_NAME;}else{label.setAttributeNS(null,"pointer-events","none");}
 var align=style.labelAlign||"cm";label.setAttributeNS(null,"text-anchor",OpenLayers.Renderer.SVG.LABEL_ALIGN[align[0]]||"middle");if(this.isGecko){label.setAttributeNS(null,"dominant-baseline",OpenLayers.Renderer.SVG.LABEL_ALIGN[align[1]]||"central");}else{tspan.setAttributeNS(null,"baseline-shift",OpenLayers.Renderer.SVG.LABEL_VSHIFT[align[1]]||"-35%");}
 tspan.textContent=style.label;if(!label.parentNode){label.appendChild(tspan);this.textRoot.appendChild(label);}},getComponentsString:function(components,separator){var renderCmp=[];var complete=true;var len=components.length;var strings=[];var str,component,j;for(var i=0;i<len;i++){component=components[i];renderCmp.push(component);str=this.getShortString(component);if(str){strings.push(str);}else{if(i>0){if(this.getShortString(components[i-1])){strings.push(this.clipLine(components[i],components[i-1]));}}
 if(i<len-1){if(this.getShortString(components[i+1])){strings.push(this.clipLine(components[i],components[i+1]));}}
@@ -489,64 +506,67 @@ return x2+","+y2;},getShortString:function(point){var resolution=this.getResolut
 var id=this.container.id+"-"+graphicName;if(document.getElementById(id)!=null){return id;}
 var symbol=OpenLayers.Renderer.symbol[graphicName];if(!symbol){throw new Error(graphicName+' is not a valid symbol name');return;}
 var symbolNode=this.nodeFactory(id,"symbol");var node=this.nodeFactory(null,"polygon");symbolNode.appendChild(node);var symbolExtent=new OpenLayers.Bounds(Number.MAX_VALUE,Number.MAX_VALUE,0,0);var points="";var x,y;for(var i=0;i<symbol.length;i=i+2){x=symbol[i];y=symbol[i+1];symbolExtent.left=Math.min(symbolExtent.left,x);symbolExtent.bottom=Math.min(symbolExtent.bottom,y);symbolExtent.right=Math.max(symbolExtent.right,x);symbolExtent.top=Math.max(symbolExtent.top,y);points+=" "+x+","+y;}
-node.setAttributeNS(null,"points",points);var width=symbolExtent.getWidth();var height=symbolExtent.getHeight();var viewBox=[symbolExtent.left-width,symbolExtent.bottom-height,width*3,height*3];symbolNode.setAttributeNS(null,"viewBox",viewBox.join(" "));this.symbolSize[id]=Math.max(width,height)*3;this.defs.appendChild(symbolNode);return symbolNode.id;},CLASS_NAME:"OpenLayers.Renderer.SVG"});OpenLayers.Renderer.SVG.LABEL_ALIGN={"l":"start","r":"end","b":"bottom","t":"hanging"};OpenLayers.Renderer.SVG.LABEL_VSHIFT={"t":"-70%","b":"0"};OpenLayers.Renderer.VML=OpenLayers.Class(OpenLayers.Renderer.Elements,{xmlns:"urn:schemas-microsoft-com:vml",symbolCache:{},offset:null,initialize:function(containerID){if(!this.supported()){return;}
+node.setAttributeNS(null,"points",points);var width=symbolExtent.getWidth();var height=symbolExtent.getHeight();var viewBox=[symbolExtent.left-width,symbolExtent.bottom-height,width*3,height*3];symbolNode.setAttributeNS(null,"viewBox",viewBox.join(" "));this.symbolMetrics[id]=[Math.max(width,height),symbolExtent.getCenterLonLat().lon,symbolExtent.getCenterLonLat().lat];this.defs.appendChild(symbolNode);return symbolNode.id;},getFeatureIdFromEvent:function(evt){var featureId=OpenLayers.Renderer.Elements.prototype.getFeatureIdFromEvent.apply(this,arguments);if(this.supportUse===false&&!featureId){var target=evt.target;featureId=target.parentNode&&target!=this.rendererRoot&&target.parentNode._featureId;}
+return featureId;},CLASS_NAME:"OpenLayers.Renderer.SVG"});OpenLayers.Renderer.SVG.LABEL_ALIGN={"l":"start","r":"end","b":"bottom","t":"hanging"};OpenLayers.Renderer.SVG.LABEL_VSHIFT={"t":"-70%","b":"0"};OpenLayers.Renderer.VML=OpenLayers.Class(OpenLayers.Renderer.Elements,{xmlns:"urn:schemas-microsoft-com:vml",symbolCache:{},offset:null,initialize:function(containerID){if(!this.supported()){return;}
 if(!document.namespaces.olv){document.namespaces.add("olv",this.xmlns);var style=document.createStyleSheet();var shapes=['shape','rect','oval','fill','stroke','imagedata','group','textbox'];for(var i=0,len=shapes.length;i<len;i++){style.addRule('olv\\:'+shapes[i],"behavior: url(#default#VML); "+"position: absolute; display: inline-block;");}}
-OpenLayers.Renderer.Elements.prototype.initialize.apply(this,arguments);this.offset={x:0,y:0};},destroy:function(){OpenLayers.Renderer.Elements.prototype.destroy.apply(this,arguments);},supported:function(){return!!(document.namespaces);},setExtent:function(extent,resolutionChanged){OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,arguments);var resolution=this.getResolution();var left=extent.left/resolution;var top=extent.top/resolution-this.size.h;if(resolutionChanged){this.offset={x:left,y:top};left=0;top=0;}else{left=left-this.offset.x;top=top-this.offset.y;}
+OpenLayers.Renderer.Elements.prototype.initialize.apply(this,arguments);},destroy:function(){OpenLayers.Renderer.Elements.prototype.destroy.apply(this,arguments);},supported:function(){return!!(document.namespaces);},setExtent:function(extent,resolutionChanged){OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,arguments);var resolution=this.getResolution();var left=(extent.left/resolution)|0;var top=(extent.top/resolution-this.size.h)|0;if(resolutionChanged||!this.offset){this.offset={x:left,y:top};left=0;top=0;}else{left=left-this.offset.x;top=top-this.offset.y;}
 var org=left+" "+top;this.root.coordorigin=org;var roots=[this.root,this.vectorRoot,this.textRoot];var root;for(var i=0,len=roots.length;i<len;++i){root=roots[i];var size=this.size.w+" "+this.size.h;root.coordsize=size;}
 this.root.style.flip="y";return true;},setSize:function(size){OpenLayers.Renderer.prototype.setSize.apply(this,arguments);var roots=[this.rendererRoot,this.root,this.vectorRoot,this.textRoot];var w=this.size.w+"px";var h=this.size.h+"px";var root;for(var i=0,len=roots.length;i<len;++i){root=roots[i];root.style.width=w;root.style.height=h;}},getNodeType:function(geometry,style){var nodeType=null;switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":if(style.externalGraphic){nodeType="olv:rect";}else if(this.isComplexSymbol(style.graphicName)){nodeType="olv:shape";}else{nodeType="olv:oval";}
 break;case"OpenLayers.Geometry.Rectangle":nodeType="olv:rect";break;case"OpenLayers.Geometry.LineString":case"OpenLayers.Geometry.LinearRing":case"OpenLayers.Geometry.Polygon":case"OpenLayers.Geometry.Curve":case"OpenLayers.Geometry.Surface":nodeType="olv:shape";break;default:break;}
-return nodeType;},setStyle:function(node,style,options,geometry){style=style||node._style;options=options||node._options;var widthFactor=1;if(node._geometryClass=="OpenLayers.Geometry.Point"){if(style.externalGraphic){if(style.graphicTitle){node.title=style.graphicTitle;}
-var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var resolution=this.getResolution();var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);node.style.left=((geometry.x/resolution-this.offset.x)+xOffset).toFixed();node.style.top=((geometry.y/resolution-this.offset.y)-(yOffset+height)).toFixed();node.style.width=width+"px";node.style.height=height+"px";node.style.flip="y";style.fillColor="none";options.isStroked=false;}else if(this.isComplexSymbol(style.graphicName)){var cache=this.importSymbol(style.graphicName);node.path=cache.path;node.coordorigin=cache.left+","+cache.bottom;var size=cache.size;node.coordsize=size+","+size;this.drawCircle(node,geometry,style.pointRadius);node.style.flip="y";}else{this.drawCircle(node,geometry,style.pointRadius);}}
-if(options.isFilled){node.fillcolor=style.fillColor;}else{node.filled="false";}
+return nodeType;},setStyle:function(node,style,options,geometry){style=style||node._style;options=options||node._options;var widthFactor=1;var fillColor=style.fillColor;if(node._geometryClass==="OpenLayers.Geometry.Point"){if(style.externalGraphic){if(style.graphicTitle){node.title=style.graphicTitle;}
+var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var resolution=this.getResolution();var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);node.style.left=(((geometry.x/resolution-this.offset.x)+xOffset)|0)+"px";node.style.top=(((geometry.y/resolution-this.offset.y)-(yOffset+height))|0)+"px";node.style.width=width+"px";node.style.height=height+"px";node.style.flip="y";fillColor="none";options.isStroked=false;}else if(this.isComplexSymbol(style.graphicName)){var cache=this.importSymbol(style.graphicName);node.path=cache.path;node.coordorigin=cache.left+","+cache.bottom;var size=cache.size;node.coordsize=size+","+size;this.drawCircle(node,geometry,style.pointRadius);node.style.flip="y";}else{this.drawCircle(node,geometry,style.pointRadius);}}
+if(options.isFilled){node.fillcolor=fillColor;}else{node.filled="false";}
 var fills=node.getElementsByTagName("fill");var fill=(fills.length==0)?null:fills[0];if(!options.isFilled){if(fill){node.removeChild(fill);}}else{if(!fill){fill=this.createNode('olv:fill',node.id+"_fill");}
-fill.opacity=style.fillOpacity;if(node._geometryClass=="OpenLayers.Geometry.Point"&&style.externalGraphic){if(style.graphicOpacity){fill.opacity=style.graphicOpacity;}
+fill.opacity=style.fillOpacity;if(node._geometryClass==="OpenLayers.Geometry.Point"&&style.externalGraphic){if(style.graphicOpacity){fill.opacity=style.graphicOpacity;}
 fill.src=style.externalGraphic;fill.type="frame";if(!(style.graphicWidth&&style.graphicHeight)){fill.aspect="atmost";}}
 if(fill.parentNode!=node){node.appendChild(fill);}}
-if(typeof style.rotation!="undefined"){if(style.externalGraphic){this.graphicRotate(node,xOffset,yOffset);fill.opacity=0;}else{node.style.rotation=style.rotation;}}
+var rotation=style.rotation;if(rotation!==node._rotation){node._rotation=rotation;if(style.externalGraphic){this.graphicRotate(node,xOffset,yOffset,style);fill.opacity=0;}else if(node._geometryClass==="OpenLayers.Geometry.Point"){node.style.rotation=rotation||0;}}
 if(options.isStroked){node.strokecolor=style.strokeColor;node.strokeweight=style.strokeWidth+"px";}else{node.stroked=false;}
 var strokes=node.getElementsByTagName("stroke");var stroke=(strokes.length==0)?null:strokes[0];if(!options.isStroked){if(stroke){node.removeChild(stroke);}}else{if(!stroke){stroke=this.createNode('olv:stroke',node.id+"_stroke");node.appendChild(stroke);}
 stroke.opacity=style.strokeOpacity;stroke.endcap=!style.strokeLinecap||style.strokeLinecap=='butt'?'flat':style.strokeLinecap;stroke.dashstyle=this.dashStyle(style);}
 if(style.cursor!="inherit"&&style.cursor!=null){node.style.cursor=style.cursor;}
-return node;},graphicRotate:function(node,xOffset,yOffset){var style=style||node._style;var options=node._options;var aspectRatio,size;if(!(style.graphicWidth&&style.graphicHeight)){var img=new Image();img.onreadystatechange=OpenLayers.Function.bind(function(){if(img.readyState=="complete"||img.readyState=="interactive"){aspectRatio=img.width/img.height;size=Math.max(style.pointRadius*2,style.graphicWidth||0,style.graphicHeight||0);xOffset=xOffset*aspectRatio;style.graphicWidth=size*aspectRatio;style.graphicHeight=size;this.graphicRotate(node,xOffset,yOffset);}},this);img.src=style.externalGraphic;return;}else{size=Math.max(style.graphicWidth,style.graphicHeight);aspectRatio=style.graphicWidth/style.graphicHeight;}
+return node;},graphicRotate:function(node,xOffset,yOffset,style){var style=style||node._style;var options=node._options;var rotation=style.rotation||0;var aspectRatio,size;if(!(style.graphicWidth&&style.graphicHeight)){var img=new Image();img.onreadystatechange=OpenLayers.Function.bind(function(){if(img.readyState=="complete"||img.readyState=="interactive"){aspectRatio=img.width/img.height;size=Math.max(style.pointRadius*2,style.graphicWidth||0,style.graphicHeight||0);xOffset=xOffset*aspectRatio;style.graphicWidth=size*aspectRatio;style.graphicHeight=size;this.graphicRotate(node,xOffset,yOffset,style);}},this);img.src=style.externalGraphic;return;}else{size=Math.max(style.graphicWidth,style.graphicHeight);aspectRatio=style.graphicWidth/style.graphicHeight;}
 var width=Math.round(style.graphicWidth||size*aspectRatio);var height=Math.round(style.graphicHeight||size);node.style.width=width+"px";node.style.height=height+"px";var image=document.getElementById(node.id+"_image");if(!image){image=this.createNode("olv:imagedata",node.id+"_image");node.appendChild(image);}
-image.style.width=width+"px";image.style.height=height+"px";image.src=style.externalGraphic;image.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader("+"src='', sizingMethod='scale')";var rotation=style.rotation*Math.PI/180;var sintheta=Math.sin(rotation);var costheta=Math.cos(rotation);var filter="progid:DXImageTransform.Microsoft.Matrix(M11="+costheta+",M12="+(-sintheta)+",M21="+sintheta+",M22="+costheta+",SizingMethod='auto expand')\n";var opacity=style.graphicOpacity||style.fillOpacity;if(opacity&&opacity!=1){filter+="progid:DXImageTransform.Microsoft.BasicImage(opacity="+
+image.style.width=width+"px";image.style.height=height+"px";image.src=style.externalGraphic;image.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader("+"src='', sizingMethod='scale')";var rot=rotation*Math.PI/180;var sintheta=Math.sin(rot);var costheta=Math.cos(rot);var filter="progid:DXImageTransform.Microsoft.Matrix(M11="+costheta+",M12="+(-sintheta)+",M21="+sintheta+",M22="+costheta+",SizingMethod='auto expand')\n";var opacity=style.graphicOpacity||style.fillOpacity;if(opacity&&opacity!=1){filter+="progid:DXImageTransform.Microsoft.BasicImage(opacity="+
 opacity+")\n";}
-node.style.filter=filter;var centerPoint=new OpenLayers.Geometry.Point(-xOffset,-yOffset);var imgBox=new OpenLayers.Bounds(0,0,width,height).toGeometry();imgBox.rotate(style.rotation,centerPoint);var imgBounds=imgBox.getBounds();node.style.left=Math.round(parseInt(node.style.left)+imgBounds.left)+"px";node.style.top=Math.round(parseInt(node.style.top)-imgBounds.bottom)+"px";},postDraw:function(node){var fillColor=node._style.fillColor;var strokeColor=node._style.strokeColor;if(fillColor=="none"&&node.fillcolor!=fillColor){node.fillcolor=fillColor;}
-if(strokeColor=="none"&&node.strokecolor!=strokeColor){node.strokecolor=strokeColor;}},setNodeDimension:function(node,geometry){var bbox=geometry.getBounds();if(bbox){var resolution=this.getResolution();var scaledBox=new OpenLayers.Bounds((bbox.left/resolution-this.offset.x).toFixed(),(bbox.bottom/resolution-this.offset.y).toFixed(),(bbox.right/resolution-this.offset.x).toFixed(),(bbox.top/resolution-this.offset.y).toFixed());node.style.left=scaledBox.left+"px";node.style.top=scaledBox.top+"px";node.style.width=scaledBox.getWidth()+"px";node.style.height=scaledBox.getHeight()+"px";node.coordorigin=scaledBox.left+" "+scaledBox.top;node.coordsize=scaledBox.getWidth()+" "+scaledBox.getHeight();}},dashStyle:function(style){var dash=style.strokeDashstyle;switch(dash){case'solid':case'dot':case'dash':case'dashdot':case'longdash':case'longdashdot':return dash;default:var parts=dash.split(/[ ,]/);if(parts.length==2){if(1*parts[0]>=2*parts[1]){return"longdash";}
+node.style.filter=filter;var centerPoint=new OpenLayers.Geometry.Point(-xOffset,-yOffset);var imgBox=new OpenLayers.Bounds(0,0,width,height).toGeometry();imgBox.rotate(style.rotation,centerPoint);var imgBounds=imgBox.getBounds();node.style.left=Math.round(parseInt(node.style.left)+imgBounds.left)+"px";node.style.top=Math.round(parseInt(node.style.top)-imgBounds.bottom)+"px";},postDraw:function(node){node.style.visibility="visible";var fillColor=node._style.fillColor;var strokeColor=node._style.strokeColor;if(fillColor=="none"&&node.fillcolor!=fillColor){node.fillcolor=fillColor;}
+if(strokeColor=="none"&&node.strokecolor!=strokeColor){node.strokecolor=strokeColor;}},setNodeDimension:function(node,geometry){var bbox=geometry.getBounds();if(bbox){var resolution=this.getResolution();var scaledBox=new OpenLayers.Bounds((bbox.left/resolution-this.offset.x)|0,(bbox.bottom/resolution-this.offset.y)|0,(bbox.right/resolution-this.offset.x)|0,(bbox.top/resolution-this.offset.y)|0);node.style.left=scaledBox.left+"px";node.style.top=scaledBox.top+"px";node.style.width=scaledBox.getWidth()+"px";node.style.height=scaledBox.getHeight()+"px";node.coordorigin=scaledBox.left+" "+scaledBox.top;node.coordsize=scaledBox.getWidth()+" "+scaledBox.getHeight();}},dashStyle:function(style){var dash=style.strokeDashstyle;switch(dash){case'solid':case'dot':case'dash':case'dashdot':case'longdash':case'longdashdot':return dash;default:var parts=dash.split(/[ ,]/);if(parts.length==2){if(1*parts[0]>=2*parts[1]){return"longdash";}
 return(parts[0]==1||parts[1]==1)?"dot":"dash";}else if(parts.length==4){return(1*parts[0]>=2*parts[1])?"longdashdot":"dashdot";}
 return"solid";}},createNode:function(type,id){var node=document.createElement(type);if(id){node.id=id;}
-node.unselectable='on';node.onselectstart=function(){return(false);};return node;},nodeTypeCompare:function(node,type){var subType=type;var splitIndex=subType.indexOf(":");if(splitIndex!=-1){subType=subType.substr(splitIndex+1);}
+node.unselectable='on';node.onselectstart=OpenLayers.Function.False;return node;},nodeTypeCompare:function(node,type){var subType=type;var splitIndex=subType.indexOf(":");if(splitIndex!=-1){subType=subType.substr(splitIndex+1);}
 var nodeName=node.nodeName;splitIndex=nodeName.indexOf(":");if(splitIndex!=-1){nodeName=nodeName.substr(splitIndex+1);}
-return(subType==nodeName);},createRenderRoot:function(){return this.nodeFactory(this.container.id+"_vmlRoot","div");},createRoot:function(suffix){return this.nodeFactory(this.container.id+suffix,"olv:group");},drawPoint:function(node,geometry){return this.drawCircle(node,geometry,1);},drawCircle:function(node,geometry,radius){if(!isNaN(geometry.x)&&!isNaN(geometry.y)){var resolution=this.getResolution();node.style.left=((geometry.x/resolution-this.offset.x).toFixed()-radius)+"px";node.style.top=((geometry.y/resolution-this.offset.y).toFixed()-radius)+"px";var diameter=radius*2;node.style.width=diameter+"px";node.style.height=diameter+"px";return node;}
-return false;},drawLineString:function(node,geometry){return this.drawLine(node,geometry,false);},drawLinearRing:function(node,geometry){return this.drawLine(node,geometry,true);},drawLine:function(node,geometry,closeLine){this.setNodeDimension(node,geometry);var resolution=this.getResolution();var numComponents=geometry.components.length;var parts=new Array(numComponents);var comp,x,y;for(var i=0;i<numComponents;i++){comp=geometry.components[i];x=(comp.x/resolution-this.offset.x);y=(comp.y/resolution-this.offset.y);parts[i]=" "+x.toFixed()+","+y.toFixed()+" l ";}
-var end=(closeLine)?" x e":" e";node.path="m"+parts.join("")+end;return node;},drawPolygon:function(node,geometry){this.setNodeDimension(node,geometry);var resolution=this.getResolution();var path=[];var linearRing,i,j,len,ilen,comp,x,y;for(j=0,len=geometry.components.length;j<len;j++){linearRing=geometry.components[j];path.push("m");for(i=0,ilen=linearRing.components.length;i<ilen;i++){comp=linearRing.components[i];x=comp.x/resolution-this.offset.x;y=comp.y/resolution-this.offset.y;path.push(" "+x.toFixed()+","+y.toFixed());if(i==0){path.push(" l");}}
+return(subType==nodeName);},createRenderRoot:function(){return this.nodeFactory(this.container.id+"_vmlRoot","div");},createRoot:function(suffix){return this.nodeFactory(this.container.id+suffix,"olv:group");},drawPoint:function(node,geometry){return this.drawCircle(node,geometry,1);},drawCircle:function(node,geometry,radius){if(!isNaN(geometry.x)&&!isNaN(geometry.y)){var resolution=this.getResolution();node.style.left=(((geometry.x/resolution-this.offset.x)|0)-radius)+"px";node.style.top=(((geometry.y/resolution-this.offset.y)|0)-radius)+"px";var diameter=radius*2;node.style.width=diameter+"px";node.style.height=diameter+"px";return node;}
+return false;},drawLineString:function(node,geometry){return this.drawLine(node,geometry,false);},drawLinearRing:function(node,geometry){return this.drawLine(node,geometry,true);},drawLine:function(node,geometry,closeLine){this.setNodeDimension(node,geometry);var resolution=this.getResolution();var numComponents=geometry.components.length;var parts=new Array(numComponents);var comp,x,y;for(var i=0;i<numComponents;i++){comp=geometry.components[i];x=(comp.x/resolution-this.offset.x)|0;y=(comp.y/resolution-this.offset.y)|0;parts[i]=" "+x+","+y+" l ";}
+var end=(closeLine)?" x e":" e";node.path="m"+parts.join("")+end;return node;},drawPolygon:function(node,geometry){this.setNodeDimension(node,geometry);var resolution=this.getResolution();var path=[];var linearRing,i,j,len,ilen,comp,x,y;for(j=0,len=geometry.components.length;j<len;j++){linearRing=geometry.components[j];path.push("m");for(i=0,ilen=linearRing.components.length;i<ilen;i++){comp=linearRing.components[i];x=(comp.x/resolution-this.offset.x)|0;y=(comp.y/resolution-this.offset.y)|0;path.push(" "+x+","+y);if(i==0){path.push(" l");}}
 path.push(" x ");}
-path.push("e");node.path=path.join("");return node;},drawRectangle:function(node,geometry){var resolution=this.getResolution();node.style.left=(geometry.x/resolution-this.offset.x)+"px";node.style.top=(geometry.y/resolution-this.offset.y)+"px";node.style.width=geometry.width/resolution+"px";node.style.height=geometry.height/resolution+"px";return node;},drawText:function(featureId,style,location){var label=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX,"olv:rect");var textbox=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX+"_textbox","olv:textbox");var resolution=this.getResolution();label.style.left=(location.x/resolution-this.offset.x).toFixed()+"px";label.style.top=(location.y/resolution-this.offset.y).toFixed()+"px";label.style.flip="y";textbox.innerText=style.label;if(style.fillColor){textbox.style.color=style.fontColor;}
+path.push("e");node.path=path.join("");return node;},drawRectangle:function(node,geometry){var resolution=this.getResolution();node.style.left=((geometry.x/resolution-this.offset.x)|0)+"px";node.style.top=((geometry.y/resolution-this.offset.y)|0)+"px";node.style.width=((geometry.width/resolution)|0)+"px";node.style.height=((geometry.height/resolution)|0)+"px";return node;},drawText:function(featureId,style,location){var label=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX,"olv:rect");var textbox=this.nodeFactory(featureId+this.LABEL_ID_SUFFIX+"_textbox","olv:textbox");var resolution=this.getResolution();label.style.left=((location.x/resolution-this.offset.x)|0)+"px";label.style.top=((location.y/resolution-this.offset.y)|0)+"px";label.style.flip="y";textbox.innerText=style.label;if(style.fontColor){textbox.style.color=style.fontColor;}
+if(style.fontOpacity){textbox.style.filter='alpha(opacity='+(style.fontOpacity*100)+')';}
 if(style.fontFamily){textbox.style.fontFamily=style.fontFamily;}
 if(style.fontSize){textbox.style.fontSize=style.fontSize;}
 if(style.fontWeight){textbox.style.fontWeight=style.fontWeight;}
+if(style.labelSelect===true){label._featureId=featureId;textbox._featureId=featureId;textbox._geometry=location;textbox._geometryClass=location.CLASS_NAME;}
 textbox.style.whiteSpace="nowrap";textbox.inset="1px,0px,0px,0px";if(!label.parentNode){label.appendChild(textbox);this.textRoot.appendChild(label);}
-var align=style.labelAlign||"cm";var xshift=textbox.clientWidth*(OpenLayers.Renderer.VML.LABEL_SHIFT[align.substr(0,1)]);var yshift=textbox.clientHeight*(OpenLayers.Renderer.VML.LABEL_SHIFT[align.substr(1,1)]);label.style.left=parseInt(label.style.left)-xshift-1+"px";label.style.top=parseInt(label.style.top)+yshift+"px";},drawSurface:function(node,geometry){this.setNodeDimension(node,geometry);var resolution=this.getResolution();var path=[];var comp,x,y;for(var i=0,len=geometry.components.length;i<len;i++){comp=geometry.components[i];x=comp.x/resolution-this.offset.x;y=comp.y/resolution-this.offset.y;if((i%3)==0&&(i/3)==0){path.push("m");}else if((i%3)==1){path.push(" c");}
+var align=style.labelAlign||"cm";var xshift=textbox.clientWidth*(OpenLayers.Renderer.VML.LABEL_SHIFT[align[0]||"c"]);var yshift=textbox.clientHeight*(OpenLayers.Renderer.VML.LABEL_SHIFT[align[1]||"m"]);label.style.left=parseInt(label.style.left)-xshift-1+"px";label.style.top=parseInt(label.style.top)+yshift+"px";},drawSurface:function(node,geometry){this.setNodeDimension(node,geometry);var resolution=this.getResolution();var path=[];var comp,x,y;for(var i=0,len=geometry.components.length;i<len;i++){comp=geometry.components[i];x=(comp.x/resolution-this.offset.x)|0;y=(comp.y/resolution-this.offset.y)|0;if((i%3)==0&&(i/3)==0){path.push("m");}else if((i%3)==1){path.push(" c");}
 path.push(" "+x+","+y);}
 path.push(" x e");node.path=path.join("");return node;},moveRoot:function(renderer){var layer=this.map.getLayer(renderer.container.id);if(layer instanceof OpenLayers.Layer.Vector.RootContainer){layer=this.map.getLayer(this.container.id);}
 layer&&layer.renderer.clear();OpenLayers.Renderer.Elements.prototype.moveRoot.apply(this,arguments);layer&&layer.redraw();},importSymbol:function(graphicName){var id=this.container.id+"-"+graphicName;var cache=this.symbolCache[id];if(cache){return cache;}
 var symbol=OpenLayers.Renderer.symbol[graphicName];if(!symbol){throw new Error(graphicName+' is not a valid symbol name');return;}
-var symbolExtent=new OpenLayers.Bounds(Number.MAX_VALUE,Number.MAX_VALUE,0,0);var pathitems=["m"];for(var i=0;i<symbol.length;i=i+2){x=symbol[i];y=symbol[i+1];symbolExtent.left=Math.min(symbolExtent.left,x);symbolExtent.bottom=Math.min(symbolExtent.bottom,y);symbolExtent.right=Math.max(symbolExtent.right,x);symbolExtent.top=Math.max(symbolExtent.top,y);pathitems.push(x);pathitems.push(y);if(i==0){pathitems.push("l");}}
-pathitems.push("x e");var path=pathitems.join(" ");var diff=(symbolExtent.getWidth()-symbolExtent.getHeight())/2;if(diff>0){symbolExtent.bottom=symbolExtent.bottom-diff;symbolExtent.top=symbolExtent.top+diff;}else{symbolExtent.left=symbolExtent.left-diff;symbolExtent.right=symbolExtent.right+diff;}
+var symbolExtent=new OpenLayers.Bounds(Number.MAX_VALUE,Number.MAX_VALUE,0,0);var pathitems=["m"];for(var i=0;i<symbol.length;i=i+2){var x=symbol[i];var y=symbol[i+1];symbolExtent.left=Math.min(symbolExtent.left,x);symbolExtent.bottom=Math.min(symbolExtent.bottom,y);symbolExtent.right=Math.max(symbolExtent.right,x);symbolExtent.top=Math.max(symbolExtent.top,y);pathitems.push(x);pathitems.push(y);if(i==0){pathitems.push("l");}}
+pathitems.push("x e");var path=pathitems.join(" ");var diff=(symbolExtent.getWidth()-symbolExtent.getHeight())/2;if(diff>0){symbolExtent.bottom=symbolExtent.bottom-diff;symbolExtent.top=symbolExtent.top+diff;}else{symbolExtent.left=symbolExtent.left+diff;symbolExtent.right=symbolExtent.right-diff;}
 cache={path:path,size:symbolExtent.getWidth(),left:symbolExtent.left,bottom:symbolExtent.bottom};this.symbolCache[id]=cache;return cache;},CLASS_NAME:"OpenLayers.Renderer.VML"});OpenLayers.Renderer.VML.LABEL_SHIFT={"l":0,"c":.5,"r":1,"t":0,"m":.5,"b":1};OpenLayers.Tile=OpenLayers.Class({EVENT_TYPES:["loadstart","loadend","reload","unload"],events:null,id:null,layer:null,url:null,bounds:null,size:null,position:null,isLoading:false,initialize:function(layer,position,bounds,url,size){this.layer=layer;this.position=position.clone();this.bounds=bounds.clone();this.url=url;this.size=size.clone();this.id=OpenLayers.Util.createUniqueID("Tile_");this.events=new OpenLayers.Events(this,null,this.EVENT_TYPES);},unload:function(){if(this.isLoading){this.isLoading=false;this.events.triggerEvent("unload");}},destroy:function(){this.layer=null;this.bounds=null;this.size=null;this.position=null;this.events.destroy();this.events=null;},clone:function(obj){if(obj==null){obj=new OpenLayers.Tile(this.layer,this.position,this.bounds,this.url,this.size);}
 OpenLayers.Util.applyDefaults(obj,this);return obj;},draw:function(){var maxExtent=this.layer.maxExtent;var withinMaxExtent=(maxExtent&&this.bounds.intersectsBounds(maxExtent,false));this.shouldDraw=(withinMaxExtent||this.layer.displayOutsideMaxExtent);this.clear();return this.shouldDraw;},moveTo:function(bounds,position,redraw){if(redraw==null){redraw=true;}
 this.bounds=bounds.clone();this.position=position.clone();if(redraw){this.draw();}},clear:function(){},getBoundsFromBaseLayer:function(position){var msg=OpenLayers.i18n('reprojectDeprecated',{'layerName':this.layer.name});OpenLayers.Console.warn(msg);var topLeft=this.layer.map.getLonLatFromLayerPx(position);var bottomRightPx=position.clone();bottomRightPx.x+=this.size.w;bottomRightPx.y+=this.size.h;var bottomRight=this.layer.map.getLonLatFromLayerPx(bottomRightPx);if(topLeft.lon>bottomRight.lon){if(topLeft.lon<0){topLeft.lon=-180-(topLeft.lon+180);}else{bottomRight.lon=180+bottomRight.lon+180;}}
-var bounds=new OpenLayers.Bounds(topLeft.lon,bottomRight.lat,bottomRight.lon,topLeft.lat);return bounds;},showTile:function(){if(this.shouldDraw){this.show();}},show:function(){},hide:function(){},CLASS_NAME:"OpenLayers.Tile"});OpenLayers.Control.PanZoomBar=OpenLayers.Class(OpenLayers.Control.PanZoom,{zoomStopWidth:18,zoomStopHeight:11,slider:null,sliderEvents:null,zoomBarDiv:null,divEvents:null,zoomWorldIcon:false,initialize:function(){OpenLayers.Control.PanZoom.prototype.initialize.apply(this,arguments);},destroy:function(){this._removeZoomBar();this.map.events.un({"changebaselayer":this.redraw,scope:this});OpenLayers.Control.PanZoom.prototype.destroy.apply(this,arguments);},setMap:function(map){OpenLayers.Control.PanZoom.prototype.setMap.apply(this,arguments);this.map.events.register("changebaselayer",this,this.redraw);},redraw:function(){if(this.div!=null){this.removeButtons();this._removeZoomBar();}
+var bounds=new OpenLayers.Bounds(topLeft.lon,bottomRight.lat,bottomRight.lon,topLeft.lat);return bounds;},showTile:function(){if(this.shouldDraw){this.show();}},show:function(){},hide:function(){},CLASS_NAME:"OpenLayers.Tile"});OpenLayers.Control.PanZoomBar=OpenLayers.Class(OpenLayers.Control.PanZoom,{zoomStopWidth:18,zoomStopHeight:11,slider:null,sliderEvents:null,zoombarDiv:null,divEvents:null,zoomWorldIcon:false,forceFixedZoomLevel:false,mouseDragStart:null,zoomStart:null,initialize:function(){OpenLayers.Control.PanZoom.prototype.initialize.apply(this,arguments);},destroy:function(){this._removeZoomBar();this.map.events.un({"changebaselayer":this.redraw,scope:this});OpenLayers.Control.PanZoom.prototype.destroy.apply(this,arguments);delete this.mouseDragStart;delete this.zoomStart;},setMap:function(map){OpenLayers.Control.PanZoom.prototype.setMap.apply(this,arguments);this.map.events.register("changebaselayer",this,this.redraw);},redraw:function(){if(this.div!=null){this.removeButtons();this._removeZoomBar();}
 this.draw();},draw:function(px){OpenLayers.Control.prototype.draw.apply(this,arguments);px=this.position.clone();this.buttons=[];var sz=new OpenLayers.Size(18,18);var centered=new OpenLayers.Pixel(px.x+sz.w/2,px.y);var wposition=sz.w;if(this.zoomWorldIcon){centered=new OpenLayers.Pixel(px.x+sz.w,px.y);}
 this._addButton("panup","north-mini.png",centered,sz);px.y=centered.y+sz.h;this._addButton("panleft","west-mini.png",px,sz);if(this.zoomWorldIcon){this._addButton("zoomworld","zoom-world-mini.png",px.add(sz.w,0),sz);wposition*=2;}
 this._addButton("panright","east-mini.png",px.add(wposition,0),sz);this._addButton("pandown","south-mini.png",centered.add(0,sz.h*2),sz);this._addButton("zoomin","zoom-plus-mini.png",centered.add(0,sz.h*3+5),sz);centered=this._addZoomBar(centered.add(0,sz.h*4+5));this._addButton("zoomout","zoom-minus-mini.png",centered,sz);return this.div;},_addZoomBar:function(centered){var imgLocation=OpenLayers.Util.getImagesLocation();var id=this.id+"_"+this.map.id;var zoomsToEnd=this.map.getNumZoomLevels()-1-this.map.getZoom();var slider=OpenLayers.Util.createAlphaImageDiv(id,centered.add(-1,zoomsToEnd*this.zoomStopHeight),new OpenLayers.Size(20,9),imgLocation+"slider.png","absolute");this.slider=slider;this.sliderEvents=new OpenLayers.Events(this,slider,null,true,{includeXY:true});this.sliderEvents.on({"mousedown":this.zoomBarDown,"mousemove":this.zoomBarDrag,"mouseup":this.zoomBarUp,"dblclick":this.doubleClick,"click":this.doubleClick});var sz=new OpenLayers.Size();sz.h=this.zoomStopHeight*this.map.getNumZoomLevels();sz.w=this.zoomStopWidth;var div=null;if(OpenLayers.Util.alphaHack()){var id=this.id+"_"+this.map.id;div=OpenLayers.Util.createAlphaImageDiv(id,centered,new OpenLayers.Size(sz.w,this.zoomStopHeight),imgLocation+"zoombar.png","absolute",null,"crop");div.style.height=sz.h+"px";}else{div=OpenLayers.Util.createDiv('OpenLayers_Control_PanZoomBar_Zoombar'+this.map.id,centered,sz,imgLocation+"zoombar.png");}
 this.zoombarDiv=div;this.divEvents=new OpenLayers.Events(this,div,null,true,{includeXY:true});this.divEvents.on({"mousedown":this.divClick,"mousemove":this.passEventToSlider,"dblclick":this.doubleClick,"click":this.doubleClick});this.div.appendChild(div);this.startTop=parseInt(div.style.top);this.div.appendChild(slider);this.map.events.register("zoomend",this,this.moveZoomBar);centered=centered.add(0,this.zoomStopHeight*this.map.getNumZoomLevels());return centered;},_removeZoomBar:function(){this.sliderEvents.un({"mousedown":this.zoomBarDown,"mousemove":this.zoomBarDrag,"mouseup":this.zoomBarUp,"dblclick":this.doubleClick,"click":this.doubleClick});this.sliderEvents.destroy();this.divEvents.un({"mousedown":this.divClick,"mousemove":this.passEventToSlider,"dblclick":this.doubleClick,"click":this.doubleClick});this.divEvents.destroy();this.div.removeChild(this.zoombarDiv);this.zoombarDiv=null;this.div.removeChild(this.slider);this.slider=null;this.map.events.unregister("zoomend",this,this.moveZoomBar);},passEventToSlider:function(evt){this.sliderEvents.handleBrowserEvent(evt);},divClick:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;}
-var y=evt.xy.y;var top=OpenLayers.Util.pagePosition(evt.object)[1];var levels=(y-top)/this.zoomStopHeight;if(!this.map.fractionalZoom){levels=Math.floor(levels);}
+var y=evt.xy.y;var top=OpenLayers.Util.pagePosition(evt.object)[1];var levels=(y-top)/this.zoomStopHeight;if(this.forceFixedZoomLevel||!this.map.fractionalZoom){levels=Math.floor(levels);}
 var zoom=(this.map.getNumZoomLevels()-1)-levels;zoom=Math.min(Math.max(zoom,0),this.map.getNumZoomLevels()-1);this.map.zoomTo(zoom);OpenLayers.Event.stop(evt);},zoomBarDown:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;}
 this.map.events.on({"mousemove":this.passEventToSlider,"mouseup":this.passEventToSlider,scope:this});this.mouseDragStart=evt.xy.clone();this.zoomStart=evt.xy.clone();this.div.style.cursor="move";this.zoombarDiv.offsets=null;OpenLayers.Event.stop(evt);},zoomBarDrag:function(evt){if(this.mouseDragStart!=null){var deltaY=this.mouseDragStart.y-evt.xy.y;var offsets=OpenLayers.Util.pagePosition(this.zoombarDiv);if((evt.clientY-offsets[1])>0&&(evt.clientY-offsets[1])<parseInt(this.zoombarDiv.style.height)-2){var newTop=parseInt(this.slider.style.top)-deltaY;this.slider.style.top=newTop+"px";this.mouseDragStart=evt.xy.clone();}
 OpenLayers.Event.stop(evt);}},zoomBarUp:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;}
-if(this.zoomStart){this.div.style.cursor="";this.map.events.un({"mouseup":this.passEventToSlider,"mousemove":this.passEventToSlider,scope:this});var deltaY=this.zoomStart.y-evt.xy.y;var zoomLevel=this.map.zoom;if(this.map.fractionalZoom){zoomLevel+=deltaY/this.zoomStopHeight;zoomLevel=Math.min(Math.max(zoomLevel,0),this.map.getNumZoomLevels()-1);}else{zoomLevel+=Math.round(deltaY/this.zoomStopHeight);}
-this.map.zoomTo(zoomLevel);this.moveZoomBar();this.mouseDragStart=null;OpenLayers.Event.stop(evt);}},moveZoomBar:function(){var newTop=((this.map.getNumZoomLevels()-1)-this.map.getZoom())*this.zoomStopHeight+this.startTop+1;this.slider.style.top=newTop+"px";},CLASS_NAME:"OpenLayers.Control.PanZoomBar"});OpenLayers.Format.XML=OpenLayers.Class(OpenLayers.Format,{namespaces:null,namespaceAlias:null,defaultPrefix:null,readers:{},writers:{},xmldom:null,initialize:function(options){if(window.ActiveXObject){this.xmldom=new ActiveXObject("Microsoft.XMLDOM");}
+if(this.mouseDragStart){this.div.style.cursor="";this.map.events.un({"mouseup":this.passEventToSlider,"mousemove":this.passEventToSlider,scope:this});var deltaY=this.zoomStart.y-evt.xy.y;var zoomLevel=this.map.zoom;if(!this.forceFixedZoomLevel&&this.map.fractionalZoom){zoomLevel+=deltaY/this.zoomStopHeight;zoomLevel=Math.min(Math.max(zoomLevel,0),this.map.getNumZoomLevels()-1);}else{zoomLevel+=Math.round(deltaY/this.zoomStopHeight);}
+this.map.zoomTo(zoomLevel);this.mouseDragStart=null;this.zoomStart=null;OpenLayers.Event.stop(evt);}},moveZoomBar:function(){var newTop=((this.map.getNumZoomLevels()-1)-this.map.getZoom())*this.zoomStopHeight+this.startTop+1;this.slider.style.top=newTop+"px";},CLASS_NAME:"OpenLayers.Control.PanZoomBar"});OpenLayers.Format.XML=OpenLayers.Class(OpenLayers.Format,{namespaces:null,namespaceAlias:null,defaultPrefix:null,readers:{},writers:{},xmldom:null,initialize:function(options){if(window.ActiveXObject){this.xmldom=new ActiveXObject("Microsoft.XMLDOM");}
 OpenLayers.Format.prototype.initialize.apply(this,[options]);this.namespaces=OpenLayers.Util.extend({},this.namespaces);this.namespaceAlias={};for(var alias in this.namespaces){this.namespaceAlias[this.namespaces[alias]]=alias;}},destroy:function(){this.xmldom=null;OpenLayers.Format.prototype.destroy.apply(this,arguments);},setNamespace:function(alias,uri){this.namespaces[alias]=uri;this.namespaceAlias[uri]=alias;},read:function(text){var index=text.indexOf('<');if(index>0){text=text.substring(index);}
 var node=OpenLayers.Util.Try(OpenLayers.Function.bind((function(){var xmldom;if(window.ActiveXObject&&!this.xmldom){xmldom=new ActiveXObject("Microsoft.XMLDOM");}else{xmldom=this.xmldom;}
 xmldom.loadXML(text);return xmldom;}),this),function(){return new DOMParser().parseFromString(text,'text/xml');},function(){var req=new XMLHttpRequest();req.open("GET","data:"+"text/xml"+";charset=utf-8,"+encodeURIComponent(text),false);if(req.overrideMimeType){req.overrideMimeType("text/xml");}
@@ -573,7 +593,7 @@ var node=this.createElementNS(uri,name);if(options.attributes){this.setAttribute
 var value=options.value;if(value!=null){if(typeof value=="boolean"){value=String(value);}
 node.appendChild(this.createTextNode(value));}
 return node;},setAttributes:function(node,obj){var value,uri;for(var name in obj){if(obj[name]!=null&&obj[name].toString){value=obj[name].toString();uri=this.namespaces[name.substring(0,name.indexOf(":"))]||null;this.setAttributeNS(node,uri,name,value);}}},readNode:function(node,obj){if(!obj){obj={};}
-var group=this.readers[this.namespaceAlias[node.namespaceURI]];if(group){var local=node.localName||node.nodeName.split(":").pop();var reader=group[local]||group["*"];if(reader){reader.apply(this,[node,obj]);}}
+var group=this.readers[node.namespaceURI?this.namespaceAlias[node.namespaceURI]:this.defaultPrefix];if(group){var local=node.localName||node.nodeName.split(":").pop();var reader=group[local]||group["*"];if(reader){reader.apply(this,[node,obj]);}}
 return obj;},readChildNodes:function(node,obj){if(!obj){obj={};}
 var children=node.childNodes;var child;for(var i=0,len=children.length;i<len;++i){child=children[i];if(child.nodeType==1){this.readNode(child,obj);}}
 return obj;},writeNode:function(name,obj,parent){var prefix,local;var split=name.indexOf(":");if(split>0){prefix=name.substring(0,split);local=name.substring(split+1);}else{if(parent){prefix=this.namespaceAlias[parent.namespaceURI];}else{prefix=this.defaultPrefix;}
@@ -591,15 +611,16 @@ var keyModifiers=(evt.shiftKey?OpenLayers.Handler.MOD_SHIFT:0)|(evt.ctrlKey?Open
 var events=OpenLayers.Events.prototype.BROWSER_EVENTS;for(var i=0,len=events.length;i<len;i++){if(this[events[i]]){this.register(events[i],this[events[i]]);}}
 this.active=true;return true;},deactivate:function(){if(!this.active){return false;}
 var events=OpenLayers.Events.prototype.BROWSER_EVENTS;for(var i=0,len=events.length;i<len;i++){if(this[events[i]]){this.unregister(events[i],this[events[i]]);}}
-this.active=false;return true;},callback:function(name,args){if(name&&this.callbacks[name]){this.callbacks[name].apply(this.control,args);}},register:function(name,method){this.map.events.registerPriority(name,this,method);this.map.events.registerPriority(name,this,this.setEvent);},unregister:function(name,method){this.map.events.unregister(name,this,method);this.map.events.unregister(name,this,this.setEvent);},setEvent:function(evt){this.evt=evt;return true;},destroy:function(){this.deactivate();this.control=this.map=null;},CLASS_NAME:"OpenLayers.Handler"});OpenLayers.Handler.MOD_NONE=0;OpenLayers.Handler.MOD_SHIFT=1;OpenLayers.Handler.MOD_CTRL=2;OpenLayers.Handler.MOD_ALT=4;OpenLayers.Lang.de=OpenLayers.Util.applyDefaults({'unhandledRequest':"Unbehandelte Anfragerückmeldung ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Grundkarte",'sameProjection':"Die Übersichtskarte funktioniert nur, wenn sie dieselbe Projektion wie die Hauptkarte verwendet",'readNotImplemented':"Lesen nicht implementiert.",'writeNotImplemented':"Schreiben nicht implementiert.",'noFID':"Ein Feature, für das keine FID existiert, kann nicht aktualisiert werden.",'errorLoadingGML':"Fehler beim Laden der GML-Datei ${url}",'browserNotSupported':"Ihr Browser unterstützt keine Vektordarstellung. Aktuell unterstützte Renderer:\n${renderers}",'componentShouldBe':"addFeatures : Komponente sollte vom Typ ${geomType} sein",'commitSuccess':"WFS-Transaktion: ERFOLGREICH ${response}",'commitFailed':"WFS-Transaktion: FEHLGESCHLAGEN ${response}",'googleWarning':"Der Google-Layer konnte nicht korrekt geladen werden.<br><br>"+"Um diese Meldung nicht mehr zu erhalten, wählen Sie einen anderen "+"Hintergrundlayer aus dem LayerSwitcher in der rechten oberen Ecke.<br><br>"+"Sehr wahrscheinlich tritt dieser Fehler auf, weil das Skript der "+"Google-Maps-Bibliothek nicht eingebunden wurde oder keinen gültigen "+"API-Schlüssel für Ihre URL enthält.<br><br>"+"Entwickler: Für Hilfe zum korrekten Einbinden des Google-Layers "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>hier klicken</a>",'getLayerWarning':"Der ${layerType}-Layer konnte nicht korrekt geladen werden.<br><br>"+"Um diese Meldung nicht mehr zu erhalten, wählen Sie einen anderen "+"Hintergrundlayer aus dem LayerSwitcher in der rechten oberen Ecke.<br><br>"+"Sehr wahrscheinlich tritt dieser Fehler auf, weil das Skript der "+'"${layerLib}"-Bibliothek nicht eingebunden wurde.<br><br>'+"Entwickler: Für Hilfe zum korrekten Einbinden von Layern "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>hier klicken</a>",'scale':"Maßstab = 1 : ${scaleDenom}",'end':''},OpenLayers.Lang["en"]);OpenLayers.Lang.nl=OpenLayers.Util.applyDefaults({'unhandledRequest':"Niet afgehandeld request met als terugmelding ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Achtergrondkaart",'sameProjection':"De overzichtskaart werkt alleen als de projectie gelijk is aan de projectie van de hoofdkaart",'readNotImplemented':"Lezen niet geïmplementeerd.",'writeNotImplemented':"Schrijven niet geïmplementeerd.",'noFID':"Een feature welke geen FID heeft kan niet bijgewerkt worden.",'errorLoadingGML':"Fout bij het laden van GML bestand ${url}",'browserNotSupported':"Uw browser ondersteunt het weergeven van vector niet. Momenteel ondersteunde weergave engines:\n${renderers}",'componentShouldBe':"addFeatures : component zou van het type ${geomType} moeten zijn",'commitSuccess':"WFS-transactie: SUCCESVOL ${response}",'commitFailed':"WFS-transactie: MISLUKT ${response}",'googleWarning':"De Google-Layer kon niet correct geladen worden.<br><br>"+"Om deze melding niet meer te krijgen, moet u een andere "+"achtergrondkaart kiezen in de LayerSwitcher in de rechterbovenhoek.<br><br>"+"Dit is waarschijnlijk omdat de ${layerLib} bilbiotheek "+"niet correct ingevoegd is.<br><br>"+"Ontwikkelaars: om dit werkend te krijgen, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>klik hier</a>",'getLayerWarning':"De ${layerType} Layer kon niet goed geladen worden.<br><br>"+"Om deze melding niet meer te krijgen, moet u een andere "+"achtergrondkaart kiezen in de LayerSwitcher in de rechterbovenhoek.<br><br>"+"Dit is waarschijnlijk omdat de ${layerLib} bilbiotheek "+"niet correct ingevoegd is.<br><br>"+"Ontwikkelaars: om dit werkend te krijgen, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>klik hier</a>",'scale':"Schaal = 1 : ${scaleDenom}",'end':''},OpenLayers.Lang["en"]);OpenLayers.Map=OpenLayers.Class({Z_INDEX_BASE:{BaseLayer:100,Overlay:325,Feature:725,Popup:750,Control:1000},EVENT_TYPES:["preaddlayer","addlayer","removelayer","changelayer","movestart","move","moveend","zoomend","popupopen","popupclose","addmarker","removemarker","clearmarkers","mouseover","mouseout","mousemove","dragstart","drag","dragend","changebaselayer"],id:null,fractionalZoom:false,events:null,allOverlays:false,div:null,dragging:false,size:null,viewPortDiv:null,layerContainerOrigin:null,layerContainerDiv:null,layers:null,controls:null,popups:null,baseLayer:null,center:null,resolution:null,zoom:0,panRatio:1.5,viewRequestID:0,tileSize:null,projection:"EPSG:4326",units:'degrees',resolutions:null,maxResolution:1.40625,minResolution:null,maxScale:null,minScale:null,maxExtent:null,minExtent:null,restrictedExtent:null,numZoomLevels:16,theme:null,displayProjection:null,fallThrough:true,panTween:null,eventListeners:null,panMethod:OpenLayers.Easing.Expo.easeOut,panDuration:50,paddingForPopups:null,initialize:function(div,options){if(arguments.length===1&&typeof div==="object"){options=div;div=options&&options.div;}
-this.tileSize=new OpenLayers.Size(OpenLayers.Map.TILE_WIDTH,OpenLayers.Map.TILE_HEIGHT);this.maxExtent=new OpenLayers.Bounds(-180,-90,180,90);this.paddingForPopups=new OpenLayers.Bounds(15,15,15,15);this.theme=OpenLayers._getScriptLocation()+'theme/default/style.css';OpenLayers.Util.extend(this,options);this.id=OpenLayers.Util.createUniqueID("OpenLayers.Map_");this.div=OpenLayers.Util.getElement(div);if(!this.div){this.div=document.createElement("div");this.div.style.height="1px";this.div.style.width="1px";}
-OpenLayers.Element.addClass(this.div,'olMap');var id=this.div.id+"_OpenLayers_ViewPort";this.viewPortDiv=OpenLayers.Util.createDiv(id,null,null,null,"relative",null,"hidden");this.viewPortDiv.style.width="100%";this.viewPortDiv.style.height="100%";this.viewPortDiv.className="olMapViewport";this.div.appendChild(this.viewPortDiv);id=this.div.id+"_OpenLayers_Container";this.layerContainerDiv=OpenLayers.Util.createDiv(id);this.layerContainerDiv.style.zIndex=this.Z_INDEX_BASE['Popup']-1;this.viewPortDiv.appendChild(this.layerContainerDiv);this.events=new OpenLayers.Events(this,this.div,this.EVENT_TYPES,this.fallThrough,{includeXY:true});this.updateSize();if(this.eventListeners instanceof Object){this.events.on(this.eventListeners);}
+this.active=false;return true;},callback:function(name,args){if(name&&this.callbacks[name]){this.callbacks[name].apply(this.control,args);}},register:function(name,method){this.map.events.registerPriority(name,this,method);this.map.events.registerPriority(name,this,this.setEvent);},unregister:function(name,method){this.map.events.unregister(name,this,method);this.map.events.unregister(name,this,this.setEvent);},setEvent:function(evt){this.evt=evt;return true;},destroy:function(){this.deactivate();this.control=this.map=null;},CLASS_NAME:"OpenLayers.Handler"});OpenLayers.Handler.MOD_NONE=0;OpenLayers.Handler.MOD_SHIFT=1;OpenLayers.Handler.MOD_CTRL=2;OpenLayers.Handler.MOD_ALT=4;OpenLayers.Map=OpenLayers.Class({Z_INDEX_BASE:{BaseLayer:100,Overlay:325,Feature:725,Popup:750,Control:1000},EVENT_TYPES:["preaddlayer","addlayer","removelayer","changelayer","movestart","move","moveend","zoomend","popupopen","popupclose","addmarker","removemarker","clearmarkers","mouseover","mouseout","mousemove","dragstart","drag","dragend","changebaselayer"],id:null,fractionalZoom:false,events:null,allOverlays:false,div:null,dragging:false,size:null,viewPortDiv:null,layerContainerOrigin:null,layerContainerDiv:null,layers:null,controls:null,popups:null,baseLayer:null,center:null,resolution:null,zoom:0,panRatio:1.5,viewRequestID:0,tileSize:null,projection:"EPSG:4326",units:'degrees',resolutions:null,maxResolution:1.40625,minResolution:null,maxScale:null,minScale:null,maxExtent:null,minExtent:null,restrictedExtent:null,numZoomLevels:16,theme:null,displayProjection:null,fallThrough:true,panTween:null,eventListeners:null,panMethod:OpenLayers.Easing.Expo.easeOut,panDuration:50,paddingForPopups:null,initialize:function(div,options){if(arguments.length===1&&typeof div==="object"){options=div;div=options&&options.div;}
+this.tileSize=new OpenLayers.Size(OpenLayers.Map.TILE_WIDTH,OpenLayers.Map.TILE_HEIGHT);this.maxExtent=new OpenLayers.Bounds(-180,-90,180,90);this.paddingForPopups=new OpenLayers.Bounds(15,15,15,15);this.theme=OpenLayers._getScriptLocation()+'theme/default/style.css';OpenLayers.Util.extend(this,options);this.layers=[];this.id=OpenLayers.Util.createUniqueID("OpenLayers.Map_");this.div=OpenLayers.Util.getElement(div);if(!this.div){this.div=document.createElement("div");this.div.style.height="1px";this.div.style.width="1px";}
+OpenLayers.Element.addClass(this.div,'olMap');var id=this.id+"_OpenLayers_ViewPort";this.viewPortDiv=OpenLayers.Util.createDiv(id,null,null,null,"relative",null,"hidden");this.viewPortDiv.style.width="100%";this.viewPortDiv.style.height="100%";this.viewPortDiv.className="olMapViewport";this.div.appendChild(this.viewPortDiv);id=this.id+"_OpenLayers_Container";this.layerContainerDiv=OpenLayers.Util.createDiv(id);this.layerContainerDiv.style.zIndex=this.Z_INDEX_BASE['Popup']-1;this.viewPortDiv.appendChild(this.layerContainerDiv);this.events=new OpenLayers.Events(this,this.div,this.EVENT_TYPES,this.fallThrough,{includeXY:true});this.updateSize();if(this.eventListeners instanceof Object){this.events.on(this.eventListeners);}
 this.events.register("movestart",this,this.updateSize);if(OpenLayers.String.contains(navigator.appName,"Microsoft")){this.events.register("resize",this,this.updateSize);}else{this.updateSizeDestroy=OpenLayers.Function.bind(this.updateSize,this);OpenLayers.Event.observe(window,'resize',this.updateSizeDestroy);}
 if(this.theme){var addNode=true;var nodes=document.getElementsByTagName('link');for(var i=0,len=nodes.length;i<len;++i){if(OpenLayers.Util.isEquivalentUrl(nodes.item(i).href,this.theme)){addNode=false;break;}}
 if(addNode){var cssNode=document.createElement('link');cssNode.setAttribute('rel','stylesheet');cssNode.setAttribute('type','text/css');cssNode.setAttribute('href',this.theme);document.getElementsByTagName('head')[0].appendChild(cssNode);}}
-this.layers=[];if(this.controls==null){if(OpenLayers.Control!=null){this.controls=[new OpenLayers.Control.Navigation(),new OpenLayers.Control.PanZoom(),new OpenLayers.Control.ArgParser(),new OpenLayers.Control.Attribution()];}else{this.controls=[];}}
+if(this.controls==null){if(OpenLayers.Control!=null){this.controls=[new OpenLayers.Control.Navigation(),new OpenLayers.Control.PanZoom(),new OpenLayers.Control.ArgParser(),new OpenLayers.Control.Attribution()];}else{this.controls=[];}}
 for(var i=0,len=this.controls.length;i<len;i++){this.addControlToMap(this.controls[i]);}
-this.popups=[];this.unloadDestroy=OpenLayers.Function.bind(this.destroy,this);OpenLayers.Event.observe(window,'unload',this.unloadDestroy);},render:function(div){this.div=OpenLayers.Util.getElement(div);OpenLayers.Element.addClass(this.div,'olMap');this.events.attachToElement(this.div);this.viewPortDiv.parentNode.removeChild(this.viewPortDiv);this.div.appendChild(this.viewPortDiv);this.updateSize();},unloadDestroy:null,updateSizeDestroy:null,destroy:function(){if(!this.unloadDestroy){return false;}
+this.popups=[];this.unloadDestroy=OpenLayers.Function.bind(this.destroy,this);OpenLayers.Event.observe(window,'unload',this.unloadDestroy);if(options&&options.layers){this.addLayers(options.layers);if(options.center){this.setCenter(options.center,options.zoom);}}},render:function(div){this.div=OpenLayers.Util.getElement(div);OpenLayers.Element.addClass(this.div,'olMap');this.events.attachToElement(this.div);this.viewPortDiv.parentNode.removeChild(this.viewPortDiv);this.div.appendChild(this.viewPortDiv);this.updateSize();},unloadDestroy:null,updateSizeDestroy:null,destroy:function(){if(!this.unloadDestroy){return false;}
+if(this.panTween&&this.panTween.playing){this.panTween.stop();}
 OpenLayers.Event.stopObserving(window,'unload',this.unloadDestroy);this.unloadDestroy=null;if(this.updateSizeDestroy){OpenLayers.Event.stopObserving(window,'resize',this.updateSizeDestroy);}else{this.events.unregister("resize",this,this.updateSize);}
 this.paddingForPopups=null;if(this.controls!=null){for(var i=this.controls.length-1;i>=0;--i){this.controls[i].destroy();}
 this.controls=null;}
@@ -611,30 +632,30 @@ this.events.destroy();this.events=null;},setOptions:function(options){OpenLayers
 return foundLayer;},setLayerZIndex:function(layer,zIdx){layer.setZIndex(this.Z_INDEX_BASE[layer.isBaseLayer?'BaseLayer':'Overlay']
 +zIdx*5);},resetLayersZIndex:function(){for(var i=0,len=this.layers.length;i<len;i++){var layer=this.layers[i];this.setLayerZIndex(layer,i);}},addLayer:function(layer){for(var i=0,len=this.layers.length;i<len;i++){if(this.layers[i]==layer){var msg=OpenLayers.i18n('layerAlreadyAdded',{'layerName':layer.name});OpenLayers.Console.warn(msg);return false;}}
 if(this.allOverlays){layer.isBaseLayer=false;}
-this.events.triggerEvent("preaddlayer",{layer:layer});layer.div.className="olLayerDiv";layer.div.style.overflow="";this.setLayerZIndex(layer,this.layers.length);if(layer.isFixed){this.viewPortDiv.appendChild(layer.div);}else{this.layerContainerDiv.appendChild(layer.div);}
+if(this.events.triggerEvent("preaddlayer",{layer:layer})===false){return;}
+layer.div.className="olLayerDiv";layer.div.style.overflow="";this.setLayerZIndex(layer,this.layers.length);if(layer.isFixed){this.viewPortDiv.appendChild(layer.div);}else{this.layerContainerDiv.appendChild(layer.div);}
 this.layers.push(layer);layer.setMap(this);if(layer.isBaseLayer||(this.allOverlays&&!this.baseLayer)){if(this.baseLayer==null){this.setBaseLayer(layer);}else{layer.setVisibility(false);}}else{layer.redraw();}
 this.events.triggerEvent("addlayer",{layer:layer});layer.afterAdd();},addLayers:function(layers){for(var i=0,len=layers.length;i<len;i++){this.addLayer(layers[i]);}},removeLayer:function(layer,setNewBaseLayer){if(setNewBaseLayer==null){setNewBaseLayer=true;}
 if(layer.isFixed){this.viewPortDiv.removeChild(layer.div);}else{this.layerContainerDiv.removeChild(layer.div);}
 OpenLayers.Util.removeItem(this.layers,layer);layer.removeMap(this);layer.map=null;if(this.baseLayer==layer){this.baseLayer=null;if(setNewBaseLayer){for(var i=0,len=this.layers.length;i<len;i++){var iLayer=this.layers[i];if(iLayer.isBaseLayer||this.allOverlays){this.setBaseLayer(iLayer);break;}}}}
 this.resetLayersZIndex();this.events.triggerEvent("removelayer",{layer:layer});},getNumLayers:function(){return this.layers.length;},getLayerIndex:function(layer){return OpenLayers.Util.indexOf(this.layers,layer);},setLayerIndex:function(layer,idx){var base=this.getLayerIndex(layer);if(idx<0){idx=0;}else if(idx>this.layers.length){idx=this.layers.length;}
 if(base!=idx){this.layers.splice(base,1);this.layers.splice(idx,0,layer);for(var i=0,len=this.layers.length;i<len;i++){this.setLayerZIndex(this.layers[i],i);}
-this.events.triggerEvent("changelayer",{layer:layer,property:"order"});if(this.allOverlays){if(idx===0){this.setBaseLayer(layer);}else if(this.baseLayer!==this.layers[0]){this.setBaseLayer(this.layers[0]);}}}},raiseLayer:function(layer,delta){var idx=this.getLayerIndex(layer)+delta;this.setLayerIndex(layer,idx);},setBaseLayer:function(newBaseLayer){var oldExtent=null;if(this.baseLayer){oldExtent=this.baseLayer.getExtent();}
-if(newBaseLayer!=this.baseLayer){if(OpenLayers.Util.indexOf(this.layers,newBaseLayer)!=-1){if(this.baseLayer!=null&&!this.allOverlays){this.baseLayer.setVisibility(false);}
-this.baseLayer=newBaseLayer;this.viewRequestID++;if(!this.allOverlays){this.baseLayer.visibility=true;}
-var center=this.getCenter();if(center!=null){var newCenter=(oldExtent)?oldExtent.getCenterLonLat():center;var newZoom=(oldExtent)?this.getZoomForExtent(oldExtent,true):this.getZoomForResolution(this.resolution,true);this.setCenter(newCenter,newZoom,false,true);}
-this.events.triggerEvent("changebaselayer",{layer:this.baseLayer});}}},addControl:function(control,px){this.controls.push(control);this.addControlToMap(control,px);},addControlToMap:function(control,px){control.outsideViewport=(control.div!=null);if(this.displayProjection&&!control.displayProjection){control.displayProjection=this.displayProjection;}
+this.events.triggerEvent("changelayer",{layer:layer,property:"order"});if(this.allOverlays){if(idx===0){this.setBaseLayer(layer);}else if(this.baseLayer!==this.layers[0]){this.setBaseLayer(this.layers[0]);}}}},raiseLayer:function(layer,delta){var idx=this.getLayerIndex(layer)+delta;this.setLayerIndex(layer,idx);},setBaseLayer:function(newBaseLayer){if(newBaseLayer!=this.baseLayer){if(OpenLayers.Util.indexOf(this.layers,newBaseLayer)!=-1){var center=this.getCenter();var newResolution=OpenLayers.Util.getResolutionFromScale(this.getScale(),newBaseLayer.units);if(this.baseLayer!=null&&!this.allOverlays){this.baseLayer.setVisibility(false);}
+this.baseLayer=newBaseLayer;this.viewRequestID++;if(!this.allOverlays||this.baseLayer.visibility){this.baseLayer.setVisibility(true);}
+if(center!=null){var newZoom=this.getZoomForResolution(newResolution||this.resolution,true);this.setCenter(center,newZoom,false,true);}
+this.events.triggerEvent("changebaselayer",{layer:this.baseLayer});}}},addControl:function(control,px){this.controls.push(control);this.addControlToMap(control,px);},addControls:function(controls,pixels){var pxs=(arguments.length===1)?[]:pixels;for(var i=0,len=controls.length;i<len;i++){var ctrl=controls[i];var px=(pxs[i])?pxs[i]:null;this.addControl(ctrl,px);}},addControlToMap:function(control,px){control.outsideViewport=(control.div!=null);if(this.displayProjection&&!control.displayProjection){control.displayProjection=this.displayProjection;}
 control.setMap(this);var div=control.draw(px);if(div){if(!control.outsideViewport){div.style.zIndex=this.Z_INDEX_BASE['Control']+
-this.controls.length;this.viewPortDiv.appendChild(div);}}},getControl:function(id){var returnControl=null;for(var i=0,len=this.controls.length;i<len;i++){var control=this.controls[i];if(control.id==id){returnControl=control;break;}}
+this.controls.length;this.viewPortDiv.appendChild(div);}}
+if(control.autoActivate){control.activate();}},getControl:function(id){var returnControl=null;for(var i=0,len=this.controls.length;i<len;i++){var control=this.controls[i];if(control.id==id){returnControl=control;break;}}
 return returnControl;},removeControl:function(control){if((control)&&(control==this.getControl(control.id))){if(control.div&&(control.div.parentNode==this.viewPortDiv)){this.viewPortDiv.removeChild(control.div);}
 OpenLayers.Util.removeItem(this.controls,control);}},addPopup:function(popup,exclusive){if(exclusive){for(var i=this.popups.length-1;i>=0;--i){this.removePopup(this.popups[i]);}}
 popup.map=this;this.popups.push(popup);var popupDiv=popup.draw();if(popupDiv){popupDiv.style.zIndex=this.Z_INDEX_BASE['Popup']+
 this.popups.length;this.layerContainerDiv.appendChild(popupDiv);}},removePopup:function(popup){OpenLayers.Util.removeItem(this.popups,popup);if(popup.div){try{this.layerContainerDiv.removeChild(popup.div);}
 catch(e){}}
 popup.map=null;},getSize:function(){var size=null;if(this.size!=null){size=this.size.clone();}
-return size;},updateSize:function(){this.events.clearMouseCache();var newSize=this.getCurrentSize();var oldSize=this.getSize();if(oldSize==null){this.size=oldSize=newSize;}
+return size;},updateSize:function(){var newSize=this.getCurrentSize();if(newSize&&!isNaN(newSize.h)&&!isNaN(newSize.w)){this.events.clearMouseCache();var oldSize=this.getSize();if(oldSize==null){this.size=oldSize=newSize;}
 if(!newSize.equals(oldSize)){this.size=newSize;for(var i=0,len=this.layers.length;i<len;i++){this.layers[i].onMapResize();}
-if(this.baseLayer!=null){var center=new OpenLayers.Pixel(newSize.w/2,newSize.h/2);var centerLL=this.getLonLatFromViewPortPx(center);var zoom=this.getZoom();this.zoom=null;this.setCenter(this.getCenter(),zoom);}}},getCurrentSize:function(){var size=new OpenLayers.Size(this.div.clientWidth,this.div.clientHeight);if(size.w==0&&size.h==0||isNaN(size.w)&&isNaN(size.h)){var dim=OpenLayers.Element.getDimensions(this.div);size.w=dim.width;size.h=dim.height;}
-if(size.w==0&&size.h==0||isNaN(size.w)&&isNaN(size.h)){size.w=parseInt(this.div.style.width);size.h=parseInt(this.div.style.height);}
+var center=this.getCenter();if(this.baseLayer!=null&&center!=null){var zoom=this.getZoom();this.zoom=null;this.setCenter(center,zoom);}}}},getCurrentSize:function(){var size=new OpenLayers.Size(this.div.clientWidth,this.div.clientHeight);if(size.w==0&&size.h==0||isNaN(size.w)&&isNaN(size.h)){size.w=parseInt(this.div.style.width);size.h=parseInt(this.div.style.height);}
 return size;},calculateBounds:function(center,resolution){var extent=null;if(center==null){center=this.getCenter();}
 if(resolution==null){resolution=this.getResolution();}
 if((center!=null)&&(resolution!=null)){var size=this.getSize();var w_deg=size.w*resolution;var h_deg=size.h*resolution;extent=new OpenLayers.Bounds(center.lon-w_deg/2,center.lat-h_deg/2,center.lon+w_deg/2,center.lat+h_deg/2);}
@@ -642,6 +663,7 @@ return extent;},getCenter:function(){var center=null;if(this.center){center=this
 return center;},getZoom:function(){return this.zoom;},pan:function(dx,dy,options){options=OpenLayers.Util.applyDefaults(options,{animate:true,dragging:false});var centerPx=this.getViewPortPxFromLonLat(this.getCenter());var newCenterPx=centerPx.add(dx,dy);if(!options.dragging||!newCenterPx.equals(centerPx)){var newCenterLonLat=this.getLonLatFromViewPortPx(newCenterPx);if(options.animate){this.panTo(newCenterLonLat);}else{this.setCenter(newCenterLonLat,null,options.dragging);}}},panTo:function(lonlat){if(this.panMethod&&this.getExtent().scale(this.panRatio).containsLonLat(lonlat)){if(!this.panTween){this.panTween=new OpenLayers.Tween(this.panMethod);}
 var center=this.getCenter();if(lonlat.lon==center.lon&&lonlat.lat==center.lat){return;}
 var from={lon:center.lon,lat:center.lat};var to={lon:lonlat.lon,lat:lonlat.lat};this.panTween.start(from,to,this.panDuration,{callbacks:{start:OpenLayers.Function.bind(function(lonlat){this.events.triggerEvent("movestart");},this),eachStep:OpenLayers.Function.bind(function(lonlat){lonlat=new OpenLayers.LonLat(lonlat.lon,lonlat.lat);this.moveTo(lonlat,this.zoom,{'dragging':true,'noEvent':true});},this),done:OpenLayers.Function.bind(function(lonlat){lonlat=new OpenLayers.LonLat(lonlat.lon,lonlat.lat);this.moveTo(lonlat,this.zoom,{'noEvent':true});this.events.triggerEvent("moveend");},this)}});}else{this.setCenter(lonlat);}},setCenter:function(lonlat,zoom,dragging,forceZoomChange){this.moveTo(lonlat,zoom,{'dragging':dragging,'forceZoomChange':forceZoomChange,'caller':'setCenter'});},moveTo:function(lonlat,zoom,options){if(!options){options={};}
+if(zoom!=null){zoom=parseFloat(zoom);if(!this.fractionalZoom){zoom=Math.round(zoom);}}
 var dragging=options.dragging;var forceZoomChange=options.forceZoomChange;var noEvent=options.noEvent;if(this.panTween&&options.caller=="setCenter"){this.panTween.stop();}
 if(!this.center&&!this.isValidLonLat(lonlat)){lonlat=this.maxExtent.getCenterLonLat();}
 if(this.restrictedExtent!=null){if(lonlat==null){lonlat=this.getCenter();}
@@ -671,7 +693,7 @@ return projection;},getMaxResolution:function(){var maxResolution=null;if(this.b
 return maxResolution;},getMaxExtent:function(options){var maxExtent=null;if(options&&options.restricted&&this.restrictedExtent){maxExtent=this.restrictedExtent;}else if(this.baseLayer!=null){maxExtent=this.baseLayer.maxExtent;}
 return maxExtent;},getNumZoomLevels:function(){var numZoomLevels=null;if(this.baseLayer!=null){numZoomLevels=this.baseLayer.numZoomLevels;}
 return numZoomLevels;},getExtent:function(){var extent=null;if(this.baseLayer!=null){extent=this.baseLayer.getExtent();}
-return extent;},getResolution:function(){var resolution=null;if(this.baseLayer!=null){resolution=this.baseLayer.getResolution();}
+return extent;},getResolution:function(){var resolution=null;if(this.baseLayer!=null){resolution=this.baseLayer.getResolution();}else if(this.allOverlays===true&&this.layers.length>0){resolution=this.layers[0].getResolution();}
 return resolution;},getUnits:function(){var units=null;if(this.baseLayer!=null){units=this.baseLayer.units;}
 return units;},getScale:function(){var scale=null;if(this.baseLayer!=null){var res=this.getResolution();var units=this.baseLayer.units;scale=OpenLayers.Util.getScaleFromResolution(res,units);}
 return scale;},getZoomForExtent:function(bounds,closest){var zoom=null;if(this.baseLayer!=null){zoom=this.baseLayer.getZoomForExtent(bounds,closest);}
@@ -687,16 +709,16 @@ return layerPx;},getLonLatFromLayerPx:function(px){px=this.getViewPortPxFromLaye
 this.events=new OpenLayers.Events(this,this.icon.imageDiv,null);},destroy:function(){this.erase();this.map=null;this.events.destroy();this.events=null;if(this.icon!=null){this.icon.destroy();this.icon=null;}},draw:function(px){return this.icon.draw(px);},erase:function(){if(this.icon!=null){this.icon.erase();}},moveTo:function(px){if((px!=null)&&(this.icon!=null)){this.icon.moveTo(px);}
 this.lonlat=this.map.getLonLatFromLayerPx(px);},isDrawn:function(){var isDrawn=(this.icon&&this.icon.isDrawn());return isDrawn;},onScreen:function(){var onScreen=false;if(this.map){var screenBounds=this.map.getExtent();onScreen=screenBounds.containsLonLat(this.lonlat);}
 return onScreen;},inflate:function(inflate){if(this.icon){var newSize=new OpenLayers.Size(this.icon.size.w*inflate,this.icon.size.h*inflate);this.icon.setSize(newSize);}},setOpacity:function(opacity){this.icon.setOpacity(opacity);},setUrl:function(url){this.icon.setUrl(url);},display:function(display){this.icon.display(display);},CLASS_NAME:"OpenLayers.Marker"});OpenLayers.Marker.defaultIcon=function(){var url=OpenLayers.Util.getImagesLocation()+"marker.png";var size=new OpenLayers.Size(21,25);var calculateOffset=function(size){return new OpenLayers.Pixel(-(size.w/2),-size.h);};return new OpenLayers.Icon(url,size,null,calculateOffset);};OpenLayers.Popup.FramedCloud=OpenLayers.Class(OpenLayers.Popup.Framed,{contentDisplayClass:"olFramedCloudPopupContent",autoSize:true,panMapIfOutOfView:true,imageSize:new OpenLayers.Size(676,736),isAlphaImage:false,fixedRelativePosition:false,positionBlocks:{"tl":{'offset':new OpenLayers.Pixel(44,0),'padding':new OpenLayers.Bounds(8,40,8,9),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,51,22,0),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,50,0,0),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',19),anchor:new OpenLayers.Bounds(0,32,22,null),position:new OpenLayers.Pixel(0,-631)},{size:new OpenLayers.Size(22,18),anchor:new OpenLayers.Bounds(null,32,0,null),position:new OpenLayers.Pixel(-638,-632)},{size:new OpenLayers.Size(81,35),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(0,-688)}]},"tr":{'offset':new OpenLayers.Pixel(-45,0),'padding':new OpenLayers.Bounds(8,40,8,9),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,51,22,0),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,50,0,0),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',19),anchor:new OpenLayers.Bounds(0,32,22,null),position:new OpenLayers.Pixel(0,-631)},{size:new OpenLayers.Size(22,19),anchor:new OpenLayers.Bounds(null,32,0,null),position:new OpenLayers.Pixel(-638,-631)},{size:new OpenLayers.Size(81,35),anchor:new OpenLayers.Bounds(0,0,null,null),position:new OpenLayers.Pixel(-215,-687)}]},"bl":{'offset':new OpenLayers.Pixel(45,0),'padding':new OpenLayers.Bounds(8,9,8,40),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,21,22,32),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,21,0,32),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',21),anchor:new OpenLayers.Bounds(0,0,22,null),position:new OpenLayers.Pixel(0,-629)},{size:new OpenLayers.Size(22,21),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(-638,-629)},{size:new OpenLayers.Size(81,33),anchor:new OpenLayers.Bounds(null,null,0,0),position:new OpenLayers.Pixel(-101,-674)}]},"br":{'offset':new OpenLayers.Pixel(-44,0),'padding':new OpenLayers.Bounds(8,9,8,40),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,21,22,32),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,21,0,32),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',21),anchor:new OpenLayers.Bounds(0,0,22,null),position:new OpenLayers.Pixel(0,-629)},{size:new OpenLayers.Size(22,21),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(-638,-629)},{size:new OpenLayers.Size(81,33),anchor:new OpenLayers.Bounds(0,null,null,0),position:new OpenLayers.Pixel(-311,-674)}]}},minSize:new OpenLayers.Size(105,10),maxSize:new OpenLayers.Size(600,660),initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){this.imageSrc=OpenLayers.Util.getImagesLocation()+'cloud-popup-relative.png';OpenLayers.Popup.Framed.prototype.initialize.apply(this,arguments);this.contentDiv.className=this.contentDisplayClass;},destroy:function(){OpenLayers.Popup.Framed.prototype.destroy.apply(this,arguments);},CLASS_NAME:"OpenLayers.Popup.FramedCloud"});OpenLayers.Request={DEFAULT_CONFIG:{method:"GET",url:window.location.href,async:true,user:undefined,password:undefined,params:null,proxy:OpenLayers.ProxyHost,headers:{},data:null,callback:function(){},success:null,failure:null,scope:null},events:new OpenLayers.Events(this,null,["complete","success","failure"]),issue:function(config){var defaultConfig=OpenLayers.Util.extend(this.DEFAULT_CONFIG,{proxy:OpenLayers.ProxyHost});config=OpenLayers.Util.applyDefaults(config,defaultConfig);var request=new OpenLayers.Request.XMLHttpRequest();var url=config.url;if(config.params){var paramString=OpenLayers.Util.getParameterString(config.params);if(paramString.length>0){var separator=(url.indexOf('?')>-1)?'&':'?';url+=separator+paramString;}}
-if(config.proxy&&(url.indexOf("http")==0)){url=config.proxy+encodeURIComponent(url);}
+if(config.proxy&&(url.indexOf("http")==0)){if(typeof config.proxy=="function"){url=config.proxy(url);}else{url=config.proxy+encodeURIComponent(url);}}
 request.open(config.method,url,config.async,config.user,config.password);for(var header in config.headers){request.setRequestHeader(header,config.headers[header]);}
-var complete=(config.scope)?OpenLayers.Function.bind(config.callback,config.scope):config.callback;var success;if(config.success){success=(config.scope)?OpenLayers.Function.bind(config.success,config.scope):config.success;}
+var events=this.events;var self=this;request.onreadystatechange=function(){if(request.readyState==OpenLayers.Request.XMLHttpRequest.DONE){var proceed=events.triggerEvent("complete",{request:request,config:config,requestUrl:url});if(proceed!==false){self.runCallbacks({request:request,config:config,requestUrl:url});}}};if(config.async===false){request.send(config.data);}else{window.setTimeout(function(){request.send(config.data);},0);}
+return request;},runCallbacks:function(options){var request=options.request;var config=options.config;var complete=(config.scope)?OpenLayers.Function.bind(config.callback,config.scope):config.callback;var success;if(config.success){success=(config.scope)?OpenLayers.Function.bind(config.success,config.scope):config.success;}
 var failure;if(config.failure){failure=(config.scope)?OpenLayers.Function.bind(config.failure,config.scope):config.failure;}
-var events=this.events;request.onreadystatechange=function(){if(request.readyState==OpenLayers.Request.XMLHttpRequest.DONE){var proceed=events.triggerEvent("complete",{request:request,config:config,requestUrl:url});if(proceed!==false){complete(request);if(!request.status||(request.status>=200&&request.status<300)){events.triggerEvent("success",{request:request,config:config,requestUrl:url});if(success){success(request);}}
-if(request.status&&(request.status<200||request.status>=300)){events.triggerEvent("failure",{request:request,config:config,requestUrl:url});if(failure){failure(request);}}}}};if(config.async===false){request.send(config.data);}else{window.setTimeout(function(){request.send(config.data);},0);}
-return request;},GET:function(config){config=OpenLayers.Util.extend(config,{method:"GET"});return OpenLayers.Request.issue(config);},POST:function(config){config=OpenLayers.Util.extend(config,{method:"POST"});config.headers=config.headers?config.headers:{};if(!("CONTENT-TYPE"in OpenLayers.Util.upperCaseObject(config.headers))){config.headers["Content-Type"]="application/xml";}
+complete(request);if(!request.status||(request.status>=200&&request.status<300)){this.events.triggerEvent("success",options);if(success){success(request);}}
+if(request.status&&(request.status<200||request.status>=300)){this.events.triggerEvent("failure",options);if(failure){failure(request);}}},GET:function(config){config=OpenLayers.Util.extend(config,{method:"GET"});return OpenLayers.Request.issue(config);},POST:function(config){config=OpenLayers.Util.extend(config,{method:"POST"});config.headers=config.headers?config.headers:{};if(!("CONTENT-TYPE"in OpenLayers.Util.upperCaseObject(config.headers))){config.headers["Content-Type"]="application/xml";}
 return OpenLayers.Request.issue(config);},PUT:function(config){config=OpenLayers.Util.extend(config,{method:"PUT"});config.headers=config.headers?config.headers:{};if(!("CONTENT-TYPE"in OpenLayers.Util.upperCaseObject(config.headers))){config.headers["Content-Type"]="application/xml";}
-return OpenLayers.Request.issue(config);},DELETE:function(config){config=OpenLayers.Util.extend(config,{method:"DELETE"});return OpenLayers.Request.issue(config);},HEAD:function(config){config=OpenLayers.Util.extend(config,{method:"HEAD"});return OpenLayers.Request.issue(config);},OPTIONS:function(config){config=OpenLayers.Util.extend(config,{method:"OPTIONS"});return OpenLayers.Request.issue(config);}};OpenLayers.Tile.Image=OpenLayers.Class(OpenLayers.Tile,{url:null,imgDiv:null,frame:null,layerAlphaHack:null,isBackBuffer:false,lastRatio:1,isFirstDraw:true,backBufferTile:null,initialize:function(layer,position,bounds,url,size){OpenLayers.Tile.prototype.initialize.apply(this,arguments);this.url=url;this.frame=document.createElement('div');this.frame.style.overflow='hidden';this.frame.style.position='absolute';this.layerAlphaHack=this.layer.alpha&&OpenLayers.Util.alphaHack();},destroy:function(){if(this.imgDiv!=null){if(this.layerAlphaHack){OpenLayers.Event.stopObservingElement(this.imgDiv.childNodes[0].id);}
-OpenLayers.Event.stopObservingElement(this.imgDiv.id);if(this.imgDiv.parentNode==this.frame){this.frame.removeChild(this.imgDiv);this.imgDiv.map=null;}
+return OpenLayers.Request.issue(config);},DELETE:function(config){config=OpenLayers.Util.extend(config,{method:"DELETE"});return OpenLayers.Request.issue(config);},HEAD:function(config){config=OpenLayers.Util.extend(config,{method:"HEAD"});return OpenLayers.Request.issue(config);},OPTIONS:function(config){config=OpenLayers.Util.extend(config,{method:"OPTIONS"});return OpenLayers.Request.issue(config);}};OpenLayers.Tile.Image=OpenLayers.Class(OpenLayers.Tile,{url:null,imgDiv:null,frame:null,layerAlphaHack:null,isBackBuffer:false,lastRatio:1,isFirstDraw:true,backBufferTile:null,initialize:function(layer,position,bounds,url,size){OpenLayers.Tile.prototype.initialize.apply(this,arguments);this.url=url;this.frame=document.createElement('div');this.frame.style.overflow='hidden';this.frame.style.position='absolute';this.layerAlphaHack=this.layer.alpha&&OpenLayers.Util.alphaHack();},destroy:function(){if(this.imgDiv!=null){if(this.layerAlphaHack){OpenLayers.Event.stopObservingElement(this.imgDiv.childNodes[0]);}
+OpenLayers.Event.stopObservingElement(this.imgDiv);if(this.imgDiv.parentNode==this.frame){this.frame.removeChild(this.imgDiv);this.imgDiv.map=null;}
 this.imgDiv.urls=null;this.imgDiv.src=OpenLayers.Util.getImagesLocation()+"blank.gif";}
 this.imgDiv=null;if((this.frame!=null)&&(this.frame.parentNode==this.layer.div)){this.layer.div.removeChild(this.frame);}
 this.frame=null;if(this.backBufferTile){this.backBufferTile.destroy();this.backBufferTile=null;}
@@ -706,12 +728,12 @@ var drawTile=OpenLayers.Tile.prototype.draw.apply(this,arguments);if(OpenLayers.
 this.startTransition();}else{if(this.backBufferTile){this.backBufferTile.clear();}}}else{if(drawTile&&this.isFirstDraw){this.events.register('loadend',this,this.showTile);this.isFirstDraw=false;}}
 if(!drawTile){return false;}
 if(this.isLoading){this.events.triggerEvent("reload");}else{this.isLoading=true;this.events.triggerEvent("loadstart");}
-return this.renderTile();},resetBackBuffer:function(){this.showTile();if(this.backBufferTile&&(this.isFirstDraw||!this.layer.numLoadingTiles)){this.isFirstDraw=false;var maxExtent=this.layer.maxExtent;var withinMaxExtent=(maxExtent&&this.bounds.intersectsBounds(maxExtent,false));if(withinMaxExtent){this.backBufferTile.position=this.position;this.backBufferTile.bounds=this.bounds;this.backBufferTile.size=this.size;this.backBufferTile.imageSize=this.layer.imageSize||this.size;this.backBufferTile.imageOffset=this.layer.imageOffset;this.backBufferTile.resolution=this.layer.getResolution();this.backBufferTile.renderTile();}
+return this.renderTile();},resetBackBuffer:function(){this.showTile();if(this.backBufferTile&&(this.isFirstDraw||!this.layer.numLoadingTiles)){this.isFirstDraw=false;var maxExtent=this.layer.maxExtent;var withinMaxExtent=(maxExtent&&this.bounds.intersectsBounds(maxExtent,false));if(withinMaxExtent){this.backBufferTile.position=this.position;this.backBufferTile.bounds=this.bounds;this.backBufferTile.size=this.size;this.backBufferTile.imageSize=this.layer.getImageSize(this.bounds)||this.size;this.backBufferTile.imageOffset=this.layer.imageOffset;this.backBufferTile.resolution=this.layer.getResolution();this.backBufferTile.renderTile();}
 this.backBufferTile.hide();}},renderTile:function(){if(this.imgDiv==null){this.initImgDiv();}
 this.imgDiv.viewRequestID=this.layer.map.viewRequestID;if(this.layer.async){this.layer.getURLasync(this.bounds,this,"url",this.positionImage);}else{if(this.layer.url instanceof Array){this.imgDiv.urls=this.layer.url.slice();}
 this.url=this.layer.getURL(this.bounds);this.positionImage();}
 return true;},positionImage:function(){if(this.layer==null)
-return;OpenLayers.Util.modifyDOMElement(this.frame,null,this.position,this.size);var imageSize=this.layer.getImageSize();if(this.layerAlphaHack){OpenLayers.Util.modifyAlphaImageDiv(this.imgDiv,null,null,imageSize,this.url);}else{OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,imageSize);this.imgDiv.src=this.url;}},clear:function(){if(this.imgDiv){this.hide();if(OpenLayers.Tile.Image.useBlankTile){this.imgDiv.src=OpenLayers.Util.getImagesLocation()+"blank.gif";}}},initImgDiv:function(){var offset=this.layer.imageOffset;var size=this.layer.getImageSize();if(this.layerAlphaHack){this.imgDiv=OpenLayers.Util.createAlphaImageDiv(null,offset,size,null,"relative",null,null,null,true);}else{this.imgDiv=OpenLayers.Util.createImage(null,offset,size,null,"relative",null,null,true);}
+return;OpenLayers.Util.modifyDOMElement(this.frame,null,this.position,this.size);var imageSize=this.layer.getImageSize(this.bounds);if(this.layerAlphaHack){OpenLayers.Util.modifyAlphaImageDiv(this.imgDiv,null,null,imageSize,this.url);}else{OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,imageSize);this.imgDiv.src=this.url;}},clear:function(){if(this.imgDiv){this.hide();if(OpenLayers.Tile.Image.useBlankTile){this.imgDiv.src=OpenLayers.Util.getImagesLocation()+"blank.gif";}}},initImgDiv:function(){var offset=this.layer.imageOffset;var size=this.layer.getImageSize(this.bounds);if(this.layerAlphaHack){this.imgDiv=OpenLayers.Util.createAlphaImageDiv(null,offset,size,null,"relative",null,null,null,true);}else{this.imgDiv=OpenLayers.Util.createImage(null,offset,size,null,"relative",null,null,true);}
 this.imgDiv.className='olTileImage';this.frame.style.zIndex=this.isBackBuffer?0:1;this.frame.appendChild(this.imgDiv);this.layer.div.appendChild(this.frame);if(this.layer.opacity!=null){OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,null,null,null,null,this.layer.opacity);}
 this.imgDiv.map=this.layer.map;var onload=function(){if(this.isLoading){this.isLoading=false;this.events.triggerEvent("loadend");}};if(this.layerAlphaHack){OpenLayers.Event.observe(this.imgDiv.childNodes[0],'load',OpenLayers.Function.bind(onload,this));}else{OpenLayers.Event.observe(this.imgDiv,'load',OpenLayers.Function.bind(onload,this));}
 var onerror=function(){if(this.imgDiv._attempts>OpenLayers.IMAGE_RELOAD_ATTEMPTS){onload.call(this);}};OpenLayers.Event.observe(this.imgDiv,"error",OpenLayers.Function.bind(onerror,this));},checkImgURL:function(){if(this.layer){var loaded=this.layerAlphaHack?this.imgDiv.firstChild.src:this.imgDiv.src;if(!OpenLayers.Util.isEquivalentUrl(loaded,this.url)){this.hide();}}},startTransition:function(){if(!this.backBufferTile||!this.backBufferTile.imgDiv){return;}
@@ -719,6 +741,7 @@ var ratio=1;if(this.backBufferTile.resolution){ratio=this.backBufferTile.resolut
 if(ratio!=this.lastRatio){if(this.layer.transitionEffect=='resize'){var upperLeft=new OpenLayers.LonLat(this.backBufferTile.bounds.left,this.backBufferTile.bounds.top);var size=new OpenLayers.Size(this.backBufferTile.size.w*ratio,this.backBufferTile.size.h*ratio);var px=this.layer.map.getLayerPxFromLonLat(upperLeft);OpenLayers.Util.modifyDOMElement(this.backBufferTile.frame,null,px,size);var imageSize=this.backBufferTile.imageSize;imageSize=new OpenLayers.Size(imageSize.w*ratio,imageSize.h*ratio);var imageOffset=this.backBufferTile.imageOffset;if(imageOffset){imageOffset=new OpenLayers.Pixel(imageOffset.x*ratio,imageOffset.y*ratio);}
 OpenLayers.Util.modifyDOMElement(this.backBufferTile.imgDiv,null,imageOffset,imageSize);this.backBufferTile.show();}}else{if(this.layer.singleTile){this.backBufferTile.show();}else{this.backBufferTile.hide();}}
 this.lastRatio=ratio;},show:function(){this.frame.style.display='';if(OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,this.layer.transitionEffect)!=-1){if(navigator.userAgent.toLowerCase().indexOf("gecko")!=-1){this.frame.scrollLeft=this.frame.scrollLeft;}}},hide:function(){this.frame.style.display='none';},CLASS_NAME:"OpenLayers.Tile.Image"});OpenLayers.Tile.Image.useBlankTile=(OpenLayers.Util.getBrowserName()=="safari"||OpenLayers.Util.getBrowserName()=="opera");OpenLayers.Feature=OpenLayers.Class({layer:null,id:null,lonlat:null,data:null,marker:null,popupClass:OpenLayers.Popup.AnchoredBubble,popup:null,initialize:function(layer,lonlat,data){this.layer=layer;this.lonlat=lonlat;this.data=(data!=null)?data:{};this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},destroy:function(){if((this.layer!=null)&&(this.layer.map!=null)){if(this.popup!=null){this.layer.map.removePopup(this.popup);}}
+if(this.layer!=null&&this.marker!=null){this.layer.removeMarker(this.marker);}
 this.layer=null;this.id=null;this.lonlat=null;this.data=null;if(this.marker!=null){this.destroyMarker(this.marker);this.marker=null;}
 if(this.popup!=null){this.destroyPopup(this.popup);this.popup=null;}},onScreen:function(){var onScreen=false;if((this.layer!=null)&&(this.layer.map!=null)){var screenBounds=this.layer.map.getExtent();onScreen=screenBounds.containsLonLat(this.lonlat);}
 return onScreen;},createMarker:function(){if(this.lonlat!=null){this.marker=new OpenLayers.Marker(this.lonlat,this.data.icon);}
@@ -735,18 +758,20 @@ return!this.stopSingle;},passesTolerance:function(evt){var passes=true;if(this.p
 Math.pow(this.down.y-evt.xy.y,2));if(dpx>this.pixelTolerance){passes=false;}}
 return passes;},clearTimer:function(){if(this.timerId!=null){window.clearTimeout(this.timerId);this.timerId=null;}
 if(this.rightclickTimerId!=null){window.clearTimeout(this.rightclickTimerId);this.rightclickTimerId=null;}},delayedCall:function(evt){this.timerId=null;if(evt){this.callback('click',[evt]);}},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.clearTimer();this.down=null;deactivated=true;}
-return deactivated;},CLASS_NAME:"OpenLayers.Handler.Click"});OpenLayers.Handler.Drag=OpenLayers.Class(OpenLayers.Handler,{started:false,stopDown:true,dragging:false,last:null,start:null,oldOnselectstart:null,interval:0,timeoutId:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);},down:function(evt){},move:function(evt){},up:function(evt){},out:function(evt){},mousedown:function(evt){var propagate=true;this.dragging=false;if(this.checkModifiers(evt)&&OpenLayers.Event.isLeftClick(evt)){this.started=true;this.start=evt.xy;this.last=evt.xy;OpenLayers.Element.addClass(this.map.viewPortDiv,"olDragDown");this.down(evt);this.callback("down",[evt.xy]);OpenLayers.Event.stop(evt);if(!this.oldOnselectstart){this.oldOnselectstart=(document.onselectstart)?document.onselectstart:function(){return true;};document.onselectstart=function(){return false;};}
+return deactivated;},CLASS_NAME:"OpenLayers.Handler.Click"});OpenLayers.Handler.Drag=OpenLayers.Class(OpenLayers.Handler,{started:false,stopDown:true,dragging:false,last:null,start:null,oldOnselectstart:null,interval:0,timeoutId:null,documentDrag:false,documentEvents:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);},down:function(evt){},move:function(evt){},up:function(evt){},out:function(evt){},mousedown:function(evt){var propagate=true;this.dragging=false;if(this.checkModifiers(evt)&&OpenLayers.Event.isLeftClick(evt)){this.started=true;this.start=evt.xy;this.last=evt.xy;OpenLayers.Element.addClass(this.map.viewPortDiv,"olDragDown");this.down(evt);this.callback("down",[evt.xy]);OpenLayers.Event.stop(evt);if(!this.oldOnselectstart){this.oldOnselectstart=(document.onselectstart)?document.onselectstart:OpenLayers.Function.True;document.onselectstart=OpenLayers.Function.False;}
 propagate=!this.stopDown;}else{this.started=false;this.start=null;this.last=null;}
-return propagate;},mousemove:function(evt){if(this.started&&!this.timeoutId&&(evt.xy.x!=this.last.x||evt.xy.y!=this.last.y)){if(this.interval>0){this.timeoutId=setTimeout(OpenLayers.Function.bind(this.removeTimeout,this),this.interval);}
-this.dragging=true;this.move(evt);this.callback("move",[evt.xy]);if(!this.oldOnselectstart){this.oldOnselectstart=document.onselectstart;document.onselectstart=function(){return false;};}
+return propagate;},mousemove:function(evt){if(this.started&&!this.timeoutId&&(evt.xy.x!=this.last.x||evt.xy.y!=this.last.y)){if(this.documentDrag===true&&this.documentEvents){if(evt.element===document){this.adjustXY(evt);this.setEvent(evt);}else{this.destroyDocumentEvents();}}
+if(this.interval>0){this.timeoutId=setTimeout(OpenLayers.Function.bind(this.removeTimeout,this),this.interval);}
+this.dragging=true;this.move(evt);this.callback("move",[evt.xy]);if(!this.oldOnselectstart){this.oldOnselectstart=document.onselectstart;document.onselectstart=OpenLayers.Function.False;}
 this.last=this.evt.xy;}
-return true;},removeTimeout:function(){this.timeoutId=null;},mouseup:function(evt){if(this.started){var dragged=(this.start!=this.last);this.started=false;this.dragging=false;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");this.up(evt);this.callback("up",[evt.xy]);if(dragged){this.callback("done",[evt.xy]);}
+return true;},removeTimeout:function(){this.timeoutId=null;},mouseup:function(evt){if(this.started){if(this.documentDrag===true&&this.documentEvents){this.adjustXY(evt);this.destroyDocumentEvents();}
+var dragged=(this.start!=this.last);this.started=false;this.dragging=false;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");this.up(evt);this.callback("up",[evt.xy]);if(dragged){this.callback("done",[evt.xy]);}
 document.onselectstart=this.oldOnselectstart;}
-return true;},mouseout:function(evt){if(this.started&&OpenLayers.Util.mouseLeft(evt,this.map.div)){var dragged=(this.start!=this.last);this.started=false;this.dragging=false;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");this.out(evt);this.callback("out",[]);if(dragged){this.callback("done",[evt.xy]);}
-if(document.onselectstart){document.onselectstart=this.oldOnselectstart;}}
+return true;},mouseout:function(evt){if(this.started&&OpenLayers.Util.mouseLeft(evt,this.map.div)){if(this.documentDrag===true){this.documentEvents=new OpenLayers.Events(this,document,null,null,{includeXY:true});this.documentEvents.on({mousemove:this.mousemove,mouseup:this.mouseup});OpenLayers.Element.addClass(document.body,"olDragDown");}else{var dragged=(this.start!=this.last);this.started=false;this.dragging=false;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");this.out(evt);this.callback("out",[]);if(dragged){this.callback("done",[evt.xy]);}
+if(document.onselectstart){document.onselectstart=this.oldOnselectstart;}}}
 return true;},click:function(evt){return(this.start==this.last);},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.dragging=false;activated=true;}
 return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.started=false;this.dragging=false;this.start=null;this.last=null;deactivated=true;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");}
-return deactivated;},CLASS_NAME:"OpenLayers.Handler.Drag"});OpenLayers.Handler.Feature=OpenLayers.Class(OpenLayers.Handler,{EVENTMAP:{'click':{'in':'click','out':'clickout'},'mousemove':{'in':'over','out':'out'},'dblclick':{'in':'dblclick','out':null},'mousedown':{'in':null,'out':null},'mouseup':{'in':null,'out':null}},feature:null,lastFeature:null,down:null,up:null,clickTolerance:4,geometryTypes:null,stopClick:true,stopDown:true,stopUp:false,initialize:function(control,layer,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,[control,callbacks,options]);this.layer=layer;},mousedown:function(evt){this.down=evt.xy;return this.handle(evt)?!this.stopDown:true;},mouseup:function(evt){this.up=evt.xy;return this.handle(evt)?!this.stopUp:true;},click:function(evt){return this.handle(evt)?!this.stopClick:true;},mousemove:function(evt){if(!this.callbacks['over']&&!this.callbacks['out']){return true;}
+return deactivated;},adjustXY:function(evt){var pos=OpenLayers.Util.pagePosition(this.map.div);evt.xy.x-=pos[0];evt.xy.y-=pos[1];},destroyDocumentEvents:function(){OpenLayers.Element.removeClass(document.body,"olDragDown");this.documentEvents.destroy();this.documentEvents=null;},CLASS_NAME:"OpenLayers.Handler.Drag"});OpenLayers.Handler.Feature=OpenLayers.Class(OpenLayers.Handler,{EVENTMAP:{'click':{'in':'click','out':'clickout'},'mousemove':{'in':'over','out':'out'},'dblclick':{'in':'dblclick','out':null},'mousedown':{'in':null,'out':null},'mouseup':{'in':null,'out':null}},feature:null,lastFeature:null,down:null,up:null,clickTolerance:4,geometryTypes:null,stopClick:true,stopDown:true,stopUp:false,initialize:function(control,layer,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,[control,callbacks,options]);this.layer=layer;},mousedown:function(evt){this.down=evt.xy;return this.handle(evt)?!this.stopDown:true;},mouseup:function(evt){this.up=evt.xy;return this.handle(evt)?!this.stopUp:true;},click:function(evt){return this.handle(evt)?!this.stopClick:true;},mousemove:function(evt){if(!this.callbacks['over']&&!this.callbacks['out']){return true;}
 this.handle(evt);return true;},dblclick:function(evt){return!this.handle(evt);},geometryTypeMatches:function(feature){return this.geometryTypes==null||OpenLayers.Util.indexOf(this.geometryTypes,feature.geometry.CLASS_NAME)>-1;},handle:function(evt){if(this.feature&&!this.feature.layer){this.feature=null;}
 var type=evt.type;var handled=false;var previouslyIn=!!(this.feature);var click=(type=="click"||type=="dblclick");this.feature=this.layer.getFeatureFromEvent(evt);if(this.feature&&!this.feature.layer){this.feature=null;}
 if(this.lastFeature&&!this.lastFeature.layer){this.lastFeature=null;}
@@ -757,29 +782,30 @@ this.feature=null;}}else{if(this.lastFeature&&(previouslyIn||click)){this.trigge
 return handled;},triggerCallback:function(type,mode,args){var key=this.EVENTMAP[type][mode];if(key){if(type=='click'&&this.up&&this.down){var dpx=Math.sqrt(Math.pow(this.up.x-this.down.x,2)+
 Math.pow(this.up.y-this.down.y,2));if(dpx<=this.clickTolerance){this.callback(key,args);}}else{this.callback(key,args);}}},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.moveLayerToTop();this.map.events.on({"removelayer":this.handleMapEvents,"changelayer":this.handleMapEvents,scope:this});activated=true;}
 return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.moveLayerBack();this.feature=null;this.lastFeature=null;this.down=null;this.up=null;this.map.events.un({"removelayer":this.handleMapEvents,"changelayer":this.handleMapEvents,scope:this});deactivated=true;}
-return deactivated;},handleMapEvents:function(evt){if(!evt.property||evt.property=="order"){this.moveLayerToTop();}},moveLayerToTop:function(){var index=Math.max(this.map.Z_INDEX_BASE['Feature']-1,this.layer.getZIndex())+1;this.layer.setZIndex(index);},moveLayerBack:function(){var index=this.layer.getZIndex()-1;if(index>=this.map.Z_INDEX_BASE['Feature']){this.layer.setZIndex(index);}else{this.map.setLayerZIndex(this.layer,this.map.getLayerIndex(this.layer));}},CLASS_NAME:"OpenLayers.Handler.Feature"});OpenLayers.Handler.MouseWheel=OpenLayers.Class(OpenLayers.Handler,{wheelListener:null,mousePosition:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);this.wheelListener=OpenLayers.Function.bindAsEventListener(this.onWheelEvent,this);},destroy:function(){OpenLayers.Handler.prototype.destroy.apply(this,arguments);this.wheelListener=null;},onWheelEvent:function(e){if(!this.map||!this.checkModifiers(e)){return;}
+return deactivated;},handleMapEvents:function(evt){if(!evt.property||evt.property=="order"){this.moveLayerToTop();}},moveLayerToTop:function(){var index=Math.max(this.map.Z_INDEX_BASE['Feature']-1,this.layer.getZIndex())+1;this.layer.setZIndex(index);},moveLayerBack:function(){var index=this.layer.getZIndex()-1;if(index>=this.map.Z_INDEX_BASE['Feature']){this.layer.setZIndex(index);}else{this.map.setLayerZIndex(this.layer,this.map.getLayerIndex(this.layer));}},CLASS_NAME:"OpenLayers.Handler.Feature"});OpenLayers.Handler.MouseWheel=OpenLayers.Class(OpenLayers.Handler,{wheelListener:null,mousePosition:null,interval:0,delta:0,cumulative:true,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);this.wheelListener=OpenLayers.Function.bindAsEventListener(this.onWheelEvent,this);},destroy:function(){OpenLayers.Handler.prototype.destroy.apply(this,arguments);this.wheelListener=null;},onWheelEvent:function(e){if(!this.map||!this.checkModifiers(e)){return;}
 var overScrollableDiv=false;var overLayerDiv=false;var overMapDiv=false;var elem=OpenLayers.Event.element(e);while((elem!=null)&&!overMapDiv&&!overScrollableDiv){if(!overScrollableDiv){try{if(elem.currentStyle){overflow=elem.currentStyle["overflow"];}else{var style=document.defaultView.getComputedStyle(elem,null);var overflow=style.getPropertyValue("overflow");}
 overScrollableDiv=(overflow&&(overflow=="auto")||(overflow=="scroll"));}catch(err){}}
 if(!overLayerDiv){for(var i=0,len=this.map.layers.length;i<len;i++){if(elem==this.map.layers[i].div||elem==this.map.layers[i].pane){overLayerDiv=true;break;}}}
 overMapDiv=(elem==this.map.div);elem=elem.parentNode;}
-if(!overScrollableDiv&&overMapDiv){if(overLayerDiv){this.wheelZoom(e);}
-OpenLayers.Event.stop(e);}},wheelZoom:function(e){var delta=0;if(!e){e=window.event;}
+if(!overScrollableDiv&&overMapDiv){if(overLayerDiv){var delta=0;if(!e){e=window.event;}
 if(e.wheelDelta){delta=e.wheelDelta/120;if(window.opera&&window.opera.version()<9.2){delta=-delta;}}else if(e.detail){delta=-e.detail/3;}
-if(delta){if(this.mousePosition){e.xy=this.mousePosition;}
+this.delta=this.delta+delta;if(this.interval){window.clearTimeout(this._timeoutId);this._timeoutId=window.setTimeout(OpenLayers.Function.bind(function(){this.wheelZoom(e);},this),this.interval);}else{this.wheelZoom(e);}}
+OpenLayers.Event.stop(e);}},wheelZoom:function(e){var delta=this.delta;this.delta=0;if(delta){if(this.mousePosition){e.xy=this.mousePosition;}
 if(!e.xy){e.xy=this.map.getPixelFromLonLat(this.map.getCenter());}
-if(delta<0){this.callback("down",[e,delta]);}else{this.callback("up",[e,delta]);}}},mousemove:function(evt){this.mousePosition=evt.xy;},activate:function(evt){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){var wheelListener=this.wheelListener;OpenLayers.Event.observe(window,"DOMMouseScroll",wheelListener);OpenLayers.Event.observe(window,"mousewheel",wheelListener);OpenLayers.Event.observe(document,"mousewheel",wheelListener);return true;}else{return false;}},deactivate:function(evt){if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){var wheelListener=this.wheelListener;OpenLayers.Event.stopObserving(window,"DOMMouseScroll",wheelListener);OpenLayers.Event.stopObserving(window,"mousewheel",wheelListener);OpenLayers.Event.stopObserving(document,"mousewheel",wheelListener);return true;}else{return false;}},CLASS_NAME:"OpenLayers.Handler.MouseWheel"});OpenLayers.Layer=OpenLayers.Class({id:null,name:null,div:null,opacity:null,alwaysInRange:null,EVENT_TYPES:["loadstart","loadend","loadcancel","visibilitychanged","move","moveend"],events:null,map:null,isBaseLayer:false,alpha:false,displayInLayerSwitcher:true,visibility:true,attribution:null,inRange:false,imageSize:null,imageOffset:null,options:null,eventListeners:null,gutter:0,projection:null,units:null,scales:null,resolutions:null,maxExtent:null,minExtent:null,maxResolution:null,minResolution:null,numZoomLevels:null,minScale:null,maxScale:null,displayOutsideMaxExtent:false,wrapDateLine:false,transitionEffect:null,SUPPORTED_TRANSITIONS:['resize'],initialize:function(name,options){this.addOptions(options);this.name=name;if(this.id==null){this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");this.div=OpenLayers.Util.createDiv(this.id);this.div.style.width="100%";this.div.style.height="100%";this.div.dir="ltr";this.events=new OpenLayers.Events(this,this.div,this.EVENT_TYPES);if(this.eventListeners instanceof Object){this.events.on(this.eventListeners);}}
+if(delta<0){this.callback("down",[e,this.cumulative?delta:-1]);}else{this.callback("up",[e,this.cumulative?delta:1]);}}},mousemove:function(evt){this.mousePosition=evt.xy;},activate:function(evt){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){var wheelListener=this.wheelListener;OpenLayers.Event.observe(window,"DOMMouseScroll",wheelListener);OpenLayers.Event.observe(window,"mousewheel",wheelListener);OpenLayers.Event.observe(document,"mousewheel",wheelListener);return true;}else{return false;}},deactivate:function(evt){if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){var wheelListener=this.wheelListener;OpenLayers.Event.stopObserving(window,"DOMMouseScroll",wheelListener);OpenLayers.Event.stopObserving(window,"mousewheel",wheelListener);OpenLayers.Event.stopObserving(document,"mousewheel",wheelListener);return true;}else{return false;}},CLASS_NAME:"OpenLayers.Handler.MouseWheel"});OpenLayers.Layer=OpenLayers.Class({id:null,name:null,div:null,opacity:null,alwaysInRange:null,EVENT_TYPES:["loadstart","loadend","loadcancel","visibilitychanged","move","moveend"],events:null,map:null,isBaseLayer:false,alpha:false,displayInLayerSwitcher:true,visibility:true,attribution:null,inRange:false,imageSize:null,imageOffset:null,options:null,eventListeners:null,gutter:0,projection:null,units:null,scales:null,resolutions:null,maxExtent:null,minExtent:null,maxResolution:null,minResolution:null,numZoomLevels:null,minScale:null,maxScale:null,displayOutsideMaxExtent:false,wrapDateLine:false,transitionEffect:null,SUPPORTED_TRANSITIONS:['resize'],initialize:function(name,options){this.addOptions(options);this.name=name;if(this.id==null){this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");this.div=OpenLayers.Util.createDiv(this.id);this.div.style.width="100%";this.div.style.height="100%";this.div.dir="ltr";this.events=new OpenLayers.Events(this,this.div,this.EVENT_TYPES);if(this.eventListeners instanceof Object){this.events.on(this.eventListeners);}}
 if(this.wrapDateLine){this.displayOutsideMaxExtent=true;}},destroy:function(setNewBaseLayer){if(setNewBaseLayer==null){setNewBaseLayer=true;}
 if(this.map!=null){this.map.removeLayer(this,setNewBaseLayer);}
 this.projection=null;this.map=null;this.name=null;this.div=null;this.options=null;if(this.events){if(this.eventListeners){this.events.un(this.eventListeners);}
 this.events.destroy();}
-this.eventListeners=null;this.events=null;},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer(this.name,this.options);}
-OpenLayers.Util.applyDefaults(obj,this);obj.map=null;return obj;},setName:function(newName){if(newName!=this.name){this.name=newName;if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"name"});}}},addOptions:function(newOptions){if(this.options==null){this.options={};}
+this.eventListeners=null;this.events=null;},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer(this.name,this.getOptions());}
+OpenLayers.Util.applyDefaults(obj,this);obj.map=null;return obj;},getOptions:function(){var options={};for(var o in this.options){options[o]=this[o];}
+return options;},setName:function(newName){if(newName!=this.name){this.name=newName;if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"name"});}}},addOptions:function(newOptions){if(this.options==null){this.options={};}
 OpenLayers.Util.extend(this.options,newOptions);OpenLayers.Util.extend(this,newOptions);},onMapResize:function(){},redraw:function(){var redrawn=false;if(this.map){this.inRange=this.calculateInRange();var extent=this.getExtent();if(extent&&this.inRange&&this.visibility){var zoomChanged=true;this.moveTo(extent,zoomChanged,false);this.events.triggerEvent("moveend",{"zoomChanged":zoomChanged});redrawn=true;}}
 return redrawn;},moveTo:function(bounds,zoomChanged,dragging){var display=this.visibility;if(!this.isBaseLayer){display=display&&this.inRange;}
 this.display(display);},setMap:function(map){if(this.map==null){this.map=map;this.maxExtent=this.maxExtent||this.map.maxExtent;this.projection=this.projection||this.map.projection;if(this.projection&&typeof this.projection=="string"){this.projection=new OpenLayers.Projection(this.projection);}
 this.units=this.projection.getUnits()||this.units||this.map.units;this.initResolutions();if(!this.isBaseLayer){this.inRange=this.calculateInRange();var show=((this.visibility)&&(this.inRange));this.div.style.display=show?"":"none";}
-this.setTileSize();}},afterAdd:function(){},removeMap:function(map){},getImageSize:function(){return(this.imageSize||this.tileSize);},setTileSize:function(size){var tileSize=(size)?size:((this.tileSize)?this.tileSize:this.map.getTileSize());this.tileSize=tileSize;if(this.gutter){this.imageOffset=new OpenLayers.Pixel(-this.gutter,-this.gutter);this.imageSize=new OpenLayers.Size(tileSize.w+(2*this.gutter),tileSize.h+(2*this.gutter));}},getVisibility:function(){return this.visibility;},setVisibility:function(visibility){if(visibility!=this.visibility){this.visibility=visibility;this.display(visibility);this.redraw();if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"visibility"});}
-this.events.triggerEvent("visibilitychanged");}},display:function(display){var inRange=this.calculateInRange();if(display!=(this.div.style.display!="none")){this.div.style.display=(display&&inRange)?"block":"none";}},calculateInRange:function(){var inRange=false;if(this.alwaysInRange){inRange=true;}else{if(this.map){var resolution=this.map.getResolution();inRange=((resolution>=this.minResolution)&&(resolution<=this.maxResolution));}}
+this.setTileSize();}},afterAdd:function(){},removeMap:function(map){},getImageSize:function(bounds){return(this.imageSize||this.tileSize);},setTileSize:function(size){var tileSize=(size)?size:((this.tileSize)?this.tileSize:this.map.getTileSize());this.tileSize=tileSize;if(this.gutter){this.imageOffset=new OpenLayers.Pixel(-this.gutter,-this.gutter);this.imageSize=new OpenLayers.Size(tileSize.w+(2*this.gutter),tileSize.h+(2*this.gutter));}},getVisibility:function(){return this.visibility;},setVisibility:function(visibility){if(visibility!=this.visibility){this.visibility=visibility;this.display(visibility);this.redraw();if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"visibility"});}
+this.events.triggerEvent("visibilitychanged");}},display:function(display){if(display!=(this.div.style.display!="none")){this.div.style.display=(display&&this.calculateInRange())?"block":"none";}},calculateInRange:function(){var inRange=false;if(this.alwaysInRange){inRange=true;}else{if(this.map){var resolution=this.map.getResolution();inRange=((resolution>=this.minResolution)&&(resolution<=this.maxResolution));}}
 return inRange;},setIsBaseLayer:function(isBaseLayer){if(isBaseLayer!=this.isBaseLayer){this.isBaseLayer=isBaseLayer;if(this.map!=null){this.map.events.triggerEvent("changebaselayer",{layer:this});}}},initResolutions:function(){var props=new Array('projection','units','scales','resolutions','maxScale','minScale','maxResolution','minResolution','minExtent','maxExtent','numZoomLevels','maxZoomLevel');var notScaleProps=['projection','units'];var useInRange=false;var confProps={};for(var i=0,len=props.length;i<len;i++){var property=props[i];if(this.options[property]&&OpenLayers.Util.indexOf(notScaleProps,property)==-1){useInRange=true;}
 confProps[property]=this.options[property]||this.map[property];}
 if(this.alwaysInRange==null){this.alwaysInRange=!useInRange;}
@@ -802,7 +828,8 @@ minDiff=diff;}else{if(this.resolutions[i]<resolution){break;}}}
 zoom=Math.max(0,i-1);}
 return zoom;},getLonLatFromViewPortPx:function(viewPortPx){var lonlat=null;if(viewPortPx!=null){var size=this.map.getSize();var center=this.map.getCenter();if(center){var res=this.map.getResolution();var delta_x=viewPortPx.x-(size.w/2);var delta_y=viewPortPx.y-(size.h/2);lonlat=new OpenLayers.LonLat(center.lon+delta_x*res,center.lat-delta_y*res);if(this.wrapDateLine){lonlat=lonlat.wrapDateLine(this.maxExtent);}}}
 return lonlat;},getViewPortPxFromLonLat:function(lonlat){var px=null;if(lonlat!=null){var resolution=this.map.getResolution();var extent=this.map.getExtent();px=new OpenLayers.Pixel((1/resolution*(lonlat.lon-extent.left)),(1/resolution*(extent.top-lonlat.lat)));}
-return px;},setOpacity:function(opacity){if(opacity!=this.opacity){this.opacity=opacity;for(var i=0,len=this.div.childNodes.length;i<len;++i){var element=this.div.childNodes[i].firstChild;OpenLayers.Util.modifyDOMElement(element,null,null,null,null,null,null,opacity);}}},getZIndex:function(){return this.div.style.zIndex;},setZIndex:function(zIndex){this.div.style.zIndex=zIndex;},adjustBounds:function(bounds){if(this.gutter){var mapGutter=this.gutter*this.map.getResolution();bounds=new OpenLayers.Bounds(bounds.left-mapGutter,bounds.bottom-mapGutter,bounds.right+mapGutter,bounds.top+mapGutter);}
+return px;},setOpacity:function(opacity){if(opacity!=this.opacity){this.opacity=opacity;for(var i=0,len=this.div.childNodes.length;i<len;++i){var element=this.div.childNodes[i].firstChild;OpenLayers.Util.modifyDOMElement(element,null,null,null,null,null,null,opacity);}
+if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"opacity"});}}},getZIndex:function(){return this.div.style.zIndex;},setZIndex:function(zIndex){this.div.style.zIndex=zIndex;},adjustBounds:function(bounds){if(this.gutter){var mapGutter=this.gutter*this.map.getResolution();bounds=new OpenLayers.Bounds(bounds.left-mapGutter,bounds.bottom-mapGutter,bounds.right+mapGutter,bounds.top+mapGutter);}
 if(this.wrapDateLine){var wrappingOptions={'rightTolerance':this.getResolution()};bounds=bounds.wrapDateLine(this.maxExtent,wrappingOptions);}
 return bounds;},CLASS_NAME:"OpenLayers.Layer"});(function(){var oXMLHttpRequest=window.XMLHttpRequest;var bGecko=!!window.controllers,bIE=window.document.all&&!window.opera;function cXMLHttpRequest(){this._object=oXMLHttpRequest?new oXMLHttpRequest:new window.ActiveXObject('Microsoft.XMLHTTP');};if(bGecko&&oXMLHttpRequest.wrapped)
 cXMLHttpRequest.wrapped=oXMLHttpRequest.wrapped;cXMLHttpRequest.UNSENT=0;cXMLHttpRequest.OPENED=1;cXMLHttpRequest.HEADERS_RECEIVED=2;cXMLHttpRequest.LOADING=3;cXMLHttpRequest.DONE=4;cXMLHttpRequest.prototype.readyState=cXMLHttpRequest.UNSENT;cXMLHttpRequest.prototype.responseText="";cXMLHttpRequest.prototype.responseXML=null;cXMLHttpRequest.prototype.status=0;cXMLHttpRequest.prototype.statusText="";cXMLHttpRequest.prototype.onreadystatechange=null;cXMLHttpRequest.onreadystatechange=null;cXMLHttpRequest.onopen=null;cXMLHttpRequest.onsend=null;cXMLHttpRequest.onabort=null;cXMLHttpRequest.prototype.open=function(sMethod,sUrl,bAsync,sUser,sPassword){this._async=bAsync;var oRequest=this,nState=this.readyState;if(bIE){var fOnUnload=function(){if(oRequest._object.readyState!=cXMLHttpRequest.DONE)
@@ -830,16 +857,16 @@ return null;return oDocument;};function fSynchronizeValues(oRequest){try{oReques
 try{oRequest.responseXML=fGetDocument(oRequest._object);}catch(e){}
 try{oRequest.status=oRequest._object.status;}catch(e){}
 try{oRequest.statusText=oRequest._object.statusText;}catch(e){}};function fCleanTransport(oRequest){oRequest._object.onreadystatechange=new window.Function;delete oRequest._headers;};if(!window.Function.prototype.apply){window.Function.prototype.apply=function(oRequest,oArguments){if(!oArguments)
-oArguments=[];oRequest.__func=this;oRequest.__func(oArguments[0],oArguments[1],oArguments[2],oArguments[3],oArguments[4]);delete oRequest.__func;};};OpenLayers.Request.XMLHttpRequest=cXMLHttpRequest;})();OpenLayers.Control.DragPan=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,panned:false,interval:25,draw:function(){this.handler=new OpenLayers.Handler.Drag(this,{"move":this.panMap,"done":this.panMapDone},{interval:this.interval});},panMap:function(xy){this.panned=true;this.map.pan(this.handler.last.x-xy.x,this.handler.last.y-xy.y,{dragging:this.handler.dragging,animate:false});},panMapDone:function(xy){if(this.panned){this.panMap(xy);this.panned=false;}},CLASS_NAME:"OpenLayers.Control.DragPan"});OpenLayers.State={UNKNOWN:'Unknown',INSERT:'Insert',UPDATE:'Update',DELETE:'Delete'};OpenLayers.Feature.Vector=OpenLayers.Class(OpenLayers.Feature,{fid:null,geometry:null,attributes:null,bounds:null,state:null,style:null,renderIntent:"default",initialize:function(geometry,attributes,style){OpenLayers.Feature.prototype.initialize.apply(this,[null,null,attributes]);this.lonlat=null;this.geometry=geometry?geometry:null;this.state=null;this.attributes={};if(attributes){this.attributes=OpenLayers.Util.extend(this.attributes,attributes);}
+oArguments=[];oRequest.__func=this;oRequest.__func(oArguments[0],oArguments[1],oArguments[2],oArguments[3],oArguments[4]);delete oRequest.__func;};};OpenLayers.Request.XMLHttpRequest=cXMLHttpRequest;})();OpenLayers.Control.DragPan=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,panned:false,interval:25,documentDrag:false,draw:function(){this.handler=new OpenLayers.Handler.Drag(this,{"move":this.panMap,"done":this.panMapDone},{interval:this.interval,documentDrag:this.documentDrag});},panMap:function(xy){this.panned=true;this.map.pan(this.handler.last.x-xy.x,this.handler.last.y-xy.y,{dragging:this.handler.dragging,animate:false});},panMapDone:function(xy){if(this.panned){this.panMap(xy);this.panned=false;}},CLASS_NAME:"OpenLayers.Control.DragPan"});OpenLayers.State={UNKNOWN:'Unknown',INSERT:'Insert',UPDATE:'Update',DELETE:'Delete'};OpenLayers.Feature.Vector=OpenLayers.Class(OpenLayers.Feature,{fid:null,geometry:null,attributes:null,bounds:null,state:null,style:null,url:null,renderIntent:"default",initialize:function(geometry,attributes,style){OpenLayers.Feature.prototype.initialize.apply(this,[null,null,attributes]);this.lonlat=null;this.geometry=geometry?geometry:null;this.state=null;this.attributes={};if(attributes){this.attributes=OpenLayers.Util.extend(this.attributes,attributes);}
 this.style=style?style:null;},destroy:function(){if(this.layer){this.layer.removeFeatures(this);this.layer=null;}
 this.geometry=null;OpenLayers.Feature.prototype.destroy.apply(this,arguments);},clone:function(){return new OpenLayers.Feature.Vector(this.geometry?this.geometry.clone():null,this.attributes,this.style);},onScreen:function(boundsOnly){var onScreen=false;if(this.layer&&this.layer.map){var screenBounds=this.layer.map.getExtent();if(boundsOnly){var featureBounds=this.geometry.getBounds();onScreen=screenBounds.intersectsBounds(featureBounds);}else{var screenPoly=screenBounds.toGeometry();onScreen=screenPoly.intersects(this.geometry);}}
-return onScreen;},createMarker:function(){return null;},destroyMarker:function(){},createPopup:function(){return null;},atPoint:function(lonlat,toleranceLon,toleranceLat){var atPoint=false;if(this.geometry){atPoint=this.geometry.atPoint(lonlat,toleranceLon,toleranceLat);}
+return onScreen;},getVisibility:function(){return!(this.style&&this.style.display=='none'||!this.layer||this.layer&&this.layer.styleMap&&this.layer.styleMap.createSymbolizer(this,this.renderIntent).display=='none'||this.layer&&!this.layer.getVisibility());},createMarker:function(){return null;},destroyMarker:function(){},createPopup:function(){return null;},atPoint:function(lonlat,toleranceLon,toleranceLat){var atPoint=false;if(this.geometry){atPoint=this.geometry.atPoint(lonlat,toleranceLon,toleranceLat);}
 return atPoint;},destroyPopup:function(){},move:function(location){if(!this.layer||!this.geometry.move){return;}
 var pixel;if(location.CLASS_NAME=="OpenLayers.LonLat"){pixel=this.layer.getViewPortPxFromLonLat(location);}else{pixel=location;}
 var lastPixel=this.layer.getViewPortPxFromLonLat(this.geometry.getBounds().getCenterLonLat());var res=this.layer.map.getResolution();this.geometry.move(res*(pixel.x-lastPixel.x),res*(lastPixel.y-pixel.y));this.layer.drawFeature(this);return lastPixel;},toState:function(state){if(state==OpenLayers.State.UPDATE){switch(this.state){case OpenLayers.State.UNKNOWN:case OpenLayers.State.DELETE:this.state=state;break;case OpenLayers.State.UPDATE:case OpenLayers.State.INSERT:break;}}else if(state==OpenLayers.State.INSERT){switch(this.state){case OpenLayers.State.UNKNOWN:break;default:this.state=state;break;}}else if(state==OpenLayers.State.DELETE){switch(this.state){case OpenLayers.State.INSERT:break;case OpenLayers.State.DELETE:break;case OpenLayers.State.UNKNOWN:case OpenLayers.State.UPDATE:this.state=state;break;}}else if(state==OpenLayers.State.UNKNOWN){this.state=state;}},CLASS_NAME:"OpenLayers.Feature.Vector"});OpenLayers.Feature.Vector.style={'default':{fillColor:"#ee9900",fillOpacity:0.4,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"#ee9900",strokeOpacity:1,strokeWidth:1,strokeLinecap:"round",strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"inherit"},'select':{fillColor:"blue",fillOpacity:0.4,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"blue",strokeOpacity:1,strokeWidth:2,strokeLinecap:"round",strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"pointer"},'temporary':{fillColor:"#66cccc",fillOpacity:0.2,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"#66cccc",strokeOpacity:1,strokeLinecap:"round",strokeWidth:2,strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"inherit"},'delete':{display:"none"}};OpenLayers.Handler.Box=OpenLayers.Class(OpenLayers.Handler,{dragHandler:null,boxDivClassName:'olHandlerBoxZoomBox',boxCharacteristics:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);var callbacks={"down":this.startBox,"move":this.moveBox,"out":this.removeBox,"up":this.endBox};this.dragHandler=new OpenLayers.Handler.Drag(this,callbacks,{keyMask:this.keyMask});},setMap:function(map){OpenLayers.Handler.prototype.setMap.apply(this,arguments);if(this.dragHandler){this.dragHandler.setMap(map);}},startBox:function(xy){this.zoomBox=OpenLayers.Util.createDiv('zoomBox',this.dragHandler.start);this.zoomBox.className=this.boxDivClassName;this.zoomBox.style.zIndex=this.map.Z_INDEX_BASE["Popup"]-1;this.map.viewPortDiv.appendChild(this.zoomBox);OpenLayers.Element.addClass(this.map.viewPortDiv,"olDrawBox");},moveBox:function(xy){var startX=this.dragHandler.start.x;var startY=this.dragHandler.start.y;var deltaX=Math.abs(startX-xy.x);var deltaY=Math.abs(startY-xy.y);this.zoomBox.style.width=Math.max(1,deltaX)+"px";this.zoomBox.style.height=Math.max(1,deltaY)+"px";this.zoomBox.style.left=xy.x<startX?xy.x+"px":startX+"px";this.zoomBox.style.top=xy.y<startY?xy.y+"px":startY+"px";var box=this.getBoxCharacteristics();if(box.newBoxModel){if(xy.x>startX){this.zoomBox.style.width=Math.max(1,deltaX-box.xOffset)+"px";}
 if(xy.y>startY){this.zoomBox.style.height=Math.max(1,deltaY-box.yOffset)+"px";}}},endBox:function(end){var result;if(Math.abs(this.dragHandler.start.x-end.x)>5||Math.abs(this.dragHandler.start.y-end.y)>5){var start=this.dragHandler.start;var top=Math.min(start.y,end.y);var bottom=Math.max(start.y,end.y);var left=Math.min(start.x,end.x);var right=Math.max(start.x,end.x);result=new OpenLayers.Bounds(left,bottom,right,top);}else{result=this.dragHandler.start.clone();}
 this.removeBox();this.callback("done",[result]);},removeBox:function(){this.map.viewPortDiv.removeChild(this.zoomBox);this.zoomBox=null;this.boxCharacteristics=null;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDrawBox");},activate:function(){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.dragHandler.activate();return true;}else{return false;}},deactivate:function(){if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.dragHandler.deactivate();return true;}else{return false;}},getBoxCharacteristics:function(){if(!this.boxCharacteristics){var xOffset=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-left-width"))+parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-right-width"))+1;var yOffset=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-top-width"))+parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-bottom-width"))+1;var newBoxModel=OpenLayers.Util.getBrowserName()=="msie"?document.compatMode!="BackCompat":true;this.boxCharacteristics={xOffset:xOffset,yOffset:yOffset,newBoxModel:newBoxModel};}
-return this.boxCharacteristics;},CLASS_NAME:"OpenLayers.Handler.Box"});OpenLayers.Handler.RegularPolygon=OpenLayers.Class(OpenLayers.Handler.Drag,{sides:4,radius:null,snapAngle:null,snapToggle:'shiftKey',persist:false,irregular:false,angle:null,fixedRadius:false,feature:null,layer:null,origin:null,initialize:function(control,callbacks,options){this.style=OpenLayers.Util.extend(OpenLayers.Feature.Vector.style['default'],{});OpenLayers.Handler.prototype.initialize.apply(this,[control,callbacks,options]);this.options=(options)?options:new Object();},setOptions:function(newOptions){OpenLayers.Util.extend(this.options,newOptions);OpenLayers.Util.extend(this,newOptions);},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){var options={displayInLayerSwitcher:false,calculateInRange:function(){return true;}};this.layer=new OpenLayers.Layer.Vector(this.CLASS_NAME,options);this.map.addLayer(this.layer);activated=true;}
+return this.boxCharacteristics;},CLASS_NAME:"OpenLayers.Handler.Box"});OpenLayers.Handler.RegularPolygon=OpenLayers.Class(OpenLayers.Handler.Drag,{sides:4,radius:null,snapAngle:null,snapToggle:'shiftKey',persist:false,irregular:false,angle:null,fixedRadius:false,feature:null,layer:null,origin:null,initialize:function(control,callbacks,options){this.style=OpenLayers.Util.extend(OpenLayers.Feature.Vector.style['default'],{});OpenLayers.Handler.prototype.initialize.apply(this,[control,callbacks,options]);this.options=(options)?options:new Object();},setOptions:function(newOptions){OpenLayers.Util.extend(this.options,newOptions);OpenLayers.Util.extend(this,newOptions);},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){var options={displayInLayerSwitcher:false,calculateInRange:OpenLayers.Function.True};this.layer=new OpenLayers.Layer.Vector(this.CLASS_NAME,options);this.map.addLayer(this.layer);activated=true;}
 return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.Drag.prototype.deactivate.apply(this,arguments)){if(this.dragging){this.cancel();}
 if(this.layer.map!=null){this.layer.destroy(false);if(this.feature){this.feature.destroy();}}
 this.layer=null;this.feature=null;deactivated=true;}
@@ -851,18 +878,19 @@ this.feature.geometry.resize(1,this.origin,ratio);this.feature.geometry.move(dx/
 this.layer.drawFeature(this.feature,this.style);},up:function(evt){this.finalize();if(this.start==this.last){this.callback("done",[evt.xy]);}},out:function(evt){this.finalize();},createGeometry:function(){this.angle=Math.PI*((1/this.sides)-(1/2));if(this.snapAngle){this.angle+=this.snapAngle*(Math.PI/180);}
 this.feature.geometry=OpenLayers.Geometry.Polygon.createRegularPolygon(this.origin,this.radius,this.sides,this.snapAngle);},modifyGeometry:function(){var angle,dx,dy,point;var ring=this.feature.geometry.components[0];if(ring.components.length!=(this.sides+1)){this.createGeometry();ring=this.feature.geometry.components[0];}
 for(var i=0;i<this.sides;++i){point=ring.components[i];angle=this.angle+(i*2*Math.PI/this.sides);point.x=this.origin.x+(this.radius*Math.cos(angle));point.y=this.origin.y+(this.radius*Math.sin(angle));point.clearBounds();}},calculateAngle:function(point,evt){var alpha=Math.atan2(point.y-this.origin.y,point.x-this.origin.x);if(this.snapAngle&&(this.snapToggle&&!evt[this.snapToggle])){var snapAngleRad=(Math.PI/180)*this.snapAngle;this.angle=Math.round(alpha/snapAngleRad)*snapAngleRad;}else{this.angle=alpha;}},cancel:function(){this.callback("cancel",null);this.finalize();},finalize:function(){this.origin=null;this.radius=this.options.radius;},clear:function(){this.layer.renderer.clear();this.layer.destroyFeatures();},callback:function(name,args){if(this.callbacks[name]){this.callbacks[name].apply(this.control,[this.feature.geometry.clone()]);}
-if(!this.persist&&(name=="done"||name=="cancel")){this.clear();}},CLASS_NAME:"OpenLayers.Handler.RegularPolygon"});OpenLayers.Layer.HTTPRequest=OpenLayers.Class(OpenLayers.Layer,{URL_HASH_FACTOR:(Math.sqrt(5)-1)/2,url:null,params:null,reproject:false,initialize:function(name,url,params,options){var newArguments=arguments;newArguments=[name,options];OpenLayers.Layer.prototype.initialize.apply(this,newArguments);this.url=url;this.params=OpenLayers.Util.extend({},params);},destroy:function(){this.url=null;this.params=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.HTTPRequest(this.name,this.url,this.params,this.options);}
-obj=OpenLayers.Layer.prototype.clone.apply(this,[obj]);return obj;},setUrl:function(newUrl){this.url=newUrl;},mergeNewParams:function(newParams){this.params=OpenLayers.Util.extend(this.params,newParams);return this.redraw();},redraw:function(force){if(force){return this.mergeNewParams({"_olSalt":Math.random()});}else{return OpenLayers.Layer.prototype.redraw.apply(this,[]);}},selectUrl:function(paramString,urls){var product=1;for(var i=0,len=paramString.length;i<len;i++){product*=paramString.charCodeAt(i)*this.URL_HASH_FACTOR;product-=Math.floor(product);}
+if(!this.persist&&(name=="done"||name=="cancel")){this.clear();}},CLASS_NAME:"OpenLayers.Handler.RegularPolygon"});OpenLayers.Layer.HTTPRequest=OpenLayers.Class(OpenLayers.Layer,{URL_HASH_FACTOR:(Math.sqrt(5)-1)/2,url:null,params:null,reproject:false,initialize:function(name,url,params,options){var newArguments=arguments;newArguments=[name,options];OpenLayers.Layer.prototype.initialize.apply(this,newArguments);this.url=url;this.params=OpenLayers.Util.extend({},params);},destroy:function(){this.url=null;this.params=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.HTTPRequest(this.name,this.url,this.params,this.getOptions());}
+obj=OpenLayers.Layer.prototype.clone.apply(this,[obj]);return obj;},setUrl:function(newUrl){this.url=newUrl;},mergeNewParams:function(newParams){this.params=OpenLayers.Util.extend(this.params,newParams);var ret=this.redraw();if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"params"});}
+return ret;},redraw:function(force){if(force){return this.mergeNewParams({"_olSalt":Math.random()});}else{return OpenLayers.Layer.prototype.redraw.apply(this,[]);}},selectUrl:function(paramString,urls){var product=1;for(var i=0,len=paramString.length;i<len;i++){product*=paramString.charCodeAt(i)*this.URL_HASH_FACTOR;product-=Math.floor(product);}
 return urls[Math.floor(product*urls.length)];},getFullRequestString:function(newParams,altUrl){var url=altUrl||this.url;var allParams=OpenLayers.Util.extend({},this.params);allParams=OpenLayers.Util.extend(allParams,newParams);var paramsString=OpenLayers.Util.getParameterString(allParams);if(url instanceof Array){url=this.selectUrl(paramsString,url);}
 var urlParams=OpenLayers.Util.upperCaseObject(OpenLayers.Util.getParameters(url));for(var key in allParams){if(key.toUpperCase()in urlParams){delete allParams[key];}}
-paramsString=OpenLayers.Util.getParameterString(allParams);var requestString=url;if(paramsString!=""){var lastServerChar=url.charAt(url.length-1);if((lastServerChar=="&")||(lastServerChar=="?")){requestString+=paramsString;}else{if(url.indexOf('?')==-1){requestString+='?'+paramsString;}else{requestString+='&'+paramsString;}}}
-return requestString;},CLASS_NAME:"OpenLayers.Layer.HTTPRequest"});OpenLayers.Layer.Markers=OpenLayers.Class(OpenLayers.Layer,{isBaseLayer:false,markers:null,drawn:false,initialize:function(name,options){OpenLayers.Layer.prototype.initialize.apply(this,arguments);this.markers=[];},destroy:function(){this.clearMarkers();this.markers=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments);},setOpacity:function(opacity){if(opacity!=this.opacity){this.opacity=opacity;for(var i=0,len=this.markers.length;i<len;i++){this.markers[i].setOpacity(this.opacity);}}},moveTo:function(bounds,zoomChanged,dragging){OpenLayers.Layer.prototype.moveTo.apply(this,arguments);if(zoomChanged||!this.drawn){for(var i=0,len=this.markers.length;i<len;i++){this.drawMarker(this.markers[i]);}
+paramsString=OpenLayers.Util.getParameterString(allParams);return OpenLayers.Util.urlAppend(url,paramsString);},CLASS_NAME:"OpenLayers.Layer.HTTPRequest"});OpenLayers.Layer.Markers=OpenLayers.Class(OpenLayers.Layer,{isBaseLayer:false,markers:null,drawn:false,initialize:function(name,options){OpenLayers.Layer.prototype.initialize.apply(this,arguments);this.markers=[];},destroy:function(){this.clearMarkers();this.markers=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments);},setOpacity:function(opacity){if(opacity!=this.opacity){this.opacity=opacity;for(var i=0,len=this.markers.length;i<len;i++){this.markers[i].setOpacity(this.opacity);}}},moveTo:function(bounds,zoomChanged,dragging){OpenLayers.Layer.prototype.moveTo.apply(this,arguments);if(zoomChanged||!this.drawn){for(var i=0,len=this.markers.length;i<len;i++){this.drawMarker(this.markers[i]);}
 this.drawn=true;}},addMarker:function(marker){this.markers.push(marker);if(this.opacity!=null){marker.setOpacity(this.opacity);}
 if(this.map&&this.map.getExtent()){marker.map=this.map;this.drawMarker(marker);}},removeMarker:function(marker){if(this.markers&&this.markers.length){OpenLayers.Util.removeItem(this.markers,marker);marker.erase();}},clearMarkers:function(){if(this.markers!=null){while(this.markers.length>0){this.removeMarker(this.markers[0]);}}},drawMarker:function(marker){var px=this.map.getLayerPxFromLonLat(marker.lonlat);if(px==null){marker.display(false);}else{if(!marker.isDrawn()){var markerImg=marker.draw(px);this.div.appendChild(markerImg);}else if(marker.icon){marker.icon.moveTo(px);}}},getDataExtent:function(){var maxExtent=null;if(this.markers&&(this.markers.length>0)){var maxExtent=new OpenLayers.Bounds();for(var i=0,len=this.markers.length;i<len;i++){var marker=this.markers[i];maxExtent.extend(marker.lonlat);}}
 return maxExtent;},CLASS_NAME:"OpenLayers.Layer.Markers"});OpenLayers.Layer.SphericalMercator={getExtent:function(){var extent=null;if(this.sphericalMercator){extent=this.map.calculateBounds();}else{extent=OpenLayers.Layer.FixedZoomLevels.prototype.getExtent.apply(this);}
 return extent;},initMercatorParameters:function(){this.RESOLUTIONS=[];var maxResolution=156543.0339;for(var zoom=0;zoom<=this.MAX_ZOOM_LEVEL;++zoom){this.RESOLUTIONS[zoom]=maxResolution/Math.pow(2,zoom);}
-this.units="m";this.projection="EPSG:900913";},forwardMercator:function(lon,lat){var x=lon*20037508.34/180;var y=Math.log(Math.tan((90+lat)*Math.PI/360))/(Math.PI/180);y=y*20037508.34/180;return new OpenLayers.LonLat(x,y);},inverseMercator:function(x,y){var lon=(x/20037508.34)*180;var lat=(y/20037508.34)*180;lat=180/Math.PI*(2*Math.atan(Math.exp(lat*Math.PI/180))-Math.PI/2);return new OpenLayers.LonLat(lon,lat);},projectForward:function(point){var lonlat=OpenLayers.Layer.SphericalMercator.forwardMercator(point.x,point.y);point.x=lonlat.lon;point.y=lonlat.lat;return point;},projectInverse:function(point){var lonlat=OpenLayers.Layer.SphericalMercator.inverseMercator(point.x,point.y);point.x=lonlat.lon;point.y=lonlat.lat;return point;}};OpenLayers.Projection.addTransform("EPSG:4326","EPSG:900913",OpenLayers.Layer.SphericalMercator.projectForward);OpenLayers.Projection.addTransform("EPSG:900913","EPSG:4326",OpenLayers.Layer.SphericalMercator.projectInverse);OpenLayers.Control.DrawFeature=OpenLayers.Class(OpenLayers.Control,{layer:null,callbacks:null,EVENT_TYPES:["featureadded"],featureAdded:function(){},handlerOptions:null,initialize:function(layer,handler,options){this.EVENT_TYPES=OpenLayers.Control.DrawFeature.prototype.EVENT_TYPES.concat(OpenLayers.Control.prototype.EVENT_TYPES);OpenLayers.Control.prototype.initialize.apply(this,[options]);this.callbacks=OpenLayers.Util.extend({done:this.drawFeature,modify:function(vertex,feature){this.layer.events.triggerEvent("sketchmodified",{vertex:vertex,feature:feature});},create:function(vertex,feature){this.layer.events.triggerEvent("sketchstarted",{vertex:vertex,feature:feature});}},this.callbacks);this.layer=layer;var sketchStyle=this.layer.styleMap&&this.layer.styleMap.styles.temporary;if(sketchStyle){this.handlerOptions=this.handlerOptions||{};this.handlerOptions.layerOptions=OpenLayers.Util.applyDefaults(this.handlerOptions.layerOptions,{styleMap:new OpenLayers.StyleMap({"default":sketchStyle})});}
-this.handler=new handler(this,this.callbacks,this.handlerOptions);},drawFeature:function(geometry){var feature=new OpenLayers.Feature.Vector(geometry);var proceed=this.layer.events.triggerEvent("sketchcomplete",{feature:feature});if(proceed!==false){feature.state=OpenLayers.State.INSERT;this.layer.addFeatures([feature]);this.featureAdded(feature);this.events.triggerEvent("featureadded",{feature:feature});}},CLASS_NAME:"OpenLayers.Control.DrawFeature"});OpenLayers.Control.ZoomBox=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,out:false,alwaysZoom:false,draw:function(){this.handler=new OpenLayers.Handler.Box(this,{done:this.zoomBox},{keyMask:this.keyMask});},zoomBox:function(position){if(position instanceof OpenLayers.Bounds){if(!this.out){var minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.left,position.bottom));var maxXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.right,position.top));var bounds=new OpenLayers.Bounds(minXY.lon,minXY.lat,maxXY.lon,maxXY.lat);}else{var pixWidth=Math.abs(position.right-position.left);var pixHeight=Math.abs(position.top-position.bottom);var zoomFactor=Math.min((this.map.size.h/pixHeight),(this.map.size.w/pixWidth));var extent=this.map.getExtent();var center=this.map.getLonLatFromPixel(position.getCenterPixel());var xmin=center.lon-(extent.getWidth()/2)*zoomFactor;var xmax=center.lon+(extent.getWidth()/2)*zoomFactor;var ymin=center.lat-(extent.getHeight()/2)*zoomFactor;var ymax=center.lat+(extent.getHeight()/2)*zoomFactor;var bounds=new OpenLayers.Bounds(xmin,ymin,xmax,ymax);}
+this.units="m";this.projection="EPSG:900913";},forwardMercator:function(lon,lat){var x=lon*20037508.34/180;var y=Math.log(Math.tan((90+lat)*Math.PI/360))/(Math.PI/180);y=y*20037508.34/180;return new OpenLayers.LonLat(x,y);},inverseMercator:function(x,y){var lon=(x/20037508.34)*180;var lat=(y/20037508.34)*180;lat=180/Math.PI*(2*Math.atan(Math.exp(lat*Math.PI/180))-Math.PI/2);return new OpenLayers.LonLat(lon,lat);},projectForward:function(point){var lonlat=OpenLayers.Layer.SphericalMercator.forwardMercator(point.x,point.y);point.x=lonlat.lon;point.y=lonlat.lat;return point;},projectInverse:function(point){var lonlat=OpenLayers.Layer.SphericalMercator.inverseMercator(point.x,point.y);point.x=lonlat.lon;point.y=lonlat.lat;return point;}};OpenLayers.Projection.addTransform("EPSG:4326","EPSG:900913",OpenLayers.Layer.SphericalMercator.projectForward);OpenLayers.Projection.addTransform("EPSG:900913","EPSG:4326",OpenLayers.Layer.SphericalMercator.projectInverse);OpenLayers.Control.DrawFeature=OpenLayers.Class(OpenLayers.Control,{layer:null,callbacks:null,EVENT_TYPES:["featureadded"],multi:false,featureAdded:function(){},handlerOptions:null,initialize:function(layer,handler,options){this.EVENT_TYPES=OpenLayers.Control.DrawFeature.prototype.EVENT_TYPES.concat(OpenLayers.Control.prototype.EVENT_TYPES);OpenLayers.Control.prototype.initialize.apply(this,[options]);this.callbacks=OpenLayers.Util.extend({done:this.drawFeature,modify:function(vertex,feature){this.layer.events.triggerEvent("sketchmodified",{vertex:vertex,feature:feature});},create:function(vertex,feature){this.layer.events.triggerEvent("sketchstarted",{vertex:vertex,feature:feature});}},this.callbacks);this.layer=layer;this.handlerOptions=this.handlerOptions||{};if(!("multi"in this.handlerOptions)){this.handlerOptions.multi=this.multi;}
+var sketchStyle=this.layer.styleMap&&this.layer.styleMap.styles.temporary;if(sketchStyle){this.handlerOptions.layerOptions=OpenLayers.Util.applyDefaults(this.handlerOptions.layerOptions,{styleMap:new OpenLayers.StyleMap({"default":sketchStyle})});}
+this.handler=new handler(this,this.callbacks,this.handlerOptions);},drawFeature:function(geometry){var feature=new OpenLayers.Feature.Vector(geometry);var proceed=this.layer.events.triggerEvent("sketchcomplete",{feature:feature});if(proceed!==false){feature.state=OpenLayers.State.INSERT;this.layer.addFeatures([feature]);this.featureAdded(feature);this.events.triggerEvent("featureadded",{feature:feature});}},CLASS_NAME:"OpenLayers.Control.DrawFeature"});OpenLayers.Control.ZoomBox=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,out:false,alwaysZoom:false,draw:function(){this.handler=new OpenLayers.Handler.Box(this,{done:this.zoomBox},{keyMask:this.keyMask});},zoomBox:function(position){if(position instanceof OpenLayers.Bounds){var bounds;if(!this.out){var minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.left,position.bottom));var maxXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.right,position.top));bounds=new OpenLayers.Bounds(minXY.lon,minXY.lat,maxXY.lon,maxXY.lat);}else{var pixWidth=Math.abs(position.right-position.left);var pixHeight=Math.abs(position.top-position.bottom);var zoomFactor=Math.min((this.map.size.h/pixHeight),(this.map.size.w/pixWidth));var extent=this.map.getExtent();var center=this.map.getLonLatFromPixel(position.getCenterPixel());var xmin=center.lon-(extent.getWidth()/2)*zoomFactor;var xmax=center.lon+(extent.getWidth()/2)*zoomFactor;var ymin=center.lat-(extent.getHeight()/2)*zoomFactor;var ymax=center.lat+(extent.getHeight()/2)*zoomFactor;bounds=new OpenLayers.Bounds(xmin,ymin,xmax,ymax);}
 var lastZoom=this.map.getZoom();this.map.zoomToExtent(bounds);if(lastZoom==this.map.getZoom()&&this.alwaysZoom==true){this.map.zoomTo(lastZoom+(this.out?-1:1));}}else{if(!this.out){this.map.setCenter(this.map.getLonLatFromPixel(position),this.map.getZoom()+1);}else{this.map.setCenter(this.map.getLonLatFromPixel(position),this.map.getZoom()-1);}}},CLASS_NAME:"OpenLayers.Control.ZoomBox"});OpenLayers.Format.WKT=OpenLayers.Class(OpenLayers.Format,{initialize:function(options){this.regExes={'typeStr':/^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/,'spaces':/\s+/,'parenComma':/\)\s*,\s*\(/,'doubleParenComma':/\)\s*\)\s*,\s*\(\s*\(/,'trimParens':/^\s*\(?(.*?)\)?\s*$/};OpenLayers.Format.prototype.initialize.apply(this,[options]);},read:function(wkt){var features,type,str;var matches=this.regExes.typeStr.exec(wkt);if(matches){type=matches[1].toLowerCase();str=matches[2];if(this.parse[type]){features=this.parse[type].apply(this,[str]);}
 if(this.internalProjection&&this.externalProjection){if(features&&features.CLASS_NAME=="OpenLayers.Feature.Vector"){features.geometry.transform(this.externalProjection,this.internalProjection);}else if(features&&type!="geometrycollection"&&typeof features=="object"){for(var i=0,len=features.length;i<len;i++){var component=features[i];component.geometry.transform(this.externalProjection,this.internalProjection);}}}}
 return features;},write:function(features){var collection,geometry,type,data,isCollection;if(features.constructor==Array){collection=features;isCollection=true;}else{collection=[features];isCollection=false;}
@@ -887,7 +915,7 @@ return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiLineString(com
 return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon(components));},'multipolygon':function(str){var polygon;var polygons=OpenLayers.String.trim(str).split(this.regExes.doubleParenComma);var components=[];for(var i=0,len=polygons.length;i<len;++i){polygon=polygons[i].replace(this.regExes.trimParens,'$1');components.push(this.parse.polygon.apply(this,[polygon]).geometry);}
 return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiPolygon(components));},'geometrycollection':function(str){str=str.replace(/,\s*([A-Za-z])/g,'|$1');var wktArray=OpenLayers.String.trim(str).split('|');var components=[];for(var i=0,len=wktArray.length;i<len;++i){components.push(OpenLayers.Format.WKT.prototype.read.apply(this,[wktArray[i]]));}
 return components;}},CLASS_NAME:"OpenLayers.Format.WKT"});OpenLayers.Layer.Grid=OpenLayers.Class(OpenLayers.Layer.HTTPRequest,{tileSize:null,grid:null,singleTile:false,ratio:1.5,buffer:2,numLoadingTiles:0,initialize:function(name,url,params,options){OpenLayers.Layer.HTTPRequest.prototype.initialize.apply(this,arguments);this.events.addEventType("tileloaded");this.grid=[];},destroy:function(){this.clearGrid();this.grid=null;this.tileSize=null;OpenLayers.Layer.HTTPRequest.prototype.destroy.apply(this,arguments);},clearGrid:function(){if(this.grid){for(var iRow=0,len=this.grid.length;iRow<len;iRow++){var row=this.grid[iRow];for(var iCol=0,clen=row.length;iCol<clen;iCol++){var tile=row[iCol];this.removeTileMonitoringHooks(tile);tile.destroy();}}
-this.grid=[];}},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.Grid(this.name,this.url,this.params,this.options);}
+this.grid=[];}},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.Grid(this.name,this.url,this.params,this.getOptions());}
 obj=OpenLayers.Layer.HTTPRequest.prototype.clone.apply(this,[obj]);if(this.tileSize!=null){obj.tileSize=this.tileSize.clone();}
 obj.grid=[];return obj;},moveTo:function(bounds,zoomChanged,dragging){OpenLayers.Layer.HTTPRequest.prototype.moveTo.apply(this,arguments);bounds=bounds||this.map.getExtent();if(bounds!=null){var forceReTile=!this.grid.length||zoomChanged;var tilesBounds=this.getTilesBounds();if(this.singleTile){if(forceReTile||(!dragging&&!tilesBounds.containsBounds(bounds))){this.initSingleTile(bounds);}}else{if(forceReTile||!tilesBounds.containsBounds(bounds,true)){this.initGriddedTiles(bounds);}else{this.moveGriddedTiles(bounds);}}}},setTileSize:function(size){if(this.singleTile){size=this.map.getSize().clone();size.h=parseInt(size.h*this.ratio);size.w=parseInt(size.w*this.ratio);}
 OpenLayers.Layer.HTTPRequest.prototype.setTileSize.apply(this,[size]);},getGridBounds:function(){var msg="The getGridBounds() function is deprecated. It will be "+"removed in 3.0. Please use getTilesBounds() instead.";OpenLayers.Console.warn(msg);return this.getTilesBounds();},getTilesBounds:function(){var bounds=null;if(this.grid.length){var bottom=this.grid.length-1;var bottomLeftTile=this.grid[bottom][0];var right=this.grid[0].length-1;var topRightTile=this.grid[0][right];bounds=new OpenLayers.Bounds(bottomLeftTile.bounds.left,bottomLeftTile.bounds.bottom,topRightTile.bounds.right,topRightTile.bounds.top);}
@@ -913,16 +941,17 @@ if(rules.length>0&&appliedRules==false){style.display="none";}
 return style;},applySymbolizer:function(rule,style,feature){var symbolizerPrefix=feature.geometry?this.getSymbolizerPrefix(feature.geometry):OpenLayers.Style.SYMBOLIZER_PREFIXES[0];var symbolizer=rule.symbolizer[symbolizerPrefix]||rule.symbolizer;if(this.defaultsPerSymbolizer===true){var defaults=this.defaultStyle;OpenLayers.Util.applyDefaults(symbolizer,{pointRadius:defaults.pointRadius});if(symbolizer.stroke===true||symbolizer.graphic===true){OpenLayers.Util.applyDefaults(symbolizer,{strokeWidth:defaults.strokeWidth,strokeColor:defaults.strokeColor,strokeOpacity:defaults.strokeOpacity,strokeDashstyle:defaults.strokeDashstyle,strokeLinecap:defaults.strokeLinecap});}
 if(symbolizer.fill===true||symbolizer.graphic===true){OpenLayers.Util.applyDefaults(symbolizer,{fillColor:defaults.fillColor,fillOpacity:defaults.fillOpacity});}
 if(symbolizer.graphic===true){OpenLayers.Util.applyDefaults(symbolizer,{pointRadius:this.defaultStyle.pointRadius,externalGraphic:this.defaultStyle.externalGraphic,graphicName:this.defaultStyle.graphicName,graphicOpacity:this.defaultStyle.graphicOpacity,graphicWidth:this.defaultStyle.graphicWidth,graphicHeight:this.defaultStyle.graphicHeight,graphicXOffset:this.defaultStyle.graphicXOffset,graphicYOffset:this.defaultStyle.graphicYOffset});}}
-return this.createLiterals(OpenLayers.Util.extend(style,symbolizer),feature);},createLiterals:function(style,feature){var context=this.context||feature.attributes||feature.data;for(var i in this.propertyStyles){style[i]=OpenLayers.Style.createLiteral(style[i],context,feature);}
+return this.createLiterals(OpenLayers.Util.extend(style,symbolizer),feature);},createLiterals:function(style,feature){var context=OpenLayers.Util.extend({},feature.attributes||feature.data);OpenLayers.Util.extend(context,this.context);for(var i in this.propertyStyles){style[i]=OpenLayers.Style.createLiteral(style[i],context,feature,i);}
 return style;},findPropertyStyles:function(){var propertyStyles={};var style=this.defaultStyle;this.addPropertyStyles(propertyStyles,style);var rules=this.rules;var symbolizer,value;for(var i=0,len=rules.length;i<len;i++){symbolizer=rules[i].symbolizer;for(var key in symbolizer){value=symbolizer[key];if(typeof value=="object"){this.addPropertyStyles(propertyStyles,value);}else{this.addPropertyStyles(propertyStyles,symbolizer);break;}}}
 return propertyStyles;},addPropertyStyles:function(propertyStyles,symbolizer){var property;for(var key in symbolizer){property=symbolizer[key];if(typeof property=="string"&&property.match(/\$\{\w+\}/)){propertyStyles[key]=true;}}
-return propertyStyles;},addRules:function(rules){this.rules=this.rules.concat(rules);this.propertyStyles=this.findPropertyStyles();},setDefaultStyle:function(style){this.defaultStyle=style;this.propertyStyles=this.findPropertyStyles();},getSymbolizerPrefix:function(geometry){var prefixes=OpenLayers.Style.SYMBOLIZER_PREFIXES;for(var i=0,len=prefixes.length;i<len;i++){if(geometry.CLASS_NAME.indexOf(prefixes[i])!=-1){return prefixes[i];}}},CLASS_NAME:"OpenLayers.Style"});OpenLayers.Style.createLiteral=function(value,context,feature){if(typeof value=="string"&&value.indexOf("${")!=-1){value=OpenLayers.String.format(value,context,[feature]);value=(isNaN(value)||!value)?value:parseFloat(value);}
-return value;};OpenLayers.Style.SYMBOLIZER_PREFIXES=['Point','Line','Polygon','Text'];OpenLayers.Control.Navigation=OpenLayers.Class(OpenLayers.Control,{dragPan:null,dragPanOptions:null,zoomBox:null,zoomWheelEnabled:true,handleRightClicks:false,zoomBoxKeyMask:OpenLayers.Handler.MOD_SHIFT,initialize:function(options){this.handlers={};OpenLayers.Control.prototype.initialize.apply(this,arguments);},destroy:function(){this.deactivate();if(this.dragPan){this.dragPan.destroy();}
+return propertyStyles;},addRules:function(rules){this.rules=this.rules.concat(rules);this.propertyStyles=this.findPropertyStyles();},setDefaultStyle:function(style){this.defaultStyle=style;this.propertyStyles=this.findPropertyStyles();},getSymbolizerPrefix:function(geometry){var prefixes=OpenLayers.Style.SYMBOLIZER_PREFIXES;for(var i=0,len=prefixes.length;i<len;i++){if(geometry.CLASS_NAME.indexOf(prefixes[i])!=-1){return prefixes[i];}}},CLASS_NAME:"OpenLayers.Style"});OpenLayers.Style.createLiteral=function(value,context,feature,property){if(typeof value=="string"&&value.indexOf("${")!=-1){value=OpenLayers.String.format(value,context,[feature,property]);value=(isNaN(value)||!value)?value:parseFloat(value);}
+return value;};OpenLayers.Style.SYMBOLIZER_PREFIXES=['Point','Line','Polygon','Text'];OpenLayers.Control.Navigation=OpenLayers.Class(OpenLayers.Control,{dragPan:null,dragPanOptions:null,documentDrag:false,zoomBox:null,zoomBoxEnabled:true,zoomWheelEnabled:true,mouseWheelOptions:null,handleRightClicks:false,zoomBoxKeyMask:OpenLayers.Handler.MOD_SHIFT,autoActivate:true,initialize:function(options){this.handlers={};OpenLayers.Control.prototype.initialize.apply(this,arguments);},destroy:function(){this.deactivate();if(this.dragPan){this.dragPan.destroy();}
 this.dragPan=null;if(this.zoomBox){this.zoomBox.destroy();}
 this.zoomBox=null;OpenLayers.Control.prototype.destroy.apply(this,arguments);},activate:function(){this.dragPan.activate();if(this.zoomWheelEnabled){this.handlers.wheel.activate();}
-this.handlers.click.activate();this.zoomBox.activate();return OpenLayers.Control.prototype.activate.apply(this,arguments);},deactivate:function(){this.zoomBox.deactivate();this.dragPan.deactivate();this.handlers.click.deactivate();this.handlers.wheel.deactivate();return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},draw:function(){if(this.handleRightClicks){this.map.viewPortDiv.oncontextmenu=function(){return false;};}
-var clickCallbacks={'dblclick':this.defaultDblClick,'dblrightclick':this.defaultDblRightClick};var clickOptions={'double':true,'stopDouble':true};this.handlers.click=new OpenLayers.Handler.Click(this,clickCallbacks,clickOptions);this.dragPan=new OpenLayers.Control.DragPan(OpenLayers.Util.extend({map:this.map},this.dragPanOptions));this.zoomBox=new OpenLayers.Control.ZoomBox({map:this.map,keyMask:this.zoomBoxKeyMask});this.dragPan.draw();this.zoomBox.draw();this.handlers.wheel=new OpenLayers.Handler.MouseWheel(this,{"up":this.wheelUp,"down":this.wheelDown});this.activate();},defaultDblClick:function(evt){var newCenter=this.map.getLonLatFromViewPortPx(evt.xy);this.map.setCenter(newCenter,this.map.zoom+1);},defaultDblRightClick:function(evt){var newCenter=this.map.getLonLatFromViewPortPx(evt.xy);this.map.setCenter(newCenter,this.map.zoom-1);},wheelChange:function(evt,deltaZ){var newZoom=this.map.getZoom()+deltaZ;if(!this.map.isValidZoomLevel(newZoom)){return;}
-var size=this.map.getSize();var deltaX=size.w/2-evt.xy.x;var deltaY=evt.xy.y-size.h/2;var newRes=this.map.baseLayer.getResolutionForZoom(newZoom);var zoomPoint=this.map.getLonLatFromPixel(evt.xy);var newCenter=new OpenLayers.LonLat(zoomPoint.lon+deltaX*newRes,zoomPoint.lat+deltaY*newRes);this.map.setCenter(newCenter,newZoom);},wheelUp:function(evt){this.wheelChange(evt,1);},wheelDown:function(evt){this.wheelChange(evt,-1);},disableZoomWheel:function(){this.zoomWheelEnabled=false;this.handlers.wheel.deactivate();},enableZoomWheel:function(){this.zoomWheelEnabled=true;if(this.active){this.handlers.wheel.activate();}},CLASS_NAME:"OpenLayers.Control.Navigation"});OpenLayers.Geometry=OpenLayers.Class({id:null,parent:null,bounds:null,initialize:function(){this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},destroy:function(){this.id=null;this.bounds=null;},clone:function(){return new OpenLayers.Geometry();},setBounds:function(bounds){if(bounds){this.bounds=bounds.clone();}},clearBounds:function(){this.bounds=null;if(this.parent){this.parent.clearBounds();}},extendBounds:function(newBounds){var bounds=this.getBounds();if(!bounds){this.setBounds(newBounds);}else{this.bounds.extend(newBounds);}},getBounds:function(){if(this.bounds==null){this.calculateBounds();}
+this.handlers.click.activate();if(this.zoomBoxEnabled){this.zoomBox.activate();}
+return OpenLayers.Control.prototype.activate.apply(this,arguments);},deactivate:function(){this.zoomBox.deactivate();this.dragPan.deactivate();this.handlers.click.deactivate();this.handlers.wheel.deactivate();return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},draw:function(){if(this.handleRightClicks){this.map.viewPortDiv.oncontextmenu=OpenLayers.Function.False;}
+var clickCallbacks={'dblclick':this.defaultDblClick,'dblrightclick':this.defaultDblRightClick};var clickOptions={'double':true,'stopDouble':true};this.handlers.click=new OpenLayers.Handler.Click(this,clickCallbacks,clickOptions);this.dragPan=new OpenLayers.Control.DragPan(OpenLayers.Util.extend({map:this.map,documentDrag:this.documentDrag},this.dragPanOptions));this.zoomBox=new OpenLayers.Control.ZoomBox({map:this.map,keyMask:this.zoomBoxKeyMask});this.dragPan.draw();this.zoomBox.draw();this.handlers.wheel=new OpenLayers.Handler.MouseWheel(this,{"up":this.wheelUp,"down":this.wheelDown},this.mouseWheelOptions);},defaultDblClick:function(evt){var newCenter=this.map.getLonLatFromViewPortPx(evt.xy);this.map.setCenter(newCenter,this.map.zoom+1);},defaultDblRightClick:function(evt){var newCenter=this.map.getLonLatFromViewPortPx(evt.xy);this.map.setCenter(newCenter,this.map.zoom-1);},wheelChange:function(evt,deltaZ){var currentZoom=this.map.getZoom();var newZoom=this.map.getZoom()+Math.round(deltaZ);newZoom=Math.max(newZoom,0);newZoom=Math.min(newZoom,this.map.getNumZoomLevels());if(newZoom===currentZoom){return;}
+var size=this.map.getSize();var deltaX=size.w/2-evt.xy.x;var deltaY=evt.xy.y-size.h/2;var newRes=this.map.baseLayer.getResolutionForZoom(newZoom);var zoomPoint=this.map.getLonLatFromPixel(evt.xy);var newCenter=new OpenLayers.LonLat(zoomPoint.lon+deltaX*newRes,zoomPoint.lat+deltaY*newRes);this.map.setCenter(newCenter,newZoom);},wheelUp:function(evt,delta){this.wheelChange(evt,delta||1);},wheelDown:function(evt,delta){this.wheelChange(evt,delta||-1);},disableZoomBox:function(){this.zoomBoxEnabled=false;this.zoomBox.deactivate();},enableZoomBox:function(){this.zoomBoxEnabled=true;if(this.active){this.zoomBox.activate();}},disableZoomWheel:function(){this.zoomWheelEnabled=false;this.handlers.wheel.deactivate();},enableZoomWheel:function(){this.zoomWheelEnabled=true;if(this.active){this.handlers.wheel.activate();}},CLASS_NAME:"OpenLayers.Control.Navigation"});OpenLayers.Geometry=OpenLayers.Class({id:null,parent:null,bounds:null,initialize:function(){this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},destroy:function(){this.id=null;this.bounds=null;},clone:function(){return new OpenLayers.Geometry();},setBounds:function(bounds){if(bounds){this.bounds=bounds.clone();}},clearBounds:function(){this.bounds=null;if(this.parent){this.parent.clearBounds();}},extendBounds:function(newBounds){var bounds=this.getBounds();if(!bounds){this.setBounds(newBounds);}else{this.bounds.extend(newBounds);}},getBounds:function(){if(this.bounds==null){this.calculateBounds();}
 return this.bounds;},calculateBounds:function(){},distanceTo:function(geometry,options){},getVertices:function(nodes){},atPoint:function(lonlat,toleranceLon,toleranceLat){var atPoint=false;var bounds=this.getBounds();if((bounds!=null)&&(lonlat!=null)){var dX=(toleranceLon!=null)?toleranceLon:0;var dY=(toleranceLat!=null)?toleranceLat:0;var toleranceBounds=new OpenLayers.Bounds(this.bounds.left-dX,this.bounds.bottom-dY,this.bounds.right+dX,this.bounds.top+dY);atPoint=toleranceBounds.containsLonLat(lonlat);}
 return atPoint;},getLength:function(){return 0.0;},getArea:function(){return 0.0;},getCentroid:function(){return null;},toString:function(){return OpenLayers.Format.WKT.prototype.write(new OpenLayers.Feature.Vector(this));},CLASS_NAME:"OpenLayers.Geometry"});OpenLayers.Geometry.fromWKT=function(wkt){var format=arguments.callee.format;if(!format){format=new OpenLayers.Format.WKT();arguments.callee.format=format;}
 var geom;var result=format.read(wkt);if(result instanceof OpenLayers.Feature.Vector){geom=result.geometry;}else if(result instanceof Array){var len=result.length;var components=new Array(len);for(var i=0;i<len;++i){components[i]=result[i].geometry;}
@@ -933,7 +962,7 @@ Math.pow(y-intersection.y,2));if(dist<tolerance){intersection.x=x;intersection.y
 break outer;}}}}}
 return intersection;};OpenLayers.Geometry.distanceToSegment=function(point,segment){var x0=point.x;var y0=point.y;var x1=segment.x1;var y1=segment.y1;var x2=segment.x2;var y2=segment.y2;var dx=x2-x1;var dy=y2-y1;var along=((dx*(x0-x1))+(dy*(y0-y1)))/(Math.pow(dx,2)+Math.pow(dy,2));var x,y;if(along<=0.0){x=x1;y=y1;}else if(along>=1.0){x=x2;y=y2;}else{x=x1+along*dx;y=y1+along*dy;}
 return{distance:Math.sqrt(Math.pow(x-x0,2)+Math.pow(y-y0,2)),x:x,y:y};};OpenLayers.Layer.XYZ=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:true,sphericalMercator:false,initialize:function(name,url,options){if(options&&options.sphericalMercator||this.sphericalMercator){options=OpenLayers.Util.extend({maxExtent:new OpenLayers.Bounds(-128*156543.0339,-128*156543.0339,128*156543.0339,128*156543.0339),maxResolution:156543.0339,numZoomLevels:19,units:"m",projection:"EPSG:900913"},options);}
-url=url||this.url;name=name||this.name;var newArguments=[name,url,{},options];OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.XYZ(this.name,this.url,this.options);}
+url=url||this.url;name=name||this.name;var newArguments=[name,url,{},options];OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.XYZ(this.name,this.url,this.getOptions());}
 obj=OpenLayers.Layer.HTTPRequest.prototype.clone.apply(this,[obj]);if(this.tileSize!=null){obj.tileSize=this.tileSize.clone();}
 obj.grid=[];return obj;},getURL:function(bounds){var res=this.map.getResolution();var x=Math.round((bounds.left-this.maxExtent.left)/(res*this.tileSize.w));var y=Math.round((this.maxExtent.top-bounds.top)/(res*this.tileSize.h));var z=this.map.getZoom();var limit=Math.pow(2,z);if(this.wrapDateLine)
 {x=((x%limit)+limit)%limit;}
@@ -964,7 +993,7 @@ return length;},getArea:function(){var area=0.0;for(var i=0,len=this.components.
 return area;},getGeodesicArea:function(projection){var area=0.0;for(var i=0,len=this.components.length;i<len;i++){area+=this.components[i].getGeodesicArea(projection);}
 return area;},getCentroid:function(){return this.components.length&&this.components[0].getCentroid();},getGeodesicLength:function(projection){var length=0.0;for(var i=0,len=this.components.length;i<len;i++){length+=this.components[i].getGeodesicLength(projection);}
 return length;},move:function(x,y){for(var i=0,len=this.components.length;i<len;i++){this.components[i].move(x,y);}},rotate:function(angle,origin){for(var i=0,len=this.components.length;i<len;++i){this.components[i].rotate(angle,origin);}},resize:function(scale,origin,ratio){for(var i=0;i<this.components.length;++i){this.components[i].resize(scale,origin,ratio);}
-return this;},distanceTo:function(geometry,options){var edge=!(options&&options.edge===false);var details=edge&&options&&options.details;var result,best;var min=Number.POSITIVE_INFINITY;for(var i=0,len=this.components.length;i<len;++i){result=this.components[i].distanceTo(geometry,options);distance=details?result.distance:result;if(distance<min){min=distance;best=result;if(min==0){break;}}}
+return this;},distanceTo:function(geometry,options){var edge=!(options&&options.edge===false);var details=edge&&options&&options.details;var result,best,distance;var min=Number.POSITIVE_INFINITY;for(var i=0,len=this.components.length;i<len;++i){result=this.components[i].distanceTo(geometry,options);distance=details?result.distance:result;if(distance<min){min=distance;best=result;if(min==0){break;}}}
 return best;},equals:function(geometry){var equivalent=true;if(!geometry||!geometry.CLASS_NAME||(this.CLASS_NAME!=geometry.CLASS_NAME)){equivalent=false;}else if(!(geometry.components instanceof Array)||(geometry.components.length!=this.components.length)){equivalent=false;}else{for(var i=0,len=this.components.length;i<len;++i){if(!this.components[i].equals(geometry.components[i])){equivalent=false;break;}}}
 return equivalent;},transform:function(source,dest){if(source&&dest){for(var i=0,len=this.components.length;i<len;i++){var component=this.components[i];component.transform(source,dest);}
 this.bounds=null;}
@@ -975,7 +1004,7 @@ OpenLayers.Util.applyDefaults(obj,this);return obj;},calculateBounds:function(){
 return result;},equals:function(geom){var equals=false;if(geom!=null){equals=((this.x==geom.x&&this.y==geom.y)||(isNaN(this.x)&&isNaN(this.y)&&isNaN(geom.x)&&isNaN(geom.y)));}
 return equals;},toShortString:function(){return(this.x+", "+this.y);},move:function(x,y){this.x=this.x+x;this.y=this.y+y;this.clearBounds();},rotate:function(angle,origin){angle*=Math.PI/180;var radius=this.distanceTo(origin);var theta=angle+Math.atan2(this.y-origin.y,this.x-origin.x);this.x=origin.x+(radius*Math.cos(theta));this.y=origin.y+(radius*Math.sin(theta));this.clearBounds();},getCentroid:function(){return new OpenLayers.Geometry.Point(this.x,this.y);},resize:function(scale,origin,ratio){ratio=(ratio==undefined)?1:ratio;this.x=origin.x+(scale*ratio*(this.x-origin.x));this.y=origin.y+(scale*(this.y-origin.y));this.clearBounds();return this;},intersects:function(geometry){var intersect=false;if(geometry.CLASS_NAME=="OpenLayers.Geometry.Point"){intersect=this.equals(geometry);}else{intersect=geometry.intersects(this);}
 return intersect;},transform:function(source,dest){if((source&&dest)){OpenLayers.Projection.transform(this,source,dest);this.bounds=null;}
-return this;},getVertices:function(nodes){return[this];},CLASS_NAME:"OpenLayers.Geometry.Point"});OpenLayers.Layer.Vector=OpenLayers.Class(OpenLayers.Layer,{EVENT_TYPES:["beforefeatureadded","beforefeaturesadded","featureadded","featuresadded","beforefeatureremoved","featureremoved","featuresremoved","beforefeatureselected","featureselected","featureunselected","beforefeaturemodified","featuremodified","afterfeaturemodified","vertexmodified","sketchstarted","sketchmodified","sketchcomplete","refresh"],isBaseLayer:false,isFixed:false,isVector:true,features:null,selectedFeatures:null,unrenderedFeatures:null,reportError:true,style:null,styleMap:null,strategies:null,protocol:null,renderers:['SVG','VML','Canvas'],renderer:null,rendererOptions:null,geometryType:null,drawn:false,initialize:function(name,options){this.EVENT_TYPES=OpenLayers.Layer.Vector.prototype.EVENT_TYPES.concat(OpenLayers.Layer.prototype.EVENT_TYPES);OpenLayers.Layer.prototype.initialize.apply(this,arguments);if(!this.renderer||!this.renderer.supported()){this.assignRenderer();}
+return this;},getVertices:function(nodes){return[this];},CLASS_NAME:"OpenLayers.Geometry.Point"});OpenLayers.Layer.Vector=OpenLayers.Class(OpenLayers.Layer,{EVENT_TYPES:["beforefeatureadded","beforefeaturesadded","featureadded","featuresadded","beforefeatureremoved","featureremoved","featuresremoved","beforefeatureselected","featureselected","featureunselected","beforefeaturemodified","featuremodified","afterfeaturemodified","vertexmodified","sketchstarted","sketchmodified","sketchcomplete","refresh"],isBaseLayer:false,isFixed:false,isVector:true,features:null,filter:null,selectedFeatures:null,unrenderedFeatures:null,reportError:true,style:null,styleMap:null,strategies:null,protocol:null,renderers:['SVG','VML','Canvas'],renderer:null,rendererOptions:null,geometryType:null,drawn:false,initialize:function(name,options){this.EVENT_TYPES=OpenLayers.Layer.Vector.prototype.EVENT_TYPES.concat(OpenLayers.Layer.prototype.EVENT_TYPES);OpenLayers.Layer.prototype.initialize.apply(this,arguments);if(!this.renderer||!this.renderer.supported()){this.assignRenderer();}
 if(!this.renderer||!this.renderer.supported()){this.renderer=null;this.displayError();}
 if(!this.styleMap){this.styleMap=new OpenLayers.StyleMap();}
 this.features=[];this.selectedFeatures=[];this.unrenderedFeatures={};if(this.strategies){for(var i=0,len=this.strategies.length;i<len;i++){this.strategies[i].setLayer(this);}}},destroy:function(){if(this.strategies){var strategy,i,len;for(i=0,len=this.strategies.length;i<len;i++){strategy=this.strategies[i];if(strategy.autoDestroy){strategy.destroy();}}
@@ -983,7 +1012,9 @@ this.strategies=null;}
 if(this.protocol){if(this.protocol.autoDestroy){this.protocol.destroy();}
 this.protocol=null;}
 this.destroyFeatures();this.features=null;this.selectedFeatures=null;this.unrenderedFeatures=null;if(this.renderer){this.renderer.destroy();}
-this.renderer=null;this.geometryType=null;this.drawn=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments);},refresh:function(obj){if(this.calculateInRange()&&this.visibility){this.events.triggerEvent("refresh",obj);}},assignRenderer:function(){for(var i=0,len=this.renderers.length;i<len;i++){var rendererClass=OpenLayers.Renderer[this.renderers[i]];if(rendererClass&&rendererClass.prototype.supported()){this.renderer=new rendererClass(this.div,this.rendererOptions);break;}}},displayError:function(){if(this.reportError){OpenLayers.Console.userError(OpenLayers.i18n("browserNotSupported",{'renderers':this.renderers.join("\n")}));}},setMap:function(map){OpenLayers.Layer.prototype.setMap.apply(this,arguments);if(!this.renderer){this.map.removeLayer(this);}else{this.renderer.map=this.map;this.renderer.setSize(this.map.getSize());}},afterAdd:function(){if(this.strategies){var strategy,i,len;for(i=0,len=this.strategies.length;i<len;i++){strategy=this.strategies[i];if(strategy.autoActivate){strategy.activate();}}}},removeMap:function(map){if(this.strategies){var strategy,i,len;for(i=0,len=this.strategies.length;i<len;i++){strategy=this.strategies[i];if(strategy.autoActivate){strategy.deactivate();}}}},onMapResize:function(){OpenLayers.Layer.prototype.onMapResize.apply(this,arguments);this.renderer.setSize(this.map.getSize());},moveTo:function(bounds,zoomChanged,dragging){OpenLayers.Layer.prototype.moveTo.apply(this,arguments);var coordSysUnchanged=true;if(!dragging){this.renderer.root.style.visibility="hidden";this.div.style.left=-parseInt(this.map.layerContainerDiv.style.left)+"px";this.div.style.top=-parseInt(this.map.layerContainerDiv.style.top)+"px";var extent=this.map.getExtent();coordSysUnchanged=this.renderer.setExtent(extent,zoomChanged);this.renderer.root.style.visibility="visible";if(navigator.userAgent.toLowerCase().indexOf("gecko")!=-1){this.div.scrollLeft=this.div.scrollLeft;}
+this.renderer=null;this.geometryType=null;this.drawn=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.Vector(this.name,this.getOptions());}
+obj=OpenLayers.Layer.prototype.clone.apply(this,[obj]);var features=this.features;var len=features.length;var clonedFeatures=new Array(len);for(var i=0;i<len;++i){clonedFeatures[i]=features[i].clone();}
+obj.features=clonedFeatures;return obj;},refresh:function(obj){if(this.calculateInRange()&&this.visibility){this.events.triggerEvent("refresh",obj);}},assignRenderer:function(){for(var i=0,len=this.renderers.length;i<len;i++){var rendererClass=OpenLayers.Renderer[this.renderers[i]];if(rendererClass&&rendererClass.prototype.supported()){this.renderer=new rendererClass(this.div,this.rendererOptions);break;}}},displayError:function(){if(this.reportError){OpenLayers.Console.userError(OpenLayers.i18n("browserNotSupported",{'renderers':this.renderers.join("\n")}));}},setMap:function(map){OpenLayers.Layer.prototype.setMap.apply(this,arguments);if(!this.renderer){this.map.removeLayer(this);}else{this.renderer.map=this.map;this.renderer.setSize(this.map.getSize());}},afterAdd:function(){if(this.strategies){var strategy,i,len;for(i=0,len=this.strategies.length;i<len;i++){strategy=this.strategies[i];if(strategy.autoActivate){strategy.activate();}}}},removeMap:function(map){if(this.strategies){var strategy,i,len;for(i=0,len=this.strategies.length;i<len;i++){strategy=this.strategies[i];if(strategy.autoActivate){strategy.deactivate();}}}},onMapResize:function(){OpenLayers.Layer.prototype.onMapResize.apply(this,arguments);this.renderer.setSize(this.map.getSize());},moveTo:function(bounds,zoomChanged,dragging){OpenLayers.Layer.prototype.moveTo.apply(this,arguments);var coordSysUnchanged=true;if(!dragging){this.renderer.root.style.visibility="hidden";this.div.style.left=-parseInt(this.map.layerContainerDiv.style.left)+"px";this.div.style.top=-parseInt(this.map.layerContainerDiv.style.top)+"px";var extent=this.map.getExtent();coordSysUnchanged=this.renderer.setExtent(extent,zoomChanged);this.renderer.root.style.visibility="visible";if(navigator.userAgent.toLowerCase().indexOf("gecko")!=-1){this.div.scrollLeft=this.div.scrollLeft;}
 if(!zoomChanged&&coordSysUnchanged){for(var i in this.unrenderedFeatures){var feature=this.unrenderedFeatures[i];this.drawFeature(feature);}}}
 if(!this.drawn||zoomChanged||!coordSysUnchanged){this.drawn=true;var feature;for(var i=0,len=this.features.length;i<len;i++){this.renderer.locked=(i!==(len-1));feature=this.features[i];this.drawFeature(feature);}}},display:function(display){OpenLayers.Layer.prototype.display.apply(this,arguments);var currentDisplay=this.div.style.display;if(currentDisplay!=this.renderer.root.style.display){this.renderer.root.style.display=currentDisplay;}},addFeatures:function(features,options){if(!(features instanceof Array)){features=[features];}
 var notify=!options||!options.silent;if(notify){var event={features:features};var ret=this.events.triggerEvent("beforefeaturesadded",event);if(ret===false){return;}
@@ -995,7 +1026,7 @@ if(notify){if(this.events.triggerEvent("beforefeatureadded",{feature:feature})==
 this.drawFeature(feature);if(notify){this.events.triggerEvent("featureadded",{feature:feature});this.onFeatureInsert(feature);}}
 if(notify){this.events.triggerEvent("featuresadded",{features:features});}},removeFeatures:function(features,options){if(!features||features.length===0){return;}
 if(!(features instanceof Array)){features=[features];}
-if(features===this.features){features=features.slice();}
+if(features===this.features||features===this.selectedFeatures){features=features.slice();}
 var notify=!options||!options.silent;for(var i=features.length-1;i>=0;i--){if(i!=0&&features[i-1].geometry){this.renderer.locked=true;}else{this.renderer.locked=false;}
 var feature=features[i];delete this.unrenderedFeatures[feature.id];if(notify){this.events.triggerEvent("beforefeatureremoved",{feature:feature});}
 this.features=OpenLayers.Util.removeItem(this.features,feature);feature.layer=null;if(feature.geometry){this.renderer.eraseFeatures(feature);}
@@ -1007,10 +1038,10 @@ if(typeof style!="object"){if(!style&&feature.state===OpenLayers.State.DELETE){s
 var renderIntent=style||feature.renderIntent;style=feature.style||this.style;if(!style){style=this.styleMap.createSymbolizer(feature,renderIntent);}}
 if(!this.renderer.drawFeature(feature,style)){this.unrenderedFeatures[feature.id]=feature;}else{delete this.unrenderedFeatures[feature.id];};},eraseFeatures:function(features){this.renderer.eraseFeatures(features);},getFeatureFromEvent:function(evt){if(!this.renderer){OpenLayers.Console.error(OpenLayers.i18n("getFeatureError"));return null;}
 var featureId=this.renderer.getFeatureIdFromEvent(evt);return this.getFeatureById(featureId);},getFeatureById:function(featureId){var feature=null;for(var i=0,len=this.features.length;i<len;++i){if(this.features[i].id==featureId){feature=this.features[i];break;}}
-return feature;},onFeatureInsert:function(feature){},preFeatureInsert:function(feature){},getDataExtent:function(){var maxExtent=null;if(this.features&&(this.features.length>0)){maxExtent=new OpenLayers.Bounds();for(var i=0,len=this.features.length;i<len;i++){maxExtent.extend(this.features[i].geometry.getBounds());}}
+return feature;},onFeatureInsert:function(feature){},preFeatureInsert:function(feature){},getDataExtent:function(){var maxExtent=null;var features=this.features;if(features&&(features.length>0)){maxExtent=new OpenLayers.Bounds();var geometry=null;for(var i=0,len=features.length;i<len;i++){geometry=features[i].geometry;if(geometry){maxExtent.extend(geometry.getBounds());}}}
 return maxExtent;},CLASS_NAME:"OpenLayers.Layer.Vector"});OpenLayers.Geometry.MultiPoint=OpenLayers.Class(OpenLayers.Geometry.Collection,{componentTypes:["OpenLayers.Geometry.Point"],initialize:function(components){OpenLayers.Geometry.Collection.prototype.initialize.apply(this,arguments);},addPoint:function(point,index){this.addComponent(point,index);},removePoint:function(point){this.removeComponent(point);},CLASS_NAME:"OpenLayers.Geometry.MultiPoint"});OpenLayers.Handler.Point=OpenLayers.Class(OpenLayers.Handler,{point:null,layer:null,multi:false,drawing:false,mouseDown:false,lastDown:null,lastUp:null,persist:false,layerOptions:null,initialize:function(control,callbacks,options){if(!(options&&options.layerOptions&&options.layerOptions.styleMap)){this.style=OpenLayers.Util.extend(OpenLayers.Feature.Vector.style['default'],{});}
 OpenLayers.Handler.prototype.initialize.apply(this,arguments);},activate:function(){if(!OpenLayers.Handler.prototype.activate.apply(this,arguments)){return false;}
-var options=OpenLayers.Util.extend({displayInLayerSwitcher:false,calculateInRange:function(){return true;}},this.layerOptions);this.layer=new OpenLayers.Layer.Vector(this.CLASS_NAME,options);this.map.addLayer(this.layer);return true;},createFeature:function(pixel){var lonlat=this.map.getLonLatFromPixel(pixel);this.point=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat));this.callback("create",[this.point.geometry,this.point]);this.point.geometry.clearBounds();this.layer.addFeatures([this.point],{silent:true});},deactivate:function(){if(!OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){return false;}
+var options=OpenLayers.Util.extend({displayInLayerSwitcher:false,calculateInRange:OpenLayers.Function.True},this.layerOptions);this.layer=new OpenLayers.Layer.Vector(this.CLASS_NAME,options);this.map.addLayer(this.layer);return true;},createFeature:function(pixel){var lonlat=this.map.getLonLatFromPixel(pixel);this.point=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat));this.callback("create",[this.point.geometry,this.point]);this.point.geometry.clearBounds();this.layer.addFeatures([this.point],{silent:true});},deactivate:function(){if(!OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){return false;}
 if(this.drawing){this.cancel();}
 this.destroyFeature();if(this.layer.map!=null){this.layer.destroy(false);}
 this.layer=null;return true;},destroyFeature:function(){if(this.layer){this.layer.destroyFeatures();}
@@ -1023,17 +1054,20 @@ this.lastDown=evt.xy;return false;},mousemove:function(evt){if(this.drawing){thi
 return true;},mouseup:function(evt){if(this.drawing){this.finalize();return false;}else{return true;}},CLASS_NAME:"OpenLayers.Handler.Point"});OpenLayers.Layer.GML=OpenLayers.Class(OpenLayers.Layer.Vector,{loaded:false,format:null,formatOptions:null,initialize:function(name,url,options){var newArguments=[];newArguments.push(name,options);OpenLayers.Layer.Vector.prototype.initialize.apply(this,newArguments);this.url=url;},setVisibility:function(visibility,noEvent){OpenLayers.Layer.Vector.prototype.setVisibility.apply(this,arguments);if(this.visibility&&!this.loaded){this.loadGML();}},moveTo:function(bounds,zoomChanged,minor){OpenLayers.Layer.Vector.prototype.moveTo.apply(this,arguments);if(this.visibility&&!this.loaded){this.loadGML();}},loadGML:function(){if(!this.loaded){this.events.triggerEvent("loadstart");OpenLayers.Request.GET({url:this.url,success:this.requestSuccess,failure:this.requestFailure,scope:this});this.loaded=true;}},setUrl:function(url){this.url=url;this.destroyFeatures();this.loaded=false;this.loadGML();},requestSuccess:function(request){var doc=request.responseXML;if(!doc||!doc.documentElement){doc=request.responseText;}
 var options={};OpenLayers.Util.extend(options,this.formatOptions);if(this.map&&!this.projection.equals(this.map.getProjectionObject())){options.externalProjection=this.projection;options.internalProjection=this.map.getProjectionObject();}
 var gml=this.format?new this.format(options):new OpenLayers.Format.GML(options);this.addFeatures(gml.read(doc));this.events.triggerEvent("loadend");},requestFailure:function(request){OpenLayers.Console.userError(OpenLayers.i18n("errorLoadingGML",{'url':this.url}));this.events.triggerEvent("loadend");},CLASS_NAME:"OpenLayers.Layer.GML"});OpenLayers.Layer.Vector.RootContainer=OpenLayers.Class(OpenLayers.Layer.Vector,{displayInLayerSwitcher:false,layers:null,initialize:function(name,options){OpenLayers.Layer.Vector.prototype.initialize.apply(this,arguments);},display:function(){},getFeatureFromEvent:function(evt){var layers=this.layers;var feature;for(var i=0;i<layers.length;i++){feature=layers[i].getFeatureFromEvent(evt);if(feature){return feature;}}},setMap:function(map){OpenLayers.Layer.Vector.prototype.setMap.apply(this,arguments);this.collectRoots();map.events.register("changelayer",this,this.handleChangeLayer);},removeMap:function(map){map.events.unregister("changelayer",this,this.handleChangeLayer);this.resetRoots();OpenLayers.Layer.Vector.prototype.removeMap.apply(this,arguments);},collectRoots:function(){var layer;for(var i=0;i<this.map.layers.length;++i){layer=this.map.layers[i];if(OpenLayers.Util.indexOf(this.layers,layer)!=-1){layer.renderer.moveRoot(this.renderer);}}},resetRoots:function(){var layer;for(var i=0;i<this.layers.length;++i){layer=this.layers[i];if(this.renderer&&layer.renderer.getRenderLayerId()==this.id){this.renderer.moveRoot(layer.renderer);}}},handleChangeLayer:function(evt){var layer=evt.layer;if(evt.property=="order"&&OpenLayers.Util.indexOf(this.layers,layer)!=-1){this.resetRoots();this.collectRoots();}},CLASS_NAME:"OpenLayers.Layer.Vector.RootContainer"});OpenLayers.Control.SelectFeature=OpenLayers.Class(OpenLayers.Control,{EVENT_TYPES:["beforefeaturehighlighted","featurehighlighted","featureunhighlighted"],multipleKey:null,toggleKey:null,multiple:false,clickout:true,toggle:false,hover:false,highlightOnly:false,box:false,onBeforeSelect:function(){},onSelect:function(){},onUnselect:function(){},scope:null,geometryTypes:null,layer:null,layers:null,callbacks:null,selectStyle:null,renderIntent:"select",handlers:null,initialize:function(layers,options){this.EVENT_TYPES=OpenLayers.Control.SelectFeature.prototype.EVENT_TYPES.concat(OpenLayers.Control.prototype.EVENT_TYPES);OpenLayers.Control.prototype.initialize.apply(this,[options]);if(this.scope===null){this.scope=this;}
-if(layers instanceof Array){this.layers=layers;this.layer=new OpenLayers.Layer.Vector.RootContainer(this.id+"_container",{layers:layers});}else{this.layer=layers;}
-var callbacks={click:this.clickFeature,clickout:this.clickoutFeature};if(this.hover){callbacks.over=this.overFeature;callbacks.out=this.outFeature;}
-this.callbacks=OpenLayers.Util.extend(callbacks,this.callbacks);this.handlers={feature:new OpenLayers.Handler.Feature(this,this.layer,this.callbacks,{geometryTypes:this.geometryTypes})};if(this.box){this.handlers.box=new OpenLayers.Handler.Box(this,{done:this.selectBox},{boxDivClassName:"olHandlerBoxSelectFeature"});}},destroy:function(){OpenLayers.Control.prototype.destroy.apply(this,arguments);if(this.layers){this.layer.destroy();}},activate:function(){if(!this.active){if(this.layers){this.map.addLayer(this.layer);}
+this.initLayer(layers);var callbacks={click:this.clickFeature,clickout:this.clickoutFeature};if(this.hover){callbacks.over=this.overFeature;callbacks.out=this.outFeature;}
+this.callbacks=OpenLayers.Util.extend(callbacks,this.callbacks);this.handlers={feature:new OpenLayers.Handler.Feature(this,this.layer,this.callbacks,{geometryTypes:this.geometryTypes})};if(this.box){this.handlers.box=new OpenLayers.Handler.Box(this,{done:this.selectBox},{boxDivClassName:"olHandlerBoxSelectFeature"});}},initLayer:function(layers){if(layers instanceof Array){this.layers=layers;this.layer=new OpenLayers.Layer.Vector.RootContainer(this.id+"_container",{layers:layers});}else{this.layer=layers;}},destroy:function(){if(this.active&&this.layers){this.map.removeLayer(this.layer);}
+OpenLayers.Control.prototype.destroy.apply(this,arguments);if(this.layers){this.layer.destroy();}},activate:function(){if(!this.active){if(this.layers){this.map.addLayer(this.layer);}
 this.handlers.feature.activate();if(this.box&&this.handlers.box){this.handlers.box.activate();}}
 return OpenLayers.Control.prototype.activate.apply(this,arguments);},deactivate:function(){if(this.active){this.handlers.feature.deactivate();if(this.handlers.box){this.handlers.box.deactivate();}
 if(this.layers){this.map.removeLayer(this.layer);}}
 return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},unselectAll:function(options){var layers=this.layers||[this.layer];var layer,feature;for(var l=0;l<layers.length;++l){layer=layers[l];for(var i=layer.selectedFeatures.length-1;i>=0;--i){feature=layer.selectedFeatures[i];if(!options||options.except!=feature){this.unselect(feature);}}}},clickFeature:function(feature){if(!this.hover){var selected=(OpenLayers.Util.indexOf(feature.layer.selectedFeatures,feature)>-1);if(selected){if(this.toggleSelect()){this.unselect(feature);}else if(!this.multipleSelect()){this.unselectAll({except:feature});}}else{if(!this.multipleSelect()){this.unselectAll({except:feature});}
-this.select(feature);}}},multipleSelect:function(){return this.multiple||(this.handlers.feature.evt&&this.handlers.feature.evt[this.multipleKey]);},toggleSelect:function(){return this.toggle||(this.handlers.feature.evt&&this.handlers.feature.evt[this.toggleKey]);},clickoutFeature:function(feature){if(!this.hover&&this.clickout){this.unselectAll();}},overFeature:function(feature){var layer=feature.layer;if(this.hover){if(this.highlightOnly){this.highlight(feature);}else if(OpenLayers.Util.indexOf(layer.selectedFeatures,feature)==-1){this.select(feature);}}},outFeature:function(feature){if(this.hover){if(this.highlightOnly){if(feature._lastHighlighter==this.id){if(feature._prevHighlighter&&feature._prevHighlighter!=this.id){delete feature._lastHighlighter;var control=this.map.getControl(feature._prevHighlighter);if(control){control.highlight(feature);}}else{this.unhighlight(feature);}}}else{this.unselect(feature);}}},highlight:function(feature){var layer=feature.layer;var cont=this.events.triggerEvent("beforefeaturehighlighted",{feature:feature});if(cont!==false){feature._prevHighlighter=feature._lastHighlighter;feature._lastHighlighter=this.id;var style=this.selectStyle||this.renderIntent;layer.drawFeature(feature,style);this.events.triggerEvent("featurehighlighted",{feature:feature});}},unhighlight:function(feature){var layer=feature.layer;feature._lastHighlighter=feature._prevHighlighter;delete feature._prevHighlighter;layer.drawFeature(feature,feature.style||feature.layer.style||"default");this.events.triggerEvent("featureunhighlighted",{feature:feature});},select:function(feature){var cont=this.onBeforeSelect.call(this.scope,feature);var layer=feature.layer;if(cont!==false){cont=layer.events.triggerEvent("beforefeatureselected",{feature:feature});if(cont!==false){layer.selectedFeatures.push(feature);this.highlight(feature);layer.events.triggerEvent("featureselected",{feature:feature});this.onSelect.call(this.scope,feature);}}},unselect:function(feature){var layer=feature.layer;this.unhighlight(feature);OpenLayers.Util.removeItem(layer.selectedFeatures,feature);layer.events.triggerEvent("featureunselected",{feature:feature});this.onUnselect.call(this.scope,feature);},selectBox:function(position){if(position instanceof OpenLayers.Bounds){var minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.left,position.bottom));var maxXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.right,position.top));var bounds=new OpenLayers.Bounds(minXY.lon,minXY.lat,maxXY.lon,maxXY.lat);if(!this.multipleSelect()){this.unselectAll();}
-var prevMultiple=this.multiple;this.multiple=true;var layers=this.layers||[this.layer];var layer;for(var l=0;l<layers.length;++l){layer=layers[l];for(var i=0,len=layer.features.length;i<len;++i){var feature=layer.features[i];if(this.geometryTypes==null||OpenLayers.Util.indexOf(this.geometryTypes,feature.geometry.CLASS_NAME)>-1){if(bounds.toGeometry().intersects(feature.geometry)){if(OpenLayers.Util.indexOf(layer.selectedFeatures,feature)==-1){this.select(feature);}}}}}
+this.select(feature);}}},multipleSelect:function(){return this.multiple||(this.handlers.feature.evt&&this.handlers.feature.evt[this.multipleKey]);},toggleSelect:function(){return this.toggle||(this.handlers.feature.evt&&this.handlers.feature.evt[this.toggleKey]);},clickoutFeature:function(feature){if(!this.hover&&this.clickout){this.unselectAll();}},overFeature:function(feature){var layer=feature.layer;if(this.hover){if(this.highlightOnly){this.highlight(feature);}else if(OpenLayers.Util.indexOf(layer.selectedFeatures,feature)==-1){this.select(feature);}}},outFeature:function(feature){if(this.hover){if(this.highlightOnly){if(feature._lastHighlighter==this.id){if(feature._prevHighlighter&&feature._prevHighlighter!=this.id){delete feature._lastHighlighter;var control=this.map.getControl(feature._prevHighlighter);if(control){control.highlight(feature);}}else{this.unhighlight(feature);}}}else{this.unselect(feature);}}},highlight:function(feature){var layer=feature.layer;var cont=this.events.triggerEvent("beforefeaturehighlighted",{feature:feature});if(cont!==false){feature._prevHighlighter=feature._lastHighlighter;feature._lastHighlighter=this.id;var style=this.selectStyle||this.renderIntent;layer.drawFeature(feature,style);this.events.triggerEvent("featurehighlighted",{feature:feature});}},unhighlight:function(feature){var layer=feature.layer;feature._lastHighlighter=feature._prevHighlighter;delete feature._prevHighlighter;layer.drawFeature(feature,feature.style||feature.layer.style||"default");this.events.triggerEvent("featureunhighlighted",{feature:feature});},select:function(feature){var cont=this.onBeforeSelect.call(this.scope,feature);var layer=feature.layer;if(cont!==false){cont=layer.events.triggerEvent("beforefeatureselected",{feature:feature});if(cont!==false){layer.selectedFeatures.push(feature);this.highlight(feature);if(!this.handlers.feature.lastFeature){this.handlers.feature.lastFeature=layer.selectedFeatures[0];}
+layer.events.triggerEvent("featureselected",{feature:feature});this.onSelect.call(this.scope,feature);}}},unselect:function(feature){var layer=feature.layer;this.unhighlight(feature);OpenLayers.Util.removeItem(layer.selectedFeatures,feature);layer.events.triggerEvent("featureunselected",{feature:feature});this.onUnselect.call(this.scope,feature);},selectBox:function(position){if(position instanceof OpenLayers.Bounds){var minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.left,position.bottom));var maxXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.right,position.top));var bounds=new OpenLayers.Bounds(minXY.lon,minXY.lat,maxXY.lon,maxXY.lat);if(!this.multipleSelect()){this.unselectAll();}
+var prevMultiple=this.multiple;this.multiple=true;var layers=this.layers||[this.layer];var layer;for(var l=0;l<layers.length;++l){layer=layers[l];for(var i=0,len=layer.features.length;i<len;++i){var feature=layer.features[i];if(!feature.getVisibility()){continue;}
+if(this.geometryTypes==null||OpenLayers.Util.indexOf(this.geometryTypes,feature.geometry.CLASS_NAME)>-1){if(bounds.toGeometry().intersects(feature.geometry)){if(OpenLayers.Util.indexOf(layer.selectedFeatures,feature)==-1){this.select(feature);}}}}}
 this.multiple=prevMultiple;}},setMap:function(map){this.handlers.feature.setMap(map);if(this.box){this.handlers.box.setMap(map);}
-OpenLayers.Control.prototype.setMap.apply(this,arguments);},CLASS_NAME:"OpenLayers.Control.SelectFeature"});OpenLayers.Geometry.Curve=OpenLayers.Class(OpenLayers.Geometry.MultiPoint,{componentTypes:["OpenLayers.Geometry.Point"],initialize:function(points){OpenLayers.Geometry.MultiPoint.prototype.initialize.apply(this,arguments);},getLength:function(){var length=0.0;if(this.components&&(this.components.length>1)){for(var i=1,len=this.components.length;i<len;i++){length+=this.components[i-1].distanceTo(this.components[i]);}}
+OpenLayers.Control.prototype.setMap.apply(this,arguments);},setLayer:function(layers){var isActive=this.active;this.unselectAll();this.deactivate();if(this.layers){this.layer.destroy();this.layers=null;}
+this.initLayer(layers);this.handlers.feature.layer=this.layer;if(isActive){this.activate();}},CLASS_NAME:"OpenLayers.Control.SelectFeature"});OpenLayers.Geometry.Curve=OpenLayers.Class(OpenLayers.Geometry.MultiPoint,{componentTypes:["OpenLayers.Geometry.Point"],initialize:function(points){OpenLayers.Geometry.MultiPoint.prototype.initialize.apply(this,arguments);},getLength:function(){var length=0.0;if(this.components&&(this.components.length>1)){for(var i=1,len=this.components.length;i<len;i++){length+=this.components[i-1].distanceTo(this.components[i]);}}
 return length;},getGeodesicLength:function(projection){var geom=this;if(projection){var gg=new OpenLayers.Projection("EPSG:4326");if(!gg.equals(projection)){geom=this.clone().transform(projection,gg);}}
 var length=0.0;if(geom.components&&(geom.components.length>1)){var p1,p2;for(var i=1,len=geom.components.length;i<len;i++){p1=geom.components[i-1];p2=geom.components[i];length+=OpenLayers.Util.distVincenty({lon:p1.x,lat:p1.y},{lon:p2.x,lat:p2.y});}}
 return length*1000;},CLASS_NAME:"OpenLayers.Geometry.Curve"});OpenLayers.Geometry.LineString=OpenLayers.Class(OpenLayers.Geometry.Curve,{initialize:function(points){OpenLayers.Geometry.Curve.prototype.initialize.apply(this,arguments);},removeComponent:function(point){if(this.components&&(this.components.length>2)){OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,arguments);}},intersects:function(geometry){var intersect=false;var type=geometry.CLASS_NAME;if(type=="OpenLayers.Geometry.LineString"||type=="OpenLayers.Geometry.LinearRing"||type=="OpenLayers.Geometry.Point"){var segs1=this.getSortedSegments();var segs2;if(type=="OpenLayers.Geometry.Point"){segs2=[{x1:geometry.x,y1:geometry.y,x2:geometry.x,y2:geometry.y}];}else{segs2=geometry.getSortedSegments();}
@@ -1042,7 +1076,7 @@ if(seg2.x2<seg1x1){continue;}
 seg2y1=seg2.y1;seg2y2=seg2.y2;if(Math.min(seg2y1,seg2y2)>Math.max(seg1y1,seg1y2)){continue;}
 if(Math.max(seg2y1,seg2y2)<Math.min(seg1y1,seg1y2)){continue;}
 if(OpenLayers.Geometry.segmentsIntersect(seg1,seg2)){intersect=true;break outer;}}}}else{intersect=geometry.intersects(this);}
-return intersect;},getSortedSegments:function(){var numSeg=this.components.length-1;var segments=new Array(numSeg);for(var i=0;i<numSeg;++i){point1=this.components[i];point2=this.components[i+1];if(point1.x<point2.x){segments[i]={x1:point1.x,y1:point1.y,x2:point2.x,y2:point2.y};}else{segments[i]={x1:point2.x,y1:point2.y,x2:point1.x,y2:point1.y};}}
+return intersect;},getSortedSegments:function(){var numSeg=this.components.length-1;var segments=new Array(numSeg),point1,point2;for(var i=0;i<numSeg;++i){point1=this.components[i];point2=this.components[i+1];if(point1.x<point2.x){segments[i]={x1:point1.x,y1:point1.y,x2:point2.x,y2:point2.y};}else{segments[i]={x1:point2.x,y1:point2.y,x2:point1.x,y2:point1.y};}}
 function byX1(seg1,seg2){return seg1.x1-seg2.x1;}
 return segments.sort(byX1);},splitWithSegment:function(seg,options){var edge=!(options&&options.edge===false);var tolerance=options&&options.tolerance;var lines=[];var verts=this.getVertices();var points=[];var intersections=[];var split=false;var vert1,vert2,point;var node,vertex,target;var interOptions={point:true,tolerance:tolerance};var result=null;for(var i=0,stop=verts.length-2;i<=stop;++i){vert1=verts[i];points.push(vert1.clone());vert2=verts[i+1];target={x1:vert1.x,y1:vert1.y,x2:vert2.x,y2:vert2.y};point=OpenLayers.Geometry.segmentsIntersect(seg,target,interOptions);if(point instanceof OpenLayers.Geometry.Point){if((point.x===seg.x1&&point.y===seg.y1)||(point.x===seg.x2&&point.y===seg.y2)||point.equals(vert1)||point.equals(vert2)){vertex=true;}else{vertex=false;}
 if(vertex||edge){if(!point.equals(intersections[intersections.length-1])){intersections.push(point.clone());}
@@ -1069,8 +1103,7 @@ var firstPoint=this.components[0];OpenLayers.Geometry.Collection.prototype.addCo
 return this;},transform:function(source,dest){if(source&&dest){for(var i=0,len=this.components.length;i<len-1;i++){var component=this.components[i];component.transform(source,dest);}
 this.bounds=null;}
 return this;},getCentroid:function(){if(this.components&&(this.components.length>2)){var sumX=0.0;var sumY=0.0;for(var i=0;i<this.components.length-1;i++){var b=this.components[i];var c=this.components[i+1];sumX+=(b.x+c.x)*(b.x*c.y-c.x*b.y);sumY+=(b.y+c.y)*(b.x*c.y-c.x*b.y);}
-var area=-1*this.getArea();var x=sumX/(6*area);var y=sumY/(6*area);}
-return new OpenLayers.Geometry.Point(x,y);},getArea:function(){var area=0.0;if(this.components&&(this.components.length>2)){var sum=0.0;for(var i=0,len=this.components.length;i<len-1;i++){var b=this.components[i];var c=this.components[i+1];sum+=(b.x+c.x)*(c.y-b.y);}
+var area=-1*this.getArea();var x=sumX/(6*area);var y=sumY/(6*area);return new OpenLayers.Geometry.Point(x,y);}else{return null;}},getArea:function(){var area=0.0;if(this.components&&(this.components.length>2)){var sum=0.0;for(var i=0,len=this.components.length;i<len-1;i++){var b=this.components[i];var c=this.components[i+1];sum+=(b.x+c.x)*(c.y-b.y);}
 area=-sum/2.0;}
 return area;},getGeodesicArea:function(projection){var ring=this;if(projection){var gg=new OpenLayers.Projection("EPSG:4326");if(!gg.equals(projection)){ring=this.clone().transform(projection,gg);}}
 var area=0.0;var len=ring.components&&ring.components.length;if(len>2){var p1,p2;for(var i=0;i<len-1;i++){p1=ring.components[i];p2=ring.components[i+1];area+=OpenLayers.Util.rad(p2.x-p1.x)*(2+Math.sin(OpenLayers.Util.rad(p1.y))+
@@ -1111,7 +1144,7 @@ return result;},CLASS_NAME:"OpenLayers.Geometry.Polygon"});OpenLayers.Geometry.P
 var rotatedAngle,x,y;var points=[];for(var i=0;i<sides;++i){rotatedAngle=angle+(i*2*Math.PI/sides);x=origin.x+(radius*Math.cos(rotatedAngle));y=origin.y+(radius*Math.sin(rotatedAngle));points.push(new OpenLayers.Geometry.Point(x,y));}
 var ring=new OpenLayers.Geometry.LinearRing(points);return new OpenLayers.Geometry.Polygon([ring]);};OpenLayers.Format.OSM=OpenLayers.Class(OpenLayers.Format.XML,{checkTags:false,interestingTagsExclude:null,areaTags:null,initialize:function(options){var layer_defaults={'interestingTagsExclude':['source','source_ref','source:ref','history','attribution','created_by'],'areaTags':['area','building','leisure','tourism','ruins','historic','landuse','military','natural','sport']};layer_defaults=OpenLayers.Util.extend(layer_defaults,options);var interesting={};for(var i=0;i<layer_defaults.interestingTagsExclude.length;i++){interesting[layer_defaults.interestingTagsExclude[i]]=true;}
 layer_defaults.interestingTagsExclude=interesting;var area={};for(var i=0;i<layer_defaults.areaTags.length;i++){area[layer_defaults.areaTags[i]]=true;}
-layer_defaults.areaTags=area;OpenLayers.Format.XML.prototype.initialize.apply(this,[layer_defaults]);},read:function(doc){if(typeof doc=="string"){doc=OpenLayers.Format.XML.prototype.read.apply(this,[doc]);}
+layer_defaults.areaTags=area;this.externalProjection=new OpenLayers.Projection("EPSG:4326");OpenLayers.Format.XML.prototype.initialize.apply(this,[layer_defaults]);},read:function(doc){if(typeof doc=="string"){doc=OpenLayers.Format.XML.prototype.read.apply(this,[doc]);}
 var nodes=this.getNodes(doc);var ways=this.getWays(doc);var feat_list=new Array(ways.length);for(var i=0;i<ways.length;i++){var point_list=new Array(ways[i].nodes.length);var poly=this.isWayArea(ways[i])?1:0;for(var j=0;j<ways[i].nodes.length;j++){var node=nodes[ways[i].nodes[j]];var point=new OpenLayers.Geometry.Point(node.lon,node.lat);point.osm_id=parseInt(ways[i].nodes[j]);point_list[j]=point;node.used=true;}
 var geometry=null;if(poly){geometry=new OpenLayers.Geometry.Polygon(new OpenLayers.Geometry.LinearRing(point_list));}else{geometry=new OpenLayers.Geometry.LineString(point_list);}
 if(this.internalProjection&&this.externalProjection){geometry.transform(this.externalProjection,this.internalProjection);}
@@ -1139,10 +1172,11 @@ this.setState(feature,node);var nd_dom=this.createElementNS(null,"nd");nd_dom.se
 this.serializeTags(feature,way);nodes.push(way);return nodes;},polygon:function(feature){var attrs=OpenLayers.Util.extend({'area':'yes'},feature.attributes);var feat=new OpenLayers.Feature.Vector(feature.geometry.components[0],attrs);feat.osm_id=feature.osm_id;return this.createXML['linestring'].apply(this,[feat]);}},serializeTags:function(feature,node){for(var key in feature.attributes){var tag=this.createElementNS(null,"tag");tag.setAttribute("k",key);tag.setAttribute("v",feature.attributes[key]);node.appendChild(tag);}},setState:function(feature,node){if(feature.state){var state=null;switch(feature.state){case OpenLayers.State.UPDATE:state="modify";case OpenLayers.State.DELETE:state="delete";}
 if(state){node.setAttribute("action",state);}}},CLASS_NAME:"OpenLayers.Format.OSM"});OpenLayers.Geometry.MultiPolygon=OpenLayers.Class(OpenLayers.Geometry.Collection,{componentTypes:["OpenLayers.Geometry.Polygon"],initialize:function(components){OpenLayers.Geometry.Collection.prototype.initialize.apply(this,arguments);},CLASS_NAME:"OpenLayers.Geometry.MultiPolygon"});OpenLayers.Format.GML=OpenLayers.Class(OpenLayers.Format.XML,{featureNS:"http://mapserver.gis.umn.edu/mapserver",featurePrefix:"feature",featureName:"featureMember",layerName:"features",geometryName:"geometry",collectionName:"FeatureCollection",gmlns:"http://www.opengis.net/gml",extractAttributes:true,xy:true,initialize:function(options){this.regExes={trimSpace:(/^\s*|\s*$/g),removeSpace:(/\s*/g),splitSpace:(/\s+/),trimComma:(/\s*,\s*/g)};OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);}
 var featureNodes=this.getElementsByTagNameNS(data.documentElement,this.gmlns,this.featureName);var features=[];for(var i=0;i<featureNodes.length;i++){var feature=this.parseFeature(featureNodes[i]);if(feature){features.push(feature);}}
-return features;},parseFeature:function(node){var order=["MultiPolygon","Polygon","MultiLineString","LineString","MultiPoint","Point","Envelope","Box"];var type,nodeList,geometry,parser;for(var i=0;i<order.length;++i){type=order[i];nodeList=this.getElementsByTagNameNS(node,this.gmlns,type);if(nodeList.length>0){var parser=this.parseGeometry[type.toLowerCase()];if(parser){geometry=parser.apply(this,[nodeList[0]]);if(this.internalProjection&&this.externalProjection){geometry.transform(this.externalProjection,this.internalProjection);}}else{OpenLayers.Console.error(OpenLayers.i18n("unsupportedGeometryType",{'geomType':type}));}
+return features;},parseFeature:function(node){var order=["MultiPolygon","Polygon","MultiLineString","LineString","MultiPoint","Point","Envelope","Box"];var type,nodeList,geometry,parser;for(var i=0;i<order.length;++i){type=order[i];nodeList=this.getElementsByTagNameNS(node,this.gmlns,type);if(nodeList.length>0){parser=this.parseGeometry[type.toLowerCase()];if(parser){geometry=parser.apply(this,[nodeList[0]]);if(this.internalProjection&&this.externalProjection){geometry.transform(this.externalProjection,this.internalProjection);}}else{OpenLayers.Console.error(OpenLayers.i18n("unsupportedGeometryType",{'geomType':type}));}
 break;}}
 var attributes;if(this.extractAttributes){attributes=this.parseAttributes(node);}
-var feature=new OpenLayers.Feature.Vector(geometry,attributes);feature.gml={featureType:node.firstChild.nodeName.split(":")[1],featureNS:node.firstChild.namespaceURI,featureNSPrefix:node.firstChild.prefix};var childNode=node.firstChild;var fid;while(childNode){if(childNode.nodeType==1){fid=childNode.getAttribute("fid")||childNode.getAttribute("id");if(fid){break;}}
+var feature=new OpenLayers.Feature.Vector(geometry,attributes);feature.gml={featureType:node.firstChild.nodeName.split(":")[1],featureNS:node.firstChild.namespaceURI,featureNSPrefix:node.firstChild.prefix};var boundedByNodes=this.getElementsByTagNameNS(node,this.gmlns,'boundedBy');if(boundedByNodes.length===1){parser=this.parseGeometry['box'];if(parser){feature.bounds=parser.apply(this,[boundedByNodes[0]]);}}
+var childNode=node.firstChild;var fid;while(childNode){if(childNode.nodeType==1){fid=childNode.getAttribute("fid")||childNode.getAttribute("id");if(fid){break;}}
 childNode=childNode.nextSibling;}
 feature.fid=fid;return feature;},parseGeometry:{point:function(node){var nodeList,coordString;var coords=[];var nodeList=this.getElementsByTagNameNS(node,this.gmlns,"pos");if(nodeList.length>0){coordString=nodeList[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.trimSpace,"");coords=coordString.split(this.regExes.splitSpace);}
 if(coords.length==0){nodeList=this.getElementsByTagNameNS(node,this.gmlns,"coordinates");if(nodeList.length>0){coordString=nodeList[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.removeSpace,"");coords=coordString.split(",");}}
@@ -1164,7 +1198,8 @@ var upoint=this.getElementsByTagNameNS(node,this.gmlns,"upperCorner");if(upoint.
 if(coords.length==2){coords[2]=null;}
 if(this.xy){var upperPoint=new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);}else{var upperPoint=new OpenLayers.Geometry.Point(coords[1],coords[0],coords[2]);}}
 if(lowerPoint&&upperPoint){components.push(new OpenLayers.Geometry.Point(lowerPoint.x,lowerPoint.y));components.push(new OpenLayers.Geometry.Point(upperPoint.x,lowerPoint.y));components.push(new OpenLayers.Geometry.Point(upperPoint.x,upperPoint.y));components.push(new OpenLayers.Geometry.Point(lowerPoint.x,upperPoint.y));components.push(new OpenLayers.Geometry.Point(lowerPoint.x,lowerPoint.y));var ring=new OpenLayers.Geometry.LinearRing(components);envelope=new OpenLayers.Geometry.Polygon([ring]);}
-return envelope;}},parseAttributes:function(node){var attributes={};var childNode=node.firstChild;var children,i,child,grandchildren,grandchild,name,value;while(childNode){if(childNode.nodeType==1){children=childNode.childNodes;for(i=0;i<children.length;++i){child=children[i];if(child.nodeType==1){grandchildren=child.childNodes;if(grandchildren.length==1){grandchild=grandchildren[0];if(grandchild.nodeType==3||grandchild.nodeType==4){name=(child.prefix)?child.nodeName.split(":")[1]:child.nodeName;value=grandchild.nodeValue.replace(this.regExes.trimSpace,"");attributes[name]=value;}}else{attributes[child.nodeName.split(":").pop()]=null;}}}
+return envelope;},box:function(node){var nodeList=this.getElementsByTagNameNS(node,this.gmlns,"coordinates");var coordString;var coords,beginPoint=null,endPoint=null;if(nodeList.length>0){coordString=nodeList[0].firstChild.nodeValue;coords=coordString.split(" ");if(coords.length==2){beginPoint=coords[0].split(",");endPoint=coords[1].split(",");}}
+if(beginPoint!==null&&endPoint!==null){return new OpenLayers.Bounds(parseFloat(beginPoint[0]),parseFloat(beginPoint[1]),parseFloat(endPoint[0]),parseFloat(endPoint[1]));}}},parseAttributes:function(node){var attributes={};var childNode=node.firstChild;var children,i,child,grandchildren,grandchild,name,value;while(childNode){if(childNode.nodeType==1){children=childNode.childNodes;for(i=0;i<children.length;++i){child=children[i];if(child.nodeType==1){grandchildren=child.childNodes;if(grandchildren.length==1){grandchild=grandchildren[0];if(grandchild.nodeType==3||grandchild.nodeType==4){name=(child.prefix)?child.nodeName.split(":")[1]:child.nodeName;value=grandchild.nodeValue.replace(this.regExes.trimSpace,"");attributes[name]=value;}}else{attributes[child.nodeName.split(":").pop()]=null;}}}
 break;}
 childNode=childNode.nextSibling;}
 return attributes;},write:function(features){if(!(features instanceof Array)){features=[features];}
index 7f3c369e8d2af644c66f89b5613b8c66aa8246ad..3c1c1872a1b6d7d559edeef35da060819f74f347 100644 (file)
@@ -1,6 +1,7 @@
 .olLayerGoogleCopyright {
     right: 3px;
-    bottom: 2px;  
+    bottom: 2px;
+    left: auto;  
 }
 .olLayerGooglePoweredBy {
     left: 2px;
index cd29d4dad20dd4216408093f2f437990af96014b..0627f0e153ee5784ee295a12713b6e69a669680c 100644 (file)
@@ -1,5 +1,5 @@
 div.olMap {
-       z-index: 0;
+    z-index: 0;
     padding: 0px!important;
     margin: 0px!important;
     cursor: default;
@@ -36,6 +36,8 @@ div.olLayerDiv {
     font-size: smaller;
 }
 .olControlScaleLine {
+   display: block;
+   position: absolute;
    left: 10px;
    bottom: 15px;
    font-size: xx-small;
@@ -214,12 +216,12 @@ div.olControlMousePosition {
 .olControlEditingToolbar .olControlDrawFeaturePolygonItemActive { 
   background-position: -26px -23px ;                                                                   
 }
-.olControlSaveFeaturesItemActive { 
+div.olControlSaveFeaturesItemActive { 
     background-image: url(img/save_features_on.png);
     background-repeat: no-repeat;
     background-position: 0px 1px;
 }
-.olControlSaveFeaturesItemInactive { 
+div.olControlSaveFeaturesItemInactive { 
     background-image: url(img/save_features_off.png);
     background-repeat: no-repeat;
     background-position: 0px 1px;
@@ -322,6 +324,12 @@ div.olControlMousePosition {
  -moz-user-select: none;
 }
 
+.olImageLoadError {
+    background-color: pink;
+    opacity: 0.5;
+    filter: alpha(opacity=50); /* IE */
+}
+
 /**
  * Cursor styles
  */
@@ -341,3 +349,49 @@ div.olControlMousePosition {
 .olControlDragFeatureActive.olControlDragFeatureOver.olDragDown {
     cursor: -moz-grabbing;
 }
+
+/**
+ * Layer switcher
+ */
+.olControlLayerSwitcher {
+    position: absolute;
+    top: 25px;
+    right: 0px;
+    width: 20em;
+    font-family: sans-serif;
+    font-weight: bold;
+    margin-top: 3px;
+    margin-left: 3px;
+    margin-bottom: 3px;
+    font-size: smaller;
+    color: white;
+    background-color: transparent;
+}
+
+.olControlLayerSwitcher .layersDiv {
+    padding-top: 5px;
+    padding-left: 10px;
+    padding-bottom: 5px;
+    padding-right: 75px;
+    background-color: darkblue;
+    width: 100%;
+    height: 100%;
+}
+
+.olControlLayerSwitcher .layersDiv .baseLbl,
+.olControlLayerSwitcher .layersDiv .dataLbl {
+    margin-top: 3px;
+    margin-left: 3px;
+    margin-bottom: 3px;
+}
+
+.olControlLayerSwitcher .layersDiv .baseLayersDiv,
+.olControlLayerSwitcher .layersDiv .dataLayersDiv {
+    padding-left: 10px;
+}
+
+.olControlLayerSwitcher .maximizeDiv,
+.olControlLayerSwitcher .minimizeDiv {
+    top: 5px;
+    right: 0px;
+}
index 496aa201e20e4067a3f6550da79ca234d27f02cd..c0e70dfd8fb1df6eba249202386438e89184ec32 100644 (file)
@@ -22,7 +22,7 @@ Disallow: /*relation=
 
 User-agent: Slurp
 Disallow: /user/*/traces/
-Disallow: /user/*/edits/
+Disallow: /user/*/edits
 Disallow: /user/*/diary/
 Allow: /user/
 Disallow: /traces/tag/
@@ -48,7 +48,7 @@ Disallow: /*relation=
 
 User-agent: Googlebot
 Disallow: /user/*/traces/
-Disallow: /user/*/edits/
+Disallow: /user/*/edits
 Disallow: /user/*/diary/
 Allow: /user/
 Disallow: /traces/tag/
index 4efbd928f4230efc7dc1f36eb46980bc497e531d..b6ee997125b7d98e04aa810ef81b756db7b41bcd 100644 (file)
@@ -526,6 +526,28 @@ hr {
   font-weight: bold;
 }
 
+/* Rules for the data browser */
+
+#browse_navigation {
+  float: right;
+  width: 250px;
+  text-align: center;
+  margin-left: 10px;
+}
+
+#browse_map {
+  float: right;
+  width: 250px;
+  text-align: right;
+  margin-left: 10px;
+}
+
+#browse_map #small_map {
+  width: 250px;
+  height: 300px;
+  border: solid 1px black;
+}
+
 /* Rules for the trace list shown by the traces tab etc */
 
 #trace_list {
diff --git a/script/misc/update-wiki-pages b/script/misc/update-wiki-pages
new file mode 100644 (file)
index 0000000..ffb1105
--- /dev/null
@@ -0,0 +1,149 @@
+#!/usr/bin/env perl
+use 5.010;
+use strict;
+use warnings;
+
+use Pod::Usage ();
+use Getopt::Long ();
+
+BEGIN {
+    eval "require MediaWiki::API; require YAML::XS;" or do {
+        print "You have to install some modules via CPAN to run this:\n";
+        print "   sudo cpanp MediaWiki::API YAML::XS\n";
+        exit 1;
+    };
+}
+
+use MediaWiki::API;
+use YAML::XS qw(Dump);
+use Test::More 'no_plan';
+
+=head1 NAME
+
+update-wiki-pages - Scrape the wiki for key/value wiki description pages
+
+=head1 SYNOPSIS
+
+    perl script/misc/update-wiki-pages config/wiki_pages.yml 
+
+Or with prove(1):
+
+    prove -e 'perl script/misc/update-wiki-pages' config/wiki_pages.yml
+
+=cut
+
+# Get the command-line options
+Getopt::Long::Parser->new(
+    config => [ qw< bundling no_ignore_case no_require_order pass_through > ],
+)->getoptions(
+    'h|help' => \my $help,
+) or help();
+
+# On --help
+help() if $help;
+
+help() unless $ARGV[0];
+
+# Get a API interface
+my $mw = MediaWiki::API->new();
+ok($mw, "Got a MediaWiki API");
+$mw->{config}->{api_url} = 'http://wiki.openstreetmap.org/w/api.php';
+
+# All our goodies
+my (%feature, %count);
+
+# This is what you get on:
+## http://wiki.openstreetmap.org/w/index.php?search=Template:KeyDescription&fulltext=Search&fulltext=Search
+for my $lang ('', map { "${_}:" } qw[ Pt Fi De It HU Cz Fr RU Pl ]) {
+    ok(1, "  Templates for language '$lang'");
+
+    # Key pages
+    ok(1, "    Getting key pages");
+    my $cnt = stick_content_in_hash("key", "Template:${lang}KeyDescription", \%feature);
+    ok(1, "    Got $cnt key pages");
+    $count{key} += $cnt;
+
+    # Value pages
+    ok(1, "    Getting value pages");
+    $cnt = stick_content_in_hash("tag", "Template:${lang}ValueDescription", \%feature);
+    ok(1, "    Got $cnt value pages");
+    $count{value} += $cnt;
+}
+
+ok(1, "Got a total of $count{$_} ${_}s") for qw[ key value ];
+
+# Dump to .yml file
+open my $out, ">", $ARGV[0] or die "Can't open file '$ARGV[0]' supplied on the command line";
+say $out "# THIS FILE IS AUTOGENERATED WITH THE script/misc/update-wiki-pages";
+say $out "# PROGRAM DO NOT MANUALLY EDIT IT";
+say $out "";
+say $out Dump(\%feature);
+close $out;
+
+exit 0;
+
+sub stick_content_in_hash
+{
+    my ($key, $title, $hash) = @_;
+    my $ukey = ucfirst $key;
+
+    my $space_to_underscore = sub {
+        my $txt = shift;
+        $txt =~ s/ /_/g;
+        $txt;
+    };
+
+    my $count = 0;
+    get_embeddedin(
+        $title,
+        sub {
+            my ($links) = @_;
+            my (@links) = @$links;
+            ok(1, "    ... got " . scalar(@links) . " more links");
+            for my $link (@links) {
+                $count++;
+                my $title = $link->{title};
+
+                if ($title =~ /^$ukey:(?<key_name>.*?)$/) {
+                    # English by default
+                    $hash->{en}->{$key}->{ $space_to_underscore->($+{key_name}) } = $title;
+                } elsif ($title =~ /^(?<lang>[^:]+):$ukey:(?<key_name>.*?)$/) {
+                    $hash->{lc $+{lang}}->{$key}->{ $space_to_underscore->($+{key_name}) } = $title;
+                }
+            }
+        }
+    );
+
+    return $count;
+}
+
+sub get_embeddedin
+{
+    my ($title, $callback) = @_;
+    my $articles = $mw->list(
+        {
+            action => 'query',
+            list => 'embeddedin',
+            eititle => $title,
+            eifilterredir => 'nonredirects',
+            # Doesn't work for De:* and anything non-en. Odd.
+            # einamespace => '0|8',
+            eilimit => '200',
+        },
+        {
+            max => '0',
+            hook => $callback,
+            skip_encoding => 1,
+        }
+    ) || die $mw->{error}->{code} . ': ' . $mw->{error}->{details};
+}
+
+sub help
+{
+    my %arg = @_;
+
+    Pod::Usage::pod2usage(
+        -verbose => $arg{ verbose },
+        -exitval => $arg{ exitval } || 0,
+    );
+}
index 096bc47bd7c5ebe0030335a31909f5f896f96228..f901f54c0e38bbc33da8ac71a57114fca03a006c 100644 (file)
@@ -29,36 +29,37 @@ de-AT:
     distance_in_words:
       half_a_minute: 'eine halbe Minute'
       less_than_x_seconds:
-        zero: 'weniger als 1 Sekunde'
-        one: 'weniger als 1 Sekunde'
+        one: 'weniger als eine Sekunde'
         other: 'weniger als {{count}} Sekunden'
       x_seconds:
-        one: '1 Sekunde'
+        one: 'eine Sekunde'
         other: '{{count}} Sekunden'
       less_than_x_minutes:
-        zero: 'weniger als 1 Minute'
         one: 'weniger als eine Minute'
         other: 'weniger als {{count}} Minuten'
       x_minutes:
-        one: '1 Minute'
+        one: 'eine Minute'
         other: '{{count}} Minuten'
       about_x_hours:
-        one: 'etwa 1 Stunde'
+        one: 'etwa eine Stunde'
         other: 'etwa {{count}} Stunden'
       x_days:
-        one: '1 Tag'
+        one: 'ein Tag'
         other: '{{count}} Tage'
       about_x_months:
-        one: 'etwa 1 Monat'
+        one: 'etwa ein Monat'
         other: 'etwa {{count}} Monate'
       x_months:
-        one: '1 Monat'
+        one: 'ein Monat'
         other: '{{count}} Monate'
+      almost_x_years:
+        one: 'fast ein Jahr'
+        other: 'fast {{count}} Jahre'
       about_x_years:
-        one: 'etwa 1 Jahr'
+        one: 'etwa ein Jahr'
         other: 'etwa {{count}} Jahre'
       over_x_years:
-        one: 'mehr als 1 Jahr'
+        one: 'mehr als ein Jahr'
         other: 'mehr als {{count}} Jahre'
     prompts:
       second: "Sekunden"
@@ -108,13 +109,23 @@ de-AT:
       words_connector: ", "
       two_words_connector: " und "
       last_word_connector: " und "
+    select:
+      prompt: "Bitte wählen:"
+
+  activemodel:
+    errors:
+      template:
+        header:
+          one:    "Konnte {{model}} nicht speichern: ein Fehler."
+          other:  "Konnte {{model}} nicht speichern: {{count}} Fehler."
+        body: "Bitte überprüfen Sie die folgenden Felder:"
 
   activerecord:
     errors:
       template:
         header:
-          one:    "Konnte dieses {{model}} Objekt nicht speichern: 1 Fehler."
-          other:  "Konnte dieses {{model}} Objekt nicht speichern: {{count}} Fehler."
+          one:    "Konnte {{model}} nicht speichern: ein Fehler."
+          other:  "Konnte {{model}} nicht speichern: {{count}} Fehler."
         body: "Bitte überprüfen Sie die folgenden Felder:"
 
       messages:
@@ -137,4 +148,4 @@ de-AT:
         less_than_or_equal_to: "muss kleiner oder gleich {{count}} sein"
         odd: "muss ungerade sein"
         even: "muss gerade sein"
-      models:
+        record_invalid: "Gültigkeitsprüfung ist fehlgeschlagen: {{errors}}"
diff --git a/vendor/plugins/rails-i18n/locale/de-CH.yml b/vendor/plugins/rails-i18n/locale/de-CH.yml
new file mode 100644 (file)
index 0000000..f8dec96
--- /dev/null
@@ -0,0 +1,151 @@
+# German (Switzerland) translations for Ruby on Rails 
+# by Clemens Kofler (clemens@railway.at)
+
+de-CH:
+  date:
+    formats:
+      default: "%d.%m.%Y"
+      short: "%e. %b"
+      long: "%e. %B %Y"
+      only_day: "%e"
+
+    day_names: [Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag]
+    abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa]
+    month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
+    abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez]
+    order: [ :day, :month, :year ]
+  
+  time:
+    formats:
+      default: "%A, %d. %B %Y, %H:%M Uhr"
+      short: "%d. %B, %H:%M Uhr"
+      long: "%A, %d. %B %Y, %H:%M Uhr"
+      time: "%H:%M"
+
+    am: "vormittags"
+    pm: "nachmittags"
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: 'eine halbe Minute'
+      less_than_x_seconds:
+        one: 'weniger als eine Sekunde'
+        other: 'weniger als {{count}} Sekunden'
+      x_seconds:
+        one: 'eine Sekunde'
+        other: '{{count}} Sekunden'
+      less_than_x_minutes:
+        one: 'weniger als eine Minute'
+        other: 'weniger als {{count}} Minuten'
+      x_minutes:
+        one: 'eine Minute'
+        other: '{{count}} Minuten'
+      about_x_hours:
+        one: 'etwa eine Stunde'
+        other: 'etwa {{count}} Stunden'
+      x_days:
+        one: 'ein Tag'
+        other: '{{count}} Tage'
+      about_x_months:
+        one: 'etwa ein Monat'
+        other: 'etwa {{count}} Monate'
+      x_months:
+        one: 'ein Monat'
+        other: '{{count}} Monate'
+      almost_x_years:
+        one: 'fast ein Jahr'
+        other: 'fast {{count}} Jahre'
+      about_x_years:
+        one: 'etwa ein Jahr'
+        other: 'etwa {{count}} Jahre'
+      over_x_years:
+        one: 'mehr als ein Jahr'
+        other: 'mehr als {{count}} Jahre'
+    prompts:
+      second: "Sekunden"
+      minute: "Minuten"
+      hour: "Stunden"
+      day: "Tag"
+      month: "Monat"
+      year: "Jahr"
+
+  number:
+    format:
+      precision: 2
+      separator: '.'
+      delimiter: "'"
+    currency:
+      format:
+        unit: 'CHF'
+        format: '%u %n'
+        separator: 
+        delimiter: 
+        precision: 
+    percentage:
+      format:
+        delimiter: ""
+    precision:
+      format:
+        delimiter: ""
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        # Storage units output formatting.
+        # %u is the storage unit, %n is the number (default: 2 MB)
+        format: "%n %u"
+        units:
+          byte:
+            one:   "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: " und "
+      last_word_connector: " und "
+    select:
+      prompt: "Bitte wählen:"
+
+  activemodel:
+    errors:
+      template:
+        header:
+          one:    "Konnte {{model}} nicht speichern: ein Fehler."
+          other:  "Konnte {{model}} nicht speichern: {{count}} Fehler."
+        body: "Bitte überprüfen Sie die folgenden Felder:"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "Konnte {{model}} nicht speichern: ein Fehler."
+          other:  "Konnte {{model}} nicht speichern: {{count}} Fehler."
+        body: "Bitte überprüfen Sie die folgenden Felder:"
+
+      messages:
+        inclusion: "ist kein gültiger Wert"
+        exclusion: "ist nicht verfügbar"
+        invalid: "ist nicht gültig"
+        confirmation: "stimmt nicht mit der Bestätigung überein"
+        accepted: "muss akzeptiert werden"
+        empty: "muss ausgefüllt werden"
+        blank: "muss ausgefüllt werden"
+        too_long: "ist zu lang (nicht mehr als {{count}} Zeichen)"
+        too_short: "ist zu kurz (nicht weniger als {{count}} Zeichen)"
+        wrong_length: "hat die falsche Länge (muss genau {{count}} Zeichen haben)"
+        taken: "ist bereits vergeben"
+        not_a_number: "ist keine Zahl"
+        greater_than: "muss grösser als {{count}} sein"
+        greater_than_or_equal_to: "muss grösser oder gleich {{count}} sein"
+        equal_to: "muss genau {{count}} sein"
+        less_than: "muss kleiner als {{count}} sein"
+        less_than_or_equal_to: "muss kleiner oder gleich {{count}} sein"
+        odd: "muss ungerade sein"
+        even: "muss gerade sein"
+        record_invalid: "Gültigkeitsprüfung ist fehlgeschlagen: {{errors}}"
index a0518952870e0b69113a809ac65360c11b449cd5..455446c3de419b1500a472640c21dbee11754559 100644 (file)
@@ -29,36 +29,37 @@ de:
     distance_in_words:
       half_a_minute: 'eine halbe Minute'
       less_than_x_seconds:
-        zero: 'weniger als 1 Sekunde'
-        one: 'weniger als 1 Sekunde'
+        one: 'weniger als eine Sekunde'
         other: 'weniger als {{count}} Sekunden'
       x_seconds:
-        one: '1 Sekunde'
+        one: 'eine Sekunde'
         other: '{{count}} Sekunden'
       less_than_x_minutes:
-        zero: 'weniger als 1 Minute'
         one: 'weniger als eine Minute'
         other: 'weniger als {{count}} Minuten'
       x_minutes:
-        one: '1 Minute'
+        one: 'eine Minute'
         other: '{{count}} Minuten'
       about_x_hours:
-        one: 'etwa 1 Stunde'
+        one: 'etwa eine Stunde'
         other: 'etwa {{count}} Stunden'
       x_days:
-        one: '1 Tag'
+        one: 'ein Tag'
         other: '{{count}} Tage'
       about_x_months:
-        one: 'etwa 1 Monat'
+        one: 'etwa ein Monat'
         other: 'etwa {{count}} Monate'
       x_months:
-        one: '1 Monat'
+        one: 'ein Monat'
         other: '{{count}} Monate'
+      almost_x_years:
+        one: 'fast ein Jahr'
+        other: 'fast {{count}} Jahre'
       about_x_years:
-        one: 'etwa 1 Jahr'
+        one: 'etwa ein Jahr'
         other: 'etwa {{count}} Jahre'
       over_x_years:
-        one: 'mehr als 1 Jahr'
+        one: 'mehr als ein Jahr'
         other: 'mehr als {{count}} Jahre'
     prompts:
       second: "Sekunden"
@@ -108,13 +109,23 @@ de:
       words_connector: ", "
       two_words_connector: " und "
       last_word_connector: " und "
+    select:
+      prompt: "Bitte wählen:"
+
+  activemodel:
+    errors:
+      template:
+        header:
+          one:    "Konnte {{model}} nicht speichern: ein Fehler."
+          other:  "Konnte {{model}} nicht speichern: {{count}} Fehler."
+        body: "Bitte überprüfen Sie die folgenden Felder:"
 
   activerecord:
     errors:
       template:
         header:
-          one:    "Konnte dieses {{model}} Objekt nicht speichern: 1 Fehler."
-          other:  "Konnte dieses {{model}} Objekt nicht speichern: {{count}} Fehler."
+          one:    "Konnte {{model}} nicht speichern: ein Fehler."
+          other:  "Konnte {{model}} nicht speichern: {{count}} Fehler."
         body: "Bitte überprüfen Sie die folgenden Felder:"
 
       messages:
@@ -138,4 +149,3 @@ de:
         odd: "muss ungerade sein"
         even: "muss gerade sein"
         record_invalid: "Gültigkeitsprüfung ist fehlgeschlagen: {{errors}}"
-      models:
index 3efb383df57a6dd1a3f8a11710e9c3d320d3cef1..39cd2db4ccf38eef0eb49de05377a6a5a2815421 100644 (file)
@@ -1,7 +1,10 @@
-# Bahasa Indonesia translations for Ruby on Rails 
+# Indonesian translations for Ruby on Rails 
 # by wynst (wynst.uei@gmail.com)
 
 id:
+  locale:
+    native_name: Bahasa Indonesia
+    address_separator: " "
   date:
     formats:
       default: "%d %B %Y"
@@ -17,21 +20,29 @@ id:
   time:
     formats:
       default: "%a, %d %b %Y %H.%M.%S %z"
+      numeric: "%d-%b-%y %H:%M"
       short: "%d %b %H.%M"
       long: "%d %B %Y %H.%M"
+      time: "%H:%M"
+      
     am: "am"
     pm: "pm"
 
   support:
+    select:
+      prompt: "Silahkan pilih"
     array:
       sentence_connector: "dan"
       skip_last_comma: true
+      words_connector: ", "
+      two_words_connector: ", "
+      last_word_connector: " dan "
 
   number:
     format:
-      separator: ","
       delimiter: "."
-      precision: 3
+      separator: ","
+      precision: 2
     
     currency:
       format:
@@ -43,32 +54,34 @@ id:
         
     percentage:
       format:
-        # separator:
-        delimiter: ""
-        # precision: 
+      delimiter: "."
+      separator: ","
+      precision: 2
 
     precision:
       format:
-        # separator:
-        delimiter: ""
-        # precision:
+      delimiter: "."
+      separator: ","
         
     human:
       format:
-        delimiter: ""
-        precision: 1
+      delimiter: "."
+      separator: ","
+      precision: 1
       storage_units: [Byte, KB, MB, GB, TB]
  
   datetime:
     distance_in_words:
       half_a_minute: "setengah menit"
       less_than_x_seconds:
+        zero:  "kurang dari 1 detik"
         one:   "kurang dari 1 detik"
         other: "kurang dari {{count}} detik"
       x_seconds:
         one:   "1 detik"
         other: "{{count}} detik"
       less_than_x_minutes:
+        zero:  "kurang dari 1 menit"
         one:   "kurang dari 1 menit"
         other: "kurang dari  {{count}} menit"
       x_minutes:
@@ -92,6 +105,9 @@ id:
       over_x_years:
         one:   "lebih dari setahun"
         other: "lebih dari {{count}} tahun"
+      almost_x_years:
+        one:   "hampir setahun"
+        other: "hampir {{count}} tahun"
  
   activerecord:
     errors:
@@ -119,4 +135,5 @@ id:
         less_than: "harus lebih kecil dari {{count}}"
         less_than_or_equal_to: "harus sama atau lebih kecil dari {{count}}"
         odd: "harus ganjil"
-        even: "harus genap"
\ No newline at end of file
+        even: "harus genap"
+        record_invalid: "Verifikasi gagal: {{errors}}"
index ed4cee9c215de704c70d5f0bea204b0cec90be23..f5b9f0e9b70237cc34f57687f588f5fc1ac4c3ec 100644 (file)
@@ -2,7 +2,11 @@
 nb:
   support:
     array:
-      sentence_connector: "og"
+      words_connector: ", "
+      two_words_connector: " og "
+      last_word_connector: " og "
+    select:
+      prompt: "Velg"
   date:
     formats:
       default: "%d.%m.%Y"
@@ -16,7 +20,6 @@ nb:
   time:
     formats:
       default: "%A, %e. %B %Y, %H:%M"
-      time: "%H:%M"
       short: "%e. %B, %H:%M"
       long: "%A, %e. %B %Y, %H:%M"
     am: ""
@@ -54,6 +57,9 @@ nb:
       over_x_years:
         one: "over 1 år"
         other: "over {{count}} år"
+      almost_x_years:
+        one: "nesten 1 år"
+        other: "nesten {{count}} år"
     prompts:
       year:   "År"
       month:  "Måned"
@@ -68,17 +74,44 @@ nb:
       delimiter: ","
     currency:
       format:
+        separator: "."
+        delimiter: ","
+        precision: 2
         unit: "kr"
         format: "%n %u"
     precision:
       format:
         delimiter: ""
-        precision: 4
-  activerecord:
+    human:
+      format:
+        precision: 1
+        delimiter: ","
+      storage_units:
+        # Storage units output formatting.
+        # %u is the storage unit, %n is the number (default: 2 MB)
+        format: "%n %u"
+        units:
+          byte:
+            one:   "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+    percentage:
+      format:
+        delimiter: ""        
+
+  activemodel:
     errors:
       template:
-        header: "kunne ikke lagre {{model}} på grunn av {{count}} feil."
-        body: "det oppstod problemer i følgende felt:"
+        header:
+          one:   "Kunne ikke lagre {{model}} på grunn av én feil."
+          other: "Kunne ikke lagre {{model}} på grunn av {{count}} feil."
+        body: "Det oppstod problemer i følgende felt:"
+                      
+  activerecord:
+    errors:
       messages:
         inclusion: "er ikke inkludert i listen"
         exclusion: "er reservert"
@@ -99,5 +132,6 @@ nb:
         less_than_or_equal_to: "må være mindre enn eller lik {{count}}"
         odd: "må være oddetall"
         even: "må være partall"
+        record_invalid: "Det oppstod feil: {{errors}}"
       # models:
       # attributes:
index 00443ab68ca6ed51e791069d9b402dd40b73e551..16f44ef2c6c9a08264ca1c2dffcd5f5c429f55aa 100644 (file)
@@ -126,9 +126,9 @@ nl:
     - dec
   support: 
     array: 
-      words_connector: ","
-      last_word_connector: ", en"
-      two_words_connector: en
+      words_connector: ", "
+      two_words_connector: " en "
+      last_word_connector: " en "
   datetime: 
     format: 
       default: "%Y-%m-%dT%H:%M:%S%Z"
index c08d23031df439740ff3687a746d9da5bca53ab4..c153b05beb300d75c44b7dff609a489d034990c9 100644 (file)
@@ -125,3 +125,6 @@ pl:
     array:
       sentence_connector: "i"
       skip_last_comma: true
+      words_connector: ", "
+      two_words_connector: " i "
+      last_word_connector: " i "
index 98af179401b1d47fc31799f8b71b6d85d8c8e4e7..3a007b2e4c7f86777870ede0c5f2e541081e415e 100644 (file)
@@ -97,8 +97,11 @@ pt-BR:
         delimiter: '.'
     human:
       format:
-        precision: 1
+        precision: 2
         delimiter: '.'
+        significant: true
+        strip_unsignificant_zeros: true
+      # number_to_human_size()
       storage_units:
         format: "%n %u"
         units:
@@ -109,6 +112,25 @@ pt-BR:
           mb: "MB"
           gb: "GB"
           tb: "TB"
+      # number_to_human()
+      # new in rails 3: please add to other locales
+      decimal_units:
+        format: "%n %u"
+        units:
+          unit: ""     
+          thousand: "mil"
+          million:
+            one: milhão
+            other: milhões
+          billion:
+            one: bilhão
+            other: bilhões
+          trillion:
+            one: trilhão
+            other: trilhões
+          quadrillion:
+            one: quatrilhão
+            other: quatrilhões
 
   # Usado no Array.to_sentence
   support:
@@ -138,6 +160,7 @@ pt-BR:
         wrong_length: "não possui o tamanho esperado ({{count}} caracteres)"
         taken: "já está em uso"
         not_a_number: "não é um número"
+        not_an_integer: "não é um número inteiro"
         greater_than: "deve ser maior do que {{count}}"
         greater_than_or_equal_to: "deve ser maior ou igual a {{count}}"
         equal_to: "deve ser igual a {{count}}"
@@ -145,4 +168,4 @@ pt-BR:
         less_than_or_equal_to: "deve ser menor ou igual a {{count}}"
         odd: "deve ser ímpar"
         even: "deve ser par"
-        record_invalid: "A validação falhou: {{errors}}"
\ No newline at end of file
+        record_invalid: "A validação falhou: {{errors}}"
index 6fe4f6680f9b38bfd2275bc36b389997ac740622..1b28b72c6200159d6a3999ae145583af9ae676b5 100644 (file)
@@ -128,7 +128,7 @@ pt-PT:
         delimiter: ''
         # precision:
 
-    # Used in number_to_human_size()
+    # Used in number_to_human_size() and number_to_human()
     human:
       format:
         # These three are to override number.format and are optional
@@ -138,6 +138,7 @@ pt-PT:
       # Rails <= v2.2.2
       # storage_units: [Bytes, KB, MB, GB, TB]
       # Rails >= v2.3
+      # number_to_human_size()
       storage_units:
         format: "%n %u"
         units:
@@ -148,6 +149,25 @@ pt-PT:
           mb: "MB"
           gb: "GB"
           tb: "TB"
+      # number_to_human()
+      # new in rails 3: please add to other locales
+      decimal_units:
+        format: "%n %u"
+        units:
+          unit: ""     
+          thousand: "mil"
+          million:
+            one: milhão
+            other: milhões
+          billion:
+            one: bilhão
+            other: bilhões
+          trillion:
+            one: trilhão
+            other: trilhões
+          quadrillion:
+            one: quatrilhão
+            other: quatrilhões
 
   activerecord:
     errors:
index 2acc6462f727e105a98ec1af869d5d5d223b3a51..ce47b0d96ea69f44772ffdede42ac630865635bc 100644 (file)
@@ -117,7 +117,7 @@ ro:
     errors:
       template:
         header: 
-          one: "Nu am putut salva acest model {{model}}: 1 eroare"
+          one: "Nu am putut salva acest {{model}}: o eroare"
           other: "Nu am putut salva acest {{model}}: {{count}} erori."
         body: "Încearcă să corectezi urmatoarele câmpuri:"
       messages:
@@ -149,4 +149,4 @@ ro:
       last_word_connector: " şi "
     select:
       # default value for :prompt => true in FormOptionsHelper
-      prompt: "Alegeţi"
\ No newline at end of file
+      prompt: "Alegeţi"
index 9cccbb31fbfaf53a8ec8cdb12f86037c55286079..41a4bdd352a4490f3e7949d23e87fab23bb3f270 100644 (file)
     errors:
       # model.errors.full_messages format.
       format: "{{attribute}} {{message}}"
-
+      
+      template:
+        header:
+          one:    "Ett fel förhindrade denna {{model}} från att sparas"
+          other:  "{{count}} fel förhindrade denna {{model}} från att sparas"
+        body: "Det var problem med följande fält:"
+      
       # The values :model, :attribute and :value are always available for interpolation
       # The value :count is available when applicable. Can be used for pluralization.
       messages:
index 020bda735eec1fe36b37f35c2d05289c91c6a747..81e318df34d28989ee5ff9533b32c6adbe04a04e 100644 (file)
@@ -54,6 +54,9 @@
       over_x_years:
         one: "一年多"
         other: "{{count}} 年多"
+      almost_x_years:
+        one:   "接近一年"
+        other: "接近 {{count}} 年"
     prompts:
       year:   "年"
       month:  "月"
       words_connector: ", "
       two_words_connector: " 和 "
       last_word_connector: ", 和 "
+    select:
+      prompt: "请选择"
   
   activerecord:
     errors:
-      template:
-        header: 
+      template: # ~ 2.3.5 backward compatible
+        header:
           one: "有 1 个错误发生导致「{{model}}」无法被保存。"
           other: "有 {{count}} 个错误发生导致「{{model}}」无法被保存。"
         body: "如下字段出现错误:"
       messages:
-        record_invalid: "校验失败: {{errors}}"
         inclusion: "不包含于列表中"
         exclusion: "是保留关键字"
         invalid: "是无效的"
         less_than_or_equal_to: "必须小于或等于 {{count}}"
         odd: "必须为单数"
         even: "必须为双数"
+        record_invalid: "校验失败: {{errors}}"
+  
+  activemodel:
+    errors:
+      template:
+        header:
+          one: "有 1 个错误发生导致「{{model}}」无法被保存。"
+          other: "有 {{count}} 个错误发生导致「{{model}}」无法被保存。"
+        body: "如下字段出现错误:"
+  
+
index 41e5b05eede1d31359e3c5793ee53a8a3acdd651..31a3712608957d76e759118e6f391803e42d81ba 100644 (file)
@@ -54,6 +54,9 @@
       over_x_years:
         one: "一年多"
         other: "{{count}} 年多"
+      almost_x_years:
+        one:   "接近一年"
+        other: "接近 {{count}} 年"
     prompts:
       year:   "年"
       month:  "月"
       words_connector: ", "
       two_words_connector: " 和 "
       last_word_connector: ", 和 "
+    select:
+      prompt: "請選擇"
   
   activerecord:
     errors:
-      template:
-        header: 
+      template: # ~ 2.3.5 backward compatible
+        header:
           one: "有 1 個錯誤發生使得「{{model}}」無法被儲存。"
           other: "有 {{count}} 個錯誤發生使得「{{model}}」無法被儲存。"
         body: "下面欄位有問題:"
         less_than_or_equal_to: "必須小於或等於 {{count}}"
         odd: "必須是奇數"
         even: "必須是偶數"
+        record_invalid: "校驗失敗: {{errors}}"
+  
+  activemodel:
+    errors:
+      template:
+        header:
+          one: "有 1 個錯誤發生使得「{{model}}」無法被儲存。"
+          other: "有 {{count}} 個錯誤發生使得「{{model}}」無法被儲存。"
+        body: "下面欄位有問題:"