$(document).ready(function(){
  $("form").submit(function(){
    $("input, textarea", this).focus();
    var error_flg = false;
    var require_fields = $(".required", this);
    for (i=0;i<require_fields.length;i++)
      if (require_fields.get(i).value == "")
      {
        error_flg = true;
        raise_form_error($(require_fields.get(i)));
      }
    $("input, textarea", this).blur();
    return (!error_flg);
  });
  
  var error_fields = $("form input.error");
  for (i=0;i<error_fields.length;i++)
    raise_form_error($(error_fields.get(i)));    
});

function raise_form_error(jquery_obj_ref)
{
  jquery_obj_ref.addClass("error");
  $("label", jquery_obj_ref.parent()).addClass("error");
  
  var obj_ref = jquery_obj_ref.get(0);
  var tmp = obj_ref.title;
  obj_ref.title = obj_ref.value;
  obj_ref.value = tmp;
  
  jquery_obj_ref.focus(function(){
    clear_form_error($(this));
  });
}

function clear_form_error(jquery_obj_ref)
{
  jquery_obj_ref.removeClass("error");
  $("label", jquery_obj_ref.parent()).removeClass("error");
  
  var obj_ref = jquery_obj_ref.get(0);
  var tmp = obj_ref.title;
  obj_ref.title = obj_ref.value;
  obj_ref.value = tmp;
  
  jquery_obj_ref.unbind("focus");
  
}
