/**
 * Arquivo responsavel pela chamada de todas as funcionalidades de Interface do site Brasil Vexado
 *
 * @author: Mateus Moura chagas[dot]mateus[at]gmail[dot]com
 * @date: 08/10/2008
 *
 * Copyright(c) Todos os direitos reservados a Creative Markup - http://www.creativemarkup.com.br 
 */
 
$( function()
{
	acoes = new Acoes();	
});

Acoes = function()
{
	var self = this,
		div = $( "div#geral" ),
		header = $( "div#header", div ),
		conteudo = $( "div#conteudo", div ),
		meio = $( "div.meio", conteudo ),
		cadastrar = $( "form", header ),
		formCadastro = $( "form:first", conteudo ),
		inputs = $( "input", formCadastro ),
		fim = $( "div.fim", div ),
		content = $( "div.default.content", conteudo );
	
	this.init = function()
	{				
		div.is( ".home" ) && function()
		{
			self.abas();
			self.login();
			
			setInterval( function()
			{
				self.banners( $( "div.content", meio ) );
			}, 8000 );
		}();
		
		div.is( ".casa" ) && function()
		{
			self.abas();
			self.login();
		}();
		
		div.is( ".cardapio" ) && function()
		{
			self.login();
		}();
		
		div.is( ".default" ) && function()
		{
			self.abas();
			self.login();
		}();
		
		div.is( ".saladas" ) && function()
		{
			self.login();
		}();
		
		div.is( ".small" ) && function()
		{
			self.validacao();
			self.mascaras();
		}();
		
		$.fn.ifixpng && $( "div.variedades span, div.pratos span", conteudo ).ifixpng( );
		
		$( ".small a.bt_voltar" ).click( function()
		{
			window.history.back();
			
			return false;
		});
	}
	
	// Login e Senha
	this.login = function()
	{
		$( "input#email", cadastrar ).resetDefaultValue();
		$( "input#senha", cadastrar ).focus( function()
		{
			$( "span.senha", cadastrar ).hide();
			
			$( this ).blur( function()
			{
				$( this ).val() == "" && $( "span.senha", cadastrar ).show();
			})
		});
		
		$( "span.senha", cadastrar ).click( function()
		{
			var $this = $( this );
			$this.hide();
			
			$( "input#senha", cadastrar ).blur( function()
			{
				$( this ).val() == "" && $( "span.senha", cadastrar ).show();
			})
		});
	}
	
	// Validação de Formulários
	this.validacao = function()
	{
		var classe = formCadastro.attr( "class" ),
			clicked = 0;
		
		formCadastro.validate({
			rules: {
				nome:"required",
				mensagem:"required",
				assunto:"required",
				loja:"required",
				email: {
					required:true,
					email:true
				}
			},
			submitHandler: function()
			{
				if( clicked )
					return false;

				clicked++;

				formCadastro.ajaxSubmit( function( response )
				{
					var resposta = $( response ).appendTo( "body" ).modal().fadeIn().addClass( classe );
					resposta.is( ".cadastro" ) && $( ".bt_fechar", resposta ).attr( "href", "pesquisa.html" );
					
					clicked = 0;
	
					$.browser.msie && $( "html" ).css( "overflow-y", "hidden" );
					$( "#modal" ).click( function()
					{
						$( "html" ).css( "overflow-y", "auto" );
					});
				});
			}
		});
		
		$( ".bt_enviarOpiniao", conteudo ).unbind().click( function()
		{
			var parent = $( this ).parent();
			
			parent.validate({
				submitHandler: function()
				{
					parent.ajaxSubmit( function( response )
					{
						$( response ).appendTo( "body" ).modal().fadeIn().addClass( "sugestao" );
						$.browser.msie && $( "html" ).css( "overflow-y", "hidden" );
						$( "#modal" ).click( function()
						{
							$( "html" ).css( "overflow-y", "auto" );
						});
					});
				}
			})
		});
	}
	
	// Máscaras dos Formulários
	this.mascaras = function()
	{
		inputs
			// Telefone
			.filter( ".telefone" ).mask( "(99) 9999-9999" ).end()
			// Data
			.filter( ".data" ).mask( "99/99/9999" ).end()
			// Cep
			.filter( ".cep" ).mask( "99-999999" ).end()
			// Somente números
			.filter( ".numero" ).onlyNumber( );
	}
	
	// Abas
	this.abas = function()
	{
		var callback = function()
		{
			var ulImagens = $( "ul.imagens", conteudo );
			
			$( "button", ulImagens ).unbind().click( function()
			{
				var $this = $( this ),
					image = $this.siblings( "img" ),
					ativos = $( "button.ativo", ulImagens ),
					imgs = $( "img", ulImagens );
					
				!$this.is( ".ativo" ) && ativos.removeClass( "ativo" ) && imgs.removeClass( "ativo" ) && $this.addClass( "ativo" ) && image.addClass( "ativo" );
			});
		};
		
		// Abas a Casa
		meio.aba(
		{
			contentArea: content,
			menu: $( "ul.menuLocal", meio ),
			item: "a"
		}, callback );
		
		callback();
		
		// Abas Home
		meio.aba(
		{
			contentArea: $( "div.content", meio ),
			menu: $( "ul.menu", meio ),
			item: "a"
		});
		
		// Aba cardapios detalhados
		meio.aba(
		{
			contentArea: $( "div.default", meio  ),
			menu: $( "div.variedades > ul", fim ),
			item: "a:not(.bt_voltar)"
		});
	}
	
	this.trocando = false;
	//Trocar Banner
	this.banners = function( cont )
	{
		var active = $( "div.ativo", cont ),
			menu = $( cont ).next(),
			liActive = $( "li.ativo", menu );

		if( this.troncando )
			return false;
			
		this.trocando = true;

		active.fadeOut( function()
		{
			active.removeClass( "ativo" );
			
			active.next().length
				? active.next().fadeIn().addClass( "ativo" )
				: $( "div.primeiro", cont ).fadeIn().addClass( "ativo" );
				
			this.trocando = false;
		});
		
		$( "a", liActive ).removeClass( "ativo" );
		liActive.removeClass( "ativo" );
		
		liActive.next().length
			? liActive.next().addClass( "ativo" ) && $( "a", liActive.next() ).addClass( "ativo" )
			: $( "a.primeiro", menu ).addClass( "ativo" ) && $( "a.primeiro", menu ).parent().addClass( "ativo" )
	}
		
	self.init();
}