Calculating Call Due Dates

I posted this in a different thread, but this is a new formula issue I'm having I need help on.

ifElse(
equal($keycontact_c,true),
addDays($last_call_date_c,
ifElse(equal(related($calls,"call_type_c"),"Account Management Call"),
30,
ifElse(equal(related($calls,"call_type_c"),"Account Management Attempt"),
7,
""
)
)
),
date("")
)

We want it so that for Contacts a Call Due Date is calculated from the Last Call Date when:

Call Type = "Account Management Call" a call due date is calculated for 30 days from Last Call Date

Or, Call Type = "Account Management Attempt" a call due date is calculated for 7 days from Last Call Date

If the Call Type does not match, the call due date should be left blank.  However, all Calls are being set to the same day as the Last Call Date. What is wrong with this formula?