handle_contact_form = function(finish) { 
    function showResponse(resp, __)  {         
        //alert(resp.msg);
        $('#processing_form').hide();

        $('#contact_form_response').html(resp.msg)
                                   .find('li:empty')
                                   .remove();

        if (resp.success) {
           $('#contact_form').fadeOut('fast', finish);
        };
    }

  //  form_defaults = {}
  //  $.each( $('#contact_form').formToArray(),
  //        function(i, obj){ form_defaults[obj.name] = obj.value; } )

    var form_defaults = {
      name  :  'Name', 
      email     :  'Email', 
      enquiry   :  'Enter your enquiry here'   
    };

    check_form_values = function() {
        if (this.value == '' || this.value.match(/^\s*$/)) {
            this.value = form_defaults[this.name];
        }
    }
    
    clear_input = function(){
      if(this.value == form_defaults[this.name]) {
          this.value = '';
      }
    }

    $('.formField').bind('blur', check_form_values);

    $('#enquiry').focus(clear_input);
    $('.formField').click( clear_input );

    validate = function(formData, jqForm, options) {
        var errors = Array();

        $.each ( 
            formData,
            function(i, field) {
              default_val = form_defaults[field.name]
              if (field.value == default_val) { errors.push(default_val) }
            }
        )

        if (errors.length > 0) {
            alert('Please enter values for:\n\n' + errors.join('\n') );
            return false;
        };

        $('#processing_form').show();
    }

    $('#contact_form').ajaxForm ({
          beforeSubmit: validate,
          success: showResponse,  
          dataType:  'json'
    });

};
