/**
*	Funciones JavaScript para el listado de vacantes
*
* 	@package      Website Júlia
* 	@copyright    Website Júlia
* 	@author		Órbital
* 	@version		1.0
*/


// Objeto para realizar la llamada XMLRequest
var req;

/**
*	Crea un objeto XMLHttpRequest y se realiza la llamada a la URL que se la pasa.
*	El objeto se crea dependiendo del navegador utilizado
*/
function loadXMLDoc(url_xml) {
	req = false;
	
    // Comprobamos si existe el objeto XMLHttpRequest nativo
    if(window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		} catch(e) {
			req = false;
		}
		
		
    }
    // Si no existe, será un IE 
    else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
    
	if(req) {
		
		// Definimos la función que se llamará en cada cambio de estado
		req.onreadystatechange = cambioEstadoReq;
		
		// Y realizamos la llamada
		req.open("GET", url_xml, true);
		req.send("");
	}
}

// Función que se ejecuta cada vez que el objecto XMLRequest cambia de estado.
// Nosotros sólo la utilizaremos cuando el estado sea el 4 -> Finalizado
function cambioEstadoReq() {
	
    // comprobamos que el estado sea finalizado
    if (req.readyState == 4) {
    	
        // Y que la página se haya cargado correctamente
        if (req.status == 200) {

			var idLoc
			var descLoc

			// Capturamos del objeto XML de respuesta. 
			// Siempre vendrá una etiqueta padre "datos" con la acción que se envió (atributo "ac").
			var datos = req.responseXML.getElementsByTagName('datos').item(0);
			var accion = datos.getAttribute('ac')
			
			if ( accion == "L" ) {
				// LOCALIDADES DE UN PAIS
			
				// Capturamos del objeto XML de respuesta todas las etiquetas 'localitat'
	            var localitats = datos.getElementsByTagName('localitat');

				// Creamos una variable que contendrá el HTML del select de localidades
	            var htmlSelectLocs = "<select name=\"idLocalitat\" class=\"forms\" onChange=\"cambioLocalidad()\">";
	            htmlSelectLocs += "<option value=\"0\" selected>Totes</option>";
	            for(var i=0; i<localitats.length; i++) {
					idLoc = localitats[i].getAttribute('idLoc')
					descLoc = localitats[i].getElementsByTagName('desc').item(0).firstChild.data;
					htmlSelectLocs += "<option value=" + idLoc + ">" + descLoc + "</option>";
				}
	            htmlSelectLocs += "</select>";

				// Añadimos el código HTML al DIV	            
				document.getElementById("selLocalitats").innerHTML = htmlSelectLocs
			
			}
			else if ( accion == "P" ) {
				// PAIS DE LA LOCALIDAD SELECCIONADA
				
				// Recuperamos el id del pais...
				var idPais = datos.getElementsByTagName('pais').item(0).getAttribute('id');
				var selPais = document.formFiltro.idPais
				
				// ... y lo seleccionamos en el select 
				for( var i=0;i < selPais.options.length;i++ ) {
					if ( selPais.options[i].value == idPais ) {
						selPais.selectedIndex = i
						break;
					}
				}				
			}	
            
        } else {
            alert("XML Error:\n" + req.statusText);
        }
	}
}

/**
*	Función que se ejecuta cuando hay un cambio en el select de paises.
*	Realiza la llamada AJAX para recargar dinámicamente el select de localidades
*/
function cambioPais() {
	var idPaisSel = document.formFiltro.idPais.options[document.formFiltro.idPais.selectedIndex].value

	// Llamada que nos devolverá las localidades en XML
	loadXMLDoc("index.php?sc=122&ac=L&idPais=" + idPaisSel)
}

/**
*	Función que se ejecuta cuando hay un cambio en el select de localidades.
*	Realiza la llamada AJAX para seleccionar el pais de la localidad en el select de paises.
*/
function cambioLocalidad() {
	var idLocSel = document.formFiltro.idLocalitat.options[document.formFiltro.idLocalitat.selectedIndex].value

	// Llamada que nos devolverá las localidades en XML
	if ( idLocSel > 0 ) {
		loadXMLDoc("index.php?sc=122&ac=P&idLocalitat=" + idLocSel)
    }
}

/**
*	Asigna al hidden del formulario el identificativo del lloc de treball
*/
function inscribirse(idFeina) {
  var f = document.formInscripcion;
  f.IDLlocFeina.value=idFeina;
  f.submit()
}


/**
*	Lanzamos la búsqueda inicializando la paginación
*/
function buscar() {
	var f = document.formFiltro;
	f.nInicio.value=0;
	f.submit()
}
