/*----------------------------------------------------------
Estas tres funcoes listam os bairros, cidades e estados nas 
paginas onde encontram-se estes recursos. Elas recebem 3 
argumentos: o formulario da pagina, o codigo da entidade 
superior (ex.: codigo do pais em ListaEstados) e o codigo 
da propria entidade. A fim de tornar esta funcao unica para 
todas as paginas com dados de localizacao, criou-se uma 
padronizacao dos nomes dos menus (campos select) que deve 
ser seguida obrigatoriamente, a saber:
* Combo de Paises - fCodPais
* Combo de Estados - fCodEstado
* Combo de Cidades - fCodCidade
* Combo de Bairros - fCodBairro
Programador: Diego Fávero dos Santos
----------------------------------------------------------*/

function ListaEstados(strNomeFormulario, intCodigoPais, intCodigoEst, intCodLingua) {

	var ObjFormulario = eval('document.' + strNomeFormulario);

	var intCodPais;
	
	// Array que sera preenchido com os codigos e nomes dos Estados correspondentes
	ArrayEstadosMenu = new Array;
	
	// Codigo do Pais selecionado no menu ou do dado a ser editado
	//intCodPais = ((intCodigoPais > 0) ?  intCodigoPais : ObjFormulario.fCodPais.value);
	intCodPais = ((intCodigoPais > 0) ? intCodigoPais : ObjFormulario.fCodPais.options[ObjFormulario.fCodPais.selectedIndex].value);

	if (intCodPais == -1) {
		ObjFormulario.fCodEstado.length = 1;
		var texto = "";
		switch (intCodLingua) {
			case 0:
				texto = "Selecione um Estado >>";
				break;
			case 1:
				texto = "Select a State >>";
				break;
			case 2:
				texto = "Seleccione un Estado >>";
				break;
		}
		ObjFormulario.fCodEstado.options[0].text = texto;
		ObjFormulario.fCodEstado.options[0].value = "-1";
		ObjFormulario.fCodEstado.options[0].selected  = true;
//		ObjFormulario.fCodEstado.options[0] = new Option("« Selecione primeiro um País »", "-1");
//		ObjFormulario.fCodEstado.options[0].select;
		return;
	}
	else {
		var texto = "";
		switch (intCodLingua) {
			case 0:
				texto = "Selecione um Estado >>";
				break;
			case 1:
				texto = "Select a State >>";
				break;
			case 2:
				texto = "Seleccione un Estado >>";
				break;
		}
		ObjFormulario.fCodEstado.options[0].text = texto;
		ObjFormulario.fCodEstado.options[0].value = "-1"
		ObjFormulario.fCodEstado.options[0].selected  = true;
//		ObjFormulario.fCodEstado.options[0] = new Option("« Selecione um Estado »", "-1");
	}

	// Contador (Index) do array dos Estados do menu correspondentes ao Pais selecionado
	intContIndex = 1;

	for (var intCont = 0; intCont < ArrayCodEstados.length; intCont ++) {
		
		// Se codigo do Pais do Estado eh igual ao do Pais selecionado
		if (ArrayCodPaisesDeEstados[intCont] == intCodPais) {

			strNomeEstado = ArrayNomeEstados[intCont];
			intCodEstado = ArrayCodEstados[intCont];

			// Cria um objeto Option com nova opcao de Estado
			ArrayEstadosMenu[intContIndex] = new Option(strNomeEstado, intCodEstado);
			
			// Atribui o objeto ao Select de Estados
			ObjFormulario.fCodEstado.options[intContIndex] = ArrayEstadosMenu[intContIndex];

			if (ObjFormulario.fCodEstado.options[intContIndex].value == intCodigoEst) {
				ObjFormulario.fCodEstado.options[intContIndex].selected = true;
			}
			
			intContIndex ++;
		}
	}

	// Se nao existe nenhum Estado do Pais escolhido
	if (ArrayEstadosMenu.length == 0) {
		var texto = "";
		switch (intCodLingua) {
			case 0:
				texto = "Nenhum Estado cadastrado";
				break;
			case 1:
				texto = "No state registered";
				break;
			case 2:
				texto = "Ningun estado se coloco";
				break;
		}
		ObjFormulario.fCodEstado.length = 1;
		ObjFormulario.fCodEstado.options[0].text = texto;
		ObjFormulario.fCodEstado.options[0].value = "-1"
		ObjFormulario.fCodEstado.options[0].selected  = true;
//		ObjFormulario.fCodEstado.options[0] = new Option("« Nenhum Estado cadastrado »", "-1");
//		ObjFormulario.fCodEstado.options[0].select;
		return;
	}
	
	ObjFormulario.fCodEstado.length = ArrayEstadosMenu.length;

}

