$(document).ready(function(){
	$('div#verTodasAsPaginas').hide();
	
	// Log da Applicacao
	if ($('form#logAcesso input#codigoPagina').val() != null) {
		logger($('form#logAcesso input#codigoPagina').val(), $('form#logAcesso input#nomePagina').val(),
				$('form#logAcesso input#codigoSecao').val(), $('form#logAcesso input#nomeSecao').val(),
				$('form#logAcesso input#referer').val());
	}
		
	// Busca CEP - Correios - Nao sei meu CEP
	$('.btnNaoseiCep').click(function() {
		window.open('http://www.correios.com.br/servicos/cep/cep_loc_log.cfm', 'naoSeiMeuCep', 'scrollbars=1, status=1, menubar=1, toolbar=1, location=1, resizable=1, height=500, width=700');
		
		return false;
	});
	
	// Mensagens em Geral
	if ($('div#conteudo_central div#msgLoading').html() == null) {
		var dataLoading = '<div id="msgLoading" class="boxAvisos bordaRed blocked"><p class="tipoAvisoRed">Aviso Importante</p><p class="tipoAvisoDescricao">';
			dataLoading += '<img src="' + baseURL + '/img/loader.gif" alt="carregando..." />Aguarde enquanto processamos a informação ...</p></div>';
	
		$('div#conteudo_central').prepend( dataLoading );
	}
	
	if ($('div#conteudo_central div#msgOk').html() == null) {
		var dataMsgOk = '<div id="msgOk" class="boxAvisos bordaGreen blocked" onClick="$(this).fadeOut(\'slow\')"><p class="tipoAvisoGreen">Confirmação feita com sucesso!</p>';
			dataMsgOk += '<p class="tipoAvisoDescricao">Email com a indicação enviado com sucesso !<br /><br />	<strong>Muito Obrigado,<br />';
			dataMsgOk += 'Equipe do Guia VR Delivery</strong></p></div>';
	
		$('div#conteudo_central').prepend( dataMsgOk );
	}
		
	// Mensagem de Erro ... esconde
	$('div#msgErro').click(function() {
		$(this).fadeOut('fast');
	});
	
	// Fale com a VR
	$('li#li_falecom a').click(function(event) { 
		event.preventDefault();
		TB_show('Guia VR Delivery :: Fale com a VR', baseURL + '/fale.do?height=580&width=530', true);
		
		return false;
	});
	
	// FORM Login de Usuarios box
	$('form#form_loginUsuarioBox').submit(function() {
		var email = $('input#inputEmail_loginUsuarioBox').val();
		var senha = $('input#inputSenha_loginUsuarioBox').val();
		
		// Informa que esta carregando
		selecionaAba('carregando');
		
		// Verifica se usuario e senha estao corretos
		$.post(baseURL + '/usuarios/login.do', { login_usuarioNm_email: email, login_usuarioNm_senha: senha, type: "usuario" }, function(data) {
			try {
				eval(data);
				
				if (user_logged) {
					// Limpa os valores
					$('input#inputEmail_loginUsuarioBox').val('');
					$('input#inputSenha_loginUsuarioBox').val('');
				
					// Valores do 'Meu Delivery'
					$.get(baseURL + '/usuarios/box_logged.do', function(data) {
						var conteudo = data;
					
						// Escreve conteudo dos favoritos
						$.get(baseURL + '/usuarios/box_favoritos.do', function(data) {
							$('div#topo_box div#favoritos ul#favoritosLista').html(data);
						
							// Exibe aba do usuario
							$('div#topo_box div#logIN p#login_boasVindas').html(conteudo);
							$('div#msgErro').hide();
							selecionaAba('logIN');
						});
					});
					
					// BUG da Listagem
					$('a.estab_favoritos').removeClass('blocked');
					$('a.estab_favoritos_nonuser').addClass('blocked');
				} else {
					$('div#msgErro p.tipoAvisoDescricao').html( '&Eacute; necess&aacute;rio digitar um e-mail/senha para entrar em sua &aacute;rea pessoal.' );
					$('div#msgErro').fadeIn('fast');
				
					selecionaAba('logOFF');
				}
			} catch (e) {
				alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
			}
		});
		
		return false;
	});
	
	// LINK Esqueceu a Senha
	$('a#login_esqueceuSenha').click(function() {
		selecionaAba('Senha');
		
		return false;
	});
	
	// FORM Esqueceu a Senha
	$('form#form_esqueceuSenha').submit(function() {
		var jField = $('#email_esqueceuSenha').jField({ name: 'Email', empty: 'no', type: 'email', typeError: '&Eacute; necess&aacute;rio digitar um e-mail v&aacute;lido para recuperar sua senha.', emptyError: '&Eacute; necess&aacute;rio digitar um e-mail para recuperar sua senha.' });
		var output = $.jForm.checkField( jField, 'email_esqueceuSenha' );
		
		// Faz validacao do email
		if (output.valid == false) {
			$('div#msgErro p.tipoAvisoDescricao').html( output.error );
			$('div#msgErro').fadeIn('fast');
		} else {
			// Informa que esta carregando
			selecionaAba('carregando');
			
			// Pega Email
			var email = $('#email_esqueceuSenha').val();
		
			// Verifica se email existe no banco de dados
			$.post(baseURL + '/usuarios/recupera_senha.do', { nm_email: email }, function(data) {
				try {
					eval (data);
					
					if (user_exists) {
						// Mostra confirmacao de email enviado
						$('div#msgErro').hide();
						selecionaAba('Senha');
						
						// Escreve Mensagem
						$('form#form_esqueceuSenha p').html(msg_retorno);
					
						// Exibe
						$('form#form_esqueceuSenha label').addClass('blocked');
						$('form#form_esqueceuSenha p').removeClass('blocked');
						$('form#form_esqueceuSenha input').toggleClass('blocked');
					
						$('form#form_esqueceuSenha input#btnEntrar').click(function() {
							selecionaAba('logOFF');
						
							$('form#form_esqueceuSenha label').removeClass('blocked');
							$('form#form_esqueceuSenha p').addClass('blocked');
							$('form#form_esqueceuSenha input').toggleClass('blocked');
					
							return false;
						});
					} else {
						// Email nao existe
						selecionaAba('Senha');
						
						$('div#msgErro p.tipoAvisoDescricao').html( "Esse email n&atilde;o existe em nossa base de dados." );
						$('div#msgErro').fadeIn('fast');
					}
				} catch (e) {
					alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
				}
			});
		}
		
		return false;
	});
	
	// BOTAO Esqueceu a Senha - Cancelar
	$('form#form_esqueceuSenha input#btnCancelar').click(function() {
		selecionaAba('logOFF');
		return false;
	});
	
	// Abas MEU DELIVERY / FAVORITOS / CONFIGURAR
	$('li.li_delivery a').click(function() {
		selecionaAba('logIN');
	});
	$('li.li_favoritos a').click(function() {
		selecionaAba('favoritos');
	});
	$('li.li_configurar a').click(function() {
		selecionaAba('configurar');
	});

	// Navegacao
	$('.verTodasAsPaginas').click(function() {
		if ($('div#verTodasAsPaginas').css('display') == 'none')
			$('div#verTodasAsPaginas').show();
		else
			$('div#verTodasAsPaginas').hide();
			
		return false;
	});
	
	// Filtro CIDADE
	$('select#filtro_cod_estado').change(function() {
		var cod_estado = $(this).val();
		if (cod_estado > 0) {
			aplicaBola('estado');
			$('select#filtro_cod_cidade').html( '<option value="0">Carregando</option>' );
			$('select#filtro_cod_bairro').html( '<option value="0">Seu Bairro:</option>' );
			$('select#filtro_cod_cozinha').html( '<option value="0">Tipo de Cozinha:</option>' );
			
			ajaxPegaCidades(cod_estado, 'filtro_cod_cidade', 'busca_vr');
		}
	});
	
	// Filtro BAIRRO
	$('select#filtro_cod_cidade').change(function() {
		var cod_cidade = $(this).val();
		if (cod_cidade > 0) {
			aplicaBola('cidade');
			$('select#filtro_cod_bairro').html( '<option value="0">Carregando</option>' );
			$('select#filtro_cod_cozinha').html( '<option value="0">Tipo de Cozinha:</option>' );
			
			ajaxPegaBairros(cod_cidade, 'filtro_cod_bairro', 'busca_vr');
		}
	});
	
	// Filtro COZINHA
	$('select#filtro_cod_bairro').change(function() {
		var cod_bairro = $(this).val();
		if (cod_bairro > 0) {
			aplicaBola('bairro');
			$('select#filtro_cod_cozinha').html( '<option value="0">Carregando</option>' );
			
			ajaxPegaCozinhas(cod_bairro, 'filtro_cod_cozinha', 'busca_vr');
		}
	});
	
	// Filtro COZINHA - MARCADO
	$('select#filtro_cod_cozinha').change(function() {
		var cod_cozinha = $(this).val();
		if (cod_cozinha > 0) {
			aplicaBola('cozinha');
		}
	});
	
	// Submit BUSCA ESTABELECIMENTO
	$('form#pesquisa').submit(function() {
		var cod_estado = $('select#filtro_cod_estado').val();
		var cod_cidade = $('select#filtro_cod_cidade').val();
		var cod_bairro = $('select#filtro_cod_bairro').val();
		var cod_cozinha = $('select#filtro_cod_cozinha').val();
		
		if (cod_estado == 0) {
			$('div#msgErro p.tipoAvisoDescricao').html( 'Selecione ao menos o estado para prosseguir com a busca.' );
			$('div#msgErro').fadeIn('fast');
			return false;
		}
		
		var url = filtro_estados[cod_estado]['nm_permalink'];
		if (cod_cidade > 0)
			url += "/" + filtro_cidades['busca_vr'][cod_estado][cod_cidade]['nm_permalink'];
		if (cod_cidade > 0 && cod_bairro > 0)
			url += "/" + filtro_bairros['busca_vr'][cod_cidade][cod_bairro]['nm_permalink'];
		if (cod_cidade > 0 && cod_bairro > 0 && cod_cozinha > 0)
			url += "/" + filtro_cozinhas['busca_vr'][cod_bairro][cod_cozinha]['nm_permalink'];
		
		window.location.href = baseURL + '/busca/' + url;
		
		return false;
	});
	
	// Indicar ESTABELECIMENTOS
	$('a.estab_indicar').click(function(event) {
		var total = 0;
		var estabs = '';
		var url_lista = $('form#formListaIndica input#url_lista').val();
		
		// Pega Estabelecimentos selecionados
		$('input.estabs_check').each(function () {
			if (this.checked == true) {
				total++;
				estabs += '&cod_estab=' + this.value;
			}
		});
		
		if (total == 0) {
			$('div#msgErro p.tipoAvisoDescricao').html('Selecione ao menos um estabelecimento para indicar a um amigo.');
			$('div#msgErro').fadeIn('fast');
		} else {
			event.preventDefault();
			TB_show('Guia VR Delivery :: Indicar a um amigo', baseURL + '/estabelecimentos/indica.do?height=480&width=540' + estabs + '&' + url_lista, true);
		}
		
		return false;
	});
	
	// Adicionar ESTABELECIMENTOS aos Favoritos
	$('a.estab_favoritos_nonuser').click(function(event) {
		$('div#msgErro p.tipoAvisoDescricao').html('Essa funcionalidade &eacute; apenas para usu&aacute;rios cadastrados e identificados.');
		$('div#msgErro').fadeIn('fast');
		
		return false;
	});
	$('a.estab_favoritos').click(function(event) { adicionaFavoritos(event); });
	
	// Imprimir ESTABELECIMENTOS
	$('a.estab_imprimir').click(function(event) {
		var total = 0;
		var estabs = '';

		// Pega Estabelecimentos selecionados
		$('input.estabs_check').each(function () {
			if (this.checked == true) {
				total++;
				estabs += '&cod_estab=' + this.value;
			}
		});
		
		if (total == 0) {
			$('div#msgErro p.tipoAvisoDescricao').html('Selecione ao menos um estabelecimento para poder imprimir.');
			$('div#msgErro').fadeIn('fast');
		} else {
			var href = baseURL + '/estabelecimentos/imprimir.do?void=1' + estabs;
		
			window.open(href, 'imprimir_estabelecimentos', 'scrollbars=1, height=690, width=670');
		}
		
		return false;
	});
	
	// Detalhe ESTABELECIMENTO
	$('a.estab_detalhes').click(function() {
		var detalhes = $(this).parents('div.ListagemEstab');
		detalhes = $('div.detalhesEstab', detalhes);
		detalhes.toggle('blocked');
		
		var img_src = $('img', this).attr('src');
		if (img_src.indexOf('btnDetalhesClose') == -1)
			img_src = img_src.replace('btnDetalhesOpen', 'btnDetalhesClose');
		else
			img_src = img_src.replace('btnDetalhesClose', 'btnDetalhesOpen');
		
		$('img', this).attr({ src: img_src });
		
		return false;
	});
	
	// Checkbox ESTABELECIMENTO
	$('input#estab_selecionaTodos').click(function() {
		var checked = this.checked;
		$('input.estabs_check').each(function() {		
			if (checked)
				this.checked = true;
			else
				this.checked = false;
		});
	});
	
	// Cardapio ESTABELECIMENTO
	$('a.estab_cardapio').click(function(event) {
		var cod_estab = $(this).parents('div.ListagemEstab');
		cod_estab = $('input.estabs_check', cod_estab);
		cod_estab = cod_estab.val();
		
		var href = baseURL + '/estabelecimentos/cardapio.do?cod_estab=' + cod_estab;
		
		event.preventDefault();
		TB_show('Guia VR Delivery :: Cardapio', href + '&height=560&width=524', true);
		
		return false;
	});
	
	// Fotos ESTABELECIMENTO
	//$('a.estab_fotos').unbind('click');
	$('a.estab_fotos').click(function(event) {
		var cod_estab = $(this).parents('div.ListagemEstab');
		cod_estab = $('input.estabs_check', cod_estab);
		cod_estab = cod_estab.val();
		
		var href = baseURL + '/estabelecimentos/fotos.do?estabId=' + cod_estab;
		
		//event.preventDefault();
		//TB_show('Guia VR Delivery :: Fotos', href + '&height=473&width=521', true);
		window.open(href, 'visualizar_fotos', 'scrollbars=1, height=620, width=540');
		
		return false;
	});
	
	// Promocao ESTABELECIMENTO
	$('a.estab_promocao').click(function() {
		var promocaoId = $(this).attr('id').replace('linkPromocao_', '');
		var href = baseURL + '/estabelecimentos/cupom.do?promocaoId=' + promocaoId;
		
		abreCupom(href);
		
		return false;
	});
	
	// Cadastro USUARIOS
	$('form#cadastroUsuarios').submit(function() {
		var possuo_cartao = $('input#in_possuo_cartao');
		var nr_cartao_2 = $('input#nr_cartao_2').val();
		var nr_cartao_3 = $('input#nr_cartao_3').val();
		var nr_cartao_4 = $('input#nr_cartao_4').val();
		
		var length = nr_cartao_2.length + nr_cartao_3.length + nr_cartao_4.length;
		if (length != 13 && possuo_cartao.get(0).checked) {
			jFormError($('input#nr_cartao_1'), 'Preencha corretamente o N&uacute;mero do Cart&atilde;o VR Refei&ccedil;&atilde;o.');
			
			$('input#nr_cartao_4').parent().addClass('naoValida');
			
			return false;
		} else {
			$('input#nr_cartao_4').parent().removeClass('naoValida');
		}
	});
	$('form#cadastroUsuarios').jForm({
		nm_nome: 			$('#nm_nome').jField({ name: 'Nome Completo', empty: 'no', minLength: 6, emptyError: 'Preencha o campo "Nome Completo" com no m&iacute;nimo 6 caracteres.' }),
		nm_email: 			$('#nm_email').jField({ name: 'E-mail', type: 'email', empty: 'no', emptyError: '&Eacute; obrigat&oacute;rio o preenchimento do campo "e-mail".' }),
		nm_emailConfirma: 	$('#nm_emailConfirma').jField({ name: 'Confirma&ccedil;&atilde;o de Email', type: 'email_confirmation', empty: 'no', emptyError: '&Eacute; obrigat&oacute;rio o preenchimento do campo "Confirma&ccedil;&atilde;o do E-mail".'  }),
		nr_celular: 		$('#nr_celular').jField({ name: 'Celular (DDD)', type: 'int', empty: 'yes', minLength: 2 }),
		nr_celular_: 		$('#nr_celular_').jField({ name: 'Celular', type: 'cel', empty: 'yes', minLength: 7, telDDD: 'nr_celular' }),
		nr_codigo_postal: 	$('#nr_codigo_postal').jField({ name: 'CEP', type: 'int', empty: 'no', minLength: 5, emptyError: '&Eacute; obrigat&oacute;rio o preenchimento do campo "CEP"' }),
		nr_codigo_postal_: 	$('#nr_codigo_postal_').jField({ name: 'CEP', type: 'int', empty: 'no', minLength: 3 }),
		nm_senha: 			$('#nm_senha').jField({ name: 'Senha', empty: 'no', minLength: 6, emptyError: 'Preencha o campo "Sua senha" com no m&iacute;nimo 6 caracteres.' }),
		nm_senhaConfirma: 	$('#nm_senhaConfirma').jField({ name: 'Senha', type: 'password_confirmation', empty: 'no', minLength: 6, emptyError: 'Por favor, insira a mesma senha utilizada no campo "Sua Senha"' })
	});
	
	// USUARIOS - Meus Enderecos
	$('input#incluiBairro_btnPesquisar').click(function() {
		var nr_codigo_postal = $('form#cadastroUsuarios_avisosForm input#addNr_codigo_postal').val();
		    nr_codigo_postal += "" + $('form#cadastroUsuarios_avisosForm input#addNr_codigo_postal_').val();
		
		$.post(baseURL + '/usuarios/bairros.do', { acao: 'adicionar', nr_codigo_postal: nr_codigo_postal }, function(data) {
			try {
				eval(data);
				
				if (bairro_adicionado != false) {
					$('form#cadastroUsuarios_avisosForm input#addNr_codigo_postal').val('');
		    		$('form#cadastroUsuarios_avisosForm input#addNr_codigo_postal_').val('');
				
					$('div#incluiBairro90').hide();
					
					var bairro = "<label id=\"usuario_bairro_" + cod_bairro + "\">";
						bairro += "<input type=\"text\" disabled=\"disabled\" value=\"" + bairro_adicionado + "\" />";
						bairro += "<a href=\"#\"  onClick=\"return excluirBairros(" + cod_bairro + ");\">";
						bairro += "<img src=\"" + baseURL + "/img/base_internas/icone_excluir.gif\" alt=\"excluir\" /> excluir</a>";
						bairro += "</label>";
					
					$('div#meusEnderecos').append(bairro);
				} else {
					$('div#incluiBairro90').fadeIn('fast');
				}
			} catch (e) {
				alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
			}
		});
				
		return false;
	});
	
	// ESTABELECIMENTO - CIDADES
	$('select#estabAdd_cod_estado').change(function() {
		var cod_estado = $(this).val();
		if (cod_estado > 0) {
			$('select#estabAdd_cod_cidade').html( '<option value="0">Carregando</option>' );
			
			ajaxPegaCidades(cod_estado, 'estabAdd_cod_cidade', null);
		}
	});
	
	// ESTABELECIMENTO - Bairros
	$('select#estabAdd_cod_cidade').change(function() {
		var cod_cidade = $(this).val();
		if (cod_cidade > 0) {
			$('select#estabAdd_cod_bairro').html( '<option value="0">Carregando</option>' );
			
			ajaxPegaBairros(cod_cidade, 'estabAdd_cod_bairro', null);
		}
	});
	
	// ESTABELECIMENTO - UPLOAD de Imagens
	$('form#passo4_uploadImages').submit(function() {
		var fotos = $('div#fotosCadEstab div.foto').length;
		var descricao = $('form#passo4_uploadImages input#fotoDescricao').val();
		
		if (descricao.length < 2) {
			$('div#msgErro p.tipoAvisoDescricao').html("Preencha o campo descri&ccedil;&atilde;o");
			$('div#msgErro').fadeIn('slow');
			
			return false;
		}
		
		// Checa se ja tem 3 fotos
		if (fotos < 3) {
			$('form#passo4_uploadImages').hide();
			$('div#passo4_uploadImagesCarregando').fadeIn('slow');
		} else {
			$('form#passo4_uploadImages').hide();
			
			return false;
		}
	});
	
	// ESTABELECIMENTO - REMOVER PROMOCAO
	$('a.promocao_exclui').click(function() {
		var objeto = $(this);
		var href = objeto.attr('href');
		var img_src = $('img', objeto).attr('src');
		
		if (img_src.indexOf('icone_excluir') != -1) {
			if (confirm('Deseja realmente excluir esta promocao?')) {
				img_src = img_src.replace('icone_excluir', 'icone_loader');
				$('img', objeto).attr({ src: img_src });
				
				var objeto_td = $(objeto).parents('td');
				
				// Request
				$.post(href, function() {
					$(objeto).parents('tr').remove();
				});
			}
		}
		
		return false;
	});
	
	// ESTABELECIMENTO - VISUALIZAR PROMOCAO
	$('a.promocao_visualiza').click(function () {
		var promocaoId = $('form#formPromocoes input#promocaoId').val();
		var estabId = $('form#formPromocoes input#estabId').val();
		var usuario = $('form#formPromocoes input#usuario').val();
		var te_grande = $('form#formPromocoes input#te_grande').val();
		var te_pequeno = $('form#formPromocoes input#te_pequeno').val();
		var te_instrucao = $('form#formPromocoes input#te_instrucao').val();
		
		var href = baseURL + '/comerciantes/estabelecimento.do?acao=visualizarPromocao';
			href = href + '&estabId=' + estabId + '&promocaoId=' + promocaoId;
			href = href + '&te_pequeno=' + encodeURI(te_pequeno) + '&te_grande=' + encodeURI(te_grande);
			href = href + '&te_instrucao=' + encodeURI(te_instrucao) + '&usuario=' + usuario;
		abreCupom(href);
	
		return false;
	});
	
	// ESTABELECIMENTO - CIDADES
	$('select#promocao_cod_estado').change(function() {
		var cod_estado = $(this).val();
		if (cod_estado > 0) {
			$('select#promocao_cod_cidade').html( '<option value="0">Carregando</option>' );
			
			ajaxPegaCidades(cod_estado, 'promocao_cod_cidade', 'busca_promocao');
		}
	});
	
	// ESTABELECIMENTO - Bairros
	$('select#promocao_cod_cidade').change(function() {
		var cod_cidade = $(this).val();
		if (cod_cidade > 0) {
			$('select#promocao_cod_bairro').html( '<option value="0">Carregando</option>' );
			
			ajaxPegaBairros(cod_cidade, 'promocao_cod_bairro', 'busca_promocao');
		}
	});
	
	// BUSCAR CEP
	$('a.buscar_cep').click(function() {
		if ($(this).html() != 'aguarde') {
			// Aguarde ...
			var objeto = this;
			
			// Requisicao
			var cep = $('input#nr_codigo_postal').val() + $('input#nr_codigo_postal2').val();
			$.get(baseURL + '/correios/busca_cep.do?cep=' + cep, function(data) {
				try {
					eval(data);
					
					if (!resultado_cep) {
						$('div#msgErro p.tipoAvisoDescricao').html('Esse CEP n&atilde;o consta em nosso banco de dados. Por favor, utilize um CEP v&aacute;lido.');
						$('div#msgErro').fadeIn('fast');
						sobeTopo();
					} else {
						$('input#nm_uf').val( resultado_cep.uf );
						$('input#nm_estado').val( resultado_cep.estado );
						$('input#nm_cidade').val( resultado_cep.cidade );
						$('input#cod_cidade').val( resultado_cep.cod_cidade );
						$('input#nm_bairro').val( resultado_cep.bairro );
						$('input#cod_bairro').val( resultado_cep.cod_bairro );
						$('input#nm_endereco').val( resultado_cep.endereco );
						
						$('input#cod_bairro').parent().removeClass('obrigatorio');
						$('input#cod_cidade').parent().removeClass('obrigatorio');
						
						$('div#cadastroPasso2Cep').show();
						$('p#dicaCep').hide();
					}
				} catch (e) {
					var msgErro = 'Ocorreu um erro durante a comunica&ccedil;&atilde;o com o servidor.';
					msgErro = msgErro + "<br /><br />Cep Buscado: " + cep;
					msgErro = msgErro + "<br />Resposta do Servidor: " + data;
					msgErro = msgErro + "<br /><br />Mensagem de erro: " + e;
					
					msgErro = msgErro + "<ul>";
					for (i in e) {
						msgErro = msgErro + "<li>" + i + "= " + e[i] + "</li>";
					}
					msgErro = msgErro + "</ul>";
					
					$('div#msgErro p.tipoAvisoDescricao').html(msgErro);
					$('div#msgErro').fadeIn('fast');
					sobeTopo();
				}
			});
		}
		
		return false;
	});
	
	// Remover Telefone/Cozinha/Entrega Estabelecimento
	$('a.estabExcluir_telefone, a.estabExcluir_cozinha, a.estabExcluir_entrega').click(function() {
		var obj = $(this);
		
		$.get(obj.attr('href'), function(data) {
			// Nada a fazer
		});
		obj.parent().remove();
	
		return false;
	});
	
	// Validacao ESTABELECIMENTOS
	$('#estabStage1').jForm({
		cod_vr_refeicao: $('#cod_vr_refeicao').jField({ name: 'C&oacute;digo de Identifica&ccedil;&atilde;o VR, caso n&atilde;o seja um estabelecimento credenciado, por favor, clique aqui.', type: 'int', empty: 'no', minLength: 3, minLengthError:'C&oacute;digo de identifica&ccedil;&atilde;o inv&aacute;lido, caso n&atilde;o seja um estabelecimento credenciado, por favor, clique aqui.' })
	});
	
	var msg_nr_codigo_postal = 'Insira um CEP v&aacute;lido com 8 caracteres.';
	var msg_nm_responsavel = 'Preencha o campo "Respons&aacute;vel" com no m&iacute;nimo 6 caracteres.'
	var msg_nr_telefone = '&Eacute; obrigat&oacute;rio o preenchimento dos campos "DDD + Telefone".'
	var msg_nm_email = '&Eacute; obrigat&oacute;rio o preenchimento do campo "E-mail"'
	var msg_nm_senha = 'Preencha o campo "Sua senha" com no m&iacute;nimo 6 caracteres.'
	
	$('#estabStage2').jForm({
		nm_razao_social: 		$('#nm_razao_social').jField({ name: 'Raz&atilde;o Social', empty: 'no', minLength: 6, minLengthError:'Preencha o campo "Raz&atilde;o Social da Empresa" com no m&iacute;nimo 6 caracteres.' }),
		nm_nome_fantasia: 		$('#nm_nome_fantasia').jField({ name: 'Nome Fantasia', empty: 'no', minLength: 6, minLengthError:'Preencha o campo "Nome Fantasia" com no m&iacute;nimo 6 caracteres.' }),
		nr_cnpj: 				$('#nr_cnpj').jField({ name: 'CNPJ', type: 'cnpj', empty: 'no', typeError:'Utilize um CNPJ v&aacute;lido, no formato 00.000.000/0000-00.', emptyError:'Utilize um CNPJ v&aacute;lido, no formato 00.000.000/0000-00.' }),
		//nm_website:				$('#nm_website').jField({ name: 'Website', empty: 'yes', minLength: 10 }),
		nr_codigo_postal: 		$('#nr_codigo_postal').jField({ name: 'C&oacute;digo Postal', type: 'int', empty: 'no', minLength: 5, typeError: msg_nr_codigo_postal, emptyError: msg_nr_codigo_postal }),
		nr_codigo_postal2: 		$('#nr_codigo_postal2').jField({ name: 'C&oacute;digo Postal', type: 'int', empty: 'no', minLength: 3, typeError: msg_nr_codigo_postal, emptyError: msg_nr_codigo_postal }),
		cod_bairro: 			$('#cod_bairro').jField({ name: 'C&oacute;digo Postal (Clique em buscar endere&ccedil;o)', empty: 'no', minLenght: 1 }),
		cod_cidade: 			$('#cod_cidade').jField({ name: 'C&oacute;digo Postal (Clique em buscar endere&ccedil;o)', empty: 'no', minLenght: 1 }),
		nm_endereco:	 		$('#nm_endereco').jField({ name: 'Endere&ccedil;o', empty: 'no', minLenght: 4 }),
		nr_endereco_numero:		$('#nr_endereco_numero').jField({ name: 'N&ordm;', empty: 'no', minLength: 2 }),
		nm_responsavel:			$('#nm_responsavel').jField({ name: 'Respons&aacute;vel', empty: 'no', minLength: 6, typeError: msg_nm_responsavel, emptyError: msg_nm_responsavel, minLengthError: msg_nm_responsavel }),
		nr_ddd:					$('#nr_ddd').jField({ name: 'Telefone (DDD)', empty: 'no', type: 'int', minLength: 2, typeError: msg_nr_telefone, emptyError: msg_nr_telefone, minLengthError: msg_nr_telefone }),
		nr_telefone:			$('#nr_telefone').jField({ name: 'Telefone', empty: 'no', type: 'tel', minLength: 7, telDDD: 'nr_ddd' , typeError: msg_nr_telefone, emptyError: msg_nr_telefone, minLengthError: msg_nr_telefone }),
		nm_email:				$('#nm_email').jField({ name: 'Email', empty: 'no', type: 'email', emptyError: msg_nm_email, typeError:'Por favor, utilize um e-mail v&aacute;lido.'  }),
		nm_email_alternativo:	$('#nm_email_alternativo').jField({ name: 'Email Alternativo', empty: 'yes', type: 'email' }),
		nm_senha:				$('#nm_senha').jField({ name: 'Senha', empty: 'no', minLength: 6, typeError: msg_nm_senha, emptyError: msg_nm_senha, minLengthError: msg_nm_senha }),
		nm_senhaConfirma:		$('#nm_senhaConfirma').jField({ name: 'Senha', empty: 'no', type: 'password_confirmation', minLength: 6 }),
		qt_minismart: 			$('#qt_minismart').jField({ name: 'Quantidade MiniSmart', type: 'int', empty: 'yes' })
	});
	$('input#nr_inscricao_estadual').focus(function () {
		$('input#in_isento').attr({ checked: false });
	});
	
	$('#estabStage3').submit(function() {
		var telefones = $('div#telefonesEstabs label').length;
		var cozinhas = $('div#addCozinhas label').length;
		
		if (telefones < 1) {
			jFormError($('input#addNr_telefone'), 'Coloque apenas n&uacute;meros no campo telefone e clique em adicionar.');
			
			return false;
		} else if (cozinhas < 1) {
			jFormError($('select#estabAdd_cod_cozinhas'), 'Escolha pelo menos um tipo de cozinha e clique em adicionar.');
			
			return false;
		}
	});
	$('#estabStage3').jForm({
		te_descricao: 		$('#te_descricao').jField({ name: 'Descri&ccedil;&atilde;o', empty: 'no', minLength: 30, typeError: 'Preencha o campo "Descri&ccedil;&atilde;o" com no m&iacute;nimo 30 caracteres.', emptyError: 'Preencha o campo "Descri&ccedil;&atilde;o" com no m&iacute;nimo 30 caracteres.', minLengthError: 'Preencha o campo "Descri&ccedil;&atilde;o? com no m&iacute;nimo 30 caracteres.' })
	});
	
	$('#estabStage4').submit(function() {
		var entregas = $('div#addAreaEntrega label').length;
		
		if (entregas < 1) {
			jFormError($('select#estabAdd_cod_estado'), 'Escolhe pelo menos um bairro e clique em adicionar.');
			
			return false;
		}
	});
	$('#estabStage4').jForm({
		vl_taxa_entrega: 	$('#vl_taxa_entrega').jField({ name: 'Taxa de Entrega', empty: 'yes', type: 'currency' })
	});
	
	$('td.dias label').each(function() {
		$('input#nr_dia_semana', this).click(function() {
			var objeto = this;
			var objeto_tr = $(objeto).parents('tr');
			
			$('td.horarios label select#tp_abertura', objeto_tr).attr({ disabled: !this.checked });
			$('td.horarios label select#tp_fechamento', objeto_tr).attr({ disabled: !this.checked });
		});
	});
	
	// AVALIACAO ESTABELECIMENTOS
	$('a.r1-unit, a.r2-unit, a.r3-unit, a.r4-unit, a.r5-unit').click(function () {
		var objeto = this;
		var div = $(objeto).parents('div');
		var cod_estab = $(objeto).parents('div.ListagemEstab');
		cod_estab = $('input.estabs_check', cod_estab);
		cod_estab = cod_estab.val();
		
		var nr_avaliacao = objeto.className;
		if (nr_avaliacao.indexOf('r5-unit') != -1) {
			nr_avaliacao = 5;
		} else if (nr_avaliacao.indexOf('r4-unit') != -1) {
			nr_avaliacao = 4;
		} else if (nr_avaliacao.indexOf('r3-unit') != -1) {
			nr_avaliacao = 3;
		} else if (nr_avaliacao.indexOf('r2-unit') != -1) {
			nr_avaliacao = 2;
		} else {
			nr_avaliacao = 1;
		}
		
		// Ve se esta carregando
		if (div.children('.vote-again').html() != 'Computando voto...') {
			div.children('.vote-help').hide();
			div.children('#dicaVotar').hide();
			// Coloca mensagem
			div.children('.vote-again').show();
			div.children('.vote-again').html('Computando voto...');
			
			// Inabilita links
			$(objeto).parents('ul').children('li').not('.current-rating').addClass('blocked');
			
			// Faz request para avaliar
			$.post(baseURL + '/estabelecimentos/avalia.do', 
				{ cod_estab: cod_estab, nr_avaliacao: nr_avaliacao }, 
				function (data) {
					eval(data);
					
					if (user_logged) {
						div.children('.vote-again').html('Sua nota (' + nr_avaliacao + ') foi salva com sucesso.<br />' +
									'A m&eacute;dia atual deste estabelecimento &eacute;: ' + (rating / 20) + '.' +
									' <a href="#">Deseja mudar seu voto?</a><br />');
						div.children('.vote-again').addClass('dicaVotar');
						
						div.children('.vote-again').children('a').click(function() {
							// Habilita links
							$(this).parents('p').parents('div').children('ul').children('li').not('.current-rating').removeClass('blocked');
								
							div.children('.vote-help').show();
							div.children('.vote-again').hide();
								
							return false;
						});
						
						rating = rating + (rating / 10);
						$(objeto).parents('ul').children('li.current-rating').css('width', rating + 'px');
					} else {
						div.children('.vote-help').show();
						div.children('#dicaVotar').show();
						div.children('.vote-again').hide();
					}
			});
		}
			
		return false;
	});
	
	// VALIDACAO PROMOCOES
	$('form#formPromocoes textarea#te_grande, form#formPromocoes textarea#te_pequeno').keyup(function() {
		var total = (this.id == 'te_pequeno') ? 145 : 55
		var tamanho = $(this).val().length;
		var restante = total - tamanho;
		
		if (restante <= 0) {
			$('form#formPromocoes textarea#' + this.id).val($('form#formPromocoes textarea#' + this.id).val().substr(0, 145));
			restante = 0;
		}
		
		$('form#formPromocoes strong#' + this.id + '_length').html( restante + ' caracteres restantes');
	});
	
	var promocaoValida = $('form#formPromocoes').jForm({
		nm_titulo: $('#nm_titulo').jField({ name: 'T&iacute;tulo do Banner', empty: 'no', minLength: '6' }),
		di_inicio: $('#di_inicio').jField({ name: 'Data in&iacute;cio', type: 'date', empty: 'no', showIcon: 'false' }),
		di_termino: $('#di_termino').jField({ name: 'Data termino', type: 'date-biggest', empty: 'no', showIcon: 'false' }),
		te_grande: $('#te_grande').jField({ name: 'Texto do T&iacute;tulo do an&uacute;ncio', empty: 'no', minLength: '10' }),
		te_pequeno: $('#te_pequeno').jField({ name: 'Texto menor do cupom', empty: 'no', minLength: '10' })
		//te_instrucao: $('#te_instrucao').jField({ name: 'Texto de Instru&ccedil;&otilde;es', empty: 'no', minLength: '4' })
	});
	
	$('form#formAlterarStatus').submit(function(){ 
		var valid = $.jForm.checkFields( promocaoValida );
		if (!valid) {
			$('div#msgErro p.tipoAvisoDescricao').html('Esta promo&ccedil;&atilde;o contem erros, por favor, corrija-os abaixo.');
			$('div#msgErro').show();
		
			return false;
		}
	});
});

