/*
 * {} -> Criação de um objeto
 */

// Objeto que contem os validadores que serão utilizados nos forms
var validator = {};

var addOption = function (obj, value, label){

	var option = document.createElement('option');

	option.setAttribute('value', value);
	option.setAttribute('label', label);

	var textOption = document.createTextNode(label);

	option.appendChild(textOption);
	obj.append(option);

};

var dialogAlert = function(options){
	with(options){
		if ($("#"+id).length > 0){
			$("#"+id).dialog("open");
		}else{
			$("<div />").attr("id", id)
			.html(content)
			.appendTo($( "body" ));

			try{
				$("#"+id).dialog({
					title: title,
					maxWidth: width,
					maxHeight: height,
					width: width,
					buttons: buttons,
					modal: modal
				});
			}catch(e){}
		}
	}
};

function avisoAtivarMensagemExpressa(){
	if ($("#ativar_mensagem_expressa").length > 0){
		$("#ativar_mensagem_expressa").dialog("open");
	}else{
		$("<div />").attr("id", "ativar_mensagem_expressa")
		.html(language.ativarMensagemExpressa)
		.appendTo($( "body" ))
		.dialog({
			title: language.site,
			maxWidth: 400,
			width: 400,
			maxHeight: 200,
			buttons: {
				"Ok": function(){
					$(this).dialog("close");
				}
			}
		});
	}
};

var receberChamadasPapoOnline = function(obj){
	var opcao = {};
	if($(obj).is(":checked")){
		opcao['opcao'] = "s";
	}else{
		opcao['opcao'] = "n";
	}

	$.post(
		GLOBALS['PATH'] + "/permissaoPapoOnline.php",
		opcao,
		null,
		"json"
	);
};

var adicionarFavorito = function(e, origem){
	var idUsuario = e.data.idUsuario;
	$.post(
		GLOBALS['PATH'] + "/adicionarFavorito.php",
		{"idf": idUsuario},
		function(response){
			if($("#adicionar_favorito").length > 0){
				$("#adicionar_favorito").dialog("open");
			}else{
				$("<div />").attr("id", "adicionar_favorito")
				.html(response.mensagem)
				.dialog(
					{
						title: language.site,
						width: widthDialogBox,
						buttons: {
							"Ok": function(){
								$(this).dialog("close");
							}
						}
					}
				);
			}

			if(response.sucess == true){
				$(".linkFavorito[idUsuario='" + idUsuario + "']").each(
					function(){
						$(this)
						.attr({
							"acao": "excluir",
							"title": language.titleExcluirFavorito
						})
						.children("img:first").removeClass("global-icons-star").addClass("global-icons-cross");
						$(this)
						.unbind("click", adicionarFavorito)
						.bind("click", {idUsuario: idUsuario}, excluirFavorito);
					}
				);
			}
		},
		"json"
	);
};

var excluirFavorito = function(e, origem){
	var idUsuario = e.data.idUsuario;
	if ($("#dialog_excluir_favorito_"+idUsuario).length > 0){
		$("#dialog_excluir_favorito_"+idUsuario).dialog("open");
	}else{
		$("<div />").attr("id","dialog_excluir_favorito_"+idUsuario)
		.html(language.comfirmaExcluirFavorito)
		.appendTo($( "body" ));

		var buttons = {};
		buttons[language.nao] = function(){
			$(this).dialog("close");
		};
		buttons[language.sim] = function(){
			$.post(
				GLOBALS['PATH'] + "/excluirFavorito.php",
				{"idf": idUsuario},
				function(response){
					if(response.sucess == false){
						if($("#excluir_favorito").length > 0){
							$("#excluir_favorito").dialog("open");
						}else{
							$("<div />").attr("id", "excluir_favorito")
							.html(response.mensagem)
							.dialog(
								{
									title: language.site,
									width: widthDialogBox,
									buttons: {
										"Ok": function(){
											$(this).dialog("close");
										}
									}
								}
							);
						}
					}else{
						$("#dialog_excluir_favorito_"+idUsuario).dialog("close");

						$(".linkFavorito[idUsuario='" + idUsuario + "']").each(
							function(){
								$(this)
								.attr({
									"acao": "adicionar",
									"title": language.titleAdicionarFavorito
								})
								.children("img:first").removeClass("global-icons-cross").addClass("global-icons-star");
								$(this)
								.unbind("click", excluirFavorito)
								.bind("click", {idUsuario: idUsuario}, adicionarFavorito);
							}
						);
					}
				},
				"json"
			);
		};

		$("#dialog_excluir_favorito_"+idUsuario).dialog({
			title: language.site,
			maxWidth: maxWidthDialogBox,
			maxHeight: minWidthDialogBox,
			width: widthDialogBox,
			modal: true,
			autoOpen: false
		});
		$("#dialog_excluir_favorito_"+idUsuario)
		.dialog('option', 'buttons', buttons)
		.dialog('open');
	}
};

