#!/usr/bin/perl
########################################################
#                                                      #
#     ***  GPRS Easy Connect V1.2.2            ***     #
#                                                      #
# A programot Simon Pter (Perl Tk) s Pintr Gbor    #
# (kapcsoldsi szkriptek) ksztette.                 #
# simonpeter@freemail.hu, pint3r@mailbox.hu            #
# (felttlenl olvasd el a LICENSE llomnyt)          #
#                                                      #
# Connection and configurator program for GPRS systems #
# Software made by Peter Simon (Perl program) and      #
# Gabor Pinter (connecting scripts).                   #
#                                                      #
########################################################


$ver="1.2.2";
$kivagy=`whoami`;
chomp $kivagy;
$sc_s="We are looking for translators for this\nfree project for any - non translated -\nlanguages. Also looking for testers.\n(See: www.easyconnect.linuxuser.hu)";
#configurci beolvassa
read_conf ();
# nyelvi adatok beolvassa
nyelvbeolv ();

# minden ltrehozott file rhat-olvashat, de nem futtathat
umask 0111;

#felbonts megllaptsa
$xvidtune=`xvidtune -show`;
$xvidtune=~s /(\"\d+)x(\d+\")/$1.$2/e;
$xvhor=$1;
$xvver=$2;
$xvhor=~ tr /\"//d;
$xvver=~ tr /\"//d;;
$xfele=$xvhor/2;
$yfele=$xvver/2;

use Tk;
use Socket;
use Tk::BrowseEntry;
use Tk::LabFrame;
use Tk::Balloon;

# tbb Easy Connect egyidej? futtatsnak kivdse
$futec=`ps -C GPRSEC.pl`;
@futectomb=split/\n/ ,$futec;
$futlen=@futectomb;
if ($futlen>2) {
	$winconn1=MainWindow->new();
	$winconn1->title ("GPRS Easy Connect");
			$winconn1x=$xfele-100;
			$winconn1y=$yfele-100;
			$winconn1->geometry("+$winconn1x+$winconn1y");

	if ($no_beep !=1) {
		$winconn1->bell;
	}

	$marfut_sz=$winconn1->Label(fg=>'red', text=>lancolas($cl[60]))->pack(); #Egyszerre csak egy\nEasyConn program futhat!
	$marfut_b=$winconn1->Button(text=>"Ok", command=>\sub {exit})->pack();

	$winconn1->OnDestroy(\sub {exit});
	MainLoop ();
	}

last_conn_rm ();

# telefonokhoz tartoz szkriptek meghatrozsa a /usr/share/gprsec/scripts/ knyvtrbl
@telcsik2=`ls -A /usr/share/gprsec/scripts/`;

foreach (@telcsik2) {
	if (/\-/ && /connect/) {
		$_=~s /-/ /;
		$_=~s/-connect//;
		$_=uc $_;
		chomp $_;
		push (@r_telcsik, $_);
	}
}
@telcsik=sort @r_telcsik;

foablak ();
MainLoop();

# a kivlasztott telefon megjelentse
sub kiir {
$also->delete('0.0','end');
$also->insert ('end', "$phonetype");
if ($felso) {undef $felso}
}

# kapcsolds szubrutin

sub konnect {
if ($id_disc) { # az el?z? kapcsolatmegszakads figyels ciklust tiltja
	$id_disc->cancel;
	undef $id_disc;
}
if ($id) {
$id->cancel;
undef $id;
}

# egyb fut ablakok trlse
winbezar ();

# a kapcsolatmegszakadst jelz fjl trlse
if (-e "/usr/share/gprsec/log/disc") {
`rm '/usr/share/gprsec/log/disc'`;
}

# a kapcsolds figyelsnek ciklusgenerlsa
$id = $winconn->repeat(200,=> \&be);
if (!-e "/usr/share/gprsec/scripts/run") {
hiba (lancolas($cl[18])); #Nem tallom a kapcsoldsi szkriptet!\nAdd meg a telefonod tpust!
return;
}
if (!-e "/usr/share/gprsec/log/EasyConn.config") {
hiba (lancolas($cl[66])); #Nincs configurcis llomny!\nEllen?rizd a belltsaid!
return;
}
open (FILE, "</usr/share/gprsec/log/EasyConn.config");
$sor=<FILE>;
@temp=split /\:/, $sor;
$temp_sor=@temp;

if ($connconf) {
$connconf->destroy;
}
$buttonx->configure (state=> disabled);
$button ->configure (-state=> disabled);

# a pppd szkript futtatsa
# az tirnyts egy kis csals ;-) ezzel knyszerl bele a read2.pl az indulsra, s egyben a pppd "alatt" fut.
$run="/usr/sbin/pppd file /usr/share/gprsec/scripts/run | /usr/sbin/read2.pl";

$SIG{INT} = sub {wait};
socketpair (PARENT, CHILD, PF_UNIX, SOCKET_STREAM, 0);
if ($pid=fork()) {
	close PARENT;
	select CHILD;
	$|=1;
	select STDOUT;
} elsif (defined $pid) {
	open (STDIN, ">&PARENT");
	open (STDOUT, ">&PARENT");
	close PARENT;
	select STDOUT;
	$|=1;
	exec ("$run");
	exit;
	}
if ($reconn_on) {
$id_disc = $winconn->repeat(200,=> \&ujrakapcs_figy);
}
$disconn->configure (-state => 'normal');
}

# kapcsolat megszaktsa
sub diskonnect {
$buttonx->configure (state=> 'normal');
#$veger=$winconn->Label(fg=>'red', width=>50, height=>5)->pack(); # tartalk egyb echoknak
# shell paranccsal a futtatott programok pidjeinek meghatrozsa
$pidin=`ps -C read2.pl`;
@ideig=split /\n/,$pidin;
if ($ideig[1]) {
		@elemek=split /\s+/, $ideig[1];
		if (!$elemek[0]) {
		$elemek[0]=$elemek[1];
		}
		$pid_read2=$elemek[0];
		`kill $pid_read2`;
		}
prgskill();
sub prgskill {
$pidin=`ps -C chat`;
@ideig=split /\n/,$pidin;
if ($ideig[1]) {
		@elemek=split /\s+/, $ideig[1];
		if (!$elemek[0]) {
		$elemek[0]=$elemek[1];
		}
		$pid_chat=$elemek[0];
		`kill -s SIGKILL $pid_chat`;
		}
$pidin=`ps -C pppd`;
@ideig=split /\n/,$pidin;
if ($ideig[1]) {
		@elemek=split /\s+/, $ideig[1];
		if (!$elemek[0]) {
		$elemek[0]=$elemek[1];
		}
		$pid_pppd=$elemek[0];
		`kill -s SIGINT $pid_pppd`;
		}

$button ->configure (-state=> 'normal');
$disconn->configure (-state => 'disabled');
}

}

# kilps a programbl
sub exit_1 {
diskonnect ();
exit;
}

sub hiba {
if ($hibawin) {
		if ($no_beep !=1) {
		$hibawin->bell;
		}
		$hibawin->focusForce;
		$hibawin->raise();
		$hibawin->deiconify;
		return;
	}
$hibawin=MainWindow->new();
		if ($no_beep !=1) {
		$hibawin->bell;
		}
		
$hibaszoveg=$_[0];
$buttonx ->configure (-state=> normal);
$button ->configure (-state=> normal);
$hibawin->title($cl[11]);
$hszoveg=$hibawin->Label(fg=>'red', text=>"$hibaszoveg")->pack();
$hbutt=$hibawin->Button(text=>"Ok", command=>\&hshut)->pack();
	sub hshut {
	$hibawin->destroy;
	undef $hibawin;
	}
return;
}

sub nincsk {
if (!$phonetype) {
	$felso=$winconn->Label(width=>30, height =>2);
	$felso->configure (font=> [helvetica, 14], text=> lancolas($cl[5])); #Vlaszd ki a mobilod tpust!\n(Bellts men.)
	$felso->configure (-relief =>'raised');
	$felso->configure (-bg =>'white');
	$back->createWindow(200,100, window => $felso);
	}
$also=$winconn->Label(font=>[helvetica, 11, bold], bg=>'white', width=>30, height =>1, bd=>2, relief=>'sunken');
if ($phonetype) {
$also->configure(text=>$phonetype, anchor=>'w');
}
$back->createWindow(115, 200, window=>$also);
}

sub help {
###### Help #########
# ablak ltrehozsa
if ($helpwin) {
		undef $absz;
		undef $abtpart;
		$helpwin->focusForce;
		$helpwin->raise();
		$helpwin->deiconify;
		return;
}

undef $absz;
undef $abtpart;
$helpwin=MainWindow->new();
	$winconn->title ("GPRS Easy Connect v$ver");
$helpwin->maxsize('300','250');
$helpwin->minsize('300','250');
$helpwin->OnDestroy(\sub {undef $absz; undef $hossz; undef $helpwin});

# grafikus fellet
$back1=$helpwin->Canvas(width=>300, height=>250, bg=>'black')->pack();

# httrkp
$back1->createImage(0,125,image=>$pic1, anchor=>'w');
$abx=10;
$aby=20;
$back1->create(text, $abx+2,$aby+2, font=> [utopia, 20, bold, italic],  fill=>"black",text=>"GPRS Easy Connect v$ver",anchor=>'w');
$back1->create(text, $abx+1,$aby, font=> [utopia, 20, bold, italic],  fill=>"#898989",text=>"GPRS Easy Connect v$ver",anchor=>'w');
$back1->create(text, $abx-1,$aby, font=> [utopia, 20, bold, italic],  fill=>"#898989",text=>"GPRS Easy Connect v$ver",anchor=>'w');
$back1->create(text, $abx,$aby+1, font=> [utopia, 20, bold, italic],  fill=>"#898989",text=>"GPRS Easy Connect v$ver",anchor=>'w');
$back1->create(text, $abx,$aby-1, font=> [utopia, 20, bold, italic],  fill=>"#898989",text=>"GPRS Easy Connect v$ver",anchor=>'w');
$back1->create(text, $abx,$aby, font=> [utopia, 20, bold, italic],  fill=>"#fffa00",text=>"GPRS Easy Connect v$ver",anchor=>'w');

$_=$sel_lang;
if (!/magyar/) {
$abtext="The GPRS Easy Connect is a unique\nprogram which can help you to make\nthe GPRS Internet connection by\nthe easiest way.\nThis program supports the most\nphones & providers of the world.\nThis program is free and \ncome under the GNU LICENSE.\n\nHave a lot of fun with this!\n\nPter Simon     &     Gbor Pintr ";
} else {
$abtext="A GPRS Easy Connect egy klnleges\nprogram, ami segt a GPRS Internet\nkapcsolat felptsben a legegyszerbb\nmdon.\nEz a program tmogatja a vilgon\nlegtbb telefont s szolgltatt.\nA program szabad termk\ns a GNU LICENSE al esik.\n\nKellemes hasznlatot!\n\nSimon Pter   s   Pintr Gbor ";
}
$hossz= (length $abtext)+1;


$absz=1;
while ($absz<$hossz) {
	$abtpart= substr $abtext, 0 , $absz;
	$back1->create(text, $abx+1,$aby+26,font=> [helvetica, 12, bold],fill=>"#e2e2e0", text=>"$abtpart",anchor=>'nw');
	$_=substr $abtext, $absz , 1;
	if ($_ ne " ") {
	$back1->after (25);
	}
	$helpwin->update;
	$absz++;
	}
}

##################################
# a konfigurcis ablak s elemei
##################################

sub connconf {
read_conf();
# az apn rtkek definilsa
if (-e "/usr/share/gprsec/scripts/apn") {
	open (FILE, "</usr/share/gprsec/scripts/apn");
	while ($sor=<FILE>) {
	@apn_tomb=split/\t/,$sor;
	foreach (@apn_tomb) {chomp $_}
		if (!$apn_tomb[2]) {$apn_tomb[2]="???"}
		if (!$apn_tomb[3]) {$apn_tomb[3]="???"}
		$apn_tomb[2]=~s /\(\*\)/anything/;
		$apn_tomb[3]=~s /\(\*\)/anything/;
		$apn_tomb[2]=~s /\(\*{2}\)//;
		$apn_tomb[3]=~s /\(\*{2}\)//;
		$apn_tomb[2]=~s /\(\*{3}\)/lancolas($cl[87])/e;
		$apn_tomb[3]=~s /\(\*{3}\)/lancolas($cl[87])/e;
		$apn_tomb[2]=~s /\(\*{4}\)/lancolas($cl[87])/e;
		$apn_tomb[3]=~s /\(\*{4}\)/lancolas($cl[87])/e;
	$szolg_apn{$apn_tomb[0]}[1]=$apn_tomb[1]; #apn
	$szolg_apn{$apn_tomb[0]}[2]=$apn_tomb[2]; #username
	$szolg_apn{$apn_tomb[0]}[3]=$apn_tomb[3]; #password
	$szolg_apn{$apn_tomb[0]}[4]=$apn_tomb[4]; #dns1
	$szolg_apn{$apn_tomb[0]}[5]=$apn_tomb[5]; #dns2
	}
}


last_conn_rm ();

	if ($connconf) {
		$connconf->focusForce;
		$connconf->raise();
		$connconf->deiconify;
		return;
	}
$connconf=MainWindow->new();
	$connconf->title (lancolas($cl[10],"$ver ")); #bellts
$connconf->OnDestroy(\sub {undef $connconf});

# menrendszer
$conf_menubar = $connconf->Menu(-type => 'menubar');
$menu_items = $conf_menubar->cascade(-label => lancolas($cl[82]), -tearoff => 0);
$connconf->configure(-menu => $conf_menubar);
$menu_items->command(-label => lancolas($cl[6]), -command => \&font_t_sub); # fontos tudnivalk
$menu_items->command(-label => lancolas($cl[68]), -command => \&keszit); # kszt?k
$menu_items->command(-label => lancolas($cl[88]), -command => \&history); # trtnet
$menu_items->separator;
$menu_items->command(-foreground=>'red',
	    -activebackground=>'red',
	    -activeforeground=>'white',
	    -label => lancolas($cl[19]), #statisztikai adatok trlse
	    -command => \&st_c);

$menu_items->separator;
$menu_items->command(-label => lancolas($cl[83]), -command => sub {[$connconf->destroy, undef $connconf]});

$j_up=$connconf->Label()->pack(side=>'top');
$j_down=$connconf->Label()->pack(side=>'bottom');
$jj_up=$j_down->Frame()->pack(side=>'top');
$jj_down=$j_down->Frame()->pack(side=>'bottom');
$jobb_bal_frame=$jj_up->LabFrame(-label=>lancolas($cl[75]), -labelside => "acrosstop", bd=>4)->pack(side=>'left', anchor=>'n'); #Ktelez? paramterek
$jobb_jobb_frame_egesz=$jj_up->Frame()->pack(side=>'right', anchor=>'n');
$jobb_jobb_frame=$jobb_jobb_frame_egesz->LabFrame(-label=>lancolas($cl[76]), -labelside => "acrosstop", bd=>4)->pack(side=>'left', anchor=>'n'); #Vlaszthat paramterek
$jobb_jobb_frame_bott=$jobb_jobb_frame_egesz->Frame()->pack(side=>"right", anchor=>'n');
$jobb_jobb_frame_bott_top=$jobb_jobb_frame_bott->LabFrame(-label=>lancolas($cl[79]), -labelside => "acrosstop", bd=>4)->pack(side=>'top', anchor=>'n'); #ritka
$jobb_jobb_frame_bott_bott=$jobb_jobb_frame_bott->LabFrame(-label=>lancolas($cl[111]), -labelside => "acrosstop", bd=>4)->pack(side=>'top', anchor=>'n'); #Limitfigyels

$noalways = $j_up->Label(fg=>'red', text=>lancolas($cl[65]))->pack();#fontos tudni


# a telefon kivlasztsa
$tel_duma=$jobb_bal_frame->Label(fg=>'blue', text=>lancolas($cl[74]))->pack(anchor=>"w"); #Add meg a tel. tp.
$b2 = $jobb_bal_frame->Balloon(bg=>'yellow');
$b2->attach($tel_duma,-msg => lancolas($cl[108]));
# a browseEntry felsorolsban a telefonok
$tel_sz = $jobb_bal_frame->BrowseEntry( -variable => \$phonetype, , command=>\&othernumb, -width =>30);
$tel_sz->pack(anchor=>"w");


sub othernumb {
$spec_tel->delete ('0.0','end');
undef $other_numb;
}

foreach (sort @telcsik) {
    $tel_sz->insert("end", $_);
}


# szolgltat belltsai
$szolg_duma=$jobb_bal_frame->Label(fg=>'blue', text=>lancolas($cl[61]))->pack(anchor=>"w"); #Vlaszd ki a szolgltatd!
# a browseEntry felsorolsban a szolgltatk
$szolg_sz = $jobb_bal_frame->BrowseEntry( -variable => \$sel_szolg, -width =>30, -command=>\&user_pass);
    $szolg_sz->pack(anchor=>"w");
foreach $tempszolg (sort keys %szolg_apn) {
    $szolg_sz->insert("end", $tempszolg);
}

#felhasznlnv
$user_name = $jobb_bal_frame->Label(fg=>'blue', text=>lancolas($cl[63]))->pack(anchor=>"w");#Felhasznl nv:
$b3 = $jobb_bal_frame->Balloon(bg=>'yellow');
$b3->attach($user_name,-msg => lancolas($cl[98]));
$user_name_v= $jobb_bal_frame->Entry()->pack(anchor=>"w");
$user_name_v->insert('end', $user);
#jelsz
$pass_w = $jobb_bal_frame->Label(fg=>'blue', text=>lancolas($cl[64]))->pack(anchor=>"w");#jelsz
$b4 = $jobb_bal_frame->Balloon(bg=>'yellow');
$b4->attach($pass_w,-msg => lancolas($cl[99]));
$pass_w_v= $jobb_bal_frame->Entry()->pack(anchor=>"w");
$pass_w_v->insert('end', $passw);

sub user_pass {
$user=$szolg_apn{$sel_szolg}[2];
$passw=$szolg_apn{$sel_szolg}[3];
$user_name_v->delete ('0.0','end');
$pass_w_v->delete ('0.0','end');
$user_name_v->insert('end', $user);
$pass_w_v->insert('end', $passw);

nulldns ();
}



# nyelvi belltsok
$lang_duma=$jobb_bal_frame->Label(fg=>'blue', text=>lancolas($cl[54]))->pack(anchor=>"w"); #Vlaszd ki a nyelvezetet!
# a browseEntry felsorolsban a nyelvek
$lang_sz = $jobb_bal_frame->BrowseEntry( -variable => \$sel_lang);
    $lang_sz->pack(anchor=>"w");

undef @van_lang;
# a knyvtrban tallhat nyelvek meghatrozsa
@langs=`ls -A /usr/share/gprsec/languages/`;
foreach (@langs) {
	chomp $_;
	if (!/_/) {
		push (@van_lang, $_);
	}
}

foreach (sort @van_lang) {
    $lang_sz->insert("end", $_);
}

$figy2=$jobb_bal_frame->Label(fg=>'blue', text=>lancolas($cl[8]))->pack(anchor=>"w"); #\nVlaszd ki a csatlakozsi portod!

%ports=("COM1", "/dev/ttyS0",  "COM2", "/dev/ttyS1",  "IrDA", "/dev/ircomm0",  "USB0(ttyUSB0)", "/dev/usb/ttyUSB0", "USB(ttyACM0)", "/dev/usb/ttyACM0", "Bluetooth", "/dev/rfcomm0");

# a browseEntry felsorolsban a portok
$rad = $jobb_bal_frame->BrowseEntry( -variable => \$kivp);
    $rad->pack(anchor=>"w");

foreach (sort qw/COM1 COM2 IrDA USB0(ttyUSB0) Bluetooth USB(ttyACM0)/) {
    $rad->insert("end", $_);
}

if ($din_eng ne "0") {$din_eng=1}
if ($din_eng eq "1") {undef $dns1; undef $dns2}

$din_dns_sz=$jobb_bal_frame->Checkbutton(fg=>'blue', text=>lancolas($cl[78]), -variable => \$din_eng, -command=>\&dns12)->pack(anchor=>"w"); #A szolgltatd engedlyezi a DNS-t?
$din_dns_root=$jobb_bal_frame->Label(text=>lancolas($cl[86]))->pack(anchor=>"c"); #Root jogosultsg szksges!
#dns1
$dns1_sz1 = $jobb_bal_frame->Label(fg=>'blue', text=>"DNS 1")->pack(anchor=>"w");
$b6 = $jobb_bal_frame->Balloon(bg=>'yellow');
$b6->attach($dns1_sz1,-msg => lancolas($cl[100]));
$dns1_e1= $jobb_bal_frame->Entry()->pack(anchor=>"w");
$dns1_e1->insert('end', $dns1);
#dns2
$dns1_sz2 = $jobb_bal_frame->Label(fg=>'blue', text=>"DNS 2")->pack(anchor=>"w");
$b7 = $jobb_bal_frame->Balloon(bg=>'yellow');
$b7->attach($dns1_sz2,-msg => lancolas($cl[100]));
$dns1_e2= $jobb_bal_frame->Entry()->pack(anchor=>"w");
$dns1_e2->insert('end', $dns2);
if ($kivagy ne "root" && $din_eng==1) {
	$dns1_e1->configure(state=>"disabled");
	$dns1_e2->configure(state=>"disabled");
	$din_dns_sz->configure(state=>"disabled");
}


sub dns12 {


if ($kivagy ne "root" && $din_eng==1) {
$din_dns_sz->configure(state=>"disabled");
nulldns ();
return;
}
if ($din_eng==0) {
engdns ();
return;
}

if ($din_eng==1) {
nulldns ();
return;
}
}

sub nulldns {

	undef $dns1;
	undef $dns2;
	$dns1_e1->configure(state=>"normal");
	$dns1_e2->configure(state=>"normal");
	$dns1_e1->delete ('0.0','end');
	$dns1_e1->insert('end', $dns1);
	$dns1_e2->delete ('0.0','end');
	$dns1_e2->insert('end', $dns2);

if ($kivagy eq "root" && $din_eng==0) {
	engdns ();
}
if ($kivagy ne "root" && $din_eng==0) {
	$dns1_e1->configure(state=>"disabled");
	$dns1_e2->configure(state=>"disabled");
	$din_dns_sz->configure(state=>"disabled");
	$din_eng=1;
}
}


sub engdns {
	$dns1_e1->configure(state=>"normal");
	$dns1_e2->configure(state=>"normal");
	$dns1_sz1->configure(fg=>"blue");
	$dns1_sz2->configure(fg=>"blue");
	$dns1=$szolg_apn{$sel_szolg}[4];
	$dns2=$szolg_apn{$sel_szolg}[5];
	if (!$dns1 && !$dns2) {
		$dns1="???.???.???";
		$dns2="???.???.???";
	}
	$dns1_e1->delete ('0.0','end');
	$dns1_e1->insert('end', $dns1);
	$dns1_e2->delete ('0.0','end');
	$dns1_e2->insert('end', $dns2);
}


$panel_sz=$jobb_jobb_frame->Label(fg=>'blue', text=>lancolas($cl[12]))->pack(anchor=>"w"); #\nA sikeres kapcsolds utn...:
$cw_ic_sz=$jobb_jobb_frame->Checkbutton(text=>lancolas($cl[59]), #Az EasyConn ablak ikonizlsa.
				   -variable => \$cw_ic)->pack(anchor=>"w");
$panel_on_co=$jobb_jobb_frame->Checkbutton(text=>lancolas($cl[15]), #A Kapcsolds ablak ikonizlsa.
				   -variable => \$co_pan)->pack(anchor=>"w");
$b_sz=$jobb_jobb_frame->Label(fg=>'blue', text=>lancolas($cl[13]))->pack(side=>'top', anchor=>"w"); #Kapcsolds utn a kvetkez? bngsz? indtsa:
$b8 = $jobb_jobb_frame->Balloon(bg=>'yellow');
$b8->attach($b_sz,-msg => lancolas($cl[103]));
# a browseEntry felsorolsban a bngsz?k

$box2 = $jobb_jobb_frame->BrowseEntry( -variable => \$brow);
    $box2->pack(anchor=>"w");
foreach (sort qw/-- mozilla opera galeon konqueror netscape lynx links/) {
    $box2->insert("end", $_);
}

$reconn_sz=$jobb_jobb_frame->Label(fg=>'blue', text=>lancolas($cl[56])." (sec) ?")->pack(anchor=>"w"); #jrakapcsolds
# a browseEntry felsorolsban az jrakapcsolds
$box3 = $jobb_jobb_frame->BrowseEntry( -variable => \$reconn_on, command=>\&en_dis_bg_rec);
    $box3->pack(anchor=>"w");
foreach (qw/-- 5 10 15 20 25 30 35 40 45 50 55 60/) {
    $box3->insert("end", $_);
}

$rec_db_sz=$jobb_jobb_frame->Label(text=>lancolas($cl[94]))->pack(anchor=>"w"); #jrakapcs. db
$rec_db_scale = $jobb_jobb_frame->Scale(qw/-orient horizontal -length 200 -from 3 -to 20
   			 	      -resolution 1 -sliderlength  20 -command/ => \&reconn_db_meghat);
$rec_db_scale->set($reconn_db);
$rec_db_scale->pack(qw/-expand yes -anchor w/);

sub reconn_db_meghat {
($reconn_db) =@_;
}


$bg_rec_sz=$jobb_jobb_frame->Checkbutton(text=>lancolas($cl[90]),-variable => \$bg_rec)->pack(anchor=>'w'); #jrakapcsolds a httrben
$b9 = $jobb_jobb_frame->Balloon(bg=>'yellow');
$b9->attach($bg_rec_sz,-msg => lancolas($cl[104]));

en_dis_bg_rec ();

sub en_dis_bg_rec {
if ($reconn_on && $reconn_on ne "--") {
	$bg_rec_sz->configure(state=>'normal');
	$rec_db_scale->configure(state=>'normal');
	$rec_db_sz->configure(fg=>'black');
} else {
	$bg_rec_sz->configure(state=>'disable');
	$rec_db_scale->configure(state=>'disable');
	$rec_db_sz->configure(fg=>'gray');
	undef $bg_rec;
	}
}
if (!$idores){$idores=50}

$cikl_seb_sz=$jobb_jobb_frame->Label(fg=>'blue', text=>lancolas($cl[77]))->pack(anchor=>"w"); #Kapcsolatfelpts figyelsnek id?rse (ms):
$b10 = $jobb_jobb_frame->Balloon(bg=>'yellow');
$b10->attach($cikl_seb_sz,-msg => lancolas($cl[102]));
$idres_scale = $jobb_jobb_frame->Scale(qw/-orient horizontal -length 200 -from 30 -to 2020
   			 	      -resolution 50 -sliderlength  20 -command/ => \&idores_meghat);
$idres_scale->set($idores);
$idres_scale->pack(qw/-expand yes -anchor w/);

sub idores_meghat {
($idores) =@_;
}

$auto_csat_sz=$jobb_jobb_frame->Label(fg=>'blue', text=>lancolas($cl[7]))->pack(anchor=>"w"); #A program indtsa utn...
$auto_csat_cs=$jobb_jobb_frame->Checkbutton(text=>lancolas($cl[17]),-variable => \$autocsat, command=>\&aut_save)->pack(anchor=>'w'); #automatikus csatlakozs

$kajli_y=$jobb_jobb_frame->Label()->pack();
$silent=$jobb_jobb_frame->Checkbutton(fg=>'blue', text=>lancolas($cl[89]),-variable => \$no_beep)->pack(anchor=>'w'); #Hangjelzsek tiltsa

$spec_tel_sz=$jobb_jobb_frame_bott_top->Label(fg=>'blue', text=>lancolas($cl[106]))->pack(anchor=>"w");#Egyedi telefonszm
$b12 = $jobb_jobb_frame_bott_top->Balloon(bg=>'yellow');
$b12->attach($spec_tel_sz,-msg => lancolas($cl[107]));
$spec_tel= $jobb_jobb_frame_bott_top->Entry()->pack(anchor=>"w");
$spec_tel->insert('end', $other_numb);

# ha mg nincs belltott cid, akkor az alaprtelmezett az alap
@cidtomb=("--", 1..10);
# a browseEntry felsorolsban a CID-ek
$cid_sz=$jobb_jobb_frame_bott_top->Label(fg=>'blue', text=>lancolas($cl[81]))->pack(anchor=>"w"); #Egyedi CID rtk belltsa:
$b13 = $jobb_jobb_frame_bott_top->Balloon(bg=>'yellow');
$b13->attach($cid_sz,-msg => lancolas($cl[97]));

$box4 = $jobb_jobb_frame_bott_top->BrowseEntry( -variable => \$cid);
    $box4->pack(anchor=>"w");
foreach (@cidtomb) { #Alaprtelmezett
    $box4->insert("end", $_);
}

$kajli4x=$jobb_jobb_frame_bott_top->Label()->pack();
$no_cgq_sz=$jobb_jobb_frame_bott_top->Checkbutton(fg=>'blue', text=>lancolas($cl[95]),-variable => \$no_cgq)->pack(anchor=>'w'); #CGQ tilts
$b14 = $jobb_jobb_frame_bott_top->Balloon(bg=>'yellow');
$b14->attach($no_cgq_sz,-msg => lancolas($cl[96]));

# limitfigyels elemei
@honapnapjai=("--", 1..31);
# a browseEntry felsorolsban a trls napja
$havit_sz=$jobb_jobb_frame_bott_bott->Label(fg=>'blue', text=>lancolas($cl[112]))->pack(anchor=>"w"); #Trls napja
$b15 = $jobb_jobb_frame_bott_bott->Balloon(bg=>'yellow');
$b15->attach($havit_sz,-msg => lancolas($cl[115]));
$box5 = $jobb_jobb_frame_bott_bott->BrowseEntry( -variable => \$havit_v, command=>\&havilimitvan);
    $box5->pack(anchor=>"w");
foreach (@honapnapjai) { #Alaprtelmezett
    $box5->insert("end", $_);
}


$havilimit_sz=$jobb_jobb_frame_bott_bott->Label(fg=>'blue', text=>lancolas($cl[113]))->pack(anchor=>"w"); #Havi max. adatforgalom (GB)
$havilimit= $jobb_jobb_frame_bott_bott->Entry()->pack(anchor=>"w");
$havilimit->insert('end', $havilimit_v);
havilimitvan ();
sub havilimitvan {
	if ($havit_v =~ /\d/) {
		$havilimit->configure(state=>"normal");
		$havilimit_sz->configure(fg=>"blue");
	} else {
		$havilimit->delete('0.0','end');
		$havilimit->configure(state=>"disabled");
		$havilimit_sz->configure(fg=>"gray");
	}
}
$kajli5x=$jobb_jobb_frame_bott_bott->Label()->pack();
$hetilimit_sz=$jobb_jobb_frame_bott_bott->Label(fg=>'blue', text=>lancolas($cl[114]))->pack(anchor=>"w"); #Heti max. adatforgalom (MB)
$b16 = $jobb_jobb_frame_bott_bott->Balloon(bg=>'yellow');
$b16->attach($hetilimit_sz,-msg => lancolas($cl[116]));
$hetilimit= $jobb_jobb_frame_bott_bott->Entry()->pack(anchor=>"w");
$hetilimit->insert('end', $hetilimit_v);



$mentes=$jj_down->Button(bg=>'green', text=>lancolas ($cl[9]), command=>\&reg)->pack(side=>"right"); #Rendben/Adatok mentse
$kajli5=$jj_down->Label(text=>"                  ")->pack(side=>"right");
$ment_cancel=$jj_down->Button(text=>lancolas ($cl[57]), -command => sub {[$connconf->destroy, undef $connconf], winbezar ()})->pack(side=>"right"); #mgse
MainLoop();
} # itt a configurcis ablak vge

sub reg {
winbezar ();
$user=$user_name_v->get;
$passw=$pass_w_v->get;

if (!$reconn_on && $id_disc) {
$id_disc->cancel;
undef $id_disc;
} else {
	if (!$id_disc) {
	$id_disc = $winconn->repeat(50,=> \&ujrakapcs_figy);
	}
}

$sel_szolg_on=$szolg_apn{$sel_szolg}[1];
chomp $sel_szolg_on;
$kivp_on=$ports{$kivp};
$alap=`cat '/usr/share/gprsec/scripts/conn_script'`;


# talakts a filenv formtumra
$phonetype_kiir=$phonetype;
$phonetype_kiir=~tr /A-Z/a-z/;
$phonetype_kiir=~tr / /-/;
# configurcis hiny

if (!$phonetype || !$kivp || !$sel_lang || !$sel_szolg) {
	$osszhiba=$cl[69];
	if (!$phonetype) {
	push (@confhibak, $cl[70]);
	}
	if (!$kivp) {
	push (@confhibak, $cl[71]);
	}
	if (!$sel_lang) {
	push (@confhibak, $cl[72]);
	}
	if (!$sel_szolg) {
	push (@confhibak, $cl[73]);
	}
	foreach (@confhibak) {
	$osszhiba.="\n$_";
	}
	hiba (lancolas($osszhiba));
	undef $osszhiba;
	undef @confhibak;
	return;

}
# a chat szkript kialaktsa
$chat_file=`cat /usr/share/gprsec/scripts/$phonetype_kiir-connect`;
$chat_file=~s /\?\?\?/$sel_szolg_on/e;
	($mp, $perc, $ora, $nap, $honap, $ev)=localtime();
	$honap++;
	$ev+=1900;
	$chatduma="\n# GPRS Easy Connect program ekkor mdostotta: $ev.$honap.$nap\n";
	$chat_file.=$chatduma."\n";

#  cid beptse
if ($cid && $cid ne "--") {
	$chat_file=~s /CGDCONT\=\d+/"CGDCONT\=".$cid/ge;
	$chat_file=~s /CGQREQ\=\d+/"CGQREQ\=".$cid/ge;
	$chat_file=~s /CGQMIN\=\d+/"CGQMIN\=".$cid/ge;
	$chat_file=~s /(\*\d+)(\*+)\d+\#/$1.$2.$cid."#"/ge;
}

# egyedi telcsiszm
$other_numb=$spec_tel->get;
if ($other_numb) {
$chat_file=~s /\*\d+\*+\d+\#/$other_numb/ge;
}

# CGQ tiltsa
if ($no_cgq==1) {
@chat_file_t=split /\n/, $chat_file;
undef $chat_file;
	foreach (@chat_file_t) {
		foreach $ch_temp (qw/ATS0 CGQREQ CGQMIN CGATT/) {
			if (/$ch_temp/) {
			undef $_;
			}
		}
	$ttt++;
	if ($_) {
	$chat_file.=$_."\n";
	}
	}
}


$tempfilename=">/usr/share/gprsec/scripts/chat";
open (FILE, $tempfilename);
chmod 0666, $tempfilename;
print FILE $chat_file;

$conn_sor="\nconnect '/usr/sbin/chat -e -f /usr/share/gprsec/scripts/chat -v'";

$conn_user="\n".$kivp_on;
if (!$user) {
$user="unknown";
}

if (!$passw) {
$passw="unknown";
}

$egyben=$alap.$conn_sor.$conn_user."\nuser $user"."\npassword $passw";

# a statikus dns balltsa
$dns1=$dns1_e1->get;
$dns2=$dns1_e2->get;

if ($kivagy eq "root" && $dns1 && !$din_eng) {

	$res_file="search localdomain\n\nnameserver $dns1\nnameserver $dns2\n";
	open (FILE, ">/etc/resolv.conf");
	print FILE $res_file;
	close FILE;
}

if ($din_eng) {
	$egyben.="\nusepeerdns";
}

$tempfilename=">/usr/share/gprsec/scripts/run";
open (FILE, $tempfilename);
chmod 0666, $tempfilename;
print FILE $egyben;

# jrakapcsoldsi adat belltsa
if (!$reconn_on || $reconn_on eq "--") {
undef $reconn_on;
}

# bngsz?indtsai adat belltsa
if ($brow eq "--" or !$brow) {
$br_on=0;
$brow="";
} else {$br_on=1}
if (!$reg_time) {
($mp, $perc, $ora, $nap, $honap, $ev)=localtime();
$honap++;
$ev+=1900;
$reg_time=" $ev/$honap/$nap $ora;$perc";
}
# spec. cid kirtkels
if ($cid eq "--") {undef $cid}

$havilimit_v=$havilimit->get;
$hetilimit_v=$hetilimit->get;
$havilimit_v=~s /\,/\./;
$hetilimit_v=~s /\,/\./;

$tempfilename=">/usr/share/gprsec/log/EasyConn.config";
open (FILE, $tempfilename);
chmod 0666, $tempfilename;
#           telcsi      port  EC icon browser yes autocsat?  nyelv     konnet icon szolg felh  jelsz  ujrakapcs
print FILE "$phonetype:$kivp:$co_pan:$brow:$br_on:$autocsat:$sel_lang:$cw_ic:$sel_szolg:$user:$passw:$reconn_on:$idores:$reg_time:$din_eng:$cid:$dns1:$dns2:$no_beep:$bg_rec:$reconn_db:$no_cgq:$other_numb:$havit_v:$havilimit_v:$hetilimit_v:$honap\n";
close FILE;

undef $c;
undef $qss;
undef $kivp;
undef $kivp_on;
undef $egyben;
undef $conn_sor;
undef $conn_user;
undef $alap;
undef $ss;
undef $ssa;
undef @rad;
undef $qsa;
undef @nyelv;
undef @cl;
undef %ports;
undef $cw_ic;
undef $sel_szolg;
undef $user;
undef $passw;
undef $chat_file;
undef $reconn_on;
undef $idores;
undef $reg_time;
undef $din_eng;
undef $cid;
undef $dns1;
undef $dns2;
undef $no_beep;
undef $bg_rec;
undef $reconn_db;
undef $no_cgq;
undef $other_numb;
undef @van_lang;
undef $havit_v;
undef $havilimit_v;
undef $hetilimit_v;
undef $honap;

$connconf->destroy;
$winconn->destroy;
read_conf ();
nyelvbeolv ();
foablak ();
}

sub st_c {
# trlsek ablaka
if ($delwin) {
		$delwin->focusForce;
		$delwin->raise();
		$delwin->deiconify;
		return;
}
$delwin=MainWindow->new();
$delwin->title(lancolas($cl[119]));
$delwin->OnDestroy(\sub {undef $delwin});
$delad[1]=$delwin->Checkbutton(fg=>'blue', text=>lancolas($cl[120]),-variable => \$delhavi)->pack(anchor=>'w'); #Havi adatforgalom trlse
$delad[2]=$delwin->Checkbutton(fg=>'blue', text=>lancolas($cl[121]),-variable => \$delheti)->pack(anchor=>'w'); #Heti adatforgalom trlse
$delad[3]=$delwin->Checkbutton(fg=>'blue', text=>lancolas($cl[122]),-variable => \$del5perc)->pack(anchor=>'w'); #tperces tlagok trlse
$delad[4]=$delwin->Checkbutton(fg=>'blue', text=>lancolas($cl[123]),-variable => \$delido)->pack(anchor=>'w'); #Forgalmi id? trlse

$ment_yes=$delwin->Button(text=>lancolas ($cl[93]), -command => \&delsub)->pack(side=>"left"); #Rendben
$del_cancel=$delwin->Button(text=>lancolas ($cl[57]), -command => sub {[$delwin->destroy, undef $delwin]})->pack(side=>"right"); #mgse
sub delsub {
		# adatforgalmak trlse
		if ($delhavi) {
			foreach (qw/osszb_fel osszb_le/) {
				if (-e "/usr/share/gprsec/log/$_") {
				`rm '/usr/share/gprsec/log/$_'`;
				}
			}
			# a statisztikai adatok rgztsnek kezdete
			open (FILE, "</usr/share/gprsec/log/EasyConn.config");
			$sor=<FILE>;
			@temp=split /\:/, $sor;
			close FILE;
			($mp, $perc, $ora, $nap, $honap, $ev)=localtime();
			$honap++;
			$ev+=1900;
			$temp[13]="  $ev/$honap/$nap $ora;$perc";
			
			$tempfilename=">/usr/share/gprsec/log/EasyConn.config";
			open (FILE, $tempfilename);
			chmod 0666, $tempfilename;
			print FILE "$temp[0]:$temp[1]:$temp[2]:$temp[3]:$temp[4]:$temp[5]:$temp[6]:$temp[7]:$temp[8]:$temp[9]:$temp[10]:$temp[11]:$temp[12]:$temp[13]:$temp[14]:$temp[15]:$temp[16]:$temp[17]:$temp[18]:$temp[19]:$temp[20]:$temp[21]:$temp[22]:$temp[23]:$temp[24]:$temp[25]:$temp[26]\n";
			close FILE;
		}
		# heti adatok trlse
		if ($delheti) {
			foreach (qw/7d.dir 7d.pag/) {
				if (-e "/usr/share/gprsec/log/$_") {
				`rm '/usr/share/gprsec/log/$_'`;
				}
			}
		}
		#a pillanatnyi letltsek 5 perces tlagainak trlse
		if ($del5perc) {
			if (-e "/usr/share/gprsec/log/sp_stat") {
			$tempfilename=">/usr/share/gprsec/log/sp_stat";
			open (FILE, $tempfilename);
			chmod 0666, $tempfilename;
			for ($x=1; $x<=288; $x++) {
				print FILE "$x\:\:\:\n";
			}
			close FILE;
			}
		}
		# idszmlls trlse
		if ($delido) {
			if (-e "/usr/share/gprsec/log/ossz_ido") {
				`rm '/usr/share/gprsec/log/ossz_ido'`;
			}
		}
	$delwin->destroy;
	undef $delwin;
	read_conf ();
	}
MainLoop();
}

sub font_t_sub {
if ($fontwin) {
		$fontwin->focusForce;
		$fontwin->raise();
		$fontwin->deiconify;
		return;
}
$fontwin=MainWindow->new();

$fontwin->OnDestroy(\sub {undef $fontwin});
$font_text_path="/usr/share/gprsec/languages/".$sel_lang."_imp";
if (-e "$font_text_path") {
$font_text=`cat $font_text_path`;
}
$fontwin->title (lancolas($cl[16])); #Fontos tudnivalk
$figy=$fontwin->Label(justify=>'left', fg=>'red', text=>lancolas($cl[6]))->pack(); #Fontos tudnivalk
$figy1=$fontwin->Label(justify=>'left', text=>lancolas($font_text))->pack(); #a kapcsolds el?tt nagy val...
}

sub aut_save {
open (FILE, "</usr/share/gprsec/log/EasyConn.config");
$sor=<FILE>;
@temp=split /\:/, $sor;
close FILE;
$temp[5]=$autocsat;
$tempfilename=">/usr/share/gprsec/log/EasyConn.config";
open (FILE, $tempfilename);
chmod 0666, $tempfilename;
print FILE "$temp[0]:$temp[1]:$temp[2]:$temp[3]:$temp[4]:$temp[5]:$temp[6]:$temp[7]:$temp[8]:$temp[9]:$temp[10]:$temp[11]:$temp[12]:$temp[13]:$temp[14]:$temp[15]:$temp[16]:$temp[17]:$temp[18]:$temp[19]:$temp[20]:$temp[21]:$temp[22]:$temp[23]:$temp[24]:$temp[25]:$temp[26]\n";
close FILE;
}

sub nyelvbeolv {
# nyelvi adatok beolvassa
$cl[0]=" ";
open (FILE, "</usr/share/gprsec/languages/$sel_lang");
	binmode FILE;
	while ($sor=<FILE>) {
	chomp $sor;
	$sor=~s /\\n/\n/g;
	binmode $sor;
	push (@cl, $sor);
	}
}


sub lancolas {
# a szvegkkirats szubrutinja
undef $kirak;
undef $po;
@l_temp=split /\*\*\*/, $_[0];
	foreach (@l_temp) {
	$po++;
	$kirak.="$_$_[$po]";

	}
	if (!$kirak) {$kirak="(No translated yet!)"}
	return $kirak;
}

sub foablak {

##############################
# fablak ltrehozsa
###############################


$winconn=MainWindow->new();
	$winconn->title ("GPRS Easy Connect v$ver");
$winconn->maxsize('400','300');
$winconn->minsize('400','300');
$winconn->appname("fo");

# grafikus fellet
$back=$winconn->Canvas(width=>400, height=>300)->pack();

# httrkp
$pic=$winconn->Photo(-file=> '/usr/share/gprsec/images/ind.gif');
$back->createImage(200,150,image=>$pic);

# verziszm + dobott rnyk
$back->create(text, 10,21, font=> [utopia, 20, bold, italic], fill=>"#353535",text=>"GPRS Easy Connect v$ver" ,anchor=>'w');
$back->create(text, 9,20, font=> [utopia, 20, bold, italic],  fill=>"#a01e1e",text=>"GPRS Easy Connect v$ver",anchor=>'w');

# perl logo+szveg
$teve=$winconn->Photo(-file=> '/usr/share/gprsec/images/perl.xpm');
$back->createImage(350,75,image=>$teve);
$back->create(text, 350,25, justify=>'center', text=>"Programmed in\nPerl 5.008\n(Tk800.023)");

$adv_sc=$winconn->Label(font=>[helvetica, 11, bold], bg=>"#abd173", width=>35, height =>4, bd=>2, relief=>'sunken');
$adv_sc->configure(anchor=>'w', text=>$sc_s);
$back->createWindow(135, 90, window=>$adv_sc);


# kapcsolds nyomgomb kialaktsa
$button=$winconn->Button (text =>"$cl[1]", #Csatlakozs
                          command=>\&last_conn_rm_konn,
			    bg=>'#9dea7e',
			  -activebackground=>'#d4fcc2',
	    		   );  # a konnekt sub hvsa
$back->createWindow(75, 150, window=>$button);

nincsk ();

$prov_name=$winconn->Label(font=>[helvetica, 11, bold], bg=>'white', width=>30, height =>1, bd=>2, relief=>'sunken');
$prov_name->configure(text=>$sel_szolg, anchor=>'w');
$back->createWindow(115, 235, window=>$prov_name);

# megszakts
$disconn=$winconn->Button (state=> disabled);
$disconn->configure (-bg=>'red', text =>"$cl[2]",
			-activebackground=>'#ff7777',
			command => \&diskonnect); #megszakts
$back->createWindow(325, 150, window=>$disconn);

# help
$help=$winconn->Button(text=>"Info", command => \&help);
$back->createWindow(33, 283, window=>$help);

# config
$buttonx=$winconn->Button (text =>"$cl[3]", command => \&connconf); #EasyConn belltsa.
$back->createWindow(190, 283, window=>$buttonx);

# kilps nyomgomb
$button_out=$winconn->Button (text =>"$cl[4]", command => \&exit_1); #Kilps
$back->createWindow(360, 283, window=>$button_out);


if ($autocsat==1) {
konnect ();
}
}

sub read_conf {
# az elz telcsi beolvassa+config beolvassa
open (FILE, "</usr/share/gprsec/log/EasyConn.config");
$sor=<FILE>;
close FILE;
@spl=split /\:/, $sor;
$phonetype=$spl[0];
$kivp=$spl[1];
$co_pan=$spl[2];
$brow=$spl[3];
$br_on=$spl[4];
$autocsat=$spl[5];
$sel_lang=$spl[6];
$cw_ic=$spl[7];
$sel_szolg=$spl[8];
$user=$spl[9];
$passw=$spl[10];
$reconn_on=$spl[11];
$idores=$spl[12];
$reg_time=$spl[13];
$din_eng=$spl[14];
$cid=$spl[15];
$dns1=$spl[16];
$dns2=$spl[17];
$no_beep=$spl[18];
$bg_rec=$spl[19];
$reconn_db=$spl[20];
$no_cgq=$spl[21];
$other_numb=$spl[22];
$havit_v=$spl[23];
$havilimit_v=$spl[24];
$hetilimit_v=$spl[25];
$honap=$spl[26];
if (!$sel_lang) {
	$sel_lang="english";
	}
if ($reconn_db<3) {
$reconn_db=3;
}
chomp ($honap);
}

# a kapcsolat ltrejttnek figyelse
sub be {
if (-e "/usr/share/gprsec/log/conn.log") {
	$connlog=`cat /usr/share/gprsec/log/conn.log`;
	$_=$connlog;
	if (/Script \/etc\/ppp\/ip-up finished/) {

		if ($cw_ic && $icwas==0){
			$winconn->iconify;
			$icwas=1;
			$id->cancel;
		}

	if ($br_on==1 && !$pid1){
		$SIG{INT} = sub {wait};
		socketpair (PARENT, CHILD, PF_UNIX, SOCKET_STREAM, 0);
		if ($pid1=fork()) {
			close PARENT;
			select CHILD;
			$|=1;
			select STDOUT;
		} elsif (defined $pid1) {
			open (STDIN, ">&PARENT");
			open (STDOUT, ">&PARENT");
			close PARENT;
			select STDOUT;
			$|=1;
			exec ($brow);
			exit;
		}

	}

 }
 }



}

sub last_conn_rm {
# az el?z? conn.log trlse
if (-e "/usr/share/gprsec/log/conn.log") {
	`rm '/usr/share/gprsec/log/conn.log'`;
}
if (-e "/usr/share/gprsec/log/re") {
`rm '/usr/share/gprsec/log/re'`;
}
}

sub last_conn_rm_konn {
undef $reconcount;
last_conn_rm ();
$icwas=0;
konnect ();
}

sub keszit {
# keszt?k ablaka
if ($keszwin) {
	$keszwin->focusForce;
	$keszwin->raise();
	$keszwin->deiconify;
	return;
}
undef $kesz_text;
$keszwin=MainWindow->new();
$keszwin->maxsize('560','250');
$keszwin->minsize('560','250');
$keszwin->OnDestroy(\sub {undef $keszwin});
$keszwin->title (lancolas($cl[68])); #kszt?k

if (-e "/usr/share/gprsec/AUTHORS") {
$kesz_fajl="/usr/share/gprsec/AUTHORS";
$kesz_text=`cat $kesz_fajl`;

$kesz_sz=$keszwin->Text(relief => 'ridge');
				$kesz_sz->configure (-bg =>'Bisque3');

$scroll_5 = $keszwin->Scrollbar(-command => ['yview', $kesz_sz]);
$kesz_sz->configure(-yscrollcommand => ['set', $scroll_5]);
$scroll_5->pack(-side => 'right', -fill => 'y');
$kesz_sz->pack(-side => 'left', -fill => 'both', -expand => 1);
$kesz_sz->insert('end', $kesz_text);




}

MainLoop();
}

sub ujrakapcs_figy {
	if (-e "/usr/share/gprsec/log/disc") {
		ujrakapcs ();
	}
}

sub ujrakapcs {

if ($reconn_on) {
prgskill();
$disconn->configure (-state => 'disabled');
	# a kapcsolat megszakadst jelz? fjl trlse:
	`rm '/usr/share/gprsec/log/disc'`;
	if (-e "/usr/share/gprsec/log/conn.log") {
		`rm '/usr/share/gprsec/log/conn.log'`;
	}
	#jrakapcsolds ablak
	$rewin = MainWindow->new;
	if ($bg_rec==0) {
		$rewin->title(lancolas($cl[56]));
		} else {
		$rewin->title($reconn_on);
		$rewin->iconify;
	}

	$ujrak_time=$reconn_on;
	$ujrcikl = $ujrak_time;
	$countdown1 = $rewin->Label(text=>lancolas($cl[55]))->pack;
	$no_reconn=$rewin->Button(text=>lancolas($cl[57]), command=>\sub {$stop_cd=1, $ujrcikl=0})->pack(side=>'bottom');
	$countdown = $rewin->Label();
	$countdown->pack;
			$greadwinx=$xfele-100;
			$greadwiny=$yfele-100;
			$rewin->geometry("+$greadwinx+$greadwiny");

	while ($ujrcikl>=1) {
    		$rewin->after(1000);
		$ujrcikl--;
    		$countdown->configure(text=>$ujrcikl);
		if ($bg_rec==0) {
		$rewin->title(lancolas($cl[56]));
		} else {
		$rewin->title($ujrcikl);
		}
    		$rewin->update;
    	}
	undef $id_disc;
	$rewin->destroy;
	undef $rewin;
	if ($stop_cd==1) {
		diskonnect ();
		undef $stop_cd;
	} else {
		diskonnect ();
		$tempfilename=">/usr/share/gprsec/log/re";
		open (FILE, $tempfilename);
		chmod 0666, $tempfilename;
		close FILE;
		$reconcount++;
		if ($reconcount>($reconn_db-1)) {
		elegemvan ();
		return;
		}
		konnect ();
		}
	}

}

sub history {
##################
# trtnet ablak #
##################

$his_path="/usr/share/gprsec/history";
if (-e $his_path) {
$his_text=`cat $his_path`;
}

if ($conn_his) {
		$conn_his->focusForce;
		$conn_his->raise();
		$conn_his->deiconify;
		return;
	}
$conn_his=MainWindow->new();
	$conn_his->title (lancolas($cl[88],"$ver ")); #bellts
$conn_his->OnDestroy(\sub {undef $conn_his});

$his_sz=$conn_his->Text(relief => 'ridge', width=> 90,)->pack();
				$his_sz->configure (-bg =>'gray');

$scroll_3 = $conn_his->Scrollbar(-command => ['yview', $his_sz]);
$his_sz->configure(-yscrollcommand => ['set', $scroll_3]);
$scroll_3->pack(-side => 'left', -fill => 'y');
$his_sz->pack(-side => 'left', -fill => 'both', -expand => 1);
$his_sz->insert('end', $his_text);

MainLoop();
}

sub elegemvan {
#######################################
# sok jrakapcsoldsi ksrlet ablaka
#######################################
$reconn_his=MainWindow->new();
	$reconn_his->title (lancolas($cl[91]," $ver ")); #hiba
			$reconn_hisx=$xfele-100;
			$reconn_hisy=$yfele-100;
			$reconn_his->geometry("+$reconn_hisx+$reconn_hisy");
	$reconn_his->configure(bg=>'white');
$h_reconn_sz=$reconn_his->Label(fg=>'red', -relief=>'sunken', -borderwidth=>1, text=>lancolas($cl[92]), bg=>'white')->pack();
$h_reconn_sz=$reconn_his->Button(text=>lancolas($cl[93]), command=>\&izebigyo)->pack();
sub izebigyo {

	$winconn->focusForce;
	$reconn_his->destroy;
	$winconn->raise();
	$winconn->deiconify;

}
diskonnect ();
MainLoop();
}

sub winbezar {
# egyb fut ablakok trlse
if ($conn_his) {
	$conn_his->destroy;
	undef $conn_his;
}
if ($delwin) {
	$delwin->destroy;
	undef $delwin;
}
if ($fontwin) {
	$fontwin->destroy;
	undef $fontwin;
}
if ($keszwin) {
	$keszwin->destroy;
	undef $keszwin;
}
}
