﻿var peticion_http = null;
var seleccionado = null;
var seleccionadopob = null;
var timer = '';

function inicializa_xhr()
	{
	if (window.XMLHttpRequest)
		{ return new XMLHttpRequest(); }
	else if (window.ActiveXObject)
		{
		try
			{ return new ActiveXObjet("Msxml2.XMLHTTP"); }
		catch (e)
			{
			try
				{ return new ActiveXObject("Microsoft.XMLHTTP"); }
			catch (e)
				{ alert("Este navegador no soporta XMLHttpRequest"); }
			}
		}
	}

function vaciar_act()
	{
	var eTABLE = document.getElementById('Tabla_actividades');
	var j = eTABLE.rows.length;
	while (j > 0)   { eTABLE.deleteRow(j-1);  j--; }
	}

function body_onload()
	{
	document.getElementById('actividad').focus();
	}

function Validacion(form)
	{
	//Validar la actividad.
	if (form.actividad.value.length < 3)
		{
		alert('Por favor, indique que profesional necesita.');
		document.getElementById('actividad').focus();
		document.getElementById('actividad').select();
		return false;
		}

	//Validar la poblacion.
	if (form.poblacion.value.length < 3)
		{
		alert('Por favor, indique la población o codigo postal.');
		document.getElementById('poblacion').focus();
		document.getElementById('poblacion').select();
		return false;
		}	
	if (form.eliminapryp.value == 'S')
		{
		if (!confirm("Tiene un proyecto anterior activo, si continua lo eliminará. ¿Desea continuar de todas formas?") )
			{
			form.eliminapryp.value = 'N';
			}
		}
	}

//FUNCIONES REFERENTES A LAS ACTIVIDADES.

function procesaRespuesta_act()
	{
	if (peticion_http.readyState == 4)
		{
		if (peticion_http.status == 200)
			{
			var documento_xml = peticion_http.responseXML;
			seleccionado = null;
			var eTABLE = document.getElementById('Tabla_actividades');
			vaciar_act();
			if (documento_xml.getElementsByTagName('rdo').length > 0)
				visible_act();
			
			//METER UNA FILA 0 CON EL CONTENIDO DEL TEXTO ESCRITO HASTA EL MOMENTO
			elmText  = document.getElementById('actividad').value;
			elmTR    = eTABLE.insertRow(eTABLE.rows.length);
			elmTR.id = 0;
			elmTR.className = 'TR_cero';
			elmTD = elmTR.insertCell(0);
			elmTD.innerHTML = elmText;
			seleccionado = 0;
			
			i = 0;
			for (i=0; i<documento_xml.getElementsByTagName('rdo').length; i++)
				{
				var item = documento_xml.getElementsByTagName('rdo')[i];
				elmIdAct = document.createTextNode(item.getElementsByTagName('act')[0].firstChild.nodeValue);    //Recupera IIDACT
				elmIdAcS = document.createTextNode(item.getElementsByTagName('act')[0].firstChild.nodeValue);    //Recupera IIDACS
				elmText  = document.createTextNode(item.getElementsByTagName('text')[0].firstChild.nodeValue);   //Recupera Valor
				elmTR = eTABLE.insertRow(eTABLE.rows.length);     //Preparamos la Fila.
				elmTR.id = i+1;                                   //Asignamos el ID de Fila.
				elmTR.className = 'TR_no_seleccionada';           //Asignamos el Estilo a la Fila.
				elmTD = elmTR.insertCell(0);  //Preparamos la celda del la descripción de la Actividad.
				elmTD.appendChild(elmText);
				elmTD.className = 'TD_texto';
				elmTD2 = elmTR.insertCell(1); //Preparamos la celda del ID Actividad.
				elmTD2.appendChild(elmIdAct);
				elmTD2.className = 'TD_oculta';
				elmTD3 = elmTR.insertCell(2); //Preparamos la celda del ID Sinonimo.
				elmTD3.appendChild(elmIdAcS);
				elmTD3.className = 'TD_oculta';
				
				//EVENTO ONCLIC PARA TODAS MENOS LA CABECERA
				elmTR.onclick     = function() { mouseclick_act(this); }
				//EVENTO ONMOUSEOVER PARA TODAS LAS FILAS
				elmTR.onmouseover = function() { mouseover_act(this);  }
				}
			}
		}
	}

function activatimer(funcion)
	{
	if (timer == '')
		timer = setInterval(funcion, 500);
	}

function desactivatimer()
	{
	if (timer != '')
		{
		timer = clearInterval(timer);
		timer = '';
		}
	}

