// Interface de Agentes Especializados
var $j = jQuery.noConflict();
var semItens = 3;
var codAtual = "";
carregaDados();

// Verifica se todas as dependências para a montagem de interface e inicia a montagem quando possível
function montaInterface()
{
	semItens--;
	if (semItens == 0)
	{
		// monta o select
		window.selectItem = $j("#slcPais");
		$j("i[@loc='" + codLang + "']", xmlPaises).each( function (i)
		{
			selectItem.append('<option value="'+this.parentNode.getAttribute("cod")+'">'+$j(this).text()+'</option>');
		})
		selectItem[0].selectedIndex = 0;
		selectItem.change(mudaPais);

		window.divLista = $j("#listaEspecialistas");
	}
}

function mudaPais()
{
	var selected = this.options[this.selectedIndex].value;
	mostraItem(selected);
}

// Dá carga nas tabelas de países e agentes especializados
function carregaDados()
{
	$j(montaInterface);
	$j.ajax({ type: 'GET', url: '../../include-site/agentesEspecialistas.xml ', dataType: 'xml', complete: function (xhr) {
		window.xmlAgentes = xhr.responseXML;
		montaInterface();
	}});
	
	$j.ajax({ type: 'GET', url: '../../include-site/codPaises.xml ', dataType: 'xml', complete: function (xhr) {
		window.xmlPaises = xhr.responseXML;
		montaInterface();
	}});
	
}

// acumula os DIVs com os elementos criados
var divsPaises = new Object();

// mostra os itens de um determinado país, o HTML é montado sob demanda
function mostraItem(cod)
{
	var itens = $j("pais[@cod='"+cod+"'] e", xmlAgentes);

	
	if ( codAtual != cod )
	{
		// verifica se o país selecionado já foi criado
		if ( divsPaises[cod] == null )
		{
			montarItensPais(cod, itens);
		}
		if (codAtual != "") divsPaises[codAtual].hide();
		codAtual = cod;
		divsPaises[cod].show();
	}			
}

// monta os itens de um determinado país
function montarItensPais(cod, itens)
{
	divsPaises[cod] = $j("<div pais='"+cod+"'></div>");
	itens.each( function (i)
	{
		var dataObj = 
		{
			agente:this.getAttribute("agente"),
			pais:selectItem[0].options[selectItem[0].selectedIndex].text,
			email:this.getAttribute("email"),
			telefone:this.getAttribute("telefone"),
			empresa:this.getAttribute("empresa"),
			endereco:this.getAttribute("endereco"),
			showEnd:this.getAttribute("endereco") == "" ? "none" : "",
			showTel:this.getAttribute("telefone") == "" ? "none" : ""
		}
		divsPaises[cod].append( transformaTemplate( template, dataObj ) );
	})
	divLista.append(divsPaises[cod]);
}

function transformaTemplate(template, obj)
{
	return template.replace( /#(.+?)#/gi, function ($0, $1) { return obj[$1] != null ? obj[$1] : "" } );
}