<?php
    require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection.class.php";
    require_once "/home/data/httpd/eclipse-php-classes/system/app.class.php";
	require_once("/home/data/httpd/eclipse-php-classes/people/ldapperson.class.php");
	require_once("/home/data/httpd/eclipse-php-classes/menu/menu.class.php");

    #*****************************************************************************
    #
    # stats_file_pick.php
    #
    # Author:       Denis Roy
    # Date:         2007-01-22
    #
    # Description:  UI to pick a file from the list 
    #
    # HISTORY: 
    #
    #*****************************************************************************

	$App = new App();
	$App->runStdWebAppCacheable();
	$ErrorMessage = "";
	
	$LDAPPerson = new LDAPPerson();
	$LDAPPerson = $LDAPPerson->redirectIfNotLoggedIn();


	$_FILENAME 	= $_POST['filename'] 	? $_POST['filename'] 	: $_GET['filename'];
	
	$WHERE = "";

	if ($_FILENAME == "") {
		# cancel the query - too many files to list
		$WHERE = "1 = 2";
	}
	else {
		$WHERE = "IDX.file_name LIKE " . $App->returnQuotedString("%" . $_FILENAME . "%");
	}
		
	
	# Connect to database
	$dbc 	= new DBConnection();
	$dbh 	= $dbc->connect();

	
	$sql = "SELECT IDX.file_name FROM download_file_index AS IDX WHERE " . $WHERE . " ORDER BY IDX.file_name";
	$rs 	= mysql_query($sql, $dbh);
	
	$inc_file = "inc/en_stats_file_pick.php";
	include($inc_file);

	$dbc->disconnect();

	$rs 		= null;
	$dbh 		= null;
	$dbc 		= null;

?>