var arr_estados	= new Array();
var arr_cidades	= new Array();
var arr_bairros	= new Array();
var arr_lojas	= new Array();

function setEstados(id, uf){
	this.id = id;
	this.uf = uf;
}

function setCidades(id, uf, cidade){
	this.id 	= id;
	this.uf 	= uf;
	this.cidade = cidade;
}

function setBairros(id, id_cidade, uf, cidade, bairro){
	this.id 	   = id;
	this.id_cidade = id_cidade;
	this.uf 	   = uf;
	this.cidade    = cidade;
	this.bairro    = bairro;
}

function setLojas(id_bairro, loja, tipo, endereco, cep, hr_seg, hr_sab, hr_dom, obs, maplat, maplon){
	this.id_bairro	= id_bairro;
	this.loja		= loja;
	this.tipo		= tipo;
	this.endereco 	= endereco;
	this.cep	 	= cep;
	this.hr_seg	 	= hr_seg;
	this.hr_sab	 	= hr_sab;
	this.hr_dom	 	= hr_dom;
	this.obs		= obs;	
	this.lat		= maplat;	
	this.lon		= maplon;	
}

function setParceiros(cod_bairro, tipo, nome_fantasia, logradouro, cep, e_mail, fixo, celular, maplat, maplon){
	this.id_bairro = cod_bairro;
	this.tipo = tipo;
	this.nome_fantasia = nome_fantasia;
	this.logradouro = logradouro;
	this.cep = cep;
	this.e_mail = e_mail
	this.fixo = fixo;
	this.celular = celular;
	this.lat		= maplat;	
	this.lon		= maplon;	
}

function requestParceiros(){
	if(xml_request.readyState == 4){
		var loop = true;
		var xml 		= xml_request.responseXML;
		var obj			= xml.getElementsByTagName("UF");
		var obj_total	= obj.length;

		for(count = 0; count < obj_total; count++){
			obj_cidades	= obj[count].getElementsByTagName("cidade");
			obj_cidades_total = obj_cidades.length;
			uf	= obj[count].getAttribute("uf").toUpperCase();
			
			var_estados = new setEstados(count, uf);
			arr_estados.push(var_estados);
			
			for(count2 = 0; count2 < obj_cidades_total; count2++){
				cidade = obj_cidades[count2].getAttribute("nome");
				cod_cidade = uf+' '+cidade;
				var_cidades = new setCidades(cod_cidade, uf, cidade);
				arr_cidades.push(var_cidades);

				obj_bairros	= obj_cidades[count2].getElementsByTagName("bairro");
				obj_bairros_total = obj_bairros.length;
				
				for(count3 = 0; count3 < obj_bairros_total; count3++){
					//tipo=nome_fantasia=vEndereco=vCep=vHr_seg=vHr_sab=vHr_dom=vObs=vLat=vLon=vMaps='';
					bairro = obj_bairros[count3].getAttribute("nome");
					cod_bairro = uf+' '+cidade+' '+bairro;

					var_bairros = new setBairros(cod_bairro, cod_cidade, uf, cidade, bairro);
					arr_bairros.push(var_bairros);	
					obj_lojas	= obj_bairros[count3].getElementsByTagName("parceiro");
					obj_lojas_total = obj_lojas.length;
					
					for(count4 = 0; count4 < obj_lojas_total; count4++){
//						if(obj_lojas[count4].getElementsByTagName("tipo")[0].firstChild!=null){
//							tipo = obj_lojas[count4].getElementsByTagName("tipo")[0].firstChild.nodeValue;
//						}
						tipo = "";
						if(obj_lojas[count4].getElementsByTagName("nome_fantasia")[0].firstChild!=null){
							nome_fantasia = obj_lojas[count4].getElementsByTagName("nome_fantasia")[0].firstChild.nodeValue;
						}
						
						if(obj_lojas[count4].getElementsByTagName("logradouro")[0].firstChild!=null){
							logradouro = obj_lojas[count4].getElementsByTagName("logradouro")[0].firstChild.nodeValue;
						}
						
						if(obj_lojas[count4].getElementsByTagName("cep")[0].firstChild!=null){
							cep = obj_lojas[count4].getElementsByTagName("cep")[0].firstChild.nodeValue;
						}
						
						if(obj_lojas[count4].getElementsByTagName("e-mail")[0].firstChild!=null){
							e_mail = obj_lojas[count4].getElementsByTagName("e-mail")[0].firstChild.nodeValue;
						}
																		
						telefone			= obj_lojas[count4].getElementsByTagName("telefone");
						if(telefone[0].getElementsByTagName("fixo")[0].firstChild!=null){
							fixo				= telefone[0].getElementsByTagName("fixo")[0].firstChild.nodeValue;
						}
						
						if(telefone[0].getElementsByTagName("celular")[0].firstChild!=null){
							celular				= telefone[0].getElementsByTagName("celular")[0].firstChild.nodeValue;							
						}
						else{
							celular = "";
						}
						
						vMaps				= obj_lojas[count4].getElementsByTagName("map");
						vLat				= vMaps[0].getElementsByTagName("lat")[0].firstChild.nodeValue;
						vLon				= vMaps[0].getElementsByTagName("lon")[0].firstChild.nodeValue;
												
						var_lojas = new setParceiros(cod_bairro, tipo, nome_fantasia, logradouro, cep, e_mail, fixo, celular, escape(vLat), escape(vLon));
						arr_lojas.push(var_lojas);
					}	
				}	
			}
		}
		getLojasEstados();
		if(xml_param_uf != ''){
			getLojasCidades(xml_param_uf);
		}
	}
}