// Abre Promocao
function abreCupom(href) {
	window.open(href, 'imprimir_cupom', 'scrollbars=1, height=420, width=540');
	
	return false;
}

//ir para o TOPO
function sobeTopo(offsetTop){
	// pega a posicao da barra de rolagem
	var scroll = 0;
	if (window.scrollY)
		scroll = window.scrollY;
	else if (document.documentElement.scrollTop)
		scroll = document.documentElement.scrollTop;
	else
		scroll = document.body.scrollTop;
	
	if (typeof offsetTop == 'number') {
		if (offsetTop >= scroll) {
			window.scrollTo(0, offsetTop - 50);
			
			return true;
		}
	} else {
		offsetTop = 0;
	}
	
	if (scroll > 0)
	{
		window.scrollTo(0, scroll - 50);
		
		setTimeout('sobeTopo(' + offsetTop + ')', 4);
	}
}

var filtro_cidades = new Array();
function ajaxPegaCidades(cod_estado, select, busca_vr, pre_select) {
	var urlBuscaVr = "";
	if (busca_vr == null) {
		busca_vr = "default";
	} else {
		urlBuscaVr = "&busca_vr=" + busca_vr;
	}
	
	if (pre_select == null) {
		pre_select = 0;
	}
	
	if (typeof(filtro_cidades[busca_vr]) == 'undefined') {
		filtro_cidades[busca_vr] = new Array();
	}
	
	// Requisicao
	if (typeof(filtro_cidades[busca_vr][cod_estado]) == 'undefined') {
		$.get(baseURL + '/correios/cidades/javascript.do?cod_estado=' + cod_estado + urlBuscaVr, function(data) {
			try {
				eval(data);
			} catch (e) {
				alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
				return false;
			}
			filtro_cidades[busca_vr][cod_estado] = resultado;
			var cidades = filtro_cidades[busca_vr][cod_estado];
					
			var options = '<option value="0">Cidade:</option>';
			for (i in cidades) {
				if (cidades[i].cod_cidade == pre_select)
					options += '<option value="' + cidades[i].cod_cidade + '" selected>';
				else
					options += '<option value="' + cidades[i].cod_cidade + '">';
					
				options += cidades[i].nm_cidade + '</option>';
			}
			$('select#' + select).html( options );
			$('select#' + select).val( pre_select );
		});
	} else {
		var cidades = filtro_cidades[busca_vr][cod_estado];
		var options = '<option value="0">Cidade:</option>';
		for (i in cidades) {
			if (cidades[i].cod_cidade == pre_select)
				options += '<option value="' + cidades[i].cod_cidade + '" selected>';
			else
				options += '<option value="' + cidades[i].cod_cidade + '">';
				
			options += cidades[i].nm_cidade + '</option>';
		}
		$('select#' + select).html( options );
		$('select#' + select).val( pre_select );
	}
}

