const
	script_name='worldart_animation';
	language='Russian';
	version=19;
	author='Weever';
	MinProgramBuild=6100;
	PCount = 12;
	//MaxPicturesCount = 3;
							//Скрипт написан на основе скрипта AnimeNfo by Vlad
var // глобальные переменные
	DownloadMovieBigCover, // загружать большую обложку, отсутствует в скрипте
	DownloadMovieShortCast, // скачивать укороченный список актеров, отсутствует в скрипте
	DownloadMovieBigDescription, // загружать длинное описание, отсутствует в скрипте
	DownloadMovieComments, // загружать комментарии (в этом скрипте будет загрузка рецензий)
	DownloadMovieStudios, // загружать студии (в этом скрипте будет загрузка студий)
	DownloadMovieAwards, // загружать награды, отсутствует в скрипте
	DownloadMovieEarnings, // загружать сборы, отсутствует в скрипте
	DownloadMovieAdditionalInfo, // загружать дополнительную информацию (в этом скрипте будет загрузка справки)
	DownloadMovieSeasonsList: boolean; // загружать список серий сериала (в этом скрипте будет загрузка названий эпизодов аниме)
	MaxShotsCount: integer; // максимальное количество кадров для загрузки с сайта WorldArt
	TopShotsCount: Integer; // максимально возможное количество скриншотов для загрузки (количество скриншотов, присутствующих на WA)

	title: string; // найденное название фильма, состоящее из русского и(или) английского названия с разделителем ' - '
	EngName, RuName: string; // переменные для формирования 2-х названий фильма, как правило на русском и на английском
	checkpage: string; // переменная для спроверки на странице "поиск по сайту" мы или нас переместили на описание фильма (в том случае, если найден только один фильм с заданными критериями поиска)
	MovieName: string; //название фильма
	s, s2, s3, s4: string; // временные стринговые переменные, используются для формирования строки
	year, director, name, character, BasicURL, country, description: string;
	episodes, movie_code, movie_site_url: string; 
	title_code, film_code : string;
	imdb_code: string;
	titles: array of string;
	titles_count: integer;
	i, j: integer; // временные переменные для команд Pos и MyPos
	director_code, code: string;
	directors, writers, actors, characters, genres, imdb_codes: array of string;
	duration: integer; // продолжительность филма в минутах, для аниме рассчитанная из количества эпизодов * продолжительность 1-го эпизода
	rating, imdb_rating: double;
	front_cover_url: string;
	posters_exists, screenshots_exists: boolean;
	original_title, mpaa, mpaa_rating: string;
	f: TForm;
	b: TButton;
	edUserName, edPassword, edURL: TEdit;
	labCaption, labCaption2, labUserName, labPassword: TLabel;
	prefixes: array [1..PCount] of string;
	//техническая информация (для совместимости)
	resolution, barcode, aspect_ratio, features, media_format, video_codec: string;

// функция поиска фильмов и формирования списка с найденными фильмами.
function MovieSearch: integer;
var
	i, j, k: integer; // временные переменные для команд Pos и MyPos
	title: string; // найденное название фильма, состоящее из русского и(или) английского названия с разделителем ' - '
begin
	s:='';  //обнуляем переменную s
  	i:=0; //обнуляем переменную i
	j:=0; //обнуляем переменную j
	titles_count:=0; //обнуляем переменную titles_count
	i:=pos('<title>',All); // записываем номер позиции на начало <title> в стринге All
	j:=pos('</title>',All); // записываем номер позиции на начало <title> в стринге All
	checkpage:=copy(All,i+7,j-(i+7)); // копируем из стринга All с позиции i+7 ( 7 символов занимает надпись <title>), длинной j-(i+7)
//ShowMessage(checkpage);
{ShowMessage(temps);
	temps := EncodeURL(checkpage, 'WINDOWS-1251');
ShowMessage(temps);
	temps := EncodeURL(checkpage, 'KOI8-R');
ShowMessage(temps);
	temps := EncodeURL(checkpage, 'KOI8-U');
ShowMessage(temps);
	temps := EncodeURL(checkpage, 'ISO-8859-5');
ShowMessage(temps);
	temps := EncodeURL(checkpage, 'cp866');
ShowMessage(temps);}
	if checkpage = 'Поиск по сайту' then // проверяем, перешли на страницу "поиск по сайту" или нет
	begin  // если эта страница "поиск по сайту", то заполняем список  выбора фильмов
	  i:=pos('<tr><td ><a ', All); // ищем начало секции поиска
	  k:=length(All)-i; // определяем количесво сохраняемых символов с начала секции поиска
	  s:=copy(All, i, k); // выкидываем ненужные символы до начала поиска
	  j:=Pos('</table>', s); // определяем конец секции поиска и
      s:=copy(s,0,j+3);  // вырезаем нужный участок с результатом поиска
	    if (s='') or (pos('Ничего не найдено', All)>0) then // проверяем, нашли мы вообще что-нибудь или нет. если не нашли, то выход
			//Movie not found
		else //если нашли что-нибудь, то...
		  begin

		    i:=pos ('estimation''>',s);  //поиск начала англ. названия
		    j:=pos ('</a><br>',s); // поиск окончания англ. названия

		    while i>0 do //цикл добавлений в список. в i должно быть значение позиции следующего названия фильма. в противном случае список завершен.
		      begin
			    titles_count:=titles_count+1; //прибавим единичку к уже найденным фильмам
				SetLength(titles, titles_count); 
				EngName:=copy(s,i+12,j-(i+12)); // записываем найденное название англ. названия в переменную
				title_code:=copy(s,(pos('?id=',s))+4,(MyPos(' class',s,pos('?id=',s)))-((pos('?id=',s))+5));//выдергиваем  ID  без URL(который начинается с href на фильм, который в переменной title). 
				delete(s,1,j+7); // удаляем из текста всё до конца англ. названия
				RuName:=copy(s,1,(pos ('<br>',s))-1); // записываем найденное название русского названия в переменную
				if ChkStrOnEngSymbols(RuName)=True then 
				  begin
					s4:=RuName;
					RuName:=EngName;
					EngName:=s4;
				  end;
				If RuName='' then title:=EngName else // если второго названия нет, то записываем только одно название
					title:=(RuName+' - '+(EngName)); // записываем в переменную англ. название и найденное русское название.

				title:=RemoveTags(title); //удаляем из стринга title все ХТМЛ таги.
				title:=DecodeHTML(title);  //декодируем стринг из формата хтмл в "нормальный" текст
				title:=ClearExtraSpaces(title); // не знаю что это и зачем. :(

				while (length(title)>0) and (title[1]=' ') do// не знаю что это и зачем. :(
					delete(title, 1, 1);
				titles[titles_count-1]:=title_code; // запоминаем в переменную ID фильмов
				SetSearchResult(title, title_code); //устанавливаем результат поиска
		
				i:=pos ('estimation''>',s);  //поиск начала англ. названия
				j:=pos ('</a><br>',s); // поиск окончания англ. названия
			  end;
		  end; 
	end else // если это не поиск по сайту, то
	  begin
		i:=Pos('?id=',All); //поиск ID фильма
		titles_count:=1; //устанавливаем, что найден 1 фильм
		title_code:=copy(All,i+4,Length(All)-(i+5)); //запоминаем ID фильма
		film_code:=title_code;
		SetSearchResult(MovieName, title_code); //устанавливаем результат поиска
	  end;
	result:=titles_count; //подводим итог функции (количество найденных фильмов)