function requestLojas(){
	if(xml_request.readyState == 4){
		var loop = true;
		var xml 		= xml_request.responseXML;
		var obj			= xml.getElementsByTagName("UF");
		var obj_total	= obj.length;
		
		for(count = 0; count < obj_total; count++){
			obj_cidades	= obj[count].getElementsByTagName("cidade");
			obj_cidades_total = obj_cidades.length;
			uf	= obj[count].getAttribute("uf").toUpperCase();
			var_estados = new setEstados(count, uf);
			arr_estados.push(var_estados);
			
			for(count2 = 0; count2 < obj_cidades_total; count2++){
				cidade = obj_cidades[count2].getAttribute("nome");
				cod_cidade = uf+' '+cidade;
				var_cidades = new setCidades(cod_cidade, uf, cidade);
				arr_cidades.push(var_cidades);

				obj_bairros	= obj_cidades[count2].getElementsByTagName("bairro");
				obj_bairros_total = obj_bairros.length;
				
				for(count3 = 0; count3 < obj_bairros_total; count3++){				
					bairro = obj_bairros[count3].getAttribute("nome");
					cod_bairro = uf+' '+cidade+' '+bairro;

					var_bairros = new setBairros(cod_bairro, cod_cidade, uf, cidade, bairro);
					arr_bairros.push(var_bairros);	
					obj_lojas	= obj_bairros[count3].getElementsByTagName("lojas");
					obj_lojas_total = obj_lojas.length;
					
					for(count4 = 0; count4 < obj_lojas_total; count4++){
						try{
							vEmpresa 		= obj_lojas[count4].getElementsByTagName("empresa")[0].firstChild.nodeValue;
							vTipo			= obj_lojas[count4].getAttribute('id') != null && obj_lojas[count4].getAttribute('id') != undefined ? obj_lojas[count4].getAttribute('id') : '';
							vEndereco		= obj_lojas[count4].getElementsByTagName("endereco")[0].firstChild.nodeValue;
							vCep			= obj_lojas[count4].getElementsByTagName("cep")[0].firstChild.nodeValue;
							
							if(obj_lojas[count4].getElementsByTagName("horario_seg")[0].firstChild != null){
								vHr_seg			= obj_lojas[count4].getElementsByTagName("horario_seg")[0].firstChild.nodeValue;
							}
							else{
								vHr_seg = "";
							}
							vHr_sab			= obj_lojas[count4].getElementsByTagName("horario_sab")[0].firstChild.nodeValue;
							vHr_dom			= obj_lojas[count4].getElementsByTagName("horario_dom")[0].firstChild.nodeValue;

							if(obj_lojas[count4].getElementsByTagName("obs")[0].firstChild!=null){
								vObs				= obj_lojas[count4].getElementsByTagName("obs")[0].firstChild.nodeValue;								
							}
							else{
								vObs = "";
							}
							vMaps				= obj_lojas[count4].getElementsByTagName("map");
							vLat				= vMaps[0].getElementsByTagName("lat")[0].firstChild.nodeValue;
							vLon				= vMaps[0].getElementsByTagName("lon")[0].firstChild.nodeValue;
							var_lojas = new setLojas(cod_bairro, vEmpresa, vTipo, vEndereco, vCep, vHr_seg, vHr_sab, vHr_dom, vObs, escape(vLat), escape(vLon));
							arr_lojas.push(var_lojas);

						}catch(e) {}
					}	
				}	
			}
		}
		getLojasEstados();
		if(xml_param_uf != ''){
			x = 2;
			getLojasCidades(xml_param_uf);
		}
		
		//alert(x);
	}
}

