]> git.openstreetmap.org Git - rails.git/blob - public/javascripts/site.js
Don't try and update links on nodes whose names match member functions
[rails.git] / public / javascripts / site.js
1 function updatelinks(lon,lat,zoom) {
2   var links = new Object();
3   links['viewanchor'] = '/index.html';
4   //links['editanchor'] = 'edit.html';
5   links['uploadanchor'] = '/traces';
6   links['loginanchor'] = '/login.html';
7   links['logoutanchor'] = '/logout.html';
8   links['registeranchor'] = '/create-account.html';
9
10   var node;
11   var anchor;
12   for (anchor in links) {
13     node = document.getElementById(anchor);
14     if (! node) { continue; }
15     var args = getArgs(node.href);
16     args["lat"] = lat;
17     args["lon"] = lon;
18     args["zoom"] = zoom;
19     node.href = setArgs(node.href, args);
20   }
21
22   node = document.getElementById("editanchor");
23   if (node) {
24     if (zoom >= 11) {
25       var args = new Object();
26       args.lat = lat;
27       args.lon = lon;
28       args.zoom = zoom;
29       node.href = setArgs("/edit.html", args);
30       node.style.fontStyle = 'normal';
31     } else {
32       node.href = 'javascript:alert("zoom in to edit map");';
33       node.style.fontStyle = 'italic';
34     }
35   }
36 }
37
38 function getArgs(url) {
39   var args = new Object();
40   var querystart = url.indexOf("?");
41
42   if (querystart >= 0) {
43      var querystring = url.substring(querystart + 1);
44      var queryitems = querystring.split("&");
45
46      for (var i = 0; i < queryitems.length; i++) {
47         if (match = queryitems[i].match(/^(.*)=(.*)$/)) {
48            args[unescape(match[1])] = unescape(match[2]);
49         } else {
50            args[unescape(queryitems[i])] = null
51         }
52      }
53   }
54
55   return args;
56 }
57
58 function setArgs(url, args) {
59    var queryitems = new Array();
60
61    for (arg in args)
62    {
63       if (args[arg] == null) {
64          queryitems.push(escape(arg));
65       } else {
66          queryitems.push(escape(arg) + "=" + escape(args[arg]));
67       }
68    }
69
70    return url.replace(/\?.*$/, "") + "?" + queryitems.join("&");
71 }