var definirAutoResposta = function(){
	if ($("#definir_auto_resposta").length > 0){
		$("#definir_auto_resposta").dialog("open");
	}else{
		$.get(
			GLOBALS['PATH'] + "/definirAutoResposta.php",
			function(xml){
				var formulario = $(xml).find("formulario").text();

				$("<div />").attr("id","definir_auto_resposta")
				.dialog(
					{
						title: language.configurandoAutoResposta,
						width: 545,
						modal: true,
						autoOpen: false
					}
				);

				var box = $("#definir_auto_resposta");
				$(box).html(formulario);

				var form = $("#definir_auto_resposta").find(".box_mensagem_flutuante > form");
				var buttons = {};

				buttons[language.salvar] = function(){
					with(form){
						find(".action").val(1);
						submit();
					}
				};

				buttons[language.cancelar] = function(){
					$(this).dialog("close");
				};

				validator[$(box).attr("id")] = $(form)
				.validate({
					rules: {
						autoResposta: "required"
					},
					errorPlacement: function(error, element) {
						element.css({border: "1px solid red"});
						$("label[for=" + $(element).attr("id") + "]").after(error);
					},
					// Só vem pra cá quando a validação está ok
					submitHandler: function(form) {
					   	$(form).ajaxSubmit({
					   		success: function(response){
					   			alertPadrao(response.mensagem);
					   			if(response.sucess == true){
					   				$(form).parent().parent().dialog("close");
					   				$(box).remove();
					   			}
					   		},
					   		dataType: "json",
					   		contentType: "application/x-www-form-urlencoded; charset=ISO-8859-1"
					   	});
					   	return false;
					},
					errorClass: "invalid",
					validClass: "success",
					highlight: function(element, errorClass) {
						$(element).css({border: "1px solid red"});
					},
					unhighlight: function(element, errorClass) {
						$(element).css({border: "1px solid #C3C3C3"});
					},
					ignoreTitle: true,
					ignore: ".ignore"
				});

				var radios = $(box).find(".radio");
				$(radios)
				.click(function(){	// Manipulação dos radios de ativar e desativar
					var fieldset = $(this).parent().parent();
					if($(this).is(".ativar")){
						$(fieldset)
						.find(".text")
						.attr("readonly", false)
						.removeClass("disabled ignore")
						.addClass("ui-widget-content")
						.unbind("click", avisoAtivarMensagemExpressa);
					}else{
						$(fieldset)
						.find(".text")
						.attr("readonly", true)
						.addClass("disabled ignore")
						.removeClass("ui-widget-content")
						.bind("click", avisoAtivarMensagemExpressa)
						.css({border: "1px solid #C3C3C3"});

						//validator[$(box).attr("id")].resetForm();

						validator[$(box).attr("id")].hideErrors();
						$('.invalid').hide();
					}
				});

				// Verifico qual radio está ativado e "faço um click nele" para aplicar as configuraçoes
				var radioAtivar = $(radios).filter(".ativar");
				if($(radioAtivar).is(":checked")){
					$(radioAtivar).click();
				}else{
					$(radios).filter(".desativar").click();
				}

				// Insiro no box os botões e mostro o dialog
				$(box)
				.dialog('option', 'buttons', buttons)
				.dialog('open');
			},
			"xml"
		);
	}
}

