var sacClass = new Class({
	options: 
	{

	},
	
	initialize: function(options)
	{
		this.setOptions(options);
		
		this.formVisible = null;
		
		$('div_sac_comercial').addEvent('click', this.sac_comercial.bind(this));
		$('div_sac_tecnico').addEvent('click', this.sac_tecnico.bind(this));
		$('sac_enviar').addEvent('click', this.enviar.bind(this));
	},
	
	sac_comercial: function()
	{
		// Anima abertura
		if(! this.formVisible)
		{
			// Seta o título
			$('titulo_sac').innerHTML = 'Sevi&ccedil;o de Atendimento ao Consumidor - Comercial';
			this.animacao_abrir('sac_comercial');
		}
		// Anima fechar, anima abrir
		else if(this.formVisible != 'sac_comercial')
		{
			this.animacao_fechar();
			
			setTimeout(function()
			{
				// Seta o título
				$('titulo_sac').innerHTML = 'Sevi&ccedil;o de Atendimento ao Consumidor - Comercial';
				this.animacao_abrir('sac_comercial');
			}.bind(this), 500);
		}
	},
	//
	sac_tecnico: function()
	{
		// Anima abertura
		if(! this.formVisible)
		{
			// Seta o título
			$('titulo_sac').innerHTML = 'Sevi&ccedil;o de Atendimento ao Consumidor - T&eacute;cnico';
			this.animacao_abrir('sac_tecnico');
		}
		// Anima fechar, anima abrir
		else if(this.formVisible != 'sac_tecnico')
		{
			this.animacao_fechar();
			
			setTimeout(function()
			{
				// Seta o título
				$('titulo_sac').innerHTML = 'Sevi&ccedil;o de Atendimento ao Consumidor - T&eacute;cnico';
				this.animacao_abrir('sac_tecnico');
			}.bind(this), 500);
		}
	},
	
	//
	enviar: function()
	{
		var nome = $('sac_nome').value;
		var email = $('sac_email').value;
		var tipo_solicitacao = $('sac_tipo').value;
		var telefone = $('sac_telefone').value;
		var empresa = $('sac_empresa').value;
		var departamento = $('sac_departamento').value;
		var assunto = $('sac_assunto').value;
		var mensagem = $('sac_mensagem').value;
		
		var erro = '';
		if(nome == '')
			erro += "- Informe o nome.\n";
		if(email == '')
			erro += "- Informe o e-mail.\n";
		else if(! email.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i))
			erro += "- E-mail inválido.\n";
		if(telefone == '')
			erro += "- Informe o seu telefone.\n"
		if(empresa == '')
			erro += "- Informe o nome da sua empresa.\n";
		if(assunto == '')
			erro += "- Informe o assunto da mensagem.\n";
		if(mensagem == '')
			erro += "Preencha a mensagem.\n";
	
		if(erro == '')
		{
			var variaveis = {
				oper: 'sac',
				nome: escape(nome),
				email: email,
				tipo_solicitacao: escape(tipo_solicitacao),
				tipo_sac: this.formVisible,
				telefone: telefone,
				empresa: escape(empresa),
				departamento: escape(departamento),
				assunto: escape(assunto),
				mensagem: escape(mensagem)
			};
			$('sac_enviar').disabled = true;
			show_hide_processando("Processando");
			new Ajax('php/engine.php', {
				method: 'post',
				data: variaveis,
				onSuccess: function(obj_text)
				{
					$('sac_enviar').disabled = false;
					show_hide_processando();
					eval('var obj = ' + obj_text + ';');
					if(obj)
					{
						if(obj.tipo_retorno == 'sucesso')
						{
							$('sac_nome').value = '';
							$('sac_email').value = '';
							$('sac_telefone').value = '';
							$('sac_empresa').value = '';
							$('sac_departamento').value = '';
							$('sac_assunto').value = '';
							$('sac_mensagem').value = '';
						}
						alert(obj.mensagem);
					}
				},
				onFailure:  function()
				{
					show_hide_processando();
					alert('Não foi possível enviar a mensagem. Por favor tente novamente mais tarde.');
				}
			}).request();
		}
		else
		{
			alert("O(s) seguinte(s) problema(s) foram encontrado(s):\n\n" + erro);
		}
	},
	//
	animacao_abrir: function(form)
	{
		this.formVisible = form;
		var efeito = $('formulario_sac').effects({duration: 500, transition: Fx.Transitions.Quad.easeOut});	
		efeito.start({'height': [0, 430], 'opacity': [0, 1]});
	},
	//
	animacao_fechar: function(abrir)
	{
		var efeito = $('formulario_sac').effects({duration: 500, transition: Fx.Transitions.Quad.easeOut});	
		efeito.start({'height': [430, 0], 'opacity': [1, 0]});
	}
});
sacClass.implement(new Options, new Events);