";
	print "Error
";
	print $error;
	print "";
} /* }}} */
function printWarning($error) { /* {{{ */
	print "
";
	print "Warning
";
	print $error;
	print "
";
} /* }}} */
function printCheckError($resCheck) { /* {{{ */
	$hasError = false;
	foreach($resCheck as $keyRes => $paramRes) {
		if(isset($paramRes['type']) && $paramRes['type'] == 'error')
			$hasError = true;
		$errorMes = getMLText("settings_$keyRes"). " : " . getMLText("settings_".$paramRes["status"]);
		if (isset($paramRes["currentvalue"]))
			$errorMes .= "
 => " . getMLText("settings_currentvalue") . " : " . $paramRes["currentvalue"];
		if (isset($paramRes["suggestionvalue"]))
			$errorMes .= "
 => " . getMLText("settings_suggestionvalue") . " : " . $paramRes["suggestionvalue"];
		if (isset($paramRes["suggestion"]))
			$errorMes .= "
 => " . getMLText("settings_".$paramRes["suggestion"]);
		if (isset($paramRes["systemerror"]))
			$errorMes .= "
 => " . $paramRes["systemerror"];
		if(isset($paramRes['type']) && $paramRes['type'] == 'error')
			printError($errorMes);
		else
			printWarning($errorMes);
	}
	return $hasError;
} /* }}} */
/**
 * Load default settings + set
 */
define("LETODMS_INSTALL", "on");
define("LETODMS_VERSION", "3.4.0");
require_once('../inc/inc.ClassSettings.php');
$configDir = Settings::getConfigDir();
/**
 * Check if ENABLE_INSTALL_TOOL exists in config dir
 */
if (!$configDir) {
	echo "Fatal error! I could not even find a configuration directory.";
	exit;
}
if (!file_exists($configDir."/ENABLE_INSTALL_TOOL")) {
	echo "For installation of LetoDMS, you must create the file conf/ENABLE_INSTALL_TOOL";
	exit;
}
if (!file_exists($configDir."/settings.xml")) {
	if(!copy("settings.xml.template_install", $configDir."/settings.xml")) {
		echo "Could not create initial configuration file from template. Check directory permission of conf/.";
		exit;
	}
}
// Set folders settings
$settings = new Settings();
$settings->load($configDir."/settings.xml");
$rootDir = realpath ("..");
$rootDir = str_replace ("\\", "/" , $rootDir) . "/";
$installPath = realpath ("install.php");
$installPath = str_replace ("\\", "/" , $installPath);
$tmpToDel = str_replace ($rootDir, "" , $installPath);
$httpRoot = str_replace ($tmpToDel, "" , $_SERVER["REQUEST_URI"]);
do {
	$httpRoot = str_replace ("//", "/" , $httpRoot, $count);
} while ($count<>0);
if(!$settings->_rootDir)
	$settings->_rootDir = $rootDir;
//$settings->_coreDir = $settings->_rootDir;
//$settings->_luceneClassDir = $settings->_rootDir;
//$settings->_ADOdbPath = $settings->_rootDir;
if(!$settings->_contentDir) {
	$settings->_contentDir = $settings->_rootDir . 'data/';
	$settings->_luceneDir = $settings->_rootDir . 'data/lucene/';
	$settings->_stagingDir = $settings->_rootDir . 'data/staging/';
}
$settings->_httpRoot = $httpRoot;
if(isset($settings->_ADOdbPath))
	ini_set('include_path', $settings->_ADOdbPath. PATH_SEPARATOR .ini_get('include_path'));
/**
 * Include GUI + Language
 */
include("../inc/inc.Language.php");
include("../inc/inc.ClassUI.php");
UI::htmlStartPage("INSTALL");
UI::contentHeading("letoDMS Installation for version ".LETODMS_VERSION);
UI::contentContainerStart();
/**
 * Show phpinfo
 */
if (isset($_GET['phpinfo'])) {
	echo '' . getMLText("back") . '';
  phpinfo();
	UI::contentContainerEnd();
	UI::htmlEndPage();
  exit();
}
/**
 * check if ENABLE_INSTALL_TOOL shall be removed
 */
if (isset($_GET['disableinstall'])) { /* {{{ */
	if(file_exists($configDir."/ENABLE_INSTALL_TOOL")) {
		if(unlink($configDir."/ENABLE_INSTALL_TOOL")) {
			echo getMLText("settings_install_disabled");
			echo "
";
			echo '' . getMLText("settings_more_settings") .'';
		} else {
			echo getMLText("settings_cannot_disable");
			echo "
";
			echo '' . getMLText("back") . '';
		}
	} else {
		echo getMLText("settings_cannot_disable");
		echo "
";
		echo '' . getMLText("back") . '';
	}
	UI::contentContainerEnd();
	UI::htmlEndPage();
  exit();
} /* }}} */
/**
 * Check System
 */
