/**
 * Para utilizar este arquivo, cada página deverá setar as seguintes configurações do bindPaginacao:
 * bindPaginacao['load'] - Nele, você coloca a função que vai preencher os dados no formato HTML desejado.
 */

var bindPaginacao = {
	url:			"",//URL que será passada para o dojo fazer a busca.
	urlBusca:		"",//URL para cada caso de busca, exemplo: comentario de pergunta / comentario de conteudo colaborativo.
	id:				"",//Identificador do registro associado a ser buscado.
	image:			{
						ok:				"/_antigos/arquivos/canais/bot_ama_ok.gif",//URL da imagem do botão OK o navegador da paginação, por default o botão OK. (Veja bindOK)
						interrogacao:	"/_antigos/arquivos/decorar/sustentabilidade/img_interrogacao.gif",//URL da imagem do botão INTERROGACAO da pergunta. (Veja bindInterrogacao)
						exclamacao:		"/_antigos/arquivos/decorar/sustentabilidade/img_exclamacao.gif",//URL da imagem do botão EXCLAMACAO da pergunta. (Veja bindExclamacao)
						vejaResposta:	"/_antigos/arquivos/decorar/sustentabilidade/btn_vejaresposta.gif"//URL da imagem do botão VEJA RESPOSTA da pergunta. (Veja bindVejaResposta)
					},
	name:			"",//Identificador do container que receberá os dados buscados.
	controle:		"",//Identificador do container que receberá a navegação da paginação.
	pagina:			"",//Página a ser buscada da paginação.
	especialista:	"",//Especialidade a ser buscada, exemplo: ARQUITETO / DECORADOR / CHEF / SUSTENTABILIDADE.
	itensPagina:	10,//Quantidade de itens que aparecerão por página.
	totalPaginas:	0,//Quantidade total de páginas.
	mimetype:		"text/json",//Mime-type do retorno da busca da paginação.
	error:			function(type, errObj){
						$(this['name']).innerHTML = 'Desculpe, ocorreu um problema na recuperação dos ' + this['name'] + ', por favor recarregue a página, obrigado.	\n ' + type + ' \n ' + errObj[0];
					},
	load:			function(){
						alert('Nenhuma função foi definida na página para executar o load dos dados')
					}
};

//Estrutura com as possíveis imagens do botão OK
var bindOK = {
	padrao:				"/_antigos/arquivos/canais/bot_ama_ok.gif",
	arquiteto:			"/_antigos/arquivos/canais/bot_ver_ok.gif",
	chef:				"/_antigos/arquivos/canais/bot_ama_ok.gif",
	decorador:			"/_antigos/arquivos/canais/bot_ama_ok.gif",
	sustentabilidade:	"/_antigos/arquivos/canais/bot_ama_ok.gif",
	colorista:			"/_antigos/arquivos/canais/bot_ama_ok.gif",
	fengshui:			"/_antigos/arquivos/canais/bot_ama_ok.gif",
	artesanato:			"/_antigos/arquivos/canais/bot_ama_ok.gif",
	advogado:			"/_antigos/arquivos/canais/bot_vrd_ok.gif",
	anuncio:			"/_antigos/arquivos/canais/bot_ver_ok.gif",
	vocemesmo:			"/_antigos/arquivos/canais/bot_ama_ok.gif"
};

//Estrutura com as possíveis imagens do botão Interrogação
var bindInterrogacao = {
	padrao:		"/_antigos/arquivos/decorar/sustentabilidade/img_interrogacao.gif",
	arquiteto:	"/_antigos/arquivos/construir/consulte/img_interrogacao.gif",
	chef:		"/_antigos/arquivos/decorar/chef/img_interrogacao.gif",
	decorador:	"/_antigos/arquivos/decorar/consulte/img_interrogacao.gif",
	sustentabilidade:"/_antigos/arquivos/decorar/sustentabilidade/img_interrogacao.gif",
	colorista:	"/_antigos/i/decorar/colorista/img_minterrogacao.gif",
	fengshui:	"/_antigos/i/decorar/fengshui/img_minterrogacao.gif",
	artesanato:	"/_antigos/i/decorar/artesanato/img_minterrogacao.gif",
	advogado:	"/_antigos/arquivos/ondemorar/consulte/img_interrogacao.gif"
};

//Estrutura com as possíveis imagens do botão Exclamação
var bindExclamacao = {
	padrao:				"/_antigos/arquivos/decorar/sustentabilidade/img_exclamacao.gif",
	arquiteto:			"/_antigos/arquivos/construir/consulte/img_exclamacao.gif",
	chef:				"/_antigos/arquivos/decorar/chef/img_exclamacao.gif",
	decorador:			"/_antigos/arquivos/decorar/consulte/img_exclamacao.gif",
	sustentabilidade:	"/_antigos/arquivos/decorar/sustentabilidade/img_exclamacao.gif",
	colorista:			"/_antigos/i/decorar/colorista/img_mexclamacao.gif",
	fengshui:			"/_antigos/i/decorar/fengshui/img_mexclamacao.gif",
	artesanato:			"/_antigos/i/decorar/artesanato/img_mexclamacao.gif",
	advogado:			"/_antigos/arquivos/ondemorar/consulte/img_exclamacao.gif"
};