var definirMensagemExpressa = function(){
	if ($("#definir_mensagem_expressa").length > 0){
		$("#definir_mensagem_expressa").dialog("open");
	}else{
		$.get(
			GLOBALS['PATH'] + "/definirMensagemExpressa.php",
			function(xml){
				var formulario = $(xml).find("formulario").text();

				$("<div />").attr("id","definir_mensagem_expressa")
				.dialog(
					{
						title: language.configurandoMensagemExpressa,
						width: 545,
						modal: true,
						autoOpen: false
					}
				);

				var box = $("#definir_mensagem_expressa");
				$(box).html(formulario);

				var form = $("#definir_mensagem_expressa").find(".box_mensagem_flutuante > form");
				var buttons = {};

				buttons[language.salvar] = function(){
					with(form){
						find(".action").val(1);
						submit();
					}
				};

				buttons[language.cancelar] = function(){
					$(this).dialog("close");
				};

				validator[$(box).attr("id")] = $(form)
				.validate({
					rules: {
						assunto: "required",
						mensagem: "required"
					},
					errorPlacement: function(error, element) {
						element.css({border: "1px solid red"});
						$("label[for=" + $(element).attr("id") + "]").after(error);
					},
					// Só vem pra cá quando a validação está ok
					submitHandler: function(form) {
					   	$(form).ajaxSubmit({
					   		success: function(response){
					   			alertPadrao(response.mensagem);
					   			if(response.sucess == true){
					   				$(form).parent().parent().dialog("close");
					   				$(box).remove();
					   			}
					   		},
					   		dataType: "json",
					   		contentType: "application/x-www-form-urlencoded; charset=ISO-8859-1"
					   	});
					   	return false;
					},
					errorClass: "invalid",
					validClass: "success",
					highlight: function(element, errorClass) {
						$(element).css({border: "1px solid red"});
					},
					unhighlight: function(element, errorClass) {
						$(element).css({border: "1px solid #C3C3C3"});
					},
					ignoreTitle: true,
					ignore: ".ignore"
				});

				var radios = $(box).find(".radio");
				$(radios)
				.click(function(){	// Manipulação dos radios de ativar e desativar
					var fieldset = $(this).parent().parent();
					if($(this).is(".ativar")){
						$(fieldset)
						.find(".text")
						.attr("readonly", false)
						.removeClass("disabled ignore")
						.addClass("ui-widget-content")
						.unbind("click", avisoAtivarMensagemExpressa);
					}else{
						$(fieldset)
						.find(".text")
						.attr("readonly", true)
						.addClass("disabled ignore")
						.removeClass("ui-widget-content")
						.bind("click", avisoAtivarMensagemExpressa)
						.css({border: "1px solid #C3C3C3"});

						//validator[$(box).attr("id")].resetForm();

						validator[$(box).attr("id")].hideErrors();
						$('.invalid').hide();
					}
				});

				// Verifico qual radio está ativado e "faço um click nele" para aplicar as configuraçoes
				var radioAtivar = $(radios).filter(".ativar");
				if($(radioAtivar).is(":checked")){
					$(radioAtivar).click();
				}else{
					$(radios).filter(".desativar").click();
				}

				// Insiro no box os botões e mostro o dialog
				$(box)
				.dialog('option', 'buttons', buttons)
				.dialog('open');
			},
			"xml"
		);
	}
}

