Made some changes to how this casts items... added in a new subroutine you can call to swap items.
Changed how interrupts work again.
By default, it will always interrupt a spell if target is lost (only spells that require targets of course) and you're not mounted. If you're mounted, and the spell you're casting has 7 seconds or longer left, it will dismount and interrupt ( if you want to use this, then you should have some code in your macro to recast mount if it's missing! ). If the spell you're casting has under 7 seconds left, but has a recast time of 3 seconds or more (like many stuns, some nukes, mana taps, etc ), it will move forward a bit to interrupt, then move back.
If you DON'T want to interrupt at all when you're on a mount, then add
to the top of the macro (usually with the rest of your declarations) you're calling this from (not in the include file). This will still interrupt spells if you're not mounted, as I don't see any possible down side to that.