I'll try and answer your questions
(1) I would use the mousex() and mousey() commands and check if they are in the region of the button when it is clicked.
Example:
[/code]if mouseclick() = 1 and mousex() > 100 and mousex() < 300 and mousey() > 100 and mousey() < 300 then end[code]
(2) Each character would check their state every frame or so. Check the distance between them and each enemy. If they are within a set distance of an enemy they will enter an attack state meaning that they would move towards (and attack) that enemy. If they are not within the set distance of an enemy they will remain in a passive state meaning that they would move towards your player.
(3) A little more tricky. Either you would have to create some menu functions (which can be tricky to look good) and write them in a way so that they could be customised for use in other programs aswell. Alternatively you could use key presses to cyle through the spells meaning you would have a single logo/word representing the spell currently selected (the latter option is much easier).
Hope I've been of some help