r12972.
Am planning to take a look at max casts stuff generally at some point. There are two many variants and too much similar code (which I have just added to). The one just added checks for hitting daily limits (and could be mainly converted into a data file, as it currently uses a data structure). There is then another that checks for the max you can cast given current inventory, and a third that checks for the max you can cast given current inventory and current MP. I'm sure this can be greatly slimmed down into a series of functions that call each other, possibly based on a daily limits data file, which would reduce the code needed.
I'm sure there are more efficient ways to do what I did, but this was my first mucking around with DisabledItemsComboBox and Listeners.