#!/usr/bin/perl
 
########################################################################
# COPYRIGHT NOTICE:
#
# Copyright 2007 FocalMedia.Net All Rights Reserved.
#
# Selling the code for this program without prior written consent 
# from FocalMedia.Net is expressly forbidden. You may not 
# redistribute this program in any shape or form.
# 
# This program is distributed "as is" and without warranty of any
# kind, either express or implied. In no event shall the liability 
# of FocalMedia.Net for any damages, losses and/or causes of action 
# exceed the total amount paid by the user for this software.
#
########################################################################

#### EDIT HERE -- FOR WINDOWS/IIS BASED INSTALLATIONS ONLY #######

$config_cgi = "config.cgi"; ## <-- CHANGE THIS LINE TO THE FULL SERVER PATH TO config.cgi

# THE PATH ON A WINDOWS INSTALLATION WILL LOOK SOMETHING LIKE THIS:
# $config_cgi = "c:/inetpub/webpub/cgi-bin/pseek/config.cgi";

#### DO NOT CHANGE ANYTHING BELOW THIS LINE #################


#use FindBin;
#use lib $FindBin::Bin;
use CGI;
use DBI; 
use CGI::Carp qw(fatalsToBrowser); 
use mysdesk;
use fmspm;

&get_setup;

fmspm::check_spamb("fp.cgi", "header", $data_dir);

$q = CGI->new;

################# 
print "Content-type: text/html\n\n"; 

if ($q->param('fct') eq "") { &start; }


sub start
{

$fp_main = mysdesk::get_file_contents("$data_dir/kb_fpage.html");

$fp_cats = mysdesk::get_file_contents("$data_dir/kb_fpstl.html");

if ($mysql_hostname eq ""){$dsn = "DBI:mysql:$db_name";}else{$dsn = "DBI:mysql:$db_name:$mysql_hostname:$mysql_port";}
$dbh = DBI->connect($dsn, $db_username, $db_password);
if ( !defined $dbh ) {die "Cannot connect to MySQL server: $DBI::errstr\n"; } 
 
$sql = "SELECT * FROM support_kbcats WHERE (l2 = '') OR (l2 IS NULL) ORDER BY position"; 
$sth = $dbh->prepare($sql);
$sth->execute;
$serror = ""; $serror = $sth->errstr; if ($serror ne "") {die "SQL Syntax Error: $serror - From: $sql";}  

	while ( @row = $sth->fetchrow() )
		{
		$curcat = $fp_cats;
		
		$hlinked = qq[<a href="$script_url/kbcat.cgi?cid=$row[0]">$row[2]</a>];
		
		$curcat =~ s/%%maincat%%/$hlinked/gi;
		
		if ($row[7] eq ""){ $row[7] = 0; }
		$curcat =~ s/%nr%/$row[7]/gi;
		$curcat =~ s/%%description%%/$row[4]/gi;
		
		$all_cats = $all_cats . $curcat;
		} 



$fp_main =~ s/%%fpcategories%%/$all_cats/gi;


##### GET CATEGORIES 2 BE SEARCHED

if ($mysql_hostname eq ""){$dsn = "DBI:mysql:$db_name";}else{$dsn = "DBI:mysql:$db_name:$mysql_hostname:$mysql_port";}
$dbh = DBI->connect($dsn, $db_username, $db_password);
if ( !defined $dbh ) {die "Cannot connect to MySQL server: $DBI::errstr\n"; } 

$sql = "SELECT * FROM support_kbcats ORDER BY l1,l2";
$sth = $dbh->prepare($sql);
$sth->execute;
$serror = ""; $serror = $sth->errstr; if ($serror ne "") {die "SQL Syntax Error: $serror - From: $sql";} 

while ( @row = $sth->fetchrow() )
		{
		if ($row[3] eq "")
			{
			$moptions = $moptions . "<option value=\"$row[0]\">$row[2]</option>";
			}
		}
	
$sth->finish;
$dbh->disconnect; 

######

$catbox = qq[
<select name="cats" size="1">
<option value="all" selected>All Categories</option>
$moptions
</select>];

$fp_main =~ s/%%search_in%%/$catbox/gi;

$fp_main =~ s/!!advanced!!/$script_url\/search\.cgi\?fct=advanced/gi;
$fp_main =~ s/!!search_script!!/$script_url\/search\.cgi/gi;

$fp_main  = mysdesk::insert_template_includes($fp_main); 

print $fp_main;
}


#################

sub get_setup
{

$exists = (-e "$config_cgi");
if ($exists > 0)
	{
	open (STP, "$config_cgi");
		while (defined($line=<STP>))
			{
			if ($line =~ m/#/g)
				{
				$r = pos($line);
				$line = substr($line, 0, $r - 1);
				}
				
				$line =~ s/\n//g;
	
if ($line =~ /^DB_NAME/){$db_name = &get_setup_line($line, DB_NAME);}
if ($line =~ /^DB_USERNAME/){$db_username = &get_setup_line($line, DB_USERNAME);}
if ($line =~ /^DB_PASSWORD/){$db_password = &get_setup_line($line, DB_PASSWORD);}
if ($line =~ /^MYSQL_HOSTNAME/){$mysql_hostname = &get_setup_line($line, MYSQL_HOSTNAME);}
if ($line =~ /^MYSQL_PORT/){$mysql_port = &get_setup_line($line, MYSQL_PORT);}

if ($line =~ /^SCRIPT_URL/){$script_url = &get_setup_line($line, SCRIPT_URL);}
if ($line =~ /^ADMIN_URL/){$admin_url = &get_setup_line($line, ADMIN_URL);}
if ($line =~ /^WEB_URL/){$web_url = &get_setup_line($line, WEB_URL);}
if ($line =~ /^WEB_DIR/){$web_dir = &get_setup_line($line, WEB_DIR);}
if ($line =~ /^DATA_DIR/){$data_dir = &get_setup_line($line, DATA_DIR);}

if ($line =~ /^USERNAME/){$username = &get_setup_line($line, USERNAME);}
if ($line =~ /^PASSWORD/){$password = &get_setup_line($line, PASSWORD);}


			}
	close (STP);
	
	}
}




sub get_setup_line
{
my ($setup_line, $setup_var) = @_;
$crit = "\"";
$setup_line =~ m/$crit/g;
$r1 = pos($setup_line);
$setup_line =~ m/$crit/g;
$r2 = pos($setup_line);
$setup_line = substr($setup_line, $r1, ($r2 - $r1 - 1));
$return_val = $setup_line;
return ($return_val);
}

#### END CONFIGURATION ########################################################