var enviarMensagem = function(e){
	var idUsuario = e.data.idUsuario;
	var eps = e.data.eps;
	var dados = {};
	dados['idd'] = idUsuario;
	dados['eps'] = eps;
	dados['idMsgResp'] = e.data.idMsgResp ? e.data.idMsgResp : '';

	// Antes de construir o box, verifico se ele ja foi construido anteriormente
	if($("#box_restricao_"+idUsuario).length > 0 && eps){
		$("#box_restricao_"+idUsuario).dialog("open");
		return;
	}
	if(!eps && $("#box_enviar_mensagem_"+idUsuario).length > 0){
		$("#box_enviar_mensagem_"+idUsuario).dialog("open");
		return;
	}
	if(eps && $("#box_enviar_mensagem_expressa_"+idUsuario).length > 0){
		$("#box_enviar_mensagem_expressa_"+idUsuario).dialog("open");
		return;
	}

	$.get(
		GLOBALS['PATH'] + "/enviarMensagem.php",
		dados,
		function(xml){
			var codigo = $(xml).find("codigo").text();
			var mensagem = $(xml).find("mensagem").text();
			var formulario = $(xml).find("formulario").text();

			$("<div />").attr("id","box_"+idUsuario)
			.dialog(
				{
					title: language.enviandoMensagemPara+'&nbsp;<strong style="color: black;">'+$('#apelido_'+idUsuario).text()+'</strong>',
					width: 545,
					modal: true,
					autoOpen: false
				}
			);

			var box = $('#box_'+idUsuario);

			var buttons = {};
			if(eps == true && codigo && codigo == 8){	// Se o usuário tentou enviar uma mensagem expressa, mas não tem ela ativada
				$(box).attr('id', 'box_enviar_mensagem_expressa_'+idUsuario).html(formulario);
				var form = $(box).find(".box_mensagem_flutuante > form");
				var radioDesativar = $(form).find(".radio[id^='desativar']");
				buttons[language.salvar] = function(){
					with(form){
						find(".action").val(1);
						submit();
					}
				};
				buttons[language.salvarEnviar] = function(){
					with(form){
						if($(radioDesativar).is(":checked")){
							avisoAtivarMensagemExpressa();
						}else{
							find(".action").val(2);
							submit();
						}
					}
				};
				buttons[language.apenasEnviar] = function(){
					with(form){
						if($(radioDesativar).is(":checked")){
							avisoAtivarMensagemExpressa();
						}else{
							find(".action").val(3);
							submit();
						}
					}
				};
				buttons[language.cancelar] = function(){
					$(this).dialog("close");
				};
			}else if(mensagem){	// Houve alguma restrição de perfil ou é algum aviso da mensagem expressa
				$(box).attr('id', 'box_restricao_'+idUsuario).html(mensagem);
				buttons['Ok'] = function(){
					$(this).dialog("close");
				};
			}else{	// Enviando uma mensagem normal
				$(box).attr('id', 'box_enviar_mensagem_'+idUsuario).html(formulario);
				buttons[language.enviar] = function(){
					$("#box_enviar_mensagem_"+idUsuario+" > div form").submit();
				};
				buttons[language.cancelar] = function(){
					$(this).dialog("close");
				};
			}

			// Se veio algum formulário, aplico as regras de validação
			if(formulario){
				var form = $(box).find(".box_mensagem_flutuante > form");

				validator[$(box).attr("id")] = $(form)
				.validate({
					rules: {
						assunto: "required",
						mensagem: "required",
						confirmacao: {
							required: true,
							minlength: 6,
							maxlength: 6
						}
					},
					errorPlacement: function(error, element) {
						element.css({border: "1px solid red"});
						$("label[for=" + $(element).attr("id") + "]").after(error);
					},
					// Só vem pra cá quando a validação está ok
					submitHandler: function(form) {
					   	$(form).ajaxSubmit({
					   		success: function(response){
					   			alertPadrao(response.mensagem);
					   			if(response.sucess == true){
					   				$(form).parent().parent().dialog("close");
					   				validator[$(box).attr("id")].resetForm();
					   			}
					   		},
					   		dataType: "json",
					   		contentType: "application/x-www-form-urlencoded; charset=ISO-8859-1"
					   	});
					   	return false;
					},
					errorClass: "invalid",
					validClass: "success",
					highlight: function(element, errorClass) {
						$(element).css({border: "1px solid red"});
					},
					unhighlight: function(element, errorClass) {
						$(element).css({border: "1px solid #C3C3C3"});
					},
					ignoreTitle: true,
					ignore: ".ignore"
				});

				// Caso o fomrulario seja para mensagem expressa, aplico mais regras
				if($(box).find("input[name='definirMensagemExpressa']").val() == 1){
					var radios = $(box).find(".radio");
					$(radios)
					.click(function(){	// Manipulação dos radios de ativar e desativar
						var fieldset = $(this).parent().parent();
						if($(this).is(".ativar")){
							$(fieldset)
							.find(".text")
							.attr("readonly", false)
							.removeClass("disabled ignore")
							.addClass("ui-widget-content")
							.unbind("click", avisoAtivarMensagemExpressa);
						}else{
							$(fieldset)
							.find(".text")
							.attr("readonly", true)
							.addClass("disabled ignore")
							.removeClass("ui-widget-content")
							.bind("click", avisoAtivarMensagemExpressa)
							.css({border: "1px solid #C3C3C3"});

							validator[$(box).attr("id")].resetForm();
						}
					});

					// Verifico qual radio está ativado e "faço um click nele" para aplicar as configuraçoes
					var radioAtivar = $(radios).filter(".ativar");
					if($(radioAtivar).is(":checked")){
						$(radioAtivar).click();
					}else{
						$(radios).filter(".desativar").click();
					}
				}
			}

			// Insiro no box os botões e mostro o dialog
			$(box)
			.dialog('option', 'buttons', buttons)
			.dialog('open');
		},
		"xml"
	);
};

