/**
 *
 * Contato
 * http://www.segatoemarkert.com.br/contato.php
 *
 **/


/**
 *
 * Variáveis utilizadas pela API do Google Maps
 *
 **/
var map = null;
var geocoder = null;
var endereco = 'Rua Mário Amaral, 172 - 04002-020 - São Paulo-SP';
var key = 'ABQIAAAAwpNb7Olm-xJTYX2ClRtrlhRI-hMNEhwm4Y7lHBiR_1WOMMYXVxQ1zmpRnOKaqYOSoeawunZJm3w2lQ';


jQuery(function($)
{

	/**
	 *
	 * Ativa o botão "Enviar"
	 *
	 **/
	//$('button#btnEnviar').removeAttr('disabled');

	// Aviso
	var pW = $('p#camposObrigatorios').outerWidth();
	var pH = $('p#camposObrigatorios').outerHeight();
	var pT = $('p#camposObrigatorios').position().top;
	var pL = $('p#camposObrigatorios').position().left;
	var fW = $('form#formContato fieldset').outerWidth();
	var fH = $('form#formContato fieldset').outerHeight();
	var fT = $('form#formContato fieldset').position().top;
	var fL = $('form#formContato fieldset').position().left;

	$('div#conteudo').append('<div id="aviso"></div>');
	$('div#aviso')
		.css(
		{
			position:	'absolute',
			top:		Math.ceil(pT),
			left:		Math.ceil(pL),
			width:		pW,
			height:		Math.ceil(pH) + Math.ceil(fH) + 30,
			zIndex:		100
		})
		.append('<div id="bg"></div><table border="0" cellpadding="0" cellspacing="0" width="100%" id="txtAviso"><tr><td valign="middle"></td></tr></table>');

	$('div#aviso div#bg').css(
	{
		position:			'absolute',
		top:				0,
		left:				0,
		width:				pW,
		height:				Math.ceil(pH) + Math.ceil(fH) + 30,
		backgroundColor:	'#f6f6f6',
		opacity:			0.95,
		zIndex:				101
	});

	$('div#aviso table#txtAviso').css(
	{
		position:			'absolute',
		top:				0,
		left:				0,
		width:				pW,
		height:				Math.ceil(pH) + Math.ceil(fH),
		fontSize:			'90%',
		zIndex:				102
	});

	$('div#aviso table#txtAviso tr td')
		.css('text-align', 'center')
		.html('O envio de mensagens est&aacute; temporariamente indispon&iacute;vel. Desculpe-nos pelo inconveniente.<br /><br />Caso desejar, escreva um e-mail diretamente para <a href="mailto:contato@segatoemarkert.com.br">contato@segatoemarkert.com.br</a>.');


	/**
	 *
	 * Mapa de localização
	 *
	 **/
	$('p#mapaLocalizacao a').click(function()
	{
		// Se for o IE6... (utilizado por causa do position:fixed)
		if($.browser.msie && $.browser.version == '6.0')
		{
			$('body', 'html').css({ height: '100%', width: '100%' });

			var zIndex = 1;

			// Altera o z-index de cada <select> na página
			$('select').each(function()
			{
				$(this).css('z-index', zIndex);
				zIndex++;
			});

			// Cria o iframe que corrige problemas de sobreposição dos selects existentes na página
			$('body').append('<iframe id="hideSelect" frameborder="0"></iframe>');
		}

		// Cria o overlay
		if($('div#overlay').length == 0)
		{
			$('body').append('<div id="overlay"></div>');
		}

		// Exibe o overlay
		$('div#overlay').css('opacity', 0.7).fadeIn('fast');


		// Cria o box do mapa caso ainda não tenha sido criado
		if($('div#modalBox').length == 0)
		{
			modalBox  = '<div id="modalBox">';
			modalBox += '	<h2>Mapa de localização</h2>';
			modalBox += '	<a href="#" id="btnFechar" title="Fechar">Fechar</a>';
			modalBox += '	<div id="mapa"></div>';
			modalBox += '</div>';

			$('body').append(modalBox);
		}

		$('div#modalBox').show();


		/**
		 *
		 * Carrega o mapa com a API do Google Maps
		 *
		 **/
		if(!window.GBrowserIsCompatible)
		{
			return false;
		}
		else
		{
			if(GBrowserIsCompatible())
			{
				map = new GMap2(document.getElementById('mapa'));
				geocoder = new GClientGeocoder();


				/**
				 *
				 * Monta o mapa e adiciona o marcador
				 *
				 **/
				geocoder.getLatLng(endereco, function(localizacao)
				{
					if(!localizacao)
					{
						alert('O endereço "' + endereco + '" não foi encontrado. Por favor, pressione a tecla "F5" para atualizar a página para tentar localizá-lo novamente.');
					}
					else
					{
						// Centraliza o mapa no endereço especificado (point equivale às coordenadas do endereço)
						map.setCenter(localizacao, 16);


						// Adiciona os controles de direção e de zoom ao mapa
						var mapControl = new GLargeMapControl();
						map.addControl(mapControl);


						// Marcador
						var marcador = new GMarker(localizacao);
						map.addOverlay(marcador);
					}
				});

			}
			else
			{
				alert('O mapa não foi carregado pois seu browser não oferece suporte à API do Google Maps');
				return false;
			}
		}



		/**
		 *
		 * Botão "Fechar"
		 *
		 **/
		$('a#btnFechar, div#overlay').click(function()
		{
			$('div#overlay').fadeOut('fast');
			$('div#modalBox').fadeOut('fast');

			// Se for o IE6, remove o iframe criado para evitar erros com a sobreposição do overlay aos selects
			if($('iframe#hideSelect').length != 0)
			{
				$('iframe#hideSelect').remove();
			}

			return false;
		});

		return false;
	});


	/**
	 *
	 * Máscaras do formulário
	 *
	 **/

	// Telefone
	$('input#telefone').setMask('(99) 9999-9999');



	/**
	 * Descrição:
	 * Validação do formulário de contato
	 *
	**/
	$('form#formContato').submit(function()
	{

		// Nome
		nome = $('input#nome');

		if(isEmpty('nome'))
		{
			alert('Informe o seu nome!');
			nome.focus();
			return false;
		}

		// Tamanho do nome
		if(nome.val().length < 3)
		{
			alert('Verifique o nome (deve possuir pelo menos 3 caracteres)');
			nome.focus();
			return false;
		}


		// Telefone
		telefone = $('input#telefone');

		if(!isEmpty('telefone'))
		{
			if(!validaTelefone(telefone.val()))
			{
				alert('Verifique o número do telefone (siga o formato especificado)');
				telefone.focus();
				return false;
			}
		}


		// E-mail
		email = $('input#email');

		if(isEmpty('email'))
		{
			alert('Informe o e-mail!');
			email.focus();
			return false;
		}

		// Valida o e-mail
		if(!validaEmail(email.val()))
		{
			alert('E-mail inválido! Verifique o e-mail digitado');
			email.focus();
			return false;
		}


		// Mensagem
		mensagem = $('textarea#mensagem');
		
		if(isEmpty('mensagem'))
		{
			alert('Escreva uma mensagem!');
			mensagem.focus();
			return false;
		}

		// Tamanho da mensagem
		if(mensagem.val().length < 3)
		{
			alert('Verifique sua mensagem (mínimo de 3 caracteres)');
			mensagem.focus();
			return false;
		}
		else if(mensagem.val().length > 4096)
		{
			alert('Verifique sua mensagem (máximo de 4096 caracteres)');
			mensagem.focus();
			return false;
		}

	});

});


