/*
	Classe: Funções Gerais
	Descrição: Todas as funcionalidades que se repetem no site.
*/
function Funcoes(){

	/*
		Função: id.
		Descrição: Retorna o elemento ID.
	*/
	Funcoes.prototype.id = function(el){
		return document.getElementById(el);
	}


	/*
		Função: Voltar ao Topo.
		Descrição: Função que faz subir a página.
	*/
	Funcoes.prototype.voltarTopo = function(){
		$("html, body").animate({
			scrollTop: $("#geral").offset().top
		}, 800);
	}


	/*
		Função: Compartilhamento de Notícias.
		Descrição: Mostrar/Ocultar div de compartilhe.
	*/
	Funcoes.prototype.compartilheNoticias = function(valor){
		$("." + valor).slideToggle();
	}


	/*
		Função: Campo loja de Contato.
		Descrição: Mostrar/Ocultar a campo de Loja do Contato.
	*/
	Funcoes.prototype.lojaContato = function(valor, comparar){
		if (valor == 'Reclamações' || valor == 'Sugestões' || valor == 'Elogio'){
			$("#js-loja").slideDown(300);
			$(".js-campos").slideUp(300);
		}
		else if (valor == 'Cartão'){
			$(".js-campos").slideDown(300);
			$("#js-loja").slideUp(300);
			$("#cpf").attr("name", "cpf");
			
			//$("#cartao").removeClass("jqtranformdone").removeClass("jqTransformInput");
			//$("#cpf").removeClass("jqtranformdone").removeClass("jqTransformInput");
		}
		else {
			$("#js-loja").slideUp(300);
			$(".js-campos").slideUp(300);
		}
	}


	/*
		Função: Campo de Busca.
		Descrição: Nomes em campos de busca.
	*/
	Funcoes.prototype.campoBusca = function(valor, campo, nome){
		if (valor == 0){
			if ($("#" + nome).val() == campo){
				$("#" + nome).val("");
			}
		}
		else {
			if ($("#" + nome).val() == ""){
				$("#" + nome).val(campo);
			}
		}
	}


	/*
		Função: Instituto Galeria.
		Descrição: Aparecer as fotos do slide da galeria de Instituto.
	*/
	Funcoes.prototype.institutoGaleria = function(tipo, url, descricao){
		$("#instituto-galeria-slide-load").fadeTo('slow', 0.8);
		$("#instituto-galeria-slide-dados span p").fadeOut(400);
		setTimeout(function(){
			if (tipo == "imagem"){
				$("#instituto-galeria-slide-arq span").html('<img src="' + url + '" />');
			}
			else {
				$("#instituto-galeria-slide-arq span").html('<iframe width="600" height="400" src="http://www.youtube.com/embed/' + url + '" frameborder="0" allowfullscreen></iframe>');
			}
			$("#instituto-galeria-slide-dados span p").fadeIn(400);
			$("#instituto-galeria-slide-dados span p").html(descricao);
			$("#instituto-galeria-slide-load").fadeOut(400);
		}, 1000);
	}


	/*
		Função: Fontes.
		Descrição: Aumentar/Diminuir fontes.
	*/
	Funcoes.prototype.fonteSize = function(){
		$(".jsFontSize").click(function(){
			var ourText = $("p, a, li, strong");
			var currFontSize = ourText.css("fontSize");
			var finalNum = parseFloat(currFontSize, 10);
			var stringEnding = currFontSize.slice(-2);

			if (this.id == "btao-aumentar"){
				if (finalNum >= 24.87996)
					finalNum = finalNum;
				else
					finalNum *= 1.2;
			}
			else if (this.id == "btao-diminuir"){
				if (finalNum == 10)
					finalNum = finalNum;
				else
					finalNum /= 1.2;
			}

			ourText.css("fontSize", finalNum + stringEnding);
		});
	}


	/*
		Função: cadastreSe.
		Descrição: Aparece/Esconde a caixa para cadastro.
	*/
	Funcoes.prototype.cadastreSe = function(){
		$("#box-topo-cadastre-se").toggle();
		$(".retorno").css("display", "none");
	}


	/*
		Função: cadastreBanco(url).
		Descrição: Verificar/Inserir/.
	*/
	Funcoes.prototype.cadastreBanco = function(url){
		var campo_nome = $("#box-topo-cadastre-se #cadastre_nome").val();
		var campo_email = $("#box-topo-cadastre-se #cadastre_email").val();
		var campo_estado = $("#box-topo-cadastre-se #cadastre_estado").val();

		if (campo_nome == "" && campo_email == "" && campo_estado == ""){
			alert("Os campos de Nome e E-mail devem ser preenchidos e um Estado selecionado!");
			return false;
		}

		if (campo_nome == ""){
			alert("O campo Nome deve ser Preenchido!");
			return false;
		}

		if (campo_email == ""){
			alert("O campo E-mail deve ser Preenchido!");
			return false;
		}

		if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(campo_email))){
			alert("O campo E-mail deve ser um endereço eletrônico!");
			return false;
		}
		
		if (campo_estado == ""){
			alert("Um Estado deve ser selecionado!");
			return false;
		}

		// Carregar o Preload.
		$("#box-topo-cadastre-se p button").hide(200);
		$("#box-topo-cadastre-se small").hide(200);
		$(".preload").css("display", "block");

		// Retorno dos valores.
		$.get(url + "/global/incs/home.ajax.php?tipo=1&nome=" + campo_nome + "&email=" + campo_email + "&estado=" + campo_estado, function(data){
			if (data == 1){				
				$("#box-topo-cadastre-se p").fadeTo("slow",0.4);
				$("#box-topo-cadastre-se #cadastre_nome").attr("disabled", "disabled");
				$("#box-topo-cadastre-se #cadastre_email").attr("disabled", "disabled");
				$(".preload").css("display", "none");
				$(".retorno").css("display", "block");

				setTimeout(function(){
					$("#box-topo-cadastre-se p button").show(200);
					$("#box-topo-cadastre-se #cadastre_nome").removeAttr("disabled");
					$("#box-topo-cadastre-se #cadastre_email").removeAttr("disabled");
					$(".retorno").css("display", "none");
					$("#box-topo-cadastre-se p").fadeTo("slow",1);
				}, 2500);
			}
			else {
				$("#box-topo-cadastre-se p").fadeTo("slow",0.4);
				$(".preload").css("display", "none");

				setTimeout(function(){					
					$(".retorno").css("display", "none");
					$("#box-topo-cadastre-se small").show(100);
					$("#box-topo-cadastre-se small").css("display", "block");
					$("#box-topo-cadastre-se p button").show(200);
					$("#box-topo-cadastre-se p").fadeTo("slow",1);
					$("#box-topo-cadastre-se #cadastre_nome").val("");
					$("#box-topo-cadastre-se #cadastre_email").val("");
					$("#box-topo-cadastre-se").fadeOut(400);
				}, 3000);				
			}
		});
	}


	/*
		Função: receberNovidadesBanco(url).
		Descrição: Verificar/Inserir/.
	*/
	Funcoes.prototype.receberNovidadesBanco = function(url){
		var campo_nome = $("#receba-novidades form #nome").val();
		var campo_email = $("#receba-novidades form #email").val();
		var campo_estado = $("#receba-novidades form #ofertas_estado").val();

		if (campo_nome == "" && campo_email == "" && campo_estado == ""){
			alert("Os campos de Nome e E-mail devem ser preenchidos e um Estado selecionado!");
			return false;
		}

		if (campo_nome == ""){
			alert("O campo Nome deve ser Preenchido!");
			return false;
		}

		if (campo_email == ""){
			alert("O campo E-mail deve ser Preenchido!");
			return false;
		}

		if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(campo_email))){
			alert("O campo E-mail deve ser um endereço eletrônico!");
			return false;
		}

		if (campo_estado == ""){
			alert("Um Estado deve ser selecionado!");
			return false;
		}

		// Carregar o Preload.
		//$("#receba-novidades form button").hide(200);
		//$(".preload-02").css("display", "block");

		// Retorno dos valores.
		$.get(url + "/global/incs/home.ajax.php?tipo=2&nome=" + campo_nome + "&email=" + campo_email + "&estado=" + campo_estado, function(data){
			if (data == 1){
				//$("#receba-novidades").fadeTo("slow",0.4);
				$("#receba-novidades form #nome").attr("disabled", "disabled");
				$("#receba-novidades form #email").attr("disabled", "disabled");
				$("#receba-novidades form #ofertas_estado").attr("disabled", "disabled");
				//$(".preload-02").css("display", "none");
				//$(".retorno-02").css("display", "block");
				
				alert("Esse cadastro já existe!");

				setTimeout(function(){
					//$("#receba-novidades form p button").show(200);
					$("#receba-novidades form #nome").removeAttr("disabled");
					$("#receba-novidades form #email").removeAttr("disabled");
					$("#receba-novidades form #ofertas_estado").removeAttr("disabled");
					//$(".retorno-02").css("display", "none");
					//$("#receba-novidades").fadeTo("slow", 0.4);
				}, 2500);
			}
			else {
				//$("#receba-novidades").fadeTo("slow",0.4);
				//$(".preload-02").css("display", "none");
				//$(".retorno-02").css("display", "block").html('<img src="' + url + '/global/imgs/bg_confirm_news.png" />');
				alert("Cadastro efetuado com Sucesso!");

				setTimeout(function(){
					//$(".retorno-02").css("display", "none");
					//$("#receba-novidades").fadeTo("slow", 0.4);
					$("#receba-novidades form #nome").val("");
					$("#receba-novidades form #email").val("");
					$("#receba-novidades form #ofertas_estado").val("UF");
					//$("#receba-novidades form button").show(200);
				}, 1000);				
			}
		});
	}


	/*
		Função: mascaraNegra(id).
		Descrição: Chamar um lightbox na tela.
	*/
	Funcoes.prototype.mascaraNegra = function(){
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
		
		$("#mascara-negra").css({"width": maskWidth, "height": maskHeight});
		$("#mascara-negra").fadeIn(1000);
		$("#mascara-negra").fadeTo("slow",0.9);
		
		//$("." + id).css('top',  winH/2-$("." + id).height()/2);
		//$("." + id).css('left', winW/2-$("." + id).width()/2);
		//$("." + id).fadeIn(1000);
	}

	/*
		Função: fechar().
		Descrição: Fechar banner.
	*/
	Funcoes.prototype.fechar = function(){
		$(function(){
			$("a.close").click(function(){
				$(this).parent().hide();
			});
		});
	}


	/*
		Função: divCentro(id).
		Descrição: colocar a DIV no centro da tela.
	*/
	Funcoes.prototype.divCentro = function(id){
		func.mascaraNegra();
		var ns = (navigator.appName.indexOf("Netscape") != -1);
		var d = document;
		var sx = 10;
		var sy = 10;
		var el = d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
		var px = document.layers ? "" : "px";

		$("#" + id).css("display", "block");
		window[id + "_obj"] = el;
		if (d.layers)el.style = el;
		el.cx = el.sx = sx;
		el.cy = el.sy = sy;

		el.sP = function(x,y){
			this.style.top = y + px;
		};

		el.floatIt = function(){
			var pX, pY;
			pX = (this.sx >= 0) ? 0 : ns ? innerWidth : 

			document.documentElement && document.documentElement.clientWidth ? 
			document.documentElement.clientWidth : document.body.clientWidth;

			pY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? 
			document.documentElement.scrollTop : document.body.scrollTop;

			if (this.sy < 0) 
			pY += ns ? innerHeight : document.documentElement && document.documentElement.clientHeight ? 
			document.documentElement.clientHeight : document.body.clientHeight;

			this.cx += (pX + this.sx - this.cx)/8;this.cy += (pY + this.sy - this.cy)/8;
			this.sP(this.cx, this.cy);

			setTimeout(this.id + "_obj.floatIt()", 40);
		}
		return el;
	}

}

// Chamando os Objetos.
var func = new Funcoes();


/*
	Funções externas a classe Funcoes();
	Descrição: Jogar ordenadamente as funções.
*/
$.fn.extend({
	animaIcone: function(opt){

		var param = {
			movimentosEntrada: {marginTop:"-5px",height:"40px"},
			movimentosSaida: {marginTop:"0px",height:"38px"}
		}

		var options = $.extend(param, opt);

		$(this)	
		.mouseenter(function(){
			$(this).animate(param.movimentosEntrada,100);
		})
		.mouseleave(function(){
			$(this).animate(param.movimentosSaida,100);
		});

	}
});

// Chamando os Métodos que precisam do jQuery.
$(function(){
	func.fonteSize();
	$("#redes_sociais a").animaIcone();

	$("#mascara-negra, .fecha-mask").click(function(){
		$("#mascara-negra").fadeOut(400);
		$(".fechar-mascara").fadeOut(400);
	});	
});
