+
+ $html .= qq!<SELECT NAME="${layer}__${field}_flag"!.
+ qq! onChange="${layer}__${field}_flag_changed(this)">!;
+
+ foreach my $f ( keys %flag ) {
+
+ #here is where the SUB from above is called, to skip some choices
+ next if $flag{$f}->{condition}
+ && &{ $flag{$f}->{condition} }( $def, $layer, $field );
+
+ $html .= qq!<OPTION VALUE="$f"!.
+ ' SELECTED'x($flag eq $f ).
+ '>'. $flag{$f}->{desc};
+
+ }
+
+ $html .= '</SELECT>';
+
+ $html .= join("\n",
+ '<SCRIPT>',
+ " function ${layer}__${field}_flag_changed(what) {",
+ ' var f = what.options[what.selectedIndex].value;',
+ ' if ( f == "" || f == "X" ) { //disable',
+ " what.form.${layer}__${field}.disabled = true;".
+ " what.form.${layer}__${field}.style.backgroundColor = '#dddddd';".
+ " if ( what.form.${layer}__${field}_classnum ) {".
+ " what.form.${layer}__${field}_classnum.disabled = true;".
+ " what.form.${layer}__${field}_classnum.style.backgroundColor = '#dddddd';".
+ " }".
+ ' } else if ( f == "D" || f == "F" ) { //enable, text box',
+ " what.form.${layer}__${field}.disabled = false;".
+ " what.form.${layer}__${field}.style.backgroundColor = '#ffffff';".
+ " what.form.${layer}__${field}.style.display = '';".
+ " if ( what.form.${layer}__${field}_classnum ) {".
+ " what.form.${layer}__${field}_classnum.disabled = false;".
+ " what.form.${layer}__${field}_classnum.style.backgroundColor = '#ffffff';".
+ " what.form.${layer}__${field}_classnum.style.display = 'none';".
+ " }".
+ ' } else if ( f == "M" || f == "A" ) { //enable, inventory',
+ " what.form.${layer}__${field}.disabled = false;".
+ " what.form.${layer}__${field}.style.backgroundColor = '#ffffff';".
+ " what.form.${layer}__${field}.style.display = 'none';".
+ " if ( what.form.${layer}__${field}_classnum ) {".
+ " what.form.${layer}__${field}_classnum.disabled = false;".
+ " what.form.${layer}__${field}_classnum.style.backgroundColor = '#ffffff';".
+ " what.form.${layer}__${field}_classnum.style.display = '';".
+ " }".
+ ' }',
+ ' }',
+ '</SCRIPT>',
+ );
+