function ListaCidades(strNomeFormulario, intCodigoEst, intCodigoCid, intCodLingua) {

    
	var ObjFormulario = eval('document.' + strNomeFormulario);

	var intCodEstado;

	// Array que sera preenchido com os codigos e nomes das cidades correspondentes
	ArrayCidadesMenu = new Array;
	
	// Codigo do estado selecionado no menu ou da loja a ser editada
//	intCodEstado = ((intCodigoEst > 0) ?  intCodigoEst : ObjFormulario.fCodEstado.value);
	intCodEstado = ((intCodigoEst > 0) ?  intCodigoEst : ObjFormulario.fCodEstado.options[ObjFormulario.fCodEstado.selectedIndex].value);

	if (intCodEstado == -1) {
		var texto = "";
		switch (intCodLingua) {
			case 0:
				texto = "Selecione uma Cidade >>";
				break;
			case 1:
				texto = "Select a City >>";
				break;
			case 2:
				texto = "Seleccione una Ciudad >>";
				break;
		}
		ObjFormulario.fCodCidade.length = 1;
		ObjFormulario.fCodCidade.options[0].text = texto;
		ObjFormulario.fCodCidade.options[0].value = "-1"
		ObjFormulario.fCodCidade.options[0].selected  = true;
//		ObjFormulario.fCodCidade.options[0] = new Option("« Selecione primeiro um Estado »", "-1");
//		ObjFormulario.fCodCidade.options[0].select;
		return;
	}
	else {
		var texto = "";
		switch (intCodLingua) {
			case 0:
				texto = "Selecione uma Cidade >>";
				break;
			case 1:
				texto = "Select a City >>";
				break;
			case 2:
				texto = "Seleccione una Ciudad >>";
				break;
		}
		ObjFormulario.fCodCidade.options[0].text = texto;
		ObjFormulario.fCodCidade.options[0].value = "-1"
		ObjFormulario.fCodCidade.options[0].selected  = true;
//		ObjFormulario.fCodCidade.options[0] = new Option("« Selecione uma Cidade »", "-1");
	}

	// Contador (Index) do array das cidades do menu correspondentes ao estado selecionado
	intContIndex = 1;

	for (var intCont = 0; intCont < ArrayCodCidades.length; intCont ++) {
		
		// Se codigo do estado da cidade eh igual ao do estado selecionado
		if (ArrayCodEstadosDeCidades[intCont] == intCodEstado) {

			strNomeCidade = ArrayNomeCidades[intCont];
			intCodCidade = ArrayCodCidades[intCont];

			// Cria um objeto Option com nova opcao de cidade
			ArrayCidadesMenu[intContIndex] = new Option(strNomeCidade, intCodCidade);
			
			// Atribui o objeto ao Select de cidades
			ObjFormulario.fCodCidade.options[intContIndex] = ArrayCidadesMenu[intContIndex];

			if (ObjFormulario.fCodCidade.options[intContIndex].value == intCodigoCid) {
				ObjFormulario.fCodCidade.options[intContIndex].selected = true;
			}
			
			intContIndex ++;
		}
	}

	if (ArrayCidadesMenu.length == 0) {
		var texto = "";
		switch (intCodLingua) {
			case 0:
				texto = "Nenhuma cidade cadastrada";
				break;
			case 1:
				texto = "No city registered";
				break;
			case 2:
				texto = "Ninguna Ciudad se coloco";
				break;
		}
		ObjFormulario.fCodCidade.length = 1;
		ObjFormulario.fCodCidade.options[0].text = texto;
		ObjFormulario.fCodCidade.options[0].value = "-1"
		ObjFormulario.fCodCidade.options[0].selected  = true;
//		ObjFormulario.fCodCidade.options[0] = new Option("« Nenhuma Cidade cadastrada »", "-1");
	//	ObjFormulario.fCodCidade.options[0].selected = true;
		return;
	}

	ObjFormulario.fCodCidade.length = ArrayCidadesMenu.length;

}

