1 sdump('D_TRACE','Loading util.js\n');
6 function string_to_array(s) {
8 for (var i = 0; i < s.length; i++ ) {
9 my_array.push( s.charAt(i) );
14 function yesno(value) {
16 case true: case 'true': case '1': case 'on':
23 function formatted_date(date,format) {
24 // pass in a Date object or epoch seconds
25 if (typeof(date) == 'string') {
26 date = new Date( parseInt( date + '000' ) );
28 var mm = date.getMonth() + 1;
30 if (mm.length == 1) mm = '0' +mm;
31 var dd = date.getDate().toString();
32 if (dd.length == 1) dd = '0' +dd;
33 var yyyy = date.getFullYear().toString();
34 var s = format.replace( /%m/g, mm );
35 s = s.replace( /%d/g, dd );
36 s = s.replace( /%Y/g, yyyy );
40 function interval_to_seconds ( $interval ) {
42 $interval = $interval.replace( /and/, ',' );
43 $interval = $interval.replace( /,/, ' ' );
46 var results = $interval.match( /\s*\+?\s*(\d+)\s*(\w{1})\w*\s*/g);
47 for (var i in results) {
48 var result = results[i].match( /\s*\+?\s*(\d+)\s*(\w{1})\w*\s*/ );
49 if (result[2] == 's') $amount += result[1] ;
50 if (result[2] == 'm') $amount += 60 * result[1] ;
51 if (result[2] == 'h') $amount += 60 * 60 * result[1] ;
52 if (result[2] == 'd') $amount += 60 * 60 * 24 * result[1] ;
53 if (result[2] == 'w') $amount += 60 * 60 * 24 * 7 * result[1] ;
54 if (result[2] == 'M') $amount += ((60 * 60 * 24 * 365)/12) * result[1] ;
55 if (result[2] == 'y') $amount += 60 * 60 * 24 * 365 * result[1] ;
63 for (var i = 0; i < arguments.length; i++) {
66 //sdump('D_UTIL','debug:' + s + '\n');
70 function counter_init(id) {
74 function counter_incr(id) {
75 if (! counter[id]) { counter_init(id); }
79 function counter_peek(id) {
80 if (! counter[id]) { return 0; }
84 function timer_init(id) {
85 timer[id] = (new Date).getTime();
88 function timer_elapsed(id) {
89 if (! timer[id]) { timer_init(id); }
90 var ms = (new Date).getTime() - timer[id];
91 return( ms + 'ms (' + ms/1000 + 's)' );
94 function dump_ns_node( node ) {
97 node[fieldmap["Fieldmapper::biblio::record_node"].fields.id.position]
99 node[fieldmap["Fieldmapper::biblio::record_node"].fields.intra_doc_id.position]
101 node[fieldmap["Fieldmapper::biblio::record_node"].fields.name.position]
103 node[fieldmap["Fieldmapper::biblio::record_node"].fields.type.position]
104 + '> parent_node=<' +
105 node[fieldmap["Fieldmapper::biblio::record_node"].fields.parent_node.position]
110 function nodeset2tree(ns) {
112 if (ns[i].parent_node) {
123 function ns_addChild(ns,p,c) {
124 if (! ns[p].children ) { ns[p].children = []; }
125 ns[p].children.push(ns[c]);
128 function print_tabs(t) {
130 for (var j = 0; j < t; j++ ) { r = r + "\t"; }
134 function pretty_print(s) {
135 var r = ''; var t = 0;
138 r = r + "\n" + print_tabs(t) + s[i]; t++;
139 r = r + "\n" + print_tabs(t);
140 } else if (s[i] == '[') {
141 r = r + "\n" + print_tabs(t) + s[i]; t++;
142 r = r + "\n" + print_tabs(t);
143 } else if (s[i] == '}') {
144 t--; r = r + "\n" + print_tabs(t) + s[i];
145 r = r + "\n" + print_tabs(t);
146 } else if (s[i] == ']') {
147 t--; r = r + "\n" + print_tabs(t) + s[i];
148 r = r + "\n" + print_tabs(t);
149 } else if (s[i] == ',') {
151 r = r + "\n" + print_tabs(t);
159 function super_dump(o,t) {
161 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
163 s = s + 'o.constructor == Array = ' + (o.constructor == Array) + '\n';
164 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
165 s = s + "typeof = " + typeof(o) + "\n";
167 var string = new XMLSerializer().serializeToString(o);
168 return( string + "\n" );
175 s = s + super_dump(i,t+1);
179 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
180 s = s + "\tMember#" + c++ + "\tType:" + typeof(value);
181 if (typeof(value) == 'object') {
182 value = super_dump(value,t+1);
184 s = s + "\ttoString:" + i.toString() + "\tvalue:" + value + "\n";
192 function super_dump_norecurse(o,t) {
194 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
196 s = s + 'o.constructor == Array = ' + (o.constructor == Array) + '\n';
197 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
198 s = s + "typeof = " + typeof(o) + "\n";
200 var string = new XMLSerializer().serializeToString(o);
201 return( string + "\n" );
209 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
210 s = s + "\tMember#" + c++ + "\tType:" + typeof(value);
211 s = s + "\ttoString:" + i.toString() + "\n";