var filtro_bairros = new Array();
function ajaxPegaBairros(cod_cidade, select, busca_vr, pre_select) {
	var urlBuscaVr = "";
	if (busca_vr == null) {
		busca_vr = "default";
	} else {
		urlBuscaVr = "&busca_vr=" + busca_vr;
	}
	
	if (pre_select == null) {
		pre_select = 0;
	}
	
	if (typeof(filtro_bairros[busca_vr]) == 'undefined') {
		filtro_bairros[busca_vr] = new Array();
	}
	
	// Requisicao
	if (typeof(filtro_bairros[busca_vr][cod_cidade]) == 'undefined') {
		$.get(baseURL + '/correios/bairros/javascript.do?cod_cidade=' + cod_cidade + urlBuscaVr, function(data) {
			try {
				eval(data);
			} catch (e) {
				alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
				return false;
			}
			filtro_bairros[busca_vr][cod_cidade] = resultado;
			var bairros = filtro_bairros[busca_vr][cod_cidade];
			
			var options = '<option value="0">Seu Bairro:</option>';
			for (i in bairros) {
				if (bairros[i].cod_bairro == pre_select)
					options += '<option value="' + bairros[i].cod_bairro + '" selected>';
				else
					options += '<option value="' + bairros[i].cod_bairro + '">';
				
				options += bairros[i].nm_bairro + '</option>';
			}
			$('select#' + select).html( options );
			$('select#' + select).val( pre_select );
		});
	} else {
		var bairros = filtro_bairros[busca_vr][cod_cidade];
		var options = '<option value="0">Seu Bairro:</option>';
		for (i in bairros) {
			if (bairros[i].cod_bairro == pre_select)
				options += '<option value="' + bairros[i].cod_bairro + '" selected>';
			else
				options += '<option value="' + bairros[i].cod_bairro + '">';
				
			options += bairros[i].nm_bairro + '</option>';
		}
		$('select#' + select).html( options );
		$('select#' + select).val( pre_select );
	}
}

