
/*
 * Funções de validação do formulário de se cadastrar nas novidades do site
 * (página principal)
 */

function validate_email_form() {
    $('#contato').submit( validate_email );
}

function validate_email() {
    $.post(
        '/newsletters/adicionar/',
        { email: $('#id_email').val() }, 
        function(data) {
            eval('var json_data = ' + data + ';');
						$('#field_error').remove();
						$('#field_valid').remove();
            if(json_data.error) {
                $('#id_email').after("<span class='field_error' id='field_error'>" + json_data.error + "</span>");
            } else if(json_data.valid) {
                $('#id_email').after("<span class='field_valid' id='field_valid'>" + json_data.valid + "</span>");
                $('#id_email').val('');
            }
        }
    );
    return false;
}


/*
 * Funções de validação de cada campo por vez do formulário de contato
 */

function validate_contact_form() {
    $('#contato :input')
    .blur(function() {
        validate_field($(this), 'contact', '/contato/validate_field/');
    });
		$('.field_error').each( function() {
			this.previousSibling.previousSibling.className = "error";
	  })
}

function validate_field(field, form, post_url) {
    nada = field;
    $.post(
        post_url,
        { field: field.attr('id').replace('id_',''),
          value: field.val(),
          form: form },
        function(data) {
            eval('json_data = ' + data + ';');
            error_id = 'error_' + field.attr('id');
            $('#' + error_id).remove();
						field.removeClass("error");
            if (json_data.error) {
								nada = field;
								field.addClass("error");
                field.after('<span class="field_error" for="' + field.attr('id') + '" id="' + error_id + '">' + json_data.error + '</span>');
						}
        }
    );
}
