 package Addtext;
use Exporter;
@ISA = ('Exporter');
@EXPORT = qw( $Java_string &preptext &illustr &commify &pustlib &pustory &childstory &FindName );



## HEADERS
# - Только вставка Java-script функций, необходимых для показа объектов

$header2 = (<< "HEADER2");
var nW=null;
function opfoto(name) {
if (nW==null  || nW.closed) {
nW = open("","myWin","width=640,height=300,scrollbars=yes,resizable=no,menubar=no,location=no,status=no,toolbar=no");
        }
nW.document.close();
nW.document.open();
prezent(name);
nW.document.close();
nW.focus()
}

function closefoto(){
nW.close();
}

function prezent(string){
nW.document.writeln('<html><head><title>Object: ' + string + '</title><meta http-equiv="Content-Type" content="text/html"><\/head><body>');
nW.document.writeln(search_in(string,animals));
nW.document.writeln('<\/body><\/html>');
nW.document.close;
}

function search_in(str,list) {
for (var i = 0; i<list.length;i++){
var tmp = list[i].split('|');
var tmp2 = tmp[0].split(' ');
if (str ==tmp2.slice(0,1)) return nice_print(tmp);
}
return str + 'not found';
}


function nice_print(element) {
return '<P STYLE=\"font-size:14pt\"; align:justify>' + 'Object: ' +  element[0].fontcolor('red') + '<br>Description:'  + element[1].fontcolor('blue') + '<br>' + mpg_prez(element[3]) + '<br>'  + jpg_prez(element[2])  + '<br>'
	}

function jpg_prez(item) {
var string = item.toUpperCase()
if ( string.indexOf('JPG') == -1 )return "";
var list = item.split(" ");
return jpg_prez2(list) ;
}

function jpg_prez2(list1) {
if (list1.length == 0) return "";
image_file = list1.slice(0,1) ;
return '<IMG SRC=..\/video\/' +  image_file  + ' width=320 >' + image_file + '<br>' + jpg_prez2(list1.slice(1)) ;
}

function mpg_prez(item) {
var string = item.toUpperCase()
if ( string.indexOf('MPG') == -1 )return "";
var list = item.split(" ");
return mpg_prez2(list) ;
}

function mpg_prez2(list1) {
if (list1.length == 0) return "";
mpg_file = list1.slice(0,1) ;
return '<A HREF=..\/video\/' +  mpg_file + '> MPEG - '  +  mpg_file   + '</A><br>' + mpg_prez2(list1.slice(1)) ;
}

HEADER2


#------------ Sub-procedures: 
# pustlib Преобразует текстовые из Библиотеки
sub pustlib {
my $txt = $_[0] ;
my $datafile="../db/library-koi.txt";
my $pict="../lib/images/";
$txt =~ s/img src\=(\S+)/<p><img src=$pict$1><\/p><p>/ig;
open(DATA,$datafile);
while(<DATA>){
($name,$file)=split("#");
if (substr($name,-1) =~ /й|а|ю|я|и|ы|е|ь/) {
$endkey = chop($name) ;
                  }
if ($ENV{'QUERY_STRING'}  ne  "$file.txt") {
if ($txt =~ m/\s$name(?!с|х|з|ж|т|ф|ч)/)            {
$txt =~ s/\s($name(?!с|х|з|ж|т|ф|ч)\S{0,3}\s+)/ <A href=htconvert.cgi\?$file.txt>$1<\/a> /g;

#$txt =~ s/\s($name(?!х|з|ж|т|ф|й|ч)\S{0,3}\s+)/ <A href=$file.html>$1<\/a> /g;
                     }						
	           }
		}

close DATA;
return " $txt ";
		}

#----
sub FindName {
my $Name = shift @_ ;
my $yes = 0 ;
chomp $Name ;
my @citlist = () ;
my $datafile = "../db/library-koi.txt";
open(DATA,$datafile);
my @objects = <DATA> ;
close DATA;
foreach (@objects) {
chomp;
my ($author,$file) = split("#") ;
if ( $file eq $Name) {
         $Name = $author ;
         $yes = 1;
         last;
         }

      }
if ($yes == 0) {return ""}
foreach (@objects) {
chomp;
my ($author,$file) = split("#") ;
   open (TEXT,"../lib/htext/$file.txt") || die "No File - $file.txt" ;
   my $nl = $/ ;
   undef $/;
 local  $_ = <TEXT>;  # redone from line-by-line read
   close(TEXT);
      if ( m/$Name\S?\s+/ ) {push (@citlist,$author)} ;
         $/ = $nl;

            }
        
      return @citlist ;
}

