//<![CDATA[

/****************************************************************************
* ajax.js        			                           	                    *
*                                                                           *
* Funciones relacionadas con Ajax											*
*                                                                           *
****************************************************************************/

	function getDataServer(url, vars)
	{
		 var xml = null;
		 try{
			 xml = new ActiveXObject("Microsoft.XMLHTTP");
		 }catch(expeption){
			 xml = new XMLHttpRequest();
		 }
		 //alert(url);
		 //alert(vars)
		 xml.open("GET",url + vars, false);
		 xml.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		 xml.send(null);
		 //alert(url);
		 if(xml.status == 404) alert("Url no valida");
		 return xml.responseText;
	}

	// funciones para validar campos
		function validarCampo(campo,valor_campo,url) //valida un solo campo
		{
			//ejemplo: campo=mail; valor_campo="informatica@dominio"; url: "http://dominio.include/php/servidor.php
			var error = getDataServer(url,"?"+campo+"="+valor_campo);
			return error;
		}
	
		function validarCampo2(campo1,campo2,valor_campo1,valor_campo2,url) //valida 2 campos
		{
			var error = getDataServer(url,"?"+campo1+"="+valor_campo1+"&"+campo2+"="+valor_campo2);
			//alert (error);
			return error;
		}
	// FIN funciones para validar campos

	// **************************************************************************************
	// crearLoginPassword(nombre,apellidos,login,password)
	// 		función que genera un login y password aleatorio y lo devuelve al campo indicado. El login lo crea a partir del nombre y apellidos si existe.
	// Autor: JR 02/10/08					
	// Ultima modificacion: 16/07/09 (JR) 
	// **************************************************************************************
			function crearLoginPassword(nombre,apellidos,login,password)
			{
				nombre = document.getElementById(nombre).value;
				apellidos = encodeURIComponent(document.getElementById(apellidos).value);
				var login_password = getDataServer("../servidor.php","?generarLogin=true&nombre="+nombre+"&apellidos="+apellidos);
				array_loginpassword = login_password.split(",");
				if (login!="")
				{
					document.getElementById(login).value = array_loginpassword[0];
				}
				document.getElementById(password).value = array_loginpassword[1];
			}

	// FIN crearLoginPassword ********************************************************

	// **************************************************************************************
	// obtenerSelect(tablaBD,filtro,valor_filtro,campos_devueltos,destinoSelect,opcion_otro,afecta_a,nivel)
	// 		función que rellena un select recuperando la información de una BD a partir de otro valor.
	// 		tablaBD = tabla de la que obtenemos los datos
	// 		filtro = campo sobre el que haremos el filtro (WHERE)
	// 		valor_filtro = valor del campo a filtrar
	// 		campos_devueltos = valor que queremos obtener (1er campo = value option | 2º campo = texto a mostrar en el option
	// 		order = orden sobre el que montaremos el select 
	// 		destinoSelect = select sobre el que añadimos las opciones 
	//      opcion_otro = añadimos una nueva opcion con el nombre y el id pasado
	//      afecta_a = lista de combos a los que afecta el combo marcado (para el tema de los bloqueos)
	//      nivel = nivel desde el que hacemos la llamada
	// Autor: JR 09/06/09					
	// Ultima modificacion: 24/07/09 (JR) 
	// **************************************************************************************
			function obtenerSelect(tablaBD,filtro,valor_filtro,campos_devueltos,order,destinoSelect,opcion_otro,afecta_a,nivel)
			{
				// bloqueamos y limpiamos los selects a los que afecta
					var array_afecta = afecta_a.split(",");
					for (valor in array_afecta)
					{
						id = array_afecta[valor];
						document.getElementById(id).innerHTML="";
						document.getElementById(id).disabled=true;
					}
				
				// establecemos la ruta a la funcion del servidor que vamos a utilizar
					var ruta_servidor=""
					var i=0;
					for (i;i<nivel;i++)
					{
						ruta_servidor = ruta_servidor + "../";
					}
				// FIN establecemos la ruta a la funcion del servidor que vamos a utilizar
				
				// obtenemos los datos del select
					var aleatorio=Math.random(); // para que IE refresque la caché.
					//alert(aleatorio);
					var opciones = getDataServer(ruta_servidor+"include/php/servidor.php","?tablaBD="+tablaBD+"&filtro="+filtro+"&valor_filtro="+valor_filtro+"&campos_devueltos="+campos_devueltos+"&order="+order+"&opcion_otro="+opcion_otro+"&rellenarSelect=true&aleatorio="+aleatorio);
					//alert(opciones);
					
					// esta opción es para que funcione también en IE
						// separamos los id de los valores
							var array_id_valores  = opciones.split("@");
						// obtenemos los distintos id's y valores	
							var array_id = array_id_valores[0].split("#")
							var array_valores = array_id_valores[1].split("#")
						// montamos de nuevo el select 
							for (var i=0; i<array_id.length;i++)
							{
								document.getElementById(destinoSelect).options[i] = new Option(array_valores[i],array_id[i]);
								
							}

				// rellenamos el select;
					//document.getElementById(destinoSelect).innerHTML = opciones; //así solamente funciona en firefox
				// activamos el select
					document.getElementById(destinoSelect).disabled = false;
			}
	// FIN obtenerSelect ********************************************************

	// **************************************************************************************
	// buscar_password_comunicacion(nif)
	// 		función que busca el nif en la tabla comunicaciones y si lo encuentra devuelve el password asociado.
	// Autor: JR 20/07/09					
	// Ultima modificacion: 20/07/09 (JR) 
	// **************************************************************************************
			function buscar_password_comunicacion(nif)
			{
				var password = getDataServer("../servidor.php","?buscar_password_comunicacion="+nif);
				return password;
			}

	// FIN buscar_password_comunicacion ********************************************************

	// **************************************************************************************
	// existeCampo(valor,valor_old,campo,campo_old,tablaBD)
	// 		función que busca si el valor de un campo dado ya existe en una tabla de la base.
	// valor: valor del campo a buscar
	// valor_old: valor antiguo: valor antiguo de ese campo 
	// campo: nombre identificador Ej: $_GET["existe_mail"]
	// campo_old: nombre identificador patra el valor antiguo
	// tablaBD: tabla de la BD en la que buscaremos ese valor
	// Autor: JR 10/12/09
	// Ultima modificacion: 10/12/09 (JR) 
	// **************************************************************************************
		function existeCampo(valor,valor_old,campo,campo_old,tablaBD)
		{
			if (valor!="")
			{
				var error = getDataServer("../servidor.php","?"+campo+"="+valor+"&"+campo_old+"="+valor_old+"&tablaBD="+tablaBD);
				//alert(error);
				return error;
			}
		}
	// FIN existeCampo ********************************************************

//]]> 