#!/usr/bin/perl
#	Первая строчка - это путь до перла,
#обычно это 	#!/usr/local/bin/perl     или    #!/usr/bin/perl
#	Узнайте у вашего провайдера!!!!!!!!!!!!!!!!!
#

use CGI qw/:standard/;
$server_name = $ENV{'SERVER_NAME'};
#require "bsdccsetup.pl";
#require "D:/inetpub/wwwroot/dfni/cgi-bin/bsdccsetup.pl";

#Блокировка файла
#Значения
#	1 - включенно (для серверов на unix основе)
#	0 - отключенно (для серверов на win основе)
#$lock_file="0";

#Файл с ссылками
#$link_list_file="linklist.bs";
#$link_list_file="D:/inetpub/wwwroot/dfni/cgi-bin/linklist.bs";

if ($server_name eq "www.dfni.dp.ua") {
$lock_file="0";
$link_list_file="D:/dbniss/cgi-bin/linklist.bs";
$url_l="http://172.17.3.3/dfni/docs/";
$url_l2="http://172.17.3.3/dfni/cgi-bin/bsdcc.pl?";
$path_l="D:/dfni/docs/";
}
else {
$lock_file="1";
$link_list_file="linklist.bs";
$url_l="http://www.db.niss.gov.ua/docs/";
$url_l2="http://www.db.niss.gov.ua/cgi-bin/bsdcc.pl?"
}

#Get data from memory --------
$bufer=$ENV{'QUERY_STRING'};
#End -------------------------

