-<script type="text/javascript">
- var lon = <%= lon %>;
- var lat = <%= lat %>;
- var zoom = <%= zoom %>;
- var PI = 3.14159265358979323846;
-
- <% if params['scale'] and params['scale'].length > 0 then %>
- zoom = Math.log(360.0/(( <% print params['scale'].to_f() %> ) * 512.0)) / Math.log(2.0);
- <% end %>
- zoom = zoom;
- lon = lon * 20037508.34 / 180;
- lat = Math.log(Math.tan( (90 + lat) * PI / 360)) / (PI / 180);
- lat = lat * 20037508.34 / 180;
+<% if params['mlon'] and params['mlat'] %>
+<% marker = true %>
+<% mlon = params['mlon'] %>
+<% mlat = params['mlat'] %>
+<% end %>
+
+<% if params['minlon'] and params['minlat'] and params['maxlon'] and params['maxlat'] %>
+<% bbox = true %>
+<% minlon = params['minlon'] %>
+<% minlat = params['minlat'] %>
+<% maxlon = params['maxlon'] %>
+<% maxlat = params['maxlat'] %>
+<% end %>
+
+<% if params['lon'] and params['lat'] %>
+<% lon = params['lon'] %>
+<% lat = params['lat'] %>
+<% zoom = params['zoom'] || '5' %>
+<% layers = params['layers'] %>
+<% elsif params['mlon'] and params['mlat'] %>
+<% lon = params['mlon'] %>
+<% lat = params['mlat'] %>
+<% zoom = params['zoom'] || '12' %>
+<% layers = params['layers'] %>
+<% elsif cookies.key?("location") %>
+<% lon,lat,zoom,layers = cookies["location"].value.first.split(",") %>
+<% elsif @user and !@user.home_lon.nil? and !@user.home_lat.nil? %>
+<% lon = @user.home_lon %>
+<% lat = @user.home_lat %>
+<% zoom = '10' %>
+<% else %>
+<% session[:location] = OSM::IPLocation(request.env['REMOTE_ADDR']) unless session[:location] %>
+<% if session[:location] %>
+<% bbox = true %>
+<% minlon = session[:location][:minlon] %>
+<% minlat = session[:location][:minlat] %>
+<% maxlon = session[:location][:maxlon] %>
+<% maxlat = session[:location][:maxlat] %>
+<% else %>
+<% lon = '-0.1' %>
+<% lat = '51.5' %>
+<% zoom = params['zoom'] || '5' %>
+<% layers = params['layers'] %>
+<% end %>
+<% end %>
+
+<script type="text/javascript" src="/openlayers/OpenLayers.js"></script>
+<%= javascript_include_tag 'map.js' %>