private bool DoDownloadChapters(string link, string baseUrl) {
            try {
                var downloader = new Downloader();
                var parser = new PageParser();
                var error = "";

                var page = downloader.DownloadPage(link, out error);
                if (string.IsNullOrEmpty(page)) {
                    UpdateStatusText(error);
                    return false;
                }

                _currentChapterList = parser.GetChapterList(page, baseUrl);
                UpdateStatusText(string.Format(@"Загрузка оглавления завершена. Всего глав: {0}", _currentChapterList.Count));
                UpdateDownloadStatus(true);
            }
            catch (Exception e) {
                UpdateStatusText(string.Format(@"Ошибка: {0}", e.Message));
                return false;
            }
            finally {
                UpdateLoadStatus(true);
            }
            return true;
        }
        private bool DoDownloadImages(string baseUrl) {
            UpdateLoadStatus(false);
            UpdateDownloadStatus(false);
            UpdateStatusText(@"Начинаем загркузку изображений...");

            var downloadMgr = new DownloadMgr();
            var parser = new PageParser();
            var downloader = new Downloader();
            var i = 0;
            foreach (var chapter in _currentChapterList) {
                var chapterName = chapter.Split('/')[5].Replace("?mature=1", "");
                UpdateStatusText(string.Format(@"Начинаем загркузку главы: {0}", chapterName));

                var error = "";
                var page = downloader.DownloadPage(chapter, out error);
                if (!string.IsNullOrEmpty(error)) {
                    for (var x = 0; x < 5; ++x) {
                        if (!string.IsNullOrEmpty(error)) {
                            UpdateStatusText(string.Format(@"Ошибка при загрузке главы (попытки {0} из {1}): {2}", x, 5, error));
                            page = downloader.DownloadPage(chapter, out error);
                        }
                        else {
                            break;
                        }
                        
                    }
                }

                var imageList = parser.GetPageList(page);
                foreach (var image in imageList) {
                    var fileName = image.Split('/')[7];
                    UpdateStatusText(string.Format(@"Начинаем загркузку изображения: {0} (Глава: {1})", fileName, chapterName));
                    downloadMgr.DownloadImage(image, chapter);
                }

                UpdateStatusText(string.Format(@"Загружена глава {0} ({1}) из {2}", ++i, chapter, _currentChapterList.Count));
            }

            return true;
        }