const
	script_name='worldart_animation';
	language='Russian';
	version=10;
	author='Weever';
	MinProgramBuild=4007;
	PCount = 12;
	//MAX_PHOTOS_COUNT = 3;
							//Скрипт написан на основе скрипта AnimeNfo by Vlad
var
	persons_count: integer;
	persons: array of string;
	imdb_codes: array of string;
	imdb_code, person_code: string;
	name, code, year, description: string;
	person, BasicURL, biography, trivia, character, birth_date, birthplace, birth_name, salary, height, original_name, death_date, person_site_url: string;
	photo_url, alt_url: string;
	monthes: array [1..12] of string;
	prefixes: array [1..PCount] of string;
	movie_html: string;
	person_height: integer;
	f: TForm;
	b: TButton;
	edUserName, edPassword, edURL: TEdit;
	labCaption, labCaption2, labUserName, labPassword: TLabel;

// пока пропустим...
function GetSearchURLbyName(PersonName: string): string;
var
	url: string;
begin
	url:=format('http://www.world-art.ru/search.php?public_search=%s&global_sector=people', [PersonName]);
	url:=ReplaceStr(url, ' ', '+', -1);
	result:=url;
end;

//Download search results from URL
function DownloadSearchURL(url: string): integer;
begin
	all:=DownloadURL(url);
	if GetResponseCode=403 then begin
	  SiteLogin;
	  all:=DownloadURL(url);
	end;
	if all='-1' then
		result:=-1
	else result:=PersonSearch;
end;

function PersonSearch: integer;
var
	url, s, s2, checkpage: string;
	i, j, k, l: integer;
begin
	persons_count:=0;
	s:='';	
	i:=pos('<title>',All); // записываем номер позиции на начало <title> в стринге All
	j:=MyPos('</title>',All,i+7); // записываем номер позиции на начало <title> в стринге All
	checkpage:=copy(All,i+7,j-(i+7)); // копируем из стринга All с позиции i+7 ( 7 символов занимает надпись <title>), длинной j-(i+7)
	if checkpage = 'Поиск по сайту' then // проверяем, перешли на страницу "поиск по сайту" или нет
//поисковая машина
	  begin
		i:=pos('персоны',all);
		j:=MyPos('Настройте поиск',all,i+7);
		if i>0 then s:=copy(all,i+7,j-(i+7)) else 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
						persons_count:=persons_count+1;
						name:=copy(s2, k+12, l-(k+12));
						name:=RemoveComments(name);
						name:=RemoveTags(name);
						name:=DecodeHTML(name);
						name:=ClearExtraSpaces(name);
						k:=pos('href = "people.php?id=',s2);
						l:=MyPos('"',s2,k+22);
						person_code:=copy(s2,k+22,l-(k+22));
						if name<>'' then
						  begin
							SetSearchResult(name, person_code);
						  end;

				      end;
					delete(s, 1, j+9);
					i:=pos('<tr>',s);
					j:=MyPos('</td></tr>', s, i+4);
				  end;
			  end;
	  end else
	    begin
	   	  i:=Pos('?id=',All); //поиск ID фильма
		  persons_count:=1; //устанавливаем, что найден 1 человек
		  person_code:=copy(All,i+4,Length(All)-(i+5)); //запоминаем ID человека
		  SetSearchResult('noname', person_code); //устанавливаем результат поиска (названия мы пока не знаем, да оно и не нужно сейчас)
	    end;
	result:=persons_count;
end;

function GetPersonURL(code: string; images_only: boolean): string;
begin
		result:=format('http://www.world-art.ru/people.php?id=%s', [code]);
end;

procedure GetImages;
begin
	//if photo_url<>'' then
		//SetImageName('', photo_url, '', 6);
	//GetGoogleImage;
end;

function GetGoogleImage: boolean;
var
	all, url: string;
	i, j: integer;
begin
	url:=format('http://images.google.com/images?svnum=20&hl=en&lr=&safe=on&c2coff=1&q=%%22%s%%22', [original_name]);
	url:=ReplaceStr(url, ' ', '+', -1);
	all:=DownloadURL(url);
	i:=pos('dyn.Img(', all);
	if i>0 then begin
		i:=MyPos('","', all, i+1);
		i:=MyPos('","', all, i+1);
		i:=MyPos('","', all, i+1) + 3;
		j:=MyPos('","', all, i+1);
		if j>0 then begin
			url:=copy(all, i, j-i);
			SetImageName('', url, '', 6);
		end;
	end;