var filtro_cozinhas = new Array();
function ajaxPegaCozinhas(cod_bairro, select, busca_vr, pre_select) {
	var urlBuscaVr = "";
	if (busca_vr == null) {
		busca_vr = "default";
	} else {
		urlBuscaVr = "&busca_vr=" + busca_vr;
	}
	
	if (pre_select == null) {
		pre_select = 0;
	}
	
	if (typeof(filtro_cozinhas[busca_vr]) == 'undefined') {
		filtro_cozinhas[busca_vr] = new Array();
	}
	
	// Requisicao
	if (typeof(filtro_cozinhas[busca_vr][cod_bairro]) == 'undefined') {
		$.get(baseURL + '/cozinhas/javascript.do?cod_bairro=' + cod_bairro, function(data) {
			try {
				eval(data);
			} catch (e) {
				alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
				return false;
			}
			filtro_cozinhas[busca_vr][cod_bairro] = resultado;
			var cozinhas = filtro_cozinhas[busca_vr][cod_bairro];
			
			var options = '<option value="0">Todas as Cozinhas</option>';
			for (i in cozinhas) {
				if (cozinhas[i].cod_cozinha == pre_select)
					options += '<option value="' + cozinhas[i].cod_cozinha + '" selected>';
				else
					options += '<option value="' + cozinhas[i].cod_cozinha + '">';

				options += cozinhas[i].nm_cozinha + '</option>';
			}
			$('select#filtro_cod_cozinha').html( options );
			$('select#filtro_cod_cozinha').val( pre_select );
		});
	} else {
		var cozinhas = filtro_cozinhas[busca_vr][cod_bairro];
		
		var options = '<option value="0">Todas as Cozinhas:</option>';
		for (i in cozinhas) {
			if (cozinhas[i].cod_cozinha == pre_select)
				options += '<option value="' + cozinhas[i].cod_cozinha + '" selected>';
			else
				options += '<option value="' + cozinhas[i].cod_cozinha + '">';
					
			options += cozinhas[i].nm_cozinha + '</option>';
		}
		$('select#filtro_cod_cozinha').html( options );
		$('select#filtro_cod_cozinha').val( pre_select );
	}
}

