/**
 * Lojista Online
 * @authors Mateus Moura chagas[dot]mateus[at]gmail[dot]com
 *
 * Desenvolvido por Kava
 */
 
$( function()
{
	actions = new Actions();

	$( ".fix" ).ifixpng();
});

Actions = function()
{
	var self = this;
	
	this.content = $( "div#content" );
	this.header = $( "div#header" );

	this.init = function()
	{
		var contact = $( "form.contact", self.content ),
			featured = $( "div.destaque", self.header ),
			commerce = $( "div.comercio", self.contente );
		
		contact.length && self.formValidate( contact.parent() );

		featured.length && function()
		{
			setInterval( function()
			{
				self.banners( featured );
			}, 8000 );
			
			// Abas Home
			featured.aba(
			{
				contentArea: $( "div.content", featured ),
				menu: $( "ul.menuFeatured", featured ),
				item: "a"
			});
		}();
		
		commerce.length && self.showResponse( commerce );
		
		if( self.content.is( ".teste" ) || self.content.is( ".contrate" ))
		{
			self.formValidate( self.content );
			
			$( ".bt_modal", self.content ).unbind().click( function()
			{
				var url = this.href;
				
				$.ajax(
				{
					url: url,
					success: function( response )
					{	
						var overlay = $( "<div id='overlay'></div>" ).appendTo( "body" ).show(),
							response = $( response );
						
						response.insertAfter( overlay ).fadeIn();
						
						$( ".bt_fechar", response ).unbind().click( function()
						{
							response.fadeOut( function()
							{
								response.remove();
							});
							
							overlay.fadeOut( function()
							{
								overlay.remove();	
							});
							
							return false;
						});
					}
				});	
				return false;
			});
		}
		
		//Chama a função de Hover no menu
		self.menuHover();
	}
	
	// Função para o Houver do menu
	this.menuHover = function()
	{
		var menu = $( "div.menu", self.header ),
			$this, parent, div, visible = false;
		
		$( "li", menu  ).unbind().hover( function()
		{
			if( $( this ).parent().parent().is( ".menu" ) == false && $( this ).parents( "div.subMenu" ).length == 1 )
				return false;
			
			$this = $( this );
			div = $( "div.subMenu", $this );
			div.show();
			
			//$this.siblings( "li" ).addClass( "inativo" );				
		}, function()
		{
			if( $( this ).parent().parent().is( ".menu" ) == false && $( this ).parents( "div.subMenu" ).length == 1 )
				return false;
				
			div.hide();
			
			//$this.siblings( "li" ).removeClass( "inativo" );
		});
	}
	
	this.trocando = false;
	//Move o banner automaticamente.
	this.banners = function( cont )
       {
               var active = $( "div.ativo", cont ),
                       menu = $( "ul.menuFeatured", cont ),
                       liActive = $( "li.ativo", menu );

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

               active.fadeOut( function()
               {
                       active.removeClass( "ativo" );
                       
                       if( active.next().length )
                       {
                               active.next().fadeIn().addClass( "ativo" );
                               $( "img", active.next() ).ifixpng()
                       }
                       else
                       {
                               $( "div.primeiro", cont ).fadeIn().addClass( "ativo" );
                               $( "img", $( "div.primeiro", cont ) ).ifixpng();
                       }
                               
                       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" )
       };
	
	// Validação do formulário para experimentar o produto
	this.formValidate = function( div )
	{
		var forms = $( "form", div );
	
		forms.validate(
		{
			submitHandler: function()
			{
				if( self.content.is( ".teste" ) || self.content.is( ".contrate" ))
				{
					var ulTemas = $( "ul.temasRadio", self.content ),
						ulSites = $( "ul.tipoSite", self.content ),
						radios = $( "input", ulTemas ),
						inputs = $( "input", ulSites ),
						permission = false,
						validation = false;
					
					inputs.each( function()
					{
						if( $( this ).attr( "checked" ) == true )
							 validation = true;
					});
					
					if( validation == false )
					{
						$( "input", ulSites ).parents( ".margem" ).addClass( "erro" );
						
						return false;
					}
					else
						$( "input", ulSites ).parents( ".margem" ).removeClass( "erro" );
					
					radios.each( function()
					{
						if( $( this ).attr( "checked" ) == true )
							 permission = true;
					});
	
					if( permission == false )
					{
						$( "input", ulTemas ).parents( ".tema" ).addClass( "erro" );
						
						return false;
					}
					else
						$( "input", ulTemas ).parents( ".tema" ).removeClass( "erro" );
					
					if( $( "input.termo", forms ).attr( "checked" ) == false )
					{
						$( "input.termo", forms ).parent().addClass( "erro" );
						
						return false;
					}
					else
						$( "input.termo", forms ).parent().removeClass( "erro" );
				}
				
				self.submitForm( forms );
			}
		});
		
		self.mascarar( forms );
	}
	
	this.submitForm = function( div )
	{
		div.ajaxSubmit( function( response )
		{
			div.fadeOut( function()
			{
				$( response ).hide().insertAfter( div ).fadeIn();
			})
		});
	}
	
	this.showResponse = function( div )
	{
		$( "a", div ).unbind().click( function()
		{
			var $this = $( this ),
				parent = $this.parents( "li" );
				
			$( "p", parent ).slideToggle();
			
			$( "p", parent.siblings( "li" ) ).slideUp();
			
			return false;
		});
	}
	
	// Mascaras para o formulário
	this.mascarar = function( forms )
	{
		// Definição dos tipos de mascaras aceitadas nos formulário
		var inputs = $( "input", forms );
		
		inputs
			// Re atribui as mascaras
			.unmask()
			// Data
			.filter( ".data" ).mask( "99/99/9999" ).end()
			// Telefone
			.filter( ".tel" ).mask( "9999-9999" ).end()
			//DDD
			.filter( ".ddd" ).mask( "(99)" ).end()
			// CPF
			.filter( ".cpf" ).mask( "999.999.999-99" ).end()
			// CNPJ
			.filter( ".cnpj" ).mask( "99.999.999/9999-99" ).end()
			// Real
			.filter( ".real" ).mask( "R$999,99" ).end()
			// Hora
			.filter( ".hora" ).mask( "99:99" ).end()
			// CEP
			.filter( ".cep" ).mask( "99999-999" ).end()
			// Cartão
			.filter( ".cartao" ).mask( "9999-9999-9999-9999" ).end()
			// Digitar somente numeros, exeto . e -
			.filter( ".numero" ).onlyNumber();
	}
	
	self.init();
}
