var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf(" chrome/") >= 0 || ua.indexOf(" firefox/") >= 0 || ua.indexOf(' gecko/') >= 0) {
	var StringMaker = function () {
		this.str = "";
		this.length = 0;
		this.append = function (s) {
			this.str += s;
			this.length += s.length;
		}
		this.prepend = function (s) {
			this.str = s + this.str;
			this.length += s.length;
		}
		this.toString = function () {
			return this.str;
		}
	}
} else {
	var StringMaker = function () {
		this.parts = [];
		this.length = 0;
		this.append = function (s) {
			this.parts.push(s);
			this.length += s.length;
		}
		this.prepend = function (s) {
			this.parts.unshift(s);
			this.length += s.length;
		}
		this.toString = function () {
			return this.parts.join('');
		}
	}
}

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function encode64(input) {
	var output = new StringMaker();
	var chr1, chr2, chr3;
	var enc1, enc2, enc3, enc4;
	var i = 0;

	while (i < input.length) {
		chr1 = input.charCodeAt(i++);
		chr2 = input.charCodeAt(i++);
		chr3 = input.charCodeAt(i++);

		enc1 = chr1 >> 2;
		enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
		enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
		enc4 = chr3 & 63;

		if (isNaN(chr2)) {
			enc3 = enc4 = 64;
		} else if (isNaN(chr3)) {
			enc4 = 64;
		}

		output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
   }
   
   return output.toString();
}

jQuery.preloadImages = function() {
	var a = (typeof arguments[0] == 'object')? arguments[0] : arguments;
	for(var i = a.length -1; i > 0; i--) {
		jQuery("<img>").attr("src", a[i]);
	}
}

function toggleFav(restaurante) {
	$.get("/ajax.php", { acao: "favorito", restaurante: restaurante }, function(data) {
		if (data == "ok") {
		
		}
		else {
		
		}
	});
}

function abreDialogo(qual) {
	var maskHeight = $(window).height();
	var maskWidth  = $(window).width();
	$("#"+qual).css({'left':((maskWidth/2)-($("#"+qual).width()/2)),'top':((maskHeight/2)-208)});
	$("#"+qual).show();
}

function fechaDialogo(qual) {
	$("#"+qual).hide();
}

function formataReal(num) {
   x = 0;
   if (num < 0) {
      num = Math.abs(num);
      x = 1;
   }
   if (isNaN(num)) num = "0";
      cents = Math.floor((num*100+0.5)%100);
   num = Math.floor((num*100+0.5)/100).toString();
   if (cents < 10) cents = "0" + cents;
      for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
         num = num.substring(0,num.length-(4*i+3))+'.'
               +num.substring(num.length-(4*i+3));
   ret = num + ',' + cents;
   if (x == 1) ret = ' - ' + ret;return ret;
}

function vaiConvite() {
	window.location="/convite.php?uid=" + encode64($("#numeroConvite").val());
}

function enviaConvite() {
	if ($("#emailConvite").val() == "") {
		alert("Por favor, preencha seu e-mail.");
		$("#emailConvite").focus();
		return;
	}
	$.post("/ajax.php", $("#frmConvite").serialize(), function(data) {
		alert("O convite foi enviado para o seu e-mail!");
	});
}

function convite() {
	var maskHeight = $(window).height();
	var maskWidth  = $(window).width();
	$("#qConvite").css({'left':((maskWidth/2)-200),'top':((maskHeight/2)-208)});
	$("#qConvite").show();
}

function abreLogin() {
	var maskHeight = $(window).height();
	var maskWidth  = $(window).width();
	$("#qLogin").css({'left':((maskWidth/2)-200),'top':((maskHeight/2)-208)});
	$("#qLogin").show();
}

function fechaLogin() {
	$("#qLogin").hide();
}

function abreCadastro() {
	var maskHeight = $(window).height();
	var maskWidth  = $(window).width();
	$("#quadroCadastro").css({'left':((maskWidth/2)-200),'top':((maskHeight/2)-208)});
	$("#quadroCadastro").show();
}

function fechaCadastro() {
	$("#quadroCadastro").hide();
}