function login_usuario() {
	$('#login_usuario').submit();
	/*var email = $('input#login_usuarioNm_email').val();
	var senha = $('input#login_usuarioNm_senha').val();
	
	// Esta carregando
	$('p#login_usuarioParagraph').show();
	$('fieldset#login_usuarioFieldset').hide();
	
	// Verifica se usuario e senha estao corretos
	$.post(baseURL + '/usuarios/login.do', { nm_email: email, nm_senha: senha }, function(data) {
		try {
			eval(data);
			
			if (user_logged) {
				location.href= baseURL + "/usuarios/meusdados.do";
			} else {
				$('div#msgErro p.tipoAvisoDescricao').html( 'E-mail/Senha inv&aacute;lidos. Por favor, tente novamente.' );
				$('div#msgErro').fadeIn('fast');
				
				$('p#login_usuarioParagraph').hide();
				$('fieldset#login_usuarioFieldset').show();
			}
		} catch (e) {
			alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
		}
	});*/
	
	
	return true;
}

function logout_usuario() {
	// Carrega pagina e destroy sessao
	
	$.get(baseURL + '/usuarios/login.do', { type: 'logoff' }, function(data) {
		try {
			eval(data);
			
			if (!user_logged) {
				// Exibe tela de login
				selecionaAba('logOFF');
				
				location.href = baseURL + '/';
			}
			return false;
		} catch (e) {
			alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
			return false;
		}
	});
}

