add (unfinished) credit card surcharge, part 1
[freeside.git] / httemplate / edit / part_pkg_taxoverride.html
1 <% include('/elements/header-popup.html', 'Override taxes', '', 'onload="resizeFrames()"') %>
2
3 <TABLE WIDTH="100%" HEIGHT="100%">
4   <TR><TD>
5     <iframe name="selected" src="<% $p %>browse/tax_class.html?_type=select;magic=select;maxrecords=15;offset=<% $selected_offset %>;selected=<% $selected %>;" width="100%" frameborder="0" border="0" id="selectorSelected" scrolling="no">
6 </iframe>
7     <BR>
8   </TD></TR>
9
10   <TR><TD>
11 <FORM="dummy">
12   <CENTER>
13     <INPUT type="submit" value="Finish" onclick="s=fetchSelected(); s.shift(); parent.document.getElementById('<% $element_name || "tax_override" %>').value=s.toString(); parent.<% $onclick %>();">
14     <INPUT type="reset" value="Cancel" onclick="parent.<% $onclick %>();">
15   </CENTER>
16 </FORM>
17   </TD></TR>
18
19   <TR><TD>
20     <iframe name="unselected" src="<% $p %>browse/tax_class.html?_type=select;magic=omit;maxrecords=15;offset=<% $unselected_offset %>;omit=<% $selected %>;" width="100%" frameborder="0" border="0" id="selectorUnselected" scrolling="no">
21 </iframe>
22     <BR>
23   </TD></TR>
24
25 </TABLE>
26 <SCRIPT>
27
28     function resizeFrames() {
29       //frames['selected'].style.height =
30       //  frames['selected'].contentWindow.document.body.scrollHeight + "px";
31       //frames['unselected'].style.height =
32       //  frames['unselected'].contentWindow.document.body.scrollHeight + "px";
33       var f = document.getElementById('selectorSelected');
34       f.style.height = f.contentWindow.document.body.scrollHeight + "px";
35       var f = document.getElementById('selectorUnselected');
36       f.style.height = f.contentWindow.document.body.scrollHeight + "px";
37     }
38
39     function fetchOffset(search) {
40       var value = 0;
41       if (search.length > 1) {
42         var params = search.split(';');
43         for (i=0; i<params.length; i++) {
44           if (params[i].substr(0,7) == 'offset=') {
45             value = params[i].substr(7);
46           }
47         }
48       }
49       return value;
50     }
51
52     function fetchOffsetStrings() {
53       return 'selected_offset=' +
54              fetchOffset(frames['selected'].location.search) + ';' +
55              'unselected_offset=' +
56              fetchOffset(frames['unselected'].location.search) + ';';
57     }
58
59     function fetchSelected() {
60       var i;
61       var selected = new Array;
62       var replace = '?';
63       if (window.location.search.length > 1) {
64         var search = window.location.search.substr(1).split(';');
65         for (i=0; i<search.length; i++) {
66           if (search[i].substr(0,9) == 'selected=') {
67             selected = search[i].substr(9).split(',')
68           }else if (search[i].substr(0,16) ==   'selected_offset=') {
69           }else if (search[i].substr(0,18) == 'unselected_offset=') {
70           }else if (search[i].length) {
71             replace += search[i] + ';';
72           }
73         }
74       }
75       selected.unshift(replace);
76       return selected;
77     }
78     function doUnselect(classnum) {
79       var selected = fetchSelected();
80       var search = selected.shift();
81       //alert("discovered: "+selected.toString());
82       var i=-1, j=-1, k=selected.length;
83       while(++j < k) {
84         if (!(selected[j]==classnum)) {
85           selected[++i]=selected[j];
86         }
87       }
88       selected.length = ++i;
89       //alert("finished: "+selected.toString());
90
91       search += "selected=" + selected.toString() + ';';
92       window.location.search = search + fetchOffsetStrings();
93     }
94     function doSelect(classnum) {
95       var selected = fetchSelected();
96       var search = selected.shift();
97       selected.push(classnum);
98       search += "selected=" + selected.toString() + ';';
99       window.location.search = search + fetchOffsetStrings();
100     }
101 </SCRIPT>
102
103 <% include('/elements/footer.html') %>
104 <%once>
105
106 my $conf = new FS::Conf;
107
108 </%once>
109 <%init>
110
111 die "access denied"
112   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
113
114
115 my $selected_offset = $1
116   if $cgi->param('selected_offset') =~/^(\d+)$/;
117
118 my $unselected_offset = $1
119   if $cgi->param('unselected_offset') =~/^(\d+)$/;
120
121 my $selected = $1
122   if $cgi->param('selected') =~/^([,\d]+)$/;
123
124 my $element_name = $1
125   if $cgi->param('element_name') =~/^(\w+)$/;
126
127 my $onclick = $1
128   if $cgi->param('onclick') =~/^(\w+)$/;
129
130 $onclick = 'cClick' unless $onclick;
131
132 </%init>