// CLASS INDICADORES
/*************************************************************************
Classe		: 	indicadores()
Descriçao	:	
**************************************************************************/
function indicadores() {
	// VARIÁVEIS
		this.id_grafico 	= 0;
		this.val_faixa		= ''; // Mes / Semana
		this.val_submercado = ''; // SubMercado
		this.urlPadrao		= ''; // URL AJAX
		this.destino		= ''; // Home, Interno
		this.pg_atual		= ''; // Página Atual
		this.max_pages		= ''; // Ultima página
		//this.label_anterior	= ''; // Anterior
		//this.label_proximo	= ''; // Próximo
		this.btnAnterior 	= 'btnAnterior';			
		this.btnProximo 	= 'btnProximo';
		this.btnHistorico	= 'btnHistorico';
		this.divPageStatus	= 'divPageStatus';
		this.debug			= false;
		
		// URL PADRAO
		// + destino
		// + faixa
		// + submercado
		// se for contar = &contarPgs=sim
		//urlPadrao = arrGraficos[indice_grafico][1]+"?destino="+destino_grafico;
		
	// CONFIGURAÇÕES DOS GRÁFICOS
	this.combos = Array(
		Array("PLD","aba_PLD","/graficos/pld.php","<< Proxima","Anterior>>",
			  Array(
					Array("semana","Semanal"),
					Array("mes","Mensal")
					),
			  Array(
					Array("","Todos"),
					Array("N","N"),
					Array("NE","NE"),
					Array("S","S"),
					Array("SE/CO","SE/CO")
					),
			  false
		),
		Array("CCD","aba_CCD","/graficos/ccd.php","<< Proxima","Anterior >>",
			  Array(
					Array("semana","Semanal"),
					Array("mes","Mensal")
					),
			  Array(
					Array("","Todos"),
					Array("N","N"),
					Array("NE","NE"),
					Array("S","S"),
					Array("SE","SE"),
					Array("SIN","SIN")
					),
			  false
		),
		Array("Reserv","aba_RESERV","/graficos/reserva.php","<< Proxima","Anterior >>",
			  Array(
					Array("semana","Semanal"),
					Array("mes","Mensal")
					),
			  Array(
					Array("","Todos"),
					Array("N","N"),
					Array("NE","NE"),
					Array("S","S"),
					Array("SE","SE")
					),
			  false
		),
		Array("Aflu","aba_AFLU","/graficos/afluencia.php","<< Proxima","Anterior >>",
			  Array(
					Array("semana","Semanal"),
					Array("mes","Mensal")
					),
			  Array(
					Array("","Todos"),
					Array("N","N"),
					Array("NE","NE"),
					Array("S","S"),
					Array("SE","SE")
					),
			  false
		)
	); // FIM ARRAY COMBOS
	

	/*************************************************************************
	Funçao		: 	iniciar
	Descriçao	:	Seta ID , destino e valores iniciais
	**************************************************************************/
	this.iniciar = function(id_grafico,destino) {
		// Identificação do Gráfico
			this.id_grafico = id_grafico;
		// Destino
			this.destino 	= destino;
		// Faixa
			this.val_faixa	= $('#faixa').val();
		// SubMercado
			this.val_submercado = $('#submercado').val();
		// URL Padrão
			this.urlPadrao = this.combos[id_grafico][2]+"?destino="+this.destino+"&faixa="+this.val_faixa+"&submercado="+this.val_submercado;
		// Label Anterior
			if ($(this.btnAnterior)) {
				$(this.btnAnterior).value = this.combos[this.id_grafico][3];
			}
		// Label Próximo
			if ($(this.btnProximo)) {
				$(this.btnProximo).value = this.combos[this.id_grafico][4];
			}
			
		// Habilitar abas
			this.abas();
		// Limpar Combos
			this.removerCombo();
		// Adicionar Opções	
			this.adicionarCombo();
		// Captura Max
			this.contarMax();
	} // iniciar


	/*************************************************************************
	Funçao		: 	contarMax
	Descriçao	:	Contar Máx Pages
	**************************************************************************/
	this.contarMax = function() {
		// Método de Envio
		$.post(this.urlPadrao+"&contarPgs=sim",'',
			function(data) {
				// MAX PAGES = PÁGINA ATUAL
				grafico.pg_atual = grafico.max_pages = Number(data);
				// CHAMA GRÁFICO
				grafico.abrirGrafico();
				// FECHA HISTÓRICO
			 	grafico.historicoFechar();
			});
	} // contarMax

	/*************************************************************************
	Funçao		: 	abas
	Descriçao	:	Habilita Aba Ativa
	**************************************************************************/
	this.abas = function() {
		for (var i=0; i<this.combos.length; i++ ) {
			if (i == this.id_grafico) {	$('#'+this.combos[i][1]).addClass('ativa');	}
			else {	$('#'+this.combos[i][1]).removeClass('ativa');	}
		} // for
	} // abas

	/*************************************************************************
	Funçao		: 	findSWF
	Descriçao	:	Procura Obj do Gráfico
	**************************************************************************/
	this.findSWF = function(movieName) {
		if (navigator.appName.indexOf("Microsoft")!= -1) { return window["ie_" + movieName]; } 
		else { return document[movieName]; }
	} // findSWF


	/*************************************************************************
	Funçao		: 	aplicarFiltro
	Descriçao	:	Aplicar Filtro de Faixa e Submercado
	**************************************************************************/
	this.aplicarFiltro = function() {
		// Setar Valores
			// Faixa
				this.val_faixa	= $('#faixa').val();
			// SubMercado
				this.val_submercado = $('#submercado').val();
			// URL Padrão
				this.urlPadrao = this.combos[this.id_grafico][2]+"?destino="+this.destino+"&faixa="+this.val_faixa+"&submercado="+this.val_submercado;
			// Captura Max
				this.contarMax();
	} // aplicarFiltro
	
	
	/*************************************************************************
	Funçao		: 	botoes
	Descriçao	:	Controla Botões
	**************************************************************************/
	this.botoes = function() {
		if ($(this.btnAnterior)) {	$(this.btnAnterior).show(); }
		if ($(this.btnProximo)) {	$(this.btnProximo).show(); }
		
		if (this.pg_atual == 1) { 
			if ($(this.btnProximo)) {	$(this.btnProximo).hide();	}
		}
		if (this.max_pages == this.pg_atual) {
			if ($(this.btnAnterior)) {	$(this.btnAnterior).hide(); }
		}	
	} // botoes

	
	/*************************************************************************
	Funçao		: 	abrirGrafico
	Descriçao	:	Abrir gráfico
	**************************************************************************/
	this.abrirGrafico = function() {
		$('#'+this.divPageStatus).html(this.pg_atual+"/"+this.max_pages);
		var urlGrafico = this.urlPadrao+"&page="+this.pg_atual;
		//alert('URL Completa:'+urlGrafico);
		var tmp = this.findSWF("chart");
		
		if (this.debug) { 
			alert('abrir:'+urlGrafico);
			$('#historico').html('pagina:'+urlGrafico);
		}
		// CHAMAR O GRÁFICO
		x = tmp.reload(urlGrafico);
		
		// CONTROLE DE BOTÕES
		this.botoes();
	} //abrirGrafico
	
	/*************************************************************************
	Funçao		: 	removerCombo
	Descriçao	:	Limpar conteudo dos Combos
	**************************************************************************/
	this.removerCombo = function() {
		$('#faixa').html("<option value=''>Aguarde...</option>");
		$('#submercado').html("<option value=''>Aguarde...</option>");
	} // removerCombo


	/*************************************************************************
	Funçao		: 	adicionarCombo
	Descriçao	:	Adicionar Valores aos Combos e chamar o gráfico
	**************************************************************************/
	this.adicionarCombo = function() {
		// SÓ PARA INTERNA
		if (this.destino == 'interna') {
			// COMBO FAIXA
			var faixas = "";
			jQuery.each(this.combos[this.id_grafico][5], function() {
				if (this[0] == this.val_faixa) { var fSel= 'Selected'; } else { var fSel= ''; }
				faixas+='<option value="'+this[0]+'" '+fSel+'>'+this[1]+'</option>';
			});
			$('#faixa').html(faixas);


			// COMBO SUBMERCADOS
			var submercados = "";
			jQuery.each(this.combos[this.id_grafico][6], function() {
				if (this[0] == this.val_submercado) { var sSel= 'Selected'; } else { var sSel= ''; }
				submercados+='<option value="'+this[0]+'" '+sSel+'>'+this[1]+'</option>';
			});
			$('#submercado').html(submercados);

		} // interna
		// Botão Histórico
			if (this.combos[this.id_grafico][7]) {	$(this.btnHistorico).show();	}
			else { $(this.btnHistorico).hide(); }
	} // adicionarCombo
	
	/*************************************************************************
	Funçao		: 	paginaGrafico(pg)
	Descriçao	:	Faz Paginaçao nos Indicadores
	**************************************************************************/
	this.paginaGrafico = function(pg) {
		var novo = this.pg_atual + Number((pg));
		// Se Já Passou do RANGE não Faz nada
		if ((novo < 1) || (novo > this.max_pages)) { }
		// PODE
		else {
			this.pg_atual = novo;
			// Carrega Gráfico
			this.abrirGrafico();
		} // PODE
	} // fim Paginação
	
	
	/*************************************************************************
	Funçao		: 	historicoFechar()
	Descriçao	:	Fechar historico
	**************************************************************************/
	this.historicoFechar = function() {
		$("#divHistorico .alvoHistorico").empty();
		$("#divHistorico").hide();
		$("#btnHistorico").show();
	}
	
	
	/*************************************************************************
	Funçao		: 	historico()
	Descriçao	:	Mostrar historico
	**************************************************************************/
	this.historico = function() {
		$("#divHistorico").show();
		$("#btnHistorico").hide();
		// Carregando
		$("#divHistorico .alvoHistorico").ajaxStart(function(){	$(this).html("<img src='/imgs/loading.gif'>&nbsp;Carregando...");	});
		// Qdo Parar Ajax
		$("#divHistorico .alvoHistorico").ajaxStop(function(){		});
		
		// Método de Envio
		$.post("graficos/historico.php?acao=historico&indicador="+this.combos[this.id_grafico][0]+"&faixa="+this.val_faixa,'',
			function(data) {
				$("#divHistorico .alvoHistorico").empty().html(data);
			});
	} // fim historico

} // fim classe
// !/ class indicadores