function selecionaAba(aba) {
	$('div#topo_box div').each(function() {
		$(this).addClass('blocked');
	});
	
	$('div#topo_box div#' + aba).removeClass('blocked');
}

function clienteSelecionaAba(aba) {
	// Aba
	$('ul#abas_usuarios li').each(function() {
		$(this).removeClass('aba_ativo');
		$(this).addClass('aba_normal');
	});
	$('ul#abas_usuarios li#aba_' + aba).addClass('aba_ativo');

	// Conteudo
	$('div#cadastroUsuarios_dados').hide();
	$('div#cadastroUsuarios_favoritos').hide();
	$('div#cadastroUsuarios_avisos').hide();
	
	$('div#cadastroUsuarios_' + aba).show();
	
	return false;
}

function adicionaFavoritos(event) {
	var total = 0;
	var estabs = '';
	
	// Pega Estabelecimentos selecionados
	$('input.estabs_check').each(function () {
		if (this.checked == true) {
			total++;
			estabs += '&cod_estab=' + this.value;
		}
	});
	
	if (total == 0) {
		$('div#msgErro p.tipoAvisoDescricao').html('Selecione ao menos um estabelecimento para adicionar aos seus favoritos.');
		$('div#msgErro').fadeIn('fast');
	} else {
		event.preventDefault();
		TB_show('Guia VR Delivery :: Adicionar aos Favoritos', baseURL + '/estabelecimentos/favoritos.do?height=440&width=524' + estabs, true);
	}
	
	return false;
}

function excluirFavoritos(cod_estab) {
	$.post(baseURL + '/usuarios/favoritos/exclui.do', { estabId: cod_estab }, function(data) {
		try {
			$('div#usuario_estab_' + cod_estab).remove();
			$('div#msgDicaFavorito p.tipoAvisoDescricao').html('Favorito removido com sucesso !');
			$('div#msgDicaFavorito').fadeIn('fast');
			
			//eval(data);
			
			//if (estab_deleted) {
			//	$('div#usuario_estab_' + cod_estab).remove();
			//} else {
			//	$('div#msgErro p.tipoAvisoDescricao').html( 'Erro ao tentar excluir estabelecimento.' );
			//	$('div#msgErro').fadeIn('fast');
			//}
			
			return false;
		} catch (e) {
			alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
			return false;
		}
	});
	
	return false;
}

