function valid_form($form) {
    error = false;
    
    $name = $('#name', $form).css({ backgroundColor: 'transparent' });
    $email = $('#email', $form).css({ backgroundColor: 'transparent' });
    $body = $('#body', $form).css({ backgroundColor: 'transparent' });
    
    if ($name.val().length == 0) {
        $name.css({
            backgroundColor: '#FCBA62'
        });
        error = true;
    }

    if ($email.val().length == 0) {
        $email.css({
            backgroundColor: '#FCBA62'
        });
        error = true;
    }

    if ($body.val().length == 0) {
        $body.css({
            backgroundColor: '#FCBA62'
        });
        error = true;
    }
    
    return !error;
}

function show_alert(text, $form) {
    $alert = $('<div class="alert">'+ text +'</div>');
    
    $alert.css({
       position: 'absolute',
       top: -100,
       zIndex: 2000
    }).show();
    
    position = $form.offset().top - 60;
    
    if (position <= 60) position = 30;
    
    $alert.appendTo('body').css({
        left: ($(window).width() / 2) - ($alert.width() / 2) 
    }).animate({
        top: position
    });
    
    return $alert;
}

$(document).ready(function() {
    $('#contactus').hide();
  	$(".contact a").fancybox({
		'overlayShow'	: false,
		'transitionIn'	: 'elastic',
		'transitionOut'	: 'elastic'
	});
	
	$('#contact_form').bind('submit', function() {
        $form = $('#contact_form');
        
        if (!valid_form($form)) {
            show_alert('Devi compilare correttamente il form.', $form).delay(1500).fadeOut();

            return false;
        }
        
        $sending = show_alert('Invio In Corso', $form);
        
        $.ajax({
          type: 'POST',
          url: $form.attr('action'),
          data: $form.serialize(),
          success: function(data, textStatus, XMLHttpRequest) {
              $sending.fadeOut(function () {
                  show_alert(data, $form).delay(1500).fadeOut();
              });
          },
          dataType: 'html'
        });
        
        
	    return false;
	})
});
