- for editing OpenStreetMap.</div>
- <script type="text/javascript" src="/javascripts/swfobject.js"></script>
- <script type="text/javascript">
- var fo = new SWFObject("/potlatch/potlatch.swf?d="+Math.round(Math.random()*1000), "potlatch", "700", "600", "6", "#FFFFFF");
- function doSWF(lat,lon,sc) {
- fo.addVariable('lat',lat);
- fo.addVariable('long',lon);
- fo.addVariable('scale',sc);
- fo.addVariable('token','<%= @user.token %>');
- fo.write("mapcontent");
+ for editing OpenStreetMap.
+</div>
+
+<%= javascript_include_tag 'swfobject.js' %>
+<script type="text/javascript" defer="defer">
+ var brokenContentSize = $("content").offsetWidth == 0;
+ var fo = new SWFObject("/potlatch/potlatch.swf?d="+Math.round(Math.random()*1000), "potlatch", "100%", "100%", "6", "#FFFFFF");
+ // 700,600 for fixed size, 100%,100% for resizable
+ var changesaved=true;
+ var winie=false; if (document.all && window.print) { winie=true; }
+
+ window.onbeforeunload=function() {
+ if (!changesaved && !winie) {
+ return "You have unsaved changes. (To save in Potlatch, you should deselect the current way or point.)";
+ }
+ }
+
+ function doSWF(lat,lon,sc) {
+ if (sc < 11) sc = 11;
+ fo.addVariable('scale',sc);
+ fo.addVariable('token','<%= session[:token] %>');
+ if (lat) { fo.addVariable('lat',lat); }
+ if (lon) { fo.addVariable('long',lon); }
+ <% if params['gpx'] %>fo.addVariable('gpx' ,'<%= h(params['gpx'] ) %>');<% end %>
+ <% if params['way'] %>fo.addVariable('way' ,'<%= h(params['way'] ) %>');<% end %>
+ <% if params['node'] %>fo.addVariable('node','<%= h(params['node']) %>');<% end %>
+ fo.write("map");
+ }
+
+ doSWF(<%= lat || 'null' %>,<%= lon || 'null' %>,<%= zoom %>);
+
+ function setPosition(lat, lon, zoom) {
+ doSWF(lat, lon, zoom);
+ }
+
+ function resizeContent() {
+ var content = $("content");
+ var rightMargin = parseInt(getStyle(content, "right"));
+ var bottomMargin = parseInt(getStyle(content, "bottom"));
+
+ content.style.width = document.documentElement.clientWidth - content.offsetLeft - rightMargin;
+ content.style.height = document.documentElement.clientHeight - content.offsetTop - bottomMargin;
+ }
+
+ function resizeMap() {
+ var sidebar_width = $("sidebar").offsetWidth;
+
+ if (sidebar_width > 0) {
+ sidebar_width = sidebar_width + 5
+ }
+
+ $("map").style.left = (sidebar_width) + "px";
+ $("map").style.width = ($("content").offsetWidth - sidebar_width) + "px";
+ $("map").style.height = ($("content").offsetHeight - 2) + "px";
+ }
+
+ function handleResize() {
+ if (brokenContentSize) {
+ resizeContent();