function act_key_down(event)
	{
	if      (event.keyCode == 38)  { activatimer('arriba_act()'); } //Flecha Arriba
	else if (event.keyCode == 40)  { activatimer('abajo_act()');  } //Flecha Abajo
	else if (event.keyCode ==  9)  //tabulador
			{
			var eTABLE = document.getElementById('Tabla_actividades');
			if (seleccionado > 0)
				{
				document.getElementById('actividad').value = eTABLE.rows[seleccionado].cells[0].innerHTML;
				document.getElementById('iidact').value    = eTABLE.rows[seleccionado].cells[1].innerHTML;
				document.getElementById('iidacs').value    = eTABLE.rows[seleccionado].cells[2].innerHTML;
				}
			ocultar_act();
			return false;
			}             
	}

function act_key_up(event)
	{
	if (event.keyCode == 27)       { ocultar_act(); } //Escape
	else if (event.keyCode == 38)  { arriba_act();  } //Flecha Arriba
	else if (event.keyCode == 40)  { abajo_act();   } //Flecha Abajo
	else                           { buscar_act();  }
	desactivatimer();
	}

function act_key_press(event)
	{
	var eTABLE = document.getElementById('Tabla_actividades');
	if (event.keyCode == 27) //Escape
		document.getElementById('actividad').value = eTABLE.rows[0].cells[0].innerHTML;
	else if (event.keyCode == 13) //Intro
		{
		if (seleccionado > 0)
			{
			document.getElementById('actividad').value = eTABLE.rows[seleccionado].cells[0].innerHTML;
			document.getElementById('iidact').value    = eTABLE.rows[seleccionado].cells[1].innerHTML;
			document.getElementById('iidacs').value    = eTABLE.rows[seleccionado].cells[2].innerHTML;
			}
		ocultar_act();
		document.getElementById('poblacion').focus();
		document.getElementById('poblacion').select();
		return false;
		}
	else
		act_onchange();
	}

function act_inc_key_press(event)
	{
	var eTABLE = document.getElementById('Tabla_actividades');
	if (event.keyCode == 27) //Escape
		document.getElementById('actividad').value = eTABLE.rows[0].cells[0].innerHTML;
	else if (event.keyCode == 13) //Intro
		{
		if (seleccionado > 0)
			{
			document.getElementById('actividad').value = eTABLE.rows[seleccionado].cells[0].innerHTML;
			document.getElementById('iidact').value    = eTABLE.rows[seleccionado].cells[1].innerHTML;
			document.getElementById('iidacs').value    = eTABLE.rows[seleccionado].cells[2].innerHTML;
			}
		ocultar_act();
		document.getElementById('encuentra').focus();
		return false;
		}
	else
		act_onchange();
	}

function buscar_act()
	{
	var texto = encodeURIComponent(document.getElementById('actividad').value);
	if (texto.length > 0)
		{
		peticion_http = inicializa_xhr();
		if (peticion_http)
			{
			if (document.getElementById('tipocli').value == 'particular')
				tipocli = 'PA';
			else 
				tipocli = 'PR';
			peticion_http.onreadystatechange = procesaRespuesta_act;
			peticion_http.open("GET", "buscador.php?texto="+texto+"&tipocli="+tipocli, true);
			peticion_http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			peticion_http.send(null);
			}
		}
	else
		ocultar_act();
	}

function visible_act()
	{
	var eTABLE = document.getElementById('Tabla_actividades');
	eTABLE.style.display = 'block';
	if (seleccionado == null)    
		seleccionado = 0;
	//  document.getElementById('Tabla_poblaciones').style.display = 'none';
	}

function ocultar_act()
	{
	var eTABLE = document.getElementById('Tabla_actividades');
	eTABLE.style.display = 'none';
	}

function abajo_act()
	{
	var eTABLE = document.getElementById('Tabla_actividades');
	if (eTABLE.rows.length > 0)
		{
		visible_act();
		if (seleccionado < (eTABLE.rows.length - 1))
			{
			desmarcar_act(seleccionado);
			seleccionado = seleccionado + 1;
			}
		else
			{
			desmarcar_act(seleccionado);
			seleccionado = 0;
			}
		marcar_act(seleccionado);
		}
	}

function arriba_act()
	{
	var eTABLE = document.getElementById('Tabla_actividades');
	if (eTABLE.rows.length > 0)
		{
		visible_act();
		if (seleccionado > 0)
			{
			desmarcar_act(seleccionado);
			seleccionado = seleccionado - 1;
			}
		else
			{
			desmarcar_act(seleccionado);
			seleccionado = eTABLE.rows.length - 1;
			}
		marcar_act(seleccionado);
		}
	}

