]> git.openstreetmap.org Git - rails.git/blob - public/javascripts/site.js
Patch from crschmidt to add an obvious permalink to the bottom right
[rails.git] / public / javascripts / site.js
1 function updatelinks(lon,lat,zoom,layers) {
2   var node;
3
4   node = document.getElementById("viewanchor");
5   if (node) {
6     var args = getArgs(node.href);
7     args["lat"] = lat;
8     args["lon"] = lon;
9     args["zoom"] = zoom;
10     args["layers"] = layers;
11     node.href = setArgs(node.href, args);
12   }
13
14   node = document.getElementById("editanchor");
15   if (node) {
16     if (zoom >= 11) {
17       var args = new Object();
18       args.lat = lat;
19       args.lon = lon;
20       args.zoom = zoom;
21       node.href = setArgs("/edit.html", args);
22       node.style.fontStyle = 'normal';
23     } else {
24       node.href = 'javascript:alert("zoom in to edit map");';
25       node.style.fontStyle = 'italic';
26     }
27   }
28 }
29
30 function getArgs(url) {
31   var args = new Object();
32   var querystart = url.indexOf("?");
33
34   if (querystart >= 0) {
35      var querystring = url.substring(querystart + 1);
36      var queryitems = querystring.split("&");
37
38      for (var i = 0; i < queryitems.length; i++) {
39         if (match = queryitems[i].match(/^(.*)=(.*)$/)) {
40            args[unescape(match[1])] = unescape(match[2]);
41         } else {
42            args[unescape(queryitems[i])] = null
43         }
44      }
45   }
46
47   return args;
48 }
49
50 function setArgs(url, args) {
51    var queryitems = new Array();
52
53    for (arg in args)
54    {
55       if (args[arg] == null) {
56          queryitems.push(escape(arg));
57       } else {
58          queryitems.push(escape(arg) + "=" + escape(args[arg]));
59       }
60    }
61
62    return url.replace(/\?.*$/, "") + "?" + queryitems.join("&");
63 }
64
65 function getStyle(el, property) {
66   var style;
67
68   if (el.currentStyle) {
69     style = el.currentStyle[property];
70   } else if( window.getComputedStyle ) {
71     style = document.defaultView.getComputedStyle(el,null).getPropertyValue(property);
72   } else {
73     style = el.style[property];
74   }
75
76   return style;
77 }