var colorFondoItemUncheckedClaro = '<?php echo (lcstr_ColorFondoItemUncheckedClaro); ?>';
var colorFondoItemUncheckedOscuro = '<?php echo (lcstr_ColorFondoItemUncheckedOscuro); ?>';
var colorFondoItemCheckedClaro = '<?php echo (lcstr_ColorFondoItemCheckedClaro); ?>';
var colorFondoItemCheckedOscuro = '<?php echo (lcstr_ColorFondoItemCheckedOscuro); ?>';
var colorLetraItemUnchecked = '<?php echo (lcstr_ColorLetraItemUnchecked); ?>';
var colorLetraItemChecked = '<?php echo (lcstr_ColorLetraItemChecked); ?>';

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 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 fn_FormatearCaracteresEspeciales (cadena)
{
	var resultado = "";
	var i;
	
	if (cadena.length > 0)
	{
		for (i = 0; i < cadena.length; i++)
		{
			if (cadena.substr (i, 1) == "'")
				resultado = resultado + "\'";
			else
				resultado = resultado + cadena.substr (i, 1);
		}
	}
	
	return resultado;
}

function fn_CerrarVentana ()
{
	window.location.href = './index.php';
}

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;
}

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;
}

// Recibe una fecha en formato dd/mm/yyyy, y la devuelve agregándole los ceros a la izquierda que pudieran faltar.
function fn_AcomodarFecha (Fecha)
{
	var barra1 = Fecha.indexOf ("/");
	var barra2 = Fecha.indexOf ("/", barra1 + 1);

	var Dia = Fecha.substr (0, barra1);
	var Mes = Fecha.substr (barra1 + 1, barra2 - barra1 - 1);
	var Ano = Fecha.substr (barra2 + 1);

	while (Ano.length < 4)
		Ano = "0" + Ano;
		
	while (Mes.length < 2)
		Mes = "0" + Mes;
		
	while (Dia.length < 2)
		Dia = "0" + Dia;

	return Dia + "/" + Mes + "/" + Ano;
}

function fn_ValidarUnEmailValido (pvStr_Cadena)
{
	var arroba = pvStr_Cadena.indexOf ("@");
	var i;
	
	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) == ",")
			return false;
	}

	return true;
}

function fn_ValidarEmailValido (pvStr_Cadena, pvBol_Varios)
{
	var cadenaAcum = "";
	var i;
	
	if (trim (pvStr_Cadena) != "")
	{
		if (pvBol_Varios == false)
			return fn_ValidarUnEmailValido (trim (pvStr_Cadena));
		else
		{		
			for (i = 0; i < pvStr_Cadena.length; i++)
			{
				if (pvStr_Cadena.substr (i, 1) == ";")
				{					
					if (cadenaAcum == "")
						return false;
					
					if (fn_ValidarUnEmailValido (trim (cadenaAcum)) == false)
						return false;
						
					cadenaAcum = "";
				}
				else
					cadenaAcum = cadenaAcum + pvStr_Cadena.substr (i, 1);
			}
			
			if (cadenaAcum != "")
				return fn_ValidarUnEmailValido (trim (cadenaAcum));			
		}	
	}

	return true;
}

// Validamos que el string recibido como parámetro no contenga ninguna comilla simple.
function fn_ValidarComillasSimples (strTexto)
{
	var i;
	var caracter;

	for (i = 0; i < strTexto.length; i++)
	{
		caracter = strTexto.substr (i, 1);
		
		if (caracter == "'")
			return false;
	}
	
	return true;
}

// Validamos que el string recibido como parámetro no contenga ninguna comilla doble.
function fn_ValidarComillasDobles (strTexto)
{
	var i;
	var caracter;

	for (i = 0; i < strTexto.length; i++)
	{
		caracter = strTexto.substr (i, 1);
		
		if (caracter == String.fromCharCode (34))
			return false;
	}
	
	return true;
}

// 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;
}

// Validamos que el string recibido como parámetro no contenga ninguna coma.
function fn_ValidarComas (strTexto)
{
	var i;
	var caracter;

	for (i = 0; i < strTexto.length; i++)
	{
		caracter = strTexto.substr (i, 1);
		
		if (caracter == ",")
			return false;
	}
	
	return true;
}

