This is a highly technical discussion; if you came here for politics, you might want to skip this one.
The problem is that the function invoked by onblur has to take place before the function invoked by onclick. If you move the mouse from the agent field to the Save button--and you wait a second or two--the browser correctly identifies that the agent field no longer has focus, the onblur event happens, and then the onclick event happens. If you TAB or ENTER your way out of the agent field, onblur happens, and hitting the Save button then raises the onclick event. But if you move the mouse from the agent field to the Save button and click it fairly quickly, onclick event happens before onblur.
Is there some way to prevent onclick from happening until after onblur has taken effect?