if ((param()) || ($bufer ne "") ) 
{
@types = param('types');
@dates = param('dates');
@deps = param('deps');
$i_types = 0;
$i_dates = 0;
$i_deps = 0;
if ($bufer ne "")
	{
	@types = ('Аналитические материалы','Монографии','Научно-технические отчеты','Публикации');
	@dates = ('2006','2005','2004','2003','2002','2001','2000');
	if ($bufer eq "1") 
		{
		@deps = ('1');
		}
	elsif ($bufer eq "2") 
		{
		@deps = ('2');
		}
	elsif ($bufer eq "3") 
		{
		@deps = ('3');
		}
	elsif ($bufer eq "4") 
		{		
		@deps = ('4');
		}
	elsif ($bufer eq "5") 
		{		
		@deps = ('5');
		}
	elsif ($bufer eq "6") 
		{		
		@deps = ('6');
		}
	}

foreach $item (@types)
	{ 
	if ($item eq 'Аналитические материалы' ) {
		@types_[$i_types] = '1';	}
	elsif ($item eq 'Монографии') {
		@types_[$i_types] = '2';	}
	elsif ($item eq 'Научно-технические отчеты') {
		@types_[$i_types] = '3';	}
	elsif ($item eq 'Публикации' ) {
		@types_[$i_types] = '4';	}
	$i_types++;
	}
foreach $item (@dates)
	{ $i_dates++; }
foreach $item (@deps)
	{ $i_deps++; }

#print @types;
#print @dates;
#print @deps;
  	open (DATA,"$link_list_file") || die "Не могу открыть файл $link_list_file для чтения";
  	if($lock_file){flock (DATA,1);}
  	@DATA=<DATA>;
  	close (DATA);
  	
  	$have=0;
  	$i=0;
	$i2=0;

	print "Content-Type: text/html\n\n";
#	print start_html(-title=>'**** Результаты сортировки: ****',
#	-meta=>{'charset'=>'windows-1251'}
#	);

	print "<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>";
	print "<title>**** Результаты сортировки: ****</title></head>";		

	foreach $pair (@DATA)
	{
  	  	($id,$count,$to_link,$month,$year,$project,$type,$autors,$names,$publish,$notes)=split(/\|/,$pair);
		$hash_{$id} = $year.$month;
#		$testt = $id.$year.$month;
#		print "$year\n$month\n";
#		print $pair;
#		print "$testt \n\n";
	}
	$i3=0;
	foreach $pair (sort { $hash_{$a} cmp $hash_{$b} } keys %hash_ )
	{
		$sortedkeys[$i3] = $pair;
#		print "$pair is $hash_{$pair}\n" ;
#		print "$sortedkeys[$i3]\n" ;
		$i3++;
	}
	$i3=0;
	foreach $pair (@sortedkeys)
	{
		foreach $pair1 (@DATA)
		{
			($id,$count,$to_link,$month,$year,$project,$type,$autors,$names,$publish,$notes)=split(/\|/,$pair1);
#			print "$id---$pair\n";
			if ($id eq $pair) 
			{
				$DATA1[$i3] = $pair1;
#				$www = $pair1;
#				print "wwwwwwwwwwwwwwwwwwwwwwwwwwwww\n";
#				print "$www\n";
#				print "$DATA1[$i3]\n";
				$i3++;
				last;
			}
		}
	}

	print "<table align=\"center\" border=\"2\">";
	print "<tr align=\"center\">";
#	print "<th>id</th><th>Число закачек</th><th>URL</th><th>Месяц</th><th>Год</th><th>№ отдела</th><th>Тип</th><th>Авторы</th><th>Имя работы</th><th>Где опубликовано</th><th>Примечание</th>";
	print "<th>Наименование</th><th>Дата</th><th>Тип</th><th>Тема</th><th>Опубликовано</th>";
	print "</tr>";

	foreach $pair (@DATA1)
  	  {
  	  	($id,$count,$to_link,$month,$year,$project,$type,$autors,$names,$publish,$notes)=split(/\|/,$pair);
		if ($type eq 1) 
			{
			$type2='Ан. м-л';
			}
		elsif ($type eq 2)
			{
			$type2='Моногр.';
			}
		elsif ($type eq 1)
			{
			$type2='НТО';
			}
		elsif ($type eq 1)
			{
			$type2='Публ.';
			}
		foreach $item (@types_)
		  {
			if ($item eq $type)
				{
				foreach $item1 (@dates)
					{
					if ($item1 eq $year)
						{
						foreach $item2 (@deps)
							{
							if ($item2 eq $project) 
								{
								$i2=3;
								print "<tr align=\"center\">";
#								print "<td>$id</td><td>$count</td><td>$to_link</td><td>$month</td><td>$year</td><td>$project</td><td>$type</td><td>$autors</td><td>$names</td><td>$publish</td><td>$notes</td>";
								print "<td><i>$autors</i> <a href=\"$url_l2$id\">$names</a></td><td>$month.$year</td><td>$type2</td><td>$project</td><td>$publish</td>";
								print "</tr>";
								}
							}
						}
					}
				}
		  }	
	  }
	if ($i2 eq 0) 
		{
		print "<tr align=\"center\"><td colspan=5><p><br><i>Записей, соответствующих заданным критериям сортировки, не найдено!</i><br> &#133;</p></td></tr>";
		}
	print "<tr align=\"center\"><td colspan=5><p><br><i><b><u><font size=2>Сокращения:</u></b></i><br><i>Ан. м-л</i> - аналитический материал;<br><i>Моногр.</i> - монография;<br><i>НТО</i> - научно-технический отчет;<br><i>Публ.</i> - публикация<br></p>";
	print "<p align='center'><br>";
	print "<i><b><u>Тематика детально:</u></b><br>(расшифровка)</i><br>";
	print "&nbsp;&nbsp;1: Проблемы региональной стабильности и военной безопасности<br>";
	print "&nbsp;&nbsp;2: Прогнозировние новых видов вооружений<br>";
	print "&nbsp;&nbsp;3: Развитие военно-промышленной базы<br>";
	print "&nbsp;&nbsp;4: Топливно-энергетическая безопасность<br>";
	print "&nbsp;&nbsp;5: Международно-правовое обеспечение военно-технической политики<br>";
	print "&nbsp;&nbsp;6: Мониторинг региональных аспектов национальной безорасности и анализ общественно-политических процессов<br>";
	print "</font></p>";
	print "</td></tr></table>";
	print "<p align=\"center\">\n";
	print button(-name=>'clear',-value=>'Назад',-onClick=>"history.back()");
	print "</p>\n";
	print end_html; 
}
else 
{
	
	print "Content-Type: text/html\n\n";
#	print start_html(-title=>'**** Сортировка материалов: ****',
#	-meta=>{'charset'=>'windows-1251'}
#	);

	print "<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>";
	print "<title>**** Сортировка материалов: ****</title></head>";

	print startform();
	print "<table align=\"center\" border=\"1\">";
	print "<tr align=\"center\">";
	print "<th>Тип материала</th><th>Год выпуска</th><th>Тематика</th></tr>";
	print "<tr align=\"center\">";
	print "<td>";
	print scrolling_list(-name=>'types',
	-values=>['Аналитические материалы','Монографии','Научно-технические отчеты','Публикации'],
	-default=>['Аналитические материалы','Публикации'],
	-size=>4,
	-multiple=>'true');
	print "</td><td>";
	print scrolling_list(-name=>'dates',
	-values=>['2006','2005','2004','2003','2002','2001','2000'],
	-default=>['2006'],
	-size=>4,
	-multiple=>'true');
	print "</td><td>";
	print scrolling_list(-name=>'deps',
	-values=>['1','2','3','4','5','6'],
	-default=>['1'],
	-size=>6,
	-multiple=>'true');
	print "</td></tr><tr align=\"left\"><td colspan=3>";
	print "<p align='center'><br><font size=1>";
	print "Обратите внимание: вверху можно выбирать множественные данные используя клавишу Ctrl<br>&nbsp </p>";
	print "</td></tr><tr align=\"left\"><td colspan=3>";
	print "<font size=2><i><b><p align='center'>Тематика детально:</b><br>(расшифровка)</p></i><p><br>";
	print "&nbsp;&nbsp;1: Проблемы региональной стабильности и военной безопасности<br>";
	print "&nbsp;&nbsp;2: Прогнозировние новых видов вооружений<br>";
	print "&nbsp;&nbsp;3: Развитие военно-промышленной базы<br>";
	print "&nbsp;&nbsp;4: Топливно-энергетическая безопасность<br>";
	print "&nbsp;&nbsp;5: Международно-правовое обеспечение военно-технической политики<br>";
	print "&nbsp;&nbsp;6: Мониторинг региональных аспектов национальной безорасности и анализ общественно-политических процессов<br>";
	print "</font></p><p align=\"center\">";
	print submit(-name=>'submit',-value=>'Загрузить');
	print reset(-name=>'Отмена',-value=>'Отмена');
	print endform();
	print "</td></tr></table>";

	print end_html; 

	
if($bufer eq '0')
  {		
  }
elsif ($bufer eq '1')
  {

  	foreach $pair (@DATA)
  	  {
  	  	($id,$count,$to_link,$month,$year,$project,$type,$autors,$names,$publish,$notes)=split(/\|/,$pair);
  	  	if($id eq $bufer)
  	  	  {
  	  	  	$url="$url_l$to_link";
  	  	  	chomp($url);
  	  	  	$ext = substr($to_link, -3, 3) ;
			$url_pre = substr($to_link, 0, 1) ;
  	  	  	$file_l = "$path_l$to_link";
  	  	  	$file_size = (-s $file_l);
  	  	  	$have=1;
  	  	  	$count++;
  	  	  	@DATA[$i]=join("\|",$id,$count,$to_link,$month,$year,$project,$type,$autors,$names,$publish,$notes);
  	  	  	last;
  	  	  }	
  	  	else
  	  	  {$i++;}
  	  }	
  	
  	if(!($have))
  	  {die "Такой ссылки в базе ненайденно.";}
  	else
  	  {
  	 	open (DATA,">$link_list_file") || die "Не могу cоздать файл $link_list_file";
	  	if($lock_file){flock (DATA,2);}
	  	print DATA @DATA;
	  	close (DATA);  	
  	  }	
		$ref_ = referer();

		if ($url_pre eq '.') {
		print "Content-Type: text/html\n\n";
		print start_html(-title=>'**** Предупреждение ****',
		-meta=>{'charset'=>'windows-1251'}
		);
		print "<p align=\"center\">Запрашиваемый файл, по мнению испольнителей:<br>";
		print "<i>($autors)</i><br>";
		print "в настоящее время не может быть открыт на сайте для публичного просмотра.<br>";
		print "Для получения рабочей ссылки необходимо связаться с авторами:<br>";
#		print a({href=>"http://crete.org/"},"Crete");
		print "</p>";
		print "<p align=\"center\">\n";
#		print button(-name=>'clear',-value=>'Назад',-onClick=>"location=\"$ref_\"");
		print button(-name=>'clear',-value=>'Назад',-onClick=>"history.back()");
		print "</p>\n";
		print end_html;  
		}
		elsif ($ext eq 'pdf' || $ext eq 'zip') {
			if ($ext eq 'pdf') {
			$string_ext = '.PDF-формате';
			} 
			elsif ($ext eq 'zip') {
			$string_ext = 'формате MS WORD и упакован в .ZIP-архив';
			}
#		print header;
print "Content-Type: text/html\n\n";
#print "<HTML>\n";
		print start_html(-title=>'**** Предупреждение ****',
		-meta=>{'charset'=>'windows-1251'}
		);
#		print header, start_html('aaaaaaaaaaa');
#		print p($to_link);
#		print p($ext); 
#		print ($file_l);
#		print ($file_size);
		print table(
		{-border=>0,-align=>CENTER},
		Tr(
		{-align=>CENTER,-valign=>TOP},
		[
		td(["Запрашиваемый файл представлен в $string_ext"]),
		td(["Имеет размер $file_size байт"]),
		td(["и может быть загружен по такому адресу:"]),
		td(["<a href=\"$url\">$url</a>"])
		]
		)
		);
#		print startform(-action=>'http://172.17.3.3/dfni/cgi-bin/bsdcc.pl');
		print "<p align=\"center\">\n";
		print button(-name=>'submit',-value=>'Загрузить',-onClick=>"location=\"$url\"");
		print button(-name=>'clear',-value=>'Отмена',-onClick=>"location=\"$ref_\"");
#		print submit(-name=>'submit',-value=>'Загрузить');
#		print submit(-name=>'clear',-value=>'Отмена');
#		print endform();
		print "</p>\n";
#		print referer();
#		print param('submit');
#		print param('clear');
		print end_html;  
#		if (param('submit') eq 'Загрузить') {
#		print 'была нажата кнопка загрузить';
#		print "Location: $url \n\n"; 
#		print redirect(-URL=>$url); 
#		}
#		elsif (param('clear') eq 'Отмена') {
#		print 'была нажата кнопка отмена';
#		print "Location: referer() \n\n"; 
#		}
		}
		else {	
  	print "Location: $url \n\n";     	    	
  	}

  }
}
1;


