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:
Code:
<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?