1 dump('Loading util.js\n');
8 mw.G.sound.play( xp_url_init('chrome://evergreen/content/media/redalert.wav') );
11 function snd_really_bad() {
12 mw.G.sound.play( xp_url_init('chrome://evergreen/content/media/die.wav') );
16 mw.G.sound.play( xp_url_init('chrome://evergreen/content/media/turn.wav') );
19 function snd_circ_good() {
20 mw.G.sound.play( xp_url_init('chrome://evergreen/content/media/clicked.wav') );
23 function snd_circ_bad() {
24 mw.G.sound.play( xp_url_init('chrome://evergreen/content/media/cow.wav') );
27 function snd_logon() {
31 function snd_logoff() {
39 function handle_error(E) {
41 if (instanceOf(E,ex)) {
43 //s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
44 //s += 'This error was anticipated.\n\n';
45 //s += js2JSON(E).substr(0,200) + '...\n\n';
48 s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
49 s += 'This is a bug that we will fix later.\n\n';
50 s += js2JSON(E).substr(0,200) + '\n\n';
56 function string_to_array(s) {
58 for (var i = 0; i < s.length; i++ ) {
59 my_array.push( s.charAt(i) );
64 function textbox_checkdigit(ev) {
65 if ( check_checkdigit( ev.target.value ) ) {
76 function check_checkdigit(barcode) {
78 var stripped_barcode = barcode.slice(0,-1);
79 var checkdigit = barcode.slice(-1);
81 dump('\n\n=-=***=-=\n\ncheck_checkdigit: barcode = ' + barcode + ' barcode stripped = ' + stripped_barcode + ' checkdigit = ' + checkdigit + '\n');
83 var sum = 0; var mul = 2;
85 var b_array = string_to_array( stripped_barcode ).reverse();
86 dump( '\tb_array = ' + b_array + '\n');
88 for (var i in b_array) {
89 var digit = parseInt( b_array[i] );
90 dump('\t\tdigit = ' + digit + '\n');
92 var product = digit * mul;
93 if (mul == 2) { mul = 1; } else { mul = 2; }
95 var p_array = string_to_array( product.toString() );
96 dump( '\t\tp_array = ' + p_array + '\n');
98 for (var j in p_array) {
99 var n = parseInt( p_array[j] );
100 dump('\t\t\tn = ' + n + '\n');
105 dump('\tsum = ' + sum + '\n');
107 var s_array = string_to_array( sum.toString() );
108 var calculated_checkdigit = s_array.pop();
109 if (calculated_checkdigit > 0) calculated_checkdigit = 10 - calculated_checkdigit;
110 dump('\tcalculated checkdigit = ' + calculated_checkdigit + '\n\n=-=***=-=\n\n');
112 return ( calculated_checkdigit == checkdigit );
115 function fake_tab_for_textboxes(w,current) {
116 var flag = false; var next_one;
117 if (typeof(w)!='object') {
118 w = document.getElementById(w);
120 dump('fake_tab_for_textboxes: Current ' + current + '\n');
121 var nl = w.getElementsByTagName('textbox');
122 //var nl = document.getElementsByTagName('textbox');
123 dump('fake_tab_for_textboxes: nl.length = ' + nl.length + '\n');
124 for (var i = 0; i < nl.length; i++) {
125 dump('fake_tab_for_textboxes: Considering ' + nl[i] + '...\n');
126 if (flag && !next_one) {
127 dump('fake_tab_for_textboxes: Setting next_one ' + nl[i] + '\n');
130 if (nl[i] === current) {
131 dump('fake_tab_for_textboxes: Found current\n');
136 dump('fake_tab_for_textboxes: Out of loop, Setting next_one ' + nl[0] + '\n');
140 next_one.focus(); next_one.select();
142 dump('fake_tab_for_textboxes: next_one not set\n');
146 function get_list_from_tree_selection(tree_w) {
147 dump('entering get_list_from_tree...\n');
149 if (typeof(tree_w) != 'object') {
150 hitlist = document.getElementById(tree_w);
155 var start = new Object();
156 var end = new Object();
157 var numRanges = hitlist.view.selection.getRangeCount();
158 for (var t=0; t<numRanges; t++){
159 hitlist.view.selection.getRangeAt(t,start,end);
160 for (var v=start.value; v<=end.value; v++){
161 var i = hitlist.contentView.getItemAtIndex(v);
162 //dump(i.tagName + '\n');
166 dump('leaving get_list_from_tree...\n');
170 function yesno(value) {
172 case true: case 'true': case '1': case 'on':
179 function formatted_date(date,format) {
180 // pass in a Date object or epoch seconds
181 if (typeof(date) == 'string') {
182 date = new Date( parseInt( date + '000' ) );
184 var mm = date.getMonth() + 1;
186 if (mm.length == 1) mm = '0' +mm;
187 var dd = date.getDate().toString();
188 if (dd.length == 1) dd = '0' +dd;
189 var yyyy = date.getFullYear().toString();
190 var s = format.replace( /%m/g, mm );
191 s = s.replace( /%d/g, dd );
192 s = s.replace( /%Y/g, yyyy );
196 function interval_to_seconds ( $interval ) {
198 $interval = $interval.replace( /and/, ',' );
199 $interval = $interval.replace( /,/, ' ' );
202 var results = $interval.match( /\s*\+?\s*(\d+)\s*(\w{1})\w*\s*/g);
203 for (var i in results) {
204 var result = results[i].match( /\s*\+?\s*(\d+)\s*(\w{1})\w*\s*/ );
205 if (result[2] == 's') $amount += result[1] ;
206 if (result[2] == 'm') $amount += 60 * result[1] ;
207 if (result[2] == 'h') $amount += 60 * 60 * result[1] ;
208 if (result[2] == 'd') $amount += 60 * 60 * 24 * result[1] ;
209 if (result[2] == 'w') $amount += 60 * 60 * 24 * 7 * result[1] ;
210 if (result[2] == 'M') $amount += ((60 * 60 * 24 * 365)/12) * result[1] ;
211 if (result[2] == 'y') $amount += 60 * 60 * 24 * 365 * result[1] ;
219 for (var i = 0; i < arguments.length; i++) {
220 s = s + arguments[i];
222 //dump('debug:' + s + '\n');
226 function counter_init(id) {
230 function counter_incr(id) {
231 if (! counter[id]) { counter_init(id); }
232 return ++counter[id];
235 function counter_peek(id) {
236 if (! counter[id]) { return 0; }
240 function timer_init(id) {
241 timer[id] = (new Date).getTime();
244 function timer_elapsed(id) {
245 if (! timer[id]) { timer_init(id); }
246 var ms = (new Date).getTime() - timer[id];
247 return( ms + 'ms (' + ms/1000 + 's)' );
250 function dump_ns_node( node ) {
253 node[fieldmap["Fieldmapper::biblio::record_node"].fields.id.position]
255 node[fieldmap["Fieldmapper::biblio::record_node"].fields.intra_doc_id.position]
257 node[fieldmap["Fieldmapper::biblio::record_node"].fields.name.position]
259 node[fieldmap["Fieldmapper::biblio::record_node"].fields.type.position]
260 + '> parent_node=<' +
261 node[fieldmap["Fieldmapper::biblio::record_node"].fields.parent_node.position]
266 function nodeset2tree(ns) {
268 if (ns[i].parent_node) {
279 function ns_addChild(ns,p,c) {
280 if (! ns[p].children ) { ns[p].children = []; }
281 ns[p].children.push(ns[c]);
284 function print_tabs(t) {
286 for (var j = 0; j < t; j++ ) { r = r + "\t"; }
290 function pretty_print(s) {
291 var r = ''; var t = 0;
294 r = r + "\n" + print_tabs(t) + s[i]; t++;
295 r = r + "\n" + print_tabs(t);
296 } else if (s[i] == '[') {
297 r = r + "\n" + print_tabs(t) + s[i]; t++;
298 r = r + "\n" + print_tabs(t);
299 } else if (s[i] == '}') {
300 t--; r = r + "\n" + print_tabs(t) + s[i];
301 r = r + "\n" + print_tabs(t);
302 } else if (s[i] == ']') {
303 t--; r = r + "\n" + print_tabs(t) + s[i];
304 r = r + "\n" + print_tabs(t);
305 } else if (s[i] == ',') {
307 r = r + "\n" + print_tabs(t);
315 function enable_widgets() {
316 for (var i = 0; i < arguments.length; i++) {
317 if (typeof(arguments[i]) == 'object') {
318 dump(arguments[i] + '.disabled = false;\n');
319 arguments[i].disabled = false;
321 var w = document.getElementById( arguments[i] );
323 dump(w + '.disabled = false;\n');
330 function disable_widgets() {
331 for (var i = 0; i < arguments.length; i++) {
332 if (typeof(arguments[i]) == 'object') {
333 dump(arguments[i] + '.disabled = true;\n');
334 arguments[i].disabled = true;
336 var w = document.getElementById( arguments[i] );
338 dump(w + '.disabled = true;\n');
345 function focus_widget(e) {
346 if (typeof(e) == 'object') {
349 var w = document.getElementById(e);
350 if (w) { w.focus(); }
354 function empty_widget(e) {
355 if (typeof(e) != 'object') { e = document.getElementById(e); }
356 if (typeof(e) != 'object') { dump('Failed on empty_widget\n'); return; }
357 while (e.lastChild) { e.removeChild(e.lastChild); }
360 function empty_listbox(e) {
361 if (typeof(e) != 'object') { e = document.getElementById(e); }
362 if (typeof(e) != 'object') { dump('Failed on empty_listbox\n'); return; }
363 var nl = e.getElementsByTagName('listitem');
364 for (var i = 0; i < nl.length; i++) {
365 e.removeChild(nl[i]);
369 function swap_attributes(e,a1,a2) {
370 if (typeof(e) != 'object') { e = document.getElementById(e); }
371 if (typeof(e) != 'object') { dump('Failed on swap_attributes\n'); return; }
372 var a1_v = e.getAttribute(a1);
373 var a2_v = e.getAttribute(a2);
374 e.setAttribute(a1,a2_v);
375 e.setAttribute(a2, a1_v);
376 dump('before: a1 = ' + a1_v + ' a2 = ' + a2_v + ' and ');
377 dump('after: a1 = ' + a2_v + ' a2 = ' + a1_v + '\n');
380 function cycle_attribute(e,a,v) {
382 if (typeof(e) != 'object') { e = document.getElementById(e); }
383 if (typeof(e) != 'object') { throw('typeof e != object : typeof e = ' + typeof(e)); }
384 if (!a) { throw('!a : a = ' + a); }
385 if (! e.getAttribute(a) ) { throw(' ! e.getAttribute(a) : a = ' + a); }
386 if (typeof(v) != 'object') { throw('typeof v != object : typeof v = ' + typeof(v)); }
388 var toggle = e.getAttribute(a);
389 var next_one = false;
390 dump('cycling ' + a + ' on ' + e.getAttribute('id') + ' to ');
391 for (var i = 0; i < v.length; i++) {
393 e.setAttribute(a,v[i]);
397 if (toggle == v[i]) {
402 e.setAttribute(a,v[0]);
406 throw('current value not in list');
409 dump('cycle_attribute error: ' + js2JSON(E) + '\n');
416 function radio_checkbox(ev) {
417 var target = ev.target;
418 var group = target.getAttribute('group');
420 var nl = document.getElementsByTagName('checkbox');
422 if (typeof(nl[i])=='object') {
424 var cgroup = c.getAttribute('group');
425 if (cgroup == group) {
430 target.checked = true;
432 dump('radio_checkbox: Checkbox must have a group attribute to find peers');
436 function toggle_hidden_grid_rows(grid) {
437 if (typeof(grid) != 'object') {
438 grid = document.getElementById(grid);
440 if (!grid) { return; }
441 var rows = grid.lastChild; if (!rows) { return; }
442 for (var r = 0; r < rows.childNodes.length; r++ ) {
443 var row = rows.childNodes[r];
444 if (typeof(row) == 'object') {
445 //dump('toggle row = ' + row + '\n');
446 var hidden = row.getAttribute('hidden');
447 if (hidden == 'true') {
448 row.setAttribute('hidden','false');
450 row.setAttribute('hidden','true');
456 /* The first parameter is the id of the element to set, or an array of ids for elements to set in batch. The second parameter is an object containing the attribute/value pairs to assign to the element or elements */
457 function xul_setAttributes(el,attrs) {
458 if (typeof(el) == 'object') {
460 var w = document.getElementById(e);
461 for (var a in attrs) {
462 w.setAttribute(a,attrs[a]);
466 var w = document.getElementById(el);
467 for (var a in attrs) {
468 w.setAttribute(a,attrs[a]);
473 function append_treeitem() {
474 var id = arguments[0];
475 var treechildren = document.getElementById(id);
476 if (!treechildren) { dump('No ' + id + ' to append to\n'); return; }
477 var treeitem = document.createElement('treeitem'); treechildren.appendChild(treeitem);
478 var treerow = document.createElement('treerow'); treeitem.appendChild(treerow);
479 for (var i = 1; i < arguments.length ; i++ ) {
480 var treecell = document.createElement('treecell'); treerow.appendChild(treecell);
481 treecell.setAttribute('label',arguments[i]);
482 treecell.setAttribute('id', 'treeitem_' + treeitem_id + '_' + i);
483 //dump('treecell.label = ' + arguments[i] + '\n');
485 return treeitem_id++;
488 function set_decks(params) {
489 for (var deck_id in params) {
490 var deck = document.getElementById( deck_id )
491 if (deck) deck.setAttribute( 'selectedIndex', params[deck_id] );
495 function super_dump(o,t) {
497 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
499 s = s + 'o.constructor == Array = ' + (o.constructor == Array) + '\n';
500 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
501 s = s + "typeof = " + typeof(o) + "\n";
503 var string = new XMLSerializer().serializeToString(o);
504 return( string + "\n" );
511 s = s + super_dump(i,t+1);
515 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
516 s = s + "\tMember#" + c++ + "\tType:" + typeof(value);
517 if (typeof(value) == 'object') {
518 value = super_dump(value,t+1);
520 s = s + "\ttoString:" + i.toString() + "\tvalue:" + value + "\n";
528 function super_dump_norecurse(o,t) {
530 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
532 s = s + 'o.constructor == Array = ' + (o.constructor == Array) + '\n';
533 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
534 s = s + "typeof = " + typeof(o) + "\n";
536 var string = new XMLSerializer().serializeToString(o);
537 return( string + "\n" );
545 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
546 s = s + "\tMember#" + c++ + "\tType:" + typeof(value);
547 s = s + "\ttoString:" + i.toString() + "\n";
555 function get_my_orgs(user_ou) {
557 // self and ancestors
558 var current_item_id = user_ou.id();
559 //dump('mw.G[user_ou] = ' + js2JSON(mw.G['user_ou']) + '\n');
560 //dump('current_item_id = ' + current_item_id + '\n');
561 var item_ou; var my_orgs = {}; var other_orgs = {};
562 while( item_ou = find_ou(mw.G['org_tree'],current_item_id) ) {
563 //dump('\titem_ou = ' + js2JSON(item_ou) + '\n');
564 my_orgs[ item_ou.id() ] = item_ou;
565 current_item_id = item_ou.parent_ou();
566 if (!current_item_id) { break; }
569 current_item_id = user_ou.id();
570 //dump('self & ancestors : my_orgs = <<<'+js2JSON(my_orgs)+'>>>\n');
573 var find_ou_result = find_ou(mw.G['org_tree'],current_item_id);
574 if (find_ou_result) {
575 my_children = find_ou_result.children() }
577 dump('ERROR: find_ou(org_tree,'+current_item_id+') returned with no properties\n');
579 //dump('my_children: ' + my_children + ' : ' + js2JSON(my_children) + '\n');
581 for (var i = 0; i < my_children.length; i++) {
582 var my_child = my_children[i];
583 my_orgs[ my_child.id() ] = my_child;
584 //dump('my_child.children(): ' + my_child.children() + ' : ' + js2JSON(my_child.children()) + '\n');
585 if (my_child.children() != null) {
586 for (var j = 0; j < my_child.children().length; j++) {
587 var my_gchild = my_child.children()[j];
588 my_orgs[ my_gchild.id() ] = my_gchild;
593 //dump('& descendants : my_orgs = <<<'+js2JSON(my_orgs)+'>>>\n');
597 function get_other_orgs(org,other_orgs) {
600 function flatten_ou_branch(branch) {
601 //dump('flatten: branch = ' + js2JSON(branch) + '\n');
602 var my_array = new Array();
603 my_array.push( branch );
604 for (var i in branch.children() ) {
605 var child = branch.children()[i];
607 var temp_array = flatten_ou_branch(child);
608 for (var j in temp_array) {
609 my_array.push( temp_array[j] );
616 function find_ou(tree,id) {
617 if (typeof(id)=='object') { id = id.id(); }
621 for (var i in tree.children()) {
622 var child = tree.children()[i];
623 ou = find_ou( child, id );
624 if (ou) { return ou; }
629 function find_tree_via_children(tree,children_func,find_func) {
630 if (typeof(tree)!='object') tree = document.getElementById(tree);
632 var t = find_func(tree); if (t) return t;
634 var c = children_func(tree);
636 for (var i = 0; i < c.length; i++) {
637 t = find_func( c[i] );
642 function filter_list(list,f) {
644 for (var i in list) {
645 var t = f( list[i] );
646 if (t) new_list.push( list[i] );
651 function find_list(list,f) {
652 for (var i in list) {
653 var t = f( list[i] );
654 if (t) return list[i];
659 function map_list(list,f) {
661 for (var i in list) {
662 new_list.push( f( list[i] ) );
667 function map_object_to_list(obj,f) {
670 new_list.push( f( obj, i ) );
675 function convert_object_list_to_hash(list) {
676 var my_hash = new Object();
678 for (var i = 0; i < list.length; i++) {
679 my_hash[ list[i].id() ] = list[i];
685 function find_id_object_in_list(list,id) {
686 //dump('find_id_object_in_list(' + js2JSON(list).substr(0,20) + '... ,' + id + ')\n');
688 for (var i = 0; i < list.length; i++ ) {
690 if ( list[i].id() == id ) {
694 dump('find_id_object_in_list error, i = ' + i + ' typeof(list[i]) = ' + typeof(list[i]) + ' list[i] = ' + js2JSON(list[i]) + ' : ' + js2JSON(E) + '\n');
698 //dump('not found\n');
702 function find_attr_object_in_list(list,attr,value) {
704 for (var i = 0; i < list.length; i++ ) {
705 dump('find_attr_object_in_list: i = ' + i + ' id = ' + list[i].id() + '\n');
707 var command = 'list[' + i + '].'+attr+'() == ' + value;
708 if ( eval(command) ) {
712 dump('find_attr_object_in_list error, i = ' + i + ' typeof(list[i]) = ' + typeof(list[i]) + ' list[i] = ' + js2JSON(list[i]) + ' : list = ' + js2JSON(list) + ' : ' + js2JSON(E) + '\n');
719 function find_ou_by_shortname(tree,sn) {
721 if (tree.shortname()==sn) {
724 for (var i in tree.children()) {
725 var child = tree.children()[i];
726 ou = find_ou_by_shortname( child, sn );
727 if (ou) { return ou; }
732 function populate_listbox_with_local_stat_cats_myself(local_stat_cats,local_cat_entries,listbox,libs,app,method,editable) {
733 dump('populate_local_stat_cats: pertinent libs = ' + js2JSON(libs) + '\n');
735 local_stat_cats = user_request(
738 [ mw.G.auth_ses[0], libs ]
740 //dump('local_stat_cats = ' + pretty_print( js2JSON( local_stat_cats ) ) + '\n');
743 if (typeof list != 'object') list = document.getElementById(list);
745 for (var i in local_stat_cats) {
747 var stat_cat = local_stat_cats[i];
749 var listitem = document.createElement('listitem');
750 list.appendChild(listitem);
751 listitem.setAttribute('allowevents','true');
752 dump('listitem = ' + listitem + '\n');
754 var label = document.createElement('listcell');
755 listitem.appendChild(label);
756 label.setAttribute('label',stat_cat.name() );
757 dump('\tlistcell = ' + label + '\n');
759 var menucell = document.createElement('listcell');
760 listitem.appendChild(menucell);
761 dump('\tlistcell = ' + menucell + '\n');
763 var menulist = document.createElement('menulist');
764 menucell.appendChild(menulist);
765 if (editable) { menulist.setAttribute('editable','true'); }
766 menulist.setAttribute('id','menulist_stat_cat_'+stat_cat.id());
767 dump('\tmenulist = ' + menulist + '\n');
769 var menupopup = document.createElement('menupopup');
770 menulist.appendChild(menupopup);
771 menupopup.setAttribute('stat_cat',stat_cat.id());
772 menupopup.setAttribute('oncommand','apply_attribute(event);');
773 dump('\t\tmenupopup = ' + menupopup + '\n');
775 for (var j in stat_cat.entries() ) {
777 var stat_entry = stat_cat.entries()[j];
778 local_stat_cat_entries[stat_entry.id()] = stat_entry;
780 var menuitem = document.createElement('menuitem');
781 menupopup.appendChild(menuitem);
782 menuitem.setAttribute('label',stat_entry.value());
784 menuitem.setAttribute('value',stat_entry.value());
786 menuitem.setAttribute('value',stat_entry.id());
788 menuitem.setAttribute('stat_cat',stat_cat.id());
789 menuitem.setAttribute('id','menuitem_stat_cat_entry_' + stat_entry.id());
790 dump('\t\t\tmenuitem = ' + menuitem + '\n');
796 //dump('local_stat_cat_entries = ' + pretty_print( js2JSON( local_stat_cat_entries ) ) + '\n');
800 function populate_rows_with_local_stat_cats(local_stat_cats,local_stat_cat_entries,rows,editable) {
801 //dump('populate_local_stat_cats: pertinent libs = ' + js2JSON(libs) + '\n');
803 /*local_stat_cats = user_request(
806 [ mw.G.auth_ses[0], libs ]
808 //dump('local_stat_cats = ' + pretty_print( js2JSON( local_stat_cats ) ) + '\n');
810 if (typeof rows != 'object') rows = document.getElementById(rows);
812 for (var i in local_stat_cats) {
814 var stat_cat = local_stat_cats[i];
816 var row = document.createElement('row');
817 rows.appendChild(row);
819 var label = document.createElement('label');
820 label.setAttribute('value',stat_cat.name());
821 row.appendChild(label);
823 var menulist = document.createElement('menulist');
824 row.appendChild(menulist);
825 if (editable) { menulist.setAttribute('editable','true'); }
826 menulist.setAttribute('id','menulist_stat_cat_'+stat_cat.id());
827 menulist.setAttribute('stat_cat_id',stat_cat.id());
828 dump('\tmenulist = ' + menulist + '\n');
830 var menupopup = document.createElement('menupopup');
831 menulist.appendChild(menupopup);
832 menupopup.setAttribute('stat_cat',stat_cat.id());
833 menupopup.setAttribute('command','cmd_apply');
834 dump('\t\tmenupopup = ' + menupopup + '\n');
836 for (var j in stat_cat.entries() ) {
838 var stat_entry = stat_cat.entries()[j];
839 local_stat_cat_entries[stat_entry.id()] = stat_entry;
841 var menuitem = document.createElement('menuitem');
842 menupopup.appendChild(menuitem);
843 menuitem.setAttribute('label',stat_entry.value());
845 menuitem.setAttribute('value',stat_entry.value());
847 menuitem.setAttribute('value',stat_entry.id());
849 menuitem.setAttribute('stat_cat',stat_cat.id());
850 menuitem.setAttribute('id','menuitem_stat_cat_entry_' + stat_entry.id());
851 dump('\t\t\tmenuitem = ' + menuitem + '\n');
857 //dump('local_stat_cat_entries = ' + pretty_print( js2JSON( local_stat_cat_entries ) ) + '\n');
861 function populate_copy_status_list(menulist,menupopup,defaultccs) {
862 dump('populate_copy_status_list\n');
863 var popup = document.getElementById(menupopup);
867 for (var i in mw.G.ccs_list) {
868 var menuitem = document.createElement('menuitem');
869 menuitem.setAttribute('label', mw.G.ccs_list[i].name());
870 menuitem.setAttribute('value', mw.G.ccs_list[i].id());
871 menuitem.setAttribute('id', 'ccsitem' + mw.G.ccs_list[i].id());
872 //dump('pop_ccs_list: i = ' + i + ' ccs = ' + mw.G.ccs_list[i] + ' = ' + js2JSON(mw.G.ccs_list[i]) + '\n');
873 popup.appendChild(menuitem);
875 var list = document.getElementById(menulist);
876 if (list && defaultccs) {
877 if (typeof defaultccs == 'object') {
878 defaultccs = defaultccs.id();
880 var menuitem_id = 'ccsitem' + defaultccs;
881 var menuitem = document.getElementById(
884 var menulist_e = document.getElementById(menulist);
885 if (menulist_e && menuitem) {
886 dump('Setting default ccs\n');
887 menulist_e.selectedItem = menuitem;
889 dump('Not Setting default ccs\n');
893 dump('populate_copy_status_list: Could not find menupopup: ' + menupopup + '\n');
894 throw('populate_copy_status_list: Could not find menupopup: ' + menupopup + '\n');
899 function populate_copy_location_list(menulist,menupopup,defaultacpl) {
900 dump('populate_copy_location_list\n');
901 var popup = document.getElementById(menupopup);
905 for (var i in mw.G.acpl_my_orgs) {
906 var menuitem = document.createElement('menuitem');
907 menuitem.setAttribute('label', mw.G.acpl_my_orgs[i].name());
908 menuitem.setAttribute('value', mw.G.acpl_my_orgs[i].id());
909 menuitem.setAttribute('id', 'acplitem' + mw.G.acpl_my_orgs[i].id());
910 //dump('populate_copy_location_list: i = ' + i + ' acpl_my_orgs = ' + mw.G.acpl_my_orgs[i] + ' = ' + js2JSON(mw.G.acpl_my_orgs[i]) + '\n');
911 popup.appendChild(menuitem);
913 var list = document.getElementById(menulist);
914 if (list && defaultacpl) {
915 if (typeof defaultacpl == 'object') {
916 defaultacpl = defaultacpl.id();
918 var menuitem_id = 'acplitem' + defaultacpl;
919 var menuitem = document.getElementById(
922 var menulist_e = document.getElementById(menulist);
923 if (menulist_e && menuitem) { menulist_e.selectedItem = menuitem; }
926 dump('populate_copy_location_list: Could not find menupopup: ' + menupopup + '\n');
927 throw('populate_copy_location_list: Could not find menupopup: ' + menupopup + '\n');
932 function populate_lib_list(menulist,menupopup,defaultlib,id_flag) {
933 dump('populate_lib_list\n');
934 var default_menuitem;
935 if (typeof defaultlib == 'object') {
936 defaultlib = defaultlib.id();
938 var popup = menupopup;
939 if (typeof(popup)!='object') { popup = document.getElementById(menupopup); }
941 //dump('found popup\n');
943 var padding_flag = false;
944 for (var ou in mw.G.my_orgs) {
945 //dump('\tlooping on my_orgs: ' + js2JSON(mw.G.my_orgs[ou]) + '\n');
946 //dump('\tlooping on my_orgs: ou = ' + ou + '\n');
947 var menuitem = document.createElement('menuitem');
948 popup.appendChild(menuitem);
949 //dump('\t\tmenuitem = ' + menuitem + '\n');
951 //var depth = find_id_object_in_list( mw.G.aout_list, mw.G.my_orgs[ou].ou_type() ).depth();
952 var depth = mw.G.aout_hash[ mw.G.my_orgs[ou].ou_type() ].depth();
953 if (depth == '0') { padding_flag = true; }
955 for (var i = 0; i < depth; i++) {
956 padding = padding + ' ';
959 menuitem.setAttribute('label', padding + mw.G.my_orgs[ou].name() );
960 menuitem.setAttribute('value', mw.G.my_orgs[ou].id() );
961 if (id_flag) menuitem.setAttribute('id', 'libitem' + mw.G.my_orgs[ou].id() );
962 //dump('\tname = ' + mw.G.my_orgs[ou].name() + ' id = ' + mw.G.my_orgs[ou].id() + '\n');
963 if (defaultlib == mw.G.my_orgs[ou].id()) {
964 default_menuitem = menuitem;
965 dump('Setting defaultlib = ' + defaultlib + '\n');
969 if (typeof(list)!='object') { list = document.getElementById(menulist); }
970 if (list && defaultlib && default_menuitem) {
971 //dump('default_menuitem = ' + default_menuitem + '\n');
972 if (list) { list.selectedItem = default_menuitem; }
975 dump('populate_lib_list: Could not find ' + menupopup + '\n');
976 throw('populate_lib_list: Could not find ' + menupopup + '\n');
980 function populate_lib_list_with_branch(menulist,menupopup,defaultlib,branch,id_flag) {
981 dump('populate_lib_list_with_branch\n');
982 var default_menuitem;
983 if (typeof defaultlib == 'object') {
984 defaultlib = defaultlib.id();
986 var popup = menupopup;
987 if (typeof(popup)!='object') popup = document.getElementById(menupopup);
990 var padding_flag = true;
991 var flat_branch = flatten_ou_branch( branch );
992 //dump('\n\nflat_branch = ' + js2JSON(flat_branch) + '\n');
993 for (var i in flat_branch) {
994 //dump('i = ' + js2JSON(i) + ' flat_branch[i] = ' + js2JSON(flat_branch[i]) + '\n');
995 var menuitem = document.createElement('menuitem');
997 //if (flat_branch[i].ou_type().depth() == '0') { padding_flag = true; }
998 var depth = mw.G.aout_hash[ flat_branch[i].ou_type() ].depth();
1000 for (var j = 0; j < depth; j++) {
1001 padding = padding + ' ';
1004 menuitem.setAttribute('label', padding + flat_branch[i].name() );
1005 menuitem.setAttribute('value', flat_branch[i].id() );
1006 if (id_flag) menuitem.setAttribute('id', 'libitem' + flat_branch[i].id() );
1007 if (defaultlib == flat_branch[i].id()) {
1008 default_menuitem = menuitem;
1009 dump('i = ' + i + ' Setting defaultlib = ' + defaultlib + ' menuitem = ' + default_menuitem + ' value = ' + default_menuitem.getAttribute('value') + '\n');
1011 popup.appendChild(menuitem);
1013 var list = menulist;
1014 if (typeof(list)!='object') { list = document.getElementById(menulist); }
1015 if (list && defaultlib && default_menuitem) {
1016 //dump('default_menuitem = ' + default_menuitem + ' value = ' + default_menuitem.getAttribute('value') + '\n');
1017 if (list) { list.selectedItem = default_menuitem; }
1020 dump('populate_lib_list_with_branch: Could not find ' + menupopup + '\n');
1021 throw('populate_lib_list_with_branch: Could not find ' + menupopup + '\n');
1023 dump('\tleaving populate_lib_list_with_branch\n');
1026 function populate_user_profile(menulist,menupopup,defaultap) {
1027 dump('Entering populate_user_profile\n');
1028 var popup = document.getElementById(menupopup);
1030 empty_widget(popup);
1031 for (var i in mw.G.ap_list) {
1032 var menuitem = document.createElement('menuitem');
1033 menuitem.setAttribute('label', mw.G.ap_list[i].name());
1034 menuitem.setAttribute('value', mw.G.ap_list[i].id());
1035 menuitem.setAttribute('id', 'apitem' + mw.G.ap_list[i].id());
1036 //dump('pop_ap_list: i = ' + i + ' ap = ' + mw.G.ap_list[i] + ' = ' + js2JSON(mw.G.ap_list[i]) + '\n');
1037 popup.appendChild(menuitem);
1039 var list = document.getElementById(menulist);
1040 if (list && defaultap) {
1041 if (typeof defaultap == 'object') {
1042 defaultap = defaultap.id();
1044 var menuitem_id = 'apitem' + defaultap;
1045 var menuitem = document.getElementById(
1048 var menulist_e = document.getElementById(menulist);
1049 if (menulist_e) { menulist_e.selectedItem = menuitem; }
1052 dump('populate_user_profile: Could not find menupopup: ' + menupopup + '\n');
1053 throw('populate_user_profile: Could not find menupopup: ' + menupopup + '\n');
1057 function populate_ident_types(menulist,menupopup,repeatid,defaultcit) {
1058 dump('Entering populate_ident_types\n');
1059 var popup = document.getElementById(menupopup);
1061 empty_widget(popup);
1062 for (var i in mw.G.cit_list) {
1063 var menuitem = document.createElement('menuitem');
1064 menuitem.setAttribute('label', mw.G.cit_list[i].name());
1065 menuitem.setAttribute('value', mw.G.cit_list[i].id());
1066 menuitem.setAttribute('id', 'cit' + repeatid + 'item' + mw.G.cit_list[i].id());
1067 //dump('pop_cit_list: i = ' + i + ' cit = ' + mw.G.cit_list[i] + ' = ' + js2JSON(mw.G.cit_list[i]) + '\n');
1068 popup.appendChild(menuitem);
1070 if (list && defaultcit) {
1071 if (typeof defaultcit == 'object') {
1072 defaultcit = defaultcit.id();
1074 var menuitem_id = 'cit' + repeatid + 'item' + defaultcit;
1075 var menuitem = document.getElementById(
1078 var menulist_e = document.getElementById(menulist);
1079 if (menulist_e) { menulist_e.selectedItem = menuitem; }
1082 dump('populate_ident_types: Could not find menupopup: ' + menupopup + '\n');
1083 throw('populate_ident_types: Could not find menupopup: ' + menupopup + '\n');
1089 function populate_name_prefix(menulist,menupopup,defaultvalue) {
1090 var popup = document.getElementById(menupopup);
1092 empty_widget(popup);
1094 'Mr','Mrs','Ms','Miss', 'Dr',
1167 for (var i in prefix_list) {
1168 var menuitem = document.createElement('menuitem');
1169 menuitem.setAttribute('label', prefix_list[i]);
1170 menuitem.setAttribute('value', prefix_list[i]);
1171 popup.appendChild(menuitem);
1173 var list = document.getElementById(menulist);
1176 list.value = defaultvalue;
1179 dump('populate_name_prefix: Could not find menulist: ' + menulist + '\n');
1180 throw('populate_name_prefix: Could not find menulist: ' + menulist + '\n');
1183 dump('populate_name_prefix: Could not find menupopup: ' + menupopup + '\n');
1184 throw('populate_name_prefix: Could not find menupopup: ' + menupopup + '\n');
1189 function populate_name_suffix(menulist,menupopup,defaultvalue) {
1190 var popup = document.getElementById(menupopup);
1192 empty_widget(popup);
1194 'Jr','Sr','II','III',
1230 for (var i in suffix_list) {
1231 var menuitem = document.createElement('menuitem');
1232 menuitem.setAttribute('label', suffix_list[i]);
1233 menuitem.setAttribute('value', suffix_list[i]);
1234 popup.appendChild(menuitem);
1236 var list = document.getElementById(menulist);
1239 list.value = defaultvalue;
1242 dump('populate_name_suffix: Could not find ' + menulist + '\n');
1243 throw('populate_name_suffix: Could not find ' + menulist + '\n');
1246 dump('populate_name_suffix: Could not find ' + menupopup + '\n');
1247 throw('populate_name_suffix: Could not find ' + menupopup + '\n');