var contenido,enfocar=false; 
var actualiza=(window.XMLHttpRequest) ? new XMLHttpRequest() : ((window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : false);
var mensajear=(window.XMLHttpRequest) ? new XMLHttpRequest() : ((window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : false);

window.onload=enviar;

function ajax(evento,index) {
resultado=true;
switch (evento.type) {
	case "focus":
		contenido=document.formulario.elements["nombre["+index+"]"].value;
		break;
	case "blur":
		document.formulario.elements["nombre["+index+"]"].className="ayuntamiento";
		actualiza.abort();
		if (document.getElementById("listado").style.visibility!="visible") {
			if (document.formulario.elements["nombre["+index+"]"].value!=contenido) document.formulario.elements["nombre["+index+"]"].value=document.formulario.elements["ciudad["+index+"]"].value="";
			}
		else {
			elementos=document.getElementById("listado").getElementsByTagName("P");
			for (i=0;i<elementos.length;++i) if (elementos[i].className=="cursor") break;
			document.formulario.elements["nombre["+index+"]"].value=(i==elementos.length) ? "" : elementos[i].innerHTML.substring(0,elementos[i].innerHTML.indexOf("<"));
			document.formulario.elements["ciudad["+index+"]"].value=(i==elementos.length) ? "" : elementos[i].id;
			document.getElementById("listado").style.visibility="hidden";
			if (enfocar) {
				enfocar=false;
				document.formulario.elements["nombre["+index+"]"].focus();
				document.formulario.elements["nombre["+index+"]"].value=document.formulario.elements["nombre["+index+"]"].value;
				}
			}
		break;
	case "mouseover":
		base=(evento.target) ? evento.target : evento.srcElement;
		if (base.tagName=="SPAN") base=base.parentNode;
		if (base.tagName=="P") {
			elementos=document.getElementById("listado").getElementsByTagName("P");
			if (base.className=="" && elementos.length>1) {
				for (i=0;i<elementos.length;++i) if (elementos[i].className=="cursor") break;
				elementos[i].className="";
				base.className="cursor";
				}
			}
		break;
	case "mousedown":
		enfocar=true;
		break;
	case "keydown":
		if (evento.keyCode==13 || evento.keyCode==38 || evento.keyCode==40) {
			elementos=document.getElementById("listado").getElementsByTagName("P");
			if (evento.keyCode==13) {
				if (document.getElementById("listado").style.visibility=="visible") {
					for (i=0;i<elementos.length;++i) if (elementos[i].className=="cursor") break;
					document.formulario.elements["nombre["+index+"]"].value=(i==elementos.length) ? "" : elementos[i].innerHTML.substring(0,elementos[i].innerHTML.indexOf("<"));
					document.formulario.elements["ciudad["+index+"]"].value=(i==elementos.length) ? "" : elementos[i].id;
					document.getElementById("listado").style.visibility="hidden";
					contenido=document.formulario.elements["nombre["+index+"]"].value;
					resultado=false;
					}
				}
			else {
				if (elementos.length>1 && document.getElementById("listado").style.visibility=="visible") {
					for (i=0;i<elementos.length;++i) if (elementos[i].className=="cursor") break;
					elementos[i].className="";
					elementos[((evento.keyCode==38) ? i+elementos.length-1 : i+elementos.length+1)%elementos.length].className="cursor";
					}
				}
			}
		break;
	case "keyup":
		if (!document.formulario.elements["nombre["+index+"]"].value) {
			document.getElementById("listado").style.visibility="hidden";
			document.formulario.elements["nombre["+index+"]"].className="ayuntamiento";
			actualiza.abort();
			}
		else {
			if (document.formulario.elements["nombre["+index+"]"].value!=contenido) {
				document.formulario.elements["nombre["+index+"]"].className="consultando";
				actualiza.open("POST","consultar.php?index="+index+"&texto="+escape(document.formulario.elements["nombre["+index+"]"].value)); 
				actualiza.onreadystatechange=mostrar;
				actualiza.send(null);
				}
			}
		break;
	}
return resultado;
}


function mostrar() {
if (actualiza.readyState==4 && actualiza.status==200) {
	if (actualiza.responseText) {
		resultado=actualiza.responseText.split(".-.");
		document.formulario.elements["nombre["+resultado[0]+"]"].className="ayuntamiento";
		document.getElementById("listado").innerHTML=resultado[2];
		document.getElementById("listado").style.top=parseInt(document.getElementById("deudas").offsetTop)+parseInt(document.formulario.elements["nombre["+resultado[0]+"]"].parentNode.parentNode.offsetTop)+parseInt(document.formulario.elements["nombre["+resultado[0]+"]"].parentNode.parentNode.clientHeight)+"px";
		document.getElementById("listado").style.visibility="visible";
		contenido=resultado[1];
		}
	}
}


function eliminar(elemento,tipo) {
switch (tipo) {
	case 1:
		if (confirm('¿Seguro que desea Eliminar esta Persona?')) {
			document.formulario.numero.value=elemento;
			document.formulario.accion.value=2;
			document.formulario.submit();
			}
		break;
	case 2:
		tabla=elemento.parentNode.parentNode.parentNode.parentNode;
		indice=elemento.parentNode.parentNode.rowIndex;
		document.formulario.borrar.value+="."+document.formulario.elements["origen["+indice+"]"].value;
		for (i=indice;i<document.formulario.index.value-1;++i) {
			tabla.rows[i].className=tabla.rows[i+1].className;
			document.formulario.elements["nombre["+i+"]"].value=document.formulario.elements["nombre["+(i+1)+"]"].value;
			document.formulario.elements["ciudad["+i+"]"].value=document.formulario.elements["ciudad["+(i+1)+"]"].value;
			document.formulario.elements["referencia["+i+"]"].value=document.formulario.elements["referencia["+(i+1)+"]"].value;
			document.formulario.elements["concepto["+i+"]"].value=document.formulario.elements["concepto["+(i+1)+"]"].value;
			document.formulario.elements["fecha["+i+"]"].value=document.formulario.elements["fecha["+(i+1)+"]"].value;
			document.formulario.elements["debito["+i+"]"].value=document.formulario.elements["debito["+(i+1)+"]"].value;
			document.formulario.elements["credito["+i+"]"].value=document.formulario.elements["credito["+(i+1)+"]"].value;
			document.formulario.elements["origen["+i+"]"].value=document.formulario.elements["origen["+(i+1)+"]"].value;
			document.formulario.elements["nombre["+i+"]"].readOnly=document.formulario.elements["nombre["+(i+1)+"]"].readOnly;
			document.formulario.elements["referencia["+i+"]"].readOnly=document.formulario.elements["referencia["+(i+1)+"]"].readOnly;
			document.formulario.elements["concepto["+i+"]"].readOnly=document.formulario.elements["concepto["+(i+1)+"]"].readOnly;
			document.formulario.elements["fecha["+i+"]"].readOnly=document.formulario.elements["fecha["+(i+1)+"]"].readOnly;
			document.formulario.elements["debito["+i+"]"].readOnly=document.formulario.elements["debito["+(i+1)+"]"].readOnly;
			document.formulario.elements["credito["+i+"]"].readOnly=document.formulario.elements["credito["+(i+1)+"]"].readOnly;
			}
		tabla.rows[i].className="";
		document.formulario.elements["nombre["+i+"]"].value="";
		document.formulario.elements["ciudad["+i+"]"].value="";
		document.formulario.elements["referencia["+i+"]"].value="";
		document.formulario.elements["concepto["+i+"]"].value="";
		document.formulario.elements["fecha["+i+"]"].value="";
		document.formulario.elements["debito["+i+"]"].value="0,00";
		document.formulario.elements["credito["+i+"]"].value="0,00";
		document.formulario.elements["origen["+i+"]"].value="0";
		document.formulario.elements["nombre["+i+"]"].readOnly=false;
		document.formulario.elements["referencia["+i+"]"].readOnly=false;
		document.formulario.elements["concepto["+i+"]"].readOnly=false;
		document.formulario.elements["fecha["+i+"]"].readOnly=false;
		document.formulario.elements["debito["+i+"]"].readOnly=false;
		document.formulario.elements["credito["+i+"]"].readOnly=false;
		break;
	}
}


function convertir(elemento,tipo) {
switch (tipo) {
	case 1:
		for (var i=0;i<elemento.value.length;++i) if (elemento.value.charAt(i)<"0" || elemento.value.charAt(i)>"9") break;
		fecha=(elemento.value.length==i && elemento.value.length>4) ? elemento.value.substr(0,2)+"/"+elemento.value.substr(2,2)+"/"+elemento.value.substr(4,4) : elemento.value;
		separa=(elemento.value.length==i) ? "/" : elemento.value.charAt(i);
		valores=fecha.split(separa);
		fecha=(valores.length!=3) ? "" : new Date((Number(valores[2])<30) ? Number(valores[2])+2000 : Number(valores[2]),Number(valores[1])-1,Number(valores[0]));
		elemento.value=(isNaN(fecha) || fecha=="") ? "" : rellenar(fecha.getDate(),2)+"/"+rellenar(fecha.getMonth()+1,2)+"/"+fecha.getFullYear();
		break;
	case 2:
		valor=elemento.value;
		valor=((isNaN(parseFloat(valor.toString().replace(",",".")))) ? "0" : (Math.round(parseFloat(valor.toString().replace(",","."))*100)/100).toString()).replace(".",",");
		if (valor.indexOf(",")<0) valor+=",00"; else if (valor.length-valor.indexOf(",")==2) valor+="0";
		for (var i=valor.indexOf(",")-3;i>(valor.charAt(0)=="-") ? 1 : 0;i-=3) valor=valor.substring(0,i)+"."+valor.substring(i);
		elemento.value=valor;
		break;
	case 3:
		if (elemento.value.indexOf(",")>0)	{
			elemento.value=(isNaN(parseFloat(elemento.value.replace(".","").replace(",",".")))) ? 0 : parseFloat(elemento.value.replace(".","").replace(",","."));
			elemento.select();
			}
		break;
	}
}


function rellenar(texto,largo) {
texto=texto.toString().substr(0,largo);
while (texto.length<largo) texto="0"+texto;
return texto;
}


function elegir(evento) {
base=(evento.target) ? evento.target.parentNode : evento.srcElement.parentNode;
if (base.parentNode.tagName=="TBODY" && base.tagName=="TR") {
	switch (evento.type) {
		case "mouseover":
			if (base.className.indexOf("cursor")<0) base.className+=" cursor";
			break;
		case "mouseout":
			base.className=base.className.replace(" cursor","");
			break;
		case "click":
			pagina=window.location.pathname.replace(/.*\//,"");
			location=pagina+((pagina=="personas.php") ? "?persona=" : "?deudas=")+base.className.replace(" actual","").replace(" cursor","");
			break;
		}
	}
}


function enviar() {
mensajear.open("POST","mensajes.php"); 
mensajear.onreadystatechange=comprobar;
mensajear.send(null);
}


function comprobar() {
if (mensajear.readyState==4 && mensajear.status==200) setTimeout("enviar()",(mensajear.responseText=="REPETIR") ? 0 : 10000);
}


function cambiar(elemento) {
document.datos.usuario.value="Usuario";
document.datos.clave.value="******";
document.datos.correo.value="Correo Electrónico";
modo=(document.datos.submit.value=="Entrar");
elemento.src=(modo) ? "images/acceder.gif" : "images/recuperar.gif";
elemento.title=(modo) ? "Acceder a la Web" : "Recordar Datos de Acceso";
document.datos.usuario.parentNode.style.display=(modo) ? "none" : "block";
document.datos.clave.parentNode.style.display=(modo) ? "none" : "block";
document.datos.correo.parentNode.style.display=(modo) ? "block" : "none";
document.datos.submit.value=(modo) ? "Clave" : "Entrar";
document.datos.action=(modo) ? "" : document.datos.path.value;
}


function revisar(formulario,campos) {
valor=false;
for (n=0;n<campos;n++) {
	switch (formulario.elements[n].type) {
		case "text":
		case "textarea":
			valor=(formulario.elements[n].value=="");
			break;
		case "password":
			valor=(formulario.elements[n].value=="");
			if (campos==5 && n>1) valor=false;
			break;
		case "select-one":
			valor=(formulario.elements[n].options[formulario.elements[n].selectedIndex].value=="");
			break;
		default:
			valor=false;
		}
	if (valor) {
		alert ("Introduzca la siguiente información");
		formulario.elements[n].focus();
		return false;
		}
	}
if (formulario.nif) {
	if (formulario.nif.value.length>0) {
		valor=formulario.nif.value.substr(0,1).replace(/x/i,"0").replace(/y/i,"1").replace(/z/i,"2")+formulario.nif.value.substr(1,7);
		for (i=0;i<valor.length;++i) {
			if (valor.charCodeAt(i)<48 || valor.charCodeAt(i)>57) {
				alert ("El NIF no es correcto");
				formulario.nif.select();
				return false;
				}
			}
		if ("TRWAGMYFPDXBNJZSQVHLCKE".charAt(valor%23)!=formulario.nif.value.substr(8,1).toUpperCase()) {
			alert ("El NIF no es correcto");
			formulario.nif.select();
			return false;
			}
		}
	}
return true;
}