function act_onchange()
	{
	document.getElementById('iidact').value = -1;
	document.getElementById('iidacs').value = -1;
	}

function desmarcar_act(seleccionado)
	{
	var eTABLE = document.getElementById('Tabla_actividades');
	for (var i = 1; i < eTABLE.rows.length; i++)
		eTABLE.rows[i].className = 'TR_no_seleccionada';
	}

function marcar_act(seleccionado)
	{
	var eTABLE = document.getElementById('Tabla_actividades');
	if ((seleccionado > 0) && (seleccionado < eTABLE.rows.length))
		eTABLE.rows[seleccionado].className = 'TR_seleccionada';
	}

function mouseclick_act(TR)
	{
	var eTABLE = document.getElementById('Tabla_actividades');
	document.getElementById('actividad').value = eTABLE.rows[seleccionado].cells[0].innerHTML;
	document.getElementById('iidact').value    = eTABLE.rows[seleccionado].cells[1].innerHTML;
	document.getElementById('iidacs').value    = eTABLE.rows[seleccionado].cells[2].innerHTML;
	document.getElementById('poblacion').focus();
	ocultar_act();
	}

function mouseover_act(TR)
	{
	var eTABLE = document.getElementById('Tabla_actividades');
	if ((seleccionado > 0) && (seleccionado < eTABLE.rows.length))
		desmarcar_act(seleccionado);
	seleccionado = parseInt(TR.id);
	marcar_act(seleccionado);
	}

// FUNCIONES PARA EL BUSCADOR DE POBLACIONES.
function pob_key_down(event)
	{
	if (event.keyCode ==  9)  //tabulador
			{
			var eTABLE = document.getElementById('Tabla_poblaciones');
			if (seleccionado > 0)
				{
				document.getElementById('poblacion').value    = eTABLE.rows[seleccionadopob].cells[0].innerHTML;
				document.getElementById('iidpob').value       = eTABLE.rows[seleccionadopob].cells[1].innerHTML;
				}
			ocultar_pob();
			return false;
			}  
	else if (event.keyCode == 38)  { activatimer('arriba_pob()'); } //Flecha Arriba
	else if (event.keyCode == 40)  { activatimer('abajo_pob()');  } //Flecha Abajo
	}

function pob_key_up(event)
	{
	if      (event.keyCode == 27)  { ocultar_pob();    }  //Escape
	else if (event.keyCode == 38)  { arriba_pob();     }  //Flecha Arriba
	else if (event.keyCode == 40)  { abajo_pob();      }  //Flecha Abajo
	else                           { buscar_pob();     }
	desactivatimer();
	}

function pob_key_press(event)
	{
	var eTABLE = document.getElementById('Tabla_poblaciones');
	if (event.keyCode == 27) //Escape
		document.getElementById('poblacion').value = eTABLE.rows[0].cells[0].innerHTML;
	else if (event.keyCode == 13) //Intro
		{
		if (seleccionado > 0)
			{
			document.getElementById('poblacion').value    = eTABLE.rows[seleccionadopob].cells[0].innerHTML;
			document.getElementById('iidpob').value       = eTABLE.rows[seleccionadopob].cells[1].innerHTML;
			}
		ocultar_pob();
		document.getElementById('encuentra').focus();
		return false;
		}
	else
		pob_onchange();
	}

function buscar_pob()
	{
	var texto = encodeURIComponent(document.getElementById('poblacion').value);
	if (texto.length > 0)
		{
		peticion_http = inicializa_xhr();
		if (peticion_http)
			{
			peticion_http.onreadystatechange = procesaRespuesta_pob;
			peticion_http.open("GET", "buscador_pob.php?texto="+texto, true);
			peticion_http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			peticion_http.send(null);
			}
		}
	else
		ocultar_pob();
	}

function visible_pob()
	{
	var eTABLE = document.getElementById('Tabla_poblaciones');
	eTABLE.style.display = 'block';
	if (seleccionadopob == null)
		seleccionadopob = 0;
	
	document.getElementById('Tabla_actividades').style.display = 'none';
	}

function ocultar_pob()
	{
	var eTABLE = document.getElementById('Tabla_poblaciones');
	eTABLE.style.display = 'none';
	}

function abajo_pob()
	{
	var eTABLE = document.getElementById('Tabla_poblaciones');
	
	if (eTABLE.rows.length > 0)
		{
		visible_pob();
		if (seleccionadopob < (eTABLE.rows.length - 1))
			{
			desmarcar_pob(seleccionadopob);
			seleccionadopob = seleccionadopob + 1;
			}
		else
			{
			desmarcar_pob(seleccionadopob);
			seleccionadopob = 0;
			}
		marcar_pob(seleccionadopob);
		}
	}

