///////////////////////////////////////////////////////////
// Ações												//
/////////////////////////////////////////////////////////
jQuery(function($) {
	
	// INICIALIZAÇÃO
	estiloSelect.init();
	noLabel.init();
	banner.init();
	$('.rolagemDicas').scrollPages({ elementSize:286, elements: 1, direction: 'left' });
	$('body').bind('contextmenu',function(){ return false; });
	
	validar.init();
	
	$('form').submit(function(){
		return validar.form(this);
	})
	
	// TWITTER
	$('.boxTwitter').each(function() {
		var user = 'meditt_br';

		$(this).tweet({
			username: user,
			avatar_size: null,
			count: 1,
			loading_text: "carregando tweets..."
		});
	});
    
	
	// ACESSO RAPIDO
	$('.acessoRapido').click(function(){
		$(this).toggleClass('ativo');
		$('.boxAcessoRapido').fadeToggle();
	})
	var timeAcessoRapido;
	$('.boxAcessoRapido, .acessoRapido').hover(
		function(){
			clearTimeout(timeAcessoRapido);
		},
		function(){
			timeAcessoRapido = setTimeout(function(){
				$('.boxAcessoRapido').fadeOut();
				$('.acessoRapido').removeClass('ativo');
			},500)
		}
	)
	
	
	// ACCORDION
	$("dl").each(function(){
		var dl = this;
		$("dt a", this).click(function(){
			if(!$(this).parent().hasClass("ativo")){
				$(".aberto", dl).slideUp("fast").removeClass("aberto");
				$(".ativo", dl).removeClass("ativo");
				$(this).parent().addClass("ativo").next("dd").slideDown("fast").addClass("aberto");
			}else{
				$(this).parent().removeClass("ativo").next("dd").slideUp("fast").removeClass("aberto");
			}
		});	
	});
	
	//PAGINA ATUAL
	paginaAtual = window.location+"";
	
	if(paginaAtual == '') paginaAtual = 'Default.asp';
	$('a[href="'+paginaAtual+'"]').addClass("ativo").siblings('ul').show();
	$('a[href="'+paginaAtual+'"]').addClass("ativo").parents('ul:eq(0)').show().siblings('a').addClass('ativo');
	
	if(paginaAtual.indexOf("Doutor-Dicas") != -1){
		$('a[href*="Doutor-Dicas.asp"]').addClass("ativo").parents('ul:eq(0)').show().siblings('a').addClass('ativo');
	}
	if(paginaAtual.indexOf("/Mini-Dicionario-De-Doencas/") != -1){
		$('a[href*="Mini-Dicionario-De-Doencas.asp"]').addClass("ativo").parents('ul:eq(0)').show().siblings('a').addClass('ativo');
	}
	if(paginaAtual.indexOf("/Dicas-De-Saude/") != -1){
		$('a[href*="Dicas-De-Saude.asp"]').addClass("ativo").parents('ul:eq(0)').show().siblings('a').addClass('ativo');
	}
	if(paginaAtual.indexOf("/Primeiros-Socorros/") != -1){
		$('a[href*="Primeiros-Socorros.asp"]').addClass("ativo").parents('ul:eq(0)').show().siblings('a').addClass('ativo');
	}

	// CALENDARIO
	if (paginaAtual.indexOf('Eventos.asp') != -1){
		carregaCalendar('destino=data_hora|calendario|true');
	}
	
	//NEWSLETTER
	$('#formNews').submit(function(){
		if (validar.form(this)){
			$('.loading').show();
			$.ajax({
				url: url_site + 'rodaajax/newsletter',
				data: $('#formNews').serialize(),
				type: 'POST',
				success: function(r){
					if(r=="ok") var mensagem = 'Cadastro realizado com sucesso!';
					if(r=="erro") var mensagem = 'Este e-mail já está cadastrado em nossa base!';
					$('.loading').addClass('mensagem').append('<p>'+mensagem+'</p><a href="javascript:void(0)" title="voltar" class="botao">voltar</a>');
					$('.loading a').click(function(){
						$(this).parent().removeClass('mensagem').html('').hide();
					});
				},
				error: function(){
					alert('Houve um erro nessa requisição.\nPor favor, tente mais tarde.');
					$('.loading').hide();
				}
			})
		}
	})
	
	//DUVIDAS
	$('#formDuvidas').submit(function(){
		if (validar.form(this)){
			$('.loadingDuvida').show();
			$.ajax({
				url: url_site + 'rodaajax/duvidas',
				data: $('#formDuvidas').serialize(),
				type: 'POST',
				success: function(r){
					if(r=="ok") var mensagem = 'Sua dúvida foi enviada com sucesso!';
					$('.loadingDuvida').addClass('mensagem').append('<p>'+mensagem+'</p><a href="javascript:void(0)" title="voltar" class="botao">voltar</a>');
					$('.loadingDuvida a').click(function(){
						$(this).parent().removeClass('mensagem').html('').hide();
					});
				},
				error: function(){
					alert('Houve um erro nessa requisição.\nPor favor, tente mais tarde.');
					$('.loadingDuvida').hide();
				}
			})
		}
	})
	
	//JUMPMENU
	$('.jumpMenu').change(function(){
		$(this).parents('form:eq(0)').submit();
	})
	
	
	// CENTRALIZA PAGINACAO
	$('.navegacao ul').each(function(){
		var larguraDiv = $(this).parent().width();
		var larguraUl = $(this).width();
		var margem = larguraDiv / 2 - larguraUl / 2
		$(this).css('margin-left',margem+'px')
	})
	
	// PEIXE GRANDE
	$('.peixeGrande').hover(
		function(){ 
			$(this).stop().animate({width:827});
			},
		function(){ 
			$(this).stop().animate({width:181});
		}
	).find('.fechar').click(function(){ 
			$(this).parent().remove(); 
			return false;
	});
	
	var time

	$(window).scroll(function(){
		var top = $(window).scrollTop();
		clearTimeout(time);
		topObj = top < 214 ? 214 : top + 10
		
		time = setTimeout(function(){
			$('.peixeGrande').animate({top:topObj});
		}, 200)
		
	})
	
})