#----
sub pustory {
my $txt = $_[0] ;
my $datafile="../db/story-koi.txt";
open(DATA,$datafile);

while(<DATA>)	{
($name,$number)=split("#");
if ($ENV{'QUERY_STRING'}  ne  "tl$number\.txt")  {
if ($txt =~ m/\s$name(?!с|х|з|ж|т|ф|й|ч)/)            {

#$txt =~ s/\s($name\S{0,3})\s+/ <A href=puststory.pl\?tl$number.txt>$1 <\/a> /g;
$txt =~ s/\s($name\S{0,3})\s+/ <A href=tl$number.html>$1 <\/a> /g;
	           }
         }
	}
close DATA;
return " $txt ";
		}





sub preptext {
my $txt = $_[0];
$txt =~ s/\n - /\n-/g;
$txt =~ s/\n- /\n<br>-/g;
return "   $txt   \n";
}

sub illustr {
my $txt = $_[0];
my $datafile = "../determinator/dbimage.txt";
my @list = ();
open(DATA,$datafile);
@objects = <DATA> ;
close DATA;
foreach (@objects){
chomp;
my ($name,$file,$describ)=split("#");
$name =~ s/\s+$//;
#if ($txt =~ m/\s$name(?!е|х|з|ж|т|ф|й|ч)/)    {
#--
if ($txt =~ m/\s$name(?!е|х|з|ж|т|ф|й|ч)/)    {
$describ =~ s/"/\\"/g;
chomp($describ);

my $anket_str=join('|',($name,$file,$describ));
chomp ($anket_str);
chop ($anket_str);
$anket_str = "\'" . $anket_str . "\'";
push (@list,$anket_str);
#$txt =~ s/\s($name\S?\S?\s+)/ <a href=\"javascript:void(0)\" onClick=\"opfoto(\'$name\')\">$1<\/a> /g;
$txt =~ s/\s($name(?!е|х|з|ж|т|ф|й|ч)\S{0,2}\s+)/ <a href=\"javascript:void(0)\" onClick=\"opfoto(\'$name\')\">$1<\/a> /g;

	}
}
chomp(@list);
if (scalar (@list) > 0)  {
$out_str = commify(@list);
$Java_string = " $header2  \n  var animals \= new Array ( $out_str )  \n" ;

return "   $txt  \n";
			}

return " $txt   \n ";
			}



#------
sub childstory {
my $txt = $_[0];
my $datafile = "../db/childdb.txt";
my @list = ();
open(DATA,$datafile);
my @objects = <DATA> ;
close DATA;

foreach (@objects){
$endkey = "";
chomp;
my ($name,$describ,$file)=split("#");
$name =~ s/\s+$//;
#-- Удалили последний символ если он был гласной или мягким знаком
if (substr($name,-1) =~ /а|я|и|ы|e|ь/) {
$endkey = chop($name) ;

                  }
#--

if ($txt =~ m/\s$name(?!с|х|з|ж|т|ф|й|ч)/)    {
$describ =~ s/"/\\"/g;
chomp($describ);

#--- Razborka FILES !!!!! ----
if ($file eq "") {$qt = $jpg = $mpg = $file}
else    {
$_ = $file ;
@mpg = m/\S+MPG/ig ;
$mpg = "@mpg";
@jpg = m/\S+JPG/ig ;
$jpg = "@jpg";
         }
#---
$name2 = join ("",$name,$endkey) ;
$name2 =~ s/\s/_/g ;
my $anket_str=join('|',($name2,$describ,$jpg,$mpg));
chomp ($anket_str);
#chop ($anket_str);
$anket_str = "\'" . $anket_str . "\'";
push (@list,$anket_str);
$txt =~ s/\s($name(?!с|х|з|ж|т|ф|й|ч)\S{0,2}\s+)/ <a href=\"javascript:void(0)\" onClick=\"opfoto(\'$name2\')\">$1<\/a> /g;

	}
}
chomp(@list);
if (scalar (@list) > 0)  {
$out_str = commify(@list);
$Java_string = " $header2  \n  var animals \= new Array ( $out_str )  \n" ;

return "   $txt  \n";
			}

return " $txt   \n ";
			}

sub commify {
(@_ == 0) ? ""		:
(@_ == 1) ? $_[0]		:
(@_ == 2) ? join(",",@_):
		join (",", @_[0 ..($#_ - 1)]," $_[-1]");
}
1;