function abreFiltro(qual, home) {
	if (filtroAberto != null) {
		if (filtroAberto.toLowerCase() == qual) {
			$("#busca" + filtroAberto).hide("blind", {}, 300);
			filtroAberto = null;
			return;
		}
		else {
			$("#busca" + filtroAberto).hide("blind", {}, 300);
			filtroAberto = null;
		}
	}

	if (home)
		var p2 = $("#faixaBusca").position();

	if (qual == "especialidades") {
		var p = $("#txtEspecialidades").position();
		$("#buscaEspecialidades").css("top", parseInt(p.top) + 20);
		$("#buscaEspecialidades").css("left", p.left);
		if (home)
			$("#buscaEspecialidades").css("top", parseInt(p2.top) + 60);
		$("#buscaEspecialidades").show("blind", {}, 300);
		filtroAberto = "Especialidades";
	}
	else if (qual == "bairros") {
		var p = $("#txtBairros").position();
		$("#buscaBairros").css("top", p.top + 20);
		$("#buscaBairros").css("left", p.left);
		if (home)
			$("#buscaBairros").css("top", parseInt(p2.top) + 60);
		$("#buscaBairros").show("blind", {}, 300);
		filtroAberto = "Bairros";
	}
	else if (qual == "precos") {
		var p = $("#txtPrecos").position();
		$("#buscaPrecos").css("top", p.top + 20);
		$("#buscaPrecos").css("left", p.left);
		if (home)
			$("#buscaPrecos").css("top", parseInt(p2.top) + 60);
		$("#buscaPrecos").show("blind", {}, 300);
		filtroAberto = "Precos";
	}
}

var filtroAberto = null;
var arrBuscaEspecialidades = Array();
var arrBuscaBairros = Array();
var arrBuscaPrecos = Array();

function montaBusca() {
	var url = "/busca.php?type=direct";
	if (arrBuscaEspecialidades.length > 0) url += "&tipos=" + arrBuscaEspecialidades.join(",");
	if (arrBuscaBairros.length > 0) url += "&bairros=" + arrBuscaBairros.join(",");
	if (arrBuscaPrecos.length > 0) url += "&precos=" + arrBuscaPrecos.join(",");
	if ($("#busca").val() != "") url += "&busca=" + $("#busca").val();
	window.location=url;
}

function toggleBusca(tipo, qual) {
	if (tipo == "especialidades") {
		if ($.inArray(qual, arrBuscaEspecialidades) > -1) {
			arrBuscaEspecialidades.splice($.inArray(qual, arrBuscaEspecialidades), 1);
			$("#link-especialidades-" + qual).removeClass("laranja").addClass("cinza");
		}
		else {
			arrBuscaEspecialidades[arrBuscaEspecialidades.length] = qual;
			$("#link-especialidades-" + qual).removeClass("cinza").addClass("laranja");
		}
		var str = "";
		for (var i = 0; i < arrBuscaEspecialidades.length; ++i)
			str += ", " + traduzEspecialidades[arrBuscaEspecialidades[i]];
		$("#txtEspecialidades").val(str.substring(2));
	}
	else if (tipo == "bairros") {
		if ($.inArray(qual, arrBuscaBairros) > -1) {
			arrBuscaBairros.splice($.inArray(qual, arrBuscaBairros), 1);
			$("#link-bairros-" + qual).removeClass("laranja").addClass("cinza");
		}
		else {
			arrBuscaBairros[arrBuscaBairros.length] = qual;
			$("#link-bairros-" + qual).removeClass("cinza").addClass("laranja");
		}
		var str = "";
		for (var i = 0; i < arrBuscaBairros.length; ++i)
			str += ", " + traduzBairros[arrBuscaBairros[i]];
		$("#txtBairros").val(str.substring(2));
	}
	else if (tipo == "precos") {
		if ($.inArray(qual, arrBuscaPrecos) > -1) {
			arrBuscaPrecos.splice($.inArray(qual, arrBuscaPrecos), 1);
			$("#link-precos-" + qual).removeClass("laranja").addClass("cinza");
		}
		else {
			arrBuscaPrecos[arrBuscaPrecos.length] = qual;
			$("#link-precos-" + qual).removeClass("cinza").addClass("laranja");
		}
		var str = "";
		for (var i = 0; i < arrBuscaPrecos.length; ++i)
			str += ", " + traduzPrecos[arrBuscaPrecos[i]];
		$("#txtPrecos").val(str.substring(2));
	}
}

