//------------------------------------------------------------
// Guardando as informações dos produtos no formulário do cliente
var txt  = '<input type="hidden" id="produtosHadassa" name="produtosHadassa" value="">\n';
// Guardando as informações dos filtros no formulário do cliente (url do Hadassa)
txt     += '<input type="hidden" id="urlHadassa" name="urlHadassa" value="">\n';
// Guardando a Seção (Tipo) no formulário do cliente para limpar os filtros quando alterar a seção
txt     += '<input type="hidden" name="tipoHadassa" value="">\n';
// Criando as hashes com os níveis e sub-níveis da loja
var nomeArquivo = 'hashNivelHadassa'+document.frmLoja.loja.value+'.js';
document.write('<script type="text/javascript" src="../'+nomeArquivo+'"></script>');
// --------------------------------------------------------------------------------


if (document.getElementById) {
	document.getElementById('IDFrmLoja').innerHTML += txt;
} else if (document.all) {
	document.all['IDFrmLoja'].innerHTML += txt;
}

//------------------------------------------------------------

var urlPrograma = '/Hadassa';
//var urlPrograma = '../../Hadassa';
var urlPrgCliente = '/cgi-bin/loja.pl';


// Contador para os filtros utilizados que será usado na montagem da 'urlPrograma'
var qtdFiltros = 0;
var urlFiltros;

// Variável Auxiliar para armazenar o código html que será exibido no nos divs
// Criada para o Ponto Frio face ao encapsulamento do divMenu no divProdutos
var htmlAux = '';