if (printCheckError( $settings->checkSystem())) { /* {{{ */
	if (function_exists("apache_get_version")) {
  	echo "
Apache version: " . apache_get_version();
	}
	echo "
PHP version: " . phpversion();
	echo "
PHP include path: " . ini_get('include_path');
	echo '
';
	echo '
';
	echo '' . getMLText("refresh") . '';
	echo ' - ';
	echo '' . getMLText("version_info") . '';
	exit;
} /* }}} */
if (isset($_POST["action"])) $action=$_POST["action"];
else if (isset($_GET["action"])) $action=$_GET["action"];
else $action=NULL;
//var_dump($settings);
if ($action=="setSettings") {
	/**
	 * Get Parameters
	 */
	$settings->_rootDir = $_POST["rootDir"];
	$settings->_httpRoot = $_POST["httpRoot"];
	$settings->_contentDir = $_POST["contentDir"];
	$settings->_luceneDir = $_POST["luceneDir"];
	$settings->_stagingDir = $_POST["stagingDir"];
	$settings->_ADOdbPath = $_POST["ADOdbPath"];
	$settings->_dbDriver = $_POST["dbDriver"];
	$settings->_dbHostname = $_POST["dbHostname"];
	$settings->_dbDatabase = $_POST["dbDatabase"];
	$settings->_dbUser = $_POST["dbUser"];
	$settings->_dbPass = $_POST["dbPass"];
	$settings->_coreDir = $_POST["coreDir"];
	$settings->_luceneClassDir = $_POST["luceneClassDir"];
	/**
	 * Check Parameters, require version 3.3.x
	 */
	$hasError = printCheckError( $settings->check(substr(str_replace('.', '', LETODMS_VERSION), 0,2)));
	if (!$hasError) {
		// Create database
		if (isset($_POST["createDatabase"])) {
			$createOK = false;
			$errorMsg = "";
			require_once($settings->_ADOdbPath."adodb/adodb.inc.php");
			$connTmp = ADONewConnection($settings->_dbDriver);
			if ($connTmp) {
			 	$connTmp->Connect($settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase);
				if ($connTmp->IsConnected()) {
					// read SQL file
					if ($settings->_dbDriver=="mysql")
						$queries = file_get_contents("create_tables-innodb.sql");
					else
					  $queries = file_get_contents("create_tables.sql");
					// generate SQL query
					$queries = explode(";", $queries);
					// execute queries
					foreach($queries as $query) {
					// var_dump($query);
						$query = trim($query);
						if (!empty($query)) {
							$connTmp->Execute($query);
							if ($connTmp->ErrorNo()<>0) {
								$errorMsg .= $connTmp->ErrorMsg() . "
";
							}
					}
				}
				// error ?
				if (empty($errorMsg))
					$createOK = true;
				} else {
					$errorMsg = $connTmp->ErrorMsg();
				}
				$connTmp->Disconnect();
			}
			// Show error
			if (!$createOK) {
				echo $errorMsg;
				$hasError = true;
			}
		} // create database
		if (!$hasError) {
			// Save settings
			$settings->save();
			$needsupdate = false;
			require_once($settings->_ADOdbPath."adodb/adodb.inc.php");
			$connTmp = ADONewConnection($settings->_dbDriver);
			if ($connTmp) {
				$connTmp->Connect($settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase);
				if ($connTmp->IsConnected()) {
					$res = $connTmp->Execute('select * from tblVersion');
					if($rec = $res->FetchRow()) {
						$updatedirs = array();
						$d = dir(".");
						while (false !== ($entry = $d->read())) {
							if(preg_match('/update-([0-9.]*)/', $entry, $matches)) {
								$updatedirs[] = $matches[1];
							}
						}
						$d->close();
						echo "Your current database schema has version ".$rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']."
";
						if($updatedirs) {
							foreach($updatedirs as $updatedir) {
								if($updatedir > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) {
									$needsupdate = true;
									print "Database update to version ".$updatedir." needed
";
									if(file_exists('update-'.$updatedir.'/update.txt')) {
										print "Please read the comments on updating this version. Read now
";
									}
									if(file_exists('update-'.$updatedir.'/update.php')) {
										print "Afterwards run the update script.
";
									}
								}
							}
						} else {
							print "Your current database is up to date.
";
						}
					}
				}
			}
			// Show Web page
			if(!$needsupdate) {
				echo getMLText("settings_install_success");
				echo "
";
				echo getMLText("settings_delete_install_folder");
				echo "
";
				echo '' . getMLText("settings_disable_install") . '';
				echo "
";
				echo '' . getMLText("settings_more_settings") .'';
			}
		}
	}
	// Back link
	echo '
';
	echo '
';
	echo '' . getMLText("back") . '';
} else {
	/**
	 * Set parameters
	 */
	?>
	
	_printDisclaimer = false;
$settings->_footNote = false;
// end of the page
UI::contentContainerEnd();
UI::htmlEndPage();
?>