function fn_EspaciosAGuiones (cadena)
{
	// También se eliminan los acentos.
	var resultado = "";
	var i;
	
	if (cadena.length > 0)
	{
		for (i = 0; i < cadena.length; i++)
		{
			if (cadena.substr (i, 1) == " ")
				resultado = resultado + "-";
			else if (cadena.substr (i, 1) == "á")
				resultado = resultado + "a";
			else if (cadena.substr (i, 1) == "é")
				resultado = resultado + "e";
			else if (cadena.substr (i, 1) == "í")
				resultado = resultado + "i";
			else if (cadena.substr (i, 1) == "ó")
				resultado = resultado + "o";
			else if (cadena.substr (i, 1) == "ú")
				resultado = resultado + "u";
			else
				resultado = resultado + cadena.substr (i, 1);
		}
	}
	
	return resultado;
}

function trim (cadena)
{
	var i;
	var cadena2 = cadena;
	var cadena3;
	
	if (cadena.length == 0) return cadena;
	
	for (i = 0; i < cadena.length; i++)
	{
		if (cadena.substr (i, 1) == ' ')
			cadena2 = cadena.substr (i + 1);
		else
			break;
	}

	if (cadena2.length == 0) return cadena2;
	
	cadena3 = cadena2;
	
	for (i = cadena2.length - 1; i >= 0; i--)
	{
		if (cadena2.substr (i, 1) == ' ')
			cadena3 = cadena2.substr (0, i);
		else
			break;
	}

	return cadena3;
}

// Validamos que el string recibido como parámetro no contenga ninguna barra invertida.
function fn_ValidarBarraInvertida (strTexto)
{
	var i;
	var caracter;

	for (i = 0; i < strTexto.length; i++)
	{
		caracter = strTexto.substr (i, 1);
		
		if (caracter == "\\")
			return false;
	}
	
	return true;
}

function fn_txt_Busqueda_KeyPress (evento)
{
	if (!evento)
		var evento = window.event;

	if (evento.keyCode == 13)
		fn_BusquedaGeneral_Buscar ();
}

function fn_BusquedaGeneral_Buscar ()
{
	var queryString = "";
	var txt_Busqueda = document.getElementById ("txt_BusquedaGeneral");

	if (trim (txt_Busqueda.value) != "")
	{
		if (fn_ValidarBarraInvertida (trim (txt_Busqueda.value)) == false)
		{
			alert ("No puede utilizarse la barra invertida en la búsqueda.");
			txt_Busqueda.focus ();
			return false;
		}
	}

	if (trim (txt_Busqueda.value) == "")
	{
		alert ("Ingrese un texto de búsqueda.");
		txt_Busqueda.focus ();
		return false;
	}
	
	if (trim (txt_Busqueda.value) != "")
	{
		if (queryString != "")
			queryString = queryString + "&";

		queryString = queryString + "Busqueda=" + trim (txt_Busqueda.value);
	}

	window.location.href = "./resultado.php?" + queryString;
}

function fn_ValidarUnEmailValido (pvStr_Cadena)
{
	var arroba = pvStr_Cadena.indexOf ("@");
	var i;
	
	pvStr_Cadena = trim (pvStr_Cadena);
	
	if (arroba == -1)
		return false;
		
	var arroba2 = pvStr_Cadena.indexOf ("@", arroba + 1);
	
	if (arroba2 != -1)
		return false;
	
	if (arroba == 0)
		return false;
	
	if (arroba == pvStr_Cadena.length - 1)
		return false;
	
	for (i = 0; i < pvStr_Cadena.length; i++)
	{
		if (pvStr_Cadena.substr (i, 1) == " " || pvStr_Cadena.substr (i, 1) == ";" || pvStr_Cadena.substr (i, 1) == "," || pvStr_Cadena.substr (i, 1) == String.fromCharCode (34) || pvStr_Cadena.substr (i, 1) == String.fromCharCode (39))
			return false;
	}

	return true;
}

function fn_QuitarBasuraExtremos (pvstr_Texto)
{
	var lvstr_Cadena = pvstr_Texto;
	var lvstr_Limpia = pvstr_Texto;
		
	if (lvstr_Cadena.length > 0)
	{
		for (i = 0; i < lvstr_Cadena.length; i++)
		{
			if (lvstr_Cadena.substr (i, 1) == " " || lvstr_Cadena.charCodeAt (i) == 10 || lvstr_Cadena.charCodeAt (i) == 13)
				lvstr_Limpia = lvstr_Cadena.substr (i + 1);
			else
				break;
		}
	
		lvstr_Cadena = lvstr_Limpia;
	
		for (i = lvstr_Cadena.length - 1; i >= 0; i--)
		{
			if (lvstr_Cadena.substr (i, 1) == " " || lvstr_Cadena.charCodeAt (i) == 10 || lvstr_Cadena.charCodeAt (i) == 13)
				lvstr_Limpia = lvstr_Cadena.substr (0, i);
			else
				break;
		}
	}
	
	return lvstr_Limpia;
}

function fn_InvocarAjax_Post (archivo, parametros)
{
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest ();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp = new ActiveXObject ("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp = new ActiveXObject ("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert ("Su navegador no soporta AJAX.");
				return false;
			}
		}
	}
	
	xmlHttp.open ("POST", archivo, true);	
	xmlHttp.onreadystatechange = fn_ProcesarRespuestaAjax;
	xmlHttp.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader ("Content-length", parametros.length);
	xmlHttp.setRequestHeader ("Connection", "close");
	xmlHttp.send (parametros);
}

function fn_ProcesarRespuestaAjax ()
{
	var resultado;
	
	if (xmlHttp.readyState == 4)
	{
		resultado = fn_QuitarBasuraExtremos (xmlHttp.responseText);
		eval (resultado);
	}
}

function fn_Escape (cadena)
{
	var resultado = escape (cadena);
	
	while (resultado.indexOf ("+") >= 0)
		resultado = resultado.replace ("+", "%2B");

	return resultado;
}

function fn_ColocarSaltosDeLineaHTML (cadena)
{
	var i = 0;
	var resultado = "";
	var caracter;
	
	if (cadena != "")
	{	
		do
		{
			caracter = cadena.substr (i, 1);
			
			if (caracter == String.fromCharCode (10))
				resultado = resultado + "<br>";
			else if (caracter != String.fromCharCode (13))
				resultado = resultado + caracter;
				
			i = i + 1;
		}
		while (i < cadena.length);
	}
	
	return resultado;
}
