]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/util.js
turns out this wasn't needed
[working/Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / util / util.js
1 sdump('D_TRACE','Loading util.js\n');
2
3 var timer = {};
4 var counter = {};
5
6 function getString( key ) {
7         var s = '';
8         var bundles = document.getElementById('string_bundles');
9         sdump('D_STRING','bundles = ' + bundles + ' bundles.childNodes.length = ' + bundles.childNodes.length + '\n');
10         for (var i = 0; i < bundles.childNodes.length; i++) {
11                 var bundle = bundles.childNodes[i];
12                 sdump('D_STRING','\ttrying bundle = ' + bundle + '\n');
13                 try {
14
15                         var string = bundle.getString( key );
16                         if (string) {
17                                 s = string;
18                                 sdump('D_STRING','\tfound\n');
19                         } else {
20                                 sdump('D_STRING','\tnot found\n');
21                         }
22
23                 } catch(E) {
24                         sdump('D_ERROR',E + '\n');
25                 }
26         }
27         sdump('D_STRING',key + '=' + s + '\n');
28         return s;
29 }
30
31 function getFormattedString( key, strArray ) {
32         var s = '';
33         var bundles = document.getElementById('string_bundles');
34         for (var i = i; i < bundles.childNodes.length; i++) {
35                 var bundle = bundles[i];
36                 try {
37
38                         var string = bundle.getFormattedString( key, strArray );
39                         if (string)
40                                 s = string;
41
42                 } catch(E) {
43                         sdump('D_ERROR',E + '\n');
44                 }
45         }
46         sdump('D_STRING',key + '(' + strArray + ')=' + s + '\n');
47         return s;
48 }
49
50 function string_to_array(s) {
51         var my_array = [];
52         for (var i = 0; i < s.length; i++ ) {
53                 my_array.push( s.charAt(i) );
54         }
55         return my_array;
56 }
57
58 function yesno(value) {
59         switch(value) {
60                 case true: case 'true': case '1': case 'on':
61                         return 'Yes';
62                 default: 
63                         return 'No';
64         }
65 }
66
67 function cents_as_dollars( cents ) {
68         return '$' + cents.substr(0,cents.length-2) + '.' + cents.substr(cents.length - 2);
69 }
70
71 function formatted_date(date,format) {
72         // pass in a Date object or epoch seconds
73         if (typeof(date) == 'string') {
74                 date = new Date( parseInt( date + '000' ) );
75         }
76         var mm = date.getMonth() + 1;
77         mm = mm.toString();
78         if (mm.length == 1) mm = '0' +mm;
79         var dd = date.getDate().toString();
80         if (dd.length == 1) dd = '0' +dd;
81         var yyyy = date.getFullYear().toString();
82         var s = format.replace( /%m/g, mm );
83         s = s.replace( /%d/g, dd );
84         s = s.replace( /%Y/g, yyyy );
85         return s;
86 }
87
88 function interval_to_seconds ( $interval ) {
89
90         $interval = $interval.replace( /and/, ',' );
91         $interval = $interval.replace( /,/, ' ' );
92
93         var $amount = 0;
94         var results = $interval.match( /\s*\+?\s*(\d+)\s*(\w{1})\w*\s*/g);  
95         for (var i in results) {
96                 var result = results[i].match( /\s*\+?\s*(\d+)\s*(\w{1})\w*\s*/ );
97                 if (result[2] == 's') $amount += result[1] ;
98                 if (result[2] == 'm') $amount += 60 * result[1] ;
99                 if (result[2] == 'h') $amount += 60 * 60 * result[1] ;
100                 if (result[2] == 'd') $amount += 60 * 60 * 24 * result[1] ;
101                 if (result[2] == 'w') $amount += 60 * 60 * 24 * 7 * result[1] ;
102                 if (result[2] == 'M') $amount += ((60 * 60 * 24 * 365)/12) * result[1] ;
103                 if (result[2] == 'y') $amount += 60 * 60 * 24 * 365 * result[1] ;
104         }
105         return $amount;
106 }
107
108 /*
109 function debug() {
110         var s = '';
111         for (var i = 0; i < arguments.length; i++) {
112                 s = s + arguments[i];
113         }
114         //sdump('D_UTIL','debug:' + s + '\n');
115 }
116 */
117
118 function counter_init(id) {
119         counter[id] = 0;
120 }
121
122 function counter_incr(id) {
123         if (! counter[id]) { counter_init(id); }
124         return ++counter[id];
125 }
126
127 function counter_peek(id) {
128         if (! counter[id]) { return 0; }
129         return counter[id];
130 }
131
132 function timer_init(id) {
133         timer[id] = (new Date).getTime();
134 }
135
136 function timer_elapsed(id) {
137         if (! timer[id]) { timer_init(id); }
138         var ms = (new Date).getTime() - timer[id];
139         return( ms + 'ms (' + ms/1000 + 's)' );
140 }
141
142 function dump_ns_node( node ) {
143         return (
144         'id=<' + 
145         node[fieldmap["Fieldmapper::biblio::record_node"].fields.id.position] 
146         + '>  intra-id=<' + 
147         node[fieldmap["Fieldmapper::biblio::record_node"].fields.intra_doc_id.position]
148         + '>  name=<' + 
149         node[fieldmap["Fieldmapper::biblio::record_node"].fields.name.position]
150         + '>  node_type=<' + 
151         node[fieldmap["Fieldmapper::biblio::record_node"].fields.type.position]
152         + '>  parent_node=<' + 
153         node[fieldmap["Fieldmapper::biblio::record_node"].fields.parent_node.position]
154         + '>  '
155         );
156 }
157
158 function nodeset2tree(ns) {
159         for (var i in ns) {
160                 if (ns[i].parent_node) {
161                         ns_addChild( 
162                                 ns, 
163                                 ns[i].parent_node, 
164                                 ns[i].intra_doc_id 
165                         );
166                 }
167         }
168         return ns;
169 }
170
171 function ns_addChild(ns,p,c) {
172         if (! ns[p].children ) { ns[p].children = []; }
173         ns[p].children.push(ns[c]);
174 }
175
176 function print_tabs(t) {
177         var r = '';
178         for (var j = 0; j < t; j++ ) { r = r + "\t"; }
179         return r;
180 }
181
182 function pretty_print(s) {
183         var r = ''; var t = 0;
184         for (var i in s) {
185                 if (s[i] == '{') {
186                         r = r + "\n" + print_tabs(t) + s[i]; t++;
187                         r = r + "\n" + print_tabs(t);
188                 } else if (s[i] == '[') {
189                         r = r + "\n" + print_tabs(t) + s[i]; t++;
190                         r = r + "\n" + print_tabs(t);
191                 } else if (s[i] == '}') {
192                         t--; r = r + "\n" + print_tabs(t) + s[i]; 
193                         r = r + "\n" + print_tabs(t);
194                 } else if (s[i] == ']') { 
195                         t--; r = r + "\n" + print_tabs(t) + s[i];
196                         r = r + "\n" + print_tabs(t);
197                 } else if (s[i] == ',') {
198                         r = r + s[i]; 
199                         r = r + "\n" + print_tabs(t);
200                 } else {
201                         r = r + s[i];
202                 }
203         }
204         return r;
205 }
206
207 function super_dump(o,t) {
208         var s = "\n";
209         for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
210         s = s + "=-=-=\n";
211         s = s + 'o.constructor == Array = ' + (o.constructor == Array) + '\n';
212         for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
213         s = s + "typeof = " + typeof(o) + "\n";
214         try {
215                 var string = new XMLSerializer().serializeToString(o);
216                 return( string + "\n" );
217         } catch( E ) {
218                 var i;
219                 var c = 0;
220                 for (i in o) {
221                         switch(typeof(i)) {
222                                 case 'object':
223                                         s = s + super_dump(i,t+1);
224                                         break;
225                                 default :
226                                         var value = o[i];
227                                         for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
228                                         s = s + "\tMember#" + c++ + "\tType:" + typeof(value);
229                                         if (typeof(value) == 'object') {
230                                                 value = super_dump(value,t+1);
231                                         }
232                                         s = s + "\ttoString:" + i.toString() + "\tvalue:" + value + "\n";
233                                         break;
234                         }
235                 }
236                 return( s + "\n" );
237         }
238 }
239
240 function super_dump_norecurse(o,t) {
241         var s = "\n";
242         for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
243         s = s + "=-=-=\n";
244         s = s + 'o.constructor == Array = ' + (o.constructor == Array) + '\n';
245         for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
246         s = s + "typeof = " + typeof(o) + "\n";
247         try {
248                 var string = new XMLSerializer().serializeToString(o);
249                 return( string + "\n" );
250         } catch( E ) {
251                 var i;
252                 var c = 0;
253                 for (i in o) {
254                         switch(typeof(i)) {
255                                 default :
256                                         var value = o[i];
257                                         for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
258                                         s = s + "\tMember#" + c++ + "\tType:" + typeof(value);
259                                         s = s + "\ttoString:" + i.toString() + "\n";
260                                         break;
261                         }
262                 }
263                 return( s + "\n" );
264         }
265 }
266
267