// JavaScript Document

//Mensajes de error para los campos
var name_text_error = "El nombre es demasiado corto";
var email_text_error = "El email tiene un formator erroneo: ej: info@abimurabiluz.es";
var phone_text_error = "El teléfono tiene un formato erroneo o es demasiado corto. ej: 968201079";
var comment_text_error = "El comentario es demasiado breve";

//Ruta imágenes
var image_ok = 'images/form-ok.png';
var image_error = 'images/form-error.png';

/*
 * @param name
 */
function checkName(name)
{
	var input = jQuery.trim(name);
	if(input.length > 0 && input.length < 4) return false;
	return true;
}

/*
 * @param phone
 */
function checkPhone(phone)
{
	var input = jQuery.trim(phone);
	var filter = /^\d*$/;
	if(input != "" && (!input.match(filter) || phone.length < 8)) return false;
	return true;
}

/*
 * @param email
 */
function checkEmail(email)
{
	var input = jQuery.trim(email);
	var filter = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9]{2,4}$/;
	if(input != "" && !input.match(filter)) return false;
	return true;
}

/*
 * @param phone
 */
function checkComment(comment)
{
	var input = jQuery.trim(comment);
	if(input.length < 20) return false;
	return true;
}

$('#name').live("change", function(){
	// Si está vacío no se visualiza la imagen
	if($(this).val() == "")
	{
		$("#name_image").css('visibility', 'hidden');
		return false;
	}
	
	$("#name_image").css('visibility', 'visible');
	if(checkName($(this).val()))
	{
		$("#name_image").attr('src', image_ok);
		$("#name_image").removeAttr('title');
	}
	else
	{
		$("#name_image").attr('src', image_error);
		$("#name_image").attr('title', name_text_error);
	}
});

$("#phone").live("change", function(){
	// Si está vacío no se visualiza la imagen
	if($(this).val() == "")
	{
		$("#phone_image").css('visibility', 'hidden');
		return false;
	}

	$("#phone_image").css('visibility', 'visible');
	if(checkPhone($(this).val()))
	{
		$("#phone_image").attr('src', image_ok);
		$("#phone_image").removeAttr('title');
	}
	else
	{
		$("#phone_image").attr('src', image_error);
		$("#phone_image").attr('title', phone_text_error);
	}
});

$('#email').live('change', function(){
	// Si está vacío no se visualiza la imagen
	if($(this).val() == "")
	{
		$("#email_image").css('visibility', 'hidden');
		return false;
	}
	
	$("#email_image").css('visibility', 'visible');
	if(checkEmail($(this).val()))
	{
		$("#email_image").attr('src', image_ok);
		$("#email_image").removeAttr('title');
	}
	else
	{
		$("#email_image").attr('src', image_error);
		$("#email_image").attr('title', email_text_error);
	}
});

$('#comment').live('change', function(){
	// Si está vacío no se visualiza la imagen
	if($(this).val() == "")
	{
		$("#comment_image").css('visibility', 'hidden');
		return false;
	}
	
	$("#comment_image").css('visibility', 'visible');
	if(checkComment($(this).val()))
	{
		$("#comment_image").attr('src', image_ok);
		$("#comment_image").removeAttr('title');
	}
	else
	{
		$("#comment_image").attr('src', image_error);
		$("#comment_image").attr('title', comment_text_error);
	}
});

$('#buttom').live("click", function() {	
	if(!checkName($('#name').val()) || !checkComment($('#comment').val()) ||
		(
			(
				(jQuery.trim($('#phone').val()) == "" && jQuery.trim(($('#email').val()) == "")) ||
				(!checkPhone($('#phone').val()) || !checkEmail($('#email').val()))
			)
		)
	)
	{
		//Establece el foco en el 'input' que falla
		if(!checkName($('#name').val()))
			$('#name').focus();
		else if(!checkPhone($('#phone').val()))
			$('#phone').focus();
		else if(!checkEmail($('#email').val()))
			$('#email').focus();
		else if(!checkComment($('#comment').val()))
			$('#comment').focus();
		
		if((jQuery.trim($('#phone').val()) == "" && jQuery.trim($('#email').val()) == "") ||
		 (!checkPhone($('#phone').val()) && !checkEmail($('#email').val())))
		{
			alert('Proporcione un campo de contacto (teléfono, email, o ambos) antes de poder enviar el formulario');
			return false;
		}
		else
		{
			alert('Corrija los campos del formulario antes de poder enviarlo.');
			return false;
		}
	}
	
	var data = "name=" + $('#name').val() + "&phone=" + $('#phone').val() + "&email=" + $('#email').val() + "&comment=" + $('#comment').val();
	$.ajax({
		type: "POST",
		cache: false,
		url: "contact.php",
		data: data,
		async: false,
		success: function() {
			$('#body_content').load('contact.php');
			alert('El formulario fue enviado correctamente');
		}
	});
	return false;
});