end;

//Получение названия фильма по штрих-коду(UPC-12)
function GetMovieNameByUPC(barcode: string): string;
var
	url, all, s2, s3, res: string;
	i, j: integer;
begin
	res:='';
	url:=format('http://webservices.amazon.com/onca/xml?Service=AWSECommerceService&SubscriptionId=0J0N83PT9M72BYH98YR2&Operation=ItemSearch&Keywords=%s&SearchIndex=Video&ResponseGroup=Request,Images,Tracks,ItemAttributes', [barcode]);	
	url:=ReplaceStr(url, ' ', '+', -1);
	all:=DownloadURL(url, false, nil, 'windows-1251');
	//search image by title
	i:=pos('<Item>', all);
	while (i>0) and (res='') do begin
		j:=MyPos('</Item>', all, i+1);
		if j>0 then begin
			s2:=copy(all, i, j-i);
			s3:=ParseString(s2, '<Title>(.*?) \(.*\)</Title>', 1);
			if s3='' then
				s3:=ParseString(s2, '<Title>(.*?)</Title>', 1);
			if s3<>'' then
				res:=s3;
		end;
		i:=MyPos('<Item>', all, i+1);
	end;
	i:=pos('[', res);
	if i>0 then begin
		j:=MyPos(']', res, i+1);
		if j>0 then
			delete(res, i, j-i+1);
	end;
	result:=res;
end;

//получение URL поиска фильма по названию фильма (а также по году и штрих-коду)
function GetSearchURLbyName(MovieName, AYear, ABarcode: string): string;
var
	url: string;
begin
	url:=format('http://www.world-art.ru/search.php?public_search=%s&global_sector=animation', [MovieName]); // создаем URL для поиска фильма
	url:=ReplaceStr(url, ' ', '+', -1); // меняем пробелы в названии фильма в строке URL на + (необходимо для формирования запроса)
	result:=url; // записываем сформированную строку с запросом
end;

function GetTextBetween(fromStr, str1, str2: string): string;
var
	i, j: integer;
begin
	Result := '';
	if str1 = '' then
		i := 1
	else
		i := pos(str1, fromStr);
	if str2 = '' then
		j := Length(fromStr) + 1
	else
		j := MyPos(str2, fromStr, i+length(str1));
	if (i>0)and(j>0) then begin
		i := i + length(str1);
		Result := copy(fromStr, i, j-i);
	end;
end;

//загрузка результата поиска с полученного URL
function DownloadSearchURL(url: string): integer;
begin
	all:=DownloadURL(url, false, nil, 'windows-1251'); // загружаем всю станичку с результатом поиска по URL в переменную All
//ShowMessage(All);
	if GetResponseCode=403 then begin
	  SiteLogin;
	  all:=DownloadURL(url, false, nil, 'windows-1251');
//ShowMessage(All);
	end;

	if all='-1' then // если пусто, то выход
		result:=-1
	else
		result:=MovieSearch; // если не пусто, то идем в процедуру поиска фильма
end;

// получение URL на выбранный фильм
function GetMovieURL(code: string; images_only: boolean): string;
begin
	result:=format('http://www.world-art.ru/animation/animation.php?id=%s', [code]); // получение URL на выбранный фильм
end;

//returned link to front cover
function GetFrontCoverURL: string;
var
	res, all, url, s, s2, s3, amazon_url: string;
	i, j: integer;
begin
	res:=front_cover_url;
	s:=title;
	url:=format('http://webservices.amazon.com/onca/xml?Service=AWSECommerceService&SubscriptionId=0J0N83PT9M72BYH98YR2&Operation=ItemSearch&Keywords=%s&SearchIndex=Video&ResponseGroup=Request,Images,Tracks,ItemAttributes', [original_title]);	
	url:=ReplaceStr(url, ' ', '+', -1);
	all:=DownloadURL(url, false, nil, 'windows-1251');
	//search image by title
	amazon_url:='';
	i:=pos('<Item>', all);
	while (i>0) and (amazon_url='') do begin
		j:=MyPos('</Item>', all, i+1);
		if j>0 then begin
			s2:=copy(all, i, j-i);
			s3:=ParseString(s2, '<Title>(.*?) \(.*\)</Title>', 1);
			if s3='' then
				s3:=ParseString(s2, '<Title>(.*?)</Title>', 1);
			if s3<>'' then 
			begin
				if pos(title, s3)=1 then 
				begin
					amazon_url:=ParseString(s2, '<LargeImage><URL>(.*?)</URL>', 1);
				end;
			end;
		end;
		i:=MyPos('<Item>', all, i+1);
	end;
	if amazon_url<>'' then
		SetImageName('', amazon_url, '', 1);
	if front_cover_url<>'' then
		SetImageName('', front_cover_url, '', 1);
	if amazon_url<>'' then
		res:=amazon_url;
	result:=res;
end;

//save front cover to file
function SaveFrontCover(url, FileName: string): boolean;
var
  fs: TFileStream;
	s: string;
begin
	s:=DownloadURL(url, false, nil, 'windows-1251');
	if GetResponseCode=403 then begin
	  SiteLogin;
	  s:=DownloadURL(url, false, nil, 'windows-1251');
	end;
	if (length(s)>0) and (s<>'-1') then begin
		try
			fs:=TFileStream.Create(FileName, fmCreate);
			fs.Write(s, Length(s));
			fs.Free;
			result:=true;
		except
			result:=false;
		end;
	end
	else
		result:=false;
end;

function MovePrefixLeft(name: string): string;
var
	i, j: integer;
