Having fiddled around with it a little more to try and find the problem, I've discovered that if I run your version of the code with no changes, it populates both "subcategory" boxes with the same information. For example, if I change the code to read as follows:
Code:
<form name="pressnotices">
Choose Category:
<select name="cat1" id="cat1" size="1" onChange="redirect(this.options.selectedIndex,'subcat1')">
<option selected="selected">Please Select</option>
<option>Acknowledgements </option>
<option>Birthdays </option>
<option>Births & Adoptions </option>
</select>
</p>
<p align="left">Choose Subcategory:
<select name="subcat1" id="subcat1" size="1" onchange="go()">
<option value="">Select above first</option>
</select>
</p>
<script>
<!--
var groups=document.pressnotices.cat1.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()
group[0][0]=new Option("Select above first","")
group[1][0]=new Option("--Acknowledgements --","")
group[1][1]=new Option("Acknowledgement","http://www.example.com")
group[2][0]=new Option("--Birthdays --","")
group[2][1]=new Option("1st Birthday","http://www.example.com")
group[2][2]=new Option("18th Birthday","http://www.example.com")
group[2][3]=new Option("21st Birthday","http://www.example.com")
group[3][0]=new Option("--Births --","")
group[3][1]=new Option("Births","http://www.example.com")
group[3][2]=new Option("Adoptions","http://www.example.com")
function redirect(x,elem){
temp = document.pressnotices[elem];
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}
function go(){
location=temp.options[temp.selectedIndex].value
}
//-->
</script>
</form>
<h3>2nd example</h3>
<form name="altexample">
Choose Category:
<select name="altcat1" id="altcat1" size="1" onChange="altredirect(this.options.selectedIndex,'altsubcat1')">
<option selected="selected">Please Select</option>
<option>Acknowledgements </option>
<option>Birthdays </option>
<option>Births & Adoptions </option>
</select>
</p>
<p align="left">Choose Subcategory:
<select name="altsubcat1" id="altsubcat1" size="1" onchange="altgo()">
<option value="">Select above first</option>
</select>
</p>
<script>
<!--
var altgroups=document.altexample.altcat1.options.length
var altgroup=new Array(altgroups)
for (i=0; i<altgroups; i++)
altgroup[i]=new Array()
altgroup[0][0]=new Option("Select above first","")
altgroup[1][0]=new Option("--Acknowledgements --","")
altgroup[1][1]=new Option("Acknowledgement","http://www.example.net")
altgroup[2][0]=new Option("--Birthdays --","")
altgroup[2][1]=new Option("1st Birthday","http://www.example.net")
altgroup[2][2]=new Option("18th Birthday","http://www.example.net")
altgroup[2][3]=new Option("21st Birthday","http://www.example.net")
altgroup[3][0]=new Option("--Births --","")
altgroup[3][1]=new Option("Births","http://www.example.net")
altgroup[3][2]=new Option("Adoptions","http://www.example.net")
function altredirect(x,elem){
alttemp = document.altexample[elem];
for (m=alttemp.options.length-1;m>0;m--)
alttemp.options[m]=null
for (i=0;i<group[x].length;i++){
alttemp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
alttemp.options[0].selected=true
}
function altgo(){
location=alttemp.options[alttemp.selectedIndex].value
}
//-->
</script>
</form>
With the second example linking to example.net instead of example.com as the first one does, both boxes lead me to example.com, no matter what. When I tried it with my content, they both led to the ad booking pages for the second publication rather than the one to each.
Bookmarks