OK... with this many options I would probably put them into a multi-dimensional array in php and then write a function to return the result. Then I'd add that function to every page that has the cart and refer to it in the calculation.
Unfortunatly I don't have time to do it for you right now and I'm on vacation starting in about an hour until Jan. 4.
Maybe someone else can help you in the meantime, if not I'll try helping when I return.