/**
 *
 * Libera a memória utilizada pela API do Google Maps após sair da página
 *
 **/
$(window).unload(function()
{
	GUnload();
});


/**
 * validaTelefone(num)
 *
 * Descrição:
 * Valida o número do telefone informado, utilizando Expressões Regulares
 *
 * num: Número do telefone que será validado
 *
**/
function validaTelefone(num)
{
	var filter = /^\([0-9]{2}\) [0-9]{4}-[0-9]{4}$/;
	return (filter.test(num)) ? true : false;
}


/**
 * validaEmail(email)
 *
 * Descrição:
 * Valida o e-mail informado, utilizando Expressões Regulares
 *
 * email: E-mail que será validado
 *
**/
function validaEmail(email)
{
	var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
	return (filter.test(email)) ? true : false;
}


/**
 * isEmpty()
 *
 * Descrição:
 * Verifica se o campo está vazio
 *
 * idInput: ID do input/textarea que será validado
 *
**/
function isEmpty(idInput)
{
	return ($('#' + idInput).val() == '') ? true : false;
}


/**
 * isEquals()
 *
 * Descrição:
 * Verifica se o valor do input/textarea é igual ao valor informado
 *
 * idInput: ID do input/textarea que será validado
 * compararCom: Valor que será utilizado na comparação
 *
**/
function isEquals(idInput, compararCom)
{
	return ($('#' + idInput).val() == compararCom) ? true : false;
}


/**
 * lengthOf(idInput, operation, compararCom)
 *
 * Descrição:
 * Verifica o tamanho (length) informado no input de acordo com a operação especificada
 *
 * idInput: ID do input/textarea que será validado
 * operation: Operação que será efetuada
 * compararCom: Valor que será utilizado na comparação
 *
**/
function lengthOf(idInput, operation, compararCom)
{
	var valueLength = $('#' + idInput).val().length;
	var result = false;

	switch(operation)
	{
		case '>':
			result = (valueLength > compararCom) ? true : false;
			break;

		case '>=':
			result = (valueLength >= compararCom) ? true : false;
			break;

		case '<':
			result = (valueLength < compararCom) ? true : false;
			break;

		case '<=':
			result = (valueLength <= compararCom) ? true : false;
			break;

		case '==':
			result = (valueLength == compararCom) ? true : false;
			break;

		case '!=':
			result = (valueLength != compararCom) ? true : false;
			break;
	}

	return result;
}