///////////////////////////////////////////////////////////
// Funções												//
/////////////////////////////////////////////////////////

// SELECT 
estiloSelect = {
	init: function(){
		var primeiro = 0;
		$("select.select").each(function(){
			var html =  '<div id="' + $(this).attr("id") + '" class="' + $(this).attr("class") + '">';
				html += '	<div class="ativo"></div>';
				html += '	<input id="' + $(this).attr("id") + '_select" name="' + $(this).attr("name") + '" type="hidden" value="" />';
				html += '	<div class="options">';
				for(i=0;i<$("option",this).length;i++){
					html += '	<a href="javascript:void(0);" title="' + $("option:eq(" + i + ")",this).text() + '" rel="' + $("option:eq(" + i + ")",this).attr("value") + '">' + $("option:eq(" + i + ")",this).text() + '</a>';
				}
				html += '	</div>';
				html += '</div>';
			
			$(this).replaceWith(html);
			$("option",this).each(function(i){
				primeiro = this.selected ? i : primeiro;
			});
		});
		$("div.select").css("visibility","visible").each(function(){
			var altura = $("a",this).length;
				altura = altura > 5 ? 5 : altura;
			$(".options",this).css({height:(altura * parseInt($("a:first",this).css("height"))) + "px", visibility:"visible", display:"none"});
			estiloSelect.change(this,primeiro);
		})
		$("div.select .ativo").unbind().click(function(){
			$(this).parent().parent().css("z-index","3");
			$(this).siblings(".options").slideDown('fast',function(){
				$("html").bind('click',estiloSelect.fecha);
			});
		});
		$("div.select").each(function(){
			$("a", this).each(function(i){
				$(this).unbind().click(function(){
					estiloSelect.change($(this).parents("div.select:eq(0)"),i);
				});
			});
		});
	},
	
	change: function(obj,option){
		$("a.optionAtivo",obj).removeClass("optionAtivo");
		$("a:eq(" + option + ")",obj).addClass("optionAtivo");
		var texto = $("a:eq(" + option + ")",obj).text();
		var valor = $("a:eq(" + option + ")",obj).attr("rel");
		$(".ativo",obj).html(texto);
		$("input",obj).val(valor);
		estiloSelect.fecha();
	},
	
	fecha: function(){
		$("div.select .options:visible").slideUp('fast',function(){$(this).parent().parent().css("z-index","2")});
		$("html").unbind('click',estiloSelect.fecha);
	}
}



