disabled add buttons do not tell the user what information is missing - it would be better to have the button always available but issue warning messages if something is missing instead. This approach would also provide safeguards to javascript failures because it would create a server-side check for data completeness.