/*****************************************************************************/
/*                                2010 Shio2e                                */
/*                   JAVASCRIPT BUSCADOR :: FICHA OFERTAS                    */
/*****************************************************************************/

buscador.fichaOfertas = {
	// VARIABLES CONFIGURACION
	divFiltroHistorico 	: 'mfo_opciones',
	divPaginador 		: 'mfo_paginas',
	divComercio 		: 'mfo_tit_ficha_comercio',
	divEnlaceFicha 		: 'mfo_poblacion',

	anuncios_x_pag 		: 6,

	// VARIABLES INTERNAS
	anuncios 			: new Array(),
	filtroHistorico		: 'vigentes', // vigentes o anteriores
	id_comercio			: 0,
	comercio			: '',

	// FUNCIONES
	mostrar : function (id_comercio){
		this.id_comercio 		= id_comercio;
		this.comercio 			= '';
		this.filtroHistorico 	= 'vigentes';

		this.consulta();
	},

	consulta : function (dibujar){
		dibujar = typeof dibujar == 'undefined' ? 'todo' : 'justo';
		new Ajax.Request('/exec/ajax/ficha_comercio_ofertas.php', {
			parameters: {
				id_comercio: this.id_comercio,
				filtro_historico: this.filtroHistorico
			},
			onSuccess: function(respuesta) {
				var json = respuesta.responseText.evalJSON();

				// NOMBRE DEL COMERCIO
				this.comercio = json.comercio;
				$(this.divComercio).update(this.comercio);

				// ENLACE A FICHA DEL COMERCIO
				var enlace_ficha = '';
				enlace_ficha += '<a href="javascript:void(0);" onclick="javascript:buscador.abrir(\'ficha\', {id_comercio: '+this.id_comercio+'});" id="b_ficha" title="Ficha del comercio">Ficha del comercio</a>';
				$(this.divEnlaceFicha).update(enlace_ficha);

				// ANUNCIOS
				this.anuncios = new Array();
				json.anuncios.each(function (anuncio, posicion){
					anuncio.id_comercio = this.id_comercio;
					this.anuncios.push(new buscadorAnuncioClass(anuncio));
				}.bind(this));

				// PAGINADOR
				this.paginador.calcularPaginas(this.anuncios.length);

				if (dibujar == 'todo') {
					this.drawTodo();
				} else {
					this.drawPaginador();
					this.drawAnuncios();
				}

				$('modulo_ficha_ofertas').show();
			}.bind(this)
		});
	},

	abrir : function (id_anuncio) {
		var anuncio = this.getAnuncio(id_anuncio);
		tickerPublicidadClass.prototype.clic(id_anuncio);
		buscador.anuncios.abrir(anuncio);
	},

	getAnuncio : function (id_anuncio) {
		for (i=0; i<this.anuncios.length; i++)
			if (this.anuncios[i].id_anuncio == id_anuncio)
				return this.anuncios[i];
		return false;
	},

	drawTodo : function (){
		this.drawFiltroHistorico();
		this.drawPaginador();
		this.drawAnuncios();
	},

	drawFiltroHistorico : function (){
		var contenido;

		if (this.filtroHistorico == 'vigentes') {
			contenido = '<span>vigentes</span> <a href="javascript:void(0);" onclick="javascript:buscador.fichaOfertas.setFiltroHistorico(\'anteriores\');">anteriores</a>';
		} else {
			contenido = '<a href="javascript:void(0);" onclick="javascript:buscador.fichaOfertas.setFiltroHistorico(\'vigentes\');">vigentes</a> <span>anteriores</span>';
		}

		$(this.divFiltroHistorico).update(contenido);
	},

	setFiltroHistorico : function (nuevo){
		this.filtroHistorico = nuevo;
		this.drawFiltroHistorico();
		this.consulta('justo');
	},

	drawPaginador : function (){
		$(this.divPaginador).update(buscador.fichaOfertas.paginador.draw());
	},

	drawAnuncios : function (){
		var anuncios_escritos = 0, anuncios_mostrados = 0;
		var elemento, classname, anuncios;
		for (i=(buscador.fichaOfertas.paginador.pagActual-1)*this.anuncios_x_pag; i<buscador.fichaOfertas.paginador.pagActual*this.anuncios_x_pag; i++) {
			if (i<this.anuncios.length) {
				elemento = this.anuncios[i].getElementoFichaOfertas();
				classname = '';
				anuncios_mostrados++;
			} else {
				elemento = '';
				classname = 'vacio';
			}
			$('mfo_lista_pos_'+anuncios_escritos).update(elemento);
			$('mfo_lista_pos_'+anuncios_escritos).className = classname;
			anuncios_escritos++;
		}
		if (anuncios_mostrados == 0) {
			$('mfo_lista').hide();
			$('mfo_no_vigentes').hide();
			$('mfo_no_anteriores').hide();
			$('mfo_no_results').show();
			$('mfo_no_'+this.filtroHistorico).show();
		} else {
			$('mfo_lista').show();
			$('mfo_no_results').hide();
		}
	}
};

// PAGINADOR
buscador.fichaOfertas.paginador = {
	// VARIABLES CONFIGURACION
	img_al_on 		: '/img/buscador/a_l_on.gif',
	img_al_off 		: '/img/buscador/a_l_off.gif',
	img_ar_on 		: '/img/buscador/a_r_on.gif',
	img_ar_off 		: '/img/buscador/a_r_off.gif',
	anuncios_x_pag 	: buscador.fichaOfertas.anuncios_x_pag,

	// VARIABLES INTERNAS
	pagCantidad : 1,
	pagActual : 1,

	// FUNCIONES
	draw : function (){
		if (this.pagCantidad == 1)
			return '';

		var contenido = '';

		if (this.pagActual > 1) {
			contenido += '<a href="javascript:void(0);" onclick="javascript:buscador.fichaOfertas.paginador.prev();"><img src="'+this.img_al_on+'" alt ="<" /></a>';
		} else {
			contenido += '<img src="'+this.img_al_off+'" alt ="<" />';
		}

		contenido += '<span>P&aacute;g. <strong>'+this.pagActual+'</strong> de '+this.pagCantidad+'</span>';

		if (this.pagActual < this.pagCantidad) {
			contenido += '<a href="javascript:void(0);" onclick="javascript:buscador.fichaOfertas.paginador.next();"><img src="'+this.img_ar_on+'" alt =">" /></a>';
		} else {
			contenido += '<img src="'+this.img_ar_off+'" alt =">" />';
		}

		return contenido;
	},

	prev : function (){
		if (this.pagActual > 1)
			this.pagActual--;
		buscador.fichaOfertas.drawPaginador();
		buscador.fichaOfertas.drawAnuncios();
	},

	next : function (){
		if (this.pagActual < this.pagCantidad)
			this.pagActual++;
		buscador.fichaOfertas.drawPaginador();
		buscador.fichaOfertas.drawAnuncios();
	},

	calcularPaginas : function (num_anuncios){
		this.pagActual = 1;
		this.pagCantidad = Math.max(1, Math.ceil(num_anuncios/this.anuncios_x_pag));
	}
};