//var formEnviarElogio = "";
var enviarElogio = function(e){
	var idUsuario = e.data.idUsuario;

	// Antes de construir o box, verifico se ele ja foi construido anteriormente
	if($("#box_restricao_"+idUsuario).length > 0){
		$("#box_restricao_"+idUsuario).dialog("open");
		return;
	}
	/*if($("#box_enviar_elogio").length > 0){
		var box = $("#box_enviar_elogio");
		$(box).dialog("open");
		$(box).dialog("option", "title", language.enviandoElogioPara+'&nbsp;<strong style="color: black;">'+$('#apelido_'+idUsuario).text()+'</strong>');
		$(box).find("#idDestinatario").val(idUsuario);
		return;
	}*/
	if($("#box_enviar_elogio_"+idUsuario).length > 0){
		$("#box_enviar_elogio_"+idUsuario).dialog("open");
		return;
	}

	$.get(
		GLOBALS['PATH'] + "/enviarElogio.php",
		{idd: idUsuario},
		function(xml){
			var sucess = $(xml).find("sucess").text();
			var mensagem = $(xml).find("mensagem").text();
			var formulario = $(xml).find("formulario").text();

			$("<div />").attr("id", "box_"+idUsuario)
			.dialog(
				{
					title: language.enviandoElogioPara+'&nbsp;<strong style="color: black;">'+$('#apelido_'+idUsuario).text()+'</strong>',
					width: 545,
					modal: true,
					autoOpen: false
				}
			);

			var box = $('#box_'+idUsuario);

			var buttons = {};
			if(sucess == 'false'){
				if(mensagem){
					$(box).attr("id", "box_restricao_"+idUsuario).html(mensagem);
					buttons["Ok"] = function(){
						$(this).dialog("close");
					};
				}
			}else{
				$(box).attr("id", "box_enviar_elogio_"+idUsuario).html(formulario);
				var form = $(box).find("form");

				validator[$(box).attr("id")] = $(form)
				.validate({
					rules: {
						elogio: "required"
					},
					errorPlacement: function(error, element) {
						element.css({border: "1px solid red"});
						$("label[for=" + $(element).attr("id") + "]").after(error);
					},
					// Só vem pra cá quando a validação está ok
					submitHandler: function(form) {
					   	$(form).ajaxSubmit({
					   		success: function(response){
					   			alertPadrao(response.mensagem);
					   			if(response.sucess == true){
					   				$(form).parent().dialog("close");
					   				validator[$(box).attr("id")].resetForm();
					   			}
					   		},
					   		dataType: "json"
					   	});
					   	return false;
					},
					errorClass: "invalid",
					validClass: "success",
					highlight: function(element, errorClass) {
						$(element).css({border: "1px solid red"});
					},
					unhighlight: function(element, errorClass) {
						$(element).css({border: "1px solid #C3C3C3"});
					},
					ignoreTitle: true,
					ignore: ".ignore"
				});

				buttons[language.enviar] = function(){
					$(form).submit();
				};
				buttons[language.cancelar] = function(){
					$(this).dialog("close");
				};
			}

			// Insiro no box os botões e mostro o dialog
			$(box)
			.dialog('option', 'buttons', buttons)
			.dialog('open');
		},
		"xml"
	);
};