function arriba_pob()
	{
	var eTABLE = document.getElementById('Tabla_poblaciones');
	
	if (eTABLE.rows.length > 0)
		{
		visible_pob();
		if (seleccionadopob > 0)
			{
			desmarcar_pob(seleccionadopob);
			seleccionadopob = seleccionadopob - 1;
			}
		else
			{
			desmarcar_pob(seleccionadopob);
			seleccionadopob = eTABLE.rows.length - 1;
			}
		marcar_pob(seleccionadopob);
		}
	}

function pob_onchange()
	{
	document.getElementById('iidpob').value = -1;
	}

function desmarcar_pob()
	{
	var eTABLE = document.getElementById('Tabla_poblaciones');
	
	for (var i = 1; i < eTABLE.rows.length; i++)
		eTABLE.rows[i].className = 'TR_no_seleccionada';
	}

function marcar_pob(seleccionadopob)
	{
	var eTABLE = document.getElementById('Tabla_poblaciones');
	if ((seleccionadopob > 0) && (seleccionadopob < eTABLE.rows.length))
		eTABLE.rows[seleccionadopob].className = 'TR_seleccionada';
	}

function vaciar_pob()
	{
	var eTABLE = document.getElementById('Tabla_poblaciones');
	var j = eTABLE.rows.length;
	while (j > 0)   { eTABLE.deleteRow(j-1);  j--; }
	}

function mouseclick_pob(TR)
	{
	var eTABLE = document.getElementById('Tabla_poblaciones');
	
	document.getElementById('poblacion').value = eTABLE.rows[seleccionadopob].cells[0].innerHTML;
	document.getElementById('iidpob').value    = eTABLE.rows[seleccionadopob].cells[1].innerHTML;
	//  document.getElementById('poblacion').focus();
	ocultar_pob();
	}

function mouseover_pob(TR)
	{
	var eTABLE = document.getElementById('Tabla_poblaciones');
	
	if ((seleccionadopob > 0) && (seleccionadopob < eTABLE.rows.length))
		desmarcar_pob(seleccionadopob);
	
	seleccionadopob = parseInt(TR.id);
	marcar_pob(seleccionadopob);
	}

function procesaRespuesta_pob()
	{
	if (peticion_http.readyState == 4)
		{
		if (peticion_http.status == 200)
			{
			var documento_xml = peticion_http.responseXML;
			seleccionadopob = null;
			var eTABLE = document.getElementById('Tabla_poblaciones');
			vaciar_pob();
			if (documento_xml.getElementsByTagName('rdo').length > 0)
				{ visible_pob(); }
			else
				{ ocultar_pob(); }

			//METER UNA FILA 0 CON EL CONTENIDO DEL TEXTO ESCRITO HASTA EL MOMENTO
			elmText  = document.getElementById('poblacion').value;
			elmTR    = eTABLE.insertRow(eTABLE.rows.length);
			elmTR.id = 0;
			elmTR.className = 'TR_cero';
			elmTD = elmTR.insertCell(0);
			elmTD.innerHTML = elmText;
			seleccionadopob = 0;
			
			i = 0;
			for (i=0; i<documento_xml.getElementsByTagName('rdo').length; i++)
				{
				var item = documento_xml.getElementsByTagName('rdo')[i];
				elmIdPob = document.createTextNode(item.getElementsByTagName('pob')[0].firstChild.nodeValue);    //Recupera IIDPOB
				elmText  = document.createTextNode(item.getElementsByTagName('text')[0].firstChild.nodeValue);   //Recupera NombrePob.
				elmTR = eTABLE.insertRow(eTABLE.rows.length);     //Preparamos la Fila.
				elmTR.id = i+1;                                   //Asignamos el ID de Fila.
				elmTR.className = 'TR_no_seleccionada';           //Asignamos el Estilo a la Fila.
				elmTD = elmTR.insertCell(0);  //Preparamos la celda del la descripción de la Actividad.
				elmTD.appendChild(elmText);
				elmTD.className = 'TD_texto';
				elmTD2 = elmTR.insertCell(1); //Preparamos la celda del ID Actividad.
				elmTD2.className = 'TD_oculta';
				elmTD2.appendChild(elmIdPob);
				
				//EVENTO ONCLIC PARA TODAS MENOS LA CABECERA
				elmTR.onclick     = function() { mouseclick_pob(this); }
				//EVENTO ONMOUSEOVER PARA TODAS LAS FILAS
				elmTR.onmouseover = function() { mouseover_pob(this);  }
				}
			}
		}
	}

