def parse_option(self, option, block_name, *values):
        """ Parse status, end_status, timer_status and status_msg options.
            """

        if option.endswith('status'):
            status = values[0]
            if status not in self.VALID_STATUSES:
                raise ValueError(u'Invalid IM status "{0}"'.format(status))

            if len(values) > 2:
                raise TypeError

            if option == 'status':
                option = 'start_' + option

            key = option.split('_', 1)[0]
            self.statuses[key] = values[:2]

        elif option == 'status_msg':
            if len(values) != 2:
                raise TypeError

            name, msg = values
            self.messages[name] = msg
Parse status, end_status, timer_status and status_msg options.