

// This function checks if a button has the disabled class

function isDisabled(buttonId) {

  if ($(buttonId).hasClassName('disabled')) {
    return true;
  }else{
    return false;
  }
}


var initial_value = [];

// Use this function to disable the submitting button of a form.
// When the input of a form changes the button will become active again.
function formButtonDisable(buttonId,formId) {
  if (!$(buttonId)) return false;

  initial_value[buttonId] = Form.serialize($(formId));

  $(buttonId).addClassName('disabled');

  var enfunc = function(e) { enablebutton(buttonId,formId); };

  $(formId).getElements().each(
    function (element) {
      Event.observe(element, 'keyup',  enfunc );
      Event.observe(element, 'change', enfunc );
    }
  );
}

// This function is used to make a button active again.
function enablebutton(buttonId,formId) {
  new_value = Form.serialize($(formId));

  if (initial_value[buttonId] != new_value)
  {
    $(buttonId).removeClassName('disabled');
  }
  else
  {
    $(buttonId).addClassName('disabled');
  }
}

function resetButton(buttonId, formId)
{
  initial_value[buttonId] = Form.serialize($(formId));
}
