Current File : //usr/tmp/par-6c6566/cache-9ab9fe47781b3f807c8b3ee838b58c73318324f4/inc/script/index.pl
#!/usr/local/bin/perl
#use strict;	# to avoid scope variables errors: useful for developers
$|=1;		# to avoid output buffering
#close STDERR;	# to avoid DBI error output on html with some web servers
&verify_license;
$userid=(getpwuid($>));
%DATABASES=(
  1 => {
    host    =>"localhost",
    port    =>"3306",
    database=>"wcp4",
    user    =>"wcpread",
    password=>"NEidk3"
  },
);
eval "require DBI::DBD";


@characters_not_allowed=qw(
        "
        '
        @
        .
        &
        %
        !
        ?
        /
        \
);

use FileHandle;
use Quota;
use File::Find;
use Fcntl ':flock';
use Expect;
use MIME::Words qw(:all);
use POSIX;
use Config::Crontab;
#$Expect::Debug =1;

use Sys::Hostname;
$hostname = hostname;

$version	=4.0;
$passwd_ftp= "/usr/local/etc/.extraftp";
#$passwd_ftp	= "/var/wcp/admin/.passwd_ftp";
$subdomain_dir="/usr/local/apache/conf/vhost";
chop($os = `uname -rs 2>/dev/null`);
#if($os =~ /^SunOS 5/)   { }
#elsif($os =~ /^Linux 2/) { }
#elsif($os =~ /^BSD\/OS 2/ || $os =~ /^FreeBSD/ || $os =~ /^NetBSD/ || $os =~ /^OpenBSD/) { }
#===============================================
#       HTTP , CGI , DBI , USER subroutines
#===============================================


#require "/usr/local/lib/perl5/site_perl/5.8.0/i86pc-solaris/DBI/DBD.pm";
#require "/var/backend/wcp/data.cgi";
# MAIN #
&input_from_CGI;
&db_connection;
&userinfo($userid);
&env_lang;
&put_HTTP_header;
if ($CGI_INPUT{'help'}) {
  &put_HTML_header_help;
  $subpage="help_".$help;
  &$subpage();
  &put_HTML_footer_help;
} else {
  &put_HTML_header;
  $subpage="page_".$p;
  &$subpage();
  &put_HTML_footer;
}

sub verify_license {
  $auth_hostname="zeus";
  $auth_hostid="008b5058";
  $cur_hostname=`/usr/bin/hostname`;
  $cur_hostid=`/usr/bin/hostid`;
  $cur_hostname=~ s/\n//g;
  $cur_hostid=~ s/\n//g;
  if (($auth_hostname eq $cur_hostname) && ($auth_hostid eq $cur_hostid)){} else {
    print "Content-Type: text/html\n\n";
    print qq|
    <html>
    <head>
    <title>Please purchase the WCP license from CommuniLink.Net</title>
    </head>
    <body bgcolor="#D6D6D6">
    <br><br><center>Please purchase the WCP license from CommuniLink.Net<p>
    <a href="http://www.communilink.net/"><img src="http://www.hit.cx/welcome/logo.gif" alt="" width="96" height="24" border="0"></a>
    </center>
    </body>
    </html>
    |;
    exit;
  }
}

################## data.cgi ###############
sub input_from_CGI {

	my ($name, $value, $elem, @pair, $request);
	
	if ($ENV{REQUEST_METHOD} eq "GET") {
		$request=$ENV{QUERY_STRING};
	} else {
		read( STDIN, $request, $ENV{CONTENT_LENGTH} );
	}
	@pair = split( '&', $request );
	foreach $elem ( @pair ) {
		( $name, $value ) = split( '=', $elem );
		$value   =~ tr/+/ /;
		$name   =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack('c',hex($1))/ge;
		$value =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack('c',hex($1))/ge;
		$CGI_INPUT{$name} = $value;
	}
}

sub db_connection {
	$dsn = "DBI:mysql:database=$DATABASES{'1'}{'database'};host=$DATABASES{'1'}{'host'}";
	$dbh = DBI->connect($dsn, $DATABASES{'1'}{'user'}, $DATABASES{'1'}{'password'}) || error('db_connect',$DBI::errstr);
}

sub userinfo {
    my $user=$_[0];
	my $statement = qq~SELECT * FROM users WHERE usr_cod="$user"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		$user_domain	= $row->{'usr_domain'};
		$user_lang		= $row->{'usr_lang'};
		$user_firstpage	= $row->{'usr_firstpage'};
		$user_mysql		= $row->{'usr_mysql'};
		$user_mysqlspace= $row->{'usr_mysqlspace'};
		$user_extraftp	= $row->{'usr_extraftp'};
		$user_bandwidth	= $row->{'usr_bandwidth'};
		$user_shutdown	= $row->{'usr_shutdown'};
		$user_subdomain	= $row->{'usr_subdomain'};
		$user_reseller  = $row->{'CK_res_cod'};
		$user_aliasdomain = $row->{'usr_aliasdomain'};
	}
	$sth->finish;

	my $statement = qq~SELECT * FROM preference WHERE CK_usr_cod="$user"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		$user_lang		= $row->{'usr_lang'};
		$user_firstpage	= $row->{'usr_firstpage'};
		$user_shutdown	= $row->{'usr_shutdown'};
		$user_empd		= $row->{'usr_empd'};
		$user_mypd		= $row->{'usr_mypd'};
		$usr_webvirus	= $row->{'usr_webvirus'};
		$usr_email 		= $row->{'usr_email'};
		$usr_sitebox	= $row->{'usr_sitebox'};
	}
	$sth->finish;
}

sub resellerinfo {

	if (&check_res_cod($user_reseller) eq "true") {} else {$user_reseller=1;}
	
	my $statement = qq~SELECT * FROM reseller_conf WHERE res_cod="$user_reseller"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		$res_url_com		= $row->{'res_url_com'};
		$res_url_news		= $row->{'res_url_news'};
		$res_url_policy		= $row->{'res_url_policy'};
		$res_url_help		= $row->{'res_url_help'};
		$res_url_contact	= $row->{'res_url_contact'};
		$res_info_com		= $row->{'res_info_com'};
		$res_info_coms		= $row->{'res_info_coms'};
		$res_info_email		= $row->{'res_info_email'};
		$res_txt_impturl_en	= $row->{'res_txt_impturl_en'};
		$res_txt_impturl_big5=$row->{'res_txt_impturl_big5'};
		$res_txt_impturl_gb	= $row->{'res_txt_impturl_gb'};
	}
	$sth->finish;
}

sub env_lang {
	if ($CGI_INPUT{'lang'} eq "big5") {
		$lang="big5";
	} elsif ($CGI_INPUT{'lang'} eq "gb") {
		$lang="gb";
	} elsif ($CGI_INPUT{'lang'} eq "en") {
		$lang="en";
	} else {
		if ($user_lang) {
			$lang=$user_lang;
		} else {
			$lang="en";
		}
	}
}

sub put_HTTP_header {
	print "Content-Type: text/html\n\n";
	&resellerinfo;
	
	if ($CGI_INPUT{'help'} eq "") {
		if ($CGI_INPUT{'p'}) {
			if (&verifyp($CGI_INPUT{'p'})) {
				$p=$CGI_INPUT{'p'};
			} else {
				$p=100;
			}	
		} else {
			if ($user_firstpage) {
				$p=$user_firstpage;
			} else {
				$p=1;
			}
		}
		$help=1;
	} else {
		$help=$CGI_INPUT{'help'};
	}
}

sub put_HTML_header {
	$lang6=&lang(6);
	$lang7=&lang(7);
	my $lang128=&lang(128);
	
	## get the menu list from the database
	if ($lang eq "big5") {
		$charset="big5";
	} elsif ($lang eq "gb") {
		$charset="gb2312";
	} else {
		$charset="iso-8859-1";
	}

	##
	&page2vars($p);
	$menucode = &page2menu($p);

	if(($menucode < 1) or ($menucode > 7)) {
		$menucode = 1;
	}
	$styles_id = $menucode - 1;
	print qq{
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<html>
<head>
<title>WCP5</title>
<meta http-equiv="Content-Type" content="text/html; charset=$charset">
<script src="js/functions.js" type="text/javascript"></script>
<link rel=stylesheet href="css/styles.css" type="text/css" title="CommuniLink Internet">			
	};

	print qq{
   </head>
<body class="content">
<table width="995" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td>
<div class="shadow_mid">
<div class="shadow_topmid">
<div class="shadow_dnmid">
<div class="shadow_lefttop">
<div class="shadow_leftdn">
<div class="shadow_righttop">
<div class="shadow_rightdn">
 
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td align="left" valign="middle">
 
<div class="upper">
 
<!--Banner-->
<div class="banner$styles_id">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
	<tr><td width="160" height="62"><a href="/?p=1&lang=$lang"><img src="images/spaces.gif" width="160" height="62" border="0" /></a></td>
	<td align="right" valign="bottom">
<script> 
<!--
function confirmLogOut(theLink)
{
    var is_confirmed = confirm("$lang128");
	if (is_confirmed) {
        window.close();
    } else {
		return false;
	}
    return false;
} // end of the 'confirmLink()' function
//-->
</script>

	<div class="btn_logout"><a href="#" onclick="javascript:confirmLogOut();"><img src="images/logout.gif" border="0" alt="$lang6"/></a></div>
	<span class="domainname">$user_domain</span></td>
</tr></table>
</div><!--Banner End-->

<!--TopMenu-->
<div class="bg_topmenu">
<div class="topmenu_left">&nbsp;</div>
<div class="parti_topmenu"><img src="images/parti.jpg" /></div>
	};
	
	$statement = qq~SELECT * FROM menu ORDER BY menu_page~;
	$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	while ($row = $sth->fetchrow_hashref) {
		if ($menucode eq "$row->{'menu_cod'}") {
			$menu_color_selected="topmenu$styles_id";
			if ($lang eq "big5") {
				$cur_smenu_item=$row->{'menu_big5'};
			} elsif ($lang eq "gb") {
				$cur_smenu_item=$row->{'menu_gb'};
			} else {
				$cur_smenu_item=$row->{'menu_eng'};
			}
		} else {
			$menu_color_selected="topmenu";
		}
		if ($lang eq "big5") {
			$menu_item=$row->{'menu_big5'};
		} elsif ($lang eq "gb") {
			$menu_item=$row->{'menu_gb'};
		} else {
			$menu_item=$row->{'menu_en'};
		}
		print qq!<div class="$menu_color_selected"><a href="/?p=$row->{'menu_page'}&lang=$lang">$menu_item</a></div><div class="parti_topmenu"><img src="images/parti.jpg" /></div>\n!;
	}
	$sth->finish;

	print qq{
</div><!--TopMenu End-->
	};
	$act=$CGI_INPUT{'act'};
	
	if(($p eq "304") && ($act ne "Overview")) {
		print "";
	} else {
		print qq{
	<table style="clear:both;" width="100%" border="0" cellpadding="0" cellspacing="0">
	<tr><td width="169" align="left" valign="top" class="bg_leftmenu">
 
	<!--LeftMenu-->
	<div class="leftmenu_top">&nbsp;</div>
		};
	
		if($p eq "1") {
			my $lang_txt1=&lang_txt(1);		
			&checkquota_zfs($>); # provide: $DiskQuota, $DiskUsage
			&checkemailoption($user_domain);
			if ($eop_option eq "B") {
				$eop_limit=$eop_limit;
				$eop_used=$eop_used;
			} else {
				$eop_limit="N/A";
				$eop_used="N/A";
			}
			&checkemailaccount($user_domain);
		
			###### prepare the year-month
			($sec,$min,$hour,$day,$month,$year,$day2) = (localtime(time))[0,1,2,3,4,5,6];
			$year += 1900;
			my $mon = $month + 1;	if ($mon < 10) { $mon = "0$mon"; };
			my @ban_data1=&checkbandwidth("$year-$mon","CURRENT");
			($ban1_used, $ban1_limit, $ban1_date) = @ban_data1;
		  
		  $ban1_limit = sprintf("%d",$ban1_limit * 1.024);
		  $ban1_used = sprintf("%d",$ban1_used / 1000 / 1.024);
	
			$lang_txt1 =~ s/\$web_allow/$DiskQuota/g;
			$lang_txt1 =~ s/\$web_used/$DiskUsage/g;
			$lang_txt1 =~ s/\$band_allow/$user_bandwidth/g;
			$lang_txt1 =~ s/\$band_used/$ban1_used/g;
			$lang_txt1 =~ s/\$email_acct_allow/$ema_maxpop/g;
			$lang_txt1 =~ s/\$email_acct_used/$ema_pop/g;
			$lang_txt1 =~ s/\$email_space_allow/$eop_limit/g;
			$lang_txt1 =~ s/\$email_space_used/$eop_used/g;
			$lang_txt1 =~ s/\$lang/$lang/;
			print "$lang_txt1";
		} elsif($p eq "101") {
			print "";
		} else {
			my $value_add_page = 'p407p408p409p410p504p505p506p507p700p701p702p703p704p705p706p707p';
			my $value_add_pic = "";
	
			$menucode=&page2menu($p);
			$smenucode=&page2smenu($p);

			$statement = qq~SELECT * FROM submenu WHERE CK_menu_cod=$menucode ORDER BY smenu_order ASC ~;	
			$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
			$sth->execute || error('db_execute',$dbh->errstr);
			while ($row = $sth->fetchrow_hashref) {
				my $temp_str = "p" . $row->{'smenu_page'} . "p";
				if($value_add_page =~ /$temp_str/) {
					$value_add_pic = '<span class="extra"><img src="images/extra.gif" border="0"/></span>';
				} else {
					$value_add_pic = "";
				}

				if ($smenucode eq "$row->{'smenu_cod'}") {
					$smenu_color_selected='leftmenu_s';
					if ($lang eq "big5") {
						$cur_smenu_item=$row->{'smenu_big5'};
					} elsif ($lang eq "gb") {
						$cur_smenu_item=$row->{'smenu_gb'};
					} else {
						$cur_smenu_item=$row->{'smenu_en'};
					}
				} else {
					$smenu_color_selected='leftmenu';
				}
				if ($lang eq "big5") {
					$smenu_item=$row->{'smenu_big5'};
				} elsif ($lang eq "gb") {
					$smenu_item=$row->{'smenu_gb'};
				} else {
					$smenu_item=$row->{'smenu_en'};
				}
				
				if ($row->{'smenu_page'} >= 700) {
					if($user_reseller eq "1"){
						print qq!<div class="$smenu_color_selected"><a href="/?p=$row->{'smenu_page'}&lang=$lang" class="leftmenu_txt">$smenu_item</a>$value_add_pic</div>\n!;
					} else {
						if (($row->{'smenu_page'} eq 700) || ($row->{'smenu_page'} eq 701)) {
							print qq!<div class="$smenu_color_selected"><a href="/?p=$row->{'smenu_page'}&lang=$lang" class="leftmenu_txt">$smenu_item</a>$value_add_pic</div>\n!;
						}
					}
				} elsif ($row->{'smenu_page'} eq "505") {
					if($user_reseller eq "1"){
						print qq!<div class="$smenu_color_selected"><a href="/?p=$row->{'smenu_page'}&lang=$lang" class="leftmenu_txt">$smenu_item</a>$value_add_pic</div>\n!;
					}
				} else {
					print qq!<div class="$smenu_color_selected"><a href="/?p=$row->{'smenu_page'}&lang=$lang" class="leftmenu_txt">$smenu_item</a>$value_add_pic</div>\n!;
				}
			}
			$sth->finish;
		}
	
		if(($p ne "1") && ($p =~ /^1/)) {
			$cur_smenu_item="";
		}
	
		print qq{
<!--LeftMenu End-->
		};
	
		if($user_reseller eq "1"){
			print qq{ <!--Banner Ad--> <div class="ad"> };
			open (AD, "</var/backend/wcp/wcpbanner.html");
			my @db_lines= <AD>;
			close AD;
			LINE: foreach $db_line (@db_lines) {
			  	print $db_line;
			}
			print qq { </div> };
		}
	
		print qq{
<!--Extra-->
<div class="extrameaning"><img src="images/extra.gif" /> $lang7</div>

</td>

<td width="787" align="left" valign="top">
<div class="content_mid$styles_id"><div class="content_left$styles_id"><div class="content_right$styles_id">
<div>
<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr>
<!--Page Title-->
<td width="39%" valign="top" class="pagetitle">$cur_smenu_item</td>
<!--Date & Time-->
<td width="42%" align="right" valign="bottom" class="datetime">};&print_date;print qq{ HKT</td>
<!--Lan-->
		};
		&lang_button;
		print qq{
</tr></table>
</div>
 
<div class="contentLayout content$styles_id">
<!--Content Start-->

		}
	}
}

sub put_HTML_footer {
	my $year = (localtime(time))[5];
	$year += "1900";
	$lang1=&lang(1);
	$lang2=&lang(2);
	$lang3=&lang(3);
	$lang4=&lang(4);
	$lang5=&lang(5);
	$act=$CGI_INPUT{'act'};
	
	if(($p eq "304") && ($act ne "Overview")) {
		print "";
	} else {
		print qq{
	<!--Content End-->
</div>

</div></div></div>
		};
	}
	
	print qq{
</td></tr></table>
</div><!--upper End-->
</td></tr>
<tr><td>
 
<!--Footer-->
<div class="footer$styles_id footer">
<div class="bottomlinks">
	};

					print qq!<a href="$res_url_com" target="new">$lang1</a><span class="parti">|</span> !;
if ($res_url_news) 	{print qq!<a href="$res_url_news" target="new">$lang2</a><span class="parti">|</span> !;}			
if ($res_url_policy){print qq!<a href="$res_url_policy" target="new">$lang3</a><span class="parti">|</span> !;}
if ($res_url_help)	{print qq!<a href="$res_url_help" target="new">$lang4</a><span class="parti">|</span> !;}
					print qq!<a href="$res_url_contact" target="new">$lang5</a>!;
	
	print qq{
</div>
<div class="copyright$styles_id copyright">Copyright 1998-$year $res_info_com. All rights reserved.</div>
</div><!--Footer End-->
 
 
</td></tr>
</table> 
</div></div></div></div></div></div></div>    
</td></tr></table>
</body>
</html>
	};
	$dbh->disconnect if $dbh;
}

sub verifyp {
	my $page=$_[0];
	my $statement = qq~SELECT * FROM page WHERE page_cod="$page"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	my $row_number=$sth->rows;
	if ($row_number == 0) {
		$sth->finish;
		return 0;
	} else {
		$sth->finish;
		return 1;
	}
}

sub page2vars {
    my $pagecode=$_[0];
	my $menucode=&page2menu($pagecode);
	
	$statement = qq~SELECT * FROM menu WHERE menu_cod='$menucode'~;
	$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		my $menucode=$row->{'CK_menu'};
		$menu_logo	= $row->{'menu_logo'};
		$menu_color1= $row->{'menu_color1'};
		$menu_color2= $row->{'menu_color2'};
		$menu_color3= $row->{'menu_color3'};
		if ($lang eq "big5") {
			$menu_title	= $row->{'menu_big5'};
		} elsif ($lang eq "gb") {
			$menu_title	= $row->{'menu_gb'};
		} else {
			$menu_title	= $row->{'menu_eng'};
		}		
	}
	$sth->finish;
}

sub page2menu {
    my $pagecode=$_[0];
	my $menucode="";
	my $statement = qq~SELECT * FROM page WHERE page_cod="$pagecode"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		$menucode=$row->{'CK_menu'};
	}
	$sth->finish;
	return $menucode;
}

sub page2smenu {
    my $pagecode=$_[0];
	my $menucode="";
	my $statement = qq~SELECT * FROM page WHERE page_cod="$pagecode"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		$menucode=$row->{'CK_smenu'};
	}
	$sth->finish;
	return $menucode;
}

sub lang {
    my $txtcode=$_[0];
	my $statement = qq~SELECT * FROM lang WHERE lang_cod="$txtcode"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		if ($lang eq "big5") {
			$txt= $row->{'lang_big5'};
		} elsif ($lang eq "gb") {
			$txt= $row->{'lang_gb'};
		} else {
			$txt= $row->{'lang_en'};
		}		
	}
	$sth->finish;
	return $txt;
}

sub lang_txt {
    my $txtcode=$_[0];
	my $statement = qq~SELECT * FROM lang_txt WHERE txt_cod="$txtcode"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		if ($lang eq "big5") {
			$txt= $row->{'txt_big5'};
		} elsif ($lang eq "gb") {
			$txt= $row->{'txt_gb'};
		} else {
			$txt= $row->{'txt_en'};
		}		
	}
	$sth->finish;
	return $txt;
}

sub lang_button {
	my ($get_var, $name, $value, $elem, @pair, $request);
	
	if ($ENV{REQUEST_METHOD} eq "GET") {
		$request=$ENV{QUERY_STRING};
	} else {
		read( STDIN, $request, $ENV{CONTENT_LENGTH} );
	}
	@pair = split( '&', $request );
	foreach $elem ( @pair ) {
		( $name, $value ) = split( '=', $elem );
		$value   =~ tr/+/ /;
		$name   =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack('c',hex($1))/ge;
		$value =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack('c',hex($1))/ge;
		#$CGI_INPUT{$name} = $value;
		if (($name ne "lang") && ($name ne "") && ($name ne "&")) {
			$get_var .= "&$name=$value";
		}
	}
	
	$link_big5	="?lang=big5" . $get_var;
	$link_gb	="?lang=gb" . $get_var;
	$link_en	="?lang=en" . $get_var;
	
	$button_big5="lan_big5.gif";
	$button_gb="lan_gb.gif";
	$button_en="lan_en.gif";
	if ($lang eq "big5") {
		$button_big5="lan_big5_s.gif";
	} elsif ($lang eq "gb") {
		$button_gb="lan_gb_s.gif";
	} else {
		$button_en="lan_en_s.gif";
	}

	print qq{
	<td width="19%" valign="middle">
	<a href="$link_en"><img src="images/$button_en" border="0" class="lan"/></a>
	<a href="$link_gb"><img src="images/$button_gb" border="0" class="lan"/></a>
	<a href="$link_big5"><img src="images/$button_big5" border="0" class="lan"/></a>
	</span></td>
	}
}

sub check_res_cod {
    my $res_cod=$_[0];
	my $statement = qq~SELECT * FROM reseller_conf WHERE res_cod="$res_cod"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	$rc=$sth->rows;
	if ($rc > 0) {
		return "true";
	} else {
		return "false";
	}
}

sub print_date {

	# If you want the date displayed in the format of December 11, 1998, leave the
	# next variable as a 1.  If you want it displayed as 12/11/1998, change the
	# next variable to a 2.  If you don't want it displayed at all, change the
	# next variable to a 0.
	$dateformat = 1;
	
	# If you don't want the day of the week displayed, change the next variable to
	# a 0.
	$weekday = 1;
	
	# If you want the time displayed as 10:15:08 P.M., leave the next variable as
	# a 1.  If you want it displayed as 22:15:08, change the next variable to a 2.
	# If you don't want it displayed at all, change the next variable to a 0.
	$timeformat = 1;
	
	# If you want the date before the time, leave the next variable as a 0.  If
	# you want the time before the date, change the next variable to a 1.
	$order = 0;
	
	# Change the next variable to whatever you want between the date and time.
	$divider = ", ";
	
	##############################################################################
	# Congratulations!  You've finished defining the variables.  If you want to, #
	# you can continue screwing with the script, but it isn't necessary.         #
	##############################################################################
	
	@months = ('January','February','March','April','May','June','July','August','September','October','November','December');
	@days = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
	($sec,$min,$hour,$day,$month,$year,$day2) = (localtime(time))[0,1,2,3,4,5,6];
	if ($sec < 10) { $sec = "0$sec"; }
	if ($min < 10) { $min = "0$min"; }
	if ($hour < 10) { $hour = "0$hour"; }
	if ($day < 10) { $day = "0$day"; }
	$year += "1900";
	if ($order) { &time; &divide; &date; }
	else { &date; &divide; &time; }

}

sub date {
        if ($dateformat) {
                if ($weekday) { print "$days[$day2], "; }
                if ($dateformat == 1) { print "$months[$month] $day, $year"; }
                else {
                        $month++;
                        print "$month/$day/$year";
                }
        }
}

sub time {
        if ($timeformat == 2) { print "$hour:$min:$sec"; }
        elsif ($timeformat == 1) {
                if ($hour >= 12) { $ex = "P.M."; }
                else { $ex = "A.M."; }
                if ($hour == 0) { $hour = 12; }
                if ($hour > 12) { $hour -= 12; }
                print "$hour:$min:$sec $ex";                        
        }
}

sub divide {
        print "$divider";
}

sub checkquota {       
	my $uid=$_[0];
	my @quota_array=();
	my $dev="";
	
	my $statement = qq~SELECT * FROM wcp_conf WHERE wcp_var_name like "home%_quota"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	while (my $row = $sth->fetchrow_hashref) {
		push @quota_array,$row->{'wcp_var_value'};
	}
	$sth->finish;
	
	$array_count = @quota_array;
	if($array_count eq "1"){
		$dev = $quota_array[0];
		($bc,$bs,$bh,$bt,$fc,$fs,$fh,$ft) = Quota::query($dev, $uid);
		if(defined($bc)) {
			$DiskQuota=int($bh/1000);
			$DiskUsage=int($bc/1000);
		} else {
			$DiskQuota=0;
			$DiskUsage=0;
			# debug:
			# warn "Quota::query($dev): ",Quota::strerr,"\n\n";
		}
		#print $DiskQuota . " " .$DiskUsage;
	} else {
		foreach(@quota_array) {
			($bc,$bs,$bh,$bt,$fc,$fs,$fh,$ft) = Quota::query($_, $uid);
			if($bh ne "") {
				$DiskQuota=int($bh/1000);
				$DiskUsage=int($bc/1000);
				last;
			}
		}
		if($DiskQuota eq "") {
			$DiskQuota=0;
			$DiskUsage=0;
		}
	}
}

sub checkquota_zfs {       
	my $uid=$_[0];
	my @quota_array=();
	my $dev="";
	
	my $statement = qq~SELECT * FROM wcp_conf WHERE wcp_var_name like "home%_quota"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	while (my $row = $sth->fetchrow_hashref) {
		push @quota_array,$row->{'wcp_var_value'};
	}
	$sth->finish;
	
	my $cmd='/usr/sbin/zfs get userquota@' . $uid . ' ' . $quota_array[0];
	my @result = `$cmd`;
	my @result1 = split(/\s+/, $result[1]);
	if($result1[2] =~ /K$/i) {
		$result1[2] =~ s/K//ge;
		$DiskQuota = int($result1[2] / 1000);
	} elsif ($result1[2] =~ /M$/i) {
		$result1[2] =~ s/M//ge;
		$DiskQuota = int($result1[2] * 1);
	} elsif ($result1[2] =~ /G$/i) {
		$result1[2] =~ s/G//ge;
		$DiskQuota = int($result1[2] * 1000);
	} else {
		$DiskQuota = 0;
	}
	
	$cmd='/usr/sbin/zfs get userused@' . $uid . ' ' . $quota_array[0];
	@result = `$cmd`;
	@result1 = split(/\s+/, $result[1]);
	if($result1[2] =~ /K$/i) {
		$result1[2] =~ s/K//ge;
		$DiskUsage = int($result1[2] / 1000);
	} elsif ($result1[2] =~ /M$/i) {
		$result1[2] =~ s/M//ge;
		$DiskUsage = int($result1[2] * 1);
	} elsif ($result1[2] =~ /G$/i) {
		$result1[2] =~ s/G//ge;
		$DiskUsage = int($result1[2] * 1000);
	} else {
		$DiskUsage = 0;
	}
	
	#print $DiskQuota . " " .$DiskUsage;
}

sub checkemailoption {
    my $domain=$_[0];
	my $statement = qq~SELECT * FROM emailoption WHERE CK_usr_domain="$domain"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		$eop_option	= $row->{'eop_option'};
		$eop_limit	= $row->{'eop_limit'};
		$eop_used	= $row->{'eop_used'};
		$eop_update	= $row->{'eop_update'};
	}
}

sub checkemailaccount {
	my $domain=$_[0];
	my $lang108=&lang(108);
	my $statement = qq~SELECT * FROM emailaccount WHERE CK_usr_domain="$domain"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		$ema_maxfor	= $row->{'ema_maxfor'};
		$ema_for	= $row->{'ema_for'};
		$ema_maxali	= $row->{'ema_maxali'};
		$ema_ali	= $row->{'ema_ali'};
		$ema_maxauto= $row->{'ema_maxauto'};
		$ema_auto	= $row->{'ema_auto'};
		$ema_maxlist= $row->{'ema_maxlist'};
		$ema_list	= $row->{'ema_list'};
		$ema_maxpop	= $row->{'ema_maxpop'};
		$ema_pop	= $row->{'ema_pop'};
	}
	$sth->finish;
	$ema_for	= $ema_for+$ema_ali; # because we no longer provide alias on new platform
	if ($ema_maxfor = -1) {
		$ema_maxfor = $lang108;
		$ema_free_for = $lang108;
	} else {
		$ema_free_for	= $ema_maxfor-$ema_for;
	}
	$ema_free_ali	= $ema_maxali-$ema_ali;
	if ($ema_maxauto = -1) {
		$ema_maxauto = $lang108;
		$ema_free_auto = $lang108;
	} else {
		$ema_free_auto	= $ema_maxauto-$ema_auto;
	}
	$ema_free_list	= $ema_maxlist-$ema_list;
	if ($ema_maxlist = -1) {
		$ema_maxlist = $lang108;
		$ema_free_list = $lang108;
	} else {
		$ema_free_list	= $ema_maxlist-$ema_list;
	}
	$ema_free_pop	= $ema_maxpop-$ema_pop;
}

sub checkbandwidth {
    my $date=$_[0];
	my $sw  =$_[1];
	if ($sw eq "CURRENT") {
		$date1="$date-01";
		$date2="$date-31";
		$statement = qq~SELECT * FROM bandwidth WHERE CK_usr_cod="$userid" AND ban_date > "$date1" AND ban_date <= "$date2"~;
	} else {
		$statement = qq~SELECT * FROM bandwidth WHERE CK_usr_cod="$userid" AND ban_date ="$date"~;
	}
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		$t1=$row->{'ban_ban'};
		$t2=$row->{'ban_limit'};
		$t3=$row->{'ban_date'};
	} else {
		$t1=0;
		$t2=1;
		$t3="N/A";
	}
	my @data=($t1,$t2,$t3);
	$sth->finish;
	return @data;
}