// Funções para o JQuery realizar a Captura do XML do Hadassa e seus respectivos dados.
function PegaDados(url){
	var urlAntiga = url;
	if(document.frmLoja.pagHadassa.value != ''){
		if(document.frmLoja.novaUrlHadassa.value.length >= url.length){
			url = document.frmLoja.novaUrlHadassa.value;
		}else{
			url = urlAntiga;
			document.frmLoja.pagHadassa.value = 0;
			document.getElementById('controleHadassa').value = 1;
		}
	}
	// Somente acrescenta a URL e o TIPO, para o SHOP, caso o TIPO seja diferente de '0'
	// Pois o cabeçalho do template do departamento é o mesmo da seção
	if (document.getElementById('tipoHadassa').value != '0') {
		document.getElementById('urlHadassa').setAttribute("value", url); // Adicionando os filtros (url do Hadassa) ao form 'frmLoja'
	}
	
	document.frmLoja.tipoHadassa.value = document.getElementById('tipoHadassa').value; // Adicionando a Seção (Tipo) atual ao form 'frmLoja'
	
	urlFiltros = new Array(); // Zerando o vetor para apagar o menu de navegação
	
	// Desvio para quando um dos níveis for 0
	// evitando o erro para páginas de Departamento
	// No Caso do Shop não há Depto. ou Seção 0
	if(url.search(/\.0/) != -1)
	return;
	
	
	$.get(url, function(data){
		// Verificando se o XML retornou corretamente ou se houve erro
		var erro = $(data).find('erro').text();
		if (erro != '') {
			// __RMOTHE__ Temporariamente desativada as mensagens de erro
			//alert("COM ERRO: " + erro); return;
			return;
		}
		//------------------------------------------------------------
		var end = $(data).find('end').text(); // Código do Nível
		//------------------------------------------------------------
		// Guardando as informações das páginas
		var paginas = Array();
		var i = 0;
		$(data).find('pagina').each(function(){
			paginas[i] = new Array();
			paginas[i][0] = $(this).attr('ordem'); // Índice da Ordem da Página (Nível)
			paginas[i][1] = $(this).find('cod').text(); // Código da Página (Nível)
			paginas[i][2] = $(this).find('nome').text().replace(/&amp;/g, '&'); // Nome da Página (Nível)
			i++;
		});
		
		//------------------------------------------------------------
		// Guardando as informações da Navegação
		i = -1;
		$(data).find('filtrospassados').each(function(){
			$(this).find('filtro').each(function(){
				urlFiltros[++i] = $(this).find('cod:first').text();
				urlFiltros[++i] = $(this).find('nome:first').text().replace(/&amp;/g, '&');
				$(this).find('valor').each(function(){
					urlFiltros[++i] = $(this).find('cod').text();
					urlFiltros[++i] = $(this).find('nome').text().replace(/&amp;/g, '&');
				});
			});
		});
		
		// Cada filtro passado equivale a quatro posições, por isso a divisão por quatro
		qtdFiltros = (urlFiltros.length != 0) ? ((urlFiltros.length / 4) + 1) : (1);
		
		//------------------------------------------------------------
		// Guardando as informações dos filtros
		var filtros = Array();
		var vlrFiltros = new Array();
		var j = 0;
		i = 0;
		
		$(data).find('filtro').each(function(){
			filtros[i] = new Array();
			filtros[i][0] = $(this).find('cod:first').text();
			filtros[i][1] = $(this).find('nome:first').text().replace(/&amp;/g, '&');
			
			// Guardando as informações dos valores dos filtros
			var tmpFiltros = new Array();
			var tmpOrdem = new Array();
			$(this).find('valor').each(function(){
				tmpFiltros[j] = new Array();
				tmpOrdem[j] = $(this).find('cod').text();
				tmpFiltros[j][0] = $(this).find('cod').text();
				tmpFiltros[j][1] = $(this).find('nome').text().replace(/&amp;/g, '&');
				tmpFiltros[j][2] = $(this).find('total').text();
				j++;
			});
			
			// Ordenando os dados dos valores dos filtros
			tmpOrdem = bubbleSort(tmpOrdem)
			j = 0;
			
			var idxCodFiltro = filtros[i][0];
			vlrFiltros[i] = new Array();
			for (var idxA = 0; idxA < tmpOrdem.length; idxA++) {
				for (var idxB = 0; idxB < tmpFiltros.length; idxB++) {
					if (tmpOrdem[idxA] == tmpFiltros[idxB][0]) {
						vlrFiltros[i][j] = tmpFiltros[idxB][0] + '|'; // Código do valor do filtro
						vlrFiltros[i][j] += tmpFiltros[idxB][1] + '|'; // Nome do valor do filtro
						vlrFiltros[i][j] += tmpFiltros[idxB][2]; // Total de Produtos para este valor do filtro
						j++;
					}
				}
			}
			
			j = 0;
			i++;
		});
		
		
		//------------------------------------------------------------
		// Armazenando os dados dos produtos
		var totProd = $(data).find('totalprodutos').text(); // Quantidade de produtos para esta consulta
		var produtos = new Array();
		i = 0;
		$(data).find('produto').each(function(){
			produtos[i] = new Array();
			produtos[i][0] = $(this).find('cod').text(); // Código do Produto
			produtos[i][1] = $(this).find('status').text(); // Status do Produto
			i++;
		});
		
		
		//------------------------------------------------------------
		// Montagem e exibição das informações

		document.frmLoja.novaUrlHadassa.value = url;
		montaMenu(end, paginas, filtros, vlrFiltros, qtdFiltros, urlFiltros);
		montaNavegacao(end, filtros, qtdFiltros, urlFiltros);
		if (document.frmLoja.pagHadassa.value != 1) {
			if (parseInt(document.getElementById('controleHadassa').value) != 1) {
				document.getElementById('controleHadassa').value = 1;
			} else {
				montaProdutos(totProd, produtos, qtdFiltros);
			}
		} else {
			document.getElementById('controleHadassa').value = 0;			
			document.frmLoja.pagHadassa.value = 1;			
		}
		//------------------------------------------------------------
	});
}// Fim da função PegaDados

// Função para ordenação de dados, do tipo 'numérico', em vetores
function bubbleSort(vetor) {
	var trocou = true;
	while (trocou) {
		trocou = false;
		for (var i = 0; i < vetor.length; i++) {
			if ( parseFloat(vetor[i]) > parseFloat(vetor[i+1]) ) {
				var aux    = vetor[i];
				vetor[i]   = vetor[i+1];
				vetor[i+1] = aux;
				trocou     = true;
			}
		}
	}
	return vetor;
}

