/**
 *	Variables y Funciones para la Marquesina
 */
var unaMarquesina;

/**
 *	Objeto que maneja el desplazamiento de la Marquesina
 */
var marquesina = function(idMarquesina)
{
	/**
	 *	Función para Establecer la Dirección de Desplazamiento hacia la Izquierda
	 */
	this.desplazarIzquierda = function()
	{
		this.direccion = 1;
	};
	/**
	 *	Función para Detener el Desplazamiento de la Marquesina
	 */
	this.detener = function()
	{
		this.direccion = 0;
	};
	/**
	 *	Función para Establecer la Dirección de Desplazamiento hacia la Derecha
	 */
	this.desplazarDerecha = function()
	{
		this.direccion = -1;
	};
	/**
	 *	Informa si la Marquesina se encuentra detenida
	 */
	this.isDetenida = function()
	{
		detenida = false;
		if (this.direccion == 0)
		{
			detenida = true;
		}
		return(detenida);
	}
	/**
	 *	Función para Desplazar la Marquesina
	 */
	this.mover = function()
	{
		if ((this.marquesina != null) && (this.marquesina != undefined))
		{
			this.posicionComercios1 -= this.direccion;
			this.posicionComercios2 -= this.direccion;
			if (this.direccion >= 0)
			{
				if (this.posicionComercios1 < (0 - this.anchoComercios))
				{
					this.posicionComercios1 = this.posicionComercios2 + this.anchoComercios;
				}
				if (this.posicionComercios2 < (0 - this.anchoComercios))
				{
					this.posicionComercios2 = this.posicionComercios1 + this.anchoComercios;
				}
			}
			else
			{
				if (this.posicionComercios1 > this.anchoComercios)
				{
					this.posicionComercios1 = this.posicionComercios2 - this.anchoComercios;
				}
				if (this.posicionComercios2 > this.anchoComercios)
				{
					this.posicionComercios2 = this.posicionComercios1 - this.anchoComercios;
				}
			}
	
			this.comercios1.style.left = this.posicionComercios1 + 'px';
			this.comercios2.style.left = this.posicionComercios2 + 'px';
		}
	};
	if (this.marquesina = document.getElementById(idMarquesina))
	{
		/**
		 *	Modifico los Estilos de la Marquesina
		 */
		this.marquesina.style.position = 'relative';
		this.marquesina.style.overflow = 'hidden';

		/**
		 *	Proceso los Comercios para Generar 2 Tiras de Imágenes y quito todo aquello que no sea una Imagen
		 */
		var comercios = this.marquesina.childNodes;
		var cantidadComercios = comercios.length;
		var arrayComercios = new Array();
		this.anchoComercios = 0;
		/**
		 *		Genero la Primera Tira de Imágenes
		 */
		var comercios1 = document.createElement('div');
		comercios1.setAttribute('id', idMarquesina + 'Comercios1');
		for (cont = (cantidadComercios - 1); cont >= 0; cont--)
		{
			if (comercios[cont].tagName == 'IMG')
			{
				this.anchoComercios += comercios[cont].clientWidth + 20;
				var nodo = comercios[cont];
				var clonNodo = nodo.cloneNode(true);
				clonNodo.style.cursor = 'pointer';
				arrayComercios[arrayComercios.length] = clonNodo;
			}
			this.marquesina.removeChild(comercios[cont]);
		}
		for (cont = arrayComercios.length - 1 ; cont >= 0 ; cont--)
		{
			comercios1.appendChild(arrayComercios[cont]);
		}
		/**
		 *		Establezo los Estilos de la Primera Tira de Imágenes
		 */
		comercios1.style.width = this.anchoComercios + 'px';
		comercios1.style.left = 0 + 'px';
		comercios1.style.position = 'absolute';
		/**
		 *		Agrego la Primera Tira de Imágenes a la Marquesina
		 */
		this.marquesina.appendChild(comercios1);
		this.comercios1 = document.getElementById(comercios1.getAttribute('id'));
		/**
		 *		Clono la Primera Tira para obtener la Segunda
		 */
		comercios2 = this.comercios1.cloneNode(true);
		comercios2.setAttribute('id', idMarquesina + 'Comercios2');
		/**
		 *		Establezco los Estilos para la Segunda Tira de Imágenes
		 */
		comercios2.style.left = this.anchoComercios + 'px';
		this.marquesina.appendChild(comercios2);
		this.comercios2 = document.getElementById(comercios2.getAttribute('id'));
		/**
		 *		Posiciono las dos Tiras de Imágenes
		 */
		this.posicionComercios1 = 0;
		this.posicionComercios2 = this.anchoComercios;
		/**
		 *		Establezado la dirección por defecto
		 */
		this.desplazarIzquierda();
	}
};

/**
 *	Inicio la Marquesina
 */
function iniciarMarquesina(idMarquesina)
{
	unaMarquesina = new marquesina(idMarquesina);
	intervaloMarquesina = setInterval(function() { unaMarquesina.mover(); }, 1)
}

/**
 *	Detiene la Marquesina
 */
function detenerMarquesina()
{
	try
	{
		unaMarquesina.detener();
	}
	catch (e) {}
}

/**
 *	Verifica la ubicación del Puntero del Mouse y modifica la dirección de la Marquesina en caso de ser necesario
 */
function verificarDireccionMarquesina(evento, forzar)
{
	try
	{
		if ((!unaMarquesina.isDetenida()) || (forzar))
		{
			anchoMarquesina = posicionCursor = 0;
			if (contenedorMarquesina = document.getElementById('comercios'))
			{
				anchoMarquesina = contenedorMarquesina.offsetWidth;
				elemento = contenedorMarquesina;
				while (elemento != null)
				{
					posicionCursor -= elemento.offsetLeft;
					elemento = elemento.offsetParent;
				}
			}

			if (evento.pageX)
			{
				posicionCursor += evento.pageX;
			}
			else if (evento.clientX)
			{
				posicionCursor += evento.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
			}

			if (posicionCursor > (anchoMarquesina / 2))
			{
				unaMarquesina.desplazarDerecha();
			}
			else
			{
				unaMarquesina.desplazarIzquierda();
			}
		}
	}
	catch (e) {}
}

/**
 *	Procesa el clic sobre la Imagen de la Marquesina y realiza la Búsqueda del Comercio
 */
function marquesinaBuscar(imagen)
{
	if (imagen.alt.length > 0)
	{
		if ((peticionesAJAX != null) && (peticionesAJAX != undefined))
		{
			parametros = 'busqueda=4&provincia=0&nombre=' + imagen.alt;
			peticionesAJAX.addPeticion(parametros, 'POST', true, 'mostrarMensajeBuscandoBeneficios', 'procesarResultadosMarquesina', 'mostrarMensajeBusquedaBeneficiosError');
		}
	}
}

/**
 *	Vacía y Oculta los Resultados de una Búsqueda a través de la Marquesina
 */
function ocultarResultadosMarquesina()
{
	if (divResultadosMarquesina = document.getElementById('resultados-marquesina'))
	{
		divResultadosMarquesina.innerHTML = '';
		divResultadosMarquesina.style.display = 'none';
	}
}