var bloquearUsuario = function(e, origem){
	var idUsuario = e.data.idUsuario;
	$.post(
		GLOBALS['PATH'] + "/bloquearUsuario.php",
		{"idb": idUsuario},
		function(response){
			if($("#bloquear_usuario").length > 0){
				$("#bloquear_usuario").dialog("open");
			}else{
				$("<div />").attr("id", "bloquear_usuario")
				.html(response.mensagem)
				.dialog(
					{
						title: language.site,
						width: widthDialogBox,
						buttons: {
							"Ok": function(){
								$(this).dialog("close");
							}
						}
					}
				);
			}

			if(response.sucess == true){
				$(".linkBloquear[idUsuario='" + idUsuario + "']").each(
					function(){
						$(this)
						.attr({
							"acao": "desbloquear",
							"title": language.titleDesbloquearUsuario
						})
						.children("img:first").removeClass("global-icons-bloquear").addClass("global-icons-desbloquear");
						try{
							$(this).find("span:first").text(language.textoDesbloquearUsuario);
						}catch(e){};
						$(this)
						.unbind("click", bloquearUsuario)
						.bind("click", {idUsuario: idUsuario}, desbloquearUsuario);
					}
				);
			}
		},
		"json"
	);
};

var desbloquearUsuario = function(e, origem){
	var idUsuario = e.data.idUsuario;
	$.post(
		GLOBALS['PATH'] + "/desbloquearUsuario.php",
		{"idb": idUsuario},
		function(response){
			if($("#desbloquear_usuario").length > 0){
				$("#desbloquear_usuario")
				.html(response.mensagem)
				.dialog("open");
			}else{
				$("<div />").attr("id", "desbloquear_usuario")
				.html(response.mensagem)
				.dialog(
					{
						title: language.site,
						width: widthDialogBox,
						buttons: {
							"Ok": function(){
								$(this).dialog("close");
							}
						}
					}
				);
			}

			if(response.sucess == true){
				$(".linkBloquear[idUsuario='" + idUsuario + "']").each(
					function(){
						$(this)
						.attr({
							"acao": "bloquear",
							"title": language.titleBloquearUsuario
						})
						.children("img:first").removeClass("global-icons-desbloquear").addClass("global-icons-bloquear");
						//$(linkBloquear).find("span:first").text(language.textoBloquearUsuario);
						try{
							$(this).find("span:first").text(language.textoBloquearUsuario);
						}catch(e){};
						$(this)
						.unbind("click", desbloquearUsuario)
						.bind("click", {idUsuario: idUsuario}, bloquearUsuario);
					}
				);
			}
		},
		"json"
	);
};

