Adding a Gratuity and Driver Tip field on shopping cart page

Is it possible to edit the cart page to include two fields:

Gratuity - this open field would modify the checkout $ amount

Driver Tip - same as above

I want to create a delivery service, but want the user to be able to add a gratuity and driver tip which will charge their credit card.

Maybe create a new item and then put it as a block on the checkout page? I do this with wrapping.

Does it re-calculate the total then?

yes it does. It is basically like adding an item to your cart.