function excluirBairros(cod_bairro) {
	$.post(baseURL + '/usuarios/bairros.do', { acao: 'excluir', cod_bairro: cod_bairro }, function(data) {
		try {
			eval(data);
			
			if (bairro_deleted) {
				$('label#usuario_bairro_' + cod_bairro).remove();
			} else {
				$('div#msgErro p.tipoAvisoDescricao').html( 'Erro ao tentar excluir bairro.' );
				$('div#msgErro').fadeIn('fast');
			}
			
			return false;
		} catch (e) {
			alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
			return false;
		}
	});
	
	return false;
}

function aplicaBola(combo) {
	switch (combo) {
		case 'estado':
			aplicaBolaVerdeCombo('cidade');
		case 'cidade':
			aplicaBolaVerdeCombo('bairro');
		case 'bairro':
			aplicaBolaVerdeCombo('cozinha');
	}
	
	aplicaBolaLaranjaCombo(combo);
}

function aplicaBolaVerdeCombo(combo) {
	var img_src = $('img#filtro_' + combo + '_bola').attr('src');
	img_src = img_src.replace('laranja', 'verde');
	
	$('img#filtro_' + combo + '_bola').attr({ src: img_src });
}

function aplicaBolaLaranjaCombo(combo) {
	var img_src = $('img#filtro_' + combo + '_bola').attr('src');
	img_src = img_src.replace('verde', 'laranja');
	
	$('img#filtro_' + combo + '_bola').attr({ src: img_src });
}

// ESTABELECIMENTOS
function estabAdicionaTelefone() {
	var nr_ddd = $('input#addNr_ddd').val();
	var nr_telefone = $('input#addNr_telefone').val();
	
	var telefone = '<label>';
		telefone += '<input type="text" value="(' + nr_ddd + ') ' + nr_telefone + '" disabled="disabled" />';
			telefone += '<input type="hidden" value="' + nr_ddd + '" name="nr_ddd_group" />';
			telefone += '<input type="hidden" value="' + nr_telefone + '" name="nr_telefone_group" />';
		telefone += '<a href="#" onClick="$(this).parent().remove(); return false;"><img src="' + baseURL + '/img/base_internas/icone_excluir.gif" alt="excluir" /> excluir</a>';
		telefone += '</label>';

	if (nr_ddd.length == 2 && !nr_ddd.match(/[^\d]/) && (nr_telefone.length == 7 || nr_telefone.length == 8) && !nr_telefone.match(/[^\d]/)) {
		$('div#jFormError').hide();
		
		$('div#telefonesEstabs').append(telefone);
		
		$('input#addNr_ddd').val('');
		$('input#addNr_telefone').val('');
	} else {
		jFormError($('input#addNr_telefone'), 'Coloque apenas n&uacute;meros no campo telefone.');
	}
	
	return false;
}

function selecionaTodosDias(tp_checked) {
	var tp_checked = $('input#dia_semana_todos').attr('checked');
	
	if (tp_checked == undefined)
		tp_checked = false;
	
	var tp_abertura = $('select#abertura_todos option[@selected]').val();
	var tp_fechamento = $('select#fechamento_todos option[@selected]').val();
	
	$('select#abertura_todos').attr({ disabled: !tp_checked });
	$('select#fechamento_todos').attr({ disabled: !tp_checked });
	
	$('td.dias label').each(function() {
		$('input#nr_dia_semana', this).attr({ checked: tp_checked });
	});
	$('td.horarios label').each(function() {
		$('select#tp_abertura', this).val(tp_abertura);
		$('select#tp_fechamento', this).val(tp_fechamento);
		
		$('select#tp_abertura', this).attr({ disabled: !tp_checked });
		$('select#tp_fechamento', this).attr({ disabled: !tp_checked });
	});
}

function estabAdicionaBairro() {
	var cod_bairro = $('select#estabAdd_cod_bairro option[@selected]').val();
	
	if (cod_bairro > 0) {
		$('div#jFormError').hide();
		
		var nm_uf = $('select#estabAdd_cod_estado option[@selected]').text();
		var nm_cidade = $('select#estabAdd_cod_cidade option[@selected]').text();
		var nm_bairro = $('select#estabAdd_cod_bairro option[@selected]').text();
		var nm_endereco = nm_uf + ' > ' + nm_cidade + ' > ' + nm_bairro;
		
		var data = '<label>' +
						'<input type="text" disabled="disabled" value="' + nm_endereco + '" />' +
						'<input type="hidden" name="cod_bairro_entrega" id="cod_bairro_entrega" value="' + cod_bairro + '" />' +					
						'<a href="#" onClick="$(this).parent().remove(); return false;">'+
						'<img src="' + baseURL + '/img/base_internas/icone_excluir.gif" alt="excluir" /> excluir</a>' +
					'</label>';
		
		$('div#addAreaEntrega').append(data);
	}
	
	return false;
}

function estabAdicionaCozinha() {
	var cod_cozinha = $('select#estabAdd_cod_cozinhas option[@selected]').val();
	
	if (cod_cozinha > 0) {
		$('div#jFormError').hide();
		
		var nm_cozinha = $('select#estabAdd_cod_cozinhas option[@selected]').text();
		
		var data = '<label>' +
						'<input type="text" disabled="disabled" value="' + nm_cozinha + '" />' + 
						'<input type="hidden" id="cod_cozinha" name="cod_cozinha" value="' + cod_cozinha + '" />' + 
						'<a href="#" onClick="$(this).parent().remove(); return false;">' +
						'<img src="' + baseURL + '/img/base_internas/icone_excluir.gif" alt="excluir" /> excluir</a>' +
					'</label>';
		
		$('div#addCozinhas').append(data);
	}
	
	return false;
}

// Fotos do Estabelecimento
function estabPhotoUploaded(url) {
	$.post(url, function(data) {
		$('div#fotosCadEstabFotos').html(data);
	
		// Limpa formulario
		$('form#passo4_uploadImages input#foto').val('');
		$('form#passo4_uploadImages input#fotoDescricao').val('');
		$('div#passo4_uploadImagesCarregando').hide();
		$('div#msgErro').hide();
		
		// Exibe formulario se puder colocar mais fotos
		if ($('div#fotosCadEstab div.foto').length < 3)
			$('form#passo4_uploadImages').show();
	});
}

function imagesUploadedError() {
	// Upload de Fotos do Estabelecimento
	$('form#passo4_uploadImages').show();
	$('div#passo4_uploadImagesCarregando').hide();
	$('div#msgErro').show();
	$('div#msgErro p.tipoAvisoDescricao').html("Ocorreu um erro durante o upload. Certifique-se que o arquivo tem no m&aacute;ximo 1MB e que est&aacute; no formato .JPG ou .PNG");
}

function esqueceuSenha() {
	var email = $('input#login_esqueceuSenha_email').val();
	
	// Informa que esta executando
	$('fieldset#fieldsetLogin_esqueceuSenha').addClass('blocked');
	$('p#pLogin_esqueceuSenha').removeClass('blocked');
	
	$.post(baseURL + '/usuarios/recupera_senha.do', { nm_email: email }, function(data) {
		try {
			eval(data);
			
			if (user_exists) {
				// Limpa os valores
				$('input#login_esqueceuSenha_email').val('');
				
				// Exibe confirmacao
				$('div#msgErro').fadeOut('fast');
				$('div#login_EsqueciSenha').fadeOut('fast');
				$('div#confirmacaoEsqueceuSenha').fadeIn('fast');				
			} else {
				$('div#msgErro p.tipoAvisoDescricao').html( 'Esse email n&atilde;o existe em nossa base de dados.' );
				$('div#msgErro').fadeIn('fast');
			}
			
			$('fieldset#fieldsetLogin_esqueceuSenha').removeClass('blocked');
			$('p#pLogin_esqueceuSenha').addClass('blocked');
		} catch (e) {
			alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
		}
	});
	
	return false;
}