function getLojasEstados(){
	document.getElementById(xml_param_form_estados).options.length = 0;
	document.getElementById(xml_param_form_estados).options[0] = new Option('Estados', '');
		
	estados_total = arr_estados.length;
	
	//alert("Tamanho: ")+arr_estados.length;
	for(count = 0; count < estados_total; count++){
		document.getElementById(xml_param_form_estados).options[count+1] = new Option(arr_estados[count].uf, arr_estados[count].uf);
		
		if(arr_estados[count].uf == xml_param_uf){
			document.getElementById(xml_param_form_estados).options[count+1].selected = true;
		}
	}
	document.getElementById(xml_param_form_estados).disabled = false;
}

function getLojasCidades(uf){
	document.getElementById(xml_param_form_cidades).options.length = 0;
	document.getElementById(xml_param_form_cidades).options[0] = new Option('Cidades', '');
	document.getElementById(xml_param_form_bairros).disabled = true;
	
	var cidades_total = arr_cidades.length;
	
	if(uf == ""){
		document.getElementById(xml_param_form_cidades).disabled = true;
	}else{
		if(uf == "MMG"){
			window.open('http://minas.vivo.com.br/conheca/aparelhos/ondecomprar/ListaLojas/Default.aspx?letra=A');
		}else{
			for(count = 0, count_estado = 0; count < cidades_total; count++){
				if(arr_cidades[count].uf == uf){
					document.getElementById(xml_param_form_cidades).options[count_estado+1] = new Option(arr_cidades[count].cidade, arr_cidades[count].id); //+'#'+arr_cidades[count].cidade
					count_estado++;
				}
			}

			document.getElementById(xml_param_form_cidades).disabled = false;
		}
	}
}

function getLojasBairros(id_cidade){
	
	document.getElementById(xml_param_form_bairros).options.length = 0;
	document.getElementById(xml_param_form_bairros).options[0] = new Option('Bairros', '');		
	
	var bairros_total = arr_bairros.length;
	
	if(id_cidade == ""){
		document.getElementById(xml_param_form_bairros).disabled = true;
		document.getElementById(xml_param_form_bairros).disabled = true;
	}else{
		tudo = "";
		
		
		
		for(var count = 0, count_cidade = 0; count < bairros_total; count++){
			if(arr_bairros[count].id_cidade == id_cidade){
				document.getElementById(xml_param_form_bairros).options[count_cidade+1] = new Option(arr_bairros[count].bairro, arr_bairros[count].id);
				count_cidade++;
			}
		}
		
		document.getElementById(xml_param_form_bairros).disabled = false;
	}
}

function e(valor){
	return document.getElementById(valor);
}