//Estrutura com as possíveis imagens do botão Veja a Resposta
var bindVejaResposta = {
	padrao:				"/_antigos/arquivos/decorar/sustentabilidade/btn_vejaresposta.gif",
	arquiteto:			"/_antigos/arquivos/construir/consulte/btn_vejaresposta.gif",
	chef:				"/_antigos/arquivos/decorar/chef/btn_vejaresposta.gif",
	decorador:			"/_antigos/arquivos/decorar/consulte/btn_vejaresposta.gif",
	sustentabilidade:	"/_antigos/arquivos/decorar/sustentabilidade/btn_vejaresposta.gif",
	colorista:			"/_antigos/i/decorar/colorista/btn_veja_resposta.gif",
	fengshui:			"/_antigos/i/decorar/fengshui/btn_veja_resposta.gif",
	artesanato:			"/_antigos/i/decorar/artesanato/btn_veja_resposta.gif",
	advogado:			"/_antigos/arquivos/ondemorar/consulte/btn_vejaresposta.gif"
};

/**
 * Carrega as imagens da tela atual no bind.
 */
function loadImagesPaginacao(){

	var especialista	= bindPaginacao['especialista'];

	if(
		(especialista == "") ||
		(especialista == undefined)
	){
		bindPaginacao['especialista'] = 'padrao';
	}else{
		especialista	= bindPaginacao['especialista'].toLowerCase();
	}

	bindPaginacao['image']['ok']			= bindOK[especialista];
	bindPaginacao['image']['interrogacao']	= bindInterrogacao[especialista];
	bindPaginacao['image']['exclamacao']	= bindExclamacao[especialista];
	bindPaginacao['image']['vejaResposta']	= bindVejaResposta[especialista];

}

/**
 * Carrega o navegador da paginação.
 */
function loadNavegador(page){

	bindPaginacao['pagina']	= page;
	loadImagesPaginacao();
	
	var anterior = '<a href="javascript:loadChamadas('+(parseInt(bindPaginacao['pagina'])-1)+');void(0);" class="ct_esq"><img src="/_antigos/arquivos/canais/img_seta_esq.gif" width="8" height="9" border="0" /> Anterior</a>';
	var proximo = '<a href="javascript:loadChamadas('+(parseInt(bindPaginacao['pagina'])+1)+');void(0);" class="ct_dir">Pr&oacute;ximo <img src="/_antigos/arquivos/canais/img_seta_dir.gif" width="8" height="9" border="0" /></a>';

	if(bindPaginacao['totalPaginas'] == 0){
		bindPaginacao['pagina']	= bindPaginacao['totalPaginas'];
	}

	if(bindPaginacao['pagina'] <= 1){
		anterior = '<a href="javascript:void(0);" class="ct_esq"><img src="/_antigos/arquivos/canais/img_seta_esq.gif" width="8" height="9" border="0" /> Anterior</a>';
	}

	if(bindPaginacao['pagina'] >= bindPaginacao['totalPaginas']){
		proximo = '<a href="javascript:void(0);" class="ct_dir">Pr&oacute;ximo <img src="/_antigos/arquivos/canais/img_seta_dir.gif" width="8" height="9" border="0" /></a>';
	}

	var html =	'<div class="nav_esq">' +
				'	<div class="paginacao">' +
				'		P&aacute;gina ' + (bindPaginacao['pagina']) + ' de ' + bindPaginacao['totalPaginas'] +
				'	</div>' +
				'	<div> '+anterior+' '+proximo+'</div>' +
				'</div>' +
				'<div class="nav_dir">' +
				'	<img src="/_antigos/arquivos/canais/bg_div.gif" width="1" height="28" class="bg_div" border="0" />' +
				'</div>' +
				'<h3>' +
				'	Ir para a p&aacute;gina:'+
				'</h3>' +
				'<form name="buscaPaginacao" id="buscaPaginacao" onsubmit="return false;">' +
				'	<input type="text" name="chPagina" id="chamadaPagina" class="cmp_pagina" onKeyPress="keyChamadaPagina(event)" />' +
				'	<a href="javascript:processPaginacao($(\'chamadaPagina\').value)">' +
				'		<img src="' + bindPaginacao['image']['ok'] + '" width="16" height="10" class="bot_ok" border="0" />' +
				'	</a>' +
				'</form>';
		


	$(bindPaginacao['controle']).innerHTML = html;	
	
}

/**
 * Valida se a página que se está querendo ir na paginação existe.<br />
 * Caso a página exista, faz a chamada da paginação, caso contrário, exibe uma mensagem para o usuário.
 * @param pagina
 * 		Página. 
 */
function processPaginacao(pagina){
	if(	
		(!pagina)		|| 
		(pagina == '')	|| 
		(pagina < 1)	|| 
		(pagina > bindPaginacao['totalPaginas']) || 
		(!isInteger(pagina))
	){
		alert("Desculpe, a página digitada não existe.");
	} else {
		loadChamadas(pagina);
	}
}

/**
 * Verifica se o valor é um número válido.
 * @param valor
 * 		Valor a ser validado.
 * @return
 * 		True caso seja um número, false caso contrário.
 */
function isInteger(valor){

	var i;
	var caracter;
	
    for (i = 0; i < valor.length; i++){   
    
        caracter = valor.charAt(i);
    
        if(
       		(caracter < "0") || 
       		(caracter > "9")
        ){
        	return false;
        }
        
    }
    
    return true;
}

/**
 * Verifica se a tecla digitada foi um "enter".
 * @param evento
 * 		Evento ocorrido.
 */
function keyChamadaPagina(evento) {
   
	try {
	
        var key = ( window.event ) ? window.event.keyCode : evento.which;
        
        if ( key == 13 ) {
            processPaginacao($(bindPaginacao['controle']));
        }
        
    }catch(e){
    
    }
}

/**
 * Recupera o servidor corrente.
 */
function loadCurrentServer(){

	var url		= window.document.URL;
	var inicio	= (url.indexOf("http://") != -1) ? 7 : 0 ;
	var fim		= url.indexOf("/", inicio);
	
	return 'http://' + url.substring(inicio, fim);

}