/* Localizaciones Extensa v1.0 */
/* ©2008 */
/* www.housetic.com */
/* Software licenced */

var ajax = new myAjax();

vPRO = new Array();
vZON = new Array();
vPOB = new Array();
vDIS = new Array();
var oProvincia;
var oZona;
var oPoblacion;
var oDistrito;
var sTipoDato = "";
function fnPedirLocalizacionesSimple(oClicado,tipoDatoAObtener,formulario,directorioDatos,mostrarTodos){
  ajax = new myAjax();
  oProvincia = eval("document." + formulario + ".provincia");
  oZona = eval("document." + formulario + ".zona");
  oPoblacion = eval("document." + formulario + ".poblacion");
  oDistrito = eval("document." + formulario + ".distrito");
  sTipoDato = tipoDatoAObtener;
  id = oClicado.options[oClicado.selectedIndex].value;

  //Si se clica en la zona "0-" se ha de cargar la provincia
  if ((id == "0-")&&(sTipoDato == "poblacion")) {
    sTipoDato = "zona";
    id = oProvincia.options[oProvincia.selectedIndex].value;
  }  

  ajax.setVar("idElemento", id); // recomended method of setting data to be parsed.
  ajax.setVar("tipo", sTipoDato);
  ajax.setVar("mostrarTodos",mostrarTodos);
  ajax.requestFile = directorioDatos + "getLocalizacionesExtensa.jsp";
  ajax.method = "GET";
  ajax.onCompletion = fnLocalizacionesSimpleCargada;
  ajax.onError = fnLocalizacionesSimpleError;
  ajax.runAJAX();
}
function fnLocalizacionesSimpleCargada(){
  if (ajax.responseStatus){
    var string = ajax.response;
    eval(string);
  
    if (sTipoDato != ""){
      switch (sTipoDato){
        case "provincia":
          //Obtener provincias del pais
          while (oProvincia.length) oProvincia.remove(0); 
          for(indx=0;(indx<vPRO.length);indx++){
            nombre = vPRO[indx][0];
            identif = vPRO[indx][1];
            addOpt(oProvincia, indx, nombre, identif);
          }
        case "zona": 
          //Obtener poblaciones y distritos
          while (oZona.length) oZona.remove(0); 
          for(indx=0;(indx<vZON.length);indx++){
            nombre = vZON[indx][0];
            identif = vZON[indx][1];
            addOpt(oZona, indx, nombre, identif);
          }
        case "poblacion": 
          //Obtener poblaciones y distritos
          while (oPoblacion.length) oPoblacion.remove(0); 
          for(indx=0;(indx<vPOB.length);indx++){
            nombre = vPOB[indx][0];
            identif = vPOB[indx][1];
            addOpt(oPoblacion, indx, nombre, identif);
          }
        case "distrito":
          //distritos
          while (oDistrito.length) oDistrito.remove(0); 
          for(indx=0;(indx<vDIS.length);indx++){
            nombre = vDIS[indx][0];
            identif = vDIS[indx][1];
            addOpt(oDistrito, indx, nombre, identif);
          }
          break;
      }  
    }
  }else{
    fnLocalizacionesSimpleError();    
  }
}
function fnLocalizacionesSimpleError(){
    ajax.runAJAX(); 
}
function addOpt(oCntrl, iPos, sTxt, sVal){
  var selOpcion=new Option(sTxt, sVal);
  eval(oCntrl.options[iPos]=selOpcion); 
}