sub checkftpusage {
	my $uid=$_[0];
	$FTPAccount=0;
	###### Check Extra FTP Usage vv
	open (DB, "<$passwd_ftp");
	@db_lines1= <DB>;
	close DB;
	@db_lines = grep(/:$uid:/,  @db_lines1);
	                
	LINE: foreach $db_line (@db_lines) {
	  $db_line =~ /^#/    and next LINE;
	  chomp $db_line;
	  @db_data = split (/\n/, $db_line);
	  $FTPAccount ++;
	}
	if ($FTPAccount eq "") {$FTPAccount=0;}
	$FTPAccountFree=$user_extraftp-$FTPAccount;
	if ($user_extraftp>0) {
		$FTPAccountRate=int($FTPAccount/$user_extraftp * 100);
	} else {
		$FTPAccountRate=0;
	}
	
	###### Check Extra FTP Usage ^^
}

sub checkmysql {
    my $user=$_[0];
	my $statement = qq~SELECT * FROM mysql WHERE CK_usr_cod="$user"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	$mysql_usage  = 0;
	$mysql_number = 0;
	while (my $row = $sth->fetchrow_hashref) {
		$mysql_number ++;
		$mysql_usage = $mysql_usage + $row->{'mys_size'};
	}
	$user_mysql_free=$user_mysqlspace - $mysql_usage;
	if($user_mysqlspace<1) { $user_mysql_rate=0; } else {
		$user_mysql_rate=int($mysql_usage/$user_mysqlspace * 100);
	}
	$sth->finish;
}

sub checkcatchsmtp {
	my $domain		  = $_[0];
	my $catchsmtpfile= "/var/qmail/control/taps";
	$catchsmtp	  = "OFF";
	if ( -f $catchsmtpfile) {
		open (CATCH, "<$catchsmtpfile");
		my @db_lines= <CATCH>;
		close CATCH;
		my $temp_str = '@' . $domain . '\$:';
		@db_lines1 = grep(/$temp_str/,  @db_lines);
	    
		LINE: foreach $db_line1 (@db_lines1) {
			$catchsmtp="ON";
		}
		
		#LINE: foreach $db_line (@db_lines) {
		#  chomp $db_line;
		#  my @db_data = split (/\n/, $db_line);
	    #    if ($db_line eq "$domain") {
		#		$catchsmtp="ON";
	    #    }
		#}
	}
	return $catchsmtp;
}

sub checkdirsize {
	my $path = $_[0];
	find (sub {$used += -s ;}, $path);
	return $used;	
}

sub portscan {
	use IO::Socket::INET;
    local($server) = @_[0];
    local($portno) = @_[1];
    $TIMEOUT = 12;
    $rtime = $s+$u/10000;
    $SOCK = (IO::Socket::INET->new( PeerAddr => $server, PeerPort => $portno, Proto => 'tcp', Timeout => $TIMEOUT));
    if ($SOCK) {
        my $result="UP";
        return $result;
    } else {
        my $result="DOWN";
        return $result;
    }
}

sub check_global_smtp {
	my $domain = $_[0];
	my $global_smtp_file='/var/qmail/control/relaymailfrom.vip';
	my $result = "DOWN";
	
	if ( -f $global_smtp_file) {
		open (GLOBALSMTP, "<$global_smtp_file");
		my @db_lines= <GLOBALSMTP>;
		close GLOBALSMTP;
		
		my $temp_str = $domain . '$';
		@db_lines1 = grep(/$temp_str/,  @db_lines);
	    
		LINE: foreach $db_line1 (@db_lines1) {
			$result="UP";
		}
	}
	return $result;
}

sub check_anti_virus {
	my $domain = $_[0];
	my $simcontrol_file='/var/qmail/control/simcontrol';
	$anti_virus = "OFF";
	
	if ( -f $simcontrol_file) {
		open (ANTIVIRUS, "<$simcontrol_file");
		my @db_lines= <ANTIVIRUS>;
		close ANTIVIRUS;
		if(@match = grep(/^$domain:/, @db_lines)) {
			if($match[0] =~ /\:clam\=(\w+)\,/) {
				if($1 =~ /yes/i) {
					$anti_virus = "ON";
				}
			}
		} else {
			if($db_lines[0] =~ /^\:clam\=(\w+)\,/) {
				if($1 =~ /yes/i) {
					$anti_virus = "ON";
				}
			}
		}
	}
	return $anti_virus;
}

sub update_shutdown {
    my $sw=$_[0];
    my $userid=$_[1];
	my $statement = qq~UPDATE preference SET usr_shutdown="$sw" WHERE CK_usr_cod="$userid"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if ($sth->fetchrow_hashref) {
		$sth->finish;
		return true;
	}
	$sth->finish;
	return false;
}

sub changepasswd {
  
  my $user   = $_[0];
  my $old_pw = $_[1];
  my $new_pw = $_[2];
  $change_pw = "FAIL";
        
  if($os =~ /^SunOS 5/){
        $pass_string    ='New Password:';
        $pass_string_re ='new Password:';
        $pass_com       ="/usr/bin/passwd $user";    
        $suc_string     =$user;         
  } elsif ($os =~ /^Linux 2/) {
        $pass_string    ='New password:';
        $pass_string_re ='new password:';
        $pass_com       ="/usr/bin/passwd";
        $suc_string     ="successfully";   
  }
   
  ($pass = Expect->spawn($pass_com)) || return $change_pw;
  $pass->log_stdout(0);
  
  $pass->expect(2,'-re','word:\s$') || return $change_pw;
  print $pass "$old_pw\r";
  
  $pass->expect(2,'-re',$pass_string) || return $change_pw;
  
  print $pass "$new_pw\r";
  
  $pass->expect(2,'-re',$pass_string_re) || return $change_pw;
  print $pass "$new_pw\r";
  
  $pass->expect(2,'-re',$suc_string) || return $change_pw;
  
  print $pass "exit\r";
  
  $pass->soft_close();
  $change_pw="OK";
  return $change_pw;
}