// Validamos que el string recibido como parámetro no contenga ningún espacio.
function fn_ValidarEspacios (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_FechaValida (strFecha)
{
	var i;
	
	if (strFecha.length < 8)
		return false;

	for (i = 0; i < strFecha.length; i++)
		if (strFecha.substr (i, 1) != "0" && strFecha.substr (i, 1) != "1" && strFecha.substr (i, 1) != "2" && strFecha.substr (i, 1) != "3" && strFecha.substr (i, 1) != "4" && strFecha.substr (i, 1) != "5" && strFecha.substr (i, 1) != "6" && strFecha.substr (i, 1) != "7" && strFecha.substr (i, 1) != "8" && strFecha.substr (i, 1) != "9" && strFecha.substr (i, 1) != "/")
			return false;

	var barra1 = strFecha.indexOf ("/");
	var barra2 = strFecha.indexOf ("/", barra1 + 1);
	
	if (barra1 == -1 || barra2 == -1)
		return false;
		
	if (barra1 == 0)
		return false;

	if (barra2 - barra1 < 2)
		return false;

	if (barra2 == strFecha.length - 1)
		return false;

	var day = parseInt (strFecha.substr (0, barra1), 10);
	var month = parseInt (strFecha.substr (barra1 + 1, barra2 - barra1 - 1), 10);
	var year = parseInt (strFecha.substr (barra2 + 1), 10);

	if (day > 31 || day < 1)
		return false;
	
	if (month > 12 || month < 1)
		return false;
	
	if (year < 1900)
		return false;
		
	if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30)
		return false;
		
	if (month == 2 && day > 29)
		return false;

	var anioBisiesto = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
	
	if (month == 2 && day == 29 && !anioBisiesto)
		return false;

	return true;
}

// Validamos que el string recibido como parámetro sólo contenga letras y números.
function fn_ValidarSoloLetrasNumeros (strTexto)
{
	var i;
	var caracter;

	for (i = 0; i < strTexto.length; i++)
	{
		codigo = strTexto.charCodeAt (i);
		
		// Rangos válidos: 48-57, 65-90 y 97-122.
		
		if ((codigo < 48 || codigo > 57) && (codigo < 65 || codigo > 90) && (codigo < 97 || codigo > 122))
			return false;
	}
	
	return true;
}

function fn_Escape (cadena)
{
	var resultado = escape (cadena);
	
	while (resultado.indexOf ("+") >= 0)
		resultado = resultado.replace ("+", "%2B");

	return resultado;
}

function fn_QuitarSaltosDeLinea (cadena)
{
	var caracter1 = String.fromCharCode (10);
	var caracter2 = String.fromCharCode (13);
	var resultado = cadena;
	
	while (resultado.indexOf (caracter1) >= 0)
		resultado = resultado.replace (caracter1, "");

	while (resultado.indexOf (caracter2) >= 0)
		resultado = resultado.replace (caracter2, "");

	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;
}

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_ClickEnBanner (funcionJavascript, idBanner)
{
	// Registramos el click.
	fn_InvocarAjax_Post ("./registroclick_ajax.php", "idBanner=" + idBanner + "&funcionJavascript=" + funcionJavascript);
}

function fn_AbrirPopUpPisano (idBanner)
{
	var numWidth = 516;
	var numHeight = 265;
	var numLeft = ((screen.availWidth / 2) - (numWidth / 2));
	var numTop = ((screen.availHeight / 2) - (numHeight / 2));
	
	var nueva = window.open ("voucher-pisano.php?idBanner=" + idBanner, "_blank", "scrollbars=no,fullscreen=no,channelmode=no,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,width=" + numWidth + ",height=" + numHeight + ",left=" + numLeft + ",top=" + numTop);
	
	if (!nueva.opener) { nueva.opener = self; }
	if (window.focus) { nueva.focus (); }
}

function fn_ClickBannerCercano (idBanner)
{
	window.location.href = "./publicidad-zona-oeste.php";
}

function fn_ClickBannerFonobus (idBanner)
{
	var nueva = window.open ("http://www.fonobussrl.com.ar", "_blank");
	
	if (!nueva.opener) { nueva.opener = self; }
	if (window.focus) { nueva.focus (); }
}

function fn_ClickBannerFacilibro (idBanner)
{
	var nueva = window.open ("http://www.facilibro.com", "_blank");
	
	if (!nueva.opener) { nueva.opener = self; }
	if (window.focus) { nueva.focus (); }
}