// SCROLLPAGES
$.extend({
    scrollPages: {
        defaults: {
            elementSize:50,
            elements:3,
            speed:"slow",
            direction:"up"
        }
    }
});
$.fn.extend({
    scrollPages: function(options) {
        options = $.extend({}, $.scrollPages.defaults, options);
        return this.each(function() {

            // Definições de variáveis
            var total = $(".scrollMask li", this).length;
            var mask = options.elementSize * options.elements;
            var area = options.elementSize * total;
            var animation = false;
            var obj = this;
            var dimension = options.direction == "left" ? "width" : "height";
            var side = new Array();
            side[0] = options.direction;
            side[1] = options.direction == "up" ? "down" : "right";

            $(".scrollButtom", this).css("opacity", "1");
            if (options.elements >= total) {
                $(".scrollButtom", this).css("opacity", "1");
                mask = area;
            } else {
            $(".scrollButtom[rel*='" + options.direction + "']", obj).css("opacity", ".5");
            }

            // Aplicação de estilos
            $(".scrollMask", this).css({ "width": mask + "px", overflow: "hidden" }); // Máscara
            $(".scrollMask ul", this).css({ "width": area + "px", marginTop: 0 }); // UL
            $(".scrollMask li", this).css({ "width": options.elementSize + "px", display: "block" }); // LI

            // Função que executa a rolagem
            var rolagem = function(direction) {

                // Variáveis
                var margem = -parseInt($(".scrollMask ul", obj).css("margin-" + (options.direction == "up" ? "top" : "left")));

                var intervalo = direction == side[1]
					? (margem + (mask * 2)) < area
						? mask
						: area - (margem + mask)
					: (margem - mask) < 0
						? margem
						: mask
				;
                direction = direction == side[1]
					? -margem - intervalo
					: -margem + intervalo
				;

                $(".scrollButtom", obj).css("opacity", "1");
                var rel = -direction == 0 ? side[0] : (-direction + mask) == area ? side[1] : null;
                if (rel != null) $(".scrollButtom[rel*='" + rel + "']", obj).css("opacity", ".5");

                // Animação
                animation = true;
                if (options.direction == "up") {
                    $(".scrollMask ul", obj).animate({ marginTop: direction + "px" }, options.speed, function() { animation = false; });
                } else {
                    $(".scrollMask ul", obj).animate({ marginLeft: direction + "px" }, options.speed, function() { animation = false; });
                }
            }

            // Aplicação de eventos
            $(".scrollButtom", this).unbind("click").click(function() {
                if (!animation) {
                    var direction = $(this).attr("rel");
                    rolagem(direction);
                }
            });
        });
    }
});



