OndeComprar = {
	CarregaCidade : function(estado){
		if(estado!=''){
			response = Class_onde_comprar.Seleciona(0, estado, '', '', '', '', 2);
			if(response.error == null){
				var retorno = response.value;
				document.form1.cidade.length = 0;
				var ds = retorno;
				if(ds!=null && typeof(ds) == "object" && ds.Tables!=null){
					//define a quantidade de itens do dropdown(1 a mais da quantidade de itens do dataset)
					document.form1.cidade.length =ds.Tables[0].Rows.length+1;
					
					//adiciona um item no dropdown
					document.form1.cidade.options[0].text= '-Selecione uma Cidade-';
					document.form1.cidade.options[0].value= '';
					
					//adiciona os itens do dataset no dropdown
					for(var i=0; i<ds.Tables[0].Rows.length; i++){
						var row = ds.Tables[0].Rows[i];
						document.form1.cidade.options[i+1].text= row.cidade;
						document.form1.cidade.options[i+1].value= row.cidade;
					}
					document.form1.bairro.length = 1;
				} 
			}
		}else{
			document.form1.cidade.length = 1;
			document.form1.bairro.length = 1;
		}
	},
	
	CarregaBairro : function(cidade){
		if(cidade!=''){
			response = Class_onde_comprar.Seleciona(0, document.form1.estado.value, cidade, '', '', '', 3);
			if(response.error == null){
				var retorno = response.value;
				document.form1.bairro.length = 0;
				var ds = retorno;
				if(ds!=null && typeof(ds) == "object" && ds.Tables!=null){
					//define a quantidade de itens do dropdown(1 a mais da quantidade de itens do dataset)
					document.form1.bairro.length =ds.Tables[0].Rows.length+2;
					
					//adiciona um item no dropdown
					document.form1.bairro.options[0].text= '-Selecione um Bairro-';
					document.form1.bairro.options[0].value= '-Selecione um Bairro-';
					
					document.form1.bairro.options[1].text= 'Todos';
					document.form1.bairro.options[1].value= '';
					
					//adiciona os itens do dataset no dropdown
					for(var i=0; i<ds.Tables[0].Rows.length; i++){
						var row = ds.Tables[0].Rows[i];
						document.form1.bairro.options[i+2].text= row.bairro;
						document.form1.bairro.options[i+2].value= row.bairro;
					}
				} 
			}
		}else{
			document.form1.bairro.length = 1;
		}
	},
	
	estado : '',
	cidade : '',
	bairro : '',
	nome : '',
	cep : '',
	
	CarregaRevendas : function(tipo_busca, pagina, itens_pagina){
		msg = this.Valida(tipo_busca);
		if (msg == ''){
			document.getElementById('divMapa').style.display = 'none';
			conteudo = onde_comprar.CarregaRevendas(estado, cidade, bairro, nome, '', tipo_busca, pagina, itens_pagina).value;
			//alert(conteudo);
			document.getElementById('DivConteudo').innerHTML = conteudo;
			tot_itens = document.form1.tot_itens.value;
			paginas = FuncoesGerais.monta_paginacao(tot_itens, itens_pagina, pagina, 'OndeComprar', 'CarregaRevendas', tipo_busca);
		}else{
			document.getElementById('DivConteudo').innerHTML = "<div id='text' style='width: 395px; padding-top: 50px;' align='center'><span><b>" + msg + "</b></span></div>";
		}
	},
	
	Valida : function(tipo){
		msg = '';
		estado = document.form1.estado.value;
		cidade = document.form1.cidade.value;
		bairro = document.form1.bairro.value;
		nome = document.form1.nome.value;
		//cep = document.form1.cep1.value + document.form1.cep2.value;
		
		if (tipo == 4){
			if (estado == ''){
				msg = 'Selecione um Estado';
			}else if (cidade == ''){
				msg = 'Selecione uma Cidade';
			}else if (bairro == '-Selecione um Bairro-'){
				msg = 'Selecione um Bairro';
			}
		}else if (tipo == 5){
			if (nome == ''){
				msg = 'Digite o nome da Revenda';
			}
		}/*else if (tipo == 6){
			if (cep == ''){
				msg = 'Digite o CEP';
			}else if (cep.length < 8){
				msg = 'Digite o CEP corretamente';
			}
		}*/
		
		return msg;
	},
	
	CarregaCidadeBusca : function(estado){
		
		if(estado!=''){
			response = Class_onde_comprar.Seleciona(0, estado, '', '', '', '', 2);
			if(response.error == null){
				var retorno = response.value;
				document.form1.cidade.length = 0;
				var ds = retorno;
				if(ds!=null && typeof(ds) == "object" && ds.Tables!=null){
					//define a quantidade de itens do dropdown(1 a mais da quantidade de itens do dataset)
					document.form1.cidade.length =ds.Tables[0].Rows.length+1;
					
					//adiciona um item no dropdown
					document.form1.cidade.options[0].text= '-Selecione uma Cidade-';
					document.form1.cidade.options[0].value= '';
					
					//adiciona os itens do dataset no dropdown
					for(var i=0; i<ds.Tables[0].Rows.length; i++){
						var row = ds.Tables[0].Rows[i];
						document.form1.cidade.options[i+1].text= row.cidade;
						document.form1.cidade.options[i+1].value= row.cidade;
					}
					
				} 
			}
		}else{
			document.form1.cidade.length = 1;
		}
	},
	
	Inicia : function() {
		
		estado = document.form1.html_estado.value;
		cidade = document.form1.html_cidade.value;
		
		if(estado !=''){
			document.form1.estado.value = estado;
		}
		if(cidade != ''){
			this.CarregaCidadeBusca(estado);
			document.form1.cidade.value = cidade;
		}
		
		
	},
	
	map : null,
	geocoder : null,
	mgr : null,
	markers : new Array(),
	dsRevendas : null,
	revendas : new Array(),
	revendaAtual :0,
	zoom: 16,
	pontoAtual : null,	
	flgIniciado : 0,
	cidades : new Array(),
	flgCoordRevenda : 0,
	
	carregaRevendaMapa : function(latitude,longitude){
		OndeComprar.map.setCenter(new GLatLng(latitude,longitude), 16);
		if(OndeComprar.flgIniciado==1){
			OndeComprar.flgCoordRevenda = 1;
			document.getElementById('DivConteudo').innerHTML = 'Carregando...';
		}else{
			document.getElementById('DivConteudo').innerHTML = '';	
			document.getElementById('paginacao').innerHTML = '';	
			document.getElementById('divMapa').style.display = '';
		}
	},
	
	localizaEndereco : function(){
		if(OndeComprar.flgIniciado==0){
			var endereco = document.form1.endereco.value + ' Brasil';
	
			if(endereco!=''){
				if (OndeComprar.geocoder) {
					OndeComprar.geocoder.getLatLng(endereco,function(point) {
						if (!point) {
							document.getElementById('DivConteudo').innerHTML = "<div id='text' style='width: 395px; padding-top: 50px;' align='center'><span><b>Nenhuma revenda encontrada. Veja se digitou corretamente ou tente outro endereço.</b></span></div>";
						} else {
							OndeComprar.pontoAtual = point;
							OndeComprar.zoom=16;
							OndeComprar.map.setCenter(point, 16);
							var marker = new GMarker(point);
							OndeComprar.map.addOverlay(marker);
								
							OndeComprar.centralizaRevendas();
						}	
						
					});
				}
			}
		}else{
			document.getElementById('DivConteudo').innerHTML = 'Carregando...';
			setTimeout(OndeComprar.localizaEndereco, 100);
		}
	},
	
	centralizaRevendas : function(){
		var area = OndeComprar.map.getBounds();
		var flgTodosNoMapa = 0;
		for(i=0;i<OndeComprar.revendas.length;i++){
			if(area.containsLatLng(OndeComprar.revendas[i]))
				flgTodosNoMapa=1;
		}
		if(flgTodosNoMapa==0){
			OndeComprar.map.setCenter(OndeComprar.pontoAtual, OndeComprar.zoom--);
			setTimeout(OndeComprar.centralizaRevendas, 10);
		}else{
			OndeComprar.map.setCenter(OndeComprar.pontoAtual, OndeComprar.zoom--);
			document.getElementById('divMapa').style.display = '';
			document.getElementById('DivConteudo').innerHTML = '';
			document.getElementById('paginacao').innerHTML = '';
		}
	},
	
	iniciaMapa : function(){
		if (GBrowserIsCompatible()) {
			if(this.flgIniciado==0){
				this.flgIniciado=1;
				OndeComprar.map = new GMap2(document.getElementById("divMapa"));
				OndeComprar.geocoder = new GClientGeocoder();
				OndeComprar.map.addControl(new GSmallMapControl());
				OndeComprar.map.addControl(new GMapTypeControl());
				OndeComprar.map.setCenter(new GLatLng(-15.782012028571738,-47.91961669921875), 4);
				OndeComprar.mgr = new GMarkerManager(OndeComprar.map);
				OndeComprar.carregaRevendasMapa();
			}else{
				this.recarregaMapa();	
			}
		}
	},
	
	carregaRevendasMapa : function(){
		onde_comprar.carregaRevendasMapa(OndeComprar.carregaRevendasMapaRetorno);
	},
	
	carregaRevendasMapaRetorno : function(retorno){
		OndeComprar.dsRevendas = retorno.value;
		if(OndeComprar.dsRevendas!=null && typeof(OndeComprar.dsRevendas) == "object" && OndeComprar.dsRevendas.Tables!=null){
			OndeComprar.revendaAtual = 0;
			OndeComprar.carregarevendasNoMapa();
			//document.getElementById('txtEndereco').disabled = false;
			OndeComprar.revendas.length = 0;
			OndeComprar.flgIniciado=1;
		}
	},
	
	carregarevendasNoMapa : function(){
		if(OndeComprar.revendaAtual==OndeComprar.dsRevendas.Tables[0].Rows.length){
			OndeComprar.mgr.addMarkers(OndeComprar.markers, 3, 17);
			setTimeout(OndeComprar.recarregaMapa, 100);
			OndeComprar.flgIniciado=0;
			if(document.getElementById('DivConteudo').innerHTM=='Carregando...')
				document.getElementById('DivConteudo').innerHTML = '';
			if(OndeComprar.flgCoordRevenda ==1){
				document.getElementById('divMapa').style.display = '';
				document.getElementById('DivConteudo').innerHTML = '';
				document.getElementById('paginacao').innerHTML = '';	
				OndeComprar.flgCoordRevenda =0;
			}
			//OndeComprar.map.setCenter(OndeComprar.pontoAtual, 12);
		}else{
			OndeComprar.adicionaMarker();
		}
	},
	
	adicionaMarker : function(){
		var row = OndeComprar.dsRevendas.Tables[0].Rows[OndeComprar.revendaAtual];
		var nome = row.nome;
		//var endereco = node.getElementsByTagName("endereco")[0].firstChild.nodeValue;
		var latitude = row.latitude;
		var longitude = row.longitude;
		var ponto = new GLatLng(latitude,longitude);
		OndeComprar.revendas.push(ponto);
		OndeComprar.pontoAtual = ponto;
		var marker = OndeComprar.createMarker(ponto,nome);
		var revendaMostra =OndeComprar.revendaAtual; 
		
		GEvent.addListener(marker, "click", function() {
			var row = OndeComprar.dsRevendas.Tables[0].Rows[revendaMostra];
			conteudo='';
			conteudo +='<p><b>' + row.nome + '</b></p>';
			conteudo +='<p>' + row.endereco + '</p>';
			conteudo +='<p>' + row.cidade + ' ' + row.estado + '</p>';
			conteudo +='<p>' + row.cep + '</p>';
			conteudo +='<p>' + row.telefone + '</p>';
			if(row.site!='')
				conteudo +='<p><a href="' + row.site + '" target="_blank">' + row.site + '</a></p>';
			if(document.form1.endereco.value!='')
				conteudo +='<p><a href="http://maps.google.com/maps?saddr=' + funcoes.montaEndereco(document.form1.endereco.value).value + ',+Brasil&geocode=CatfIPCizx3gFbKcmP4dOXE3_Q&dirflg=&daddr=' + funcoes.montaEndereco(row.endereco).value + '+' + funcoes.montaEndereco(row.cidade).value + '+' + funcoes.montaEndereco(row.estado).value + '&f=d&sll=-23.552068,-46.698182&sspn=0.010897,0.022638&ie=UTF8&z=13" target="_blank">Faça seu trajeto</a></p><br><br>';
			

			marker.openInfoWindowHtml(conteudo);										 
		});

	
	
		OndeComprar.markers.push(marker);
		OndeComprar.revendaAtual++;
		setTimeout(OndeComprar.carregarevendasNoMapa, 1);
	},
	
	createMarker : function(posn, title) {
		var baseIcon = new GIcon();
       // baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
        baseIcon.iconSize = new GSize(22, 19);
        baseIcon.shadowSize = new GSize(37, 34);
        baseIcon.iconAnchor = new GPoint(9, 34);
        baseIcon.infoWindowAnchor = new GPoint(9, 2);
        baseIcon.infoShadowAnchor = new GPoint(18, 25);
		var icone = new GIcon(baseIcon);
		icone.image = "_IMG/pinMapa.png";
		icone.iconSize = new GSize(59, 67);
		var marker = new GMarker(posn, {title: title,icon:icone });
		return marker;
    },
	
	recarregaMapa : function(){
		OndeComprar.mgr.refresh();
	}

}