var denunciarSpam = function(e){
	var idSpam = e.data.idSpam;
	$.post(
		GLOBALS['PATH'] + "/denunciarSpam.php",
		{"ids": idSpam},
		function(response){
			if($("#denunciar_spam").length > 0){
				$("#denunciar_spam").dialog("open");
			}else{
				$("<div />").attr("id", "denunciar_spam")
				.html(response.mensagem)
				.dialog(
					{
						title: language.site,
						width: widthDialogBox,
						modal: true,
						buttons: {
							"Ok": function(){
								$(this).dialog("close");
								window.location = "mensagensRecebidas.php";
							}
						}
					}
				);
			}
		},
		"json"
	);
};

var carregarPaises = function(defaultIdPais, defaultIdEstado, defaultIdCidade){
	var $pais = $("#pais");
	$pais.empty();
	new addOption($pais, 0, language.aguarde);
	$.get(
		GLOBALS['PATH'] + "/ajaxPaises.php",
		"",
		function(data){
			if($(data).length > 0){
				$pais.empty();
				$("#estado").empty();
				$("#cidade").empty();
				$(data).each(
					function(index, item){
						try{
							new addOption($pais, item.idPais, item.nome);
						}catch(e){}
					}
				);
				try{
					$pais.find("option[value='"+defaultIdPais+"']").attr("selected", "selected");
				}catch(e){}
				if(defaultIdEstado){
					carregarEstados(defaultIdPais, defaultIdEstado, defaultIdCidade);
				}
			}
		},
		"json"
	);
};

var carregarEstados = function(idPais, defaultIdEstado, defaultIdCidade){
	var $estado = $("#estado");
	$estado.empty();
	new addOption($estado, 0, language.aguarde);
	$.get(
		GLOBALS['PATH'] + "/ajaxEstados.php",
		{"pais": idPais},
		function(data){
			if($(data).length > 0){
				$estado.parent().css({"display": "block"});
				$estado.empty();
				new addOption($estado, 0, language.selecione);
				$("#cidade").empty();
				new addOption($("#cidade"), 0, language.selecioneEstado);
				$(data).each(
					function(index, item){
						try{
							new addOption($estado, item.idEstado, item.nome);
						}catch(e){}
					}
				);
				try{
					$estado.find("option[value='"+defaultIdEstado+"']").attr("selected", "selected");
				}catch(e){}
				if(defaultIdCidade){
					try{
						carregarCidades(idPais, defaultIdEstado, defaultIdCidade);
					}catch(e){}
				}
			}else{
				$estado.parent().css({"display": "none"});
				carregarCidades(idPais, '', defaultIdCidade);
			}
		},
		"json"
	);
};

var carregarCidades = function(idPais, idEstado, defaultIdCidade){
	var $cidade = $("#cidade");
	$cidade.empty();
	new addOption($cidade, 0, language.aguarde);
	$.get(
		GLOBALS['PATH'] + "/ajaxCidades.php",
		{
			"pais": idPais,
			"estado" :idEstado
		},
		function(data){
			if($(data).length > 0){
				$cidade.parent().css({"display": "block"});
				$cidade.empty();
				new addOption($cidade, 0, language.selecione);
				$(data).each(
					function(index, item){
						try{
							new addOption($cidade, item.idCidade, item.nome);
						}catch(e){}
					}
				);
				try{
					$cidade.find("option[value='"+defaultIdCidade+"']").attr("selected", "selected");
				}catch(e){}
			}else{
				$cidade.parent().css({"display": "none"});
			}
		},
		"json"
	);
};

