1 sdump('D_TRACE','Loading util.js\n');
6 function parse_render_string( obj_string, render_string, regexp ) {
7 if (!regexp) regexp = /\$\$/g;
8 if (string.slice(0,1) == '.') {
9 return obj_string + render_string;
11 return render_string.replace( regexp, obj_string );
15 function getString( key ) {
17 var bundles = document.getElementById('string_bundles');
18 sdump('D_STRING','bundles = ' + bundles + ' bundles.childNodes.length = ' + bundles.childNodes.length + '\n');
19 for (var i = 0; i < bundles.childNodes.length; i++) {
20 var bundle = bundles.childNodes[i];
21 sdump('D_STRING','\ttrying bundle = ' + bundle + '\n');
24 var string = bundle.getString( key );
27 sdump('D_STRING','\tfound\n');
29 sdump('D_STRING','\tnot found\n');
33 sdump('D_ERROR',E + '\n');
36 sdump('D_STRING',key + '=' + s + '\n');
40 function getFormattedString( key, strArray ) {
42 var bundles = document.getElementById('string_bundles');
43 for (var i = i; i < bundles.childNodes.length; i++) {
44 var bundle = bundles[i];
47 var string = bundle.getFormattedString( key, strArray );
52 sdump('D_ERROR',E + '\n');
55 sdump('D_STRING',key + '(' + strArray + ')=' + s + '\n');
59 function string_to_array(s) {
61 for (var i = 0; i < s.length; i++ ) {
62 my_array.push( s.charAt(i) );
67 function yesno(value) {
69 case true: case 'true': case '1': case 'on':
76 function cents_as_dollars( cents ) {
77 return '$' + cents.substr(0,cents.length-2) + '.' + cents.substr(cents.length - 2);
80 function formatted_date(date,format) {
81 // pass in a Date object or epoch seconds
82 if (typeof(date) == 'string') {
83 date = new Date( parseInt( date + '000' ) );
85 var mm = date.getMonth() + 1;
87 if (mm.length == 1) mm = '0' +mm;
88 var dd = date.getDate().toString();
89 if (dd.length == 1) dd = '0' +dd;
90 var yyyy = date.getFullYear().toString();
91 var s = format.replace( /%m/g, mm );
92 s = s.replace( /%d/g, dd );
93 s = s.replace( /%Y/g, yyyy );
97 function interval_to_seconds ( $interval ) {
99 $interval = $interval.replace( /and/, ',' );
100 $interval = $interval.replace( /,/, ' ' );
103 var results = $interval.match( /\s*\+?\s*(\d+)\s*(\w{1})\w*\s*/g);
104 for (var i in results) {
105 var result = results[i].match( /\s*\+?\s*(\d+)\s*(\w{1})\w*\s*/ );
106 if (result[2] == 's') $amount += result[1] ;
107 if (result[2] == 'm') $amount += 60 * result[1] ;
108 if (result[2] == 'h') $amount += 60 * 60 * result[1] ;
109 if (result[2] == 'd') $amount += 60 * 60 * 24 * result[1] ;
110 if (result[2] == 'w') $amount += 60 * 60 * 24 * 7 * result[1] ;
111 if (result[2] == 'M') $amount += ((60 * 60 * 24 * 365)/12) * result[1] ;
112 if (result[2] == 'y') $amount += 60 * 60 * 24 * 365 * result[1] ;
120 for (var i = 0; i < arguments.length; i++) {
121 s = s + arguments[i];
123 //sdump('D_UTIL','debug:' + s + '\n');
127 function counter_init(id) {
131 function counter_incr(id) {
132 if (! counter[id]) { counter_init(id); }
133 return ++counter[id];
136 function counter_peek(id) {
137 if (! counter[id]) { return 0; }
141 function timer_init(id) {
142 timer[id] = (new Date).getTime();
145 function timer_elapsed(id) {
146 if (! timer[id]) { timer_init(id); }
147 var ms = (new Date).getTime() - timer[id];
148 return( ms + 'ms (' + ms/1000 + 's)' );
151 function dump_ns_node( node ) {
154 node[fieldmap["Fieldmapper::biblio::record_node"].fields.id.position]
156 node[fieldmap["Fieldmapper::biblio::record_node"].fields.intra_doc_id.position]
158 node[fieldmap["Fieldmapper::biblio::record_node"].fields.name.position]
160 node[fieldmap["Fieldmapper::biblio::record_node"].fields.type.position]
161 + '> parent_node=<' +
162 node[fieldmap["Fieldmapper::biblio::record_node"].fields.parent_node.position]
167 function nodeset2tree(ns) {
169 if (ns[i].parent_node) {
180 function ns_addChild(ns,p,c) {
181 if (! ns[p].children ) { ns[p].children = []; }
182 ns[p].children.push(ns[c]);
185 function print_tabs(t) {
187 for (var j = 0; j < t; j++ ) { r = r + "\t"; }
191 function pretty_print(s) {
192 var r = ''; var t = 0;
195 r = r + "\n" + print_tabs(t) + s[i]; t++;
196 r = r + "\n" + print_tabs(t);
197 } else if (s[i] == '[') {
198 r = r + "\n" + print_tabs(t) + s[i]; t++;
199 r = r + "\n" + print_tabs(t);
200 } else if (s[i] == '}') {
201 t--; r = r + "\n" + print_tabs(t) + s[i];
202 r = r + "\n" + print_tabs(t);
203 } else if (s[i] == ']') {
204 t--; r = r + "\n" + print_tabs(t) + s[i];
205 r = r + "\n" + print_tabs(t);
206 } else if (s[i] == ',') {
208 r = r + "\n" + print_tabs(t);
216 function super_dump(o,t) {
218 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
220 s = s + 'o.constructor == Array = ' + (o.constructor == Array) + '\n';
221 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
222 s = s + "typeof = " + typeof(o) + "\n";
224 var string = new XMLSerializer().serializeToString(o);
225 return( string + "\n" );
232 s = s + super_dump(i,t+1);
236 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
237 s = s + "\tMember#" + c++ + "\tType:" + typeof(value);
238 if (typeof(value) == 'object') {
239 value = super_dump(value,t+1);
241 s = s + "\ttoString:" + i.toString() + "\tvalue:" + value + "\n";
249 function super_dump_norecurse(o,t) {
251 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
253 s = s + 'o.constructor == Array = ' + (o.constructor == Array) + '\n';
254 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
255 s = s + "typeof = " + typeof(o) + "\n";
257 var string = new XMLSerializer().serializeToString(o);
258 return( string + "\n" );
266 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
267 s = s + "\tMember#" + c++ + "\tType:" + typeof(value);
268 s = s + "\ttoString:" + i.toString() + "\n";