1 /* Keep this dead simple. No dojo. */
2 function $(s) { return document.getElementById(s); }
3 function removeClass(node, cls) {
4 if (!node || !node.className) return;
6 node.className.replace(new RegExp("\\b" + cls + "\\b", "g"), "");
8 function addClass(node, cls) {
10 removeClass(node, cls);
11 if (!node.className) node.className = cls;
12 else node.className += ' ' + cls;
14 function unHideMe(node) { removeClass(node, "hide_me"); }
15 function hideMe(node) { addClass(node, "hide_me"); }
17 var _search_row_template, _expert_row_template;
18 function addSearchRow() {
19 if (!_search_row_template) {
20 t = $("adv_global_row").cloneNode(true);
22 _search_row_template = t;
25 $("adv_global_tbody").insertBefore(
26 _search_row_template.cloneNode(true),
27 $("adv_global_addrow")
30 $("adv_global_input_table").rows[$("adv_global_input_table").rows.length - 2].getElementsByTagName("input")[0].value = "";
34 var _search_row_template, _expert_row_template, t;
35 var _el_adv_global_row = $("adv_global_row"), _el_adv_expert_row = $("adv_expert_row");
36 if (_el_adv_global_row) {
37 t = _el_adv_global_row.cloneNode(true);
39 _search_row_template = t;
42 if (_el_adv_expert_row) {
43 t = _el_adv_expert_row.cloneNode(true);
45 _expert_row_template = t;
47 function addExpertRow() {
48 $("adv_expert_rows_here").appendChild(
49 _expert_row_template.cloneNode(true)
53 window.addSearchRow = addSearchRow;
54 window.addExpertRow = addExpertRow;
56 function killRowIfAtLeast(min, link) {
57 var row = link.parentNode.parentNode;
58 if (row.parentNode.getElementsByTagName("tr").length > min)
59 row.parentNode.removeChild(row);
62 function print_node(node_id) {
63 var iframe = document.createElement("iframe");
64 var source_node = $(node_id);
65 source_node.parentNode.appendChild(iframe);
67 var iwin = iframe.contentWindow;
69 /* These next three statements are only needed by IE, but they don't
72 iwin.document.write( /* XXX make better/customizable? */
73 "<html><head><title>Receipt</title></head><body></body></html>"
75 iwin.document.close();
77 iwin.document.body.innerHTML = source_node.innerHTML;
80 try { iframe.print(); } catch (e) { iwin.print(); }
81 setTimeout(function() { iframe.style.display = "none"; }, 3500);
83 function select_all_checkboxes(name, checked) {
84 var all = document.getElementsByTagName("input");
85 for (var i = 0; i < all.length; i++) {
86 if (all[i].type == "checkbox" && all[i].name == name) {
87 all[i].checked = checked;
92 function search_modifier_onchange(type, checkbox, submitOnChange) {
93 if (checkbox.form._adv && !checkbox.checked) {
94 var search_box = $('search_box');
95 var reg = new RegExp('#' + type + ' ?', 'g');
96 search_box.value = search_box.value.replace(reg, "");
100 checkbox.form.submit();
104 function exclude_onchange(checkbox) {
105 if (checkbox.form._adv && !checkbox.checked) {
106 var search_box = $('search_box');
107 // Other functions' form submits may create duplicates of this, so /g
108 var reg = /-search_format\(electronic\)/g;
109 search_box.value = search_box.value.replace(reg, "");
110 // Remove from the search form itself
111 var search_format_inputs = document.getElementsByName("fi:-search_format");
112 for (var j = 0; j < search_format_inputs.length; j++) {
113 if (search_format_inputs[j].value == 'electronic') {
114 search_format_inputs[j].parentNode.removeChild(search_format_inputs[j]);
120 checkbox.form.submit();