sub changehtpasswd {
	my $user   = $_[0];
	#my $old_pw = $_[1];
	my $new_pw = $_[1];
	my $fpwd   = $_[2];
	$change_pw = "FAIL";
	
	open(P, "+<$fpwd") || return $change_pw;
	flock(P, LOCK_EX);
	
	@P = grep(!/^#/,  <P>);

	%pw = map { chomp; split ':' } @P;
	
	if (!exists $pw{$user}) {return $change_pw;};
	
	#$ocry = $pw{$usr};
	#$cry  = crypt($opwd, $ocry);
	#die "Wrong user $usr or Old Password\n" if $cry ne $ocry;
	
	$pw{$user} = crypt($new_pw, &salt);
	
	seek(P, 0, 0);
	while (($k,$v) = each %pw) { print P "$k:$v\n"; }
	truncate P, (tell P);
	flock(P, LOCK_UN);
	close(P);
	$change_pw = "OK";
	return $change_pw;
}

sub printperlmodules {
	print qq~
	<style type="text/css">
	<!--
	.tabletitle {  font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; height: 22px; }
	.perl	{  font-family: Arial, Helvetica, sans-serif; font-size: 11px }
	-->
	</style>
	<table width="98%" cellspacing="0" cellpadding="4" align="center" bordercolor="#C5C5C5">
	<tr bgcolor="#EFEFEF">
		<td colspan="2" valign="top" class="tabletitle">LIST OF ALL INSTALLED PERL MODULES</td>
	</tr>
	<tr>
		<td class="perl" valign="top">
	~;

	#find(\&wanted,@INC);
	find(\&wanted,'/usr/local/lib/perl5/');
	$modcount = 0;
	
	foreach $line(@foundmods)
	{
	    $match = lc($line);
	    if ($found{$line}[0] >0)
	    {$found{$line} = [$found{$line}[0]+1,$match]}
	    else
	    {$found{$line} = ["1",$match];$modcount++}
	}
	@foundmods = sort count keys(%found);

	sub count {
	    return $found{$a}[1] cmp $found{$b}[1]
	}
	$third = $modcount/2;
	$count=0;
	$firstroundtotal = 0;

    foreach $mod(@foundmods)
	{
        chomp $mod;
        $count++;
        if ($count <= ($third+1))
        {
            $firstroundtotal++;
            print qq~$firstroundtotal. <a href="http://search.cpan.org/search?module=$mod" title="Click here to see $mod on CPAN [Opens in a new window]" target="_blank">$mod</a><br>~;
        }
        else
        {
            push (@mod1,$mod)
        }
    }
	$count = 0;
	print qq~ </td><td class="perl" valign="top">~;
	foreach $mod1(@mod1)
	{
	    chomp $mod1;
	    $count++;
	    if ($count <= $third)
		{
			$firstroundtotal++;
			print qq~$firstroundtotal. <a href="http://search.cpan.org/search?module=$mod1" title="Click here to see $mod2 on CPAN [Opens in a new window]" target="_blank">$mod1</a><br>~;
		}
	}
	sub wanted {
		$count = 0;
		if ($File::Find::name =~ /\.pm$/) {
			open(MODFILE,$File::Find::name) || return;
			while(<MODFILE>){
				if (/^ *package +(\S+);/){
					push (@foundmods, $1); last;
				}
			}
		}
	}
	print qq~
	    </td>
	  </tr>
	</table>
	~;
}

sub printphpmodules {
	my $check=0;
	print qq{
	<style type="text/css"><!--
		.table_php {border-collapse: collapse; font-family: sans-serif;}
		.e {border: 1px solid #000000; font-size: 75%; vertical-align: baseline; background-color: #ccccff; font-weight: bold; color: #000000;}
		.h {background-color: #9999cc; font-weight: bold; color: #000000;}
		.v {border: 1px solid #000000; font-size: 75%; vertical-align: baseline; background-color: #cccccc; color: #000000;}
		.hr_php {background-color: #cccccc; border: 0px; height: 1px; color: #000000;}
	//--></style>
	};
	
	#php_info "INFO_GENERAL","INFO_CREDITS","INFO_CONFIGURATION","INFO_MODULES","INFO_ENVIRONMENT","INFO_VARIABLES","INFO_LICENSE"

	my @temp = `/usr/local/bin/php -r 'phpinfo(INFO_GENERAL)\;'`;
	print qq{<table border="0" cellpadding="3" width="600" class="table_php">\n};
	foreach (@temp) {
		chomp $_;
		if(/[^phpinfo\(\)]/) { 
			if(/\=\>/) {
				my @temp_spilt = split (/ \=\> /, $_);
				print qq{<tr><td class="e">$temp_spilt[0]</td><td class="v">$temp_spilt[1]</td></tr>\n};
			}
		}
	}
	print qq{</table><hr class="hr_php">\n};
	
	my @temp = `/usr/local/bin/php -r 'phpinfo(INFO_CONFIGURATION)\;'`;
	print qq{<table border="0" cellpadding="3" width="600" class="table_php">\n
			<tr><td colspan="3" align="center"><b>Configuration</b></td></tr>\n
			<tr><td colspan="3" align="center"><b>PHP Core</b></td></tr>\n
			};
	foreach (@temp) {
		chomp $_;
		if(/[^phpinfo\(\)]/) { 
			if(/\=\>/) {
				my @temp_spilt = split (/ \=\> /, $_);
				print qq{<tr><td class="e">$temp_spilt[0]</td><td class="v">$temp_spilt[1]</td><td class="v">$temp_spilt[2]</td></tr>\n};
			}
		}
	}
	print qq{</table>\n};
	
}

sub update_pref {
	my $pref_lang		=$_[0];
	my $pref_empd		=$_[1];
	my $pref_firstpage	=$_[2];
	my $pref_mypd		=$_[3];
	my $pref_email		=$_[4];
	my $statement = qq~UPDATE preference SET usr_lang="$pref_lang",usr_empd="$pref_empd",usr_firstpage="$pref_firstpage",usr_mypd="$pref_mypd",usr_email="$pref_email" WHERE CK_usr_cod="$userid"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if ($sth->fetchrow_hashref) {
		$sth->finish;
		return true;
	}
	$sth->finish;
	return false;
}

sub addsubdomain {
	my $subdomain= $_[0];
	my $docroot  = $_[1];
	$add_result = "FAIL";
	$subdomain_file=$subdomain_dir."/".$user_domain;
	
	# Check If the username exist
	open(SUB,"<$subdomain_file") || &error('Could not find specified file');
	@subdomain = <SUB>;
	close(SUB);
	
	if(@match = grep(/^$subdomain:/, @subdomain)){return $add_result;} 

	open(SUB,">>$subdomain_file") || return $add_result;
	print SUB "$subdomain.$user_domain /home/$userid$docroot\n";
	close(SUB);
	$err=`mkdir -p /home/$userid$docroot`;
	if ($err == 0) { }

	$add_result = "OK";
	return $add_result;
}

sub deletesubdomain {
	my $subdomain= $_[0];
	$add_result = "FAIL";
	$subdomain_file=$subdomain_dir."/".$user_domain;
	# Check If the username exist
	open(SUB,"<$subdomain_file") || &error('Could not find specified file');
	@subdomain = <SUB>;
	close(SUB);
	if(@match = grep(/^$subdomain\./, @subdomain)){} else {return $add_result;} 

	@rowdata = grep(/\.$user_domain\s/, @subdomain);
	$num_messages = @rowdata;
	foreach ($j = 0;$j <= $num_messages -1;$j++) {
		if ($rowdata[$j] =~ /^$subdomain\./) {
			$row = $rowdata[$j];
			chop($row);
			($SUBDOMAIN, $DOCROOT) = split(/\s/, $row);
			$rowdata[$j] = join("",);
			next;
		}
	}
	open(SUB,">$subdomain_file") || die $!;
		print SUB @rowdata;
	close(SUB);
	
	$add_result = "OK";
	return $add_result;
}

sub checkuidgid {
	$syspass_file="/etc/passwd";
	open(SYSPASS,"<$syspass_file") || &error('Could not find specified file');
	@syspass = <SYSPASS>;
	close(SYSPASS);
	LINE: foreach $db_line (@syspass) {
	  $db_line =~ /^#/    and next LINE;
	  $db_line =~ /^\s*$/ and next LINE;
	  chomp $db_line;
	  @db_data = split (/\:/, $db_line);
	     if ($db_line =~ /^$userid:/) {   
	        $uid  = $db_data[2];
	        $gid  = $db_data[3];
	     }   
	}
}

sub addextraftp {
	my $user= $_[0];
	my $pwd = $_[1];
	my $dir = $_[2];
	$add_result = "FAIL";
	
	# Grep the uid
	&checkuidgid;
	
	# Check If the username exist
	open(HTPASS,"<$passwd_ftp") || &error('Could not find specified file');
	@htpasswd = <HTPASS>;
	close(HTPASS);
	
	if(@match = grep(/^$user:/, @htpasswd)){return $add_result;} 

	$salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
	$password = crypt($pwd,$salt);

	open(HTPASS,">>$passwd_ftp") || return $add_result;
	print HTPASS "$user:$password:$uid:$gid:\:/home/$userid$dir:/bin/sh\n";
	close(HTPASS);
	$err=`mkdir -p /home/$userid$dir`;
	if ($err == 0) { }
						
	$add_result = "OK";
	return $add_result;
}

sub create_errorpage {
	my $code=$_[0];

	my $htmldir	= "/export/home/$userid/public_html";
	my $cf_file	= "$htmldir/.htaccess";
	my $htmlfile= "/$code.html";
	my $cf_line	= "ErrorDocument $code /$code.html";
	my $er_page	= $htmldir.$htmlfile;

	if ($code eq "401") {$html_content = &lang_txt(32);}
	if ($code eq "403") {$html_content = &lang_txt(33);}
	if ($code eq "404") {$html_content = &lang_txt(34);}
	if ($code eq "500") {$html_content = &lang_txt(35);}
	$html_content =~ s/\$user_domain/$user_domain/g;
	
	if( -f $cf_file) {
		open(DATA,"+<$cf_file");
		@rowdata = <DATA>;
		close(DATA);
		$print_new_line=1;
		$num_messages = @rowdata;
				
		foreach ($j = 0;$j <= $num_messages -1;$j++) {
			if ($rowdata[$j] =~ /^ErrorDocument $code (.*)/) {
				$print_new_line=0;
				$row = $rowdata[$j];
				chop($row);
				($ErrorDocument,$ErrorNumber,$ErrorFile) = split(/\s/, $row);
				$rowdata[$j] = join(" ",$ErrorDocument,$ErrorNumber,$htmlfile);
				$rowdata[$j] .= "\n";
				next;
			}
		}
	}
			
	if ($print_new_line == 1) {
		open(DATA,">$cf_file") || die $!;
		print DATA @rowdata;
		print DATA "$cf_line\n";
		close(DATA);
	} else {
		open(DATA,">$cf_file") || die $!;
		print DATA @rowdata;
		close(DATA);
	}

	if (-e $er_page) {
		print qq|
		<font size="1" color="Green">setting up $code ErrorDocument ... done!<br>
		creating $er_page ... <font color="#E10000">file exist. skipped</font></font><p>
		|;
	} else {
		open (ERRORPAGE,">$er_page");
		print ERRORPAGE $html_content;
		close ERRORPAGE;
		chmod 0644, "$er_page";
		print qq|
		<font size="1" color="Green">setting up $code ErrorDocument ... done!<br>
		creating $er_page ... done!</font><p>
		|;
	}
}

sub delete_errorpage {
	my $code=$_[0];

	my $htmldir	= "/export/home/$userid/public_html";
	my $cf_file	= "$htmldir/.htaccess";

	if( -f $cf_file) {
		open(DATA,"$cf_file") || die $!;
		@rowdata = <DATA>;
		close(DATA);
		$print_new_line=1;
		$num_messages = @rowdata;
		foreach ($j = 0;$j <= $num_messages -1;$j++) {
			if ($rowdata[$j] =~ /^ErrorDocument $code (.*)/) {
				$print_new_line=0;
				$row = $rowdata[$j];
				chop($row);
				#($ErrorDocument,$ErrorNumber,$ErrorFile) = split(/\s/, $row);
				$rowdata[$j] = join("",);
				next;
			}
		}
		open(DATA,">$cf_file") || die $!;
			print DATA @rowdata;
		close(DATA);
		
		print qq|$code Uninstall Complete<p>|;
	} else {
		print &lang_txt(47);
	}
}

sub check_errorpage {
	my $code=$_[0];
	my $rtn_value="NO";
	my $htmldir	= "/export/home/$userid/public_html";
	my $cf_file	= "$htmldir/.htaccess";
	my $htmlfile= "/$code.html";
	my $er_page	= $htmldir.$htmlfile;
	
	if( -f $cf_file) {
		open(DATA,"$cf_file") || die $!;
		@rowdata = <DATA>;
		close(DATA);
		$print_new_line=1;
		$num_messages = @rowdata;
		foreach ($j = 0;$j <= $num_messages -1;$j++) {
			if ($rowdata[$j] =~ /^ErrorDocument $code (.*)/) {
				if(-f $er_page) { $rtn_value = "YES"; }
			}
		}
	}
	return $rtn_value;
}

sub wcpconf {
	my $statement = qq~SELECT * FROM wcp_conf WHERE wcp_var_name="$hostname"~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if (my $row = $sth->fetchrow_hashref) {
		$wcp_sslhost	= $row->{'wcp_var_value'};
	}
	$sth->finish;
}

sub check_valueadd {
   	my $user=$_[0];
	my $page=$_[1];
	my $statement = qq~SELECT value_p$page as page FROM valueadd WHERE CK_usr_cod="$user"~;

	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	if(my $row = $sth->fetchrow_hashref()) {
		my $success = $row->{'page'};
		return "$success";
	} else {
		return "N";
	}
	$sth->finish;
}

sub check_connection {
	my $dbhost = $_[0];
	my $database = $_[1];
	my $dbusername = $_[2];
	my $dbuserpasswd = $_[3];

	#$database="wcp4";
	
	my $dsn_c = "DBI:mysql:database=$database;host=$dbhost";
	my $dbh_c = DBI->connect($dsn_c, $dbusername, $dbuserpasswd);
	if ($DBI::state) { return "false";
	} else {
		$dbh_c->disconnect;
		return "ture";
	}
}

sub salt {
  local @a = ('A'..'Z','a'..'z','0'..'9', '.', '/');
  return join('', @a[int(rand(64)), int(rand(64))]);
}

##############################
#
#    PAGES
#
##############################

sub page_1 {	
	my $menu_statement = qq~SELECT * FROM menu WHERE menu_page > 1 ORDER BY menu_page~;
	my $menu_sth = $dbh->prepare($menu_statement) || error('db_prepare',$dbh->errstr);
	$menu_sth->execute || error('db_execute',$dbh->errstr);
	my $count_i = 1;
	
	while (my $menu_row = $menu_sth->fetchrow_hashref) {
	
		my $menu_item = "";
		if ($lang eq "big5") {
			$menu_item=$menu_row->{'menu_big5'};
		} elsif ($lang eq "gb") {
			$menu_item=$menu_row->{'menu_gb'};
		} else {
			$menu_item=$menu_row->{'menu_en'};
		}
print qq~
<!--IndexMenu $count_i-->
<table border="0" cellpadding="0" cellspacing="0">
<tr><td><span class="indexmenu_title$count_i indexmenu_title">$menu_item</span></td></tr></table>
<div class="indexmenu_table$count_i indexmenu_table">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td>
<div>~;

		my $smenu_statement = qq~SELECT * FROM submenu WHERE CK_menu_cod=$menu_row->{'menu_page'} ORDER BY smenu_order ASC ~;	
		my $smenu_sth = $dbh->prepare($smenu_statement) || error('db_prepare',$dbh->errstr);
		$smenu_sth->execute || error('db_execute',$dbh->errstr);
		#my $count_j = 1;
		my $row_number=$smenu_sth->rows;
		while (my $smenu_row = $smenu_sth->fetchrow_hashref) {
			#if($count_j eq "1") { print "<tr>\n"; }
			my $smenu_item = "";
			if ($lang eq "big5") {
				$smenu_item=$smenu_row->{'smenu_big5'};
			} elsif ($lang eq "gb") {
				$smenu_item=$smenu_row->{'smenu_gb'};
			} else {
				$smenu_item=$smenu_row->{'smenu_en'};
			}
			if ($smenu_row->{'smenu_page'} >= 700) {
				if($user_reseller eq "1"){
					print qq~<div class="indexmenu_tablemargin"><ul><li><a href="/?p=$smenu_row->{'smenu_page'}&lang=$lang">$smenu_item</a></li></ul></div>\n~;
				} else {
					if (($smenu_row->{'smenu_page'} eq 700) || ($smenu_row->{'smenu_page'} eq 701)) {
						print qq~<div class="indexmenu_tablemargin"><ul><li><a href="/?p=$smenu_row->{'smenu_page'}&lang=$lang">$smenu_item</a></li></ul></div>\n~;
					}
				}
			} elsif($smenu_row->{'smenu_page'} == 505) {
				if($user_reseller eq "1"){
					print qq~<div class="indexmenu_tablemargin"><ul><li><a href="/?p=$smenu_row->{'smenu_page'}&lang=$lang">$smenu_item</a></li></ul></div>\n~;
				}
			} else {
				print qq~<div class="indexmenu_tablemargin"><ul><li><a href="/?p=$smenu_row->{'smenu_page'}&lang=$lang">$smenu_item</a></li></ul></div>\n~;
			}
					
			#if($count_j eq "4") { 
			#	print "</tr>\n"; 
			#	$count_j = 0;
			#}
			#if($row_number eq "1") { print "</tr>\n"; };
			#$row_number--;
			#$count_j++;
		}
		
		print qq~</div>
</td></tr>
</table>
</div>	
		~;
		$count_i++;
	}
}

sub page_2 {
	my $lang_txt2=&lang_txt(2);
	$lang_txt2 =~ s/\$lang/$lang/ge;
	
	print $lang_txt2;
}

sub page_3 {
	my $lang_txt9=&lang_txt(9);
	$lang_txt9 =~ s/\$lang/$lang/ge;
	
	print $lang_txt9;
}

sub page_4 {
	my $lang_txt10=&lang_txt(10);
	$lang_txt10 =~ s/\$lang/$lang/ge;
	
	print $lang_txt10;
}

sub page_5 {
	if($user_reseller eq "1"){
		my $lang_txt11=&lang_txt(11);
		$lang_txt11 =~ s/\$lang/$lang/ge;
		print $lang_txt11;
	} else {
		my $lang_txt104=&lang_txt(104);
		$lang_txt104 =~ s/\$lang/$lang/ge;
		print $lang_txt104;
	}
}

sub page_6 {
	my $lang_txt12=&lang_txt(12);
	$lang_txt12 =~ s/\$lang/$lang/ge;
	
	print $lang_txt12;
}

sub page_7 {
	my $lang_txt13=&lang_txt(13);
	$lang_txt13 =~ s/\$lang/$lang/ge;
	
	if($user_reseller eq "1"){
		my $lang_txt76=&lang_txt(76);
		$lang_txt76 =~ s/\$lang/$lang/ge;
		$lang_txt13 =~ s/\$clink_info/$lang_txt76/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt13=~ s/\$clink_info/$temp_info/ge;
	}
	
	print $lang_txt13;
}

sub page_100 {
	print qq{
	<br>
	<table width="550" align="center">
	<tr><td>
	<font face=arial size=2>
	<font size=4><b>404 - File Not Found</b></font><br><p>
	I am sorry, but the page you tried to access on our website does not exist.
	If you feel you have reached this error, please <a href="mailto:$res_info_email">e-mail us</a> and we will investigate.</font><br>
	</td></tr></table>
	<br><br><br><br><br><br><br>
	};
}

sub page_101 {
	print qq{
	<br><br><div align="center" class="font">Logout</div><p><br><br><br>
	};
}

sub page_200 {
	my $lang8=&lang(8);
	my $lang9=&lang(9);
	my $lang11=&lang(11); #ON
	my $lang12=&lang(12); #OFF
	my $lang13=&lang(13); #Jan
	my $lang14=&lang(14); #Feb
	my $lang15=&lang(15); #Mar
	my $lang16=&lang(16); #Apr
	my $lang17=&lang(17); #May
	my $lang18=&lang(18); #Jun
	my $lang19=&lang(19); #Jul
	my $lang20=&lang(20); #Aug
	my $lang21=&lang(21); #Sep
	my $lang22=&lang(22); #Oct
	my $lang23=&lang(23); #Nov
	my $lang24=&lang(24); #Dec
	
	my $lang_txt3=&lang_txt(3);
	
	#Website Data
	&checkquota_zfs($>); # provide: $DiskQuota, $DiskUsage
	$DiskFree=$DiskQuota-$DiskUsage;
	if ($DiskQuota <= 0) { $DiskRate=0;} else { 
		$DiskRate=int($DiskUsage/$DiskQuota*100);
	}
	
	#Email Account & Space
	&checkemailoption($user_domain);
	if ($eop_option eq "B") {
		$eop_option_flag=$lang8;
		$eop_free=$eop_limit-$eop_used . " MB";
		if($eop_used==0) { $eop_rate="0%"; } else {
			$eop_rate=int($eop_used/$eop_limit*100)."%";
		}
	} else {
		$eop_option_flag=$lang9;
		$eop_limit="N/A";
		$eop_used="N/A";
		$eop_free="N/A";
		$eop_rate="N/A";
	}
	&checkemailaccount($user_domain);
    if ($ema_maxpop<1) {$ema_rate_pop=0;} else {
		$ema_rate_pop=int($ema_pop/$ema_maxpop*100);
	}
	
	#MySQL
	&checkmysql($userid); # provide: $mysql_usage, $mysql_number, $user_mysql_free, $user_mysql_rate
	
	#Subdomain
	my $subdomain_file=$subdomain_dir."/".$user_domain;
	my $used_subdomain = "0";
	if ( -f $subdomain_file) {
		$used_subdomain = `cat $subdomain_file | wc -l`;
	}
	$user_subdomain_free=$user_subdomain-$used_subdomain;
    if ($user_subdomain==0) {$user_subdomain_rate=0;} else {
        $user_subdomain_rate=int($used_subdomain/$user_subdomain*100);
    }

	#Extra Ftp
	&checkftpusage($>); # provide: $FTPAccountFree, $FTPAccountRate
	
	#Catch Smtp
	$catchsmtp=&checkcatchsmtp($user_domain);
	if ( $catchsmtp eq "ON") {
		$catch_smtp_onoff = "<font color=\"#008000\">$lang11</font>";
	} else {
		$catch_smtp_onoff = "<font color=\"#FF0000\">$lang12</font>";
	}
	
	#Smtp 25 & 2620
	if($hostname =~ /^mars/i) {
		$smtp_25_onoff = "<font color=\"#FF0000\">$lang12</font>";
		$smtp_2620_onoff = "<font color=\"#FF0000\">$lang12</font>";
	} else {
		if ( &portscan("smtp.$user_domain","25") eq "UP") {
			$smtp_25_onoff = "<font color=\"#008000\">$lang11</font>";
		} else {
			$smtp_25_onoff = "<font color=\"#FF0000\">$lang12</font>";
		}
		
		if ( &check_global_smtp("$user_domain") eq "UP") {
			$smtp_2620_onoff = "<font color=\"#008000\">$lang11</font>";
		} else {
			$smtp_2620_onoff = "<font color=\"#FF0000\">$lang12</font>";
		}
	}
						
	#Anti-virus
	if ( &check_anti_virus($user_domain) eq "ON") {
		$email_virus_on_off = "<font color=\"#008000\">$lang11</font>";
	} else {
		$email_virus_on_off = "<font color=\"#FF0000\">$lang12</font>";
	}
	
	###### Excess Bandwidth Shutdown Setting
	$act=$CGI_INPUT{'act'};
	if ($act eq "ON") {
		&update_shutdown($act,$userid);
		$user_shutdown="ON";
	} elsif ($act eq "OFF") {
		&update_shutdown($act,$userid);
		$user_shutdown="OFF";
	}
	
	###### prepare the year-month
	($sec,$min,$hour,$day,$month,$year,$day2) = (localtime(time))[0,1,2,3,4,5,6];
	$year += 1900;
	@months = ("$lang13","$lang14","$lang15","$lang16","$lang17","$lang18","$lang19","$lang20","$lang21","$lang22","$lang23","$lang24");
	my $months1 = $months[$month];
	my $months2 = $months[$month-1];
	my $months3 = $months[$month-2];
	my $months4 = $months[$month-3];
	my $mon1 = $month + 1;	$year1=$year; 																if ($mon1 < 10) { $mon1 = "0$mon1"; };
	my $mon2 = $month;		if ($mon2 == 0){ $mon2=12;         $year2=$year - 1;} else { $year2=$year}; if ($mon2 < 10) { $mon2 = "0$mon2"; };
	my $mon3 = $month - 1;	if ($mon3 < 1) { $mon3=$mon3 + 12; $year3=$year - 1;} else { $year3=$year}; if ($mon3 < 10) { $mon3 = "0$mon3"; };
	#my $mon4 = $month - 2;	if ($mon4 < 1) { $mon4=$mon4 + 12; $year4=$year - 1;} else { $year4=$year}; if ($mon4 < 10) { $mon4 = "0$mon4"; };
	###### 

	$temp1="$year1-$mon1";
	my @ban_data1=&checkbandwidth($temp1,"CURRENT");
	($ban1_used, $ban1_limit, $ban1_date) = @ban_data1;
	if($day == "1") { $ban1_limit = $user_bandwidth; }
	if($ban1_limit == "1") {
		$ban1_limit = "-";
		$ban1_used = "-";
		$ban1_rate = "-";
	} else {
		$ban1_limit = ($ban1_limit * 1.024);
		$ban1_used = sprintf("%d",$ban1_used / 1000 / 1.024);
		$ban1_rate = sprintf("%d",$ban1_used / $ban1_limit * 100);
	}
	
	$temp2="$year1-$mon1-01";
	my @ban_data2=&checkbandwidth($temp2,"1");
	($ban2_used, $ban2_limit, $ban2_date) = @ban_data2;
	if($ban2_limit == "1") {
		$ban2_limit = "-";
		$ban2_used = "-";
		$ban2_rate = "-";
	} else {
		$ban2_limit = ($ban2_limit * 1.024);
		$ban2_used = sprintf("%d",$ban2_used / 1000 / 1.024);
		$ban2_rate = sprintf("%d",$ban2_used / $ban2_limit * 100);
	}
	
	$temp3="$year2-$mon2-01";
	my @ban_data3=&checkbandwidth($temp3,"2");
	($ban3_used, $ban3_limit, $ban3_date) = @ban_data3;
	if($ban3_limit == "1") {
		$ban3_limit = "-";
		$ban3_used = "-";
		$ban3_rate = "-";
	} else {
		$ban3_limit = ($ban3_limit * 1.024);
		$ban3_used = sprintf("%d",$ban3_used / 1000 / 1.024);
		$ban3_rate = sprintf("%d",$ban3_used / $ban3_limit * 100);
	}
	
	$temp4="$year3-$mon3-01";
	my @ban_data4=&checkbandwidth($temp4,"3");
	($ban4_used, $ban4_limit, $ban4_date) = @ban_data4;
	if($ban4_limit == "1") {
		$ban4_limit = "-";
		$ban4_used = "-";
		$ban4_rate = "-";
	} else {
		$ban4_limit = ($ban4_limit * 1.024);
		$ban4_used = sprintf("%d",$ban4_used / 1000 / 1.024);
		$ban4_rate = sprintf("%d",$ban4_used / $ban4_limit * 100);
	}
	
	if ($user_shutdown eq "ON") {
		$user_shutdown_on_off = "<input name='act' type='radio' value='ON' onClick='this.form.submit();' checked> $lang11 &nbsp;<input name='act' type='radio' value='OFF' onClick='this.form.submit();'> $lang12";
	} else {
		$user_shutdown_on_off = "<input name='act' type='radio' value='ON' onClick='this.form.submit();'> $lang11 &nbsp;<input name='act' type='radio' value='OFF' onClick='this.form.submit();' checked> $lang12";
	}
	#Website Data
	$lang_txt3 =~ s/\$DiskQuota/$DiskQuota/g;
	$lang_txt3 =~ s/\$DiskUsage/$DiskUsage/g;
	$lang_txt3 =~ s/\$DiskFree/$DiskFree/g;
	$lang_txt3 =~ s/\$DiskRate/$DiskRate/g;
	#Email Account
	$lang_txt3 =~ s/\$ema_maxpop/$ema_maxpop/g;
	$lang_txt3 =~ s/\$ema_pop/$ema_pop/g;
	$lang_txt3 =~ s/\$ema_free_pop/$ema_free_pop/g;
	$lang_txt3 =~ s/\$ema_rate_pop/$ema_rate_pop/g;
	#Email Space
	$lang_txt3 =~ s/\$eop_option_flag/$eop_option_flag/g;
	$lang_txt3 =~ s/\$eop_limit/$eop_limit/g;
	$lang_txt3 =~ s/\$eop_used/$eop_used/g;
	$lang_txt3 =~ s/\$eop_free/$eop_free/g;
	$lang_txt3 =~ s/\$eop_rate/$eop_rate/g;
	#mySQL Database
	$lang_txt3 =~ s/\$user_mysqlspace/$user_mysqlspace/g;
	$lang_txt3 =~ s/\$mysql_usage/$mysql_usage/g;
	$lang_txt3 =~ s/\$mysql_number/$mysql_number/g;
	$lang_txt3 =~ s/\$user_mysql_free/$user_mysql_free/g;
	$lang_txt3 =~ s/\$user_mysql_rate/$user_mysql_rate/g;
	$lang_txt3 =~ s/\$user_mysql/$user_mysql/g;
	#Subdomain
	$lang_txt3 =~ s/\$used_subdomain/$used_subdomain/g;
	$lang_txt3 =~ s/\$user_subdomain_free/$user_subdomain_free/g;
	$lang_txt3 =~ s/\$user_subdomain_rate/$user_subdomain_rate/g;
	$lang_txt3 =~ s/\$user_subdomain/$user_subdomain/g;
	#Extra FTP Accounts
	$lang_txt3 =~ s/\$user_extraftp/$user_extraftp/g;
	$lang_txt3 =~ s/\$FTPAccountFree/$FTPAccountFree/g;
	$lang_txt3 =~ s/\$FTPAccountRate/$FTPAccountRate/g;
	$lang_txt3 =~ s/\$FTPAccount/$FTPAccount/g;
	#Email Advanced Feature
	$lang_txt3 =~ s/\$catch_smtp_onoff/$catch_smtp_onoff/g;
	$lang_txt3 =~ s/\$smtp_25_onoff/$smtp_25_onoff/g;
	$lang_txt3 =~ s/\$smtp_2620_onoff/$smtp_2620_onoff/g;
	$lang_txt3 =~ s/\$email_virus_on_off/$email_virus_on_off/g;
	#Bandwidth
	$lang_txt3 =~ s/\$months4/$months4/g;
	$lang_txt3 =~ s/\$months3/$months3/g;
	$lang_txt3 =~ s/\$months2/$months2/g;
	$lang_txt3 =~ s/\$months1/$months1/g;
	$lang_txt3 =~ s/\$ban4_limit/$ban4_limit/g;
	$lang_txt3 =~ s/\$ban3_limit/$ban3_limit/g;
	$lang_txt3 =~ s/\$ban2_limit/$ban2_limit/g;
	$lang_txt3 =~ s/\$ban1_limit/$ban1_limit/g;
	$lang_txt3 =~ s/\$ban4_used/$ban4_used/g;
	$lang_txt3 =~ s/\$ban3_used/$ban3_used/g;
	$lang_txt3 =~ s/\$ban2_used/$ban2_used/g;
	$lang_txt3 =~ s/\$ban1_used/$ban1_used/g;
	$lang_txt3 =~ s/\$ban4_rate/$ban4_rate/g;
	$lang_txt3 =~ s/\$ban3_rate/$ban3_rate/g;
	$lang_txt3 =~ s/\$ban2_rate/$ban2_rate/g;
	$lang_txt3 =~ s/\$ban1_rate/$ban1_rate/g;
	$lang_txt3 =~ s/\$user_shutdown_on_off/$user_shutdown_on_off/g;
	
	$lang_txt3 =~ s/\$lang/$lang/ge;
	
	print $lang_txt3;
}

sub page_201 {
	$result="";
	$act =$CGI_INPUT{'act'};
	$act1=$CGI_INPUT{'act1'};
	
	my $lang25=&lang(25);
	my $lang26=&lang(26);
	my $lang27=&lang(27);
	my $lang28=&lang(28);
	my $lang29=&lang(29);
	my $lang30=&lang(30);
	my $lang31=&lang(31);
	my $lang32=&lang(32);
	
	if ($act eq "ftp_pass"){
		if ($act1 eq "change") {
			$err_msg ="";
			if (($CGI_INPUT{'new_pw1'} eq "") || ($CGI_INPUT{'old_pw'} eq "") || ($CGI_INPUT{'new_pw2'} eq ""))  {$err_msg .="<center>$lang25</center>";}
			if ($CGI_INPUT{'new_pw1'} =~ /$userid/){$err_msg .="<center>$lang26</center>";}
			if ($CGI_INPUT{'new_pw1'} =~ /\s/)     {$err_msg .="<center>$lang27</center>";}
			if ($CGI_INPUT{'new_pw1'} ne $CGI_INPUT{'new_pw2'}) {$err_msg .="<center>$lang28</center>";}
			
			if ($err_msg eq "") {
				$old_pw = "$CGI_INPUT{'old_pw'}";
				$new_pw = "$CGI_INPUT{'new_pw1'}";
				$result=&changepasswd($userid,$old_pw,$new_pw);
				if ($result eq "FAIL") {
					$err_msg ="<center>$lang29</center>";
				}
			}

		}
		print qq{
		<div><a href="/?p=201&act=ftp_pass&lang=$lang">$lang30</a><span class="parti">|</span><a href="/?p=201&act=wcp_pass&lang=$lang">$lang31</a></div>

		<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
		<tr>
		    <td>
		};
		if ($result eq "OK") {
			print qq{
			<br><br>
			<div align="center" class="font"><strong><font color="#008000">$lang30 $lang32</font></strong></div>
			};
			
		} else {
			my $lang_txt5=&lang_txt(5);
		
			$lang_txt5 =~ s/\$lang/$lang/ge;
			$lang_txt5 =~ s/\$err_msg/$err_msg/g;
			$lang_txt5 =~ s/\$userid/$userid/ge;
			print $lang_txt5;	
		}
		print qq{
			</td>
		</tr>
		</table>
		};
	} elsif ($act eq "wcp_pass") {
		if ($act1 eq "change") {
			$err_msg ="";
			if (($CGI_INPUT{'new_pw1'} eq "") || ($CGI_INPUT{'new_pw2'} eq ""))  {$err_msg .="<center>$lang25</center>";}
			if ($CGI_INPUT{'new_pw1'} =~ /$userid/){$err_msg .="<center>$lang26</center>";}
			if ($CGI_INPUT{'new_pw1'} =~ /\s/)     {$err_msg .="<center>$lang27.</center>";}
			if ($CGI_INPUT{'new_pw1'} ne $CGI_INPUT{'new_pw2'}) {$err_msg .="<center>$lang28</center>";}
			
			if ($err_msg eq "") {
				$old_pw = "$CGI_INPUT{'old_pw'}";
				$new_pw = "$CGI_INPUT{'new_pw1'}";
				$result=&changehtpasswd($userid,$new_pw,"../.htpasswd");
				if ($result eq "FAIL") {
					$err_msg ="<center>$lang29</center>";
				}
			}

		}
		print qq{
		<div><a href="/?p=201&act=ftp_pass&lang=$lang">$lang30</a><span class="parti">|</span><a href="/?p=201&act=wcp_pass&lang=$lang">$lang31</a></div>

		<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
		<tr>
		    <td>
		};
		
		if ($result eq "OK") {
			print qq{
			<br><br>
			<div align="center" class="font"><strong><font color="#008000">$lang31 $lang32</font></strong></div>
			};
			
		} else {
			my $lang_txt6=&lang_txt(6);
		
			$lang_txt6 =~ s/\$lang/$lang/ge;
			$lang_txt6 =~ s/\$err_msg/$err_msg/g;
			$lang_txt6 =~ s/\$userid/$userid/ge;
			print $lang_txt6;	
		}
	print "
			</td>
		</tr>
		</table>
	";
	
	} else {
		my $lang_txt4=&lang_txt(4);
		
		$lang_txt4 =~ s/\$lang/$lang/ge;
		print $lang_txt4;
	} # end if
}

sub page_202 {
# ACTs:
# 1. Definitions
# 2. Perl_Modules
# 3. PHP_Info
# 4. Server_Info (Default)
  $act=$CGI_INPUT{'act'};
  my $lang35=&lang(35);
  my $lang36=&lang(36);
  my $lang37=&lang(37);
  my $lang38=&lang(38);
  my $lang39=&lang(39);
  my $lang40=&lang(40);
  my $lang41=&lang(41);
  my $lang42=&lang(42);
  my $lang43=&lang(43);
  my $lang44=&lang(44);
  my $text7=&lang_txt(7);
  
  if ($act eq "Definitions") {		
	print qq{
		<div><a href="/?p=202&lang=$lang">$lang35</a><span class="parti">|</span><a href="/?p=202&act=Perl_Modules&lang=$lang">$lang36</a><span class="parti">|</span><a href="/?p=202&act=PHP_Info&lang=$lang">$lang37</a></div>
		
		<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
		<tr>
		    <td>
			<table width="95%" cellspacing="2" cellpadding="2" border="0">
			<tr>
			    <td class="font">
				$text7
				<br>
				</td>
			</tr>
			</table>

			</td>
		</tr>
		</table>
	};
  } elsif ($act eq "Perl_Modules") {
	print qq{
		<div><a href="/?p=202&lang=$lang">$lang35</a><span class="parti">|</span><a href="/?p=202&act=Perl_Modules&lang=$lang">$lang36</a><span class="parti">|</span><a href="/?p=202&act=PHP_Info&lang=$lang">$lang37</a></div>
		
		<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
		<tr>
		    <td>
			};
				&printperlmodules;
			print qq{
			</td>
		</tr>
		</table>
	};
  } elsif ($act eq "PHP_Info") {
	print qq{
		<div><a href="/?p=202&lang=$lang">$lang35</a><span class="parti">|</span><a href="/?p=202&act=Perl_Modules&lang=$lang">$lang36</a><span class="parti">|</span><a href="/?p=202&act=PHP_Info&lang=$lang">$lang37</a></div>
		
		<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
		<tr>
		    <td>
			};
				&printphpmodules;
		print qq{
			</td>
		</tr>
		</table>
	};
  } else {
  	my $os_ver = "N/A";
	my $apache_ver = "N/A";
	my $perl_ver = "N/A";
	my $php_ver = "N/A";
	my $mysql_ver = "N/A";
	
	if(`uname -s` =~ m/sunos/i) {
		if(`uname -r` =~ /(\d+)\.(\d+)/) { $os_ver = "SUN Solaris $2"; }
	} else {
		$os_ver = `uname -rs`;
	}
	if(`/usr/local/apache/bin/httpd -v` =~ /Apache\/(\d+)\.(\d+)\.(\d+)/) { $apache_ver = "$1.$2.$3 (Unix)"; }
	if(`/usr/bin/perl -v` =~ /v(\d+)\.(\d+)\.(\d+)/) { $perl_ver = "$1.$2.$3"; }
	if(`/usr/local/bin/php -v` =~ /PHP (\d+)\.(\d+)\.(\d+)/) { $php_ver = "$1.$2.$3"; }
	if(`/usr/local/mysql/bin/mysql -V` =~ /Distrib (\d+)\.(\d+)\.(\d+)/) { $mysql_ver = "$1.$2.$3"; }
	
	print qq{
		<div><a href="/?p=202&lang=$lang">$lang35</a><span class="parti">|</span><a href="/?p=202&act=Perl_Modules&lang=$lang">$lang36</a><span class="parti">|</span><a href="/?p=202&act=PHP_Info&lang=$lang">$lang37</a></div>
		
		<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
		<tr>
		    <td>
			<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
			<tr>
			    <td width="70%" class="font">
				
					<img src="images/server.jpg" alt="" width="200" height="68" border="0">
	
					<table border="0" cellspacing="0" width="100%">
					<tr>
						<td width="100%" colspan="2" style="border-bottom: 2px solid" class="font"><b>$lang38($hostname)</b></td>
					</tr>
					<tr> 
						<td width="50%" style="border-bottom: 1px solid" class="font">$lang42</td>
						<td width="50%" style="border-bottom: 1px solid" class="font">$os_ver</td>
					</tr>
					<tr> 
						<td width="50%" style="border-bottom: 1px solid" class="font">Apache $lang39</td>
						<td width="50%" style="border-bottom: 1px solid" class="font">$apache_ver</td>
					</tr>
					<tr> 
						<td width="50%" style="border-bottom: 1px solid" class="font">PERL $lang39</td>
						<td width="50%" style="border-bottom: 1px solid" class="font">$perl_ver</td>
					</tr>
					<tr> 
						<td width="50%" style="border-bottom: 1px solid" class="font">PHP $lang39</td>
						<td width="50%" style="border-bottom: 1px solid" class="font">$php_ver</td>
					</tr>
					<tr> 
						<td width="50%" style="border-bottom: 1px solid" class="font">MySQL $lang39</td>
						<td width="50%" style="border-bottom: 1px solid" class="font">$mysql_ver</td>
					</tr>
					<tr> 
						<td width="50%" valign="top" class="font" style="border-bottom: 1px solid">$lang40</td>
						<td width="50%" style="border-bottom: 1px solid" class="font">/usr/bin/perl</td>
					</tr>
					<tr>
						<td width="50%" style="border-bottom: 1px solid" class="font">$lang41</td>
						<td width="50%" style="border-bottom: 1px solid" class="font">/usr/lib/sendmail</td>
	 				</tr>
					</table>

				</td>
				<td width="30%" align="center" valign="bottom">
				
				
					<table width="140" border="1" cellspacing="1" cellpadding="1" bordercolor="#000000">
					<tr>
						<td colspan="2" align="center" class="font"><b>$lang43 $hostname</b></td>
					</tr>
					<tr>
						<td align="center"><img src=/images/up.gif></td>
						<td class="font"><b>&nbsp;<a href="?p=202&act=Definitions&lang=$lang#WEB" style="text-decoration: none;">Web</a></b></td>
					</tr>
					<tr>
						<td><center><img src=/images/up.gif></center></td>
						<td class="font"><b>&nbsp;<a href="?p=202&act=Definitions&lang=$lang#FTP" style="text-decoration: none;">FTP</a></b></td>
					</tr>
					<tr bgcolor="#F0F0F0">
						<td><center><img src=/images/up.gif></center></td>
						<td class="font"><b>&nbsp;<a href="?p=202&act=Definitions&lang=$lang#POP3" style="text-decoration: none;">POP3</a></b></td>
					</tr>
					<tr bgcolor="#F0F0F0">
						<td><center><img src=/images/up.gif></center></td>
						<td class="font"><b>&nbsp;<a href="?p=202&act=Definitions&lang=$lang#IMAP4" style="text-decoration: none;">IMAP4</a></b></td>
					</tr>
					<tr>
						<td><center><img src=/images/up.gif></center></td>
						<td class="font"><b>&nbsp;<a href="?p=202&act=Definitions&lang=$lang#SMTP" style="text-decoration: none;">SMTP</a></td>
					</tr>
					<tr bgcolor="#F0F0F0">
						<td><center><img src=/images/up.gif></center></td>
						<td class="font"><b>&nbsp;<a href="?p=202&act=Definitions&lang=$lang#Telnet" style="text-decoration: none;">Telnet</a></b></td>
					</tr>
					<tr>
						<td><center><img src=/images/up.gif></center></td>
						<td class="font"><b>&nbsp;<a href="?p=202&act=Definitions&lang=$lang#SSL" style="text-decoration: none;">SSL</a></b></td>
					</tr>
					<tr bgcolor="#F0F0F0">
						<td><center><img src=/images/up.gif></center></td>
						<td class="font"><b>&nbsp;<a href="?p=202&act=Definitions&lang=$lang#MySQL" style="text-decoration: none;">MySQL</a></b></td>
					</tr>
					<tr>
						<td><center><img src=/images/up.gif></center></td>
						<td class="font"><b>&nbsp;<a href="?p=202&act=Definitions&lang=$lang#RAID" style="text-decoration: none;">RAID</a></b></td>
					</tr>
					</table>
				</td>
			</tr>
			</table>

			</td>
		</tr>
		</table>
	};
  }
}

sub page_203 {
	$act=$CGI_INPUT{'act'};
	
	my $lang33=&lang(33);
	my $lang34=&lang(34);
	my $lang_txt8=&lang_txt(8);
	
	if ($act eq "UpdateNow") {
	  	if (&update_pref($CGI_INPUT{'pref_lang'},$CGI_INPUT{'pref_empd'},$CGI_INPUT{'pref_firstpage'},$CGI_INPUT{'pref_mypd'},$CGI_INPUT{'pref_email'})) {
			print "<script>location.href='/?p=203&lang=$CGI_INPUT{'pref_lang'}';alert('$lang33');</script>";
		} else {
			print "<script>location.href='/?p=203&lang=$lang';alert('$lang34');</script>";
		}
	} else {
		if ($user_lang eq "big5") {
			$selected_big5=" selected";
		} elsif ($user_lang eq "gb") {
			$selected_gb=" selected";
		} else {
			$selected_en=" selected";
		}
	
		if ($user_firstpage eq "500") {
			$checked_500=" checked";
		} elsif ($user_firstpage eq "301") {
			$checked_301=" checked";
		} elsif ($user_firstpage eq "300") {
			$checked_300=" checked";
		} elsif ($user_firstpage eq "202") {
			$checked_202=" checked";
		} elsif ($user_firstpage eq "200") {
			$checked_200=" checked";
		} else {
			$checked_1=" checked";
		}
		
		$lang_txt8 =~ s/\$lang/$lang/ge;
		$lang_txt8 =~ s/\$selected_en/$selected_en/g;
		$lang_txt8 =~ s/\$selected_big5/$selected_big5/g;
		$lang_txt8 =~ s/\$selected_gb/$selected_gb/g;
		$lang_txt8 =~ s/\$user_empd/$user_empd/g;
		$lang_txt8 =~ s/\$user_mypd/$user_mypd/g;
		$lang_txt8 =~ s/\$usr_email/$usr_email/g;
		$lang_txt8 =~ s/\$checked_500/$checked_500/g;
		$lang_txt8 =~ s/\$checked_301/$checked_301/g;
		$lang_txt8 =~ s/\$checked_300/$checked_300/g;
		$lang_txt8 =~ s/\$checked_202/$checked_202/g;
		$lang_txt8 =~ s/\$checked_200/$checked_200/g;
		$lang_txt8 =~ s/\$checked_1/$checked_1/g;
		
		print $lang_txt8;
  	}#end $act
}

sub page_300 {
	my $lang_txt14=&lang_txt(14);
	
	print $lang_txt14;
}

sub page_301 {
	my $lang_txt15=&lang_txt(15);
	
	$lang_txt15 =~ s/\$user_mysql/$user_mysql/ge;
	$lang_txt15 =~ s/\$userid/$userid/ge;
	$lang_txt15 =~ s/\$user_mypd/$user_mypd/ge;
	
	print $lang_txt15;
}

sub page_302 {
	my $php_ver = "N/A";
	my $lang_txt16=&lang_txt(16);
	
	if(`/usr/local/bin/php -v` =~ /PHP (\d+)\.(\d+)\.(\d+)/) { $php_ver = "$1.$2.$3"; }
	
	$lang_txt16 =~ s/\$lang/$lang/ge;
	$lang_txt16 =~ s/\$php_ver/$php_ver/ge;
	
	print $lang_txt16;
}

sub page_303 {
	my $perl_ver = "N/A";
	my $lang_txt17=&lang_txt(17);
	
	if(`/usr/bin/perl -v` =~ /v(\d+)\.(\d+)\.(\d+)/) { $perl_ver = "$1.$2.$3"; }
	
	$lang_txt17 =~ s/\$lang/$lang/ge;
	$lang_txt17 =~ s/\$perl_ver/$perl_ver/ge;
	
	print $lang_txt17;
}

sub page_304 {
	$act=$CGI_INPUT{'act'};

	if ($act eq "Overview") {
		my $lang_txt102=&lang_txt(102);
		$lang_txt102 =~ s/\$lang/$lang/ge;
		print $lang_txt102;
	} else {
		my $stat_lang="tw";
		my $lang_txt103=&lang_txt(103);
		
		if($lang eq "en") {
			$stat_lang="en";
		} elsif($lang eq "gb") {
			$stat_lang="cn";
		} else {
			$stat_lang="tw";
		}
		
		$lang_txt103 =~ s/\$lang/$lang/ge;
		$lang_txt103 =~ s/\$stat_lang/$stat_lang/ge;
		print $lang_txt103;
	}
}

sub page_305 {
	$act =$CGI_INPUT{'act'};
	$act1=$CGI_INPUT{'act1'};
	my $lang_txt18=&lang_txt(18);
	my $lang_txt19=&lang_txt(19);
	my $lang_txt20=&lang_txt(20);
	my $lang_txt21=&lang_txt(21);
	
	my $lang45=&lang(45);
	my $lang46=&lang(46);
	my $lang47=&lang(47);
	my $lang48=&lang(48);
	my $lang49=&lang(49);
	my $lang50=&lang(50);
	my $lang51=&lang(51);
	my $lang52=&lang(52);
	my $lang53=&lang(53);
	my $lang54=&lang(54);
	my $lang55=&lang(55);
	my $lang56=&lang(56);
	my $lang57=&lang(57);
	my $lang58=&lang(58);
	my $lang59=&lang(59);
	my $lang60=&lang(60);
	my $lang63=&lang(63);
	
	$subdomain_file=$subdomain_dir."/".$user_domain;
	my $used_subdomain = `cat $subdomain_file | wc -l`;
	$user_subdomain_free=$user_subdomain-$used_subdomain;

	if ($act eq "Overview") {
		$lang_txt19 =~ s/\$lang/$lang/ge;
		$lang_txt19 =~ s/\$user_domain/$user_domain/ge;
	
		print $lang_txt19;
	} else {
		if( -f $subdomain_file) {
			$subdomain_edit_str = "";
			if ($act1 eq "AddNow") {
				open(SUB,"<$subdomain_file") || &error("$lang47");
				@subdomain = <SUB>;
				close(SUB);
				$err_msg ="";
				if($user_subdomain_free<=0) {$err_msg .= $lang48;}
				if($CGI_INPUT{'subdomain'} =~ /:/){$err_msg .= $lang49 . " \":\" " . $lang50;}
				if($CGI_INPUT{'subdomain'} =~ /\./){$err_msg .= $lang49 . " \".\" " . $lang50;}
				if($CGI_INPUT{'subdomain'} eq "www"){$err_msg .= $lang49 . " \"www\" " . $lang50;}
				if($CGI_INPUT{'subdomain'} =~ /\s/){$err_msg .= $lang49 . " spaces " . $lang50;}
				if($CGI_INPUT{'subdomain'} eq ""){$err_msg .="<center>$lang53</center>";}
				if($CGI_INPUT{'docroot'} eq ""){$err_msg .="<center>$lang54</center>";}
				if(@match = grep(/^$CGI_INPUT{'subdomain'}:/, @subdomain)){$err_msg .="<center>$CGI_INPUT{'subdomain'} $lang52</center>";} 
			
				if($CGI_INPUT{'docroot'} =~ /:/){$err_msg .= $lang49 . " \":\" " . $lang51;}
				if($CGI_INPUT{'docroot'} =~ /\s/){$err_msg .= $lang49 . " spaces " . $lang51;}
				if($CGI_INPUT{'docroot'} =~ /\.\./){$err_msg .= $lang49 . " \"..\" " . $lang51;}
				if($CGI_INPUT{'docroot'} =~ /^\/public_html/) {} else {$err_msg .= "<center>$lang55</center>";}

				if ($err_msg eq "") {
					$result=&addsubdomain($CGI_INPUT{'subdomain'},$CGI_INPUT{'docroot'});
					if ($result eq "FAIL") {
						$err_msg ="<center>$lang56</center>";
					} else {
						$err_msg="<font color=\"#008000\">$lang59 <strong>$CGI_INPUT{'subdomain'}</strong> $lang57</font>";
					}
				}
			} elsif ($act1 eq "DeleteNow") {
				open(SUB,"<$subdomain_file") || &error("$lang47");
				@subdomain = <SUB>;
				close(SUB);
				$err_msg ="";
				if($CGI_INPUT{'subdomain'} eq ""){$err_msg .="<center>$lang53</center>";}
				if(@match = grep(/^$CGI_INPUT{'subdomain'}\./, @subdomain)){} else {$err_msg .="<center>$lang59, $CGI_INPUT{'subdomain'} $lang60</center>";} 
				if ($err_msg eq "") {
					$result=&deletesubdomain($CGI_INPUT{'subdomain'});
					if ($result eq "FAIL") {
						$err_msg ="<center>$lang56</center>";
					} else {
						$err_msg="<font color=\"#008000\">$lang59 <strong>$CGI_INPUT{'subdomain'}</strong> $lang58</font>";
					}
				}
			} elsif ($act1 eq "Edit") {
				$e_subdomain=$CGI_INPUT{'subdomain'};
			
				open (DB, "<$subdomain_file");
				@db_lines1= <DB>;
				close DB;
				@db_lines = grep(/$e_subdomain.$user_domain/,  @db_lines1);
				$db_line_str = @db_lines[0];
				chomp $db_line_str;
				@db_data = split (/\s/, $db_line_str);
				$subdomain 	= $db_data[0];
				$docroot	= $db_data[1];
				if ($docroot =~ /\/home\/$userid\/(.*)/) {$docroot2='/' . $1};
				
				$lang_txt20 =~ s/\$lang/$lang/ge;
				$lang_txt20 =~ s/\$e_subdomain/$e_subdomain/ge;
				$lang_txt20 =~ s/\$user_domain/$user_domain/ge;
				$lang_txt20 =~ s/\$docroot2/$docroot2/ge;
				
				$subdomain_edit_str = $lang_txt20;
				
			} elsif ($act1 eq "EditNow") {
				open(SUB,"<$subdomain_file") || &error("$lang47");
				@subdomain = <SUB>;
				close(SUB);
				
				$err_msg ="";
				
				if($CGI_INPUT{'docroot'} eq ""){$err_msg .="<center>$lang54</center>";}
				if($CGI_INPUT{'docroot'} =~ /:/){$err_msg .= $lang49 . " : " . $lang51;}
				if($CGI_INPUT{'docroot'} =~ /\s/){$err_msg .= $lang49 . " spaces " . $lang51;}
				if($CGI_INPUT{'docroot'} =~ /\.\./){$err_msg .= $lang49 . " \"..\" " . $lang51;}
				if($CGI_INPUT{'docroot'} =~ /^\/public_html/) {} else {$err_msg .="<center>$lang55</center>";}
							
				if ($err_msg eq "") {
					$result=&deletesubdomain($CGI_INPUT{'subdomain'});
					if ($result eq "FAIL") {
						$err_msg ="<center>$lang56</center>";
					} else {
						$result=&addsubdomain($CGI_INPUT{'subdomain'},$CGI_INPUT{'docroot'});
						if ($result eq "FAIL") {
							$err_msg ="<center>$lang56</center>";
						} else {
							$err_msg="<font color=\"#008000\">$lang59 <strong>$CGI_INPUT{'subdomain'}</strong> $lang61</font>";
						}
					}
				}
			}
			
			$existing_subdomain = "";
			open (DB, "<$subdomain_file");
			@db_lines1= <DB>;
			close DB;
			@db_lines = grep(/.$user_domain/,  @db_lines1);
			my $count2=0;
			LINE: foreach $db_line (@db_lines) {
				$db_line =~ /^#/    and next LINE;
				$db_line =~ /^\s*$/ and next LINE;
				chomp $db_line;
				@db_data = split (/\s/, $db_line);
				$subdomain 	= $db_data[0];
				$docroot	= $db_data[1];
				if ($docroot =~ /\/home\/$userid\/public_html\/(.*)/) {$docroot1=$1};
				if ($docroot =~ /\/home\/$userid\/(.*)/) {$docroot2=$1};
				if ($subdomain =~ /(.*).$user_domain$s/) {$subdomain1=$1};
				if ($count2=="0") { $trcolor="#EEEEEE";$count2=1;} else {$trcolor="#FFFFFF";$count2=0;};
				
				$existing_subdomain .= qq|
				<tr bgcolor="$trcolor">
				<td><font face="Verdana,Arial,Helvetica" size="-2">&nbsp;<a href="http://$subdomain" target="_blank"><strong>$subdomain1</strong>.$user_domain</a></font></td>
				<td><font face="Verdana,Arial,Helvetica" size="-2">$docroot2</font></td>
				<td align="right"><a href="?p=305&act1=Edit&subdomain=$subdomain1&lang=$lang"><img src="/images/admin.gif" alt="" width="20" height="20" border="0"></a></td>
				<td><a href="?p=305&act1=DeleteNow&subdomain=$subdomain1&lang=$lang" onclick="return confirmLink(this, '$lang63: $subdomain')"><img src="/images/delete.gif" alt="" width="20" height="20" border="0"></a></td>
				</tr>
				|;
			}
			my $used_subdomain = `cat $subdomain_file | wc -l`;
			$user_subdomain_free=$user_subdomain-$used_subdomain;
			
			$lang_txt18 =~ s/\$lang/$lang/ge;
			$lang_txt18 =~ s/\$user_domain/$user_domain/ge;
			$lang_txt18 =~ s/\$user_subdomain_free/$user_subdomain_free/ge;
			$lang_txt18 =~ s/\$used_subdomain/$used_subdomain/ge;
			$lang_txt18 =~ s/\$user_subdomain/$user_subdomain/ge;
			
			print $lang_txt18;
			
			$lang_txt21 =~ s/\$err_msg/$err_msg/g;
			$lang_txt21 =~ s/\$lang/$lang/ge;
			$lang_txt21 =~ s/\$user_domain/$user_domain/ge;
			$lang_txt21 =~ s/\$existing_subdomain/$existing_subdomain/ge;
			$lang_txt21 =~ s/\$subdomain_edit_str/$subdomain_edit_str/ge;
			
			print $lang_txt21;	
		} else {
			if($user_subdomain ne "0") {
				print $lang45;
			} else {
				print $lang46; 
			}
		}
	}
}

sub page_306 {
	$act =$CGI_INPUT{'act'};
	$act1=$CGI_INPUT{'act1'};
	
	my $lang47=&lang(47);
	my $lang62=&lang(62);
	
	&checkftpusage($>); # provide: $FTPAccountFree, $FTPAccountRate
	
	if ($act eq "Rules") {
		my $lang_txt22=&lang_txt(22);
		$lang_txt22 =~ s/\$lang/$lang/ge;
	
		print $lang_txt22;
	} elsif ($act eq "Directions") {
		my $lang_txt23=&lang_txt(23);
		$lang_txt23 =~ s/\$lang/$lang/ge;
		$lang_txt23 =~ s/\$user_domain/$user_domain/ge;
		
		print $lang_txt23;
	} else {
		my $lang_txt24=&lang_txt(24);
		my $lang_txt25=&lang_txt(25);
		my $lang_txt26=&lang_txt(26);
		my $temp_str="";
		
		my $lang49=&lang(49);
		my $lang57=&lang(57);
		my $lang58=&lang(58);
		my $lang61=&lang(61);
		my $lang64=&lang(64);
		my $lang65=&lang(65);
		my $lang66=&lang(66);
		my $lang67=&lang(67);
		my $lang68=&lang(68);
		my $lang69=&lang(69);
		my $lang70=&lang(70);
		my $lang71=&lang(71);
		my $lang72=&lang(72);
		my $lang73=&lang(73);
		my $lang74=&lang(74);
		my $lang75=&lang(75);
		my $lang76=&lang(76);
		my $lang77=&lang(77);
		my $lang78=&lang(78);
		
		if($user_extraftp ne "0") {
			if ($act1 eq "AddNow") {
				open(HTPASS,"<$passwd_ftp") || &error("$lang47");
				@htpasswd = <HTPASS>;
				close(HTPASS);
			
				$err_msg ="";
		
				if($FTPAccountFree<=0) {$err_msg .="$lang64";}
				if($CGI_INPUT{'Login'} =~ /:/){$err_msg .= $lang49 . " : " . $lang65;}
				if($CGI_INPUT{'Login'} eq "$userid"){$err_msg .= $lang66;}
				if($CGI_INPUT{'Login'} eq "root"){$err_msg .= $lang67;}
				if($CGI_INPUT{'Login'} =~ /\s/){$err_msg .= $lang49 . " spaces " . $lang65;}
				if($CGI_INPUT{'Login'} eq ""){$err_msg .= $lang68;}
				if($CGI_INPUT{'Password'} eq ""){$err_msg .= $lang69;}
				$lang70 =~ s/\$Login/$CGI_INPUT{'Login'}/ge;
				if(@match = grep(/^$CGI_INPUT{'Login'}:/, @htpasswd)){$err_msg .= $lang70;} 
			
				if($CGI_INPUT{'RestrictedArea'} =~ /:/){$err_msg .= $lang49 . " : " . $lang71;}
				if($CGI_INPUT{'RestrictedArea'} =~ /\s/){$err_msg .= $lang49 . " spaces " . $lang71;}
				if($CGI_INPUT{'RestrictedArea'} =~ /\.\./){$err_msg .= $lang49 . " .. " . $lang71;}
				if($CGI_INPUT{'RestrictedArea'} =~ /^\//) {} else {$err_msg .= $lang72;}

				if ($err_msg eq "") {
					$result=&addextraftp($CGI_INPUT{'Login'},$CGI_INPUT{'Password'},$CGI_INPUT{'RestrictedArea'});
					if ($result eq "FAIL") {
						$err_msg = $lang73;
					}
				}
			} elsif ($act1 eq "EditNow") {
				#### ExtraFTP Edit Action ####
				#grep the uid
				&checkuidgid;

				if ($CGI_INPUT{'Delete'} eq "Delete") {
					#########################Delete############################
					open(DATA,"$passwd_ftp") || die $!; 
					@rowdata = <DATA>;
					close(DATA);
					@rowdata1 = grep(/:$uid:/,  @rowdata);

					if (@match = grep(/^$CGI_INPUT{'Login'}:/, @rowdata1)) {
						if(@match = grep(/^$CGI_INPUT{'Login'}:/, @rowdata)){
							$num_messages = @rowdata;
							foreach ($j = 0;$j <= $num_messages -1;$j++) {
								if ($rowdata[$j] =~ /^$CGI_INPUT{'Login'}:(.*)/) {
									$row = $rowdata[$j];
									chop($row);
				
									($Login, $ftpPassword, $ftpuid, $ftpgid, $ftpComments, $ftpHome, $ftpShell) = split(/\s/, $row);
									$rowdata[$j] = join("",);
									next;
								}
							}
							open(DATA,">$passwd_ftp") || die $!;
							print DATA @rowdata;
							close(DATA);
				
							$temp_str .= "<br><div align=\"center\">$lang74 <b>$CGI_INPUT{'Login'}</b> $lang58</div>";
						} else {
							$lang75 =~ s/\$Login/$CGI_INPUT{'Login'}/ge;
							$temp_str .= "<br><div align=\"center\">$lang75</div>";
						} 
					} else {
		    			$temp_str .= "<br><div align=\"center\">$lang76 <strong>$CGI_INPUT{'Login'}</strong>.</div>";
					}
				} elsif ($CGI_INPUT{'Update'} eq "Update") {
					#########################Update############################
					open(HTPASS,"<$passwd_ftp") || &error("$lang47");
					@htpasswd1 = <HTPASS>;
					close(HTPASS);
					@htpasswd = grep(/:$uid:/, @htpasswd1);

					if(@match = grep(/^$CGI_INPUT{'Login'}:/, @htpasswd)) {
						LINE: foreach $db_line (@htpasswd) {
							$db_line =~ /^#/    and next LINE;
							$db_line =~ /^\s*$/ and next LINE;
							chomp $db_line;
							@db_data = split (/\:/, $db_line);
							if ($db_line =~ /^$CGI_INPUT{'Login'}:/) {
								$OldPassword = $db_data[1];
								$RestrictedArea	= $db_data[5];
								if ($RestrictedArea =~ /^\/home\/$userid(.*)/) {$RestrictedArea1=$1};
							}
						}
			
						$msg="";
						if($CGI_INPUT{'Login'} =~ /:/)			{$msg .= $lang49 . " \":\" " . $lang65;}
						if($CGI_INPUT{'Login'} eq "$user_id")	{$msg .= $lang66;}
						if($CGI_INPUT{'Login'} eq "root")		{$msg .= $lang67;}
						if($CGI_INPUT{'Login'} =~ /\s/)			{$msg .= $lang49 . " spaces " . $lang65;}
						if($CGI_INPUT{'Login'} eq "")			{$msg .= $lang68;}
						$lang75 =~ s/\$Login/$CGI_INPUT{'Login'}/ge;
						if(@match = grep(/^$CGI_INPUT{'Login'}:/, @htpasswd)){} else {$msg .= $lang75;} 
						if($CGI_INPUT{'Password'} eq "")		{$msg .= $lang69;}
						if($CGI_INPUT{'RestrictedArea'} =~ /:/)	{$msg .= $lang49 . " : " . $lang71;}
						if($CGI_INPUT{'RestrictedArea'} =~ /\s/){$msg .= $lang49 . " spaces " . $lang71;}
						if($CGI_INPUT{'RestrictedArea'} =~ /\.\./){$msg .= $lang49 . " .. " . $lang71;}
						if($CGI_INPUT{'RestrictedArea'} =~ /^\//) {} else {$msg .= $lang72;}
			
						if ($msg eq "") {
							if ($CGI_INPUT{'Password'} eq "$OldPassword") {
								$password=$OldPassword;
							} else {
								$salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
								$password = crypt($CGI_INPUT{'Password'},$salt);
							}
				
							open(DATA,"$passwd_ftp") || die $!;
							@rowdata = <DATA>;
							close(DATA);
	
							$num_messages = @rowdata;
							$Login=$CGI_INPUT{'Login'};
							$myftpHome="/home/$userid$CGI_INPUT{'RestrictedArea'}";
				
							foreach ($j = 0;$j <= $num_messages -1;$j++) {
								if ($rowdata[$j] =~ /^$CGI_INPUT{'Login'}\:/) {
									$row = $rowdata[$j];
									chop($row);
				
									($Login, $ftpPassword, $ftpuid, $ftpgid, $ftpComments, $ftpHome, $ftpShell) = split(/\:/, $row);
									$rowdata[$j] = join(":", $CGI_INPUT{'Login'}, $password, $ftpuid, $ftpgid, $ftpComments, $myftpHome, $ftpShell);
									$rowdata[$j] .= "\n";
									next;
								}
							}
	
							open(DATA,">$passwd_ftp") || die $!;
								print DATA @rowdata;
							close(DATA);
							$err=`mkdir -p /home/$userid$CGI_INPUT{'RestrictedArea'}`;
							if ($err == 0) { }
							$temp_str .= "<br><br><div align=\"center\">$lang74 <b>$CGI_INPUT{'Login'}</b> $lang61</div>";		
						} else {
							$temp_str .= qq|
								<br><br>
								<div align="center"><font color="#FF0000">$msg</font></div><p>
							|;
						}
					} else {
						$temp_str .= "<br><br><center>$lang76 $CGI_INPUT{'Login'}.</center>";
					}
				}
			}
			
			if ($result eq "OK") {
				my $lang_txt27=&lang_txt(27);
				$lang_txt27 =~ s/\$Login/$CGI_INPUT{'Login'}/ge;
				$lang_txt27 =~ s/\$RestrictedArea/$CGI_INPUT{'RestrictedArea'}/ge;
				$lang_txt27 =~ s/\$user_domain/$user_domain/ge;
				
				$msg .= $lang_txt27;
			}
			
			###################################
			#grep the uid
   			&checkuidgid;
			
			$existing_extraftp = "";
			open (DB, "<$passwd_ftp");
			@db_lines1= <DB>;
			close DB;
			@db_lines = grep(/:$uid:/,  @db_lines1);
			my $count2=0;
			LINE: foreach $db_line (@db_lines) {
				$db_line =~ /^#/    and next LINE;
				$db_line =~ /^\s*$/ and next LINE;
				chomp $db_line;
				@db_data = split (/\:/, $db_line);
				$login 			= $db_data[0];
				$RestrictedArea	= $db_data[5];
				if ($RestrictedArea =~ /^\/home\/$userid(.*)/) {$RestrictedArea1=$1};
				if ($RestrictedArea1 eq "") {$RestrictedArea1="/"};
				if ($count2=="0") { $trcolor="#EEEEEE";$count2=1;} else {$trcolor="#FFFFFF";$count2=0;};
				
				$existing_extraftp .= qq|
				<tr bgcolor="$trcolor">
				<td><font face="Verdana,Arial,Helvetica">&nbsp;$login</font></td>
				<td><font face="Verdana,Arial,Helvetica">$RestrictedArea1</font></td>
				<td align="right"><font face="Verdana,Arial,Helvetica"><a href="?p=306&act1=EditForm&Login=$login&lang=$lang"><img src="/images/edit.gif" alt="" width="20" height="20" border="0"></a></font></td>
				<td><font face="Verdana,Arial,Helvetica"><a href="?p=306&act1=EditNow&Delete=Delete&Login=$login&lang=$lang" onclick="return confirmLink(this, '$lang77: $login')"><img src="/images/delete.gif" alt="" width="20" height="20" border="0"></a></font></td>
				</tr>
				|;				
			}
			
			$lang_txt25 =~ s/\$lang/$lang/ge;
			$lang_txt25 =~ s/\$err_msg/$err_msg/g;
			$lang_txt25 =~ s/\$existing_extraftp/$existing_extraftp/g;
			
			$temp_str .= $lang_txt25;
			##########################################
			
			if ($act1 eq "EditForm") {
				open (DB, "<$passwd_ftp");
				@db_lines1= <DB>;
				close DB;
				@db_lines = grep(/:$uid:/,  @db_lines1);
		
				if(@match = grep(/^$CGI_INPUT{'Login'}:/, @db_lines)){
					LINE: foreach $db_line (@db_lines) {
						$db_line =~ /^#/    and next LINE;
						$db_line =~ /^\s*$/ and next LINE;
						chomp $db_line;
						@db_data = split (/\:/, $db_line);
						if ( $db_line =~/^$CGI_INPUT{'Login'}:/) {
							$CGI_INPUT{'Login'}		= $db_data[0];
							$ftpPasswd	= $db_data[1];
							$RestrictedArea	= $db_data[5];
							if ($RestrictedArea =~ /^\/home\/$userid(.*)/) {$RestrictedArea1=$1};
						}
					}
					
					$lang_txt26 =~ s/\$lang/$lang/ge;
					$lang_txt26 =~ s/\$Login/$CGI_INPUT{'Login'}/g;
					$lang_txt26 =~ s/\$ftpPasswd/$ftpPasswd/g;
					$lang_txt26 =~ s/\$RestrictedArea1/$RestrictedArea1/g;
					
					$temp_str .= $lang_txt26;			
				} else {
					$lang78 =~ s/\$Login/$CGI_INPUT{'Login'}/g;
					$temp_str .= "<br><br>$lang78";
				}
			}
		} else {
			$temp_str .= $lang62; 
		}
		
		&checkftpusage($>); # provide: $FTPAccountFree, $FTPAccountRate
		
		$lang_txt24 =~ s/\$lang/$lang/ge;
		$lang_txt24 =~ s/\$FTPAccountFree/$FTPAccountFree/ge;
		$lang_txt24 =~ s/\$FTPAccount/$FTPAccount/ge;
		$lang_txt24 =~ s/\$user_extraftp/$user_extraftp/ge;
		
		print $lang_txt24;
		print $temp_str;
	}
}

sub page_400 {
	my $lang_txt28=&lang_txt(28);
	
	$lang_txt28 =~ s/\$lang/$lang/ge;
	print $lang_txt28;
}

sub page_401 {
# ACTs:
# 1. Install
# 2. Customize
# 3. Overview (Default)
	$act=$CGI_INPUT{'act'};
	$act1=$CGI_INPUT{'act1'};
	
	if ($act eq "Install") {
		my $lang79=&lang(79);
		$lang79=~ s/\$lang/$lang/ge;
		my $lang80=&lang(80);
		my $lang81=&lang(81);
		my $lang82=&lang(82);
		
		print $lang79;
		
		if ($act1 eq "InstallNow") {
			print qq~
				<table width="97%" border="0" cellspacing="2" cellpadding="2" align="center">
				<tr><td class="font">
					<br>$lang80<p>
			~;

			########################################
			# Install
			########################################
			if ($CGI_INPUT{'action'} eq 'Install') {
				if ($CGI_INPUT{'401'} eq 'yes') { &create_errorpage(401); }
				if ($CGI_INPUT{'403'} eq 'yes') { &create_errorpage(403); }
				if ($CGI_INPUT{'404'} eq 'yes') { &create_errorpage(404); }
				if ($CGI_INPUT{'500'} eq 'yes') { &create_errorpage(500); }
				print qq~<br><b>$lang81</b><br>~;
			}
			########################################
			# Uninstall
			########################################
			if ($CGI_INPUT{'action'} eq 'Uninstall') {
				if ($CGI_INPUT{'401'} eq 'yes') { &delete_errorpage(401); }
				if ($CGI_INPUT{'403'} eq 'yes') { &delete_errorpage(403); }
				if ($CGI_INPUT{'404'} eq 'yes') { &delete_errorpage(404); }
				if ($CGI_INPUT{'500'} eq 'yes') { &delete_errorpage(500); }
				print qq~<br>$lang82<b></b>~;
			}
			########################################
		
			print qq~			
					<br><br></td></tr>
				</table>
			~;
		} else {
			my $lang_txt31=&lang_txt(31);
			if(&check_errorpage(401) eq "YES") { $lang_txt31=~ s/\$401_checked/checked/ge; } else { $lang_txt31=~ s/\$401_checked//ge; }
			if(&check_errorpage(403) eq "YES") { $lang_txt31=~ s/\$403_checked/checked/ge; } else { $lang_txt31=~ s/\$403_checked//ge; }
			if(&check_errorpage(404) eq "YES") { $lang_txt31=~ s/\$404_checked/checked/ge; } else { $lang_txt31=~ s/\$404_checked//ge; }
			if(&check_errorpage(500) eq "YES") { $lang_txt31=~ s/\$500_checked/checked/ge; } else { $lang_txt31=~ s/\$500_checked//ge; }
			
			$lang_txt31=~ s/\$lang/$lang/ge;
			print $lang_txt31;
		}
	} elsif ($act eq "Customize") {
		my $lang_txt30=&lang_txt(30);
		$lang_txt30=~ s/\$lang/$lang/ge;
		$lang_txt30=~ s/\$user_domain/$user_domain/ge;
		print $lang_txt30;
	} else {
		my $lang_txt29=&lang_txt(29);
		$lang_txt29=~ s/\$lang/$lang/ge;
		print $lang_txt29;
	}
}

sub page_402 {
	my $act1=$CGI_INPUT{'act1'};
	my $lang11=&lang(11);
	my $lang12=&lang(12);
	my $lang_txt36=&lang_txt(36);

	my $htaccess_file = "/export/home/$userid/public_html/.htaccess";
	my $exist_bandwidth_protect = "";
		
	if($act1 eq "add") {
		my $check=0;
		my $deny_url=$CGI_INPUT{'deny_url'};
		$deny_url =~ s/http:\/\//''/gei;
		$deny_url = "http://" . $deny_url;
			
		if(-f $htaccess_file) {
			open(HTDATA,"<$htaccess_file");
			my @ht_data = <HTDATA>;
			close(HTDATA);
				
			open(HTDATA,">$htaccess_file");
				foreach(@ht_data) {
					chomp($_);
					if(/$deny_url$/) {
						$deny_url .= " already";
						$check = 1;
					} 
					
					if($_ eq '#end wcp deny website'){
						if($check eq "0") {
							print HTDATA 'RewriteCond %{HTTP_REFERER} ' . $deny_url . "\n";
							print HTDATA 'RewriteRule ^(.*)$ ' . $deny_url . "\n";
							$check = 1;
						}
					}
					print HTDATA $_ . "\n";
				}
				if($check eq "0") {
					print HTDATA "#\n" . '#start wcp deny website' . "\n";
					print HTDATA 'RewriteEngine on' . "\n";
					print HTDATA 'RewriteCond %{HTTP_REFERER} ' . $deny_url . "\n";
					print HTDATA 'RewriteRule ^(.*)$ ' . $deny_url . "\n";
					print HTDATA '#end wcp deny website' . "\n#\n";
				}
			close HTDATA;
		} else {
			open(HTDATA,">>$htaccess_file");
				print HTDATA "#\n" . '#start wcp deny website' . "\n";
				print HTDATA 'RewriteEngine on' . "\n";
				print HTDATA 'RewriteCond %{HTTP_REFERER} ' . $deny_url . "\n";
				print HTDATA 'RewriteRule ^(.*)$ ' . $deny_url . "\n";
				print HTDATA '#end wcp deny website' . "\n#\n";
			close HTDATA;
		}
		print "<script>alert('$deny_url added');</script>";
	} elsif($act1 eq "delete") {
		my $del_cod=$CGI_INPUT{'del_cod'};
		if(-f $htaccess_file) {
			open(HTDATA,"<$htaccess_file");
			my @ht_data = <HTDATA>;
			close(HTDATA);
				
			open(HTDATA,">$htaccess_file");
				foreach(@ht_data) {
					if(!/$del_cod$/){
						print HTDATA $_;
					}
				}
			close HTDATA;
		}
		print "<script>alert('$del_cod deleted');</script>";
	} elsif($act1 eq "denyon") {
		if(-f $htaccess_file) {
			$check = "0";
			open(HTDATA,"<$htaccess_file");
			while (<HTDATA>) {
				chomp $_; s/\r//;
				if($_ eq '#start wcp deny all website') {
					$check = "1";
					last;
				}
			}
			close HTDATA;
				
			if($check == "0") {
				open(HTDATA,">>$htaccess_file");
					print HTDATA '#start wcp deny all website' . "\n";
					print HTDATA 'RewriteEngine on' . "\n";
					print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://.*\.' . $user_domain . '/.*$      [NC]' . "\n";
					print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://.*\.' . $user_domain . '$      [NC]' . "\n";
					print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://' . $user_domain . '/.*$      [NC]' . "\n";
					print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://' . $user_domain . '$      [NC]' . "\n";
					print HTDATA 'RewriteCond %{HTTP_REFERER} !^$      [NC]' . "\n";
					print HTDATA 'RewriteRule .*\.(jpg|jpeg|gif|png|swf)$ http://' . $user_domain . '	[R,NC]' . "\n";
					print HTDATA '#end wcp deny all website' . "\n";
				close HTDATA;
			}			
		} else {
			open(HTDATA,">>$htaccess_file");
				print HTDATA '#start wcp deny all website' . "\n";
				print HTDATA 'RewriteEngine on' . "\n";
				print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://.*\.' . $user_domain . '/.*$      [NC]' . "\n";
				print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://.*\.' . $user_domain . '$      [NC]' . "\n";
				print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://' . $user_domain . '/.*$      [NC]' . "\n";
				print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://' . $user_domain . '$      [NC]' . "\n";
				print HTDATA 'RewriteCond %{HTTP_REFERER} !^$      [NC]' . "\n";
				print HTDATA 'RewriteRule .*\.(jpg|jpeg|gif|png|swf)$ http://' . $user_domain . '	[R,NC]' . "\n";
				print HTDATA '#end wcp deny all website' . "\n";
			close HTDATA;
		}
	} elsif($act1 eq "denyoff") {
		if(-f $htaccess_file) {
			$i = 0;
			open(HTDATA,"<$htaccess_file");
			my @ht_data = <HTDATA>;
			close(HTDATA);
			
			open(HTDATA,">$htaccess_file");
				while($ht_data[$i]) {
					chomp($ht_data[$i]);
					
					if($ht_data[$i] eq '#start wcp deny all website'){
						while($ht_data[$i]) {
							chomp($ht_data[$i]);
							if($ht_data[$i] eq '#end wcp deny all website'){
								$i++;
								last;
							} else { $i++; }
						}
					} else {
						print HTDATA $ht_data[$i] . "\n";
						$i++;
					}
				}
			close HTDATA;
		}
	}
	
	if(-f $htaccess_file) {
		#check deny all jpg gif swf
		$check_deny_all = "0";
		open(HTDATA,"<$htaccess_file");
		while (<HTDATA>) {
			chomp $_; s/\r//;
			if($_ eq '#start wcp deny all website') {
				$check_deny_all = "1";
				last;
			}
		}
		close HTDATA;
				
		if($check_deny_all == "0") {
			$opt_str = "<input name='act1' type='radio' value='denyon' onClick='this.form.submit();'> $lang11 &nbsp;<input name='act1' type='radio' value='denyoff' onClick='this.form.submit();' checked> $lang12";
		} elsif($check_deny_all == "1") {
			$opt_str = "<input name='act1' type='radio' value='denyon' onClick='this.form.submit();' checked> $lang11 &nbsp;<input name='act1' type='radio' value='denyoff' onClick='this.form.submit();'> $lang12";
		}
		
		#check deny url
		my $count = 0;
		my $trcolor = "#FFFFFF";
		my @temp_array=();
			
		open(HTDATA,"<$htaccess_file");
		while (<HTDATA>) {
			chomp $_; s/\r//;
			
			if($_ eq '#start wcp deny website') {
				while ($_ ne '#end wcp deny website') {
					$_=<HTDATA>;
					chomp $_; s/\r//;
					
					if($_ ne '#end wcp deny website') {
						my @db_data = split (/ /, $_);
						if($db_data[0] eq 'RewriteCond') {
							push @temp_array,$db_data[2];
						}
					} else { last;}
				}
				last;
			}
		}
		close HTDATA;
			
		my @deny_array = sort(@temp_array);
		foreach(@deny_array) {
			if ($count=="0") { $trcolor="#FFFFFF";$count=1;} else {$trcolor="#EEEEEE";$count=0;};
			$exist_bandwidth_protect .= qq{<tr bgcolor="$trcolor"><td class="font">$_</td><td align="center"><a href="/?p=402&act1=delete&lang=$lang&del_cod=$_"><img src="/images/delete.gif" alt="" width=20 height=20 border=0></a></td></tr>\n};
		}
	} else {
		$opt_str = "<input name='act1' type='radio' value='denyon' onClick='this.form.submit();'> $lang11 &nbsp;<input name='act1' type='radio' value='denyoff' onClick='this.form.submit();' checked> $lang12";
	}
	
	$lang_txt36 =~ s/\$lang/$lang/ge;
	$lang_txt36 =~ s/\$opt_str/$opt_str/ge;
	$lang_txt36 =~ s/\$exist_bandwidth_protect/$exist_bandwidth_protect/ge;
	
	print $lang_txt36;
}

sub page_403 {
	my $act=$CGI_INPUT{'act'};
	my $lang57=&lang(57);
	my $lang58=&lang(58);	
	my $lang_txt37=&lang_txt(37);

	my $htaccess_file = "/export/home/$userid/public_html/.htaccess";
	my $exist_ip_deny = "";
	
	if($act eq "add") {
		my $check=0;
		my $deny_url=$CGI_INPUT{'deny_url'};
		
		if(-f $htaccess_file) {
			open(HTDATA,"<$htaccess_file");
			my @ht_data = <HTDATA>;
			close(HTDATA);
			
			open(HTDATA,">$htaccess_file");
				foreach(@ht_data) {
					chomp($_);
					if(/$deny_url$/) {
						$deny_url .= " already";
						$check = 1;
					} 
					
					if($_ eq '#end wcp ip deny'){
						if($check eq "0") {
							print HTDATA 'deny from ' . $deny_url . "\n";
							$check = 1;
						}
					}
					print HTDATA $_ . "\n";
				}
				if($check eq "0") {
					print HTDATA "#\n" . '#start wcp ip deny' . "\n";
					print HTDATA '<Limit GET POST>' . "\n";
					print HTDATA '</Limit>' . "\n";
					print HTDATA 'deny from ' . $deny_url . "\n";
					print HTDATA '#end wcp ip deny' . "\n#\n";
				}
			close HTDATA;
		} else {
			open(HTDATA,">>$htaccess_file");
				print HTDATA "#\n" . '#start wcp ip deny' . "\n";
				print HTDATA '<Limit GET POST>' . "\n";
				print HTDATA '</Limit>' . "\n";
				print HTDATA 'deny from ' . $deny_url . "\n";
				print HTDATA '#end wcp ip deny' . "\n#\n";
			close HTDATA;
		}
		print "<script>alert('$deny_url $lang57');</script>";
	} elsif($act eq "delete") {
		my $del_cod=$CGI_INPUT{'del_cod'};
		if(-f $htaccess_file) {
			open(HTDATA,"<$htaccess_file");
			my @ht_data = <HTDATA>;
			close(HTDATA);
			
			open(HTDATA,">$htaccess_file");
				foreach(@ht_data) {
					if(!/deny from $del_cod$/){
						print HTDATA $_;
					}
				}
			close HTDATA;
		}
		print "<script>alert('$del_cod $lang58');</script>";
	}
	
	if(-f $htaccess_file) {
		my $count = 0;
		my $trcolor = "#FFFFFF";
		my @temp_array=();
		
		open(HTDATA,"<$htaccess_file");
		while (<HTDATA>) {
			chomp $_; s/\r//;
			
			if($_ eq '#start wcp ip deny') {
				while ($_ ne '#end wcp ip deny') {
					$_=<HTDATA>;
					chomp $_; s/\r//;
					
					if($_ ne '#end wcp ip deny') {
						my @db_data = split (/ /, $_);
						if(($db_data[0] eq 'deny') && ($db_data[1] eq 'from')) {
							push @temp_array,$db_data[2];
						}
					} else { last;}
				}
				last;
			}
		}
		close HTDATA;
		
		my @deny_array = sort(@temp_array);
		foreach(@deny_array) {
			if ($count=="0") { $trcolor="#FFFFFF";$count=1;} else {$trcolor="#EEEEEE";$count=0;};
			$exist_ip_deny .= qq{<tr bgcolor="$trcolor"><td class="font">$_</td><td align="center"><a href="/?p=403&act=delete&lang=$lang&del_cod=$_"><img src="/images/delete.gif" alt="" width=20 height=20 border=0></a></td></tr>\n};
		}
	}
	
	$lang_txt37 =~ s/\$lang/$lang/ge;
	$lang_txt37 =~ s/\$exist_ip_deny/$exist_ip_deny/ge;
	
	print $lang_txt37;
}

sub page_404 {
# ACTs:
# 1. Your SSL Site
# 2. Overview (Default)
	&wcpconf; # provide $wcp_sslhost
	my $act=$CGI_INPUT{'act'};

	if ($act eq "OwnSSL") {
		if($user_reseller eq "1"){
			my $lang_txt40=&lang_txt(40);
			$lang_txt40 =~ s/\$lang/$lang/ge;
			my $lang83=&lang(83);
			$lang_txt40=~ s/\$communilink_info/$lang83/ge;
			print $lang_txt40;
		} else {
			my $lang_txt101=&lang_txt(101);
			$lang_txt101 =~ s/\$lang/$lang/ge;
			print $lang_txt101;
		}
	} else {
		if ($wcp_sslhost ne "") {
			my $lang_txt38=&lang_txt(38);
			$lang_txt38 =~ s/\$lang/$lang/ge;
			$lang_txt38 =~ s/\$hostname/$hostname/ge;
			$lang_txt38 =~ s/\$wcp_sslhost/$wcp_sslhost/ge;
			my $temp = '~' . $userid . '/';
			$lang_txt38 =~ s/\$userid/$temp/ge;
			
			print $lang_txt38;
		} else {
			my $lang_txt39=&lang_txt(39);
			$lang_txt39 =~ s/\$lang/$lang/ge;
			
			print $lang_txt39;
		}
	}
}

sub page_405 {
	my $lang_txt41=&lang_txt(41);
	$lang_txt41 =~ s/\$lang/$lang/ge;

	print $lang_txt41;
}

sub page_406 {
	my $lang_txt42=&lang_txt(42);

	print $lang_txt42;
}

sub page_407 {
	my $bgcolour_main1 = "#DDDDDD";
	my $bgcolour_main2 = "#EFEFEF";
	my $act=$CGI_INPUT{'act'};
	my $act1=$CGI_INPUT{'act1'};
	my $lang87=&lang(87);
	
	if (&check_valueadd($userid,"407") eq "Y") {
		if ($act eq "Logs") {
			my $lang84=&lang(84);
			my $lang85=&lang(85);
			my $lang86=&lang(86);
			my $i=0;
			my $temp="";
			my $page=$CGI_INPUT{'page'};
			
			my $statement = qq~SELECT *,year(webvir_date) as year,month(webvir_date) as month,dayofmonth(webvir_date) as day FROM webvirus WHERE UPPER(CK_usr_cod) = UPPER("$userid") ORDER BY webvir_date DESC~;
			my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
		    $sth->execute || error('db_execute',$dbh->errstr);
			
			my $rows = $sth->rows;
			if ($page eq "") { $page=0; }
			else { $page = int($page) - 1; }
			my $count = 0;
			my $noperpage = 50;	
			
			while (my $row = $sth->fetchrow_hashref) {
				if(($page*$noperpage)<=$count and ($page*$noperpage+$noperpage-1)>=$count) {
					my $webvir_date = $row->{'webvir_date'};
					my $webvir_remark = $row->{'webvir_remark'};
					my $year = $row->{'year'};
					my $month = $row->{'month'};
					my $day = $row->{'day'};
					if ($month < 10 ) { $month = "0$month";}
					if ($day < 10 ) { $day = "0$day";}

					if ($webvir_remark eq "Virus Found") {
						#$webvir_remark = "<font color='red'>$webvir_remark</font>, <a href='http://$user_domain/virusresults/virusfile_$year$month$day.txt'>Download Results</a>";
						$webvir_remark = "<font color='red'>$webvir_remark</font>, <a href='#' OnClick=window.open('http://$user_domain/virusresults/virusfile_$year$month$day.txt','Statistics','toolbar=no,location=no,directories=no,status=yes,menubar=no,resizable=yes,copyhistory=no,scrollbars=yes')>$lang84</a>";
					}
					if ($i==0) {
						$temp .= "<tr bgcolor=$bgcolour_main1 class='font'>";
						$i = 1;
					} else {
						$temp .= "<tr bgcolor=$bgcolour_main2 class='font'>";
						$i = 0;
					}
					$temp .= "	<td>$webvir_date</td>";
					$temp .= "	<td>$webvir_remark</td>";
					$temp .= "</tr>";
				}
				$count++;
			}
			$sth->finish;
			
			my $nopage = ceil($rows/$noperpage);
			if ($nopage > 1) {
				my $pagelist = "";
				$temp .= "<tr bgcolor='white' class='font'>";
				if ($page > 0 ) { $pagelist .= " <a href='?p=407&act=Logs&lang=$lang&page=$page'>$lang85</a> "; }
				
				if(($nopage > 10) & ($page > 4)) {
					if(($nopage-$page)>5) {
						for (my $i=$page-4;$i<=$page+5;$i++) {
							if ($i-1 == $page) {
								$pagelist .= " $i ";
							} else {
								$pagelist .= " <a href='?p=407&act=Logs&lang=$lang&page=$i'>$i</a> ";
							}
						}
					} else {
						for (my $i=$nopage-page-9;$i<=$nopage;$i++) {
							if ($i-1 == $page) {
								$pagelist .= " $i ";
							} else {
								$pagelist .= " <a href='?p=407&act=Logs&lang=$lang&page=$i'>$i</a> ";
							}
						}
					}
				} else {
					if($nopage > 10) {$nopage=10;}
					for (my $i=1;$i<=$nopage;$i++) {
						if ($i-1 == $page) {
							$pagelist .= " $i ";
						} else {
							$pagelist .= " <a href='?p=407&act=Logs&lang=$lang&page=$i'>$i</a> ";
						}
					}
				}
				
				if ($page < $nopage-1 ) {
					my $k = $page+2;
					$pagelist .= " <a href='?p=407&act=Logs&lang=$lang&page=$k'>$lang86</a> "; }
				$temp .= "	<td colspan='5' align='center'>$pagelist</td>";
				$temp .= "</tr>";
			}
			
			my $lang_txt44=&lang_txt(44);
			$lang_txt44 =~ s/\$temp/$temp/ge;
			$lang_txt44 =~ s/\$lang87/$lang87/ge;
			$lang_txt44 =~ s/\$lang/$lang/ge;
			print $lang_txt44;
		} elsif ($act eq "Scans") {
			my $webpath= "/var/root/crons/webvirus.txt";
			my $temp="";
			my $msg="";
			my $lang11=&lang(11);
			my $lang12=&lang(12);
			my $lang88=&lang(88);
			my $lang89=&lang(89);
			my $lang90=&lang(90);
			   $lang90 =~ s/\$lang/$lang/ge;
			my $lang94=&lang(94);
			   $lang94 =~ s/\$lang/$lang/ge;
			my $lang_txt45=&lang_txt(45);
			
			if (($act1 eq "ON") or ($act1 eq "OFF")) {
				my $statement = qq~UPDATE preference SET usr_webvirus=upper("$act1") WHERE CK_usr_cod="$userid"~;
				my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
				$sth->execute || error('db_execute',$dbh->errstr);
				$sth->finish;
			} elsif ($act1 eq "scan") {
				my @rowdata;
				$rowdata[0]=$userid."\n";
				open(DATA,">>$webpath") || die $!;
					print DATA @rowdata;
				close(DATA);
				print "<script language='JavaScript'> \n <!-- \n";
				print "alert('$lang88')\n";
				print "//--> \n </script>\n";
			}
			
			open (VIRUSLIST, "<$webpath");
	        my @db_lines= <VIRUSLIST>;
	        close VIRUSLIST;
			my $j=0;
			unless ($db_lines[$j]) { $msg=$lang94; }
			while($db_lines[$j]) {
				chomp($db_lines[$j]);
			   	if ($db_lines[$j] eq "$userid") {
					$msg=$lang89;
					last;
			   	} else { $msg=$lang90; }
			   	$j++;
			}
			
			my $statement = qq~SELECT usr_webvirus FROM preference WHERE UPPER(CK_usr_cod) = UPPER("$userid")~;
			my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
		    $sth->execute || error('db_execute',$dbh->errstr);
			if (my $row = $sth->fetchrow_hashref) {
				my $usr_webvirus=$row->{'usr_webvirus'};
				if ($usr_webvirus eq "ON") {
					$temp = "<input name='act1' type='radio' value='ON' onClick='this.form.submit();' checked> $lang11 &nbsp;<input name='act1' type='radio' value='OFF' onClick='this.form.submit();'> $lang12";
				} else {
					$temp = "<input name='act1' type='radio' value='ON' onClick='this.form.submit();'> $lang11 &nbsp;<input name='act1' type='radio' value='OFF' onClick='this.form.submit();' checked> $lang12";
				}		
 			} else {
				$temp = "<input name='act1' type='radio' value='ON' onClick='this.form.submit();'> $lang11 &nbsp;<input name='act1' type='radio' value='OFF' onClick='this.form.submit();' checked> $lang12";
			}
			$lang_txt45 =~ s/\$temp/$temp/ge;
			$lang_txt45 =~ s/\$msg/$msg/ge;
			$lang_txt45 =~ s/\$lang87/$lang87/ge;
			$lang_txt45 =~ s/\$lang/$lang/ge;
			print $lang_txt45;
		} else {
			my $lang91=&lang(91);
			my $lang92=&lang(92);
			my $lang93=&lang(93);
			my $lang_txt46=&lang_txt(46);
			my $temp="";
			
			my $statement = qq~SELECT * , max( webvir_date ) FROM webvirus WHERE UPPER(CK_usr_cod) = UPPER("$userid") GROUP BY CK_usr_cod, webvir_date ORDER BY webvir_date desc~;
			my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
		    $sth->execute || error('db_execute',$dbh->errstr);
			if (my $row = $sth->fetchrow_hashref) {
				my $webvir_remark=$row->{'webvir_remark'};
				if ($webvir_remark eq "No Virus") {
					$temp = $lang91;
				} else {
					$temp = $lang92;
				}
			} else {
				$temp = $lang93;
 			}
			
			$lang_txt46 =~ s/\$temp/$temp/ge;
			$lang_txt46 =~ s/\$lang87/$lang87/ge;
			$lang_txt46 =~ s/\$lang/$lang/ge;
			print $lang_txt46;
		}
	} else {
		my $lang_txt43=&lang_txt(43);
		$lang_txt43 =~ s/\$res_info_com/$res_info_com/ge;
		if($user_reseller eq "1"){
			my $lang83=&lang(83);
			$lang_txt43 =~ s/\$communilink_info/$lang83/ge;
		} else {
			my $temp_info="&nbsp;";
			$lang_txt43 =~ s/\$communilink_info/$temp_info/ge;
		}
		print $lang_txt43;
	}
}

sub page_408 {
	my $bgcolour_main1 = "#DDDDDD";
	my $bgcolour_main2 = "#EFEFEF";
	
	my $act=$CGI_INPUT{'act'};
	my $act1=$CGI_INPUT{'act1'};
	my $file=$CGI_INPUT{'file'};
	my $lang87=&lang(87);
	
  	if (&check_valueadd($userid,"408") ne "N") {
    	if ($act eq "Logs") {
			my $lang85=&lang(85);
			my $lang86=&lang(86);
			my $i=0;
			my $temp="";
			my $page=$CGI_INPUT{'page'};
			
			my $statement="";
			if (&check_valueadd($userid,"408") eq "S") {
				$statement = qq~SELECT * FROM backup_log WHERE UPPER(usr_cod) = UPPER("$userid") AND bklog_mode = "S" ORDER BY bklog_date DESC,bklog_time DESC~;
			} elsif (&check_valueadd($userid,"408") eq "W") {
				$statement = qq~SELECT * FROM backup_log WHERE UPPER(usr_cod) = UPPER("$userid") AND bklog_mode = "W" ORDER BY bklog_date DESC,bklog_time DESC~;
			} elsif (&check_valueadd($userid,"408") eq "A") {
				$statement = qq~SELECT * FROM backup_log WHERE UPPER(usr_cod) = UPPER("$userid") ORDER BY bklog_date DESC,bklog_time DESC~;
			}
			my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
		       $sth->execute || error('db_execute',$dbh->errstr);
			
			my $rows = $sth->rows;
			if ($page eq "") { $page=0; } else { $page = int($page) - 1; }
			my $count = 0;
			my $noperpage = 50;	
			
			while (my $row = $sth->fetchrow_hashref) {
			if(($page*$noperpage)<=$count and ($page*$noperpage+$noperpage-1)>=$count) {
				   my $bklog_date = $row->{'bklog_date'};
				   my $bklog_time = $row->{'bklog_time'};
				   my $bklog_status = $row->{'bklog_status'};
				   my $bklog_remark = $row->{'bklog_remark'};
		
				   if ($i==0) {
					$temp .= "<tr bgcolor=$bgcolour_main1 class='font'>";
					$i = 1;
				   } else {
				    $temp .= "<tr bgcolor=$bgcolour_main2 class='font'>";
					$i = 0;
				   }
				   if ($bklog_time < 10) { $bklog_time = "0$bklog_time"; }

				   if ($bklog_status eq "Success") {
				  	   $temp .= "	<td>$bklog_date $bklog_time:00</td>";
					   $temp .= "	<td>$bklog_status</td>";
					   $temp .= "	<td>$bklog_remark</td>";
				   } else {
				   	   $temp .= "	<td><font color='red'>$bklog_date $bklog_time:00</font></td>";
					   $temp .= "	<td><font color='red'>$bklog_status</font></td>";
					   $temp .= "	<td><font color='red'>$bklog_remark</font></td>";
				   }
				   $temp .= "</tr>";
			}
			$count++;
			}
			$sth->finish;
			
			my $nopage = ceil($rows/$noperpage);
			if ($nopage > 1) {
				my $pagelist = "";
				$temp .= "<tr bgcolor='white' class='font'>";
				if ($page > 0 ) { $pagelist .= " <a href='?p=408&act=Logs&lang=$lang&page=$page'>$lang85</a> "; }
				
				if(($nopage > 10) & ($page > 4)) {
					if(($nopage-$page)>5) {
						for (my $i=$page-4;$i<=$page+5;$i++) {
							if ($i-1 == $page) { $pagelist .= " $i "; } else { $pagelist .= " <a href='?p=408&act=Logs&lang=$lang&page=$i'>$i</a> "; }
						}
					} else {
						for (my $i=$nopage-page-9;$i<=$nopage;$i++) {
							if ($i-1 == $page) { $pagelist .= " $i "; } else { $pagelist .= " <a href='?p=408&act=Logs&lang=$lang&page=$i'>$i</a> "; }
						}
					}
				} else {
					if($nopage > 10) {$nopage=10;}
					for (my $i=1;$i<=$nopage;$i++) {
						if ($i-1 == $page) { $pagelist .= " $i "; } else { $pagelist .= " <a href='?p=408&act=Logs&lang=$lang&page=$i'>$i</a> "; }
					}
				}
				
				if ($page < $nopage-1 ) { 
					my $k = $page+2;
					$pagelist .= " <a href='?p=408&act=Logs&lang=$lang&page=$k'>$lang86</a> ";
				}
				$temp .= "	<td colspan='5' align='center'>$pagelist</td>";
				$temp .= "</tr>";
			}
			
			my $lang_txt48=&lang_txt(48);
			$lang_txt48 =~ s/\$temp/$temp/ge;
			$lang_txt48 =~ s/\$lang87/$lang87/ge;
			$lang_txt48 =~ s/\$lang/$lang/ge;
			print $lang_txt48;
		} elsif ($act eq "Download") {
			my $lang95=&lang(95);
			my $i=0;
			my $j=0;
			my $temp_web="";
			my $temp_sql="";
			my $opt_string="";
			
			if ((&check_valueadd($userid,"408") eq "W") || (&check_valueadd($userid,"408") eq "A")){
				#------start gen web backup dwonload-------
				$backupwebdir="/export/home/$userid/backup/web/";
				$backupweblist="/export/home/$userid/backupweblist";
				$list_tgz=$backupwebdir . "$userid*.tgz | awk -F/ '{print \$7}'";
				system("ls -t $list_tgz >> $backupweblist");
		        open (DATALIST, "<$backupweblist");
		        my @db_lines= <DATALIST>;
		        close DATALIST;
				system("rm $backupweblist");
				while($db_lines[$j]) {
					if ($i==0) {
						$temp_web .= "<tr bgcolor=$bgcolour_main1 class='font'>";
						$i = 1;
				 	} else {
				    	$temp_web .= "<tr bgcolor=$bgcolour_main2 class='font'>";
						$i = 0;
			  		}
					chomp($db_lines[$j]);
			  		$temp_web .= "	<td>$db_lines[$j]</td>";
			  		$temp_web .= "	<td>/home/$userid/backup/web/</td>";
					find (sub {$temp_web_size = -s ;},"/home/$userid/backup/web/$db_lines[$j]");
					$temp_web_size = int($temp_web_size/1000);
					$temp_web .= "	<td>$temp_web_size</td>";
					$temp_web .= "	<td><a href='/file/dn.cgi?user=$userid&file=$db_lines[$j]'>$lang95</a></td>";
					$temp_web .= "</tr>\n";
			   		$j++;
				}
				#------End gen web backup download-------
			}
			
			if ((&check_valueadd($userid,"408") eq "S") || (&check_valueadd($userid,"408") eq "A")){
				#------start gen mySQl backup download-------
				$i=0;
				$j=0;
				$backupsqldir="/export/home/$userid/backup/mysql/";
				$backupsqllist="/export/home/$userid/backupsqllist";
				$list_tgz=$backupsqldir . "$userid*.sql | awk -F/ '{print \$7}'";
				system("ls -t $list_tgz >> $backupsqllist");
		        open (DATALIST, "<$backupsqllist");
		        my @db_lines= <DATALIST>;
		        close DATALIST;
				system("rm $backupsqllist");
				while($db_lines[$j]) {
					if ($i==0) {
						$temp_sql .= "<tr bgcolor=$bgcolour_main1 class='font'>";
						$i = 1;
				 	} else {
				    		$temp_sql .= "<tr bgcolor=$bgcolour_main2 class='font'>";
						$i = 0;
			  		}
					chomp($db_lines[$j]);
			  		$temp_sql .= "	<td>$db_lines[$j]</td>";
			  		$temp_sql .= "	<td>/home/$userid/backup/mysql/</td>";
					find (sub {$temp_sql_size = -s ;},"/home/$userid/backup/mysql/$db_lines[$j]");
					$temp_sql_size = int($temp_sql_size/1000);
					$temp_sql .= "	<td>$temp_sql_size</td>";
					$temp_sql .= "	<td><a href='/file/dn.cgi?user=$userid&file=$db_lines[$j]'>$lang95</a></td>";
					$temp_sql .= "</tr>\n";
			   		$j++;
				}
				#------End gen mySQL backup download-------
			}
			
			if (&check_valueadd($userid,"408") eq "S") {
				my $lang_txt49=&lang_txt(49);
				$lang_txt49 =~ s/\$temp_sql/$temp_sql/ge;
				$opt_string=$lang_txt49;
			} elsif (&check_valueadd($userid,"408") eq "W") {
				my $lang_txt50=&lang_txt(50);
				$lang_txt50 =~ s/\$temp_web/$temp_web/ge;
				$opt_string=$lang_txt50;
			} elsif (&check_valueadd($userid,"408") eq "A") {
				$lang_txt51=&lang_txt(51);
				$lang_txt51 =~ s/\$temp_web/$temp_web/ge;
				$lang_txt51 =~ s/\$temp_sql/$temp_sql/ge;
				$opt_string=$lang_txt51;
			}
			
			$opt_string =~ s/\$lang87/$lang87/ge;
			$opt_string =~ s/\$lang/$lang/ge;
			print $opt_string;
		} elsif ($act eq "Backup") {
			&checkquota_zfs($>);
			if ($DiskUsage eq "0") {
				$allow_copy = 10;
			} else {
				$allow_copy = int($DiskQuota/$DiskUsage);
			}
			
			($min,$hour,$day,$month,$year) = (localtime)[1,2,3,4,5];
			$year += 1900;
			$month++;
			if ($act1 eq "addnow") {
				my $opt=$CGI_INPUT{'opt'};
				my $cron_day=$CGI_INPUT{'cron_day'};
				my $cron_time=$CGI_INPUT{'cron_time'};
				my $cron_no=$CGI_INPUT{'cron_no'};
				my $mode=$CGI_INPUT{'mode'};
				my $cron_database=$CGI_INPUT{'cron_database'};
				my $dbhost=$CGI_INPUT{'dbhost'};
				my $dbusername=$CGI_INPUT{'dbusername'};
				my $dbuserpasswd=$CGI_INPUT{'dbuserpasswd'};
				
				if ($hour == 23 ) { $hour=0; } else { $hour ++;}
				
				if ($mode eq "S" and &check_connection("$dbhost","$cron_database","$dbusername","$dbuserpasswd") eq "false") {
					my $lang96=&lang(96);
					$lang96 =~ s/\$cron_database/$cron_database/ge;
					print $lang96;
				} elsif ($opt eq "immed") {
					my $statement = "";
					if ($mode eq "W") {
						$statement = qq~SELECT * FROM `backup_log` WHERE usr_cod="$userid" AND bklog_date="$year-$month-$day" AND bklog_status="Success" AND bklog_mode="W"~;
					} elsif ($mode eq "S") {
						$statement = qq~SELECT * FROM `backup_log` WHERE usr_cod="$userid" AND bklog_date="$year-$month-$day" AND bklog_status="Success" AND bklog_mode="S" AND bklog_database LIKE "%$cron_database%"~;
					}
					my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
					$sth->execute || error('db_execute',$dbh->errstr);
					if ($sth->fetchrow_hashref) {
						$sth->finish;
						print &lang(97);
					} else {
						$sth->finish;
						if ($mode eq "W") {
							$statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_date="$year-$month-$day" AND back_times="im" AND back_mode="W"~;
						} elsif ($mode eq "S") {
							$statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_date="$year-$month-$day" AND back_times="im" AND back_mode="S" AND back_database LIKE "%$cron_database%"~;
						}
						$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
						$sth->execute || error('db_execute',$dbh->errstr);
						if ($sth->fetchrow_hashref) {
							$sth->finish;
							print &lang(98);
						} else {
							$sth->finish;
							if ($mode eq "W") {
								$statement = qq~INSERT INTO `backup` VALUES ("","$year-$month-$day",$hour,"0","IM","W","-","$userid")~;	
							} elsif ($mode eq "S") {
								$statement = qq~INSERT INTO `backup` VALUES ("","$year-$month-$day",$hour,"0","IM","S","$cron_database|$dbusername|$dbuserpasswd|$dbhost","$userid")~;
							}
							$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
							$sth->execute || error('db_execute',$dbh->errstr);
							$sth->finish;
							print &lang(99);
						}
					}
				} elsif ($opt eq "cron") {
					if ($mode eq "W") {
						$statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_times<>"im" AND back_mode="W"~;
					} elsif ($mode eq "S") {
						$statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_times<>"im" AND back_mode="S" AND back_database LIKE "%$cron_database%"~;
					}
					$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
					$sth->execute || error('db_execute',$dbh->errstr);
					if ($sth->fetchrow_hashref) {
						$sth->finish;
						print &lang(100);
					} else {
						$sth->finish;
						if ($mode eq "W") {
							$statement = qq~INSERT INTO `backup` VALUES ("","$year-$month-$day",$cron_time,$cron_day,$cron_no,"W","-","$userid")~;
						} elsif ($mode eq "S") {
							$statement = qq~INSERT INTO `backup` VALUES ("","$year-$month-$day",$cron_time,$cron_day,$cron_no,"S","$cron_database|$dbusername|$dbuserpasswd|$dbhost","$userid")~;
						}
						$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
						$sth->execute || error('db_execute',$dbh->errstr);
						$sth->finish;
						print &lang(99);
					}
				}
			} elsif ($act1 eq "DeleteNow") {
				my $del_cod=$CGI_INPUT{'del_cod'};
				my $statement = qq~SELECT * FROM backup WHERE back_cod=$del_cod AND usr_cod="$userid"~;

				my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
				$sth->execute || error('db_execute',$dbh->errstr);
				my $row = $sth->fetchrow_hashref;
				$back_cod = $row->{'back_cod'};
				$back_date = $row->{'back_date'}; 
				$back_time = $row->{'back_time'};
				$back_mode = $row->{'back_mode'}; 
				$usr_cod = $row->{'usr_cod'}; 
				$sth->finish;
				
				if ($month < 10) { $month = "0$month"; }
				if ($day < 10) { $day = "0$day"; }
				if ($hour < 10) { $hour = "0$hour"; }
				if ($min < 10) { $min = "0$min"; }
   				$statement = qq~INSERT INTO backup_log VALUES ("","$back_date",$back_time,"Deleted","The Schedule deleted by user on $year-$month-$day $hour:$min.","$back_mode","-","$usr_cod")~;
				$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
				$sth->execute || error('db_execute',$dbh->errstr);
				$sth->finish;

				$statement = qq~DELETE FROM `backup` WHERE back_cod=$del_cod AND usr_cod="$userid" AND back_mode="$back_mode"~;
				$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
				$sth->execute || error('db_execute',$dbh->errstr);
				$sth->finish;
				print &lang(101);
			}
			my $temp_web="";
			my $temp_sql="";
			my $statement="";
			my $opt_string="";
			
			# start mysql
			$statement = qq~SELECT * FROM backup WHERE UPPER(usr_cod) = UPPER("$userid") AND back_mode = "S" ORDER BY back_date ASC,back_time ASC~;
			my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
		       $sth->execute || error('db_execute',$dbh->errstr);
			while (my $row = $sth->fetchrow_hashref) {
				my $back_cod = $row->{'back_cod'};
				my $back_date = $row->{'back_date'};
				my $back_time = $row->{'back_time'}; 
				my $back_every = $row->{'back_every'};
				my $back_times = $row->{'back_times'};
				my $back_database = $row->{'back_database'};
				my @db_data = split (/\|/, $back_database);
				
				my $tmp="";
				if ($back_times eq "IM") { $tmp="(Immediacy, Database:$db_data[0])"; }
				else { 
					my $lang102=&lang(102);
					$lang102 =~ s/\$back_every/$back_every/ge;
					$lang102 =~ s/\$back_times/$back_times/ge;
					$lang102 =~ s/\$db_name/$db_data[0]/ge;
					$tmp=$lang102;
				}
				if ($i==0) {
					$temp_sql .= "<tr bgcolor=$bgcolour_main1 class='font'>";
					$i = 1;
				} else {
				   	$temp_sql .= "<tr bgcolor=$bgcolour_main2 class='font'>";
					$i = 0;
				}
				if ($back_time < 10) { $back_time = "0$back_time"; }
				$temp_sql .= "	<td>$back_date $back_time:00 $tmp</td>";
				$temp_sql .= "	<td><a href='/?p=408&act=Backup&act1=DeleteNow&lang=$lang&del_cod=$back_cod'><img src='/images/delete.gif' alt='' width=20 height=20 border=0></a></td>";
				$temp_sql .= "</tr>";
			}
			$sth->finish;
			# end mysql
			
			# start web
			$statement = qq~SELECT * FROM backup WHERE UPPER(usr_cod) = UPPER("$userid") AND back_mode = "W" ORDER BY back_date ASC,back_time ASC~;
			my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
		    	$sth->execute || error('db_execute',$dbh->errstr);
			while (my $row = $sth->fetchrow_hashref) {
				my $back_cod = $row->{'back_cod'};
				my $back_date = $row->{'back_date'};
				my $back_time = $row->{'back_time'}; 
				my $back_every = $row->{'back_every'};
				my $back_times = $row->{'back_times'};
				
				my $tmp="";
				if ($back_times eq "IM") { $tmp="(Immediacy)"; }
				else { 
					my $lang103=&lang(103);
					$lang103 =~ s/\$back_every/$back_every/ge;
					$lang103 =~ s/\$back_times/$back_times/ge;
					$tmp=$lang103;
				}
				if ($i==0) {
					$temp_web .= "<tr bgcolor=$bgcolour_main1 class='font'>";
					$i = 1;
				} else {
					$temp_web .= "<tr bgcolor=$bgcolour_main2 class='font'>";
					$i = 0;
				}
				if ($back_time < 10) { $back_time = "0$back_time"; }
				$temp_web .= "	<td>$back_date $back_time:00 $tmp</td>";
				$temp_web .= "	<td><a href='/?p=408&act=Backup&act1=DeleteNow&lang=$lang&del_cod=$back_cod'><img src='/images/delete.gif' alt='' width=20 height=20 border=0></a></td>";
				$temp_web .= "</tr>";
			}
			$sth->finish;
			# end web
			my $lang_txt52=&lang_txt(52);
			$lang_txt52 =~ s/\$lang/$lang/ge;
  		    $lang_txt52 =~ s/\$temp_web/$temp_web/ge;
			my $lang_txt53=&lang_txt(53);
			$lang_txt53 =~ s/\$lang/$lang/ge;
  		    $lang_txt53 =~ s/\$temp_sql/$temp_sql/ge;
			
			# Start web allow copy
			my $allow_opt="";
			if ($allow_copy <= 0 ) { $allow_opt.="<option value='0'>00</option>"; }
			elsif ($allow_copy >= 10 ) {
				for(my $k=1;$k<=10;$k++) {
					if ($k==10) { $allow_opt.="<option value='$k'>$k</option>"; } else { $allow_opt.="<option value='$k'>0$k</option>"; }
				}
			} else {
				for(my $k=1;$k<=$allow_copy;$k++) {
					if ($k==10) { $allow_opt.="<option value='$k'>$k</option>"; } else { $allow_opt.="<option value='$k'>0$k</option>"; }
				}
			} 
			$lang_txt52=~ s/\$allow_copy/$allow_opt/ge;
			# end web allow copy
			
			# Start mysql allow copy
			$allow_opt="";
			
			
			if ($DiskUsage eq "0") {
				$allow_m_copy = 10;
			} else {
				$allow_m_copy = int(($DiskQuota-$DiskUsage)/20);
			}
			if ($allow_m_copy <= 0 ) { $allow_opt.="<option value='0'>00</option>"; }
			elsif ($allow_m_copy >= 10 ) {
				for(my $k=1;$k<=10;$k++) {
					if ($k==10) { $allow_opt.="<option value='$k'>$k</option>"; } else { $allow_opt.="<option value='$k'>0$k</option>"; }
				}
			} else {
				for(my $k=1;$k<=$allow_m_copy;$k++) {
					if ($k==10) { $allow_opt.="<option value='$k'>$k</option>"; } else { $allow_opt.="<option value='$k'>0$k</option>"; }
				}
			} 
			$lang_txt53=~ s/\$allow_copy/$allow_opt/ge;
			# End mysql allow copy
			
			my $db_name="";
			if ((&check_valueadd($userid,"408") eq "S") || (&check_valueadd($userid,"408") eq "A")) {
				my $database = "wcp4";
				my $dbusername = "wcpdbselect";
				my $dbuserpasswd = "Net#g7#u";
				my $host = "localhost";
				my $dsn_c = "DBI:mysql:database=$database;host=$host";
				my $dbh_c = DBI->connect($dsn_c, $dbusername, $dbuserpasswd);

				my $statement1 = qq~SHOW DATABASES LIKE "$userid%"~;
				my $sth1 = $dbh_c->prepare($statement1) || error('db_prepare',$dbh_c->errstr);
				$sth1->execute || error('db_execute',$dbh_c->errstr);
				my $name_f="Database (userid%)";
				while (my $myrow = $sth1->fetchrow_arrayref) {
					$database_name = $myrow->[0];
			  		$db_name.="<option value='$database_name'>$database_name</option>";
				}
				$sth1->finish;
				$dbh_c->disconnect;
				
				if ($db_name ne "") {
					$lang_txt53 =~ s/\$db_name/$db_name/ge;
				} else {
					$db_name.="<option value='NODB'>No Database</option>";
					$lang_txt53 =~ s/\$db_name/$db_name/ge;
				}
			}
			
			if (&check_valueadd($userid,"408") eq "S") {
				$opt_string=$lang_txt53;
			} elsif (&check_valueadd($userid,"408") eq "W") {
				$opt_string=$lang_txt52;
			} elsif (&check_valueadd($userid,"408") eq "A") {
				$opt_string=$lang_txt52."<br><br>".$lang_txt53;
			}

			my $lang_txt54=&lang_txt(54);
			$lang_txt54 =~ s/\$opt_string/$opt_string/ge;
			$lang_txt54 =~ s/\$lang87/$lang87/ge;
			$lang_txt54 =~ s/\$lang/$lang/ge;
			print $lang_txt54;
		} elsif ($act eq "Directions") {
			my $lang_txt55=&lang_txt(55);
			$lang_txt55 =~ s/\$userid/$userid/ge;
			$lang_txt55 =~ s/\$lang87/$lang87/ge;
			$lang_txt55 =~ s/\$lang/$lang/ge;
			print $lang_txt55;
		} else {
			my $lang11=&lang(11);
			my $lang12=&lang(12);
			my $lang_txt56=&lang_txt(56);
			my $tmp;
			my $statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_mode="W"~;
			my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
		    $sth->execute || error('db_execute',$dbh->errstr);
			if (my $row = $sth->fetchrow_hashref) {
				$tmp = "<font color='#008000'>$lang11</font>"
 			} else {
				$tmp = "<font color='#FF0000'>$lang12</font>"
			}
			$lang_txt56=~ s/\$enable_web/$tmp/ge;
			$sth->finish;
			$statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_mode="S"~;
			$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
		    $sth->execute || error('db_execute',$dbh->errstr);
			if (my $row = $sth->fetchrow_hashref) {
				$tmp = "<font color='#008000'>$lang11</font>"
 			} else {
				$tmp = "<font color='#FF0000'>$lang12</font>"
			}
			$lang_txt56=~ s/\$enable_sql/$tmp/ge;
			$sth->finish;
			
			$lang_txt56 =~ s/\$lang87/$lang87/ge;
			$lang_txt56 =~ s/\$lang/$lang/ge;
			print $lang_txt56;
		}
	} else {
		my $lang_txt47=&lang_txt(47);
		$lang_txt47 =~ s/\$res_info_com/$res_info_com/ge;
		if($user_reseller eq "1"){
			my $lang83=&lang(83);
			$lang_txt47 =~ s/\$communilink_info/$lang83/ge;
		} else {
			my $temp_info="&nbsp;";
			$lang_txt47 =~ s/\$communilink_info/$temp_info/ge;
		}
		print $lang_txt47;
	}
}

sub page_409 {
	my $lang_txt57=&lang_txt(57);
	$lang_txt57=~ s/\$res_info_com/$res_info_com/ge;
	
	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt57 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt57 =~ s/\$communilink_info/$temp_info/ge;
	}
	
	print $lang_txt57;
}

sub page_410 {
	my $bgcolour_main1 = "#DDDDDD";
	my $bgcolour_main2 = "#EFEFEF";
	
	my $act=$CGI_INPUT{'act'};
	my $act1=$CGI_INPUT{'act1'};
	my $lang87=&lang(87);
	
	if (&check_valueadd($userid,"410") eq "Y") {
		if ($act eq "Delete") {
			my $i=0;
			my $j=1;
			my $crontab="";
			my $temp_ct="";
			my $each_ct_content="";
			my $ct = new Config::Crontab;
			
			if( $act1 eq "DeleteNow") {
				my $min=$CGI_INPUT{'min'};
				my $hour=$CGI_INPUT{'hour'};
				my $day=$CGI_INPUT{'day'};
				my $month=$CGI_INPUT{'month'};
				my $dow=$CGI_INPUT{'dow'};
				my $del_cod=$CGI_INPUT{'del_cod'};
				my $comment=$CGI_INPUT{'comment'};
				
				if ($min eq "All") { $min = "*"; }
				if ($hour eq "All") { $hour = "*"; }
				if ($day eq "All") { $day = "*"; }
				if ($month eq "All") { $month = "*"; }
				if ($dow eq "All") { $dow = "*"; }
				$ct->read;
				my $temp_ct="";
				if ($comment eq "") { $temp_ct="$del_cod"; } else { $temp_ct="$del_cod $comment"; }
				my $temp_datetime ="$min $hour $day $month $dow";
				$delblock = $ct->block($ct->select(-type => 'event', -datetime => "$temp_datetime", -command_re => "$temp_ct"));
				#$delblock = $ct->block($ct->select(-type => 'event', -data => "$temp_ct"));
				#$delblock = $ct->block($ct->select(-type => 'event', -minute => "$min", -hour => "$hour", -dom => "$day", -month => "$month", -dow => "$dow", -command => "$del_cod $comment"));
				$ct->remove($delblock);
				$ct->write;
			}

			$ct->read;
			my $ct_content = $ct->dump;
			my @each_ct = split(/\n/, $ct_content);
			$j=1;
			foreach $each_ct_content (@each_ct) {
				my @each_ct_value = split(/ /, $each_ct_content);
				if ($each_ct_content ne "") {
					if ($i==0) {	$crontab .= "<tr bgcolor=$bgcolour_main1 class='font'>"; $i = 1;
					} else {	$crontab .= "<tr bgcolor=$bgcolour_main2 class='font'>"; $i = 0; }
					
					if ($each_ct_value[0] eq "*") { $each_ct_value[0] = "All"; }
					if ($each_ct_value[1] eq "*") { $each_ct_value[1] = "All"; }
					if ($each_ct_value[2] eq "*") { $each_ct_value[2] = "All"; }
					if ($each_ct_value[3] eq "*") { $each_ct_value[3] = "All"; }
					if ($each_ct_value[4] eq "*") { $each_ct_value[4] = "All"; }
					
					
					
					$crontab .= "	<td>$each_ct_value[0]</td>";
					$crontab .= "	<td>$each_ct_value[1]</td>";
					$crontab .= "	<td>$each_ct_value[2]</td>";
					$crontab .= "	<td>$each_ct_value[3]</td>";
					$crontab .= "	<td>$each_ct_value[4]</td>";
					$crontab .= "	<td>$each_ct_value[5] $each_ct_value[6]</td>";
					$crontab .= "	<td><a href='/?p=410&act=Delete&act1=DeleteNow&lang=$lang&min=$each_ct_value[0]&hour=$each_ct_value[1]&day=$each_ct_value[2]&month=$each_ct_value[3]&dow=$each_ct_value[4]&del_cod=$each_ct_value[5]&comment=$each_ct_value[6]'><img src='/images/delete.gif' alt='' width=20 height=20 border=0></a></td>";
					$crontab .= "</tr>";
				}
				$j++;
			}
			$sth->finish;
			
			my $lang_txt61=&lang_txt(61);
			$lang_txt61 =~ s/\$lang87/$lang87/ge;
			$lang_txt61=~ s/\$crontab/$crontab/ge;
			$lang_txt61 =~ s/\$lang/$lang/ge;
			print $lang_txt61;
		} elsif ($act eq "Add") {
			my $ct = new Config::Crontab;
			
			if( $act1 eq "AddNow") {
				my $cmd=$CGI_INPUT{'cmd'};
				
				my $all_mins=$CGI_INPUT{'all_mins'};
				my $mins=$CGI_INPUT{'mins'};
				my $all_hours=$CGI_INPUT{'all_hours'};
				my $hours=$CGI_INPUT{'hours'};
				my $all_days=$CGI_INPUT{'all_days'};
				my $days=$CGI_INPUT{'days'};
				my $all_months=$CGI_INPUT{'all_months'};
				my $months=$CGI_INPUT{'months'};
				my $all_dows=$CGI_INPUT{'all_dows'};
				my $dows=$CGI_INPUT{'dows'};
				
				#$cmd = "/home/$userid/" . $cmd;
				my $temp_cmd="";
				
				if ($all_mins eq "1") { $temp_cmd .= "* "; } else { $temp_cmd .= $mins . " "; }
				if ($all_hours eq "1") { $temp_cmd .= "* "; } else { $temp_cmd .= $hours . " "; }
				if ($all_days eq "1") { $temp_cmd .= "* "; } else { $temp_cmd .= $days . " "; }
				if ($all_months eq "1") { $temp_cmd .= "* "; } else { $temp_cmd .= $months . " "; }
				if ($all_dows eq "1") { $temp_cmd .= "* "; } else { $temp_cmd .= $dows . " "; }
				$temp_cmd .= $cmd;
				
				$ct->read;
				$ct->last(new Config::Crontab::Block(-type => "event", -data => "$temp_cmd"));
				$ct->write;
				my $lang104=&lang(104);
				print $lang104;
			}
			
			my $lang_txt60=&lang_txt(60);
			$lang_txt60 =~ s/\$lang87/$lang87/ge;
			$lang_txt60 =~ s/\$lang/$lang/ge;
			print $lang_txt60;
		} else {
			my $lang_txt59=&lang_txt(59);
			$lang_txt59 =~ s/\$lang87/$lang87/ge;
			$lang_txt59 =~ s/\$lang/$lang/ge;
			print $lang_txt59;
		}		
	} else {
		my $lang_txt58=&lang_txt(58);
		if($user_reseller eq "1"){
			my $lang83=&lang(83);
			$lang_txt58 =~ s/\$communilink_info/$lang83/ge;
		} else {
			my $temp_info="&nbsp;";
			$lang_txt58 =~ s/\$communilink_info/$temp_info/ge;
		}
		print $lang_txt58;
	}
}

sub page_500 {
	my $lang11=&lang(11);
	my $lang12=&lang(12);
	my $lang107=&lang(107);
	my $lang_txt62=&lang_txt(62);
	
    $lang107 =~ s/\$user_domain/$user_domain/ge;
    $lang107 =~ s/\$user_empd/$user_empd/ge;
	
	&checkemailoption($user_domain);
	&checkemailaccount($user_domain);
	
	if ($eop_option eq "A") {
		$Storage_Option = &lang(105);
	} else {
		my $lang106=&lang(106);
		$lang106 =~ s/\$eop_limit/$eop_limit/ge;
		$lang106 =~ s/\$eop_used/$eop_used/ge;
		$Storage_Option = $lang106;
	}
							
	$catchsmtp=&checkcatchsmtp($user_domain);
	if ( $catchsmtp eq "ON") {
		$Catch_SMTP = "<font color=\"#008000\">$lang11</font>";
	} else {
		$Catch_SMTP = "<font color=\"#FF0000\">$lang12</font>";
	}
						
	if($hostname =~ /^mars/i) {
		$Standard_SMTP = "<font color=\"#FF0000\">$lang12</font>";
		$Port_2620_SMTP = "<font color=\"#FF0000\">$lang12</font>";
	} else {
		if ( &portscan("smtp.$user_domain","25") eq "UP") {
			$Standard_SMTP = "<font color=\"#008000\">$lang11</font>";
		} else {
			$Standard_SMTP = "<font color=\"#FF0000\">$lang12</font>";
		}
		
		if ( &check_global_smtp("$user_domain") eq "UP") {
			$Port_2620_SMTP = "<font color=\"#008000\">$lang11</font>";
		} else {
			$Port_2620_SMTP = "<font color=\"#FF0000\">$lang12</font>";
		}
	}
	
	if ( &check_anti_virus($user_domain) eq "ON") {
		$Email_Virus_Scan = "<font color=\"#008000\">$lang11</font>";
	} else {
		$Email_Virus_Scan = "<font color=\"#FF0000\">$lang12</font>";
	}
	
	my $count=0;
	my $statement = qq~SELECT * FROM emailspace WHERE CK_usr_domain="$user_domain" order by esp_name~;
	my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
	$sth->execute || error('db_execute',$dbh->errstr);
	while (my $row = $sth->fetchrow_hashref) {
		if ($count==0) {
			$trcolor="#DDDDDD";
			$count=1;
		} else {
			$trcolor="#EFEFEF";
			$count=0;
		}
		if ($row->{'esp_name'} eq "postmaster") {$row->{'esp_name'}="<strong>$row->{'esp_name'}</strong>";}
		$esp_name	= $row->{'esp_name'};
		$esp_limit	= int($row->{'esp_limit'}/1048.576);
		$esp_used	= int($row->{'esp_used'}/1048.576);
		$esp_free	= $esp_limit-$esp_used;
		
		if (($row->{'esp_limit'}-$row->{'esp_used'})<0) {
			$esp_free="<font color=\"#FF0000\">$esp_free</font>";
			$esp_name="<font color=\"#FF0000\">$row->{'esp_name'}</font>";
		}
		$img_width	= $esp_used*2;
		if ($row->{'esp_used'}>100000) {
			$img_width=200;
			if ($row->{'esp_used'} > $row->{'esp_limit'}) {
				$table_bg="email_bg_100r.gif";
			} else {
				$table_bg="email_bg_100g.gif";
			}
		} else {
			if ($row->{'esp_used'} > $row->{'esp_limit'}) {
				$table_bg="email_bg_r.gif";
			} else {
				$table_bg="email_bg_g.gif";
			}
		}
		$emailspace_peruser .= qq{
		<tr bgcolor="$trcolor">
		    <td><font face="Verdana,Arial,Helvetica" size="-2">$esp_name</font></td>
		    <td align=right><font face="Verdana,Arial,Helvetica" size="-2">$esp_limit MB</font></td>
		    <td align=right><font face="Verdana,Arial,Helvetica" size="-2">$esp_used MB</font></td>
		    <td align=right><font face="Verdana,Arial,Helvetica" size="-2">$esp_free MB</font></td>
		    <td width="210">
				<table height="8" border="0" cellspacing="0" cellpadding="0" background="images/$table_bg">
				<tr><td><img src="/images/lie.gif" width=$img_width height=8 border=0></td></tr></table>
			</td>
		</tr>
		};
	}
	$sth->finish;
	
	$lang_txt62 =~ s/\$Storage_Option/$Storage_Option/ge;
	$lang_txt62 =~ s/\$Catch_SMTP/$Catch_SMTP/ge;
	$lang_txt62 =~ s/\$Standard_SMTP/$Standard_SMTP/ge;
	$lang_txt62 =~ s/\$Port_2620_SMTP/$Port_2620_SMTP/ge;
	$lang_txt62 =~ s/\$Email_Virus_Scan/$Email_Virus_Scan/ge;
	$lang_txt62 =~ s/\$ema_maxpop/$ema_maxpop/ge;
	$lang_txt62 =~ s/\$ema_pop/$ema_pop/ge;
	$lang_txt62 =~ s/\$ema_free_pop/$ema_free_pop/ge;
	$lang_txt62 =~ s/\$ema_maxfor/$ema_maxfor/ge;
	$lang_txt62 =~ s/\$ema_for/$ema_for/ge;
	$lang_txt62 =~ s/\$ema_free_for/$ema_free_for/ge;
	$lang_txt62 =~ s/\$ema_maxlist/$ema_maxlist/ge;
	$lang_txt62 =~ s/\$ema_list/$ema_list/ge;
	$lang_txt62 =~ s/\$ema_free_list/$ema_free_list/ge;
	$lang_txt62 =~ s/\$ema_maxauto/$ema_maxauto/ge;
	$lang_txt62 =~ s/\$ema_auto/$ema_auto/ge;
	$lang_txt62 =~ s/\$ema_free_auto/$ema_free_auto/ge;
	$lang_txt62 =~ s/\$emailspace_peruser/$emailspace_peruser/ge;
	$lang_txt62 =~ s/\$eop_update/$eop_update/ge;
	$lang_txt62 =~ s/\$lang107/$lang107/ge;
	print $lang_txt62;
}

sub page_501 {
	my $lang_txt98=&lang_txt(98);
	$lang_txt98 =~ s/\$user_domain/$user_domain/ge;
	$lang_txt98 =~ s/\$user_empd/$user_empd/ge;
	$lang_txt98 =~ s/\$lang/$lang/ge;
	
	print $lang_txt98;
}

sub page_502 {
	my $act=$CGI_INPUT{'act'};
	my $act1=$CGI_INPUT{'act1'};
	my $lang87=&lang(87);
	my $lang109=&lang(109);
	my $old_anti_spam="OFF";
	$spam_conf_file="/var/backend/spam/" . $user_domain;
	$spam_user_pref="/var/backend/spam_pref/$user_domain/user_prefs";
	if( -f $spam_user_pref) { $old_anti_spam="ON"; }
		
	if ($act eq "Spam") {
		my $temp="";
		if( $old_anti_spam eq "ON") {
			if ($act1 eq "Statistics") {
				my $cdate;
				my $daily_stat="/file/graph_spam.php?";
				my $monthly_stat="/file/graph_spam.php?";
					
				# start daily Statistic
				for(my $i=7;$i>=0;$i--) {
					$s_select = qq~SELECT DATE_sub(curdate(),INTERVAL $i DAY) AS cdate~;
					my $sth = $dbh->prepare($s_select) || error('db_prepare',$dbh->errstr);
					$sth->execute || die $!;
					if (my $row = $sth->fetchrow_hashref) { $cdate=$row->{'cdate'}; }
					
					my @adate = split(/-/, $cdate);
					my $year = $adate[0];
					my $month = $adate[1];
					my $day = $adate[2];
					$sth->finish;
						
					my $statement="";
					my $statement1="";
					if ($user_aliasdomain ne "") {
						my @aliasdomain = split(/\|/, $user_aliasdomain);
						my $j=0;
						while ($aliasdomain[$j]) {
							$statement1.=qq~OR ((UPPER(emspam_to) LIKE UPPER("%\@$aliasdomain[$j]")) AND (NOT (UPPER(emspam_to) LIKE UPPER("%\@$aliasdomain[$j].%"))))~;
							$j++;
						}
					} 
					my $statement = qq~SELECT count(*) as count FROM emailspamlog WHERE emspam_date LIKE "$year-$month-$day%" AND (((UPPER(emspam_to) LIKE UPPER("%\@$user_domain")) AND (NOT (UPPER(emspam_to) LIKE UPPER("%\@$user_domain.%"))))~;
					$statement.=$statement1.")";
		
					my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
					$sth->execute || die $!;
					if (my $row = $sth->fetchrow_hashref) {
						my $count=$row->{'count'};
						$daily_stat.="data[]=$month-$day:$count&";
					}
					$sth->finish;
				}
				$daily_stat.="opt=d";
				# end daily Statistic
					
				# start monthly Statistic			
				for(my $i=6;$i>=0;$i--) {
					$s_select = qq~SELECT DATE_sub(curdate(),INTERVAL $i month) AS cdate~;
					my $sth = $dbh->prepare($s_select) || error('db_prepare',$dbh->errstr);
					$sth->execute || die $!;
					if (my $row = $sth->fetchrow_hashref) { $cdate=$row->{'cdate'}; }
					
					my @adate = split(/-/, $cdate);
					my $year = $adate[0];
					my $month = $adate[1];
					my $day = $adate[2];
					$sth->finish;
						
					my $statement="";
					my $statement1="";
					if ($user_aliasdomain ne "") {
						my @aliasdomain = split(/\|/, $user_aliasdomain);
						my $j=0;
						while ($aliasdomain[$j]) {
							$statement1.=qq~OR (UPPER(emspamrpt_domain) LIKE UPPER("%\@$aliasdomain[$j]"))~;
							$j++;
						}
					}
					my $statement = "";
					if($i == "0") {
						$statement = qq~SELECT count(*) as count FROM emailspamlog WHERE emspam_date LIKE "$year-$month%" AND ((UPPER(emspam_to) LIKE UPPER("%\@$user_domain")) ~;
					} else {
						$statement = qq~SELECT emspamrpt_count as count FROM emailspamlog_rpt WHERE ((UPPER(emspamrpt_domain) = UPPER("$user_domain")) AND emspamrpt_date LIKE "$year-$month%" ~;
					}
					$statement.=$statement1.")";
		
					my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
					$sth->execute || die $!;
					if (my $row = $sth->fetchrow_hashref) {
						my $count=$row->{'count'};
						$monthly_stat.="data[]=$month:$count&";
					} else {
						$monthly_stat.="data[]=$month:0&";
					}
					$sth->finish;
				}
				$monthly_stat.="opt=m";
				# end monthly Statistic
				
				
				my $lang_txt68=&lang_txt(68);
				$lang_txt68 =~ s/\$daily_stat/$daily_stat/ge;
				$lang_txt68 =~ s/\$monthly_stat/$monthly_stat/ge;
				$lang_txt68 =~ s/\$lang87/$lang87/ge;
				$lang_txt68 =~ s/\$lang/$lang/ge;
				print $lang_txt68;
			} elsif ($act1 eq "WhiteBlacklist") {
				my $temp="";
				my $act2=$CGI_INPUT{'act2'};
				my $user_perf_conf="";
				
				if($act2 eq "Add") {
					my $opt=$CGI_INPUT{'opt'};
					my $email_addr=$CGI_INPUT{'email_addr'};
						
					if($email_addr =~ /[a-zA-z]*@*\.[a-zA-Z]*/) {
						open (USR_PREF, "<$spam_user_pref");
						my @db_lines= <USR_PREF>;
						close USR_PREF;
						my $nture=0;
						foreach $db_line (@db_lines) {
							my @db_value = split(/ /, $db_line);
							chomp $db_value[1];
							if($db_value[1] eq $email_addr) { $nture=1; last; }
						}
						if($nture==0) {
							open (USR_PREF, ">>$spam_user_pref");
							my @db_line_add;
							$db_line_add[0]=$opt." ".$email_addr."\n";
							print USR_PREF $db_line_add[0];
							close USR_PREF;
							my $lang110=&lang(110);
							print qq~<script language="JavaScript"> alert("$lang110"); </script> ~;
						} else {
							my $lang111=&lang(111);
							print qq~<script language="JavaScript"> alert("$lang111"); </script> ~;
						}
					} else {
						my $lang112=&lang(112);
						print qq~<script language="JavaScript"> alert("$lang112"); </script> ~;
					}
				} elsif($act2 eq "Delete") {
					my $opt=$CGI_INPUT{'opt'};
					my $val=$CGI_INPUT{'val'};
						
					open (USR_PREF, "<$spam_user_pref");
					my @db_lines= <USR_PREF>;
					close USR_PREF;
						
					if($opt eq "B"){$opt="blacklist_from"; } elsif($opt eq "W") {$opt="whitelist_from"; }
					my $delete_text="$opt $val\n";
					my $i=0;
						
					open (USR_PREF, ">$spam_user_pref");
					while($db_lines[$i]) {
						if($db_lines[$i] eq "$delete_text"){}
						else{ print USR_PREF $db_lines[$i]; }
						$i++;
					}
					close USR_PREF;
					my $lang113=&lang(113);
					print qq~<script language="JavaScript"> alert("$lang113"); </script> ~;
				}
				
				open (USR_PREF, "<$spam_user_pref");
				my @db_lines= <USR_PREF>;
				close USR_PREF;
				my $i=0;
				my $lang114=&lang(114);
				my $lang115=&lang(115);
				foreach $db_line (@db_lines) {
					my @db_value = split(/ /, $db_line);
					if($db_value[0] eq "blacklist_from") {
						chomp $db_value[1];
						if($i==0){$df_color="#EEEEEE";$i=1;} else {$df_color="#FFFFFF";$i=0;}
						$user_perf_conf.=qq~<tr bgcolor="$df_color" class="font"><td height="24">$lang114 $db_value[1]</td>
										   <td align="center" height="24"><a href="/?p=502&act=Spam&act1=WhiteBlacklist&act2=Delete&lang=$lang&opt=B&val=$db_value[1]"><img src="/images/delete.gif" alt="Delete" width=20 height=20 border=0></a></td></tr>~;
					} elsif($db_value[0] eq "whitelist_from") {
						chomp $db_value[1];
						if($i==0){$df_color="#EEEEEE";$i=1;} else {$df_color="#FFFFFF";$i=0;}
						$user_perf_conf.=qq~<tr bgcolor="$df_color" class="font"><td height="24">$lang115 $db_value[1]</td>
										   <td align="center" height="24"><a href="/?p=502&act=Spam&act1=WhiteBlacklist&act2=Delete&lang=$lang&opt=W&val=$db_value[1]"><img src="/images/delete.gif" alt="Delete" width=20 height=20 border=0></a></td></tr>~;
					}
				}
				
				my $lang_txt67=&lang_txt(67);
				$lang_txt67 =~ s/\$user_perf_conf/$user_perf_conf/ge;
				$lang_txt67 =~ s/\$lang87/$lang87/ge;
				$lang_txt67 =~ s/\$lang/$lang/ge;
				print $lang_txt67;
			} else {
				my $act2=$CGI_INPUT{'act2'};
				my $value_1 = "1 ";
				my $value_2 = "2 ";
				my $value_3 = "3 ";
					
				my $mark_4 = "4 ";
				my $mark_5 = "5 ";
				my $mark_6 = "6 ";
				my $mark_7 = "7 ";
				my $mark_8 = "8 ";
				my $mark_9 = "9 ";
					
				if ($act2 eq "Update") {
					my $update_option=$CGI_INPUT{'update_option'};
					if( -f $spam_conf_file) {
						open (SPAM, ">$spam_conf_file");
						my @db_lines;
						$db_lines[0]=$update_option."\n";
						print SPAM $db_lines[0];
						close SPAM;
						my $lang110=&lang(110);
						print qq{<script language="JavaScript"> alert("$lang110"); </script> };
					} else {
						my $lang116=&lang(116);
						print qq{<script language="JavaScript"> alert("$lang116"); </script> };
					}
				}
					
				if ($act2 eq "UpdateMark") {
					my $update_moption=$CGI_INPUT{'update_moption'};
					if( -f $spam_user_pref) {
						open (SPAM, "<$spam_user_pref");
							my @db_lines= <SPAM>;
						close SPAM;
						open (SPAM, ">$spam_user_pref");
							my @db_line;
							$db_line[0]="required_hits ".$update_moption."\n";
							foreach(@db_lines) {
								if($_ =~ /required_hits/) {
									if($update_moption eq "4") {
										chomp $_;
										my @temp = split(/ /, $_);
										if ($temp[1] > 4) {
											$db_line[0]="required_hits 4\n";
										} else {
											$db_line[0]="required_hits ".$temp[1]."\n";
										}
									}
									print SPAM $db_line[0];
								} else {
									print SPAM $_;
								}
							}
						close SPAM;
						my $lang110=&lang(110);
						print qq{<script language="JavaScript"> alert("$lang110"); </script> };
					} else {
						my $lang116=&lang(116);
						print qq{<script language="JavaScript"> alert("$lang116"); </script> };
					}
				}
					
				if( -f $spam_conf_file) {
					open (SPAM, "<$spam_conf_file");
					my @db_lines= <SPAM>;
					close SPAM;
					if ($db_lines[0] == 1) {
						$value_1 .= "checked";
					} elsif ($db_lines[0] == 2) {
						$value_2 .= "checked";
					} elsif ($db_lines[0] == 3) {
						$value_3 .= "checked";
					}
				}
					
				if( -f $spam_user_pref) {
					open (SPAM, "<$spam_user_pref");
					my @db_lines= <SPAM>;
					close SPAM;
					foreach(@db_lines) {
						if($_ =~ /required_hits/) { 
							chomp $_;
							my @temp = split(/ /, $_);
							
							if ($temp[1] <= 4) {
								$mark_4 .= "checked";
							} elsif ($temp[1] == 5) {
								$mark_5 .= "checked";
							} elsif ($temp[1] == 6) {
								$mark_6 .= "checked";
							} elsif ($temp[1] == 7) {
								$mark_7 .= "checked";
							} elsif ($temp[1] == 8) {
								$mark_8 .= "checked";
							} elsif ($temp[1] == 9) {
								$mark_9 .= "checked";
							}
						}
					}
				}
				
				my $lang_txt69=&lang_txt(69);
				$lang_txt69=~ s/\$value_1/$value_1/ge;
				$lang_txt69=~ s/\$value_2/$value_2/ge;
				$lang_txt69=~ s/\$value_3/$value_3/ge;
				$lang_txt69=~ s/\$mark_4/$mark_4/ge;
				$lang_txt69=~ s/\$mark_5/$mark_5/ge;
				$lang_txt69=~ s/\$mark_6/$mark_6/ge;
				$lang_txt69=~ s/\$mark_7/$mark_7/ge;
				$lang_txt69=~ s/\$mark_8/$mark_8/ge;
				$lang_txt69=~ s/\$mark_9/$mark_9/ge;
				$lang_txt69 =~ s/\$lang87/$lang87/ge;
				$lang_txt69 =~ s/\$lang/$lang/ge;
				print $lang_txt69;
			}
		} else {
			my $lang_txt63=&lang_txt(63);
			my $lang130=&lang(130);
			my $lang131=&lang(131);
			$lang_txt63 =~ s/\$lang/$lang/ge;
			
			if($user_reseller eq "1"){
				if($old_anti_spam eq "OFF") {
					$lang130 =~ s/502\&act\=Spam/505/ge;
					$lang131 =~ s/502\&act\=Spam/505/ge;
				}
			} else {
				if($old_anti_spam eq "OFF") {
					$lang130 = "";
					$lang131 = "";
				}
			}
		
			$lang_txt63 =~ s/\$menu_str/$lang130/ge;
			$lang_txt63 =~ s/\$spam_usemap/$lang131/ge;
			print $lang_txt63;
		}
	} elsif ($act eq "Atts") {
		my $block_atts="";
		my $block_atts_file="/var/qmail/control/simcontrol";
		
		if(-f $block_atts_file) {
			open(ATTS,"<$block_atts_file") || die $!;
			@block_atts_file = <ATTS>;
			close(ATTS);
			
			my $has_domain="no";
			my $all_domain="0";
			my $i=0;
			foreach(@block_atts_file) {
				if(/^$user_domain/) { 
					$has_domain=$i;
				}
				if(/^:/) {
					$all_domain=$i;
				}
				$i++;
			}
			
			my $block_atts_list="";
			
			if($has_domain eq "no") {
				$block_atts_list=$block_atts_file[$all_domain];
			} else {
				$block_atts_list=$block_atts_file[$has_domain];
			}
			
			my @db_data = split(/attach\=/,$block_atts_list);
			my @block_atts_sort = split(/:/,$db_data[1]);
			
			@block_atts_sort = sort(@block_atts_sort);
			$block_atts_length=@block_atts_sort;
			if($block_atts_length != "0") {
				if (($block_atts_length%2) == "0") {
					$block_half_length=int($block_atts_length/2);
				} else {
					$block_half_length=int($block_atts_length/2)+1;
				}
				for(my $i=1;$i<=$block_half_length;$i++) {
					if (index($block_atts_sort[$i-1],".") eq "0") {
						$block_atts_sort[$i-1]="*".$block_atts_sort[$i-1];
					}
				
					if (($block_half_length+$i) > $block_atts_length) {
						$block_atts.="<tr><td class='font'><b>$i.</b> $block_atts_sort[$i-1]</td></tr>";
					} else {
						my $j=$block_half_length+$i;
						if (index($block_atts_sort[$j-1],".") eq "0") {
							$block_atts_sort[$j-1]="*".$block_atts_sort[$j-1];
						}
						$block_atts.="<tr><td width='50%' class='font'><b>$i.</b> $block_atts_sort[$i-1]</td><td width='50%' class='font'><b>$j.</b> $block_atts_sort[$j-1]</td></tr>";
					}
				}
			} else {
				$block_atts = "<tr><td class='font'>$lang109</td></tr>";
			}
		} else {
			$block_atts = "<tr><td class='font'>$lang109</td></tr>";
		}

		my $lang_txt66=&lang_txt(66);
		$lang_txt66 =~ s/\$block_atts/$block_atts/ge;
		$lang_txt66 =~ s/\$lang/$lang/ge;
		my $lang130=&lang(130);
		
		if($user_reseller eq "1"){
			if($old_anti_spam eq "OFF") {
				$lang130 =~ s/502\&act\=Spam/505/ge;
			}
		} else {
			if($old_anti_spam eq "OFF") {
				$lang130 = "";
			}
		}
		
		$lang_txt66 =~ s/\$menu_str/$lang130/ge;
		print $lang_txt66;
	} elsif ($act eq "IP") {
		my $block_ip="";
		my $block_ip_file="/var/vpopmail/etc/tcp.smtp";
		
		if(-f $block_ip_file) {
			open(IP,"<$block_ip_file") || die $!;
			@block_ip_file = <IP>;
			close(IP);
			
			my $j=0;
			while($block_ip_file[$j]) {
				chomp $block_ip_file[$j];
				my @db_data = split (/\:/,$block_ip_file[$j]);
				if ((index($db_data[0],"#") eq "-1") or (index($db_data[0],"#") ne "0")) {
					if ($db_data[1] eq "deny") {
						 $block_ip_sort[$#block_ip_sort+1]=$db_data[0];
					}
				}
				$j++;
			}

			@block_ip_sort = sort(@block_ip_sort);
			$block_ip_length=@block_ip_sort;
			
			if($block_ip_length != "0") {
				if (($block_ip_length%2) == "0") {
					$block_half_length=int($block_ip_length/2);
				} else {
					$block_half_length=int($block_ip_length/2)+1;
				}
				for(my $i=1;$i<=$block_half_length;$i++) {
					if (($block_half_length+$i) > $block_ip_length) {
						$block_ip.="<tr><td class='font'><b>$i.</b> $block_ip_sort[$i-1]</td></tr>";
					} else {
						my $j=$block_half_length+$i;
						$block_ip.="<tr><td width='50%' class='font'><b>$i.</b> $block_ip_sort[$i-1]</td><td width='50%' class='font'><b>$j.</b> $block_ip_sort[$j-1]</td></tr>";
					}
				}
			} else {
				$block_ip = "<tr><td class='font'>$lang109</td></tr>";
			}
		} else {
			$block_ip = "<tr><td class='font'>$lang109</td></tr>";
		}
		
		my $lang_txt65=&lang_txt(65);
		$lang_txt65 =~ s/\$block_ip/$block_ip/ge;
		$lang_txt65 =~ s/\$lang/$lang/ge;
		my $lang130=&lang(130);
		
		if($user_reseller eq "1"){
			if($old_anti_spam eq "OFF") {
				$lang130 =~ s/502\&act\=Spam/505/ge;
			}
		} else {
			if($old_anti_spam eq "OFF") {
				$lang130 = "";
			}
		}
		
		$lang_txt65 =~ s/\$menu_str/$lang130/ge;
		print $lang_txt65;
	} elsif ($act eq "Senders") {
		my $block_sender="";
		my $block_sender_file="/var/qmail/control/badmailfrom";
		
		if(-f $block_sender_file) {
			open(Sender,"<$block_sender_file") || die $!;
			@block_email = <Sender>;
			close(Sender);
			@block_email = sort(@block_email);
			$block_email_length=@block_email;
			
			if (($block_email_length%2) == "0") {
				$block_half_length=int($block_email_length/2);
			} else {
				$block_half_length=int($block_email_length/2)+1;
			}
			for(my $i=1;$i<=$block_half_length;$i++) {
				if (($block_half_length+$i) > $block_email_length) {
					$block_sender.="<tr><td class='font'><b>$i.</b> $block_email[$i-1]</td></tr>";
				} else {
					my $j=$block_half_length+$i;
					$block_sender.="<tr><td width='50%' class='font'><b>$i.</b> $block_email[$i-1]</td><td width='50%' class='font'><b>$j.</b> $block_email[$j-1]</td></tr>";
				}
			}
		} else {
			$block_sender = "<tr><td class='font'>$lang109</td></tr>";
		}
		
		my $lang_txt64=&lang_txt(64);
		$lang_txt64 =~ s/\$block_sender/$block_sender/ge;
		$lang_txt64 =~ s/\$lang/$lang/ge;
		my $lang130=&lang(130);
		
		if($user_reseller eq "1"){
			if($old_anti_spam eq "OFF") {
				$lang130 =~ s/502\&act\=Spam/505/ge;
			}
		} else {
			if($old_anti_spam eq "OFF") {
				$lang130 = "";
			}
		}
		
		$lang_txt64 =~ s/\$menu_str/$lang130/ge;
		print $lang_txt64;
	} else {
		my $lang_txt63=&lang_txt(63);
		my $lang130=&lang(130);
		my $lang131=&lang(131);
		$lang_txt63 =~ s/\$lang/$lang/ge;
		
		if($user_reseller eq "1"){
			if($old_anti_spam eq "OFF") {
				$lang130 =~ s/502\&act\=Spam/505/ge;
				$lang131 =~ s/502\&act\=Spam/505/ge;
			}
		} else {
			if($old_anti_spam eq "OFF") {
				$lang130 = "";
				$lang131 = "";
			}
		}
		
		$lang_txt63 =~ s/\$menu_str/$lang130/ge;
		$lang_txt63 =~ s/\$spam_usemap/$lang131/ge;
		print $lang_txt63;
	}
}

sub page_503 {	
	my $act=$CGI_INPUT{'act'};
	if ($act eq "Lates") {
		my $lang_txt71=&lang_txt(71);
		$lang_txt71 =~ s/\$lang/$lang/ge;
		print $lang_txt71;
	} else {
		my $lang_txt70=&lang_txt(70);
		$lang_txt70 =~ s/\$lang/$lang/ge;
		print $lang_txt70;
	}
}

sub page_504 {
	my $lang_txt72=&lang_txt(72);

	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt72 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt72 =~ s/\$communilink_info/$temp_info/ge;
	}
	
	print $lang_txt72;
}

sub page_505 {
	my $lang_txt73=&lang_txt(73);

	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt73 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt73 =~ s/\$communilink_info/$temp_info/ge;
	}
	
	print $lang_txt73;
}

sub page_506 {
	my $lang_txt74=&lang_txt(74);
	$lang_txt74 =~ s/\$lang/$lang/ge;
	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt74 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt74 =~ s/\$communilink_info/$temp_info/ge;
	}
	
	print $lang_txt74;
}

sub page_507 {
	my $lang_txt75=&lang_txt(75);
	
	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt75 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt75 =~ s/\$communilink_info/$temp_info/ge;
	}
	
	print $lang_txt75;
}

sub page_600 {
	my $act=$CGI_INPUT{'act'};
	
	if ($act eq "Overview") {
		my $lang_txt88=&lang_txt(88);
		$lang_txt88 =~ s/\$lang/$lang/ge;
		print $lang_txt88;
	} else {
		my $lang113=&lang(113); #Delete Success
		my $lang117=&lang(117); #Change
		my $lang118=&lang(118); #Install
		my $lang119=&lang(119); #Uninstall
		my $lang121=&lang(121); #Install Success
		my $lang122=&lang(122); #Update Success
		my $lang123=&lang(123); #Add Success
		my $lang124=&lang(124); 
		my $lang125=&lang(125); #Uninstall Success
		
		my $lang_txt89=&lang_txt(89);
		
		my $config_path="/var/wcp4/$userid/config/counter";
		my $user_home = "/home/$userid/public_html";
		
		if(-f $config_path) {
			my $act1=$CGI_INPUT{'act1'};
			if($act1 eq "modify") {
				my $is_install = $CGI_INPUT{'install'};
				my $prog_path = $CGI_INPUT{'prog_path'};
				my $StatDir = $CGI_INPUT{'StatDir'};
				my $ImagePath = $CGI_INPUT{'ImagePath'};
				my $CounterType = $CGI_INPUT{'CounterType'};
				my $val_cookie = $CGI_INPUT{'val_cookie'};
				my $set_hours = $CGI_INPUT{'set_hours'};
				my $val_zeros = $CGI_INPUT{'val_zeros'};
				
				if($val_cookie eq "on") { $val_cookie = "yes"; } else { $val_cookie = "no"; }
				
				if($is_install ne "") {
					if($prog_path eq "") { $prog_path = '/cgi-bin/default/counter/'; }
					if($StatDir eq "") { $StatDir = '/default_prog/counter/database/'; }
					if($ImagePath eq "") { $ImagePath = '/default_prog/counter/images/'; }
					
					my $wcp_prog = "/var/backend/wcp/program/counter/";
					my $temp_copy = "";
					my $sys = `mkdir -p $user_home$prog_path`;
					$sys = `mkdir -p $user_home$StatDir`;
					$sys = `mkdir -p $user_home$ImagePath`;
					
					$temp_copy = $wcp_prog . "counter.cgi " . $user_home . $prog_path;
					$sys = `cp -rp $temp_copy`;
					$temp_copy = $wcp_prog . "images/* " . $user_home . $ImagePath;
					$sys = `cp -rp $temp_copy`;
					
					open(DATA,">$config_path");
					print DATA "\$is_install = \"1\"\;\n";
					print DATA "\$prog_path = \"$prog_path\"\;\n";
					print DATA "\$StatDir = \"$StatDir\"\;\n";
					print DATA "\$ImagePath = \"$ImagePath\"\;\n";
					print DATA "\$CounterType = \"$CounterType\"\;\n";
					print DATA "\$val_cookie = \"$val_cookie\"\;\n";
					print DATA "\$set_hours = \"$set_hours\"\;\n";
					print DATA "\$val_zeros = \"$val_zeros\"\;\n";
					close(DATA);
					
					print qq{<script language="JavaScript"> <!-- 
							 alert("$lang121"); 
							 //--> </script> };
				} else {
					open(DATA,"<$config_path");
					my @db_lines= <DATA>;
					close(DATA);
					
					open(DATA,">$config_path");
					print DATA "\$is_install = \"1\"\;\n";
					print DATA $db_lines[1];
					print DATA $db_lines[2];
					print DATA $db_lines[3];
					print DATA "\$CounterType = \"$CounterType\"\;\n";
					print DATA "\$val_cookie = \"$val_cookie\"\;\n";
					print DATA "\$set_hours = \"$set_hours\"\;\n";
					print DATA "\$val_zeros = \"$val_zeros\"\;\n";
					close(DATA);
									
					print qq{<script language="JavaScript"> <!-- 
							 alert("$lang122"); 
							 //--> </script> };
				}
			} elsif ($act1 eq "Add") {
				my $add_page=$CGI_INPUT{'add_page'};
				open(DATA,"<$config_path");
					my @db_lines= <DATA>;
				close(DATA);
				$db_lines[2] =~ s/\$StatDir = \"/""/ge;
				$db_lines[2] =~ s/\"\;\n/""/ge;
				my $temp = $user_home.$db_lines[2]."/".$add_page.".cnt";
				
				if(!-f $temp) {
					my $sys = `touch $temp`;
					print qq{<script language="JavaScript"> <!-- 
							 alert("$add_page - $lang123"); 
							//--> </script> };
				} else {
					print qq{<script language="JavaScript"> <!-- 
							 alert("$add_page - $lang124"); 
							//--> </script> };
				}
			} elsif ($act1 eq "Delete") {
				my $del_cod=$CGI_INPUT{'del_cod'};
				open(DATA,"<$config_path");
					my @db_lines= <DATA>;
				close(DATA);
				$db_lines[2] =~ s/\$StatDir = \"/""/ge;
				$db_lines[2] =~ s/\"\;\n/""/ge;
				my $temp = $user_home.$db_lines[2]."/".$del_cod.".cnt";
				my $sys = `rm $temp`;
				
				print qq{<script language="JavaScript"> <!-- 
							 alert("$del_cod - $lang113"); 
						//--> </script> };
			} elsif ($act1 eq "Generate") {
				my $gen_cod=$CGI_INPUT{'gen_cod'};
				open(DATA,"<$config_path");
					my @db_lines= <DATA>;
				close(DATA);
				$db_lines[1] =~ s/\$prog_path = \"/""/ge;
				$db_lines[1] =~ s/\"\;\n/""/ge;
				$db_lines[7] =~ s/\$val_zeros = \"/""/ge;
				$db_lines[7] =~ s/\"\;\n/""/ge;
				
				my $lang_txt90=&lang_txt(90);
				
				my $temp_str = "$user_domain$db_lines[1]/counter.cgi?id=$gen_cod";
				$lang_txt90 =~ s/\$temp_str/$temp_str/ge;
				$lang_txt90 =~ s/\$zeros/$db_lines[7]/ge;
				$lang_txt90 =~ s/\$lang/$lang/ge;
				
				$lang_txt89 = $lang_txt90;
			} elsif ($act1 eq "Uninstall") {
				open(DATA,"<$config_path");
					my @db_lines= <DATA>;
				close(DATA);

				$db_lines[1] =~ s/\$prog_path = \"/""/ge;
				$db_lines[1] =~ s/\"\;\n/""/ge;
				$db_lines[2] =~ s/\$StatDir = \"/""/ge;
				$db_lines[2] =~ s/\"\;\n/""/ge;
				$db_lines[3] =~ s/\$ImagePath = \"/""/ge;
				$db_lines[3] =~ s/\"\;\n/""/ge;
				
				if($db_lines[1] =~ /^\/cgi-bin\/default\/counter/) {
					my $temp = $user_home.'/cgi-bin/default/counter*';
					my $sys = `rm -r $temp`;
				} else {
					my $temp = $user_home.$db_lines[1]."/counter.cgi";
					my $sys = `rm $temp`;
				}
				
				if($db_lines[2] =~ /^\/default_prog\/counter*\/database/) {
					my $temp = $user_home.'/default_prog/counter*';
					my $sys = `rm -r $temp`;
				} else {
					my $temp = $user_home.$db_lines[2]."/*.cnt";
					my $sys = `rm $temp`;
				}
				
				open(DATA,">$config_path");
					print DATA "\$is_install = \"0\"\;\n";
				close(DATA);
				print qq{<script language="JavaScript"> <!-- 
							 alert("$lang125"); 
						//--> </script> };
			}
			
			
			open(DATA,"<$config_path");
			my @db_lines= <DATA>;
			close(DATA);
			chomp($db_lines[0]);
			if ($db_lines[0] eq '$is_install = "0";') {
				my $data_dir = $user_home."/default_prog/counter";
				my $temp="";
				my $i=0;
				
				if(!-d $user_home."/cgi-bin") {
					my $sys=$user_home ."/cgi-bin";
					my $err=`mkdir $sys`;
				}
				
				$temp=$user_home."/cgi-bin/default/counter";
				while(-d $temp) {
					$temp=$user_home."/cgi-bin/default/counter".$i;
					$i++;
				}
				$temp =~ s/$user_home/""/ge;
				my $prog_path = $temp;
				
				$i=0;
				$temp=$data_dir;
				while(-d $temp) {
					$temp=$data_dir.$i;
					$i++;
				}
				$data_dir=$temp;

				my $StatDir = $data_dir."/database";
				my $ImagePath = $data_dir."/images";
				$StatDir =~ s/$user_home/""/ge;
				$ImagePath =~ s/$user_home/""/ge;
						
				$lang_txt89 =~ s/\$prog_path/$prog_path/ge;
				$lang_txt89 =~ s/\$StatDir/$StatDir/ge;
				$lang_txt89 =~ s/\$ImagePath/$ImagePath/ge;
				$lang_txt89 =~ s/\$[a-j]_selected /""/ge;
				$lang_txt89 =~ s/\$val_cookie/"checked"/ge;
				$lang_txt89 =~ s/\$set_hours/"24"/ge;
				$lang_txt89 =~ s/\$val_zeros/"5"/ge;
				$lang_txt89 =~ s/\$act/"install"/ge;
				$lang_txt89 =~ s/\$uninstall/""/ge;
				$lang_txt89 =~ s/\$button/$lang118/ge;
				$lang_txt89 =~ s/\$script_con/""/ge;
				$lang_txt89 =~ s/\$see_page/""/ge;
			} else {
				my $i=1;
				while($db_lines[$i]) {
					@db_data = split (/\=/, $db_lines[$i]);
					chomp($db_data[0]);
					chomp($db_data[1]);
					$db_data[0] =~ s/ /""/ge;
					$db_data[1] =~ s/\"/""/ge;
					$db_data[1] =~ s/\;/""/ge;
					$db_data[1] =~ s/ /""/ge;
					$db_data[0] = "\\" . $db_data[0];
					if ($db_data[0] eq '\$val_cookie') {
						if ($db_data[1] eq "no") {
							$lang_txt89 =~ s/$db_data[0]/""/ge;
						} else {
							$lang_txt89 =~ s/$db_data[0]/"checked"/ge;
						}
					} elsif ($db_data[0] eq '\$CounterType'){
						my $temp_str = $db_data[1] . "_selected";
						$lang_txt89 =~ s/\$$temp_str/"selected"/ge;
						$lang_txt89 =~ s/\$[a-j]_selected /""/ge;
					} else {
						$lang_txt89 =~ s/$db_data[0]/$db_data[1]/ge;
					}
					$i++;
				}
						
				my $uninstall = qq{<table border="1" cellspacing="0" cellpadding="0" bordercolor="#FF0000"><tr>
									<td>
										<form action="/" method="post" name="counter_del" onSubmit="return comf_del();">
										<input type="hidden" name="p" value="600">
										<input type="hidden" name="lang" value="$lang">
										<input type="hidden" name="act" value="Setting">
										<input type="Hidden" name="act1" value="Uninstall">
										<input type="submit" name="button" value=" $lang119 "></td>
										</form>
									</tr></table>
									};
									
				my $see_page = "";
				my @see_data = split (/\=/, $db_lines[2]);
				chomp($see_data[1]);
				$see_data[1] =~ s/\"/""/ge;
				$see_data[1] =~ s/\;/""/ge;
				$see_data[1] =~ s/ /""/ge;
				my $temp_str = "/home/".$userid."/public_html".$see_data[1]."/*.cnt";
				my $ls_str = `ls $temp_str`;
				my @get_cnt = split (/\n/, $ls_str);
				my $i=0;
				foreach (@get_cnt) {
					my $bg_color = "DDDDDD";
					chomp $_;
					if($i==0) {$bg_color = "#DDDDDD"; $i=1;} else { $bg_color = "#EFEFEF"; $i=0;}
					my $temp = "/home/".$userid."/public_html".$see_data[1]."/";
					my $count_num = `cat $_`;
					chomp $count_num;
					if (!$count_num) { $count_num = 0;}
					$count_num = sprintf("%06d",$count_num);
					$_ =~ s/$temp/""/ge;
					$_ =~ s/.cnt/""/ge;
					my $lang126=&lang(126);
					$see_page .= qq{<tr bgcolor="$bg_color">
										<td class="font">$_</td>
										<td class="font">$count_num</td>
										<td class="font"><a href="/?p=600&act=Setting&act1=Generate&lang=$lang&gen_cod=$_">$lang126</td>
										<td class="font"><a href="/?p=600&act=Setting&act1=Delete&lang=$lang&del_cod=$_" onclick="return comf_del_count()";><img src="/images/delete.gif" alt="" width=20 height=20 border=0></a></td>
									</tr>
									};
				}
				
				my $text91=&lang_txt(91);
				my $text92=&lang_txt(92);
				$script_con .= $text91;
				if($see_page ne "") { $text92 =~ s/\$see_page/$see_page/ge; $script_con .= $text92;}
				
				$lang_txt89 =~ s/\$uninstall/$uninstall/ge;
				$lang_txt89 =~ s/\$act/"change"/ge;
				$lang_txt89 =~ s/\$button/$lang117/ge;
				$lang_txt89 =~ s/\$script_con/$script_con/ge;
			}
		} else {
			my $lang120=&lang(120);
			print $lang120;
		}
		
		$lang_txt89 =~ s/\$lang/$lang/ge;
		print $lang_txt89;
	}
}

sub page_601 {
	my $act=$CGI_INPUT{'act'};

	if ($act eq "Overview") {
		my $lang_txt99=&lang_txt(99);
		$lang_txt99 =~ s/\$lang/$lang/ge;
		print $lang_txt99;
	} else {
		my $lang118=&lang(118); #Install
		my $lang119=&lang(119); #Uninstall
		
		my $lang_txt100=&lang_txt(100);
		
		my $config_path="/var/wcp4/$userid/config/discuz_forum";
		my $user_home = "/home/$userid/public_html/";
		my $act1=$CGI_INPUT{'act1'};
		
		if(-f $config_path) {	
			if($act1 eq "modify") {
				my $is_install = $CGI_INPUT{'install'};
				my $prog_path = $CGI_INPUT{'prog_path'};

				if($is_install ne "") {
					my $prog_path=$CGI_INPUT{'prog_path'};
					my $database=$CGI_INPUT{'database'};
					my $username=$CGI_INPUT{'username'};
					my $password=$CGI_INPUT{'password'};
					my $prefix=$CGI_INPUT{'prefix'};
					
					if (&check_connection("localhost","$database","$username","$password") eq "false") {
						my $lang129=&lang(129);
						print "$lang129";
					} else {
						if($prog_path eq "") { $prog_path = '/default_prog/discuz_forum/'; }
						
						my $wcp_prog = "/var/backend/wcp/program/discuz_forum/";
						my $temp_str = "";
						my $sys = `mkdir -p $user_home$prog_path`;
						$temp_str = qq~/usr/local/bin/php -r 'echo rand(100000, 999999);'~;
						my $salt_passwd = `$temp_str`;
						$temp_str = qq~/usr/local/bin/php -r 'echo md5(md5("$password")."$salt_passwd");'~;
						my $md5_passwd = `$temp_str`;
						$temp_str = $wcp_prog . "* " . $user_home . $prog_path;
						$sys = `cp $temp_str`;
						$temp_str = "cd " .$user_home.$prog_path.";/usr/sfw/bin/gtar xvfz ".$user_home . $prog_path ."/discuz_forum7.tgz"; 
						$sys = `$temp_str`;
						$temp_str = "rm " . $user_home . $prog_path ."/discuz_forum7.tgz";
						$sys = `$temp_str`;
						my $sql_path = $user_home . $prog_path ."/discuz_forum7.sql";
						open(DATA,"<$sql_path");
							my @sql_lines= <DATA>;
						close(DATA);
						$temp_str = "rm $sql_path";
						$sys = `$temp_str`;
						
						my $i=0;
						while($sql_lines[$i]) {	$sql_lines[$i] =~ s/wcp_cdb_/$prefix/ge; $i++; }
						my $sql_path = $user_home . $prog_path ."/temp.sql";
						my $prog_link = $user_domain . $prog_path;
						open(DATA,">$sql_path");
							foreach(@sql_lines) { print DATA "$_"; }
							print DATA "UPDATE ".$prefix.qq~uc_members SET `password` = '$md5_passwd', salt = '$salt_passwd' WHERE uid = '1'\;\n~;
							print DATA "UPDATE ".$prefix.qq~members SET `password` = '$md5_passwd' WHERE uid = '1'\;\n~;
							print DATA "UPDATE ".$prefix.qq~uc_applications SET url = 'http://$prog_link' WHERE appid = '1'\;\n~;
						close(DATA);
						my $insert_path = "/usr/local/mysql/bin/mysql -u $username -p'$password' --default-character-set=latin1 $database < $sql_path";
						$sys = `$insert_path`;
						my $config_file = $user_home . $prog_path . "/config.inc.php";
						open(DATA,"$config_file");
						@config_data = <DATA>;
						close(DATA);
						
						open(DATA,">$config_file");
						LINE: foreach $config_line (@config_data) {
							$config_line =~ s/\$WCPDBUSER/$username/ge;
							$config_line =~ s/\$WCPDBPW/$password/ge;
							$config_line =~ s/\$WCPDBNAME/$database/ge;
							$config_line =~ s/\$WCPPRE/$prefix/ge;
							$config_line =~ s/\$WCP_PROG_PATH/$prog_link/ge;
							print DATA $config_line;
						}
						close(DATA);

						my $config_file = $user_home . $prog_path . "/uc_server/data/config.inc.php";
						open(DATA,"$config_file");
						@config_data = <DATA>;
						close(DATA);
						
						open(DATA,">$config_file");
						LINE: foreach $config_line (@config_data) {
							$config_line =~ s/\$WCPDBUSER/$username/ge;
							$config_line =~ s/\$WCPDBPW/$password/ge;
							$config_line =~ s/\$WCPDBNAME/$database/ge;
							$config_line =~ s/\$WCPPRE/$prefix/ge;
							print DATA $config_line;
						}
						close(DATA);

						$temp_str = "rm $sql_path";
						$sys = `$temp_str`;
						
						open(DATA,">$config_path");
						print DATA "\$is_install = \"1\"\;\n";
						print DATA "\$prog_path = \"$prog_path\"\;\n";
						print DATA "\$database = \"$database\"\;\n";
						print DATA "\$username = \"$username\"\;\n";
						print DATA "\$password = \"$password\"\;\n";
						print DATA "\$prefix = \"$prefix\"\;\n";
						close(DATA);
						
						if(`/usr/local/bin/php -v` =~ /PHP (\d+)\.(\d+)\.(\d+)/) { 
							if($1 ne "5") {
								$temp_str = "chmod 755 /home/$userid";
								$sys = `$temp_str`;
								$temp_str = "cd " .$user_home.$prog_path.";chmod -R 777 config.inc.php attachments forumdata uc_client/data uc_server/data"; 
								$sys = `$temp_str`;
							}
						}
						
						my $lang121=&lang(121);
						print qq{<script language="JavaScript"> <!-- 
								 alert("$lang121"); 
								 //--> </script> };
					}
				}
			} elsif ($act1 eq "Uninstall") {
				open(DATA,"<$config_path");
					my @db_lines= <DATA>;
				close(DATA);
				
				$db_lines[1] =~ s/\$prog_path = \"/""/ge;
				$db_lines[1] =~ s/\"\;\n/""/ge;
				$db_lines[2] =~ s/\$database = \"/""/ge;
				$db_lines[2] =~ s/\"\;\n/""/ge;
				$db_lines[3] =~ s/\$username = \"/""/ge;
				$db_lines[3] =~ s/\"\;\n/""/ge;
				$db_lines[4] =~ s/\$password = \"/""/ge;
				$db_lines[4] =~ s/\"\;\n/""/ge;
				$db_lines[5] =~ s/\$prefix = \"/""/ge;
				$db_lines[5] =~ s/\"\;\n/""/ge;
				
				if (&check_connection("localhost","$db_lines[2]","$db_lines[3]","$db_lines[4]") eq "false") {
						my $lang129=&lang(129);
						print "$lang129";
				} else {
					if($db_lines[1] =~ /^\/default_prog\/discuz_forum*/) {
						my $temp = $user_home.'/default_prog/discuz_forum*';
						my $sys = `rm -r $temp`;
					} else {
						my $temp = $user_home.$db_lines[1];
						my $sys = `rm $temp`;
					}
					
					my $sql_path = "/var/backend/wcp/program/uninstall_discuz_forum7.sql";
					open(DATA,"<$sql_path");
						my @sql_lines= <DATA>;
					close(DATA);
						
					my $i=0;
					while($sql_lines[$i]) {	$sql_lines[$i] =~ s/wcp_cdb_/$db_lines[5]/ge; $i++; }
					my $sql_path = "/tmp/$userid.wcp_discuz.sql";
					open(DATA,">$sql_path");
						print DATA @sql_lines;
					close(DATA);
					my $insert_path = "/usr/local/mysql/bin/mysql -u $db_lines[3] -p$db_lines[4] $db_lines[2] < $sql_path";
					$sys = `$insert_path`;
									
					open(DATA,">$config_path");
						print DATA "\$is_install = \"0\"\;\n";
					close(DATA);
					my $lang125=&lang(125);
					print qq{<script language="JavaScript"> <!-- 
								 alert("$lang125"); 
							//--> </script> };
				}
			}
		
			open(DATA,"<$config_path");
			my @db_lines= <DATA>;
			close(DATA);
			chomp($db_lines[0]);
			if ($db_lines[0] eq '$is_install = "0";') {
				my $data_dir = $user_home."/default_prog/discuz_forum";
				my $temp="";
				my $i=0;

				$temp=$data_dir;
				$pre_text="wcp_cdb_";
				while(-d $temp) {
					$temp=$data_dir.$i;
					$pre_text="wcp_cdb".$i."_";
					$i++;
				}
				$prog_path=$temp;
				$prog_path =~ s/$user_home/""/ge;
						
				$lang_txt100 =~ s/\$prog_path/$prog_path/ge;
				$lang_txt100 =~ s/\$database/""/ge;
				$lang_txt100 =~ s/\$username/""/ge;
				$lang_txt100 =~ s/\$password/""/ge;
				$lang_txt100 =~ s/\$prefix/$pre_text/ge;
				$temp = qq{ <tr bgcolor="#EFEFEF"> <td>&nbsp;</td> <td class="font">
							<input type="submit" name="install" value=" $lang118 "></td></tr> };
				$lang_txt100 =~ s/\$button/$temp/ge;
				$lang_txt100 =~ s/\$script_con/""/ge;
			} else {
				my $i=1;
				while($db_lines[$i]) {
					@db_data = split (/\=/, $db_lines[$i]);
					chomp($db_data[0]);
					chomp($db_data[1]);
					$db_data[0] =~ s/ /""/ge;
					$db_data[1] =~ s/\"/""/ge;
					$db_data[1] =~ s/\;/""/ge;
					$db_data[1] =~ s/ /""/ge;
					$db_data[0] = "\\" . $db_data[0];
					$lang_txt100 =~ s/$db_data[0]/$db_data[1]/ge;
					$i++;
				}
				my $script_con = qq{<script language="JavaScript"> <!-- 
						document.discuz_forum.database.disabled=true;
						document.discuz_forum.username.disabled=true;
						document.discuz_forum.password.disabled=true;
						document.discuz_forum.prefix.disabled=true;
						//--> </script> };
	
				$temp = qq{ <tr bgcolor="#EFEFEF">
								<td>&nbsp;</td>
								<td class="font">
									<table border="0" cellspacing="0" cellpadding="0"><tr><td></form></td>
									<td><table border="1" cellspacing="0" cellpadding="0" bordercolor="#FF0000"><tr>
										<td>
											<form action="/" method="post" name="discuz_forum_del" onSubmit="return comf_del();">
											<input type="hidden" name="p" value="601">
											<input type="hidden" name="lang" value="$lang">
											<input type="hidden" name="act" value="Setting">
											<input type="Hidden" name="act1" value="Uninstall">
											<input type="submit" name="button" value=" $lang119 "></td>
											</form>
										</tr></table>
									</td></tr></table>
								</td>
							</tr>};			

				$lang_txt100 =~ s/\$button/$temp/ge;
				$lang_txt100 =~ s/\$script_con/$script_con/ge;
				
				$db_lines[1] =~ s/\$prog_path = \"/""/ge;
				$db_lines[1] =~ s/\"\;\n/""/ge;
				my $link_src = "http://$user_domain$db_lines[1]/index.php";
				$link_src = qq~<a href="$link_src" target="_blank">$link_src</a>~;
				my $lang127=&lang(127);
				$lang127 =~ s/\$link_src/$link_src/ge;
				$lang_txt100 .= "<p>".$lang127
			}
		} else {
			my $lang120=&lang(120);
			print $lang120;
		}
		
		$lang_txt100 =~ s/\$lang/$lang/ge;
		print $lang_txt100;
	}
}

sub page_602 {
	my $act=$CGI_INPUT{'act'};
	
	if ($act eq "Overview") {
		my $lang_txt93=&lang_txt(93);
		$lang_txt93 =~ s/\$lang/$lang/ge;
		print $lang_txt93;
	} else {
		my $lang117=&lang(117); #change
		my $lang118=&lang(118); #install
		my $lang119=&lang(119); #uninstall
		
		my $lang_txt86=&lang_txt(86);
		
		my $config_path="/var/wcp4/$userid/config/datetime";
		my $user_home = "/home/$userid/public_html";
		
		if(-f $config_path) {
			my $act1=$CGI_INPUT{'act1'};
			if($act1 eq "modify") {
				my $is_install = $CGI_INPUT{'install'};
				my $prog_path = $CGI_INPUT{'prog_path'};
				my $image_path = $CGI_INPUT{'image_path'};
				my $TimeFormat = $CGI_INPUT{'TimeFormat'};
				my $DateFormat = $CGI_INPUT{'DateFormat'};
				my $DateTimeType = $CGI_INPUT{'DateTimeType'};
				
				if($is_install ne "") {
					if($prog_path eq "") { $prog_path = '/cgi-bin/default/datetime/'; }
					if($image_path eq "") { $image_path = '/default_prog/datetime/images/'; }
					
					my $wcp_prog = "/var/backend/wcp/program/datetime/";
					my $temp_copy = "";
					
					my $sys = `mkdir -p $user_home$prog_path`;
					$sys = `mkdir -p $user_home$image_path`;
					
					$temp_copy = $wcp_prog . "datetime.cgi " . $user_home . $prog_path;
					$sys = `cp $temp_copy`;
					$temp_copy = $wcp_prog . "images/* " . $user_home . $image_path;
					$sys = `cp -rp $temp_copy`;
					
					open(DATA,">$config_path");
					print DATA "\$is_install = \"1\"\;\n";
					print DATA "\$prog_path = \"$prog_path\"\;\n";
					print DATA "\$image_path = \"$image_path\"\;\n";
					print DATA "\$TimeFormat = \"$TimeFormat\"\;\n";
					print DATA "\$DateFormat = \"$DateFormat\"\;\n";
					print DATA "\$DateTimeType = \"$DateTimeType\"\;\n";
					close(DATA);
					
					my $lang121=&lang(121);
					print qq{<script language="JavaScript"> <!-- 
							 alert("$lang121");
							 //--> </script> };
				} else {
					open(DATA,"<$config_path");
					my @db_lines= <DATA>;
					close(DATA);
					
					open(DATA,">$config_path");
					print DATA "\$is_install = \"1\"\;\n";
					print DATA $db_lines[1];
					print DATA $db_lines[2];
					print DATA "\$TimeFormat = \"$TimeFormat\"\;\n";
					print DATA "\$DateFormat = \"$DateFormat\"\;\n";
					print DATA "\$DateTimeType = \"$DateTimeType\"\;\n";
					close(DATA);
					
					my $lang122=&lang(122);
					print qq{<script language="JavaScript"> <!-- 
							 alert("$lang122"); 
							 //--> </script> };
				}
			} elsif ($act1 eq "Uninstall") {
				open(DATA,"<$config_path");
					my @db_lines= <DATA>;
				close(DATA);

				$db_lines[1] =~ s/\$prog_path = \"/""/ge;
				$db_lines[1] =~ s/\"\;\n/""/ge;
				$db_lines[2] =~ s/\$image_path = \"/""/ge;
				$db_lines[2] =~ s/\"\;\n/""/ge;
				
				if($db_lines[1] =~ /^\/cgi-bin\/default\/datetime/) {
					my $temp = $user_home.'/cgi-bin/default/datetime*';
					my $sys = `rm -r $temp`;
				} else {
					my $temp = $user_home.$db_lines[1]."/datetime.cgi";
					my $sys = `rm $temp`;
				}
				
				if($db_lines[2] =~ /^\/default_prog\/datetime*\/images/) {
					my $temp = $user_home.'/default_prog/datetime*';
					my $sys = `rm -r $temp`;
				} else {
					my $temp = $user_home.$db_lines[2];
					my $sys = `rm $temp`;
				}
				
				open(DATA,">$config_path");
					print DATA "\$is_install = \"0\"\;\n";
				close(DATA);
				
				my $lang125=&lang(125);
				print qq{<script language="JavaScript"> <!-- 
							 alert("$lang125"); 
						//--> </script> };
			}
		
			open(DATA,"<$config_path");
			my @db_lines= <DATA>;
			close(DATA);
			chomp($db_lines[0]);
			if ($db_lines[0] eq '$is_install = "0";') {
				my $data_dir = $user_home."/default_prog/datetime";
				my $temp="";
				my $i=0;
				
				if(!-d $user_home."/cgi-bin") {
					my $sys=$user_home ."/cgi-bin";
					my $err=`mkdir $sys`;
				}
				
				$temp=$user_home."/cgi-bin/default/datetime";
				while(-d $temp) {
					$temp=$user_home."/cgi-bin/default/datetime".$i;
					$i++;
				}
				$temp =~ s/$user_home/""/ge;
				my $prog_path = $temp;
				
				$i=0;
				$temp=$data_dir;
				while(-d $temp) {
					$temp=$data_dir.$i;
					$i++;
				}
				$data_dir=$temp;

				my $image_path = $data_dir."/images";
				$image_path =~ s/$user_home/""/ge;
				
				$lang_txt86 =~ s/\$uninstall/""/ge;
				$lang_txt86 =~ s/\$prog_path/$prog_path/ge;
				$lang_txt86 =~ s/\$image_path/$image_path/ge;
				$lang_txt86 =~ s/\$[1-2][2-4]_time_selected /""/ge;
				$lang_txt86 =~ s/\$[dmy][dmy][dmy]_date_selected /""/ge;
				$lang_txt86 =~ s/\$[a-e]_type_selected /""/ge;
				$lang_txt86 =~ s/\$act/"install"/ge;
				$lang_txt86 =~ s/\$button/$lang118/ge;
				$lang_txt86 =~ s/\$script_con/""/ge;
			} else {
				my $i=1;
				my $temp="";
				while($db_lines[$i]) {
					@db_data = split (/\=/, $db_lines[$i]);
					chomp($db_data[0]);
					chomp($db_data[1]);
					$db_data[0] =~ s/ /""/ge;
					$db_data[1] =~ s/\"/""/ge;
					$db_data[1] =~ s/\;/""/ge;
					$db_data[1] =~ s/ /""/ge;
					$db_data[0] = "\\" . $db_data[0];
					if ($db_data[0] eq '\$TimeFormat') {
						my $temp_str = $db_data[1] . "_time_selected";
						$lang_txt86 =~ s/\$$temp_str/"selected"/ge;
						$lang_txt86 =~ s/\$[1-2][2-4]_time_selected /""/ge;
					} elsif ($db_data[0] eq '\$DateFormat') {
						my $temp_str = $db_data[1] . "_date_selected";
						$lang_txt86 =~ s/\$$temp_str/"selected"/ge;
						$lang_txt86 =~ s/\$[dmy][dmy][dmy]_date_selected /""/ge;
					} elsif ($db_data[0] eq '\$DateTimeType') {
						my $temp_str = $db_data[1] . "_type_selected";
						$lang_txt86 =~ s/\$$temp_str/"selected"/ge;
						$lang_txt86 =~ s/\$[a-e]_type_selected /""/ge;
					} else {
						$lang_txt86 =~ s/$db_data[0]/$db_data[1]/ge;
					}
					$i++;
				}
				
				my $uninstall = qq{<table border="1" cellspacing="0" cellpadding="0" bordercolor="#FF0000"><tr>
				<td>
				<form action="/" method="post" name="datetime_del" onSubmit="return comf_del();">
				<input type="hidden" name="p" value="602">
				<input type="hidden" name="lang" value="$lang">
				<input type="hidden" name="act" value="Setting">
				<input type="Hidden" name="act1" value="Uninstall">
				<input type="submit" name="button" value=" $lang119 "></td>
				</form>
				</tr></table>
				};
									
				$lang_txt86 =~ s/\$uninstall/$uninstall/ge;
				$lang_txt86 =~ s/\$act/"change"/ge;
				$lang_txt86 =~ s/\$button/$lang117/ge;
				$lang_txt86 =~ s/\$script_con/$script_con/ge;
				
				my $lang_txt87=&lang_txt(87);
				$db_lines[1] =~ s/\$prog_path = \"/""/ge;
				$db_lines[1] =~ s/\"\;\n/""/ge;
				my $link_src = "http://$user_domain$db_lines[1]";
				$lang_txt87 =~ s/\$link_src/$link_src/ge;
				$lang_txt86 .= "<p>".$lang_txt87;
			}
		} else {
			my $lang120=&lang(120);
			print $lang120;
		}
		
		$lang_txt86 =~ s/\$lang/$lang/ge;
		print $lang_txt86;
	}
}

sub page_603 {
	my $act=$CGI_INPUT{'act'};

	if ($act eq "Overview") {
		my $lang_txt94=&lang_txt(94);
		$lang_txt94 =~ s/\$lang/$lang/ge;
		print $lang_txt94;
	} else {
		my $lang117=&lang(117); #change
		my $lang118=&lang(118); #install
		my $lang119=&lang(119); #uninstall
		
		my $lang_txt95=&lang_txt(95);
		
		my $config_path="/var/wcp4/$userid/config/FormProcess";
		my $user_home = "/home/$userid/public_html";
		
		if(-f $config_path) {
			my $act1=$CGI_INPUT{'act1'};
			if($act1 eq "modify") {
				my $is_install = $CGI_INPUT{'install'};
				my $prog_path = $CGI_INPUT{'prog_path'};
				my $StatDir = $CGI_INPUT{'StatDir'};
				my $def_email = $CGI_INPUT{'def_email'};

				if($is_install ne "") {
					if($prog_path eq "") { $prog_path = '/cgi-bin/default/FormProcess/'; }
					if($StatDir eq "") { $StatDir = '/default_prog/FormProcess/'; }

					my $wcp_prog = "/var/backend/wcp/program/FormProcess/";
					my $temp_copy = "";
					
					my $sys = `mkdir -p $user_home$prog_path`;
					$sys = `mkdir -p $user_home$StatDir`;
					
					$temp_copy = $wcp_prog . "FormProcess.cgi " . $user_home . $prog_path;
					$sys = `cp $temp_copy`;
					$temp_copy = $wcp_prog . "*.html " . $user_home . $StatDir;
					$sys = `cp $temp_copy`;
					$temp_copy = $wcp_prog . "*.txt " . $user_home . $StatDir;
					$sys = `cp $temp_copy`;
					$temp_copy = $wcp_prog . "*.jpg " . $user_home . $StatDir;
					$sys = `cp $temp_copy`;
					
					open(DATA,">$config_path");
					print DATA "\$is_install = \"1\"\;\n";
					print DATA "\$def_email = \'$def_email\'\;\n";
					print DATA "\$prog_path = \"$prog_path\"\;\n";
					print DATA "\$StatDir = \"$StatDir\"\;\n";
					close(DATA);
					
					my $lang121=&lang(121);
					print qq{<script language="JavaScript"> <!-- 
							 alert("$lang121");
							 //--> </script> };
				} else {
					open(DATA,"<$config_path");
					my @db_lines= <DATA>;
					close(DATA);
					
					open(DATA,">$config_path");
					print DATA "\$is_install = \"1\"\;\n";
					print DATA "\$def_email = \'$def_email\'\;\n";
					print DATA $db_lines[2];
					print DATA $db_lines[3];
					close(DATA);
					
					my $lang122=&lang(122);
					print qq{<script language="JavaScript"> <!-- 
							 alert("$lang122"); 
							 //--> </script> };
				}
			} elsif ($act1 eq "Uninstall") {
				open(DATA,"<$config_path");
					my @db_lines= <DATA>;
				close(DATA);

				$db_lines[2] =~ s/\$prog_path = \"/""/ge;
				$db_lines[2] =~ s/\"\;\n/""/ge;
				$db_lines[3] =~ s/\$StatDir = \"/""/ge;
				$db_lines[3] =~ s/\"\;\n/""/ge;
				
				if($db_lines[2] =~ /^\/cgi-bin\/default\/FormProcess/) {
					my $temp = $user_home.'/cgi-bin/default/FormProcess*';
					my $sys = `rm -r $temp`;
				} else {
					my $temp = $user_home.$db_lines[2]."/FormProcess.cgi";
					my $sys = `rm $temp`;
				}
				
				if($db_lines[3] =~ /^\/default_prog\/FormProcess*/) {
					my $temp = $user_home.'/default_prog/FormProcess*';
					my $sys = `rm -r $temp`;
				} else {
					my $temp = $user_home.$db_lines[3];
					my $sys = `rm $temp`;
				}
				
				open(DATA,">$config_path");
					print DATA "\$is_install = \"0\"\;\n";
				close(DATA);
				
				my $lang125=&lang(125);
				print qq{<script language="JavaScript"> <!-- 
							 alert("$lang125"); 
						//--> </script> };
			}
		
			open(DATA,"<$config_path");
			my @db_lines= <DATA>;
			close(DATA);
			chomp($db_lines[0]);
			if ($db_lines[0] eq '$is_install = "0";') {
				my $data_dir = $user_home."/default_prog/FormProcess";
				my $temp="";
				my $i=0;
				
				if(!-d $user_home."/cgi-bin") {
					my $sys=$user_home ."/cgi-bin";
					my $err=`mkdir $sys`;
				}
				
				$temp=$user_home."/cgi-bin/default/FormProcess";
				while(-d $temp) {
					$temp=$user_home."/cgi-bin/default/FormProcess".$i;
					$i++;
				}
				$temp =~ s/$user_home/""/ge;
				my $prog_path = $temp;
				
				$i=0;
				$temp=$data_dir;
				while(-d $temp) {
					$temp=$data_dir.$i;
					$i++;
				}
				$data_dir=$temp;

				my $StatDir = $data_dir;
				$StatDir =~ s/$user_home/""/ge;
				
				$lang_txt95 =~ s/\$prog_path/$prog_path/ge;
				$lang_txt95 =~ s/\$StatDir/$StatDir/ge;
				$lang_txt95 =~ s/\$def_email/""/ge;
				
				$lang_txt95 =~ s/\$uninstall/""/ge;
				$lang_txt95 =~ s/\$act/"install"/ge;
				$lang_txt95 =~ s/\$button/$lang118/ge;
				$lang_txt95 =~ s/\$script_con/""/ge;
			} else {
				my $i=1;
				my $temp="";
				while($db_lines[$i]) {
					@db_data = split (/\=/, $db_lines[$i]);
					chomp($db_data[0]);
					chomp($db_data[1]);
					$db_data[0] =~ s/ /""/ge;
					$db_data[1] =~ s/\"\;/""/ge;
					$db_data[1] =~ s/\"/""/ge;
					$db_data[1] =~ s/\'\;/""/ge;
					$db_data[1] =~ s/\'/""/ge;
					#$db_data[1] =~ s/\;/""/ge;
					$db_data[1] =~ s/ /""/ge;
					$db_data[0] = "\\" . $db_data[0];
					
					$lang_txt95 =~ s/$db_data[0]/$db_data[1]/ge;
					$i++;
				}
				
				my $uninstall = qq{<table border="1" cellspacing="0" cellpadding="0" bordercolor="#FF0000"><tr>
									<td>
										<form action="/" method="post" name="FormProcess_del" onSubmit="return comf_del();">
										<input type="hidden" name="p" value="603">
										<input type="hidden" name="lang" value="$lang">
										<input type="hidden" name="act" value="Setting">
										<input type="Hidden" name="act1" value="Uninstall">
										<input type="submit" name="button" value=" $lang119 "></td>
										</form>
									</tr></table>
									};
									
				$lang_txt95 =~ s/\$uninstall/$uninstall/ge;
				
				$lang_txt95 =~ s/\$act/"change"/ge;
				$lang_txt95 =~ s/\$button/$lang117/ge;
				$lang_txt95 =~ s/\$script_con/$script_con/ge;
				
				$db_lines[3] =~ s/\$StatDir = \"/""/ge;
				$db_lines[3] =~ s/\"\;\n/""/ge;
				my $link_src = "http://$user_domain$db_lines[3]/sample.html";
				$link_src = qq~<a href="$link_src" target="_blank">$link_src</a>~;
				my $lang127=&lang(127);
				$lang127 =~ s/\$link_src/$link_src/ge;
				$lang_txt95 .= "<p>".$lang127
			}
		} else {
			my $lang120=&lang(120);
			print $lang120;
		}
		
		$lang_txt95 =~ s/\$lang/$lang/ge;
		print $lang_txt95;
	}
}

sub page_604 {
	my $act=$CGI_INPUT{'act'};

	if ($act eq "Overview") {
		my $lang_txt96=&lang_txt(96);
		$lang_txt96 =~ s/\$lang/$lang/ge;
		print $lang_txt96;
	} else {
		my $lang118=&lang(118); #install
		my $lang119=&lang(119); #uninstall
		
		my $lang_txt97=&lang_txt(97);
		
		my $config_path="/var/wcp4/$userid/config/postcard";
		my $user_home = "/home/$userid/public_html";
		
		if(-f $config_path) {
			my $act1=$CGI_INPUT{'act1'};
			if($act1 eq "modify") {
				my $is_install = $CGI_INPUT{'install'};
				my $prog_path = $CGI_INPUT{'prog_path'};
				my $StatDir = $CGI_INPUT{'StatDir'};
				my $image_path = $CGI_INPUT{'image_path'};

				if($is_install ne "") {
					if($prog_path eq "") { $prog_path = '/cgi-bin/default/postcard/'; }
					if($StatDir eq "") { $StatDir = '/default_prog/postcard/'; }
					if($image_path eq "") { $image_path = '/default_prog/postcard/images/'; }
					
					my $wcp_prog = "/var/backend/wcp/program/postcard/";
					my $temp_copy = "";
					
					my $sys = `mkdir -p $user_home$prog_path`;
					$sys = `mkdir -p $user_home$StatDir`;
					$sys = `mkdir -p $user_home$image_path`;
					
					$temp_copy = $wcp_prog . "postcard.cgi " . $user_home . $prog_path;
					$sys = `cp $temp_copy`;
					$temp_copy = $wcp_prog . "template.html " . $user_home . $StatDir;
					$sys = `cp $temp_copy`;
					$temp_copy = $wcp_prog . "cards_detail.txt " . $user_home . $StatDir;
					$sys = `cp $temp_copy`;
					$temp_copy = $wcp_prog . "images/* " . $user_home . $image_path;
					$sys = `cp -r $temp_copy`;
					
					open(DATA,">$config_path");
					print DATA "\$is_install = \"1\"\;\n";
					print DATA "\$prog_path = \"$prog_path\"\;\n";
					print DATA "\$StatDir = \"$StatDir\"\;\n";
					print DATA "\$image_path = \"$image_path\"\;\n";
					close(DATA);
					
					my $lang121=&lang(121);
					print qq{<script language="JavaScript"> <!-- 
							 alert("$lang121");
							 //--> </script> };
				}
			} elsif ($act1 eq "Uninstall") {
				open(DATA,"<$config_path");
					my @db_lines= <DATA>;
				close(DATA);

				$db_lines[1] =~ s/\$prog_path = \"/""/ge;
				$db_lines[1] =~ s/\"\;\n/""/ge;
				$db_lines[2] =~ s/\$StatDir = \"/""/ge;
				$db_lines[2] =~ s/\"\;\n/""/ge;
				$db_lines[3] =~ s/\$image_path = \"/""/ge;
				$db_lines[3] =~ s/\"\;\n/""/ge;
				
				if($db_lines[1] =~ /^\/cgi-bin\/default\/postcard/) {
					my $temp = $user_home.'/cgi-bin/default/postcard*';
					my $sys = `rm -r $temp`;
				} else {
					my $temp = $user_home.$db_lines[1]."/postcard.cgi";
					my $sys = `rm $temp`;
				}
				
				if($db_lines[2] =~ /^\/default_prog\/postcard*/) {
					my $temp = $user_home.'/default_prog/postcard*';
					my $sys = `rm -r $temp`;
				} else {
					my $temp = $user_home.$db_lines[2];
					my $sys = `rm $temp`;
				}
				
				open(DATA,">$config_path");
					print DATA "\$is_install = \"0\"\;\n";
				close(DATA);
				
				my $lang125=&lang(125);
				print qq{<script language="JavaScript"> <!-- 
							 alert("$lang125"); 
						//--> </script> };
			}
		
			open(DATA,"<$config_path");
			my @db_lines= <DATA>;
			close(DATA);
			chomp($db_lines[0]);
			if ($db_lines[0] eq '$is_install = "0";') {
				my $data_dir = $user_home."/default_prog/postcard";
				my $temp="";
				my $i=0;
				
				if(!-d $user_home."/cgi-bin") {
					my $sys=$user_home ."/cgi-bin";
					my $err=`mkdir $sys`;
				}
				
				$temp=$user_home."/cgi-bin/default/postcard";
				while(-d $temp) {
					$temp=$user_home."/cgi-bin/default/postcard".$i;
					$i++;
				}
				$temp =~ s/$user_home/""/ge;
				my $prog_path = $temp;
				
				$i=0;
				$temp=$data_dir;
				while(-d $temp) {
					$temp=$data_dir.$i;
					$i++;
				}
				$data_dir=$temp;

				my $StatDir = $data_dir;
				$StatDir =~ s/$user_home/""/ge;
				my $image_path = $data_dir."/images";
				$image_path =~ s/$user_home/""/ge;
				
				$lang_txt97 =~ s/\$prog_path/$prog_path/ge;
				$lang_txt97 =~ s/\$StatDir/$StatDir/ge;
				$lang_txt97 =~ s/\$image_path/$image_path/ge;
				
				$temp = qq{ <tr bgcolor="#EFEFEF"> <td>&nbsp;</td> <td class="font">
							<input type="submit" name="install" value=" $lang118 "></td></tr> };
				$lang_txt97 =~ s/\$button/$temp/ge;
				$lang_txt97 =~ s/\$script_con/""/ge;
			} else {
				my $i=1;
				while($db_lines[$i]) {
					@db_data = split (/\=/, $db_lines[$i]);
					chomp($db_data[0]);
					chomp($db_data[1]);
					$db_data[0] =~ s/ /""/ge;
					$db_data[1] =~ s/\"/""/ge;
					$db_data[1] =~ s/\;/""/ge;
					$db_data[1] =~ s/ /""/ge;
					$db_data[0] = "\\" . $db_data[0];
					
					$lang_txt97 =~ s/$db_data[0]/$db_data[1]/ge;
					$i++;
				}
				my $script_con = qq{<script language="JavaScript"> <!-- 
									document.postcard.prog_path.disabled=true;
									document.postcard.StatDir.disabled=true;
									document.postcard.image_path.disabled=true;
									//--> </script> };
				
				$temp = qq{ <tr bgcolor="#EFEFEF">
								<td>&nbsp;</td>
								<td class="font">
									<table border="0" cellspacing="0" cellpadding="0"><tr><td></form></td>
									<td><table border="1" cellspacing="0" cellpadding="0" bordercolor="#FF0000"><tr>
										<td>
											<form action="/" method="post" name="postcard_del" onSubmit="return comf_del();">
											<input type="hidden" name="p" value="604">
											<input type="hidden" name="lang" value="$lang">
											<input type="hidden" name="act" value="Setting">
											<input type="Hidden" name="act1" value="Uninstall">
											<input type="submit" name="button" value=" $lang119 "></td>
											</form>
										</tr></table>
									</td></tr></table>
								</td>
							</tr>};			

				$lang_txt97 =~ s/\$button/$temp/ge;
				$lang_txt97 =~ s/\$script_con/$script_con/ge;
				
				$db_lines[1] =~ s/\$prog_path = \"/""/ge;
				$db_lines[1] =~ s/\"\;\n/""/ge;
				my $link_src = "http://$user_domain$db_lines[1]/postcard.cgi";
				$link_src = qq~<a href="$link_src" target="_blank">$link_src</a>~;
				my $lang127=&lang(127);
				$lang127 =~ s/\$link_src/$link_src/ge;
				$lang_txt97 .= "<p>".$lang127;
			}
		} else {
			my $lang120=&lang(120);
			print $lang120;
		}
		
		$lang_txt97 =~ s/\$lang/$lang/ge;
		print $lang_txt97;
	}
}

sub page_700 {
	my $lang_txt77=&lang_txt(77);
	
	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt77 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt77 =~ s/\$communilink_info/$temp_info/ge;
	}
	
	print $lang_txt77;
}

sub page_701 {
	my $lang_txt78=&lang_txt(78);
	
	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt78 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt78 =~ s/\$communilink_info/$temp_info/ge;
	}
	
	print $lang_txt78;
}

sub page_702 {
	if (&check_valueadd($userid,"702") eq "Y") {
		my $lang87=&lang(87);
		my $lang_txt80=&lang_txt(80);
		$lang_txt80 =~ s/\$userid/$userid/ge;
		$lang_txt80 =~ s/\$usr_sitebox/$usr_sitebox/ge;
		$lang_txt80 =~ s/\$lang87/$lang87/ge;
		$lang_txt80 =~ s/\$lang/$lang/ge;
		print $lang_txt80;
	} else {
		my $lang_txt79=&lang_txt(79);
		if($user_reseller eq "1"){
			my $lang83=&lang(83);
			$lang_txt79 =~ s/\$communilink_info/$lang83/ge;
		} else {
			my $temp_info="&nbsp;";
			$lang_txt79 =~ s/\$communilink_info/$temp_info/ge;
		}
		print $lang_txt79;
	}
}

sub page_703 {
	my $lang_txt81=&lang_txt(81);
	
	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt81 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt81 =~ s/\$communilink_info/$temp_info/ge;
	}
	
	print $lang_txt81;
}

sub page_704 {
	my $lang_txt82=&lang_txt(82);
	
	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt82 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt82 =~ s/\$communilink_info/$temp_info/ge;
	}
	
	print $lang_txt82;
}

sub page_705 {
	my $lang_txt83=&lang_txt(83);
	
	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt83 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt83 =~ s/\$communilink_info/$temp_info/ge;
	}
	
	print $lang_txt83;
}

sub page_706 {
	my $lang_txt84=&lang_txt(84);
	
	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt84 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt84 =~ s/\$communilink_info/$temp_info/ge;
	}
	$lang_txt84=~ s/\$res_info_com/$res_info_com/ge;
	$lang_txt84 =~ s/\$lang/$lang/ge;
	print $lang_txt84;
}

sub page_707 {
	my $lang_txt85=&lang_txt(85);
	
	if($user_reseller eq "1"){
		my $lang83=&lang(83);
		$lang_txt85 =~ s/\$communilink_info/$lang83/ge;
	} else {
		my $temp_info="&nbsp;";
		$lang_txt85 =~ s/\$communilink_info/$temp_info/ge;
	}
	$lang_txt85=~ s/\$res_info_com/$res_info_com/ge;
	print $lang_txt85;
}
1;