added "zbefore_change" event to allow prevent item selection via event listener