end;

function SavePhoto(url, FileName: string): boolean;
var
	fs: TFileStream;
	s: string;
begin
	s:=DownloadURL(url);
	if GetResponseCode=403 then begin
	  SiteLogin;
	  s:=DownloadURL(url);
	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 ClearBrackets(name: string): string;
var
	i: integer;
begin
	// clear word in brackets at the end of name
	i := pos(' (', name);
	if i>0 then
		name := copy(name, 1, i-1);
	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
	day, month, year, s, s2, s3, s4, LabelFilm: string;
	i, j, k, l, n, ke, person_mode, person_mode_seek, ExcludeStr: integer;
begin
	result:='';
	LabelFilm:='';
	description:='';
	s2:='';
	
	BasicURL:=url;
	i:=pos('?id=',url);
	j:=length(url);
	person_code:=copy(url,i+4,j-(i+3));
	person_site_url:=GetPersonSiteURL(person_code);
	all:=DownloadURL(url);
	if all='-1' then
		result:='-1'
	else
		result:=all;
	i:=Pos('<title>',all);
	j:=MyPos('</title>',all,i);
	person := copy(all,i+7,j-(i+7));
	i:=Pos(' (',person);
	if i>0 then
	  begin
	    j:=MyPos(')', person, i);
		original_name:=copy(person,i+2,j-(i+2));
		delete (person, i, (j-i)+1);
	  end else original_name := person; 
	person := ClearBrackets(person);
	person := DecodeHTML(person);

	//person photo
	i:=0;
	i:=pos('тип аккаунта', all);
	if i<=0 then i:=Pos('галереи.', all);
	if i>0 then begin
		j:=MyPos('кадры из фильмов:', all, i+12);
		if j<=0 then j:=MyPos('Дата рождения:', all, i+12);
		if j<=0 then j:=MyPos('Место рождения:', all, i+12);
		if j<=0 then j:=MyPos('В базах данных:', all, i+12);
		if j<=0 then j:=MyPos('События', all, i+12);
		if j<=0 then j:=MyPos('Озвучка в анимации', all, i+12);
		if j<=0 then j:=MyPos('Режиссер в анимации', all, i+12);
		s:=copy(all,i,j-i);
		n:=0;
		i:=pos('<a href=''', s);
		j:=MyPos(''' target', s, i+9);
		if (length(s)>0) and (i >0) then 
		begin
			while (i>0) and (j>0)do 
			begin			
				photo_url:= copy(s,i+9,j-(i+9));
				delete(s, 1, j);
				SetImageName('', 'http://www.world-art.ru/'+photo_url, '', 6);
				i:=pos('<a href=''', s);			
				if i>0 then j:=MyPos(''' target', s, i);
			end;
		end; 
	end;

	//date of birth
	i:=pos('Дата рождения:', all);
	if i>0 then begin
		j:=MyPos('</td></tr>', all, i+14);
		s2:=copy(all, i+14, j-(i+14));
		i:=pos('<td>', s2);
		j:=MyPos('&nbsp;', s2,i+4);
		s3:=copy(s2, i+4, j-(i+4));
		i:=1;
		j:=MyPos('.',s3,i);
		day:=copy(s3,i,j-i);
		i:=j+1;
		j:=MyPos('.',s3,i);
		month:=copy(s3,i,j-i);
		i:=j+1;
		j:=length(s3);
		year:=copy(s3,i,(j+1)-i);
		if (day='') and (month='') and (year<>'') then //если есть только год, добавляем 31 декабря
		  begin
			day:='31';
			month:='12';
		    If length(year) >4 then delete(year, 1, 1);
		  end;
		if (day='??') and (month='??') and (year<>'') then //если есть только год, добавляем 31 декабря
		  begin
			day:='31';
			month:='12';
		    If length(year) >4 then delete(year, 1, 1);
		  end;	
		birth_date:=month+format('/%s/%s', [day, year]);
	end;
	
	//date of death
	i:=pos('Дата смерти:', all);
	if i>0 then begin
		j:=MyPos('</td></tr>', all, i+12);
		s2:=copy(all, i+12, j-(i+12));
		i:=pos('<td>', s2);
		j:=MyPos('&nbsp;', s2,i+4);
		s3:=copy(s2, i+4, j-(i+4));
		i:=1;
		j:=MyPos('.',s3,i);
		day:=copy(s3,i,j-i);
		i:=j+1;
		j:=MyPos('.',s3,i);
		month:=copy(s3,i,j-i);
		i:=j+1;
		j:=length(s3);
		year:=copy(s3,i,(j+1)-i);
		if (day='??') and (month='??') and (year<>'') then //если есть только год, добавляем 31 декабря
		  begin
			day:='31';
			month:='12';
		    If length(year) >4 then delete(year, 1, 1);
		  end;	
		if (day='') and (month='') and (year<>'') then //если есть только год, добавляем 31 декабря
		  begin
			day:='31';
			month:='12';
		    If length(year) >4 then delete(year, 1, 1);
		  end;	
		death_date:=month+format('/%s/%s', [day, year]);
	end;

	//place of birth	
	i:=pos('Место рождения:', all);
	if i>0 then begin
		j:=MyPos('</td></tr>', all, i+15);
		birthplace:=copy(all, i+15, j-(i+15));
		birthplace:=RemoveTags(birthplace);
		birthplace:=DecodeHTML(birthplace);
		birthplace:=ClearExtraSpaces(birthplace);
		if (length(birthplace)<2) then
			birthplace:='';
	end;
	

	//Info about the person
	i:=MyPos('<p ', all, j);
	if i>0 then 
	  begin
		j:=MyPos('</p>',all, i);
		j:=MyPos('<br>',all, j)+4;
		s2:=copy(all, i, j-i);
		i:=pos('<center>',s2);
		j:=MyPos('</center>', s2, i+8);
		while i>0 do
		  begin
			if (i>0) and (j>0) then delete(s2, i,(j+9)-i);
			i:=pos('<center>',s2);
			j:=MyPos('</center>', s2, i+8);
			if (i>0) and (j<=0) then i:=0;
		  end;
		description:=s2;  
		description:=ClearExtraCharacters(description);
		description:=ClearExtraSpaces(description);
		description:=ReplaceStr(description, #10, '<br>', -1);
		description:=ReplaceStr(description, #13, '<br>', -1);
		description:=RemoveTagsWObr(description);
		description:=DecodeHTML(description);
		if (length(description)=4) or (length(description)=8) then description:='';
	  end;

//Фильмография вся	
	i:=pos('Озвучка в анимации',all);
	if i>0 then person_mode:=3;
	if i<=0 then 
	  begin
	    i:=pos('Режиссер в анимации',all);
		if i > 0 then person_mode:=1;
	  end;
	if i<=0 then
	  begin
	    i:=pos('Композитор в анимации',all);
		if i > 0 then person_mode:=4;
	  end;
	if i<=0 then
	  begin
	    i:=pos('Сценарист в анимации',all);
		if i > 0 then person_mode:=2;
	  end;
	if i<=0 then
	  begin
	    i:=pos('Роли в кино',all);
		if i > 0 then person_mode:=3;
	  end;
	if i<=0 then
	  begin
	    i:=pos('Режиссер в кино',all);
		if i > 0 then person_mode:=1;
	  end;
	if i<=0 then
	  begin
	    i:=pos('Сценарист в кино',all);
		if i > 0 then person_mode:=2;
	  end;
	if i<=0 then
	  begin
	    i:=pos('Композитор в кино',all);
		if i > 0 then person_mode:=4;
	  end;
	j:=MyPos('Аниматор',all,i+18);  
	if j<=0 then j:=MyPos('Продюсер в кино',all,i+18);
	if j<=0 then j:=MyPos('Смешанные роли',all,i+18);
//	if j<=0 then j:=MyPos('Роли в кино',all,i+18);
	if j<=0 then j:=MyPos('var ',all,i+18);
	if i>0 then s:=copy(all,i+18,j-(i+18)) else 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('">', s2);
				l:=MyPos('</a>', s2, k+2);
				person_mode_seek:=pos('Озвучка в анимации',s2);
				if person_mode_seek > 0 then person_mode:=3;
				person_mode_seek:=pos('Режиссер в анимации',s2);
				if person_mode_seek > 0 then person_mode:=1;
				person_mode_seek:=pos('Композитор в анимации',s2);
				if person_mode_seek > 0 then person_mode:=4;
				person_mode_seek:=pos('Сценарист в анимации',s2);
				if person_mode_seek > 0 then person_mode:=2;
				person_mode_seek:=pos('Композитор в кино',s2);
				if person_mode_seek > 0 then person_mode:=4;
				person_mode_seek:=pos('Режиссер в кино',s2);
				if person_mode_seek > 0 then person_mode:=1;
				person_mode_seek:=pos('Сценарист в кино',s2);
				if person_mode_seek > 0 then person_mode:=2;
				person_mode_seek:=pos('Роли в кино',s2);
				if person_mode_seek > 0 then person_mode:=3;
				ExcludeStr:=pos('Роли в кино',s2);
				if ExcludeStr > 0 then LabelFilm:=' - фильм, ';
				if ExcludeStr <=0 then ExcludeStr:=pos('режиссёр-постановщик',s2);
				if ExcludeStr <=0 then 
				  begin
				    ExcludeStr:=pos('Композитор в кино',s2);
					if ExcludeStr > 0 then LabelFilm:=' - фильм, ';
				  end;
				if ExcludeStr <=0 then 
				  begin
				    ExcludeStr:=pos('Режиссер в кино',s2);
					if ExcludeStr > 0 then LabelFilm:=' - фильм, ';
				  end;
				if ExcludeStr <=0 then 
				  begin
				    ExcludeStr:=pos('Сценарист в кино',s2);
					if ExcludeStr > 0 then LabelFilm:=' - фильм, ';
				  end;
				if ExcludeStr <=0 then ExcludeStr:=pos('состав серий',s2);
				
				if (k>0) and (ExcludeStr<=0) then 
				  begin
					name:=copy(s2, k+2, l-(k+2));
					name:=ClearExtraBlankCharacters(RemoveTags(name));
					k:=pos('?id=',s2);
					l:=MyPos('"',s2,k+4);
					code:=copy(s2,k+4,l-(k+4));
					s2:=RemoveComments(s2);
					k:=pos('</a>',s2);
					l:=MyPos('<font',s2,k+4);
					if l<=0 then l:=MyPos('</td>',s2,k+7);
					character:=copy(s2,k+7,l-(k+7)); //+7
					if (character = '') or (character  = ' ') then character :='роль неизвестна';
					if person_mode <> 3 then character:=character 
					 else character:=labelfilm+character;
					character:=ClearExtraBlankCharacters(RemoveTags(character));
					k:=pos('<td>',s2);
					l:=MyPos('&nbsp;-',s2,k+4);
					if l<=0 then l:=MyPos(' ',s2,k+4);
					year:=ClearExtraBlankCharacters(copy(s2,k+4,l-(k+4)));
					if year[1] = '<' then
						year := '';
					if name<>'' then
					  begin
		                SetMovieName(name, character, person_mode, code, year);
					  end;
				  end;
					delete(s, 1, j+9);
					i:=pos('<tr>',s);
					j:=MyPos('</td></tr>', s, i+4);
			  end;
		  end;
		  
end;


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

//get person 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 ChkStrOnEngSymbols(chkstr:string):boolean;
var
  s: string;
  i,j,n: integer;
  resNum: integer; // номер результата: 1-; 2-; 3-; 4-;
begin
	for i:=1 to 5 do
	  begin
		s:=copy(chkstr,i,1);
		if ord(s) in [1..167] then resNum:=resNum+1;
	  end;
	if resNum>3 then
	  begin	
	    result:=true; 
		resNum:=0;
	  end
	 else
	  begin
	    result:=false;
		resNum:=0;
	  end;
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 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 s2:=s2+copy(rt,0,j);
		    delete(rt, 1, j);
			i:=Pos('<', rt);
			if i>0 then j:=MyPos('>', rt, i);
			if i>0 then s:=copy(rt,i,(j+1)-i) else s:='';
		  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 ClearExtraBlankCharacters(Text: String): String;
var
  tmp: String;
begin
	// Clear all extra blank charackters
  tmp := Text;
  tmp := ClearExtraCharacters(tmp);
  tmp := ClearExtraSpaces(tmp);
	while (length(tmp) > 0) and (Ord(tmp[1]) in [1..20, 32]) do
		delete(tmp, 1, 1);
	while (length(tmp) > 0) and (ord(tmp[length(tmp)]) in [1..20, 32]) do
		delete(tmp, length(tmp), 1);
	Result := tmp;
end;

function RemoveComments(rc: string): string; // эта функция работает, отлажена, приведена к нормальному виду.
Var
  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; 


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
monthes[1]:='January';
monthes[2]:='February';
monthes[3]:='March';
monthes[4]:='April';
monthes[5]:='May';
monthes[6]:='June';
monthes[7]:='July';
monthes[8]:='August';
monthes[9]:='September';
monthes[10]:='October';
monthes[11]:='November';
monthes[12]:='December';

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.