Index: trunk/CHANGELOG
===================================================================
--- trunk/CHANGELOG	(revision 686)
+++ trunk/CHANGELOG	(revision 687)
@@ -11,6 +11,9 @@
 ! = Update/Change
 
 ------------------------------------- 2.7.0 -------------------------------------
+10-Feb-2008 Christian Sommer
+!	added visualization of wrong/empty input fields
+#	fixed a bug with re-enter admin password
 09-Feb-2008 Christian Sommer
 !	modified some colors and CSS definitions of pages, media and section interface
 #	output_filter: fixed bug in regular expression (eats up characters in mailto links)
Index: trunk/wb/install/stylesheet.css
===================================================================
--- trunk/wb/install/stylesheet.css	(revision 686)
+++ trunk/wb/install/stylesheet.css	(revision 687)
@@ -12,6 +12,15 @@
 form {
 	margin: 0;
 }
+
+input:hover, input:focus, select:hover, select:focus, option:hover, option:focus {
+	background: #FFFFE0;
+}
+
+.wrong {
+	background-color: #FFDBDB;
+}
+
 .submit {
 	border : solid 1px #CCCCCC;
 	background: #E9ECEF;
Index: trunk/wb/install/save.php
===================================================================
--- trunk/wb/install/save.php	(revision 686)
+++ trunk/wb/install/save.php	(revision 687)
@@ -35,7 +35,7 @@
 $session_rand = rand(1000,9999);
 
 // Function to set error
-function set_error($message) {
+function set_error($message, $field_name = '') {
 	global $_POST;
 	if(isset($message) AND $message != '') {
 		// Copy values entered into session so user doesn't have to re-enter everything
@@ -67,9 +67,14 @@
 			$_SESSION['admin_username'] = $_POST['admin_username'];
 			$_SESSION['admin_email'] = $_POST['admin_email'];
 			$_SESSION['admin_password'] = $_POST['admin_password'];
+			$_SESSION['admin_repassword'] = $_POST['admin_repassword'];
 		}
 		// Set the message
 		$_SESSION['message'] = $message;
+		// Set the element(s) to highlight
+		if($field_name != '') {
+			$_SESSION['ERROR_FIELD'] = $field_name;
+		}
 		// Specify that session support is enabled
 		$_SESSION['session_support'] = '<font class="good">Enabled</font>';
 		// Redirect to first page again and exit
@@ -139,7 +144,7 @@
 
 // Check if user has entered the installation url
 if(!isset($_POST['wb_url']) OR $_POST['wb_url'] == '') {
-	set_error('Please enter an absolute URL');
+	set_error('Please enter an absolute URL', 'wb_url');
 } else {
 	$wb_url = $_POST['wb_url'];
 }
@@ -158,7 +163,7 @@
 }
 // Get the default time zone
 if(!isset($_POST['default_timezone']) OR !is_numeric($_POST['default_timezone'])) {
-	set_error('Please select a valid default timezone');
+	set_error('Please select a valid default timezone', 'default_timezone');
 } else {
 	$default_timezone = $_POST['default_timezone']*60*60;
 }
@@ -167,12 +172,12 @@
 // Get the default language
 $allowed_languages = array('CA', 'DA', 'DE', 'EN', 'ES', 'ET', 'FI', 'FR', 'HR', 'HU', 'IT', 'LV', 'NL', 'PT','SE', 'TR');
 if(!isset($_POST['default_language']) OR !in_array($_POST['default_language'], $allowed_languages)) {
-	set_error('Please select a valid default backend language');
+	set_error('Please select a valid default backend language','default_language');
 } else {
 	$default_language = $_POST['default_language'];
 	// make sure the selected language file exists in the language folder
 	if(!file_exists('../languages/' .$default_language .'.php')) {
-		set_error('The language file: \'' .$default_language .'.php\' is missing. Upload file to language folder or choose another language');
+		set_error('The language file: \'' .$default_language .'.php\' is missing. Upload file to language folder or choose another language','default_language');
 	}
 }
 // End default language details code
@@ -200,25 +205,25 @@
 // Begin database details code
 // Check if user has entered a database host
 if(!isset($_POST['database_host']) OR $_POST['database_host'] == '') {
-	set_error('Please enter a database host name');
+	set_error('Please enter a database host name', 'database_host');
 } else {
 	$database_host = $_POST['database_host'];
 }
 // Check if user has entered a database username
 if(!isset($_POST['database_username']) OR $_POST['database_username'] == '') {
-	set_error('Please enter a database username');
+	set_error('Please enter a database username','database_username');
 } else {
 	$database_username = $_POST['database_username'];
 }
 // Check if user has entered a database password
 if(!isset($_POST['database_password'])) {
-	set_error('Please enter a database password');
+	set_error('Please enter a database password', 'database_password');
 } else {
 	$database_password = $_POST['database_password'];
 }
 // Check if user has entered a database name
 if(!isset($_POST['database_name']) OR $_POST['database_name'] == '') {
-	set_error('Please enter a database name');
+	set_error('Please enter a database name', 'database_name');
 } else {
 	$database_name = $_POST['database_name'];
 }
@@ -235,7 +240,7 @@
 // Begin website title code
 // Get website title
 if(!isset($_POST['website_title']) OR $_POST['website_title'] == '') {
-	set_error('Please enter a website title');
+	set_error('Please enter a website title', 'website_title');
 } else {
 	$website_title = add_slashes($_POST['website_title']);
 }
@@ -244,33 +249,33 @@
 // Begin admin user details code
 // Get admin username
 if(!isset($_POST['admin_username']) OR $_POST['admin_username'] == '') {
-	set_error('Please enter a username for the Administrator account');
+	set_error('Please enter a username for the Administrator account','admin_username');
 } else {
 	$admin_username = $_POST['admin_username'];
 }
 // Get admin email and validate it
 if(!isset($_POST['admin_email']) OR $_POST['admin_email'] == '') {
-	set_error('Please enter an email for the Administrator account');
+	set_error('Please enter an email for the Administrator account','admin_email');
 } else {
 	if(eregi("^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$", $_POST['admin_email'])) {
 		$admin_email = $_POST['admin_email'];
 	} else {
-		set_error('Please enter a valid email address for the Administrator account');
+		set_error('Please enter a valid email address for the Administrator account','admin_email');
 	}
 }
 // Get the two admin passwords entered, and check that they match
 if(!isset($_POST['admin_password']) OR $_POST['admin_password'] == '') {
-	set_error('Please enter a password for the Administrator account');
+	set_error('Please enter a password for the Administrator account','admin_password');
 } else {
 	$admin_password = $_POST['admin_password'];
 }
 if(!isset($_POST['admin_repassword']) OR $_POST['admin_repassword'] == '') {
-	set_error('Please make sure you re-enter the password for the Administrator account');
+	set_error('Please make sure you re-enter the password for the Administrator account','admin_repassword');
 } else {
 	$admin_repassword = $_POST['admin_repassword'];
 }
 if($admin_password != $admin_repassword) {
-	set_error('Sorry, the two Administrator account passwords you entered do not match');
+	set_error('Sorry, the two Administrator account passwords you entered do not match','admin_repassword');
 }
 // End admin user details code
 
Index: trunk/wb/install/index.php
===================================================================
--- trunk/wb/install/index.php	(revision 686)
+++ trunk/wb/install/index.php	(revision 687)
@@ -30,6 +30,14 @@
 	define('SESSION_STARTED', true);
 }
 
+// Function to highlight input fields which contain wrong/missing data
+function field_error($field_name='') {
+	if(!defined('SESSION_STARTED') || $field_name == '') return;
+	if(isset($_SESSION['ERROR_FIELD']) && $_SESSION['ERROR_FIELD'] == $field_name) {
+		return ' class="wrong"';
+	}
+}
+
 // Check if the page has been reloaded
 if(!isset($_GET['sessions_checked']) OR $_GET['sessions_checked'] != 'true') {
 	// Set session variable
@@ -179,7 +187,7 @@
 				$guessed_url = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"];
 				$guessed_url = rtrim(dirname($guessed_url), 'install');
 				?>
-				<input type="text" tabindex="1" name="wb_url" style="width: 99%;" value="<?php if(isset($_SESSION['wb_url'])) { echo $_SESSION['wb_url']; } else { echo $guessed_url; } ?>" />
+				<input <?php echo field_error('wb_url');?> type="text" tabindex="1" name="wb_url" style="width: 99%;" value="<?php if(isset($_SESSION['wb_url'])) { echo $_SESSION['wb_url']; } else { echo $guessed_url; } ?>" />
 			</td>
 		</tr>
 		<tr>
@@ -187,7 +195,7 @@
 				Default Timezone:
 			</td>
 			<td>
-				<select tabindex="3" name="default_timezone" style="width: 100%;">
+				<select <?php echo field_error('default_timezone');?> tabindex="3" name="default_timezone" style="width: 100%;">
 					<?php
 					$TIMEZONES['-12'] = 'GMT - 12 Hours';
 					$TIMEZONES['-11'] = 'GMT -11 Hours';
@@ -235,7 +243,7 @@
 				Default Language:
 			</td>
 			<td>
-				<select tabindex="3" name="default_language" style="width: 100%;">
+				<select <?php echo field_error('default_language');?> tabindex="3" name="default_language" style="width: 100%;">
 					<?php
 					$DEFAULT_LANGUAGE = array(
 						'CA'=>'Catalan', 'DA'=>'Danish', 'DE'=>'Deutsch', 'EN'=>'English',
@@ -287,18 +295,18 @@
 		<tr>
 			<td width="120" style="color: #666666;">Host Name:</td>
 			<td width="230">
-				<input type="text" tabindex="7" name="database_host" style="width: 98%;" value="<?php if(isset($_SESSION['database_host'])) { echo $_SESSION['database_host']; } else { echo 'localhost'; } ?>" />
+				<input <?php echo field_error('database_host');?> type="text" tabindex="7" name="database_host" style="width: 98%;" value="<?php if(isset($_SESSION['database_host'])) { echo $_SESSION['database_host']; } else { echo 'localhost'; } ?>" />
 			</td>
 			<td width="7">&nbsp;</td>
 			<td width="70" style="color: #666666;">Username:</td>
 			<td>
-				<input type="text" tabindex="9" name="database_username" style="width: 98%;" value="<?php if(isset($_SESSION['database_username'])) { echo $_SESSION['database_username']; } else { echo 'root'; } ?>" />
+				<input <?php echo field_error('database_username');?> type="text" tabindex="9" name="database_username" style="width: 98%;" value="<?php if(isset($_SESSION['database_username'])) { echo $_SESSION['database_username']; } else { echo 'root'; } ?>" />
 			</td>
 		</tr>
 		<tr>
 			<td style="color: #666666;">Database Name:</td>
 			<td>
-				<input type="text" tabindex="8" name="database_name" style="width: 98%;" value="<?php if(isset($_SESSION['database_name'])) { echo $_SESSION['database_name']; } else { echo 'wb'; } ?>" />
+				<input <?php echo field_error('database_name');?> type="text" tabindex="8" name="database_name" style="width: 98%;" value="<?php if(isset($_SESSION['database_name'])) { echo $_SESSION['database_name']; } else { echo 'wb'; } ?>" />
 			</td>
 			<td>&nbsp;</td>
 			<td style="color: #666666;">Password:</td>
@@ -325,7 +333,7 @@
 		<tr>
 			<td style="color: #666666;" colspan="1">Website Title:</td>
 			<td colspan="4">
-				<input type="text" tabindex="13" name="website_title" style="width: 99%;" value="<?php if(isset($_SESSION['website_title'])) { echo $_SESSION['website_title']; } ?>" />
+				<input <?php echo field_error('website_title');?> type="text" tabindex="13" name="website_title" style="width: 99%;" value="<?php if(isset($_SESSION['website_title'])) { echo $_SESSION['website_title']; } ?>" />
 			</td>
 		</tr>
 		<tr>
@@ -334,23 +342,23 @@
 		<tr>
 			<td style="color: #666666;">Username:</td>
 			<td>
-				<input type="text" tabindex="14" name="admin_username" style="width: 98%;" value="<?php if(isset($_SESSION['admin_username'])) { echo $_SESSION['admin_username']; } else { echo 'admin'; } ?>" />
+				<input <?php echo field_error('admin_username');?> type="text" tabindex="14" name="admin_username" style="width: 98%;" value="<?php if(isset($_SESSION['admin_username'])) { echo $_SESSION['admin_username']; } else { echo 'admin'; } ?>" />
 			</td>
 			<td>&nbsp;</td>
 			<td style="color: #666666;">Password:</td>
 			<td>
-				<input type="password" tabindex="16" name="admin_password" style="width: 98%;"<?php if(isset($_SESSION['admin_password'])) { echo ' value = "'.$_SESSION['admin_password'].'"'; } ?> />
+				<input <?php echo field_error('admin_password');?> type="password" tabindex="16" name="admin_password" style="width: 98%;"<?php if(isset($_SESSION['admin_password'])) { echo ' value = "'.$_SESSION['admin_password'].'"'; } ?> />
 			</td>
 		</tr>
 		<tr>
 			<td style="color: #666666;">Email:</td>
 			<td>
-				<input type="text" tabindex="15" name="admin_email" style="width: 98%;"<?php if(isset($_SESSION['admin_email'])) { echo ' value = "'.$_SESSION['admin_email'].'"'; } ?> />
+				<input <?php echo field_error('admin_email');?> type="text" tabindex="15" name="admin_email" style="width: 98%;"<?php if(isset($_SESSION['admin_email'])) { echo ' value = "'.$_SESSION['admin_email'].'"'; } ?> />
 			</td>
 			<td>&nbsp;</td>
 			<td style="color: #666666;">Re-Password:</td>
 			<td>
-				<input type="password" tabindex="17" name="admin_repassword" style="width: 98%;"<?php if(isset($_SESSION['admin_password'])) { echo ' value = "'.$_SESSION['admin_password'].'"'; } ?> />
+				<input <?php echo field_error('admin_repassword');?> type="password" tabindex="17" name="admin_repassword" style="width: 98%;"<?php if(isset($_SESSION['admin_repassword'])) { echo ' value = "'.$_SESSION['admin_repassword'].'"'; } ?> />
 			</td>
 		</tr>
 		<tr>