function limpaBusca(tipo) {
	if (tipo == "especialidades") {
		arrBuscaEspecialidades = Array();
		$("#txtEspecialidades").val("Indiferente");
		$(".buscaEspecialidadeLink").removeClass("laranja");
		$(".buscaEspecialidadeLink").addClass("cinza");
	}
	else if (tipo == "bairros") {
		arrBuscaBairros = Array();
		$("#txtBairros").val("Indiferente");
		$(".buscaBairroLink").removeClass("laranja");
		$(".buscaBairroLink").addClass("cinza");
	}
	else if (tipo == "precos") {
		arrBuscaPrecos = Array();
		$("#txtPrecos").val("Indiferente");
		$(".buscaPrecoLink").removeClass("laranja");
		$(".buscaPrecoLink").addClass("cinza");
	}
}

function abreLink(url) {
	$("#linkAviso").attr("href", url);
	$("#avisoLink").dialog("open");
}

function votaAvaliacao(voto, codigo) {
	$("#thumbsAval"+codigo).fadeTo("normal", 0);
	$.get("/ajax.php", { acao: "votaravaliacao", codigo: codigo, voto: voto }, function(data) {
		var t = "<span class=\"textoCinza\"><img src=\"/images/thumbsup.gif\" alt=\"Sim\" /> (" + data.sim + ")</a>&nbsp;&nbsp;&nbsp;<img src=\"/images/thumbsdown.gif\" alt=\"Não\" /> (" + data.nao + ")</span>";
		$("#thumbsAval"+codigo).html(t);
		$("#thumbsAval"+codigo).fadeTo("normal", 1);
	}, "json");
}

function esqueci(proprietario) {
	document.frmEsqueci.tipo.value = (proprietario == 1)? "proprietario":"usuario";
	$("#quadroEsqueci").dialog("open");
}

function denuncie() {
	$("#quadroDenuncie").dialog("open");
}

function linkBairros(codigo) {
	if (codigo == curBairros) return "";
	var str = "";
	var tmp = curBairros.split(",");
	for (var i = 0; i < tmp.length; ++i)
		if (tmp[i] != codigo)
			str += tmp[i] + ",";
	return str.substring(0, str.length-1);
}

function buscaBairro(codigo) {
	for (var i = 0; i < codBairros.length; ++i)
		if (codBairros[i] == codigo)
			return nomBairros[i];
}

function linkTipos(codigo) {
	if (codigo == curTipos) return "";
	var str = "";
	var tmp = curTipos.split(",");
	for (var i = 0; i < tmp.length; ++i)
		if (tmp[i] != codigo)
			str += tmp[i] + ",";
	return str.substring(0, str.length-1);
}

function buscaTipo(codigo) {
	for (var i = 0; i < codTipos.length; ++i)
		if (codTipos[i] == codigo)
			return nomTipos[i];
}

function linkPerfis(codigo) {
	if (codigo == curPerfis) return "";
	var str = "";
	var tmp = curPerfis.split(",");
	for (var i = 0; i < tmp.length; ++i)
		if (tmp[i] != codigo)
			str += tmp[i] + ",";
	return str.substring(0, str.length-1);
}

function buscaPerfil(codigo) {
	for (var i = 0; i < codPerfis.length; ++i)
		if (codPerfis[i] == codigo)
			return nomPerfis[i];
}

function alteraBairros() {
	$('#listaBairros').dialog('open');
}

function alteraTipos() {
	$('#listaTipos').dialog('open');
}

function alteraPerfis() {
	$('#listaPerfis').dialog('open');
}

function mostraCidades(estado) {
	$("#map li a").removeClass("selec");
	$("#"+estado.toLowerCase()).addClass("selec");
	$(".cidades").hide();
	if (document.getElementById("cid"+estado) == null) $("#cidNao").show();
	else $("#cid"+estado).show();
}

function mudaCidade(qual, cidade, estado, slug) {
	$("#divLoading").dialog("open");
	$.get("/ajax.php", { acao: "cidade", codigo: qual, slug: slug }, function(data) {
		if (data == "OK") {
			$("#txtCidade").html(cidade + " - " + estado);
			$("#alterarCidade").dialog("close");
//			if (window.location.href.indexOf("busca.php") == -1)
//				window.location = "/busca.php";
//			else
				window.location.reload();
		}
		else {
			alert("Houve um erro ao selecionar a sua cidade! Tente novamente.");
		}
		$("#divLoading").dialog("close");
	});
}

