]> gitweb @ CieloNegro.org - Rakka.git/blob - js/hashedParam.js
misc changes
[Rakka.git] / js / hashedParam.js
1 $(document).ready(function () {
2
3     /* Example of hashed params:
4      *
5      * /Foo/Bar.html#Redirect:Baz
6      * /Foo/Bar.html#EditPage
7      * /Foo/Bar.html#Redirect:Baz|EditPage
8      */
9
10     var cached_rawHash;
11     var cached_map;
12
13     Rakka.getRawHash = function () {
14         // Don't use window.location.hash as it isn't portable.
15         var r = window.location.hash;
16         var i = r.indexOf("#");
17         return (i >= 0
18                 ? r.substr(i + 1)
19                 : "");
20     };
21
22     Rakka.getHashedParamMap = function () {
23         var raw = Rakka.getRawHash();
24
25         if (cached_rawHash != raw) {
26             var src = decodeURIComponent(raw);
27
28             // Split the source by '|' letters.
29             cached_map = {};
30             $.each(src.split("|"), function () {
31                 // tuple ::= key ':' value
32                 //         | key           (value is empty)
33                 var i = this.indexOf(":");
34                 if (i >= 0) {
35                     cached_map[this.substr(0, i)] = this.substr(i + 1);
36                 }
37                 else {
38                     cached_map[this.substr(0, i)] = "";
39                 }
40             });
41
42             cached_rawHash = raw;
43         }
44
45         return cached_map;
46     };
47
48     Rakka.getHashedParam = function (key) {
49         return Rakka.getHashedParamMap()[key];
50     };
51
52     Rakka.setHashedParamMap = function (map) {
53         //////////
54     };
55 });