function getLojas(id_bairro){		
	
	var retorno = '';
	var revendedorAutorizado = '';	
	var contLojas = 0;
	
	lojas_total = arr_lojas.length;
	
	retorno += '<ul class="lista">';	
	
	for(count = 0; count < lojas_total; count++){
		if(arr_lojas[count].id_bairro == id_bairro){
			vInfo = '|strong|'+arr_lojas[count].loja+'|/strong||br|'+arr_lojas[count].endereco;
			vInfo = vInfo;						
			
			//Adicionar uma classe especial se o nome da loja tiver a denominação "Loja Autorizada"
			if (arr_lojas[count].loja.indexOf("Loja Autorizada") != -1) {
				
				revendedorAutorizado += '<li class="loja_autorizada">';		
				revendedorAutorizado += '	<div id="Loja'+count+'" class="float_left">';
				revendedorAutorizado += '		<dl>';
				revendedorAutorizado += '			<dt><strong>'+ arr_lojas[count].loja +'</strong></dt>';
				revendedorAutorizado += '			<div class="clear_both"></div>';
				revendedorAutorizado += '			<dd class="loja_informacoes">';
				revendedorAutorizado += '				'+ arr_lojas[count].endereco +'<br />';
				revendedorAutorizado += '				'+ arr_lojas[count].cep +'<br />';
				revendedorAutorizado += '				Horário de Atendimento:<br />';
				revendedorAutorizado += '				Segunda à Sexta: '+ arr_lojas[count].hr_seg +'<br />';							
				revendedorAutorizado += '				Sábado: '+ arr_lojas[count].hr_sab +'<br />';
				revendedorAutorizado += '				Domingo: '+ arr_lojas[count].hr_dom +'<br />';
				
				if(arr_lojas[count].obs != '')
					revendedorAutorizado +='			 '+ '<p class="loja-observacao"><strong>' + arr_lojas[count].obs + '</strong></p>';
					
				revendedorAutorizado += '			</dd>';
				revendedorAutorizado += '		</dl>';
				revendedorAutorizado += '	</div>';
				revendedorAutorizado += '	<div class="float_left">';			
				revendedorAutorizado += '		<iframe id="openMaps'+count+'" src="/parasuaempresa/atendimento/googlemaps.php?lat='+arr_lojas[count].lat+'&lon='+arr_lojas[count].lon+'&inf='+escape(vInfo)+'" width="0" height="0" frameborder="0" style="overflow:hidden;"></iframe>';
				revendedorAutorizado += '		<p class="ampliar"> <a href="javascript:boxMaior(\''+escape(arr_lojas[count].lat)+'\',\'' + escape(arr_lojas[count].lon) + '\',\'' + escape(vInfo) + '\'); void(0);">+ Ampliar mapa</a></p>';
				revendedorAutorizado += '	</div>';
				revendedorAutorizado += '	<div class="clear_both"></div>';
				revendedorAutorizado += '</li>';
				fnMap('"'+escape(arr_lojas[count].lat)+'"','"'+escape(arr_lojas[count].lon)+'"','"'+ escape(vInfo) +'"','"'+count+'"');
				contLojas++;				
			}
			else {
				retorno += '<li>';			
				retorno += '	<div id="Loja'+count+'" class="float_left">';
				retorno += '		<dl>';
				retorno += '			<dt><strong>'+ arr_lojas[count].loja +'</strong></dt>';
				retorno += '			<div class="clear_both"></div>';
				retorno += '			<dd class="loja_informacoes">';
				retorno += '				'+ arr_lojas[count].endereco +'<br />';
				retorno += '				'+ arr_lojas[count].cep +'<br />';
				retorno += '				Horário de Atendimento:<br />';
				retorno += '				Segunda à Sexta: '+ arr_lojas[count].hr_seg +'<br />';							
				retorno += '				Sábado: '+ arr_lojas[count].hr_sab +'<br />';
				retorno += '				Domingo: '+ arr_lojas[count].hr_dom +'<br />';
				
				if(arr_lojas[count].obs != '')
					retorno +='			 '+ '<p class="loja-observacao"><strong>' + arr_lojas[count].obs + '</strong></p>';
					
				retorno += '			</dd>';
				retorno += '		</dl>';
				retorno += '	</div>';
				retorno += '	<div class="float_left">';			
				retorno += '		<iframe id="openMaps'+count+'" src="/parasuaempresa/atendimento/googlemaps.php?lat='+arr_lojas[count].lat+'&lon='+arr_lojas[count].lon+'&inf='+escape(vInfo)+'" width="0" height="0" frameborder="0" style="overflow:hidden;"></iframe>';
				retorno += '		<p class="ampliar"> <a href="javascript:boxMaior(\''+escape(arr_lojas[count].lat)+'\',\'' + escape(arr_lojas[count].lon) + '\',\'' + escape(vInfo) + '\'); void(0);">+ Ampliar mapa</a></p>';
				retorno += '	</div>';
				retorno += '	<div class="clear_both"></div>';
				retorno += '</li>';
				fnMap('"'+escape(arr_lojas[count].lat)+'"','"'+escape(arr_lojas[count].lon)+'"','"'+ escape(vInfo) +'"','"'+count+'"');
				contLojas++;
			} //end else
		} //end if
	} //end for
	
	retorno += revendedorAutorizado;	
	retorno += '<ul>';
	
	if(contLojas > 0){
		$('#'+xml_param_div_content).html(retorno);
	}else{
		$('#'+xml_param_div_content).html('<div style="margin:10px 0 0 80px"><strong>Está cidade não possui lojas.</strong></div>');
	}
}