function postaEnquete(voto) {
	var f = document.frmEnquete;
	if (voto && f.opcao.value == "") {
		alert("Você deve selecionar uma alternativa!");
		return false;
	}
	$("#quadroEnquete").fadeTo("normal", 0.33);
	$.get("/ajax.php", { acao: "enquete", codigo: f.codigo.value, opcao: f.opcao.value }, function(data) {
		var t = "<strong>" + data.pergunta + "</strong><br /><br class=\"br8\" />";
		$.each(data.alternativas, function(i,alt){
			t += alt.alternativa + "<br /><img src=\"/images/barra_left.gif\" alt=\"\" /><img src=\"/images/barra.gif\" height=\"6\" width=\"" + alt.bar + "\" alt=\"" + alt.percent + "%\" /><img src=\"/images/barra_right.gif\" alt=\"\" /> " + alt.percent + "%<br /><br class=\"br4\" />";
		});
		t += data.agradecimento;
		$("#quadroEnquete").html(t);
		$("#quadroEnquete").fadeTo("normal", 1);
	}, "json");
}

function marcaVoto(qual) {
	document.frmEnquete.opcao.value = qual;
	$(".imgVoto").attr("src", "/images/voto_vazio.gif");
	$("#voto"+qual).attr("src", "/images/voto_cheio.gif");
}

function loginAjax(f, callback) {
	$.post("/ajax.php", { acao: "login", login: f.login.value, senha: f.senha.value }, callback, "json");
//	callback();
	return false;
}

function loginComentario(data) {
	if (data.status == "ok") {
		$("#botoesComentarios").hide("puff",{},500);
		$("#loginComentarios").hide("puff",{},500);
		$("#logadoComentarios").html("Você está logado como <b>" + data.apelido + "</b>");
		$("#logadoComentarios").show("puff",{},500);
	}
	else {
		alert("Nome de usuário ou senha incorretos!");
	}
}

function enviaComentario(f) {
	$.post("/ajax.php", { acao: "comentar", nome: f.nome.value, email: f.email.value, url: f.url.value, comentario: f.comentario.value, materia: f.materia.value }, function(data) {
		if (data.status == "ok") {
			var tmp = $("<div></div>").html("<div class='avaliacaoFoto'>" + data.nome + "</div><div class='avaliacaoTxt'>" + data.data + "<br /><br class='br8' />" + data.comentario + "</div>").attr("id", "c" + data.codigo).attr("class", "avaliacaoRestaurante");
			var tmp2 = $("<div></div>").html("<!-- -->").attr("class", "linha");
			$("#divComentarios").append(tmp2);
			$("#divComentarios").append(tmp);
			$("#c" + data.codigo).hide().show(500);
		f.reset();
		}
		else {
			alert("Houve um erro ao enviar o seu comentário!");
		}
	}, "json");
	return false;
}

function buscaCidades(elem) {
	var estado = elem[elem.selectedIndex].value;
	if (estado == "") {
		preencheSlct("cidade", "");
		return;
	}
	$.get("/ajax.php", { acao: "cidades", estado: estado }, function(data) {
		preencheSlct("cidade", data);
	});
}

function buscaBairros(elem) {
	var cidade = elem[elem.selectedIndex].value;
	if (cidade == "") {
		preencheSlct("bairro", "");
		return;
	}
	$.get("/ajax.php", { acao: "bairros", cidade: cidade }, function(data) {
		preencheSlct("bairro", data);
	});
}

function preencheSlct(qual, dados) {
	var elem = eval("document.frmBuscaCafeterias." + qual);
	limpaSlct(elem);
	elem[elem.length] = new Option("-- selecione --", "");

	if (dados == "") return;

	var opts = dados.split("|");
	for (var i = 0; i < opts.length; ++i) {
		var tmp = opts[i].split(",");
		elem[elem.length] = new Option(tmp[1],tmp[0]);
	}
}

function limpaSlct(elem) {
	for (i = 0; i < elem.length; ++i)
		elem[i] = null;
	elem.length = 0;
}


