+<BR><BR>
+
+<STYLE TYPE="text/css">
+.disabled {
+ background-color: #dddddd;
+}
+.hidden {
+ display: none;
+}
+.enabled {
+ background-color: #ffffff;
+}
+.row0 TD {
+ background-color: #eeeeee;
+}
+.row1 TD {
+ background-color: #ffffff;
+}
+.def_info {
+ text-align: center;
+ padding: 0px;
+ border-top: none;
+ font-size: smaller;
+ font-style: italic;
+}
+.selectrole {
+ font-size: small
+}
+</STYLE>
+<SCRIPT TYPE="text/javascript">
+// copy all fields from the outer form (svc and its localizations, plus
+// preserve, selfservice_access, etc.) into the inner form, creating hidden
+// inputs if needed
+function fixup_submit(layer) {
+ var layer_form = $(document.forms[layer]);
+ var main_form = $(document.forms['SvcEditMain']);
+ var data = main_form.serializeArray();
+ for (var i = 0; i < data.length; i++) {
+ var input = layer_form.children('[name=' + data[i].name + ']');
+ if (input[0]) {
+ input.prop('value', data[i].value);
+ } else {
+ $( '<input type="hidden">' )
+ .attr('name', data[i].name)
+ .prop('value', data[i].value)
+ .appendTo(layer_form);
+ }
+ }
+ layer_form[0]['submit'].disabled = true;
+ //fixup(document.forms[layer]);
+ window[layer+'process'].call();
+}
+
+function flag_changed(obj) {
+ var newflag = obj.value;
+ var a = obj.name.match(/(.*)__(.*)_flag/);
+ var layer = a[1];
+ var field = a[2];
+ var input = document.getElementById(layer + '__' + field);
+ // for fields that have both 'input' and 'select', 'select' is 'select from
+ // inventory class'.
+ var select = document.getElementById(layer + '__' + field + '_select');
+ if (newflag == "" || newflag == "X") { // disable
+ if ( input ) {
+ input.disabled = true;
+ input.className = 'disabled';
+ }
+ if ( select ) {
+ select.disabled = true;
+ select.className = 'hidden';
+ }
+ } else if ( newflag == 'D' || newflag == 'F' || newflag == 'S' ) {
+ if ( input ) {
+ // enable text box, disable inventory select
+ input.disabled = false;
+ input.className = 'enabled';
+ if ( select ) {
+ select.disabled = false;
+ select.className = 'hidden';
+ }
+ } else if ( select ) {
+ // enable select
+ select.disabled = false;
+ select.className = 'enabled';
+ if ( newflag == 'S' || select.getAttribute('should_be_multiple') ) {
+ select.multiple = true;
+ var defaults = select.getAttribute('default');
+ if ( defaults ) {
+ defaults = defaults.split(',');
+ for (var i = 0; i < defaults.length; i++) {
+ for (j = 0; j < select.options.length; j++ ) {
+ if ( defaults[i] == select.options[j].value ) {
+ select.options[j].selected = true;
+ }
+ }
+ }
+ }
+ } else {
+ select.multiple = false;
+ }
+ }
+ } else if ( newflag == 'M' || newflag == 'A' || newflag == 'H' || newflag == 'P' ) {
+ // these all require a class selection
+ if ( select ) {
+ select.disabled = false;
+ select.className = 'enabled';
+ if ( input ) {
+ input.disabled = false;
+ input.className = 'hidden';
+ }
+ }
+ }
+ var required = document.getElementById(layer + '__' + field + '_required');
+ if (required && !required.disabledinit) {
+ if (newflag == "F" || newflag =="P") {
+ required.checked = false;
+ required.disabled = true;
+ } else {
+ required.disabled = false;
+ }
+ }
+}
+
+window.onload = function() {
+ var selects = document.getElementsByTagName('SELECT');
+ for(i = 0; i < selects.length; i++) {
+ var obj = selects[i];
+ if ( obj.multiple ) {
+ obj.setAttribute('should_be_multiple', true);
+ }
+ }
+ var inputs = document.getElementsByTagName('INPUT');
+ for(i = 0; i < inputs.length; i++) {
+ var obj = inputs[i];
+ if (obj.type == 'checkbox') {
+ if ( obj.name.match(/_required$/) ) {
+ if ( obj.disabled ) {
+ obj.disabledinit = 1;
+ }
+ }
+ }
+ }
+ for(i = 0; i < selects.length; i++) {
+ var obj = selects[i];
+ if ( obj.name.match(/_flag$/) ) {
+ flag_changed(obj);
+ }
+ }
+};