55d33d9927c4523aebf6b8acaa30abe35281495e
[rails.git] / public / javascripts / site.js
1 function updatelinks(lon,lat,zoom,layers) {
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     args["layers"] = layers;
20     node.href = setArgs(node.href, args);
21   }
22
23   node = document.getElementById("editanchor");
24   if (node) {
25     if (zoom >= 11) {
26       var args = new Object();
27       args.lat = lat;
28       args.lon = lon;
29       args.zoom = zoom;
30       node.href = setArgs("/edit.html", args);
31       node.style.fontStyle = 'normal';
32     } else {
33       node.href = 'javascript:alert("zoom in to edit map");';
34       node.style.fontStyle = 'italic';
35     }
36   }
37 }
38
39 function getArgs(url) {
40   var args = new Object();
41   var querystart = url.indexOf("?");
42
43   if (querystart >= 0) {
44      var querystring = url.substring(querystart + 1);
45      var queryitems = querystring.split("&");
46
47      for (var i = 0; i < queryitems.length; i++) {
48         if (match = queryitems[i].match(/^(.*)=(.*)$/)) {
49            args[unescape(match[1])] = unescape(match[2]);
50         } else {
51            args[unescape(queryitems[i])] = null
52         }
53      }
54   }
55
56   return args;
57 }
58
59 function setArgs(url, args) {
60    var queryitems = new Array();
61
62    for (arg in args)
63    {
64       if (args[arg] == null) {
65          queryitems.push(escape(arg));
66       } else {
67          queryitems.push(escape(arg) + "=" + escape(args[arg]));
68       }
69    }
70
71    return url.replace(/\?.*$/, "") + "?" + queryitems.join("&");
72 }
73
74 function getStyle(el, property) {
75   var style;
76
77   if (el.currentStyle) {
78     style = el.currentStyle[property];
79   } else if( window.getComputedStyle ) {
80     style = document.defaultView.getComputedStyle(el,null).getPropertyValue(property);
81   } else {
82     style = el.style[property];
83   }
84
85   return style;
86 }