function getLojasEmpresas(id_bairro){
	var retorno = '';
	
	lojas_total = arr_lojas.length;
	retorno += '<ul class="lista">';
	
	var contLojas = 0;

	for(count = 0; count < lojas_total; count++){
		
		if(arr_lojas[count].id_bairro == id_bairro && arr_lojas[count].tipo == 'pj'){
			vInfo = '|strong|'+arr_lojas[count].loja+'|/strong||br|'+arr_lojas[count].endereco;
			vInfo = vInfo;
			
			retorno += '<li>';
			retorno += '	<div id="Loja'+count+'" class="float_left">';
			retorno += '		<dl>';
			retorno += '			<dt><strong>'+ arr_lojas[count].loja +'</strong></dt>';
			retorno += '			<div class="clear_both"></div>';
			retorno += '			<dd>';
			retorno += '				'+ arr_lojas[count].endereco +'<br />';
			retorno += '				'+ arr_lojas[count].cep +'<br />';
			retorno += '				Horário de Atendimento:<br />';
			retorno += '				Segunda à Sexta: '+ arr_lojas[count].hr_seg +'<br />';
			retorno += '				Sábado: '+ arr_lojas[count].hr_sab +'<br />';
			retorno += '				Domingo: '+ arr_lojas[count].hr_dom +'<br />';
			if(arr_lojas[count].obs != '')
				retorno += '<li>'+arr_lojas[count].obs+'</li>';
			retorno += '			</dd>';
			retorno += '		</dl>';
			retorno += '	</div>';
			retorno += '	<div class="float_left">';
			retorno += '		<iframe id="openMaps'+count+'" src="/parasuaempresa/atendimento/googlemaps.php?lat='+arr_lojas[count].lat+'&lon='+arr_lojas[count].lon+'&inf='+escape(vInfo)+'" width="0" height="0" frameborder="0" style="overflow:hidden;"></iframe>';
			retorno += '		<p class="ampliar"> <a href="javascript:boxMaior(\''+escape(arr_lojas[count].lat)+'\',\'' + escape(arr_lojas[count].lon) + '\',\'' + escape(vInfo) + '\'); void(0);">+ Ampliar mapa</a></p>';
			retorno += '	</div>';
			retorno += '	<div class="clear_both"></div>';
			retorno += '</li>';
			fnMap('"'+escape(arr_lojas[count].lat)+'"','"'+escape(arr_lojas[count].lon)+'"','"'+ escape(vInfo) +'"','"'+count+'"');
			contLojas++;
		}
	}
	retorno += '<ul>';
	
	if(contLojas > 0){
		$('#'+xml_param_div_content).html(retorno);
	}else{
		$('#'+xml_param_div_content).html('<div style="margin:10px 0 0 80px"><strong>Está cidade não possui lojas.</strong></div>');
	}
}

