1 function pkg_changed () {
2 var form = document.OrderPkgForm;
3 var discountnum = form.discountnum;
5 if ( form.pkgpart.selectedIndex > 0 ) {
7 var opt = form.pkgpart.options[form.pkgpart.selectedIndex];
8 var date_button = document.getElementById('start_date_button');
9 var date_button_disabled = document.getElementById('start_date_disabled');
10 var date_text = document.getElementById('start_date_text');
12 var radio_now = document.getElementById('start_now');
13 var radio_on_hold = document.getElementById('start_on_hold');
14 var radio_on_date = document.getElementById('start_on_date');
16 form.submitButton.disabled = false;
18 if ( opt.getAttribute('data-can_discount') == 1 ) {
19 form.discountnum.disabled = false;
20 discountnum_changed(form.discountnum);
22 form.discountnum.disabled = true;
23 discountnum_changed(form.discountnum);
27 // if this form element exists, then the start date is a future
28 // package change date; don't replace it
32 form.start_date_text.value = opt.getAttribute('data-start_date');
33 if ( opt.getAttribute('data-can_start_date') == 1 ) {
34 date_text.style.backgroundColor = '#ffffff';
35 date_text.disabled = false;
36 date_button.style.display = '';
37 date_button_disabled.style.display = 'none';
38 if ( radio_on_date ) {
39 // un-disable all the buttons that might get disabled
40 radio_on_date.disabled = false;
41 radio_now.disabled = false;
42 // if a start date has been entered, assume the user wants it
43 if ( form.start_date_text.value.length > 0 ) {
44 radio_now.checked = false;
45 radio_on_date.checked = true;
47 // if not, default to now
48 radio_now.checked = true;
51 } else { // the package is either fixed start date or start-on-hold
52 date_text.style.backgroundColor = '#dddddd';
53 date_text.disabled = true;
54 date_button.style.display = 'none';
55 date_button_disabled.style.display = '';
56 if ( radio_on_date ) {
57 if ( opt.getAttribute('data-start_on_hold') == 1 ) {
58 // disallow all options but "On hold"
59 radio_on_hold.checked = true;
60 radio_now.checked = false;
61 radio_now.disabled = true;
63 // disallow all options but "On date"
64 radio_on_hold.checked = false;
65 radio_now.checked = true;
66 radio_now.disabled = false;
71 get_part_pkg_usageprice( opt.value, update_part_pkg_usageprice );
74 form.submitButton.disabled = true;
75 if ( discountnum ) { form.discountnum.disabled = true; }
76 discountnum_changed(form.discountnum);
80 function update_part_pkg_usageprice(part_pkg_usageprice) {
82 var table = document.getElementById('cust_pkg_usageprice_table');
84 // black the current usage price rows
85 for ( var r = table.rows.length - 1; r >= 0; r-- ) {
89 // add the new usage price rows
91 var usagepriceArray = eval('(' + part_pkg_usageprice + ')' );
92 for ( var s = 0; s < usagepriceArray.length; s=s+2 ) {
93 //surely this should be some kind of JSON structure
94 var html = usagepriceArray[s+0];
95 var javascript = usagepriceArray[s+1];
97 // a lot like ("inspiried by") edit/elements/edit.html function spawn_<%$field%>
99 // XXX evaluate the javascript
100 //if (window.ActiveXObject) {
101 // window.execScript(newfunc);
102 //} else { /* (window.XMLHttpRequest) */
103 // //window.eval(newfunc);
104 // setTimeout(newfunc, 0);
107 var row = table.insertRow(rownum++);
109 //var label_cell = document.createElement('TD');
111 //label_cell.id = '<% $field %>_label' + <%$field%>_fieldnum;
113 //label_cell.style.textAlign = "right";
114 //label_cell.style.verticalAlign = "top";
115 //label_cell.style.borderTop = "1px solid black";
116 //label_cell.style.paddingTop = "5px";
118 //label_cell.innerHTML = '<% $label %>';
120 //row.appendChild(label_cell);
122 var widget_cell = document.createElement('TD');
124 //widget_cell.style.borderTop = "1px solid black";
125 widget_cell.style.paddingTop = "3px";
126 widget_cell.colSpan = "2";
128 widget_cell.innerHTML = html;
130 row.appendChild(widget_cell);
135 document.getElementById('cust_pkg_usageprice_title').style.display = '';
137 document.getElementById('cust_pkg_usageprice_title').style.display = 'none';
143 function standardize_new_location() {
144 var form = document.OrderPkgForm;
145 var loc = form.locationnum;
146 if (loc.type == 'select-one' && loc.options[loc.selectedIndex].value == -1){
147 standardize_locations();
153 function submit_abort() {
154 document.OrderPkgForm.submitButton.disabled = false;