'Search the show id from the `series`
:param str series: series of the episode.
:return: the show id, if found.
:rtype: int or None'

@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
def _search_show_id(self, series):

    params = {u'apikey': self.apikey, u'q': series}
    logger.info(u'Searching    show    ids    with    %r', params)
    r = self.session.get((self.server_url + u'shows/search'), params=params, timeout=10)
    r.raise_for_status()
    root = etree.fromstring(r.content)
    if (int(root.find(u'data/count').text) == 0):
        logger.warning(u'Show    id    not    found:    no    suggestion')
        return None
    for show in root.findall(u'data/shows/show'):
        if (sanitize(show.find(u'name').text).lower() == sanitize(series.lower())):
            show_id = int(show.find(u'id').text)
            logger.debug(u'Found    show    id    %d', show_id)
            return show_id
    next_page = root.find(u'data/next')
    while (next_page.text is not None):
        r = self.session.get(next_page.text, timeout=10)
        r.raise_for_status()
        root = etree.fromstring(r.content)
        logger.info(u'Loading    suggestion    page    %r', root.find(u'data/page').text)
        for show in root.findall(u'data/shows/show'):
            if (sanitize(show.find(u'name').text).lower() == sanitize(series.lower())):
                show_id = int(show.find(u'id').text)
                logger.debug(u'Found    show    id    %d', show_id)
                return show_id
        next_page = root.find(u'data/next')
    logger.warning(u'Show    id    not    found:    suggestions    does    not    match')
    return None