// Função para a montagem e exibição do Menu de Filtros.
// O alvo é o DIV 'divMenu'.
function montaMenu(end, paginas, filtros, vlrFiltros, qtdFiltros, urlFiltros) {
	var auxHtml = ''; // Variável auxiliar para a montagem do HTML, para não exibir filtros que não tenham valores
	var html = '<div class="nav">\n';

	for(var i = 0; i < paginas.length; i++) {
		// html += paginas[i][1]; // Código da Página (Nível)
		if (i > 0) {
			html += ' : ';
		}
		html += '<span class="dep">' + paginas[i][2] + '</span>'; // Nome da Página (Nível)
	}

	html += '\n</div>\n';
	html += '<div id="divNavegacao" class="divNavegacao"></div>\n';

	var ffv = ''; // Parâmetros para o Filtro (f) e o Filtro Valor (fv)
	var i = 0, j = 1;
	for(i = 0; i < urlFiltros.length; i+=4) {
		ffv += '&f' + j + '=' + urlFiltros[i] + '&fv' + j + '=' + urlFiltros[i+2];
		j++;
	}

	html += '<ul>\n'; // CSS para os filtros
	var x;
	for(var i = 0; i < filtros.length; i++) {
		if (filtros[i][1] != 'Outros') {
			// Comentado a exibição do Código do Filtro - usado somente para Debug
			// auxHtml = '\n(' + filtros[i][0] + ') '; // Código do Filtro
			auxHtml += '<li><span class="filtro1">' + filtros[i][1] + '</span>\n'; // Nome do Filtro
			auxHtml += '<ul>\n'; // CSS para a lista dos valores dos filtros
			if (filtros[i][1] == 'Faixas de Preço') {
				for (var j = 0; j < vlrFiltros[i].length; j++) {
					var dadosVlrFiltros = vlrFiltros[i][j].split('\|');
					if (dadosVlrFiltros[2] != '') { // Desvio para evitar que sejam exibidos filtros já escolhidos
						html += auxHtml + '<li><a href="javascript:document.frmHadassa.controleHadassa.value = 1;void(PegaDados(\'' + urlPrograma + '?end=' + end + ffv + '&f' + qtdFiltros + '=' + filtros[i][0] + '&fv' + qtdFiltros + '=' + dadosVlrFiltros[0] + '&qtdFiltros=' + qtdFiltros + '\'));" class="filtro2">' + dadosVlrFiltros[1] + '</a> (' + dadosVlrFiltros[2] + ')</li>\n'
						auxHtml = '';
					}
				}
			}
			else {
				var novoMenu = new Array();
				var nan;
				for (var j = 0; j < vlrFiltros[i].length; j++) {
					var dadosVlrFiltros = vlrFiltros[i][j].split('\|');
					novoMenu[j] = dadosVlrFiltros[1];
					nan = isNaN(dadosVlrFiltros[1]);
				}
				if (nan == false) {
					novoMenu.sort(crescente);
				}
				else {
					novoMenu.sort();
				}
				for (var w = 0; w < novoMenu.length; w++) {
					for (var j = 0; j < vlrFiltros[i].length; j++) {
						var dadosVlrFiltros = vlrFiltros[i][j].split('\|');
						if (dadosVlrFiltros[1] == novoMenu[w]) {
							if (dadosVlrFiltros[2] != '') { // Desvio para evitar que sejam exibidos filtros já escolhidos
								html += auxHtml + '<li><a href="javascript:document.frmHadassa.controleHadassa.value = 1;void(PegaDados(\'' + urlPrograma + '?end=' + end + ffv + '&f' + qtdFiltros + '=' + filtros[i][0] + '&fv' + qtdFiltros + '=' + dadosVlrFiltros[0] + '&qtdFiltros=' + qtdFiltros + '\'));" class="filtro2">' + dadosVlrFiltros[1] + '</a> (' + dadosVlrFiltros[2] + ')</li>\n'
								auxHtml = '';
							}
						}
					}
				}
			}
			html += '</ul>\n</li>\n'; // CSS para a lista dos valores dos filtros
		}
	}

	html += '</ul>\n'; // CSS para os filtros

	html = '<div id="hadassa">\n' + html + '\n</div>'; // CSS para o divMenu

	//document.frmLoja.filtroCaminho.value = end;
	//document.frmLoja.filtrosSel.value = filtros;
	//document.frmLoja.paginas.value = paginas;
	//document.frmLoja.qtdFiltros.value = qtdFiltros;
	//document.frmLoja.vlrFiltros.value = vlrFiltros;
	//document.frmLoja.urlFiltros.value = urlFiltros;

	//alert(html);
	$('#divMenu').empty();
	$('#divMenu').append(html);
}