// NOLABEL
noLabel = {
    init: function () {
        $(".noLabel").each(function () {
            $(this).addClass("vazio");
            noLabel.buffer[$(this).attr("id")] = $(this).val();
            $(this).unbind('focus', noLabel.foco).unbind('blur', noLabel.desfoco).bind('focus', noLabel.foco).bind('blur', noLabel.desfoco);
        }).parents("form:eq(0)").unbind('submit', noLabel.formulario).bind('submit', noLabel.formulario);
    },

    buffer: {},

    foco: function (obj) {
        
        obj = this;
        if ($(obj).hasClass("vazio")) {
            if ($(obj).is("textarea")) {
                $(obj).html("");
            } else {
                $(obj).val("");
            }
            $(obj).removeClass("vazio");
        }
    },

    desfoco: function () {
        if ($.trim($(this).val()) == "") {
            if ($(this).is("textarea")) {
                $(this).html(noLabel.buffer[$(this).attr("id")]);
            } else {
                $(this).val(noLabel.buffer[$(this).attr("id")]);
            }
            $(this).addClass("vazio");
        }
    },

    formulario: function () {
        $(".vazio", this).each(function () {
            noLabel.foco(this);
        });
        return true;
    }
}

// MEDIABOX
var banner = {

	// Variáveis
	total: 0,
	atual: 0,
	timeOut: null,
	emAnimacao: false,
	
	// Início
	init: function(){
		
		banner.total = $("#mediaBox div.imagens a").length;
		
		if(banner.total > 1){

			$("#mediaBox div.botoes a").click(function(){
				var ativo = typeof($(this).attr("class")) == "undefined" ? false : $(this).attr("class").indexOf("ativo") == -1 ? false : true;
				if(!ativo && !banner.emAnimacao){
					clearTimeout(banner.timeOut);
					var alvo = $(this).index('#mediaBox div.botoes a') + 1;
					banner.muda(alvo);
				}
			});
	
			// Inicia animação
			banner.muda(1);
		}else{
			$("#mediaBox div.imagens a, #banner div.textos p").fadeIn("slow");
		}
	},
	
	// Muda de imagem
	muda: function(alvo){
	
		var src = $("#mediaBox div.imagens a:eq("+(alvo-1)+") img").attr('src');
		var img = new Image();

		img.onload = function(){
		
			$("#mediaBox div.botoes a.ativo").removeClass("ativo");
			$("#mediaBox div.botoes a:eq("+(alvo-1)+")").addClass("ativo");
		
			if(banner.atual > 0) {
				$("#mediaBox div.imagens a:eq("+(banner.atual-1)+")").stop().fadeOut(2000);
				$("#mediaBox div.textos p:eq("+(banner.atual-1)+")").stop().animate({bottom:0},100).animate({bottom:-57},300);
				$("#mediaBox div.botoes a:eq("+(banner.atual-1)+")").animate({height:42, lineHeight:'42px', fontSize: 26, marginTop:9});				
			}
		
			banner.emAnimacao = true;
			$("#mediaBox div.botoes a").css("cursor","wait");
			$("#mediaBox div.botoes a:eq("+(alvo-1)+")").animate({height:51, lineHeight:'50px', fontSize: 38, marginTop:0});
			$("#mediaBox div.imagens a:eq("+(alvo-1)+")").stop().fadeIn(1000,function(){
				$("#mediaBox div.textos p:eq("+(alvo-1)+")").stop().animate({bottom:0},300).animate({bottom:-2},100);
				
				banner.atual = parseInt($("#mediaBox div.botoes a.ativo").index('#mediaBox div.botoes a')) + 1;
				var proximo = banner.atual == banner.total ? 1 : banner.atual + 1;
				clearTimeout(banner.timeOut);
				banner.timeOut = setTimeout(function(){ banner.muda(proximo); },8000);
				banner.emAnimacao = false;
				$("#mediaBox div.botoes a").css("cursor","pointer");
			});
		}
		
		img.src = src;
	}
}

// CALENDARIO
function carregaCalendar(dados){
										
	$.ajax({
		url: url_site + 'rodaajax/calendario/',
		data: dados,
		type: 'POST',
		success:function(r){
			$('#calendario').html(r)

			$('.setaCalend').click(function(){
				var _dados = $(this).attr('rel');
				carregaCalendar(_dados);
			})
			
		}
	});
	
}

