fixed an infamous comma error (makes the javascript crash in Explorer...)
[cxgn-jslib.git] / CXGN / DeveloperSettings.js
blob7492366852ad9134deef9c3d576ac7f3cf007925
1 /*
3 =head1 CXGN.DeveloperSettings
5 Manages the cookie and key/values for developer settings, on the client side
6 This is a singleton object
8 =head1 Functions
10 =cut
14 JSAN.use('CXGN.Cookie');
16 DeveloperSettings = window.DeveloperSettings || {};
18 var DeveloperSettings = {
19 data: new Object,
20 _init: function() {
21 DeveloperSettings.parse(Cookie.get('developer_settings'));
25 =head2 parse( cookie_string )
27 Given a cookie_string, parses out key/value relationships and sets
28 them to the object (assc. array) DeveloperSettings.data
30 =cut
33 parse: function(cookie_string) {
34 cookie_string = decodeURIComponent(cookie_string);
35 var kvps = cookie_string.split(':');
36 for(var j = 0; j < kvps.length; j++){
37 var kv = kvps[j].split('=');
38 var k = kv[0];
39 var v = kv[1];
40 DeveloperSettings.data[k] = v;
45 =head2 build()
47 Build and returncookie string from DeveloperSettings.data object (assc. array)
49 =cut
52 build: function() {
53 var data = DeveloperSettings.data;
54 var cookie_string = '';
55 var i = 0;
56 for(key in data){
57 if(i>0) cookie_string += ":";
58 cookie_string += encodeURIComponent(key) + "=" + encodeURIComponent(data[key])
59 i++;
61 return encodeURIComponent(cookie_string);
66 =head2 save()
68 Calls build() and sets this to the cookie
70 =cut
73 save: function() {
74 Cookie.set('developer_settings', DeveloperSettings.build(), 1000);
76 /*
78 =head2 getValue(key)
80 Gets the current value for the key in the associative array
82 =cut
85 getValue: function(key) {
86 return DeveloperSettings.data[key];
88 /*
90 =head2 setValue(key, value)
92 Given a key and value, sets the associative array
94 =cut
97 setValue: function(key,value) {
98 DeveloperSettings.data[key] = value;
102 DeveloperSettings._init();