function crescente (index1, index2){
	return index1 - index2;
} 
function decrescente (index1, index2){
	return index2 - index1;
}

// Função para a montagem e exibição da Navegação.
// O alvo é o DIV 'divNavegacao'.
function montaNavegacao(end, filtros, qtdFiltros, urlFiltros) {
	var html = '';

	var ffv = ''; // Parâmetros para o Filtro (f) e o Filtro Valor (fv)
	var i = 0, j = 1;
	var qtdLinks = urlFiltros.length / 4;
	if(qtdLinks > 0) {
		var url = urlPrograma + '?end=' + end;
		html  = '<ul>\n';
		if ((urlFiltros.length / 4) == 1) {
			html += '<li><a href="javascript:document.frmHadassa.controleHadassa.value = 1;document.frmLoja.novaUrlHadassa.value=0;void(PegaDados(\'' + url + '\'));">[x] Remover Filtro</a></li>\n';
		} else {
			html += '<li><a href="javascript:document.frmHadassa.controleHadassa.value = 1;document.frmLoja.novaUrlHadassa.value=0;void(PegaDados(\'' + url + '\'))">[x] Remover Filtros</a></li>\n';
		}
		for(i = 0; i < urlFiltros.length; i+=4) {
			ffv  += '&f' + j + '=' + urlFiltros[i] + '&fv' + j + '=' + urlFiltros[i+2];
			html += '<li><a href="javascript:document.frmHadassa.controleHadassa.value = 1;void(PegaDados(\'' + url + ffv + '&qtdFiltros=' + j + '\'));">' + urlFiltros[i+1] + ' ( ' + urlFiltros[i+3] + ' )</a></li>\n';
			j++;
		}
		html += '</ul>\n';
	}

	if (html) {
		$('#divNavegacao').empty();
		$('#divNavegacao').append(html);
	} else {
		$('#divNavegacao').hide();
	}
}

