ButtonAsAction: WOSubmitButton {
	action = ^action;
	value = ^value;
    class = ^class;
    style = ^style;
    id = ^id;
}

ButtonAsDirectAction: WOSubmitButton {
	value = ^value;
	directActionName = ^directActionName;
	actionClass = ^actionClass;
    class = ^class;
    style = ^style;
    id = ^id;
}

ButtonAsInput: WOGenericElement {
    elementName = "input";
    type = "submit";
    value = ^value;
    invokeAction = ^action;
    onClick=jsString;
    name=componentName;
    class = ^class;
    style = ^style;
    id = ^id;
}

ButtonAsButton: WOGenericContainer {
    elementName = "button";
    type = "submit";
    value = ^value;
    invokeAction = ^action;
    onClick=jsString;
    name=componentName;
    class = ^class;
    style = ^style;
    id = ^id;
}

Value : WOString {
	value = ^value;
	valueWhenEmpty = "Submit";
}

DontUseSubmitButton: WOConditional {
	condition = useSubmitButton;
	negate = true;
}

HasDirectAction: ERXNonNullConditional {
	condition = ^directActionName;
}

HasNoDirectAction: ERXNonNullConditional {
	condition = ^directActionName;
	negate = true;
}

OptionalForm: ERXOptionalForm {
	hasForm = useForm;
	directActionName = ^directActionName;
	actionClass = ^actionClass;
}

UseSubmitButton: WOConditional {
	condition = useSubmitButton;
}

UseButton : WOConditional {
  condition = useButton;
}

DontUseButton : WOConditional {
  condition = useButton;
  negate = true;
}