Credit Card Processing Fee Field
I would tuck these into a priceset; so two fields: donation and processing cost; then add some Javascript to the contribution page to do the math and dynamically populate the processing field based on the value in the donation field.

Add another field to the contribution form via a profile (yes/no radio button) and use that in your Javascript as a switch ($0 or do the processing cost calculation).