function login_estab() {
	var email = $('input#login_estabNm_email').val();
	var senha = $('input#login_estabNm_senha').val();
	
	// Esta carregando
	$('p#login_estabParagraph').show();
	$('fieldset#login_estabFieldset').hide();
	
	// Verifica se usuario e senha estao corretos
	$.post(baseURL + '/estabelecimentos/login.do', { nm_email: email, nm_senha: senha }, function(data) {
		try {
			eval(data);
			
			if (user_logged) {
				location.href= baseURL + "/estabelecimentos/meusdados.do";
				
			} else {
				$('div#msgErro p.tipoAvisoDescricao').html( 'E-mail/Senha inv&aacute;lidos. Por favor, tente novamente..' );
				$('div#msgErro').fadeIn('fast');
				
				$('p#login_estabParagraph').hide();
				$('fieldset#login_estabFieldset').show();
			}
		} catch (e) {
			alert('Ocorreu um erro durante a comunicacao com o servidor.' + "\n\n" + e.getMessage());
		}
	});
	
	return false;
}

function url_encode(str) {
    var hex_chars = "0123456789ABCDEF";
    var noEncode = /^([a-zA-Z0-9\_\-\.])$/;
    var n, strCode, hex1, hex2, strEncode = "";

    for(n = 0; n < str.length; n++) {
        if (noEncode.test(str.charAt(n))) {
            strEncode += str.charAt(n);
        } else {
            strCode = str.charCodeAt(n);
            hex1 = hex_chars.charAt(Math.floor(strCode / 16));
            hex2 = hex_chars.charAt(strCode % 16);
            strEncode += "%" + (hex1 + hex2);
        }
    }
    return strEncode;
}


// FLASH 7//
function flash(nome, id, com, alt, query){
	document.write(
		'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="'+com+'" height="'+alt+'" id="'+id+'" align="middle">' +
		'<param name="allowScriptAccess" value="sameDomain" />' +
		'<param name="movie" value="'+nome+'" />' +
		'<param name="FlashVars" value="'+query+'" />'+
		'<param name="quality" value="best" />' +
		'<param name="bgcolor" value="#ffffff" />' +
		'<param name="wmode" value="transparent" />' +
		'<PARAM NAME=scale VALUE=noscale>'+
		'<embed src="'+nome+'" quality="best" bgcolor="#ffffff" wmode="transparent" FlashVars="'+query+'" width="'+com+'" height="'+alt+'" name="'+id+'" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />' +
		'</object>'
	);
}

// Favoritos
function favoritosPagina(object) {
	$('div#paginacaoCadastro ul li').each(function () {
		$(this).removeClass('paginacao_ativo');
		$('div#paginacao_page' + ($('a', this).html())).hide();
	}); 
	
	$(object).parent().addClass('paginacao_ativo');
	$('div#paginacao_page' + ($(object).html())).show();
	
	return false;
}

function favoritosPaginaAnterior() {
	$('div#paginacaoCadastro ul li').each(function () {
		if ($(this).is('.paginacao_ativo')) {
			var prev = $(this).prev();
			if (prev != null) {
				$('div#paginacaoCadastro ul li').each(function () {
					$(this).removeClass('paginacao_ativo');
					$('div#paginacao_page' + ($('a', this).html())).hide();
				}); 
	
				$(prev).addClass('paginacao_ativo');
				$('div#paginacao_page' + ($('a', prev).html())).show();
				
				return false;
			}
		}
	});
	
	return false;
}

function favoritosPaginaProxima() {
	$('div#paginacaoCadastro ul li').each(function () {
		if ($(this).is('.paginacao_ativo')) {
			var next = $(this).next();
			if (next != null) {
				$('div#paginacaoCadastro ul li').each(function () {
					$(this).removeClass('paginacao_ativo');
					$('div#paginacao_page' + ($('a', this).html())).hide();
				}); 
	
				$(next).addClass('paginacao_ativo');
				$('div#paginacao_page' + ($('a', next).html())).show();
				
				return false;
			}
		}
	});
	
	return false;
}

var fotoAtual = 1;
function mudarParaFoto(fotoId) {
	fotoAtual = fotoId;
	$('div#popFotos div').each(function() {
		var div = $(this);	
	
		if (div.is('.foto')) {
			div.addClass('blocked');
			$('li#fotoLink_' + div.attr('id').replace('foto_', '')).removeClass('paginacao_ativo');
		}
	});
	$('div#foto_' + fotoId).removeClass('blocked');
	$('li#fotoLink_' + fotoId).addClass('paginacao_ativo');
	
	return false;
}

function mudarParaFotoAnterior() {
	if (fotoAtual != 1) {
		mudarParaFoto(fotoAtual - 1);
	}
	
	return false;
}

function mudarParaFotoPosterior(total) {
	if (fotoAtual != total) {
		mudarParaFoto(fotoAtual + 1);
	}
	
	return false;
}

// Funcoes POP FALE
var popFaleTipo = '';
function popFaleAssunto(tipo) {
	popFaleTipo = tipo;
	// Esconde tudo
	$('p#mensagemEstabFale').hide();
	$('p#mensagemUsuarioFale').hide();
	$('div#formularioFale').hide();

	// Options
	var options = '<option value="sel">* Selecione o assunto:</option>';
	
	if (tipo == 'usuario') {
		options = options + '<option>D&uacute;vidas/Sugest&otilde;es para o VR Delivery</option>';
		options = options + '<option value="redir">Informa&ccedil;&otilde;es sobre produtos VR</option>';
	} else {
		options = options + '<option>Cadastro no VR Delivery</option>';
		options = options + '<option>D&uacute;vidas/Sugest&otilde;es para o VR Delivery</option>';
		options = options + '<option value="redir">Informa&ccedil;&otilde;es sobre produtos VR</option>';
	}
	
	$('select#selectAssuntoFale').html( options );
	$('select#selectAssuntoFale').val('sel');
	$('label#assuntoFale').fadeIn();
}

// Log da App
function logger(codigoPagina, nomePagina, codigoSecao, nomeSecao, referer) {
	if (referer == 'null')
		referer = 'Bookmarks';

	var params = {};
	params['codigoPagina'] = codigoPagina;
	params['nomePagina'] = nomePagina;
	params['codigoSecao'] = codigoSecao;
	params['nomeSecao'] = nomeSecao;
	params['referer'] = referer;
	params['resolucao'] = window.screen.width + 'x' + window.screen.height;
	params['ajax'] = 'true';

	$.post(baseURL + '/logger', params, function() {
		// Nothing - No actions
	});
}

function popFaleAssuntoChanged(opcao) {
	// Esconde tudo
	$('p#mensagemUsuarioFale').hide();
	$('p#mensagemEstabFale').hide();
	$('div#formularioFale').hide();

	if (opcao == 'redir' && popFaleTipo == 'usuario') {
		$('p#mensagemUsuarioFale').show();
	} else if (opcao == 'redir') {
		$('p#mensagemEstabFale').show();
	} else {
		$('div#formularioFale').show();
	}
	
	return false;
}

// AUTO TAB
jQuery.fn.autoTab = function(nextInput, length, event){
	if (this.val().length >= length && autoTabKey(event)) {
		this.val( this.val().substr(0, length) );
		$('#' + nextInput).focus();
	}
	
	return true;
}

function autoTabKey(event) {
	var isNN = (navigator.appName.indexOf('Netscape') != -1);
	var keyCode = (isNN) ? event.which : event.keyCode;
	var filter = (isNN) ? [0,8,9,16] : [0,8,9,16,17,18,37,38,39,40,46];
	
	var found = false, index = 0;
	while(!found && index < filter.length) {
		if(filter[index] == keyCode)
			found = true;
		else
			index++;
	}
	
	return !found;
}