// Função para a montagem e exibição dos Produtos.
// O alvo é o DIV 'divProdutos'.
// Obs.: Ponto Frio: http://serv12.online.com.br/pontofrio7/cgi-bin/loja.pl?grupo=2&tipo=56&hadassa=1&pedido=123456&produtosHadassa=123456|111111|222222
function montaProdutos(totProd, produtos, qtdFiltros) {
	//alert(document.frmHadassa.tipoHadassa.value);
	var prdsCliente = '';
	var urlCliente = urlPrgCliente;
	urlCliente += '?hadassa=1';
	urlCliente += '&dep='         + document.getElementById('grupoHadassa').value;
	//urlCliente += '&secao='       + document.getElementById('tipoHadassa').value;
	urlCliente += '&secao='       + document.frmHadassa.tipoHadassa.value;
	//urlCliente += '&tipoHadassa=' + document.getElementById('tipoHadassa').value;
	urlCliente += '&tipoHadassa=' + document.frmHadassa.tipoHadassa.value;
	urlCliente += '&pedido='      + document.getElementById('pedidoHadassa').value;
	urlCliente += '&loja='        + document.frmLoja.loja.value;
	urlCliente += '&acao=LI';
    urlCliente += '&ordem='       + document.getElementById('filtroOrdenacao').ordenacao.options[document.getElementById('filtroOrdenacao').ordenacao.selectedIndex].value;
	urlCliente += '&produtosHadassa=';

	//var PASSOS = (new Date()).getTime() + " - PASSO 1: ENTROU NA FUNÇÃO\n";
	//alert(PASSOS);

	for(var i = 0; i < totProd; i++) {
		if( i == (totProd - 1) ) { // Se for o último código de produto não deve ter 'pipe'
			prdsCliente += produtos[i][0];
		} else {
			prdsCliente += produtos[i][0] + '|';
		}
	}

	document.getElementById('produtosHadassa').setAttribute("value", prdsCliente); // Adicionando os produtos ao form 'frmLoja'
	urlCliente += prdsCliente; // Adicionando os produtos na URL
	// Pegando o tipo de ordenação da página do cliente
	if (document.formOrdenacao && document.formOrdenacao.selOrdenacao1) {
		urlCliente += '&' + document.formOrdenacao.selOrdenacao1.options[document.formOrdenacao.selOrdenacao1.selectedIndex].value.replace(/\|.*$/, '');
	}

	//PASSOS += (new Date()).getTime() + " - PASSO 2: PEGARÁ A PÁGINA\n";
	//alert(PASSOS);

	//alert(urlCliente);
	// Debug para verificar o preenchimento dos campos de produtos e filtros
	//alert("PRODUTOS:\n" + document.getElementById('produtosHadassa').value + "\nURL:\n" + document.getElementById('urlHadassa').value);
	//alert("PRODUTOS:\n" + document.frmLoja.produtosHadassa.value + "\nURL:\n" + document.frmLoja.urlHadassa.value + "\nTIPO:\n" + document.frmLoja.tipoHadassa.value);
	//alert(urlCliente);
	$.get(urlCliente, function(data) {
		//PASSOS += (new Date()).getTime() + " - PASSO 3: ATRIBUIRÁ O HTML RECEBIDO\n";
		//alert(PASSOS);
		var html = $(data).find('#divProdutos').html(); // Código html retornado pelo Cliente
		//PASSOS += (new Date()).getTime()+ " - PASSO 4: HTML ATRIBUÍDO:\n";
		//alert(PASSOS);
		$('#divProdutos').empty();
		$('#divProdutos').append(html);
		//PASSOS += (new Date()).getTime() + " - PASSO 5: TERMINOU\n";
		//alert(PASSOS);
		// alert(html);
		//     html = '<div align=center>\n1ª linha - NORMAL<br>\n2ª linha - <b>NEGRITO</b><br>\n3ª linha - <i>ITÁLICO</i><br>\n4ª linha - <b><i>NEGRITO ITÁLICO</i></b><br>\n</div>\n';
		// alert(html);
		//     $('#divProdutos').append($(html));

		//    wo = window.open('','wo');
		//    wo.document.open();
		//    wo.document.writeln(data);
		//    wo.document.close();
	});
}


function converteEndSistemaHadassa(enderecoSistema){
	var novoEndHadassa;
	var ljDepSec = enderecoSistema.split('.');
	// ljDepSec[0] = cdloja
	// ljDepSec[1] = Departamento
	// ljDepSec[2] = Secao

	if (ljDepSec[2]) {
		for (chave in hashNiveisHadassa) {
			if (hashNiveisHadassa[chave][0] == ljDepSec[1]) {
				var totSec = hashNiveisHadassa[chave].length;
				for (var i = 0; i < totSec; i++) {
					if (hashNiveisHadassa[chave][i][1] == ljDepSec[2]) {
						novoEndHadassa = ljDepSec[0] + '.' + chave + '.' + hashNiveisHadassa[chave][i][0];
					}
				}
			}
		}
	}else{
		for (chave in hashNiveisHadassa) {
			if (hashNiveisHadassa[chave][0] == ljDepSec[1]) {
				novoEndHadassa = ljDepSec[0] + '.' + chave;
			}
		}
	}

	return novoEndHadassa;
}

function converteEndHadassaSistema(enderecoHadassa){
	var novoEnd;
	var ljNiveis = enderecoHadassa.split('.');

	if(ljNiveis[2]){
		var tamArray = hashNiveisHadassa[ljNiveis[1]].length;
		for (var i=0;i<tamArray;i++){
			if(hashNiveisHadassa[ljNiveis[1]][i][0]== ljNiveis[2]){
				novoEnd = ljNiveis[0]+'.'+hashNiveisHadassa[ljNiveis[1]][0]+'.'+hashNiveisHadassa[ljNiveis[1]][i][1];
			}
		}
	}else{
		novoEnd = ljNiveis[0]+'.'+hashNiveisHadassa[ljNiveis[1]][0];
	}
	return novoEnd
}



