function DynamicOptionList(){if(arguments.length<2){alert("Not enough arguments in DynamicOptionList()")}this.target=arguments[0];this.dependencies=new Array();for(var a=1;a<arguments.length;a++){this.dependencies[this.dependencies.length]=arguments[a]}this.form=null;this.dependentValues=new Object();this.defaultValues=new Object();this.options=new Object();this.delimiter="|";this.longestString="";this.numberOfOptions=0;this.addOptions=DynamicOptionList_addOptions;this.populate=DynamicOptionList_populate;this.setDelimiter=DynamicOptionList_setDelimiter;this.setDefaultOption=DynamicOptionList_setDefaultOption;this.printOptions=DynamicOptionList_printOptions;this.init=DynamicOptionList_init}function DynamicOptionList_setDelimiter(a){this.delimiter=a}function DynamicOptionList_setDefaultOption(c,b){if(typeof this.defaultValues[c]=="undefined"||this.defaultValues[c]==null){this.defaultValues[c]=new Object()}for(var a=1;a<arguments.length;a++){this.defaultValues[c][arguments[a]]=1}}function DynamicOptionList_init(a){this.form=a;this.populate()}function DynamicOptionList_addOptions(b){if(typeof this.options[b]!="object"){this.options[b]=new Array()}for(var a=1;a<arguments.length;a+=2){if(arguments[a].length>this.longestString.length){this.longestString=arguments[a]}this.numberOfOptions++;this.options[b][this.options[b].length]=arguments[a];this.options[b][this.options[b].length]=arguments[a+1]}}function DynamicOptionList_printOptions(){if((navigator.appName=="Netscape")&&(parseInt(navigator.appVersion)<=4)){var a="";for(var b=0;b<this.numberOfOptions;b++){a+="<OPTION>"}a+="<OPTION>";for(var b=0;b<this.longestString.length;b++){a+="_"}document.writeln(a)}}function DynamicOptionList_populate(){var e=this.form;var n,l,m,g;this.dependentValues=new Object;var q=false;for(n=0;n<this.dependencies.length;n++){var c=e[this.dependencies[n]];var h=c.name;if(!q){q=true;for(l=0;l<c.options.length;l++){if(c.options[l].selected){this.dependentValues[c.options[l].value]=true}}}else{var p=new Object();var b=new Object();for(l=0;l<c.options.length;l++){if(c.options[l].selected){p[c.options[l].value]=true}}for(m in this.dependentValues){for(g in p){b[m+this.delimiter+g]=true}}this.dependentValues=b}}var k=e[this.target];var f=new Object();for(n=0;n<k.options.length;n++){if(k.options[n].selected){f[k.options[n].value]=true}}k.options.length=0;for(n in this.dependentValues){if(typeof this.options[n]=="object"){var a=this.options[n];for(l=0;l<a.length;l+=2){var r=a[l];var d=a[l+1];k.options[k.options.length]=new Option(r,d,false,false);if(typeof this.defaultValues[n]!="undefined"&&this.defaultValues[n]!=null){for(def in this.defaultValues[n]){if(def==d){f[d]=true}}}}}}k.selectedIndex=-1;for(n=0;n<k.options.length;n++){if(f[k.options[n].value]!=null&&f[k.options[n].value]==true){k.options[n].selected=true}}};
