I understand that all the client code is running on the client computer, and the private keys never leave the client computer. The client creates transactions and transmits them to mymonero server, which then pushes it on the blockchain, correct?
Also, I understand mymonero server stores the private viewkey, and monitors the blockchain for any inputs.
How are outputs handled though? If the same wallet was used from simplewallet to spend an input, how can mymonero know it has been spent? Is this check done automatically on the client side every time the user logs in? Is it done every time from scratch, or does mymonero store this info as well?