I'm familiar with Javascript but not all that good at debugging it, so the first thing i do is try and isolate the code (normally using W3 School's Try-It editor)
Upon doing so and narrowing the contents down to this:
<html>
<head>
</head>
<body>
<script type="text/javascript">
function initStates(country) {
var states = {"":[""],"Australia":["ACT","NSW","NT","QLD","SA","TAS","VIC","WA"],"New Zealand":["NZ"]};
var cmbState = document.getElementsByName('selSiteState')[0];
removeOptions(cmbState);
//if (country != "") {
var arrStates = states[country];
if (arrStates && arrStates.length) {
var l = arrStates.length;
var i;
for (i = 0; i < l; i++) {
appendOption(cmbState, arrStates[i], arrStates[i]);
}
}
//}
}
function initRegions(state) {
var region = {"ACT":["ACT","Australia-wide","ACT Duntroon"],"NSW":["NSW Sydney","Australia-wide","NSW - Queanbeyan","NSW Hunter Valley","NSW Newcastle","NSW Central Coast","NSW Port Stephens"],"NT":["Australia-wide"],"NZ":["New Zealand"],"QLD":["QLD Brisbane","QLD Innisfail","QLD Townsville","QLD Misson Beach","QLD Cairns","QLD Toowoomba","Australia-wide"],"SA":["Australia-wide"],"TAS":["Australia-wide"],"VIC":["VIC Doreen","Vic - Melbourne","VIC Sale","VIC Point Lonsdale","VIC Frankston","Australia-wide","VIC Hastings"],"WA":["Australia-wide"]};
var cmbRegion = document.getElementsByName('selSiteRegion')[0];
removeOptions(cmbRegion);
var arrRegions = region[state];
if (arrRegions && arrRegions.length) {
var l = arrRegions.length;
var i;
for (i = 0; i < l; i++) {
appendOption(cmbRegion, arrRegions[i], arrRegions[i]);
}
}
}
function removeOptions(sel) {
var i;
for (i = sel.length - 1; i >= 0; i--) {
sel.remove(i);
}
}
function appendOption(sel, text, value) {
var opt = document.createElement('option');
opt.text = text;
opt.value = value;
try {
sel.add(opt, null); // standards compliant; doesn't work in IE
}
catch(ex) {
sel.add(opt); // IE only
}
}
</script>
<select name="selSiteCountry" class="small" onchange='initStates(document.getElementsByName("selSiteCountry")[0].options[document.getElementsByName("selSiteCountry")[0].selectedIndex].text);'>
<option value=""></option>
<option value="Australia">Australia</option><option value="New Zealand" selected>New Zealand</option> </select><br>
State:
<select name="selSiteState" class="small" onchange='initRegions(document.getElementsByName("selSiteState")[0].options[document.getElementsByName("selSiteState")[0].selectedIndex].text);'>
<option value=""></option>
<option value="NZ" selected>NZ</option> </select><br>
Region:
<select name="selSiteRegion" class="small">
<option value=""></option>
<option value="ACT" >ACT</option>
<option value="ACT Duntroon" >ACT Duntroon</option>
<option value="Australia-wide" >Australia-wide</option>
<option value="New Zealand" >New Zealand</option>
<option value="NSW - Queanbeyan" >NSW - Queanbeyan</option>
<option value="NSW Central Coast" >NSW Central Coast</option>
<option value="NSW Hunter Valley" >NSW Hunter Valley</option>
<option value="NSW Newcastle" >NSW Newcastle</option>
<option value="NSW Port Stephens" >NSW Port Stephens</option>
<option value="NSW Sydney" >NSW Sydney</option>
<option value="QLD Brisbane" >QLD Brisbane</option>
<option value="QLD Cairns" >QLD Cairns</option>
<option value="QLD Innisfail" >QLD Innisfail</option>
<option value="QLD Misson Beach" >QLD Misson Beach</option>
<option value="QLD Toowoomba" >QLD Toowoomba</option>
<option value="QLD Townsville" selected >QLD Townsville</option>
<option value="Vic - Melbourne" >Vic - Melbourne</option>
<option value="VIC Doreen" >VIC Doreen</option>
<option value="VIC Frankston" >VIC Frankston</option>
<option value="VIC Hastings" >VIC Hastings</option>
<option value="VIC Point Lonsdale" >VIC Point Lonsdale</option>
<option value="VIC Sale" >VIC Sale</option>
</select><br>
</body>
</html>
it runs, but in the page it came from, it can't find the methods 'initRegions' or 'initStates', IE gives an 'Object expected' error while firefox has the fractionally more helpful '[function-name] is not defined'.
Any specific help you guys could give would be great, but for future reference does anyone know a good site with a list of all the javascript errors and things that can cause them?