function nuevoAjax()
{ 
	/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
	lo que se puede copiar tal como esta aqui */
	var xmlhttp=false; 
	try 
	{ 
		// Creacion del objeto AJAX para navegadores no IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
	}
	catch(e)
	{ 
		try
		{ 
			// Creacion del objet AJAX para IE 
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch(E) { xmlhttp=false; }
	}
	if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 

	return xmlhttp; 
}

function eliminaEspacios(cadena)
{
	// Funcion equivalente a trim en PHP
	var x=0, y=cadena.length-1;
	while(cadena.charAt(x)==" ") x++;	
	while(cadena.charAt(y)==" ") y--;	
	return cadena.substr(x, y-x+1);
}

function validaIngreso(valor)
{
	/* Funcion encargada de validar lo ingresado por el usuario. Se devuelve TRUE en caso de ser 
	valido, FALSE en caso contrario */
	var reg=/(^[a-zA-Z0-9.@ ]{4,40}$)/;
	 return true;
	
}

function nuevoEvento(evento,id,des,galeria,idR)
{
	
	// Obtengo el div donde se mostraran las advertencias y errores
	var divMensaje=document.getElementById(idR);

	/* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
	distintas variables */	
	if(evento=="votar")
	{
		var input=document.getElementById(idR);
		// Boton presionado
		//var boton=document.getElementById("botonIngreso");
		// Valor ingresado por el usuario
		//var valor=input.value;
		
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="<img src='Images/loading.gif'>";
	}
	else
	{
		var input=document.getElementById("verificacion");
		// Boton presionado
		var boton=document.getElementById("botonVerificacion");
		// Valor ingresado por el usuario
		var valor=input.value;
		
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Comprobando...";
	}
	// Elimino espacios por delante y detras de lo ingresado por el usuario
	var valor=true;
	// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
	if(!valor) 
	{
		divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
	}
	else
	{
		// Deshabilito inputs y botones para evitar dobles ingresos
		//boton.disabled=true; 
		//input.disabled=true;
		input.innerHTML=textoAccion;
		
		// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
		var ajax=nuevoAjax();
		ajax.open("POST", "procesos/votar.php?id="+id+"&des="+des+"&galeria="+galeria+"&idVot="+idR, true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(evento+"="+valor);
		
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{
				// Habilito nuevamente botones e inputs
				
				// Muestro el mensaje enviado desde el servidor
				divMensaje.innerHTML=ajax.responseText;
			}
		}
	}
}

function formu(evento){
	
	
	// Obtengo el div donde se mostraran las advertencias y errores
	var divMensaje=document.getElementById("sesion");

	/* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
	distintas variables */	
	if(evento=="formulario")
	{
		var input=document.getElementById("sesion");
		// Boton presionado
		//var boton=document.getElementById("botonIngreso");
		// Valor ingresado por el usuario
		//var valor=input.value;
		
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="<img src='Images/loading.gif'>";
	}
	else
	{
		var input=document.getElementById("verificacion");
		// Boton presionado
		var boton=document.getElementById("botonVerificacion");
		// Valor ingresado por el usuario
		var valor=input.value;
		
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Comprobando...";
	}
	// Elimino espacios por delante y detras de lo ingresado por el usuario
	var valor=true;
	// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
	if(!valor) 
	{
		divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
	}
	else
	{
		// Deshabilito inputs y botones para evitar dobles ingresos
		//boton.disabled=true; 
		//input.disabled=true;
		input.innerHTML=textoAccion;
		
		// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
		var ajax=nuevoAjax();
		ajax.open("POST", "procesos/login.php", true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(evento+"="+valor);
		
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{
				// Habilito nuevamente botones e inputs
				
				// Muestro el mensaje enviado desde el servidor
				divMensaje.innerHTML=ajax.responseText;
			}
		}
	}

}

function vistas(idgaleria){
	
	
	// Obtengo el div donde se mostraran las advertencias y errores
	//var divMensaje=document.getElementById("sesion");
	var evento;
	evento='formulario';
	/* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
	distintas variables */	
	
	// Elimino espacios por delante y detras de lo ingresado por el usuario
	var valor=true;
	// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
	if(!valor) 
	{
		divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
	}
	else
	{
		// Deshabilito inputs y botones para evitar dobles ingresos
		//boton.disabled=true; 
		//input.disabled=true;
		//input.innerHTML=textoAccion;
		
		// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
		var ajax=nuevoAjax();
		ajax.open("POST", "procesos/vistas.php?idGaleria="+idgaleria, true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(evento+"="+valor);
		
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{
				// Habilito nuevamente botones e inputs
				
				// Muestro el mensaje enviado desde el servidor
				//divMensaje.innerHTML=ajax.responseText;
				return true;
			}
		}
	}

}

function inicioSesion(evento,email,clave){
		
	
	
	// Obtengo el div donde se mostraran las advertencias y errores
	var divMensaje=document.getElementById("sesion");

	/* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
	distintas variables */	
	if(evento=="registrar")
	{
		var input=document.getElementById("sesion");
		// Boton presionado
		//var boton=document.getElementById("botonIngreso");
		// Valor ingresado por el usuario
		//var valor=input.value;
		
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="<img src='Images/loading.gif'>";
	}
	else
	{
		var input=document.getElementById("verificacion");
		// Boton presionado
		var boton=document.getElementById("botonVerificacion");
		// Valor ingresado por el usuario
		var valor=input.value;
		
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Comprobando...";
	}
	// Elimino espacios por delante y detras de lo ingresado por el usuario
	var valor=true;
	// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
	if(!valor) 
	{
		divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
	}
	else
	{
		// Deshabilito inputs y botones para evitar dobles ingresos
		//boton.disabled=true; 
		//input.disabled=true;
		input.innerHTML=textoAccion;
		
		// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
		var ajax=nuevoAjax();
		ajax.open("POST", "procesos/validar.php?login="+email+"&clave="+clave, true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(evento+"="+valor);
		
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{
				// Habilito nuevamente botones e inputs
				
				// Muestro el mensaje enviado desde el servidor
				divMensaje.innerHTML=ajax.responseText;
			}
		}
	}


}

function cerrarSesion(evento){
		
	
	
	// Obtengo el div donde se mostraran las advertencias y errores
	var divMensaje=document.getElementById("sesion");

	/* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
	distintas variables */	
	if(evento=="cerrar")
	{
		var input=document.getElementById("sesion");
		// Boton presionado
		//var boton=document.getElementById("botonIngreso");
		// Valor ingresado por el usuario
		//var valor=input.value;
		
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="<img src='Images/loading.gif'>";
	}
	else
	{
		var input=document.getElementById("verificacion");
		// Boton presionado
		var boton=document.getElementById("botonVerificacion");
		// Valor ingresado por el usuario
		var valor=input.value;
		
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Comprobando...";
	}
	// Elimino espacios por delante y detras de lo ingresado por el usuario
	var valor=true;
	// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
	if(!valor) 
	{
		divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
	}
	else
	{
		// Deshabilito inputs y botones para evitar dobles ingresos
		//boton.disabled=true; 
		//input.disabled=true;
		input.innerHTML=textoAccion;
		
		// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
		var ajax=nuevoAjax();
		ajax.open("POST", "procesos/cerrar.php", true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(evento+"="+valor);
		
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{
				// Habilito nuevamente botones e inputs
				
				// Muestro el mensaje enviado desde el servidor
				divMensaje.innerHTML=ajax.responseText;
			}
		}
	}


}

function cancelar(evento){
	
	
	// Obtengo el div donde se mostraran las advertencias y errores
	var divMensaje=document.getElementById("sesion");

	/* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
	distintas variables */	
	if(evento=="cancela")
	{
		var input=document.getElementById("sesion");
		// Boton presionado
		//var boton=document.getElementById("botonIngreso");
		// Valor ingresado por el usuario
		//var valor=input.value;
		
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="<img src='Images/loading.gif'>";
	}
	else
	{
		var input=document.getElementById("verificacion");
		// Boton presionado
		var boton=document.getElementById("botonVerificacion");
		// Valor ingresado por el usuario
		var valor=input.value;
		
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Comprobando...";
	}
	// Elimino espacios por delante y detras de lo ingresado por el usuario
	var valor=true;
	// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
	if(!valor) 
	{
		divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
	}
	else
	{
		// Deshabilito inputs y botones para evitar dobles ingresos
		//boton.disabled=true; 
		//input.disabled=true;
		input.innerHTML=textoAccion;
		
		// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
		var ajax=nuevoAjax();
		ajax.open("POST", "procesos/cancelar.php", true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(evento+"="+valor);
		
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{
				// Habilito nuevamente botones e inputs
				
				// Muestro el mensaje enviado desde el servidor
				divMensaje.innerHTML=ajax.responseText;
			}
		}
	}

}


function cargaDatos(idDiv, idInput, idtips)
{
	var valorInput=document.getElementById(idInput).value;
	var divError=document.getElementById("error");
	
	// Elimino todos los espacios en blanco al principio y al final de la cadena
	valorInput=eliminaEspacios(valorInput);
	
	// Valido con una expresion regular el contenido de lo que el usuario ingresa
	var reg="hola";
	
	if(!reg) 
	{ 
		// Si hay error muestro el div que contiene el error
		divError.innerHTML="El texto ingresado no es v&aacute;lido"
		divError.style.display="block";
	}
	else
	{
		// Si no hay error oculto el div (por si se mostraba)
		//divError.style.display="none";
		mostrandoInput=false;
		document.getElementById(idDiv).innerHTML=valorInput;
		
		// Creo objeto AJAX y envio peticion al servidor
		//ajax.send(null);
		var ajax=nuevoAjax();		
		ajax.open("GET"," procesos/ingreso_sin_recargar_proceso.php?dato="+valorInput+"&actualizar="+idInput+"&idtip="+idtips, true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");		
		ajax.send(idDiv+"="+valorInput);
		
				ajax.onreadystatechange=function()
				{
					
					if (ajax.readyState==4)
					{				
					// Habilito nuevamente botones e inputs
						//input.value="";
						//boton.disabled=false; input.disabled=false;
						// Muestro el mensaje enviado desde el servidor
						divError.innerHTML=ajax.responseText;					
					}
				}
		
	}
}
				
var mostrandoInput=false;

function creaInput(idDiv, idInput, idtips)
{	
	/* Funcion encargada de cambiar el texto comun de la fila por un campo input que conserve
	el valor que tenia ese campo */
	var divError=document.getElementById("error");
	/* Solo mostramos el input si ya no esta siendo mostrado y si ademas el div del error no esta en pantalla */
	if(!mostrandoInput && divError.style.display!="block")
	{
		// Obtenemos el div contenedor del futuro input
		var divContenedor=document.getElementById(idDiv);
		// Creamos el input
		divContenedor.innerHTML="<input type='text' size='60' onBlur='cargaDatos(\""+idDiv+"\", \""+idInput+"\",\""+idtips+"\")' value='"+divContenedor.innerHTML+"' id='"+idInput+"' maxlength='100'>";
		// Colocamos el cursor en el input creado
		document.getElementById(idInput).focus();
		// Establecemos a true la variable para especificar que hay un input en pantalla y no se debe crear otro hasta que este se oculte
		mostrandoInput=true;
	}
}
function eliminarDatos(idDiv, idInput, idtips)
{ 
	//var valorInput=document.getElementById(idInput).value;
	valorInput=idInput;
	
	var divError=document.getElementById("error");
	
	// Elimino todos los espacios en blanco al principio y al final de la cadena
	//valorInput=eliminaEspacios(valorInput);
	
	// Valido con una expresion regular el contenido de lo que el usuario ingresa
	var reg="hola";
	
	if(!reg) 
	{ 
		// Si hay error muestro el div que contiene el error
		divError.innerHTML="El texto ingresado no es v&aacute;lido"
		divError.style.display="block";
	}
	else
	{
		// Si no hay error oculto el div (por si se mostraba)
		//divError.style.display="none";
		mostrandoInput=false;
		document.getElementById(idDiv).innerHTML=valorInput;
		
		// Creo objeto AJAX y envio peticion al servidor
		//ajax.send(null);
		var ajax=nuevoAjax();	

		ajax.open("GET"," procesos/ingreso_sin_recargar_proceso.php?dato="+valorInput+"&actualizar="+idInput+"&idtip="+idtips, true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");		
		ajax.send(idDiv+"="+valorInput);
		
				ajax.onreadystatechange=function()
				{
					
					if (ajax.readyState==4)
					{				
					// Habilito nuevamente botones e inputs
						//input.value="";
						//boton.disabled=false; input.disabled=false;
						// Muestro el mensaje enviado desde el servidor
						divError.innerHTML=ajax.responseText;					
					}
				}
		
	}
}
function eliminarTips(idDiv, idInput, idtips)
{ 
	//var valorInput=document.getElementById(idInput).value;
	valorInput=idInput;
	
	var divError=document.getElementById("error");
	
	// Elimino todos los espacios en blanco al principio y al final de la cadena
	//valorInput=eliminaEspacios(valorInput);
	
	// Valido con una expresion regular el contenido de lo que el usuario ingresa
	var reg="hola";
	
	if(!reg) 
	{ 
		// Si hay error muestro el div que contiene el error
		divError.innerHTML="El texto ingresado no es v&aacute;lido"
		divError.style.display="block";
	}
	else
	{
		// Si no hay error oculto el div (por si se mostraba)
		//divError.style.display="none";
		mostrandoInput=false;
		document.getElementById(idDiv).innerHTML=valorInput;
		
		// Creo objeto AJAX y envio peticion al servidor
		//ajax.send(null);
		var ajax=nuevoAjax();	

		ajax.open("GET"," procesos/ingreso_sin_recargar_proceso.php?dato="+valorInput+"&actualizar="+idInput+"&idtip="+idtips, true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");		
		ajax.send(idDiv+"="+valorInput);
		
				ajax.onreadystatechange=function()
				{
					
					if (ajax.readyState==4)
					{				
					// Habilito nuevamente botones e inputs
						//input.value="";
						//boton.disabled=false; input.disabled=false;
						// Muestro el mensaje enviado desde el servidor
						divError.innerHTML=ajax.responseText;					
					}
				}
		
	}
}
