private void _initializeEventNewScreenExtension(ProgrammeItem programmeItem)
    {
        var gameObjList = _getRelativeGameObject(InfoStorage.UnixTimeStampToDateTime(programmeItem.Start));

        if (gameObjList == null)
        {
            return;
        }

        var item      = Instantiate(_programmeItemNewScreen, gameObjList.transform, false);
        var extension = Instantiate(_progammeExtension, _extensionList.transform, false);

        item.transform.Find("Item/Information").GetComponent <OpenExtension>().ProgrammeExpansion =
            extension.GetComponent <ProgrammeExpansion>();

        item.transform.Find("Item/Square/Time/Start").GetComponent <Text>().text =
            InfoStorage.UnixTimeStampToDateTime(programmeItem.Start).ToShortDateString();
        item.transform.Find("Item/Square/Time/End").GetComponent <Text>().text =
            InfoStorage.UnixTimeStampToDateTime(programmeItem.End).ToShortTimeString();
        item.transform.Find("Item/Information/Title").GetComponent <Text>().text   = programmeItem.Title;
        item.transform.Find("Item/Information/Address").GetComponent <Text>().text = programmeItem.Address;

        extension.transform.Find("Expansion/Info/Text").GetComponent <Text>().text = programmeItem.Info;
        extension.transform.Find("Expansion/Time/Text").GetComponent <Text>().text =
            InfoStorage.UnixTimeStampToDateTime(programmeItem.Start).ToLongDateString() + " " + InfoStorage
            .UnixTimeStampToDateTime(programmeItem.Start)
            .ToString(FormatDateTime) + "-" +
            InfoStorage.UnixTimeStampToDateTime(programmeItem.End).ToString(FormatDateTime);

        extension.transform.Find("Expansion/Location/Text").GetComponent <Text>().text = programmeItem.Address;
    }
    private IEnumerator _downloadAndInitializeEventsCoroutine()
    {
        Debug.Log("Started update events on " + InfoStorage.Server + InfoStorage.EventsApi + "getAll?api");
        var www = new WWW(InfoStorage.Server + InfoStorage.EventsApi + "getAll?api");

        yield return(www);

        foreach (var list in _programme)
        {
            if (list.Count != 0)
            {
                list.Clear();
            }
        }

        foreach (var programmeList in _programmeLists)
        {
            if (programmeList.transform.childCount != 0)
            {
                _destroyTransformChildren(programmeList.transform);
            }
        }

        if (www.error == null)
        {
            var json = JSON.Parse(www.text);

            foreach (JSONNode jsonNode in json.AsArray)
            {
                var    start   = int.Parse(jsonNode["start"]);
                var    end     = int.Parse(jsonNode["end"]);
                string title   = jsonNode["title"];
                string info    = jsonNode["info"];
                string address = jsonNode["address"];

                info = InfoStorage.ProcessTags(info);

                var item = new ProgrammeItem(start, end, title, address, info);

                if (!InfoStorage.IsDateValid(item.Start))
                {
                    continue;
                }

                _addToProgramme(item);
            }

            foreach (var programmeList in _programme)
            {
                programmeList.Sort((x, y) => x.Start.CompareTo(y.Start));
            }
            _initializeEvents();
            _saveLocal();
        }
        else
        {
            _loadLocal();
        }
    }
    private void _addToProgramme(ProgrammeItem item)
    {
        var list = _getRelativeList(InfoStorage.UnixTimeStampToDateTime(item.Start));

        if (list != null)
        {
            list.Add(item);
        }
    }
    private int _compareProgrammeItemByDate(ProgrammeItem pi, DateTime time)
    {
        if (InfoStorage.UnixTimeStampToDateTime(pi.Start).CompareTo(time) == -1 && InfoStorage.UnixTimeStampToDateTime(pi.End).CompareTo(time) == -1)
        {
            return(-1);
        }

        if (InfoStorage.UnixTimeStampToDateTime(pi.Start).CompareTo(time) == 1 && InfoStorage.UnixTimeStampToDateTime(pi.End).CompareTo(time) == 1)
        {
            return(1);
        }

        return(0);
    }
    private void _initializeEventSpoilerExtension(ProgrammeItem programmeItem)
    {
        var gameObjList = _getRelativeGameObject(InfoStorage.UnixTimeStampToDateTime(programmeItem.Start));

        if (gameObjList == null)
        {
            return;
        }

        var item = Instantiate(_programmeItemSpoiler, gameObjList.transform, false);

        item.transform.Find("Item/Square/Time/Start").GetComponent <Text>().text =
            InfoStorage.UnixTimeStampToDateTime(programmeItem.Start).ToShortTimeString();
        item.transform.Find("Item/Square/Time/End").GetComponent <Text>().text =
            InfoStorage.UnixTimeStampToDateTime(programmeItem.End).ToShortTimeString();
        item.transform.Find("Item/Information/Title").GetComponent <Text>().text   = programmeItem.Title;
        item.transform.Find("Item/Information/Address").GetComponent <Text>().text = programmeItem.Address;

        if (!string.IsNullOrEmpty(programmeItem.Info))
        {
            item.transform.Find("Expansion/Info/Text").GetComponent <Text>().text = programmeItem.Info;
        }
        else
        {
            item.transform.Find("Expansion/Info").gameObject.SetActive(false);
        }

        item.transform.Find("Expansion/Time/Text").GetComponent <Text>().text =
            InfoStorage.UnixTimeStampToDateTime(programmeItem.Start).ToLongDateString() + " " + InfoStorage
            .UnixTimeStampToDateTime(programmeItem.Start).ToShortTimeString() + "-" +
            InfoStorage.UnixTimeStampToDateTime(programmeItem.End).ToShortTimeString();

        if (!string.IsNullOrEmpty(programmeItem.Address))
        {
            item.transform.Find("Expansion/Location/Text").GetComponent <Text>().text = programmeItem.Address;
        }
        else
        {
            item.transform.Find("Expansion/Location").gameObject.SetActive(false);
        }
    }