function ListaBairros(strNomeFormulario, intCodigoCid, intCodigoBai, intCodLingua) {
    //console.log(intCodigoBai);
    switch (intCodLingua) {
        case 0:
            texto = "Selecione um Bairro >>";
            break;
        case 1:
            texto = "Select a Neighborhood >>";
            break;
        case 2:
            texto = "Seleccione una Vecindad >>";
            break;
        $('fCodBairro').options.length = 0;
        $('fCodBairro').options[0] = new Option(texto,'');
    }
    
    i = 1;
    
    var codCidade = intCodigoCid;
    if ($F('fCodCidade') != -1) codCidade = $F('fCodCidade');

    if (codCidade != '' && codCidade != -1) {                
        ArrayCodCidadesDeBairros.each(function(elm,id){                  
            if (codCidade == ArrayCodCidadesDeBairros[id]) {
                $('fCodBairro').options[i] = new Option(ArrayNomeBairros[id],ArrayCodBairros[id]);
                if (ArrayNomeBairros[id] == intCodigoBai) {
                    $('fCodBairro').options[i].selected = true;
                }
                i++;
            }
        })
    }
}

function SelecionaPais(strFormulario, intCodLocal) {

	var CampoFormulario = eval('document.' + strFormulario)

	for (var intCont = 1; intCont < CampoFormulario.fCodPais.length; intCont ++) {
		if (CampoFormulario.fCodPais.options[intCont].value == intCodLocal) {
			CampoFormulario.fCodPais.options[intCont].selected = true;
		}
	}
}

function LoadLojas(intCodLingua, root_url)	{
	if (document.aspnetForm.fCodEstado.value == -1 ||
		document.aspnetForm.fCodCidade.value == -1 ) {
			var texto = "";
			switch (intCodLingua) {
				case 0:
					texto = "Voce deve escolher um Estado e uma Cidade!";
					break;
				case 1:
					texto = "You must choose a State and a City!";
					break;
				case 2:
					texto = "Usted debe elegir un estado y una ciudad.";
					break;
			}
			alert(texto);
	} else {

		var tempCodPais = "", tempCodEstado = "", tempCodCidade = "", tempCodBairro = "";
		
		// ajustes para ficar compatível com a página de busca das lojas
		if (document.aspnetForm.fCodEstado.value != -1)
			tempCodEstado = document.aspnetForm.fCodEstado.value;
		if (document.aspnetForm.fCodCidade.value != -1)
			tempCodCidade = document.aspnetForm.fCodCidade.value;
		if (document.aspnetForm.fCodBairro.value != -1)
			tempCodBairro = document.aspnetForm.fCodBairro.value;
		
		document.aspnetForm.action = root_url + "wherefind/where_find.aspx?city_id=" + tempCodCidade + "&neighborhood=" + tempCodBairro + "&language=0"; 
		
		document.aspnetForm.submit();
	}
}

function LoadLojasTeaser(intCodLingua, intCodPage, intCodEstado, intCodCidade, intCodBairro)	{
	if (document.frmOndeComprar.fCodPais.value   == -1 ||
		document.frmOndeComprar.fCodEstado.value == -1 ||
		document.frmOndeComprar.fCodCidade.value == -1 ) {
			var texto = "";
			switch (intCodLingua) {
				case 0:
					texto = "Voce deve escolher um Pais, um Estado e uma Cidade!";
					break;
				case 1:
					texto = "You must choose a Country, a State and a City!";
					break;
				case 2:
					texto = "Usted debe elegir un pais, un estado y una ciudad.";
					break;
			}
			alert(texto);
	} else {

		var tempCodPais = "", tempCodEstado = "", tempCodCidade = "", tempCodBairro = "";
		
		// ajustes para ficar compatível com a página de busca das lojas
		if (document.frmOndeComprar.fCodPais.value != -1)
			tempCodPais = document.frmOndeComprar.fCodPais.value;
		if (document.frmOndeComprar.fCodEstado.value != -1)
			tempCodEstado = document.frmOndeComprar.fCodEstado.value;
		if (document.frmOndeComprar.fCodCidade.value != -1)
			tempCodCidade = document.frmOndeComprar.fCodCidade.value;
		if (document.frmOndeComprar.fCodBairro.value != -1)
			tempCodBairro = document.frmOndeComprar.fCodBairro.value;
		
		if (intCodPage == 0)
			document.frmOndeComprar.action = "search/search_shop_teaser.aspx?co=" + tempCodPais + "&s=" + tempCodEstado + "&ci=" + tempCodCidade + "&n=" + tempCodBairro
		else
			document.frmOndeComprar.action = "search_shop_teaser.aspx?co=" + tempCodPais + "&s=" + tempCodEstado + "&ci=" + tempCodCidade + "&n=" + tempCodBairro
		
		document.frmOndeComprar.submit();
	}
}