function getLojasParceiros(id_bairro){
	var retorno = '';
	
	lojas_total = arr_lojas.length;	
	
	var emails = [];

	retorno += '<ul class="lista">';				
	
	
	var contLojas = 0;
	for(count = 0; count < lojas_total; count++){
		if(arr_lojas[count].id_bairro == id_bairro){
			vInfo = '|strong|'+arr_lojas[count].nome_fantasia+'|/strong||br|'+arr_lojas[count].logradouro;
			vInfo = vInfo;
			retorno += '<li>';
			retorno += '	<div id="Loja'+count+'" class="float_left">';
			retorno += '		<dl>';
			retorno += '			<dt><strong>'+ arr_lojas[count].nome_fantasia +'</strong></dt>';
			retorno += '			<div class="clear_both"></div>';
			retorno += '			<dd>';
			retorno += '				'+ arr_lojas[count].logradouro +'<br />';
			
			//Parsear o CEP
			if((arr_lojas[count].cep).length == 8){
				cep = arr_lojas[count].cep.slice(0,5)+"-"+arr_lojas[count].cep.slice(5,8);
				retorno += '				'+ cep+'<br />';
			}
			else {
				retorno += '				'+ arr_lojas[count].cep+'<br />';
			}
			
			//Parsear o telefone fixo
			if((arr_lojas[count].fixo).length == 10){
				fixo = "("+arr_lojas[count].fixo.slice(0,2)+") "+arr_lojas[count].fixo.slice(2,6)+"-"+arr_lojas[count].fixo.slice(6,10);
				retorno += '				Telefone Fixo: '+ fixo +'<br />';	
			}
			
			//Parsear o telefone celular
			if((arr_lojas[count].celular).length == 10){
				celular = "("+arr_lojas[count].celular.slice(0,2)+") "+arr_lojas[count].celular.slice(2,6)+"-"+arr_lojas[count].celular.slice(6,10);
				retorno += '				Celular: '+ celular +'<br />';	
			}
			
			//Parsear o e-mail
			emails = arr_lojas[count].e_mail.split(";");
			retorno += '				E-mail: ';
			for (var emailIndex = 0, emailsLength = emails.length; emailIndex < emailsLength; emailIndex++) {
				retorno += '<a href="mailto:'+ emails[emailIndex] +'">' + emails[emailIndex] + '</a><br />';				
			}
			
						
			retorno += '			</dd>';
			retorno += '		</dl>';
			retorno += '	</div>';
			retorno += '	<div class="float_left">';
			retorno += '		<iframe id="openMaps'+count+'" src="/parasuaempresa/atendimento/googlemaps.php?lat='+arr_lojas[count].lat+'&lon='+arr_lojas[count].lon+'&inf='+escape(vInfo)+'" width="0" height="0" frameborder="0" style="overflow:hidden;"></iframe>';
			retorno += '		<p class="ampliar"> <a href="javascript:boxMaior(\''+escape(arr_lojas[count].lat)+'\',\'' + escape(arr_lojas[count].lon) + '\',\'' + escape(vInfo) + '\'); void(0);">+ Ampliar mapa</a></p>';
			retorno += '	</div>';
			retorno += '	<div class="clear_both"></div>';
			retorno += '</li>';
			fnMap('"'+escape(arr_lojas[count].lat)+'"','"'+escape(arr_lojas[count].lon)+'"','"'+ escape(vInfo) +'"','"'+count+'"');
			contLojas++;
		}
	}
	retorno += '<ul>';
	
	if(contLojas > 0){
		$('#'+xml_param_div_content).html(retorno);
	}else{
		$('#'+xml_param_div_content).html('<div style="margin:10px 0 0 80px"><strong>Está cidade não possui lojas.</strong></div>');
	}
}

var xml_request = null;
function getXMLRequest(get_url, get_function){
	if (window.document.getElementById){
        if (window.XMLHttpRequest){
            xml_request = new XMLHttpRequest();
			xml_request.onreadystatechange = (typeof(get_function) == "object" ? get_function : this[get_function]);
            xml_request.open("GET", get_url, true);
            xml_request.send(null);
        }else if (window.ActiveXObject){
			try{
                xml_request = new ActiveXObject("Msxml2.XMLHTTP");
            }catch(e1){
				try{
                	xml_request = new ActiveXObject("Microsoft.XMLHTTP");
                }catch (e2){}
            }
			
	        if (xml_request){
				xml_request.onreadystatechange = function() {
					eval(get_function + '();');
				}
				xml_request.open("GET", get_url, true);
				xml_request.send();
			}
        }
	}
}
