var pronline = {
	// Função para exibir janelas com formulário
	show_window: function (e) {
		// Cancela ação padrão
		e.preventDefault();
		
		// Atalho para o elemento clicado
		var self = $(this);
		
		// Título da janela
		var title = (e.data && e.data.title) ? e.data.title : self.text();
		
		// Usa o link como URL para carregar a janela
		// e o texto do link como título da janela
		$.modal.ajaxWindow(self.attr('href'), [title], function(){
			
			// Se houver regras de validação para aplicar
			if (e.data && e.data.rules) {
				
				// Associa a rotina de validação padrão
				// com as regras customizadas para a janela atual
				$.v7r.apply_rules(this, e.data.rules, e.data.callbacks);
				
			}
		});
	}
};

$(function(){
	// Adiciona a class
	$('body').addClass('js');
	
	// Procura os labels dos forms de busca
	$('form.box_search').find('label').each(function(){
		
		// Guarda a legenda de dentro do span
		var lb = $('span', this).text();
		
		// Eventos ao entrar e sair do campo
		$(':text', this).focus(function(){
			// Objeto jQuery com base no campo
			var self = $(this);
			// Se for igual à legenda, limpa o campo para a digitação
			if (self.val() == lb) {
				self.val('');
			}
		}).blur(function(){
			// Objeto jQuery com base no campo
			var self = $(this);
			// Se o valor estiver vazio, restaura a legenda
			if (self.val() == '') {
				self.val(lb);
			}
		}).val(lb);
	});
	
	// Configura e inicializa tabs
	$('.tabs').each(function(){
		// Índice da aba selecionada
		var last_tab;
		// Painéis de conteúdo
		var tabs_boxes = $('.tabs_box', this).hide();
		// Botões das abas
		var tabs_links = $('.tabs_menu a', this);
		
		tabs_links.each(function(i){
			// Ao clicar na aba
			$(this).click(function(){
				// Desabilita a última aba
				tabs_links.eq(last_tab).parent().removeClass('on');
				// Habilita aba atual
				$(this).parent().addClass('on');
				
				// Esconde último painel
				tabs_boxes.eq(last_tab).hide();
				// Mostra painel associado � aba clicada (por ordem)
				tabs_boxes.eq(i).show();
				
				// Altera o índice da última aba
				last_tab = i;
				
				// Anula ação padrão do clique
				return false;
				
			});
			
		});
		
		// Seleciona a primeira aba
		tabs_links.filter(':first').click();
	});
	
	// Configura e inicializa as enquetes
	var poll = $("#poll");
	
	if (poll.length > 0) {
		// Configura o link de estatísticas
		var poll_stats = function () {
			// Configura o link de votação
			var link = poll.find("a");
			link.click(function(){
				poll.load(link.attr("href"), poll_vote);
				return false;
			});
		};
		
		var poll_vote = function (data, textStatus) {
			
			// Limpa o conteúdo da caixa em caso de erro (ex.: 404 ou 500)
			if (textStatus == 'error') {
				poll.empty();
				return;
			}
			
			var form = poll.find("form");
			var stats = poll.find("a") ;
			form.submit(function(){
				// Verifica o valor
				var values = form.serialize();
				if (values != ''){
					// Vota na enquete
					$.post(form.attr("action"),values,function(post_data){
						$(poll).html(post_data);
						poll_stats();
					});
				} else {
					alert('Por favor, escolha uma opção.');
				};
				return false;
			});
			stats.click(function(){
				poll.load(stats.attr("href"), poll_stats);
				return false;
			})
		};
		
		if (!section_slug) {
			section_slug = '';
		}
		poll.load("/poll/latest/?slug=" + section_slug, poll_vote);
	}
	
	var show_content = function (e) {
		e.preventDefault();
		e.data.modal();
	};
	
	$('#daily_picture, #daily_charge').each(function(){
		
		// Atalho para o box atual
		var self = $(this);
		var wnd = false;
		
		// Associa o clique ao link do box
		var link = $('a', self).bind('click', function(e){
			
			e.preventDefault();
			
			// Gera a janela apenas uma vez
			if (!wnd) {
				
				// Atalhos para os créditos e descrição
				var credits = link.attr('title');
				var desc = link.find('strong').text();
				
				// Cria a janela
				wnd = $.modal.template(self.find('h2').text(), self.attr('id') + '_window')
				
				// Acrescenta um parágrafo com créditos se houver
				if (credits) {
					wnd.append(
						$('<p />').append(
							$('<small />').text(credits)
						)
					);
				}
				
				// Acrescenta a imagem linkada
				wnd.append( $('<img />').attr('src', link.attr('href')) );
				
				// Acrescenta um parágrafo com a descrição se houver
				if (desc) {
					wnd.append(
						$('<p />').append(
							$('<strong />').text(desc)
						)
					);
				}

				// Ajusta a dimensão da janela ao carregar a imagem
				var pic = $('img', wnd);
				wnd.load(function(){
					wnd.css('width', pic.attr('width'));
				});
				
			}
			
			wnd.modal();
			
		});
		
	});
	
	var login_options = {
		title: 'Faça seu login',
		// Regras de validação para a janela de login
		rules: [
			// Campos obrigatórios
			{name: 'email', rule: 'required'},
			{name: 'password', rule: 'required'},
			// Campos de e-mail
			{name: 'email', rule: 'is_email'}
		],
		callbacks: {
			onSuccess: function () {
				window.location.reload();
			},
			onError: function () {
				this.find('div.msg').addClass('error').text('E-mail e/ou senha inválidos, por favor verifique e tente novamente.');
			}
		}
	};
	
	$('a.login_required').bind('click', login_options, pronline.show_window);
	
	var urgent = $('#urgent');
	var urgent_items = $('p', urgent);
	if (urgent_items.length > 1) {
		var urgent_inter;
		var rotate_urgent = function () {
			urgent_inter = setInterval(function(){
				var curr = urgent_items.filter('.on');
				var next = curr.next();
				next = next.length && next || urgent_items.eq(0);
				curr.slideUp(function(){
					curr.removeClass();
					next.slideDown(function(){
						next.addClass('on');
					});
				});
			}, 10000);
		};
		
		urgent.hover(function(){
			clearInterval(urgent_inter);
		}, rotate_urgent);
		
		rotate_urgent();
		
	}

        // Atalho para o Floater Banner
        var floater = $('#floater_banner');
        // Exibe se houver banner
        if ($('iframe, object, embed, img', floater).length > 0) {
                floater.show();
                // Botao de fechar
                $('a:eq(0)', floater).click( function(){
                        floater.hide();
                });
                // Fecha apos 15 segundos
                setTimeout( function(){
                        floater.hide();
                }, 15000);
        }

	// Box de classificados
	var classibox = $('.classibox');
	// Identificador do intervalo
	var classibox_inter;
	// Abas
	var classibox_tabs = $('ul.tabs_menu li', classibox);

	// Método de rotação de abas
	var rotate_classibox = function () {
		// Liga a rotação e guarda o identificador do intervalo
		classibox_inter = setInterval(function(){
			// procura a próxima aba
			var next = classibox_tabs.filter('.on').next();
			// Se não houver próxima (última) volta à primeira
			next = next.length && next || classibox_tabs.eq(0);
			// Simula o evento de clique para alternar
			next.find('a').click();
		}, 5000);
	};
	
	// Ativa a rotação
	rotate_classibox();

	// Desativa a rotação quando o mouse estiver sobre o box
	// e reativa quando estiver fora
	classibox.hover(function(){
		clearInterval(classibox_inter);
	},
	function(){
		rotate_classibox();
	});



	//Máscara para busca avançada
	$('#id_published_date').mask('99/99/9999');
	$('#id_end_published_date').mask('99/99/9999');
	
});
	
