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] ;
218 for (var i = 0; i < arguments.length; i++) {
219 s = s + arguments[i];
221 //dump('debug:' + s + '\n');
225 function counter_init(id) {
229 function counter_incr(id) {
230 if (! counter[id]) { counter_init(id); }
231 return ++counter[id];
234 function counter_peek(id) {
235 if (! counter[id]) { return 0; }
239 function timer_init(id) {
240 timer[id] = (new Date).getTime();
243 function timer_elapsed(id) {
244 if (! timer[id]) { timer_init(id); }
245 var ms = (new Date).getTime() - timer[id];
246 return( ms + 'ms (' + ms/1000 + 's)' );
249 function dump_ns_node( node ) {
252 node[fieldmap["Fieldmapper::biblio::record_node"].fields.id.position]
254 node[fieldmap["Fieldmapper::biblio::record_node"].fields.intra_doc_id.position]
256 node[fieldmap["Fieldmapper::biblio::record_node"].fields.name.position]
258 node[fieldmap["Fieldmapper::biblio::record_node"].fields.type.position]
259 + '> parent_node=<' +
260 node[fieldmap["Fieldmapper::biblio::record_node"].fields.parent_node.position]
265 function nodeset2tree(ns) {
267 if (ns[i].parent_node) {
278 function ns_addChild(ns,p,c) {
279 if (! ns[p].children ) { ns[p].children = []; }
280 ns[p].children.push(ns[c]);
283 function print_tabs(t) {
285 for (var j = 0; j < t; j++ ) { r = r + "\t"; }
289 function pretty_print(s) {
290 var r = ''; var t = 0;
293 r = r + "\n" + print_tabs(t) + s[i]; t++;
294 r = r + "\n" + print_tabs(t);
295 } else if (s[i] == '[') {
296 r = r + "\n" + print_tabs(t) + s[i]; t++;
297 r = r + "\n" + print_tabs(t);
298 } else if (s[i] == '}') {
299 t--; r = r + "\n" + print_tabs(t) + s[i];
300 r = r + "\n" + print_tabs(t);
301 } else if (s[i] == ']') {
302 t--; r = r + "\n" + print_tabs(t) + s[i];
303 r = r + "\n" + print_tabs(t);
304 } else if (s[i] == ',') {
306 r = r + "\n" + print_tabs(t);
314 function enable_widgets() {
315 for (var i = 0; i < arguments.length; i++) {
316 if (typeof(arguments[i]) == 'object') {
317 dump(arguments[i] + '.disabled = false;\n');
318 arguments[i].disabled = false;
320 var w = document.getElementById( arguments[i] );
322 dump(w + '.disabled = false;\n');
329 function disable_widgets() {
330 for (var i = 0; i < arguments.length; i++) {
331 if (typeof(arguments[i]) == 'object') {
332 dump(arguments[i] + '.disabled = true;\n');
333 arguments[i].disabled = true;
335 var w = document.getElementById( arguments[i] );
337 dump(w + '.disabled = true;\n');
344 function focus_widget(e) {
345 if (typeof(e) == 'object') {
348 var w = document.getElementById(e);
349 if (w) { w.focus(); }
353 function empty_widget(e) {
354 if (typeof(e) != 'object') { e = document.getElementById(e); }
355 if (typeof(e) != 'object') { dump('Failed on empty_widget\n'); return; }
356 while (e.lastChild) { e.removeChild(e.lastChild); }
359 function empty_listbox(e) {
360 if (typeof(e) != 'object') { e = document.getElementById(e); }
361 if (typeof(e) != 'object') { dump('Failed on empty_listbox\n'); return; }
362 var nl = e.getElementsByTagName('listitem');
363 for (var i = 0; i < nl.length; i++) {
364 e.removeChild(nl[i]);
368 function swap_attributes(e,a1,a2) {
369 if (typeof(e) != 'object') { e = document.getElementById(e); }
370 if (typeof(e) != 'object') { dump('Failed on swap_attributes\n'); return; }
371 var a1_v = e.getAttribute(a1);
372 var a2_v = e.getAttribute(a2);
373 e.setAttribute(a1,a2_v);
374 e.setAttribute(a2, a1_v);
375 dump('before: a1 = ' + a1_v + ' a2 = ' + a2_v + ' and ');
376 dump('after: a1 = ' + a2_v + ' a2 = ' + a1_v + '\n');
379 function cycle_attribute(e,a,v) {
381 if (typeof(e) != 'object') { e = document.getElementById(e); }
382 if (typeof(e) != 'object') { throw('typeof e != object : typeof e = ' + typeof(e)); }
383 if (!a) { throw('!a : a = ' + a); }
384 if (! e.getAttribute(a) ) { throw(' ! e.getAttribute(a) : a = ' + a); }
385 if (typeof(v) != 'object') { throw('typeof v != object : typeof v = ' + typeof(v)); }
387 var toggle = e.getAttribute(a);
388 var next_one = false;
389 dump('cycling ' + a + ' on ' + e.getAttribute('id') + ' to ');
390 for (var i = 0; i < v.length; i++) {
392 e.setAttribute(a,v[i]);
396 if (toggle == v[i]) {
401 e.setAttribute(a,v[0]);
405 throw('current value not in list');
408 dump('cycle_attribute error: ' + js2JSON(E) + '\n');
415 function radio_checkbox(ev) {
416 var target = ev.target;
417 var group = target.getAttribute('group');
419 var nl = document.getElementsByTagName('checkbox');
421 if (typeof(nl[i])=='object') {
423 var cgroup = c.getAttribute('group');
424 if (cgroup == group) {
429 target.checked = true;
431 dump('radio_checkbox: Checkbox must have a group attribute to find peers');
435 function toggle_hidden_grid_rows(grid) {
436 if (typeof(grid) != 'object') {
437 grid = document.getElementById(grid);
439 if (!grid) { return; }
440 var rows = grid.lastChild; if (!rows) { return; }
441 for (var r = 0; r < rows.childNodes.length; r++ ) {
442 var row = rows.childNodes[r];
443 if (typeof(row) == 'object') {
444 //dump('toggle row = ' + row + '\n');
445 var hidden = row.getAttribute('hidden');
446 if (hidden == 'true') {
447 row.setAttribute('hidden','false');
449 row.setAttribute('hidden','true');
455 /* 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 */
456 function xul_setAttributes(el,attrs) {
457 if (typeof(el) == 'object') {
459 var w = document.getElementById(e);
460 for (var a in attrs) {
461 w.setAttribute(a,attrs[a]);
465 var w = document.getElementById(el);
466 for (var a in attrs) {
467 w.setAttribute(a,attrs[a]);
472 function append_treeitem() {
473 var id = arguments[0];
474 var treechildren = document.getElementById(id);
475 if (!treechildren) { dump('No ' + id + ' to append to\n'); return; }
476 var treeitem = document.createElement('treeitem'); treechildren.appendChild(treeitem);
477 var treerow = document.createElement('treerow'); treeitem.appendChild(treerow);
478 for (var i = 1; i < arguments.length ; i++ ) {
479 var treecell = document.createElement('treecell'); treerow.appendChild(treecell);
480 treecell.setAttribute('label',arguments[i]);
481 treecell.setAttribute('id', 'treeitem_' + treeitem_id + '_' + i);
482 //dump('treecell.label = ' + arguments[i] + '\n');
484 return treeitem_id++;
487 function set_decks(params) {
488 for (var deck_id in params) {
489 var deck = document.getElementById( deck_id )
490 if (deck) deck.setAttribute( 'selectedIndex', params[deck_id] );
494 function super_dump(o,t) {
496 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
498 s = s + 'o.constructor == Array = ' + (o.constructor == Array) + '\n';
499 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
500 s = s + "typeof = " + typeof(o) + "\n";
502 var string = new XMLSerializer().serializeToString(o);
503 return( string + "\n" );
510 s = s + super_dump(i,t+1);
514 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
515 s = s + "\tMember#" + c++ + "\tType:" + typeof(value);
516 if (typeof(value) == 'object') {
517 value = super_dump(value,t+1);
519 s = s + "\ttoString:" + i.toString() + "\tvalue:" + value + "\n";
527 function super_dump_norecurse(o,t) {
529 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
531 s = s + 'o.constructor == Array = ' + (o.constructor == Array) + '\n';
532 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
533 s = s + "typeof = " + typeof(o) + "\n";
535 var string = new XMLSerializer().serializeToString(o);
536 return( string + "\n" );
544 for (var ii = 0; ii < t; ii++) { s = s + '\t'; }
545 s = s + "\tMember#" + c++ + "\tType:" + typeof(value);
546 s = s + "\ttoString:" + i.toString() + "\n";
554 function get_my_orgs(user_ou) {
556 // self and ancestors
557 var current_item_id = user_ou.id();
558 //dump('mw.G[user_ou] = ' + js2JSON(mw.G['user_ou']) + '\n');
559 //dump('current_item_id = ' + current_item_id + '\n');
560 var item_ou; var my_orgs = {}; var other_orgs = {};
561 while( item_ou = find_ou(mw.G['org_tree'],current_item_id) ) {
562 //dump('\titem_ou = ' + js2JSON(item_ou) + '\n');
563 my_orgs[ item_ou.id() ] = item_ou;
564 current_item_id = item_ou.parent_ou();
565 if (!current_item_id) { break; }
568 current_item_id = user_ou.id();
569 //dump('self & ancestors : my_orgs = <<<'+js2JSON(my_orgs)+'>>>\n');
572 var find_ou_result = find_ou(mw.G['org_tree'],current_item_id);
573 if (find_ou_result) {
574 my_children = find_ou_result.children() }
576 dump('ERROR: find_ou(org_tree,'+current_item_id+') returned with no properties\n');
578 //dump('my_children: ' + my_children + ' : ' + js2JSON(my_children) + '\n');
580 for (var i = 0; i < my_children.length; i++) {
581 var my_child = my_children[i];
582 my_orgs[ my_child.id() ] = my_child;
583 //dump('my_child.children(): ' + my_child.children() + ' : ' + js2JSON(my_child.children()) + '\n');
584 if (my_child.children() != null) {
585 for (var j = 0; j < my_child.children().length; j++) {
586 var my_gchild = my_child.children()[j];
587 my_orgs[ my_gchild.id() ] = my_gchild;
592 //dump('& descendants : my_orgs = <<<'+js2JSON(my_orgs)+'>>>\n');
596 function get_other_orgs(org,other_orgs) {
599 function flatten_ou_branch(branch) {
600 //dump('flatten: branch = ' + js2JSON(branch) + '\n');
601 var my_array = new Array();
602 my_array.push( branch );
603 for (var i in branch.children() ) {
604 var child = branch.children()[i];
606 var temp_array = flatten_ou_branch(child);
607 for (var j in temp_array) {
608 my_array.push( temp_array[j] );
615 function find_ou(tree,id) {
616 if (typeof(id)=='object') { id = id.id(); }
620 for (var i in tree.children()) {
621 var child = tree.children()[i];
622 ou = find_ou( child, id );
623 if (ou) { return ou; }
628 function find_tree_via_children(tree,children_func,find_func) {
629 if (typeof(tree)!='object') tree = document.getElementById(tree);
631 var t = find_func(tree); if (t) return t;
633 var c = children_func(tree);
635 for (var i = 0; i < c.length; i++) {
636 t = find_func( c[i] );
641 function filter_list(list,f) {
643 for (var i in list) {
644 var t = f( list[i] );
645 if (t) new_list.push( list[i] );
650 function find_list(list,f) {
651 for (var i in list) {
652 var t = f( list[i] );
653 if (t) return list[i];
658 function map_list(list,f) {
660 for (var i in list) {
661 new_list.push( f( list[i] ) );
666 function map_object_to_list(obj,f) {
669 new_list.push( f( obj, i ) );
674 function convert_object_list_to_hash(list) {
675 var my_hash = new Object();
677 for (var i = 0; i < list.length; i++) {
678 my_hash[ list[i].id() ] = list[i];
684 function find_id_object_in_list(list,id) {
685 //dump('find_id_object_in_list(' + js2JSON(list).substr(0,20) + '... ,' + id + ')\n');
687 for (var i = 0; i < list.length; i++ ) {
689 if ( list[i].id() == id ) {
693 dump('find_id_object_in_list error, i = ' + i + ' typeof(list[i]) = ' + typeof(list[i]) + ' list[i] = ' + js2JSON(list[i]) + ' : ' + js2JSON(E) + '\n');
697 //dump('not found\n');
701 function find_attr_object_in_list(list,attr,value) {
703 for (var i = 0; i < list.length; i++ ) {
704 dump('find_attr_object_in_list: i = ' + i + ' id = ' + list[i].id() + '\n');
706 var command = 'list[' + i + '].'+attr+'() == ' + value;
707 if ( eval(command) ) {
711 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');
718 function find_ou_by_shortname(tree,sn) {
720 if (tree.shortname()==sn) {
723 for (var i in tree.children()) {
724 var child = tree.children()[i];
725 ou = find_ou_by_shortname( child, sn );
726 if (ou) { return ou; }
731 function populate_listbox_with_local_stat_cats_myself(local_stat_cats,local_cat_entries,listbox,libs,app,method,editable) {
732 dump('populate_local_stat_cats: pertinent libs = ' + js2JSON(libs) + '\n');
734 local_stat_cats = user_request(
737 [ mw.G.auth_ses[0], libs ]
739 //dump('local_stat_cats = ' + pretty_print( js2JSON( local_stat_cats ) ) + '\n');
742 if (typeof list != 'object') list = document.getElementById(list);
744 for (var i in local_stat_cats) {
746 var stat_cat = local_stat_cats[i];
748 var listitem = document.createElement('listitem');
749 list.appendChild(listitem);
750 listitem.setAttribute('allowevents','true');
751 dump('listitem = ' + listitem + '\n');
753 var label = document.createElement('listcell');
754 listitem.appendChild(label);
755 label.setAttribute('label',stat_cat.name() );
756 dump('\tlistcell = ' + label + '\n');
758 var menucell = document.createElement('listcell');
759 listitem.appendChild(menucell);
760 dump('\tlistcell = ' + menucell + '\n');
762 var menulist = document.createElement('menulist');
763 menucell.appendChild(menulist);
764 if (editable) { menulist.setAttribute('editable','true'); }
765 menulist.setAttribute('id','menulist_stat_cat_'+stat_cat.id());
766 dump('\tmenulist = ' + menulist + '\n');
768 var menupopup = document.createElement('menupopup');
769 menulist.appendChild(menupopup);
770 menupopup.setAttribute('stat_cat',stat_cat.id());
771 menupopup.setAttribute('oncommand','apply_attribute(event);');
772 dump('\t\tmenupopup = ' + menupopup + '\n');
774 for (var j in stat_cat.entries() ) {
776 var stat_entry = stat_cat.entries()[j];
777 local_stat_cat_entries[stat_entry.id()] = stat_entry;
779 var menuitem = document.createElement('menuitem');
780 menupopup.appendChild(menuitem);
781 menuitem.setAttribute('label',stat_entry.value());
783 menuitem.setAttribute('value',stat_entry.value());
785 menuitem.setAttribute('value',stat_entry.id());
787 menuitem.setAttribute('stat_cat',stat_cat.id());
788 menuitem.setAttribute('id','menuitem_stat_cat_entry_' + stat_entry.id());
789 dump('\t\t\tmenuitem = ' + menuitem + '\n');
795 //dump('local_stat_cat_entries = ' + pretty_print( js2JSON( local_stat_cat_entries ) ) + '\n');
799 function populate_rows_with_local_stat_cats(local_stat_cats,local_stat_cat_entries,rows,editable) {
800 //dump('populate_local_stat_cats: pertinent libs = ' + js2JSON(libs) + '\n');
802 /*local_stat_cats = user_request(
805 [ mw.G.auth_ses[0], libs ]
807 //dump('local_stat_cats = ' + pretty_print( js2JSON( local_stat_cats ) ) + '\n');
809 if (typeof rows != 'object') rows = document.getElementById(rows);
811 for (var i in local_stat_cats) {
813 var stat_cat = local_stat_cats[i];
815 var row = document.createElement('row');
816 rows.appendChild(row);
818 var label = document.createElement('label');
819 label.setAttribute('value',stat_cat.name());
820 row.appendChild(label);
822 var menulist = document.createElement('menulist');
823 row.appendChild(menulist);
824 if (editable) { menulist.setAttribute('editable','true'); }
825 menulist.setAttribute('id','menulist_stat_cat_'+stat_cat.id());
826 menulist.setAttribute('stat_cat_id',stat_cat.id());
827 dump('\tmenulist = ' + menulist + '\n');
829 var menupopup = document.createElement('menupopup');
830 menulist.appendChild(menupopup);
831 menupopup.setAttribute('stat_cat',stat_cat.id());
832 menupopup.setAttribute('command','cmd_apply');
833 dump('\t\tmenupopup = ' + menupopup + '\n');
835 for (var j in stat_cat.entries() ) {
837 var stat_entry = stat_cat.entries()[j];
838 local_stat_cat_entries[stat_entry.id()] = stat_entry;
840 var menuitem = document.createElement('menuitem');
841 menupopup.appendChild(menuitem);
842 menuitem.setAttribute('label',stat_entry.value());
844 menuitem.setAttribute('value',stat_entry.value());
846 menuitem.setAttribute('value',stat_entry.id());
848 menuitem.setAttribute('stat_cat',stat_cat.id());
849 menuitem.setAttribute('id','menuitem_stat_cat_entry_' + stat_entry.id());
850 dump('\t\t\tmenuitem = ' + menuitem + '\n');
856 //dump('local_stat_cat_entries = ' + pretty_print( js2JSON( local_stat_cat_entries ) ) + '\n');
860 function populate_copy_status_list(menulist,menupopup,defaultccs) {
861 dump('populate_copy_status_list\n');
862 var popup = document.getElementById(menupopup);
866 for (var i in mw.G.ccs_list) {
867 var menuitem = document.createElement('menuitem');
868 menuitem.setAttribute('label', mw.G.ccs_list[i].name());
869 menuitem.setAttribute('value', mw.G.ccs_list[i].id());
870 menuitem.setAttribute('id', 'ccsitem' + mw.G.ccs_list[i].id());
871 //dump('pop_ccs_list: i = ' + i + ' ccs = ' + mw.G.ccs_list[i] + ' = ' + js2JSON(mw.G.ccs_list[i]) + '\n');
872 popup.appendChild(menuitem);
874 var list = document.getElementById(menulist);
875 if (list && defaultccs) {
876 if (typeof defaultccs == 'object') {
877 defaultccs = defaultccs.id();
879 var menuitem_id = 'ccsitem' + defaultccs;
880 var menuitem = document.getElementById(
883 var menulist_e = document.getElementById(menulist);
884 if (menulist_e && menuitem) {
885 dump('Setting default ccs\n');
886 menulist_e.selectedItem = menuitem;
888 dump('Not Setting default ccs\n');
892 dump('populate_copy_status_list: Could not find menupopup: ' + menupopup + '\n');
893 throw('populate_copy_status_list: Could not find menupopup: ' + menupopup + '\n');
898 function populate_copy_location_list(menulist,menupopup,defaultacpl) {
899 dump('populate_copy_location_list\n');
900 var popup = document.getElementById(menupopup);
904 for (var i in mw.G.acpl_my_orgs) {
905 var menuitem = document.createElement('menuitem');
906 menuitem.setAttribute('label', mw.G.acpl_my_orgs[i].name());
907 menuitem.setAttribute('value', mw.G.acpl_my_orgs[i].id());
908 menuitem.setAttribute('id', 'acplitem' + mw.G.acpl_my_orgs[i].id());
909 //dump('populate_copy_location_list: i = ' + i + ' acpl_my_orgs = ' + mw.G.acpl_my_orgs[i] + ' = ' + js2JSON(mw.G.acpl_my_orgs[i]) + '\n');
910 popup.appendChild(menuitem);
912 var list = document.getElementById(menulist);
913 if (list && defaultacpl) {
914 if (typeof defaultacpl == 'object') {
915 defaultacpl = defaultacpl.id();
917 var menuitem_id = 'acplitem' + defaultacpl;
918 var menuitem = document.getElementById(
921 var menulist_e = document.getElementById(menulist);
922 if (menulist_e && menuitem) { menulist_e.selectedItem = menuitem; }
925 dump('populate_copy_location_list: Could not find menupopup: ' + menupopup + '\n');
926 throw('populate_copy_location_list: Could not find menupopup: ' + menupopup + '\n');
931 function populate_lib_list(menulist,menupopup,defaultlib,id_flag) {
932 dump('populate_lib_list\n');
933 var default_menuitem;
934 if (typeof defaultlib == 'object') {
935 defaultlib = defaultlib.id();
937 var popup = menupopup;
938 if (typeof(popup)!='object') { popup = document.getElementById(menupopup); }
940 //dump('found popup\n');
942 var padding_flag = false;
943 for (var ou in mw.G.my_orgs) {
944 //dump('\tlooping on my_orgs: ' + js2JSON(mw.G.my_orgs[ou]) + '\n');
945 //dump('\tlooping on my_orgs: ou = ' + ou + '\n');
946 var menuitem = document.createElement('menuitem');
947 popup.appendChild(menuitem);
948 //dump('\t\tmenuitem = ' + menuitem + '\n');
950 //var depth = find_id_object_in_list( mw.G.aout_list, mw.G.my_orgs[ou].ou_type() ).depth();
951 var depth = mw.G.aout_hash[ mw.G.my_orgs[ou].ou_type() ].depth();
952 if (depth == '0') { padding_flag = true; }
954 for (var i = 0; i < depth; i++) {
955 padding = padding + ' ';
958 menuitem.setAttribute('label', padding + mw.G.my_orgs[ou].name() );
959 menuitem.setAttribute('value', mw.G.my_orgs[ou].id() );
960 if (id_flag) menuitem.setAttribute('id', 'libitem' + mw.G.my_orgs[ou].id() );
961 //dump('\tname = ' + mw.G.my_orgs[ou].name() + ' id = ' + mw.G.my_orgs[ou].id() + '\n');
962 if (defaultlib == mw.G.my_orgs[ou].id()) {
963 default_menuitem = menuitem;
964 dump('Setting defaultlib = ' + defaultlib + '\n');
968 if (typeof(list)!='object') { list = document.getElementById(menulist); }
969 if (list && defaultlib && default_menuitem) {
970 //dump('default_menuitem = ' + default_menuitem + '\n');
971 if (list) { list.selectedItem = default_menuitem; }
974 dump('populate_lib_list: Could not find ' + menupopup + '\n');
975 throw('populate_lib_list: Could not find ' + menupopup + '\n');
979 function populate_lib_list_with_branch(menulist,menupopup,defaultlib,branch,id_flag) {
980 dump('populate_lib_list_with_branch\n');
981 var default_menuitem;
982 if (typeof defaultlib == 'object') {
983 defaultlib = defaultlib.id();
985 var popup = menupopup;
986 if (typeof(popup)!='object') popup = document.getElementById(menupopup);
989 var padding_flag = true;
990 var flat_branch = flatten_ou_branch( branch );
991 //dump('\n\nflat_branch = ' + js2JSON(flat_branch) + '\n');
992 for (var i in flat_branch) {
993 //dump('i = ' + js2JSON(i) + ' flat_branch[i] = ' + js2JSON(flat_branch[i]) + '\n');
994 var menuitem = document.createElement('menuitem');
996 //if (flat_branch[i].ou_type().depth() == '0') { padding_flag = true; }
997 var depth = mw.G.aout_hash[ flat_branch[i].ou_type() ].depth();
999 for (var j = 0; j < depth; j++) {
1000 padding = padding + ' ';
1003 menuitem.setAttribute('label', padding + flat_branch[i].name() );
1004 menuitem.setAttribute('value', flat_branch[i].id() );
1005 if (id_flag) menuitem.setAttribute('id', 'libitem' + flat_branch[i].id() );
1006 if (defaultlib == flat_branch[i].id()) {
1007 default_menuitem = menuitem;
1008 dump('i = ' + i + ' Setting defaultlib = ' + defaultlib + ' menuitem = ' + default_menuitem + ' value = ' + default_menuitem.getAttribute('value') + '\n');
1010 popup.appendChild(menuitem);
1012 var list = menulist;
1013 if (typeof(list)!='object') { list = document.getElementById(menulist); }
1014 if (list && defaultlib && default_menuitem) {
1015 //dump('default_menuitem = ' + default_menuitem + ' value = ' + default_menuitem.getAttribute('value') + '\n');
1016 if (list) { list.selectedItem = default_menuitem; }
1019 dump('populate_lib_list_with_branch: Could not find ' + menupopup + '\n');
1020 throw('populate_lib_list_with_branch: Could not find ' + menupopup + '\n');
1022 dump('\tleaving populate_lib_list_with_branch\n');
1025 function populate_user_profile(menulist,menupopup,defaultap) {
1026 dump('Entering populate_user_profile\n');
1027 var popup = document.getElementById(menupopup);
1029 empty_widget(popup);
1030 for (var i in mw.G.ap_list) {
1031 var menuitem = document.createElement('menuitem');
1032 menuitem.setAttribute('label', mw.G.ap_list[i].name());
1033 menuitem.setAttribute('value', mw.G.ap_list[i].id());
1034 menuitem.setAttribute('id', 'apitem' + mw.G.ap_list[i].id());
1035 //dump('pop_ap_list: i = ' + i + ' ap = ' + mw.G.ap_list[i] + ' = ' + js2JSON(mw.G.ap_list[i]) + '\n');
1036 popup.appendChild(menuitem);
1038 var list = document.getElementById(menulist);
1039 if (list && defaultap) {
1040 if (typeof defaultap == 'object') {
1041 defaultap = defaultap.id();
1043 var menuitem_id = 'apitem' + defaultap;
1044 var menuitem = document.getElementById(
1047 var menulist_e = document.getElementById(menulist);
1048 if (menulist_e) { menulist_e.selectedItem = menuitem; }
1051 dump('populate_user_profile: Could not find menupopup: ' + menupopup + '\n');
1052 throw('populate_user_profile: Could not find menupopup: ' + menupopup + '\n');
1056 function populate_ident_types(menulist,menupopup,repeatid,defaultcit) {
1057 dump('Entering populate_ident_types\n');
1058 var popup = document.getElementById(menupopup);
1060 empty_widget(popup);
1061 for (var i in mw.G.cit_list) {
1062 var menuitem = document.createElement('menuitem');
1063 menuitem.setAttribute('label', mw.G.cit_list[i].name());
1064 menuitem.setAttribute('value', mw.G.cit_list[i].id());
1065 menuitem.setAttribute('id', 'cit' + repeatid + 'item' + mw.G.cit_list[i].id());
1066 //dump('pop_cit_list: i = ' + i + ' cit = ' + mw.G.cit_list[i] + ' = ' + js2JSON(mw.G.cit_list[i]) + '\n');
1067 popup.appendChild(menuitem);
1069 if (list && defaultcit) {
1070 if (typeof defaultcit == 'object') {
1071 defaultcit = defaultcit.id();
1073 var menuitem_id = 'cit' + repeatid + 'item' + defaultcit;
1074 var menuitem = document.getElementById(
1077 var menulist_e = document.getElementById(menulist);
1078 if (menulist_e) { menulist_e.selectedItem = menuitem; }
1081 dump('populate_ident_types: Could not find menupopup: ' + menupopup + '\n');
1082 throw('populate_ident_types: Could not find menupopup: ' + menupopup + '\n');
1088 function populate_name_prefix(menulist,menupopup,defaultvalue) {
1089 var popup = document.getElementById(menupopup);
1091 empty_widget(popup);
1093 'Mr','Mrs','Ms','Miss', 'Dr',
1166 for (var i in prefix_list) {
1167 var menuitem = document.createElement('menuitem');
1168 menuitem.setAttribute('label', prefix_list[i]);
1169 menuitem.setAttribute('value', prefix_list[i]);
1170 popup.appendChild(menuitem);
1172 var list = document.getElementById(menulist);
1175 list.value = defaultvalue;
1178 dump('populate_name_prefix: Could not find menulist: ' + menulist + '\n');
1179 throw('populate_name_prefix: Could not find menulist: ' + menulist + '\n');
1182 dump('populate_name_prefix: Could not find menupopup: ' + menupopup + '\n');
1183 throw('populate_name_prefix: Could not find menupopup: ' + menupopup + '\n');
1188 function populate_name_suffix(menulist,menupopup,defaultvalue) {
1189 var popup = document.getElementById(menupopup);
1191 empty_widget(popup);
1193 'Jr','Sr','II','III',
1229 for (var i in suffix_list) {
1230 var menuitem = document.createElement('menuitem');
1231 menuitem.setAttribute('label', suffix_list[i]);
1232 menuitem.setAttribute('value', suffix_list[i]);
1233 popup.appendChild(menuitem);
1235 var list = document.getElementById(menulist);
1238 list.value = defaultvalue;
1241 dump('populate_name_suffix: Could not find ' + menulist + '\n');
1242 throw('populate_name_suffix: Could not find ' + menulist + '\n');
1245 dump('populate_name_suffix: Could not find ' + menupopup + '\n');
1246 throw('populate_name_suffix: Could not find ' + menupopup + '\n');