1 // Print Window Functions
2 // Loaded when print.js creates a window for printing
4 var params = window.arguments[0];
5 window.go_print = window.arguments[1];
8 function print_init(type) {
9 if (typeof print_custom == "function") {
14 print_check_noprint();
23 /* Example "swap slip" code
25 * <div altgroup="print1" altid="main">
26 * <span altcheck="print1">%some_replace%</span>
27 * <!-- Other slip stuff -->
29 * <div altgroup="print1" altid="alt1" style="display: none">
30 * <!-- Alt slip stuff -->
32 * <div altgroup="print1" altid="alt2" style="display: none">
33 * <!-- Second alt slip stuff -->
35 * <div style="display: none">
36 * <span alt="print1" altshow="alt1">Code1</span>
37 * <span alt="print1" altshow="alt2">Code2</span>
40 function print_check_alt() {
41 var spans = document.getElementsByTagName('span');
43 var groups_check = {};
44 var foundgroups = false;
45 for (var i = 0; i < spans.length; i++) {
46 var group = spans[i].getAttribute('altcheck');
48 groups_check[group] = spans[i].textContent;
52 if(!foundgroups) return;
55 for (var i = 0; i < spans.length; i++) {
56 var group = spans[i].getAttribute('alt');
57 if(group && groups_check[group] && spans[i].textContent == groups_check[group]) {
58 groups_show[group] = spans[i].getAttribute('altshow');
62 if(!foundgroups) return;
63 for (var i = 0; i < spans.length; i++) {
64 var group = spans[i].getAttribute('altgroup');
65 if(group && groups_check[group]) {
66 spans[i].style.display = (groups_show[group] == spans[i].getAttribute('altid') ? '' : 'none');
69 var divs = document.getElementsByTagName('div');
71 for (var i = 0; i < divs.length; i++) {
72 var group = divs[i].getAttribute('altgroup');
73 if(group && groups_check[group]) {
74 divs[i].style.display = (groups_show[group] == divs[i].getAttribute('altid') ? '' : 'none');
79 /* Example "don't print" code
82 * <span noprintcheck="noprint1">%some_replace%</span>
83 * <span noprintcheck="noprint2">%some_other_replace%</span>
85 * <div style="display: none">
86 * <span noprint="noprint1">Code1</span>
87 * <span noprint="noprint2">Code2</span>
90 function print_check_noprint() {
91 var spans = document.getElementsByTagName('span');
94 var foundnoprints = false;
95 for (var i = 0; i < spans.length; i++) {
96 var noprint = spans[i].getAttribute('noprintcheck');
98 noprints[noprint] = spans[i].textContent;
102 if(!foundnoprints) return;
103 for (var i = 0; i < spans.length; i++) {
104 var noprint = spans[i].getAttribute('noprint');
106 if(noprints[noprint] == spans[i].textContent) {
113 /* Example "sum up" code
116 * <!-- Probably as line_item entries: -->
117 * <span sum="sum1">$5.00</span>
118 * <span sum="sum1">$15.00</span>
119 * <span sum="sum1">$25.00</span>
121 * $<span sumout="sum1" fixed="2"></span>
123 function print_do_sums() {
124 var spans = document.getElementsByTagName('span');
127 var foundsums = false;
128 for (var i = 0; i < spans.length; i++) {
129 var sumset = spans[i].getAttribute("sum");
131 if(typeof sums[sumset] == 'undefined') {
135 var newVal = spans[i].textContent;
136 // strip off a single non-digit character
137 // Don't want to assume dollar sign
138 // But don't strip a -
139 newVal = newVal.replace(/^[^-0-9]/,'');
140 newVal = parseFloat(newVal);
142 sums[sumset] += newVal;
146 if(!foundsums) return;
147 for (var i = 0; i < spans.length; i++) {
148 var sumset = spans[i].getAttribute("sumout");
150 if(typeof sums[sumset] == 'undefined') {
153 var fixed = spans[i].getAttribute("fixed");
155 fixed = parseInt(fixed);
159 spans[i].textContent=sums[sumset].toFixed(fixed);
161 spans[i].textContent = sums[sumset];