var editarEmail = function(){
	if ($("#box_flutuante_editar_email").length > 0){
		$("#box_flutuante_editar_email").dialog("open");
	}else{
		$.get(
			GLOBALS['PATH'] + "/editarEmail.php",
			null,
			function(xml){
				var formulario = $(xml).find("formulario").text();

				$("<div />").attr("id", "box_flutuante_editar_email")
				.dialog(
					{
						title: language.alterarandoEmail,
						width: 545,
						modal: true,
						autoOpen: false
					}
				);

				var box = $('#box_flutuante_editar_email');

				$(box).html(formulario);
				var form = $(box).find("form");

				validator[$(box).attr("id")] = $(form)
				.validate({
					rules: {
						email: {
							required: true,
							email: true,
							remote: {
								url: "verificaEmailExistenteJquery.php",
								data: {
									email: function(){
										return $("#email").val();
									}
								}
							}
						},
						confirmacaoEmail: {
							required: true,
							email: true,
							equalTo: "#email"
						}
					},
					messages: {
						email: {
							remote: language.jaExisteUsuarioComEmail
						}
					},
					errorPlacement: function(error, element) {
						element.css({border: "1px solid red"});
						$("label[for=" + $(element).attr("id") + "]").after(error);
					},
					// Só vem pra cá quando a validação está ok
					submitHandler: function(form) {
					   	$(form).ajaxSubmit({
					   		success: function(response){
					   			alertPadrao(response.mensagem);
					   			if(response.sucess == true){
					   				$(form).parent().dialog("close");
					   				validator[$(box).attr("id")].resetForm();
					   			}
					   		},
					   		dataType: "json"
					   	});
					   	return false;
					},
					errorClass: "invalid",
					validClass: "success",
					highlight: function(element, errorClass) {
						$(element).css({border: "1px solid red"});
					},
					unhighlight: function(element, errorClass) {
						$(element).css({border: "1px solid #C3C3C3"});
					},
					ignoreTitle: true,
					ignore: ".ignore"
				});

				var buttons = {};
				buttons[language.salvar] = function(){
					$(form).submit();
				};
				buttons[language.cancelar] = function(){
					$(this).dialog("close");
				};

				// Insiro no box os botões e mostro o dialog
				$(box)
				.dialog('option', 'buttons', buttons)
				.dialog('open');
			},
			"xml"
		);
	}
};

var enviarSugestao = function(){
	if ($("#box_flutuante_enviar_sugestao").length > 0){
		$("#box_flutuante_enviar_sugestao").dialog("open");
	}else{
		$.get(
			GLOBALS['PATH'] + "/enviarSugestao.php",
			null,
			function(xml){
				var formulario = $(xml).find("formulario").text();

				var box = $("<div />").attr("id", "box_flutuante_enviar_sugestao");
				$(box).html(formulario);
				var form = $(box).find("form");

				$(box).dialog(
					{
						title: language.enviandoSugestao,
						width: 545,
						modal: true,
						buttons: _getButtons(form)
					}
				);

				validator[$(box).attr("id")] = $(form)
				.validate({
					errorPlacement: function(error, element) {
						element.css({border: "1px solid red"});
						$("label[for=" + $(element).attr("id") + "]").after(error);
					},
					// Só vem pra cá quando a validação está ok
					submitHandler: function(form) {
					   	$(form).ajaxSubmit({
					   		success: function(response){
					   			alertPadrao(response.mensagem);
					   			if(response.sucess == true){
					   				$(form).parent().dialog("close");
					   				validator[$(box).attr("id")].resetForm();
					   			}
					   		},
					   		dataType: "json"
					   	});
					   	return false;
					},
					errorClass: "invalid",
					highlight: function(element, errorClass) {
						$(element).css({border: "1px solid red"});
					},
					unhighlight: function(element, errorClass) {
						$(element).css({border: "1px solid #C3C3C3"});
					},
					ignoreTitle: true
				});
			},
			"xml"
		);
	}
};

/**
 * Retorna botões básicos para um dialog
 */
function _getButtons(form){
	var buttons = {};
	buttons[language.salvar] = function(){
		$(form).submit();
	};
	buttons[language.cancelar] = function(){
		$(this).dialog("close");
	};

	return buttons;
};