begin
	// replace "The", "A", "An"... to the left
	for j:=1 to PCount do
	begin
		i:=pos(', '+Prefixes[j], name);
		if i>0 then
			if (i = length(name)-length(Prefixes[j])-1) or
			(length(name) >= i+2+length(Prefixes[j])) and (name[i+2+length(Prefixes[j])]=':') then
			begin
				if Prefixes[j][length(Prefixes[j])] = '''' then
					name := Prefixes[j] + copy(name, 1, i-1) + copy(name, i+length(Prefixes[j])+2, length(name)-i-length(Prefixes[j])-2+1)
				else
					name := Prefixes[j]+' ' + copy(name, 1, i-1) + copy(name, i+length(Prefixes[j])+2, length(name)-i-length(Prefixes[j])-2+1);
				break;
			end;
	end;
	Result := name;
end;

function ClearExtraQuotes(name: string): string;
begin
	// Clears extra quotes «"»
	if length(name)>0 then
		if (name[1]='"') and (name[length(name)]='"') then
			name := copy(name,2,length(name)-2);
	Result := name;
end;

//Получение информации о фильме с сайта
function GetInfo(url: string; images_only: boolean): string;
var 
	keyword, s, s2, s3, plot_outline, all_company, all_peoples, SearchText: string; // временные переменные для формирования строк
	i, j, k, l, n, SeasonNumber, Season, ExcludeStr, SearchStart, SearchFinish, StartCharacter, EndCharacter: integer; // временные переменные для Pos и MyPos
	company_url, peoples_url, company_code, TypeFilm, FindSeason: string;
begin
	result:=''; // обнуляем переменную result
	all:=DownloadURL(url, false, nil, 'windows-1251'); // загружаем всю станичку с выбранным фильмом в переменную All
	if all='-1' then // если пусто, то выход
		result:='-1'
	  else
		result:=all; // если не пусто, то идем дальше
	movie_code:=Copy(url,(pos('?id=',url))+4,Length(url)-(i+4)); // ID  без URL(который начинается с href на данный фильм)
	movie_site_url:=GetMovieSiteURL(movie_code); // получаем и записываем URL на фильм в программу
	
//получение названий фильма
	i:=Pos('</b></font><br>',All); // получаем количество символов до искомого (</b></font><br>)
	if i>0 then // если нашли (</b></font><br>), то записываем в title название фильма на русском
	  begin
		j:=MyPos('<br>',All,i+15); //ищем конец названия
		title:=Copy(All,i+15,j-(i+15)); // копируем в title из всего содержимого (All), выбранный кусок с функции Pos до MyPos
		title:=RemoveTags(title); // удаляем тэги
		title:=DecodeHTML(title); // декодируем ХТМЛ
		title:=ClearExtraSpaces(title);
		title:=ClearExtraQuotes(title);
		title:=MovePrefixLeft(title);
	  end;
//  original_title берется из секции описания ('description') в заголовке страницы
	i:=Pos('description'' content=''',All)+22; // получаем количество символов до искомого (description'' content='') две кавычки указывают на то, что это не конец искомого а просто кавычка. т.е. ''=' в тексте
	j:=MyPos('''>',All,i); //ищем конец названия
	original_title := Copy(All,i,j-i); // копируем в original_title из всего содержимого (All), выбранный кусок с функции Pos до MyPos
	original_title:=RemoveTags(original_title); // удаляем тэги
	original_title:=DecodeHTML(original_title);  // декодируем ХТМЛ
	original_title:=ClearExtraSpaces(original_title);
	original_title:=ClearExtraQuotes(original_title);
	original_title:=MovePrefixLeft(original_title);
	if title = '' then title:=original_title; // если второе название не найдено, то присваиваем в title оригинальное название (original_title)
	if title='' then // если всё-же ничего не найдено, то выход
		exit;
	if ChkStrOnEngSymbols(title)=true then 
	  begin
	    s:=original_title;
		original_title:=title;
		title:=s;
	  end;
	  
// Проверка на наличие скриншотов
	screenshots_exists:=false;
	i:=0;
	i:=pos('кадры из фильма:', all);
	if i>0 then screenshots_exists:=true;


//получение и рассчет длительности фильма, в минутах из строки 'Тип'
	i:=pos('<b>Тип</b>', all); // получаем количество символов до искомого (<b>Тип</b>)
	if i>0 then // если найдено, то
	  begin
		j:=MyPos('<br><b>', all, i+1); // ищем конец
		s:=copy(all, i, j-i); // копируем
		i:=pos(' (',s); // ищем начало на количество эпизодов
		j:=MyPos(' эп.',s,i); // ищем конец на количество эпизодов
		episodes:=copy(s,i+2,j-(i+2)); // копируем, должно получиться в переменной episodes только кол-во эпизодов
		if pos(' (>',s)>0 then s2:=copy(s, i+3,j-(i+3)) //проверяем, не написано ли так: (>25 эп.). если да, то выкидываем ещё и >
		 else s2:=copy(s, i+2,j-(i+2)); // если нет, то всё как обычно (25 эп.)
		if s2='' then s2:='1'; // если количество эпизодов не найдено, то присваиваем 1.
		i:=pos(', ',s); // ищем разделение эпизодов и минут / серию (ищем начало на продолжительность эпизода)
		if i>0 then // если нашли, то
		  begin
			j:=MyPos(' ',s,i+2); // ищем конец на продолжительность эпизода
			s3:=copy(s,i+2,j-(i+2)); // копируем
		  end 
		 else s3:=''; // если не найдено, то продлжительность =''.
		if s3='' then s3:='0'; // если продолжительность равна '', то присваиваем ей 0
		try //ловим на всякий случай ошибки
		  i:=StrToInt(s2); // преобразуем стринг s2 в integer i
		  j:=StrToInt(s3); // преобразуем стринг s3 в integer j
		  duration:=i*j; // умножаем кол-во эпизодов на продолжительность одного эпизода
		except
		  duration:=0; // если между try и except всё-же произошла ошибка, то duration (общая продолжительность фильма) = 0
		end;
	  end;

//получение жанров фильма
	i:=pos('<b>Жанр</b>',all); // получаем количество символов до искомого (<b>Жанр</b>)
	if i>0 then
	  begin
		j:=MyPos('<br>',all,i); // ищем конец описания жанров
		s2:=copy(all,i,j-i); // копируем
		if length(s2)>0 then // если нашли описание жанров, и строка ещё не закончилась, то...
		  begin
			i:=pos('estimation''>', s2); // получаем количество символов до искомого (?genre=)
//			if i<=0 then i:=pos('?genre_2=', s2); // если не нашли (?genre=), ищем (?genre_2=)
			j:=MyPos('</a>', s2, i+12); // ищем конец описания текущего жанра
			while i>0 do // пока находим описания жанров, делаем:
			  begin
				name:=copy(s2, i+12, j-(i+12)); // копируем
				if name<>'' then // если название жанра найдено, то записываем его
					SetGenre(name);
				delete(s2, 1, j+2); // удаляем уже записанное название жанра
				i:=pos('estimation''>', s2); // ищем следующее
				j:=MyPos('</a>', s2, i+12);
			  end;
		  end 
		 else SetGenre('мультфильм'); // если название жанра не найдено, то присваиваем "мультфильм"
	  end;

//получение года создания фильма
	i:=Pos('?public_year=', All);
	if i>0 then
	  begin
		j:=MyPos('''><',All,i+13);
		if i>0 then year:=copy(all, i+13, j-(i+13));
	  end;

//получение описания фильма
	// Добавление типа фильма
	i:=pos('Тип', all);
	if i>0 then
	  begin
		j:=MyPos('<br>', all,i+3);
		if (i>0) or (j>0) then TypeFilm:=copy(All,i+9,(j+4)-(i+9)) else TypeFilm:='';
//		i:=pos('<br><br>',TypeFilm);
//		if i>0 then delete(TypeFilm,i,4);
		if TypeFilm<>'' then description:=description+'<b>Тип:</b> '+TypeFilm+'<br>';
	  end;
	
//-------------------	 Добавление среднего бала и рейтинга.  -------------------------
	i:=pos('Средний балл', all);
	if i>0 then
	  begin
		j:=MyPos('<br><br>', all,i);
		if (i>0) and (j>0) then s:=copy(All,i,(j+4)-i) else s:='';
		
		if s<>'' then // средний балл
		  begin
		    i:=pos('&nbsp;', s);
			if i>0 then j:=MyPos('<br>', s,i);
			if (i>0) and (j>0) then 
			begin
				s2:=copy(s,i+6,j-(i+6));
				s2:=RemoveComments(s2);
				s2:=RemoveTags(s2);
				s2:=DecodeHTML(s2);
				s3:='<b>Средний балл (по World Art)</b>: '+s2+';  ';
					if length(s2)>0 then begin
					i:=pos(' ', s2);
					if i>0 then begin
						s2:=copy(s2,1,(i-1));
						i:=pos('.', s2);
						if i>0 then
							s2[i]:=DecimalSeparator;
							try
								rating:=StrToFloat(s2);
							except
						end;
					end;
				end;
			end;
		end;

		if s<>'' then // место в рейтинге
		  begin
		    i:=pos('рейтинге', s);
			if i>0 then j:=MyPos('<br>', s,i);
			if (i>0) and (j>0) then 
			  begin
			    s2:=copy(s,i+8,j-(i+8));
				s2:=RemoveComments(s2);
				s2:=RemoveTags(s2);
				s2:=DecodeHTML(s2);
				if s2<>'' then s3:=s3+'<b>Место в рейтинге</b>'+s2+';  ';
			  end;
		  end;

		if s<>'' then // количество проголосовавших
		  begin
		    i:=pos('Проголосовало', s);
			if i>0 then j:=MyPos('<br>', s,i);
			if (i>0) and (j>0) then 
			  begin
			    s2:=copy(s,i+13,j-(i+13));
				s2:=RemoveComments(s2);
				s2:=RemoveTags(s2);
				s2:=DecodeHTML(s2);
				if s2<>'' then s3:=s3+'<b>Проголосовало</b>'+s2;
			  end;
		  end;
		if s3<>'' then description:=description+' '+s3+'<br><br>';
	  end;
//--------------------------------------------------------------------------------------
	  
	//Добавление названия книги (манги)
	i:=pos('Снято по манге', all);
	if i>0 then
	  begin
		j:=MyPos('<br>', all,i+14);
		if (i>0) and (j>0) then s2:=copy(All,i+14,j-(i+14)) else s2:='';
		i:=pos('estimation''>', s2);
		j:=MyPos('</a>', s2,i+12);
		if (i>0) and (j>0) then s2:=copy(s2,i+12,j-(i+12)) else s2:='';
		if s2<>'' then description:=description+'<b>Снято по манге:</b> '+s2+';     ';
	  end;
	
	//Добавление автора книги (манги)
	i:=pos('Автор оригинала', all);
	if i>0 then
	  begin
		j:=MyPos('<br>', all,i+15);
		if (i>0) and (j>0) then s2:=copy(All,i,j-i) else s2:='';
	i:=pos('estimation''>', s2);
		j:=MyPos('</a>', s2,i+12);
		if (i>0) and (j>0) then s2:=copy(s2,i+12,j-(i+12)) else s2:='';
		if s2<>'' then description:=description+'<b>Автор оригинала:</b> '+s2+'<br><br>' else description:=description+'<br><br>';
	  end;

	//Добавление издателя в России
	i:=pos('Издатель в России', all);
	if i>0 then
	  begin
		j:=MyPos('<br>', all,i+17);
		if (i>0) and (j>0) then s2:=copy(All,i+17,j-(i+17)) else s2:='';
		i:=pos('" >', s2);
		j:=MyPos('</a>', s2,i+3);
		if (i>0) and (j>0) then s2:=copy(s2,i+3,j-(i+3)) else s2:='';
		if s2<>'' then description:=description+'<b>Издатель в России:</b> компания <b>'+s2+'</b><br><br>';
	  end;
	
	//добавление краткого содержания фильма
	i:=pos('содержание:', all);
	if i>0 then 
	  begin
		j:=MyPos('</p></td><td', all, i+11);
		s2:=copy(all, i, (j+12)-i);
		i:=pos('review''>', s2);
		j:=MyPos('</p></td><td', s2, i+8);
		s2:=copy(s2, i+8, j-(i+8));
		description:=description+'<b>Краткое содержание:</b><br>'+s2+'<br><br>';
	  end;
	description:=RemoveTagsWObr(description);

	//Добавление справки
	if DownloadMovieAdditionalInfo then
	  begin
		s3:='';
		s2:='';
		i:=pos('Справка:', all);
		if i>0 then
		  begin
			i:=MyPos('<p ',all,i);
			j:=MyPos('<br><br>', all,i+3);
			if j<=0 then j:=MyPos('Ролики:', all,i+3);
			if j<=0 then j:=MyPos('В каком порядке лучше смотреть эту серию:', all,i+3);
			if j<=0 then j:=MyPos('На эту тему в других разделах:', all,i+3);
			if j<=0 then j:=MyPos('Эпизоды:', all,i+3);
			if j<=0 then j:=MyPos('написать комментарий:', all,i+3);
			if (i>0) and (j>0) then s2:=copy(All,i,j-i) else s2:='';
			i:=pos('опенинг',s2);
			if i<=0 then i:=pos('Опенинг', s2);
			if i<=0 then i:=pos('эндинг', s2);
			if i<=0 then i:=pos('Эндинг', s2);
			If i>0 then 
			  begin
				s2:=RemoveImages(s2);
			  end 
			 else
			  begin
				s2:=ClearExtraCharacters(s2);
				s2:=ClearExtraSpaces(s2);
				s2:=ReplaceStr(s2, #10, '<br>', -1);
				s2:=ReplaceStr(s2, #13, '<br>', -1);
				s2:=RemoveTagsWObr(s2);
				s2:=DecodeHTML(s2);
			  end;
			if s2<>'' then description:=description+'<b>Справка:</b><br>'+s2+'<br><br>';
		  end;
	  end;	  

  	//Добавление порядка просмотра аниме
	s3:='';
	i:=pos('В каком порядке лучше смотреть эту серию:', all);
	if i>0 then
	  begin
		j:=MyPos('серия снята по манге', all,i+41);
		if j<=0 then 	j:=MyPos('Манга, связанная с этим аниме:', all,i+41);
		if j<=0 then 	j:=MyPos('Эпизоды:', all,i+41);
		if j<=0 then 	j:=MyPos('Отзывы зрителей:', all,i+41);
		if (i>0) and (j>0) then s2:=copy(All,i,j-(i+41)) else s2:='';
		i:=pos('#', s2); // получаем количество символов до искомого (review'>)
		j:=MyPos('</td></tr>', s2, i+1); // ищем конец описания текущей строки справки
		while i>0 do 
		  begin
			s:=copy(s2, i, j-i); // копируем
			s:=RemoveTags(s);
			s:=s+'<br>';
			if s<>'' then 
				s3:=s3+s;
			delete(s2, 1, j+2); 
			i:=pos('#', s2); // ищем следующее
			j:=MyPos('</td></tr>', s2, i+1);
		  end;
		if s3<>'' then 
		  begin
		    s3:=s3+'<br><br>';
			i:=pos('<br><br><br>',s3);
			if i>0 then delete(s3,i,4);	
		    description:=description+'<b>В каком порядке лучше смотреть эту серию:</b> <br>'+s3;
		  end;
	  end;

  	//Добавление названий эпизодов аниме
	if DownloadMovieSeasonsList then
	  begin
		s3:='';
		i:=pos('Эпизоды:', all);
		if i>0 then
		  begin
			j:=MyPos('Отзывы зрителей', all,i+7);
			if j<=0 then j:=MyPos('написать комментарий', all,i+7);
			if j<=0 then j:=MyPos('<br><br>', all,i+7);
			if (i>0) and (j>0) then s2:=copy(All,i,j-(i+7)) else s2:='';
			i:=pos('<tr><td>', s2); // получаем количество символов до искомого (review'>)
			j:=MyPos('</td>', s2, i+8); // ищем конец описания текущей строки справки
			if i>0 then s2:=copy(s2, i+8, j-(i+8)) else s2:='';
			if s2<>'' then description:=description+'<b>Эпизоды:</b> <br>'+s2+'<br><br>';
			description:=RemoveJeroglyph(description); //удаляем иероглифы и лишние скобки с пробелами
		  end;
	  end;	  

// загрузка страницы со студией и с авторским составом	
	i:=pos('"http://www.world-art.ru/animation/animation_full_production.php?id=', all);
	if i>0 then
	  begin
		j:=MyPos('"', all, i+68);
		film_code:=copy(all,i+68,j-(i+68));
		company_url:=format('http://www.world-art.ru/animation/animation_full_production.php?id=%s',[film_code]);
//		all_company:=DownloadURL(company_url);
		all_company:=DownloadURL(company_url, false, nil, 'windows-1251');
	  end;
	i:=pos('"http://www.world-art.ru/animation/animation_full_cast.php?id=', all);
	if i>0 then 
	  begin
		j:=MyPos('"', all, i+62);
		film_code:=copy(all,i+62,j-(i+62));
		peoples_url:=format('http://www.world-art.ru/animation/animation_full_cast.php?id=%s',[film_code]);
		all_peoples:=DownloadURL(peoples_url, false, nil, 'windows-1251');
	  end;

//добавление студий
	if DownloadMovieStudios then
      begin
		i:=pos('Производство:',all_company);

		if i>0 then
		  begin
			j:=MyPos('<br><br>',all_company,i+13);
			if j<=0 then j:=MyPos('Смешанные роли:',all_company,i+13);
			if i>0 then s:=copy(all_company,i+13,j-(i+13)) else s:='';
			if length(s)>0 then 
//ShowMessage ('studios:= '+s);		  
			  begin
				i:=pos('<tr>',s);
				j:=MyPos('</td></tr>', s, i+4);
				while (i>0) and (j>0) do
				  begin
					s2:=copy(s,i,(j+10)-i);
					k:=pos('estimation''>', s2);
					l:=MyPos('</a>', s2, k+12);
					if k>0 then 
					  begin
						s3:=copy(s2, k+12, l-(k+12));
						if s3<>'' then
						  begin
							SetStudio(s3);
						  end;
					  end;
						delete(s, 1, j+9);
						i:=pos('<tr>',s);
						j:=MyPos('</td></tr>', s, i+4);
				  end;
			  end;
		  end;
	  end;

//получение картинки с сайта
//	i:=Pos('><img src=''img/',All); </table><table><tr>
	i:=Pos('</table><table><tr>',All); 
	if i>0 then
	  begin
		i:=MyPos('<img src=''', All, i+19);
		j:=MyPos(''' ', All, i+10);
		s2:=copy(All, i+10, j-(i+10));
//ShowMessage(s2);
		if (s2='general/imagenotavailable.jpg') or (s2= '') then
			front_cover_url:=''
//		  else front_cover_url:=format('http://www.world-art.ru/animation/img/%s',[s2]);
		  else front_cover_url:=format('%s',[s2]);
	  end;

//страны - создатели мульта
	i:=(pos('Производство',All))+12;
	j:=MyPos('</a><br><b>',All,i);
	if j<=0 then j:=MyPos('</a><br>',All,i);
	s:=copy(All,i,(j+8)-i);
	if length(s)>0 then 
	  begin
		i:=pos('<img src=', s);
		j:=MyPos('</a><br>', s, i+9);
		s:=copy(s, i+9, (j+8)-(i+9));
		i:=pos('estimation''>', s);
		j:=MyPos('</a><br>', s, i+9);
		while i>0 do 
		  begin
			name:=copy(s, i+12, j-(i+12));
			if name<>'' then
				SetCountry(name);
			delete(s, 1, j+4);
			i:=pos('estimation''>', s);
			j:=MyPos('</a>', s, i+12);
		  end;
	  end;

//добавление режиссеров
	SearchStart:=pos('Режиссер:', all_peoples);
	If SearchStart<=0 then SearchStart:=pos('Режиссёр:', all_peoples);
	SearchFinish:=MyPos('</table>', all_peoples, SearchStart+9);
	if SearchStart>0 then SearchText:=copy(all_peoples,SearchStart+30,SearchFinish-(SearchStart+22)) else SearchText:='';
	//ShowMessage ('directors:= '+SearchText);
		if length(SearchText)>0 then
		begin
			SearchStart:=pos('<tr>',SearchText);
			SearchFinish:=MyPos('estimation', SearchText, SearchStart+4);
			SearchFinish:=MyPos('</td>', SearchText, SearchFinish+10);
			while (SearchStart>0) and (SearchFinish>0) do
			begin
				s2:=copy(SearchText,SearchStart,(SearchFinish+5)-SearchStart);
				k:=pos('estimation''>', s2);
				l:=MyPos('</a>', s2, k+12);
				ExcludeStr:=pos('абракадабра',s2);
				//ExcludeStr:=pos('режиссёр-постановщик',s2);
				if (k>0) and (ExcludeStr<=0) then
				begin
					//ShowMessage ('director:= '+s2);
					name:=copy(s2, k+12, l-(k+12));
					name:=RemoveComments(name);
					k:=pos('href = "../people.php?id=',s2);
					l:=MyPos('"',s2,k+25);
					code:=copy(s2,k+25,l-(k+25));
					if name<>'' then
					begin
						setPersonName(name, '', 1, code);
					end;
				end;
				SearchFinish:=MyPos('<tr>', SearchText, SearchFinish+5);
				If SearchFinish<=0 then SearchFinish:=MyPos('</table>', SearchText, SearchFinish+5);
				delete(SearchText, 1, SearchFinish-1);
				//ShowMessage ('После удаления:= '+SearchText);
				SearchStart:=pos('<tr>',SearchText);
				SearchFinish:=MyPos('estimation', SearchText, SearchStart+4);
				SearchFinish:=MyPos('</td>', SearchText, SearchFinish+10);
			end;
		end;

//добавление авторов оригинала в сценаристы
	SearchStart:=pos('Автор оригинала:',all_peoples);
	SearchFinish:=MyPos('</table>',all_peoples,SearchStart+16);
	if SearchStart>0 then SearchText:=copy(all_peoples,SearchStart+37,SearchFinish-(SearchStart+29)) else SearchText:='';
	//ShowMessage ('mangakas:= '+SearchText);
		if length(SearchText)>0 then
		begin
			SearchStart:=pos('<tr>',SearchText);
			SearchFinish:=MyPos('estimation', SearchText, SearchStart+4);
			SearchFinish:=MyPos('</td>', SearchText, SearchFinish+10);
			while (SearchStart>0) and (SearchFinish>0) do
			begin
				s2:=copy(SearchText,SearchStart,(SearchFinish+5)-SearchStart);
				k:=pos('estimation''>', s2);
				l:=MyPos('</a>', s2, k+12);
				ExcludeStr:=0;
				//ExcludeStr:=pos('состав серий',s2);
				if (k>0) and (ExcludeStr<=0) then 
				begin
					//ShowMessage ('mangaka:= '+s2);
					name:=copy(s2, k+12, l-(k+12));
					name:=RemoveComments(name);
					k:=pos('href = "../people.php?id=',s2);
					l:=MyPos('"',s2,k+25);
					code:=copy(s2,k+25,l-(k+25));
					if name<>'' then
					begin
						setPersonName(name, '', 2, code);
					end;
				end;
				delete(SearchText, 1, SearchFinish+9);
				SearchStart:=pos('<tr>',SearchText);
				SearchFinish:=MyPos('estimation', SearchText, SearchStart+4);
				SearchFinish:=MyPos('</td>', SearchText, SearchFinish+10);
				ExcludeStr:=0;
			end;
		end;
		

//добавление авторов сценария
	SearchStart:=pos('Сценарий:',all_peoples);
	SearchFinish:=MyPos('</table>',all_peoples,SearchStart+9);
	if SearchStart>0 then SearchText:=copy(all_peoples,SearchStart+30,SearchFinish-(SearchStart+22)) else SearchText:='';
	//ShowMessage ('scenarios:= '+SearchText);
		if length(SearchText)>0 then 
		begin
			SearchStart:=pos('<tr>',SearchText);
			SearchFinish:=MyPos('estimation', SearchText, SearchStart+4);
			SearchFinish:=MyPos('</td>', SearchText, SearchFinish+10);
			while (SearchStart>0) and (SearchFinish>0) do
			begin
				s2:=copy(SearchText,SearchStart,(SearchFinish+5)-SearchStart);
				k:=pos('estimation''>', s2);
				l:=MyPos('</a>', s2, k+12);
				//ExcludeStr:=pos('состав серий',s2);
				ExcludeStr:=0;
				if (k>0) and (ExcludeStr<=0) then 
				begin
					//ShowMessage ('writer:= '+s2);
					name:=copy(s2, k+12, l-(k+12));
					name:=RemoveComments(name);
					k:=pos('href = "../people.php?id=',s2);
					l:=MyPos('"',s2,k+25);
					code:=copy(s2,k+25,l-(k+25));
					if name<>'' then
					begin
						setPersonName(name, '', 2, code);
					end;
				end;
				delete(SearchText, 1, SearchFinish+9);
				SearchStart:=pos('<tr>',SearchText);
				SearchFinish:=MyPos('estimation', SearchText, SearchStart+4);
				SearchFinish:=MyPos('</td>', SearchText, SearchFinish+10);
				//ExcludeStr:=0;
			end;
		end;
		

//добавление актеров озвучки
	SearchStart:=pos('Роли озвучивали:',all_peoples);
	SearchFinish:=MyPos('</table>',all_peoples,SearchStart+17);
	if SearchStart>0 then SearchText:=copy(all_peoples,SearchStart+37,SearchFinish-(SearchStart+29)) else SearchText:='';
	//ShowMessage ('actors:= '+SearchText);
		if length(SearchText)>0 then
		begin
			SearchStart:=pos('<tr>',SearchText);
			SearchFinish:=MyPos('estimation', SearchText, SearchStart+4);
			SearchFinish:=MyPos('</td>', SearchText, SearchFinish+10);
			SearchFinish:=MyPos('</td>', SearchText, SearchFinish+5);
			while (SearchStart>0) and (SearchFinish>0) do
			begin
				s2:=copy(SearchText,SearchStart,(SearchFinish+5)-SearchStart);
				k:=pos('estimation''>', s2);
				l:=MyPos('</a>', s2, k+12);
				if k>0 then 
				begin
					//ShowMessage ('actor:= '+s2);
					name:=copy(s2, k+12, l-(k+12));
					name:=RemoveComments(name);
					k:=pos('href = "../people.php?id=',s2);
					l:=MyPos('"',s2,k+25);
					code:=copy(s2,k+25,l-(k+25));
					//k:=pos('&nbsp;',s2);
					StartCharacter:=MyPos('</td><td>',s2,l);
					//ShowMessage (StartCharacter);
					EndCharacter:=MyPos('</td>',s2,StartCharacter+10);
					//ShowMessage (EndCharacter);
					character:=copy(s2,StartCharacter+10,EndCharacter-(StartCharacter+10));
					if name<>'' then
					begin
						setPersonName(name, character, 3, code);
					end;
				end;
				delete(SearchText, 1, SearchFinish+9);
				SearchStart:=pos('<tr>',SearchText);
				SearchFinish:=MyPos('estimation', SearchText, SearchStart+4);
				SearchFinish:=MyPos('</td>', SearchText, SearchFinish+10);
				SearchFinish:=MyPos('</td>', SearchText, SearchFinish+5);
			end;
		end;
		

//добавление дополнительных актеров озвучки
	i:=pos('Также в ролях:',all_peoples);
	j:=MyPos('</table>',all_peoples,i+9);
	If j<=0 then j:=MyPos('Художник:', all_peoples, i+9);
	if j<=0 then j:=MyPos('Дизайн:',all_peoples,i+16);
	if i>0 then s:=copy(all_peoples,i+16,j-(i+16)) else s:='';
//ShowMessage ('actors:= '+s);
		if length(s)>0 then 
		  begin
			i:=pos('<tr>',s);
			j:=MyPos('</td></tr>', s, i+4);
			while (i>0) and (j>0) do
			begin
				s2:=copy(s,i,(j+10)-i);
				k:=pos('estimation''>', s2);
				l:=MyPos('</a>', s2, k+12);
				if k>0 then 
				begin
					name:=copy(s2, k+12, l-(k+12));
					name:=RemoveComments(name);
					k:=pos('href = "../people.php?id=',s2);
					l:=MyPos('"',s2,k+25);
					code:=copy(s2,k+25,l-(k+25));
					k:=pos('&nbsp;',s2);
					l:=MyPos('</td>',s2,k+6);
					character:=copy(s2,k+6,l-(k+6));
					if name<>'' then
					  begin
						setPersonName(name, character, 3, code);
					  end;
				  end;
					delete(s, 1, j+9);
					i:=pos('<tr>',s);
					j:=MyPos('</td></tr>', s, i+4);
			  end;
		  end;
		  
//добавление композиторов
	SearchStart:=pos('Композитор:',all_peoples);
	SearchFinish:=MyPos('</table>',all_peoples,SearchStart+11);
	if SearchStart>0 then SearchText:=copy(all_peoples,SearchStart+32,SearchFinish-(SearchStart+24)) else SearchText:='';
	//ShowMessage ('composers:= '+SearchText);
		if length(SearchText)>0 then
		begin
			SearchStart:=pos('<tr>',SearchText);
			SearchFinish:=MyPos('estimation', SearchText, SearchStart+4);
			SearchFinish:=MyPos('</td>', SearchText, SearchFinish+10);
			while (SearchStart>0) and (SearchFinish>0) do
			begin
				s2:=copy(SearchText,SearchStart,(SearchFinish+10)-SearchStart);
				k:=pos('estimation''>', s2);
				l:=MyPos('</a>', s2, k+12);
				if k>0 then 
				begin
					//ShowMessage ('composer:= '+s2);
					name:=copy(s2, k+12, l-(k+12));
					name:=RemoveComments(name);
					k:=pos('href = "../people.php?id=',s2);
					l:=MyPos('"',s2,k+25);
					code:=copy(s2,k+25,l-(k+25));
					if name<>'' then
					begin
						setPersonName(name, character, 4, code);
					end;
				end;
				delete(SearchText, 1, SearchFinish+9);
				SearchStart:=pos('<tr>',SearchText);
				SearchFinish:=MyPos('estimation', SearchText, SearchStart+4);
				SearchFinish:=MyPos('</td>', SearchText, SearchFinish+10);
			end;
		end;


end;

//returned images links
procedure GetImages;
var
	kol: integer;
begin
	GetFrontCoverURL;
	
	//shots
	kol:=0;
	if (kol<MaxShotsCount) and screenshots_exists then
GetFrames(kol);	
end;


procedure GetFrames(frames_downloaded: integer);
var
	url, s, s2, frame_url, frame_page, img_code, latin_title, screenshots_url, all_screenshots: string;
	i, j, k, il: Integer;
	frames_count, TopShotsCount: Integer;
begin
	i:=pos('кадры из фильма:', all);
	j:=MyPos('</table>', all, i+16);
	s:=copy(all,i+16,j-(i+16));
	TopShotsCount:=StrToInt(GetTextBetween(s, '[', ']'));
	i:=pos('animation_photos.php?id=', s);
	j:=MyPos('''>', s, i);
	film_code:=copy(s,i,j-i);
	screenshots_url:=format('http://www.world-art.ru/animation/%s',[film_code]);
	all_screenshots:=DownloadURL(screenshots_url, false, nil, 'windows-1251');
	if (all_screenshots <> '')and(all_screenshots <> '-1') then
	  begin
		latin_title := GetTextBetween(all_screenshots, '<title>', ' &');
		frames_count := frames_downloaded;
		if MaxShotsCount > TopShotsCount then MaxShotsCount:=TopShotsCount;
		i:=pos('кадры из фильма</h3>', all_screenshots);
		j:=MyPos('</td></tr></table>', all_screenshots, i);
		s:=copy(all_screenshots,i,j-i);
		if (MaxShotsCount>0) and (i>0) then
		  begin
		    i:=pos('img/converted_images_', s);
			while (i > 0) and (frames_count < MaxShotsCount) do
			  begin
				j:=MyPos('''', s, i);
				s2:=copy(s,i,j-i);
				s2 := ReplaceStr(s2, '_b', '_d', -1);
				frame_url:='http://www.world-art.ru/animation/'+s2;
				if frame_url <> '' then
				  begin
					SetImageName('', frame_url, '', 3);
					frames_count := frames_count + 1;
				  end;
				i := MyPos('</td>', s, j+1); 
				delete(s, 1, i);
				i:=pos('img/converted_images_', s);
			  end;
		  end;
	  end;

end;

//get movie site url
function GetMovieSiteURL(code: string): string;
begin
	if code='' then
		result:=''
	else
		result:=format('http://www.world-art.ru/animation/animation.php?id=%s', [code]);
end;

//get person site url
function GetPersonSiteURL(code: string): string;
begin
	if code='' then
		result:=''
	else	
		result:=format('http://www.world-art.ru/people.php?id=%s', [code]);
end;

function GetScreenshotsSiteURL(code: string): string;
begin
	if code='' then
		result:=''
	else	
		result:=format('http://www.world-art.ru/animation/animation_photos.php?id=%s&type=screenshots', [code]);
end;

// избавимся от иероглифов при их наличии.
function RemoveJeroglyph(cleany: string): string;
Var
  s: string;
  i, j: integer;
begin
  if Length(cleany) >0 then
	begin
		s:=cleany;
		i:=pos('&#',s); // находим начало иероглифа
		j:=(MyPos(';',s,i+1))+1; // находим конец иероглифа
		while i>0 do  //удаляем собственно иероглифы
		  begin
			delete(s,i,j-i); //удаляем иероглиф
			i:=pos('&#',s); // находим начало следующего иероглифа
			j:=(MyPos(';',s,i+1))+1; // находим конец следующего иероглифа
		  end;
		i:=pos('()',s); //проверяем, не осталось-ли после удаления иероглифов пустых скобок
		while i>0 do  //удаляем пустые скобки, если иероглифы были в скобках
		  begin
		    delete(s,i,2);
			i:=pos('()',s);
		  end;  
		i:=pos('  ',s); // проверяем, не осталось-ли двойных пробелов
		while i>0 do  //удаляем места с 2-я пробелами, оставляем только один.
		  begin
		    delete(s,i,1);
			i:=pos('  ',s);
		  end;
		i:=pos(' / ',s); // проверяем, не осталось-ли пустого слэша
		while i>0 do  //удаляем места с 2-я пробелами, оставляем только один.
		  begin
		    delete(s,i,1);
			i:=pos(' / ',s);
		  end;
	end;
  if s='' then result:='' // проверяем, если в строке s ничего нет, то и результат равен ''.
    else result:=s; // если в строке s что-то осталось ;) то сохраняем результат.
end; 

function RemoveComments(rc: string): string;
Var
//  s: string;
  i, j: integer;
begin
  if Length(rc) >0 then
	begin
		i:=pos(' [',rc); // находим начало комментария в скобках с пробелом
		j:=MyPos(']',rc,i+1); // находим конец комментария в скобках
		if (i>0) and (j>0) then delete(rc,i,(j+1)-i); //удаляем комментарий в скобках и один пробел перед скобками
		i:=pos('[',rc); // находим начало комментария в скобках
		j:=MyPos(']',rc,i+1); // находим конец комментария в скобках
		if (i>0) and (j>0) then delete(rc,i,(j+1)-i); //удаляем комментарий в скобках
	end;
  if rc='' then result:='' // проверяем, если в строке rc ничего нет, то и результат равен ''.
    else result:=rc; // если в строке rc что-то осталось ;) то сохраняем результат.
end; 

//функция удаляет все таги кроме <br> (переход на следующую строку), <b> (включение стиля шрифта "bold"), </b> (выключение "bold"), <i> (включение стиля шрифта  "italic"), </i> (выключение "italic").
function RemoveTagsWObr(rt: string): string;
Var
  s, s2: string;
  i, j, k: integer;
begin
    s:='';	s2:='';
	i:=0; j:=0; k:=0;	
    i:=pos('<', rt);
	j:=MyPos('>', rt, i);
	if i>0 then s:=copy(rt,i,(j+1)-i) else s:='';
	if (length(rt)>0) and (i >0) then
	  begin
		while (i>0) and (j>0) do
		  begin
			k:=pos('<br>', s);
			if k<=0 then k:=pos('<b>', s);
			if k<=0 then k:=pos('</b>', s);
			if k<=0 then k:=pos('<i>', s);
			if k<=0 then k:=pos('</i>', s);
			if k<=0 then 
			  begin
			    s2:=s2+copy(rt,0,i-1);
			  end 
			 else 
			   begin
			     s2:=s2+copy(rt,0,j);
			   end;	 
		    delete(rt, 1, j);
			i:=Pos('<', rt);
			if i>0 then j:=MyPos('>', rt, i);
			if (i>0) and (j>0) then s:=copy(rt,i,(j+1)-i) 
			 else 
			  begin
			    s:='';
				s2:=s2+rt;
			  end;
		  end;
	  end;
	i:=pos('<br><br><br>',s2);  //убираем лишние теги переноса.
	while i>0 do
	  begin
	   delete(s2,i,4);
	   i:=pos('<br><br><br>',s2);
	  end; 
	i:=pos('<b><b>',s2); //убираем лишние теги жирного шрифта
	while i>0 do
	  begin
	   delete(s2,i,3);
	   i:=pos('<b><b>',s2);
	  end; 
	i:=pos('<i><i>',s2); //убираем лишние теги наклонного шрифта
 	while i>0 do
	  begin
	   delete(s2,i,3);
	   i:=pos('<i><i>',s2);
	  end; 
 if s2='' then result:=''
    else result:=s2;
end;

function RemoveImages(imgs: string): string;
var
  s: string;
  i,j: integer;
begin
  if Length(imgs) >0 then
	begin
	  i:=pos('<IMG',imgs);
	  j:=MyPos('>',imgs,i+4);
		while i>0 do  //удаляем собственно картинки
		  begin
			delete(imgs,i,(j-i)+1); //удаляем картинку
			i:=pos('<IMG',imgs); // находим начало следующей картинки
			j:=MyPos('>',imgs,i+4); // находим конец следующей картинки
		  end;
	end;
  if imgs='' then result:=''
    else result:=imgs;
end;

function ChkStrOnEngSymbols(chkstr:string):boolean;
var
  s: string;
  i,j,n: integer;
  resNum: integer; // номер результата: 1-; 2-; 3-; 4-;
begin
	if length(chkstr)>5 then n:=5 else n:=length(chkstr);
	for i:=1 to n do
	  begin
		s:=copy(chkstr,i,1);
		if ord(s) in [1..167] then resNum:=resNum+1;
	  end;
	if length(chkstr)>5 then j:=3 else n:=length(chkstr);
	if resNum>j then
	  begin	
	    result:=true; 
		resNum:=0;
	  end
	 else
	  begin
	    result:=false;
		resNum:=0;
	  end;
end;

//иногда требуется логин на сайт
procedure SiteLogin;
var
	url, all: string;
begin
	if UserName='' then begin
		ShowLoginForm;
	end;
	url:=format('http://www.world-art.ru/enter.php?login=%s&pass=%s', [UserName, UserPassword]);
	url:=ReplaceStr(url, ' ', '+', -1);
	all:=DownloadURLWithReferer(url, 'post');
	if (GetResponseCode=403) then begin
		ShowLoginForm;
	end;
end;


procedure ButtonClick(Sender: TButton);
begin
	UserName:=edUserName.Text;
	UserPassword:=edPassword.Text;
	SaveLoginInfo(UserName, UserPassword, script_name);

	f.ModalResult := mrOk;
end;

procedure ShowLoginForm;
begin
	f := TForm.Create(nil);
	f.Caption := 'Требуется авторизация';
	f.BorderStyle := bsDialog;
	f.Position := poScreenCenter;
	f.Width:=400;


	labCaption := TLabel.Create(f);
	labCaption.Name := 'labCaption';
	labCaption.Parent := f;
	labCaption.SetBounds(10, 10, 380, 25);
	labCaption.Caption := 'Для получении информации с этого сайта необходима авторизация.';

	labUserName := TLabel.Create(f);
	labUserName.Name := 'labUserName';
	labUserName.Parent := f;
	labUserName.SetBounds(10, 40, 100, 25);
	labUserName.Caption := 'Имя пользователя:';

	edUserName := TEdit.Create(f);
	edUserName.Name := 'Name';
	edUserName.Parent := f;
	edUserName.SetBounds(120, 40, 175, 25);
	edUserName.Text := UserName;

	labPassword := TLabel.Create(f);
	labPassword.Name := 'labPassword';
	labPassword.Parent := f;
	labPassword.SetBounds(10, 70, 380, 25);
	labPassword.Caption := 'Пароль:';

  edPassword := TEdit.Create(f);
	edPassword.Name := 'edPassword';
	edPassword.Parent := f;
	edPassword.SetBounds(120, 70, 175, 25);
	edPassword.Text := UserPassword;

	b := TButton.Create(f);
	b.Name := 'btnOK';
	b.Parent := f;
	b.SetBounds(300, 70, 75, 25);
	b.Caption := '&Вход';
	b.OnClick := @ButtonClick;


	labCaption2 := TLabel.Create(f);
	labCaption2.Name := 'labCaption2';
	labCaption2.Parent := f;
	labCaption2.SetBounds(10, 100, 275, 25);
	labCaption2.Caption := 'Если у вас нет имени и пароля, получите их по этому адресу:';

	edURL := TEdit.Create(f);
	edURL.Name := 'URL';
	edURL.Parent := f;
	edURL.SetBounds(10, 125, 370, 25);
	edURL.Text := 'http://www.world-art.ru/regstart.php';

	f.ShowModal;
	f.Free;
end;

begin
	DownloadMovieBigCover:=true;
	DownloadMovieShortCast:=true;
	DownloadMovieBigDescription:=true;
	DownloadMovieComments:=true;
	DownloadMovieStudios:=true;
	DownloadMovieAwards:=true;
	DownloadMovieEarnings:=true;
	DownloadMovieAdditionalInfo:=true;
	DownloadMovieSeasonsList:=true;
	MaxShotsCount:=3;

	prefixes[1]:='The';
	prefixes[2]:='A';
	prefixes[3]:='An';
	prefixes[4]:='La';
	prefixes[5]:='Les';
	prefixes[6]:='Des';
	prefixes[7]:='L''';
	prefixes[8]:='Un';
	prefixes[9]:='El';
	prefixes[10]:='Il';
	prefixes[11]:='Le';
	prefixes[12]:='Uno';

end.