Hola:
Si no quieres hacer llamadas al server, tendrías que tener todas las regiones y ciudades en la misma página (no sé hasta que punto ahorrarías recursos, ya que la página se haría algo pesada...
)
Una idea sería tener todos los selects armados, aunque invisibles y deshabilitados dentro de elementos (capas o el que te convenga... de bloque o línea) que fácilmente sea creado desde tu fuente de datos (supongo que sería una base de datos)
Un ejemplo para el primer select, aspciarle un método mostrarRegion(cual)...
Estado:<br />
<select onchange="mostrarRegion(this.value)" name="Region" />
<option>Seleccione</option>
...
function mostrarRegion(cual) {
if (cual != undefined) {
cual.form["Region_" + cual].disabled = false;
document.getElementById("capa_Region_" + cual).style.display = "block";
}
}
Y las capas creadas sean del tipo:
<div id="capa_Region_Yucatan" >
<select name="Ciudad" onchange="mostrarCiudad(this.value)" >
...
Espero que te sirva.
Saludos