#!/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 "karina.rsd.dom") {
$lock_file="0";
#$link_list_file="D:/dbniss/cgi-bin/linklist.bs";
#$url_l="http://www.dfni.dp.ua/docs/";
#$url_2="http://www.dfni.dp.ua/utel/";
#$path_l="D:/dbniss/docs/";
$link_list_file="c:/WebServers/home/karina.rsd.dom/cgi-bin/linklist.bs";
$url_l="http://karina.rsd.dom/docs/";
$url_2="http://karina.rsd.dom/utel/";
$path_l="c:/WebServers/home/karina.rsd.dom/www/docs/";
}
else {
$lock_file="1";
$link_list_file="linklist.bs";
$url_l="http://www.db.niss.gov.ua/docs/";
$url_mon="http://www.db.niss.gov.ua/monitor/comments.php";
$url_2="http://is.utel.net.ua/~dbnissml/dfni/";
$path_l="/home/dfnidp/public_html/dbniss/docs/";
}

#print "Content-Type: text/html\n\n";
#print "<HTML>\n";
#print "<HEAD>\n";
#print "<TITLE>Hellow world</TITLE>\n";
#print "</HEAD>\n";
#print "<BODY>\n";
#print "aaaaaaaaaaaaaaaaaaaa\n";
#print "<p></p>\n";
#print $server_name;
#print $lock_file;
#print $link_list_file;
#print "</BODY>\n";
#print "</HTML>\n";

#Get data from memory --------
$bufer=$ENV{'QUERY_STRING'};
if($bufer eq "")
  {
  	die "Не указан номер ссылки, Если вы настраиваите скрипт то прочитайте файл readme.htm подробнее.";
  }
#End -------------------------

  	open (DATA,"$link_list_file") || die "Не могу открыть файл $link_list_file для чтения";
  	if($lock_file){flock (DATA,1);}
  	@DATA=<DATA>;
  	close (DATA);  	
  	
  	$have=0;
  	$i=0;	
	
  	foreach $pair (@DATA)
  	  {
  	  	($id,$count,$to_link,$month,$year,$project,$type,$autors,$names,$publish,$notes)=split(/\|/,$pair);
  	  	if($id eq $bufer)
  	  	  {
  	  	  	if (substr($to_link, 0, 7) eq 'http://') {
				$pos = index($to_link,'/');
				$url_t1 = substr($to_link,$pos+2);
#				die $url_t1;
				$url=$url_2.$url_t1;
  	  	  	}
			elsif (substr($to_link, 0, 1) eq '?') {
				$url="$url_mon$to_link";
			}
			else {
			$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 "<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>";
		print "<title>**** Предупреждение: ****</title></head>";	
#		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>"]),
		td(["<font size='2'><i>(при плохом интернет-подключении настоятельно советуем загружать ссылку выше<br> через любой download-manager,<br> если соединение хорошее - жмите на кнопку 'Загрузить' ниже и немного подождите)</i></font>"]),
		]
		)
		);
#		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 button(-name=>'clear',-value=>'Отмена',-onClick=>"history.back()");
#		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";     	    	
  	}