From 436ed820192d05299a639b45ade96f3916bb51f2 Mon Sep 17 00:00:00 2001
From: redray <redray@ispconfig3>
Date: Mon, 01 Dec 2008 05:05:43 -0500
Subject: [PATCH] fixed some copyright notices

---
 install/tpl/config.inc.php.master                         |    3 
 install/dist/lib/fedora.lib.php                           |    2 
 interface/lib/classes/db_firebird.inc.php                 |  694 +++++-----
 server/mods-available/monitor_core_module.inc.php         |    3 
 interface/lib/classes/plugin_base.inc.php                 |   28 
 interface/lib/classes/searchform.inc.php                  |   10 
 server/plugins-available/mysql_clientdb_plugin.inc.php    |    2 
 install/sql/ispconfig3.sql                                |   28 
 interface/lib/classes/listform_tpl_generator.inc.php      |    3 
 interface/lib/classes/tform_actions.inc.php               |    9 
 server/lib/classes/tpl.inc.php                            |    1 
 interface/lib/classes/cmstree.inc.php                     |   11 
 interface/lib/classes/remoting.inc.php                    |   28 
 interface/lib/classes/remoting_lib.inc.php                |    4 
 install/dist/conf/gentoo.conf.php                         |   28 
 interface/lib/classes/listform_actions.inc.php            |    9 
 install/dist/lib/centos52.lib.php                         |    2 
 interface/lib/classes/plugin_dbhistory.inc.php            |   28 
 interface/lib/classes/tree.inc.php                        |    2 
 server/mods-available/client_module.inc.php               |    2 
 server/lib/classes/db_mysql.inc.php                       |  911 +++++++-------
 install/dist/conf/fedora9.conf.php                        |   28 
 install/dist/lib/fedora9.lib.php                          |    2 
 server/lib/classes/services.inc.php                       |    4 
 server/plugins-available/network_settings_plugin.inc.php  |    2 
 interface/lib/classes/form.inc.php                        |    3 
 interface/lib/classes/auth.inc.php                        |    2 
 install/dist/conf/opensuse110.conf.php                    |   28 
 remoting_client/example.php                               |   28 
 install/lib/mysql.lib.php                                 |  945 +++++++-------
 interface/web/clang.php                                   |    2 
 interface/lib/classes/ini_parser.inc.php                  |   10 
 interface/lib/classes/tform_tpl_generator.inc.php         |    3 
 interface/web/nav.php                                     |    2 
 install/dist/conf/debian40.conf.php                       |   28 
 server/lib/classes/ini_parser.inc.php                     |    2 
 server/plugins-available/software_update_plugin.inc.php   |    2 
 interface/lib/classes/searchform_actions.inc.php          |    9 
 interface/lib/classes/searchform_tpl_generator.inc.php    |    3 
 install/dist/conf/centos52.conf.php                       |   28 
 interface/web/index.php                                   |    2 
 server/mods-available/database_module.inc.php             |    2 
 install/lib/install.lib.php                               |    1 
 server/lib/classes/mod_mail_base.inc.php                  |    2 
 install/options.conf.php                                  |   28 
 server/lib/classes/file.inc.php                           |  520 ++++----
 interface/lib/classes/getconf.inc.php                     |   11 
 interface/lib/classes/db_mysql.inc.php                    |   14 
 interface/lib/classes/listform.inc.php                    |    8 
 server/lib/classes/system.inc.php                         |    4 
 server/plugins-available/shelluser_jailkit_plugin.inc.php |    2 
 interface/lib/classes/tform.inc.php                       |    5 
 interface/web/content.php                                 |    2 
 install/dist/lib/opensuse.lib.php                         |    2 
 interface/lib/classes/validate_client.inc.php             |    3 
 server/lib/app.inc.php                                    |    3 
 server/lib/classes/getconf.inc.php                        |    2 
 interface/lib/classes/plugin_listview.inc.php             |   28 
 install/dist/lib/opensuse110.lib.php                      |    2 
 interface/lib/classes/validate_dns.inc.php                |    9 
 interface/web/capp.php                                    |    2 
 interface/web/keepalive.php                               |    2 
 server/conf/motd.master                                   |    2 
 interface/lib/app.inc.php                                 |   14 
 server/plugins-available/firewall_plugin.inc.php          |    2 
 65 files changed, 1,933 insertions(+), 1,678 deletions(-)

diff --git a/install/dist/conf/centos52.conf.php b/install/dist/conf/centos52.conf.php
index 89f8f4f..711271d 100644
--- a/install/dist/conf/centos52.conf.php
+++ b/install/dist/conf/centos52.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 //***  Fedora 9 default settings
 
 //* Main
diff --git a/install/dist/conf/debian40.conf.php b/install/dist/conf/debian40.conf.php
index e7dee46..6b3bc6d 100644
--- a/install/dist/conf/debian40.conf.php
+++ b/install/dist/conf/debian40.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 //***  Debian 4.0 default settings
 
 //* Main
diff --git a/install/dist/conf/fedora9.conf.php b/install/dist/conf/fedora9.conf.php
index 3f27d97..11ea2a7 100644
--- a/install/dist/conf/fedora9.conf.php
+++ b/install/dist/conf/fedora9.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 //***  Fedora 9 default settings
 
 //* Main
diff --git a/install/dist/conf/gentoo.conf.php b/install/dist/conf/gentoo.conf.php
index cc58b6d..76c6848 100644
--- a/install/dist/conf/gentoo.conf.php
+++ b/install/dist/conf/gentoo.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 //*** Gentoo default settings
 
 //* Main
diff --git a/install/dist/conf/opensuse110.conf.php b/install/dist/conf/opensuse110.conf.php
index 6191ad2..40d86b4 100644
--- a/install/dist/conf/opensuse110.conf.php
+++ b/install/dist/conf/opensuse110.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 //***  OpenSUSE 11.0 default settings
 
 //* Main
diff --git a/install/dist/lib/centos52.lib.php b/install/dist/lib/centos52.lib.php
index aed95f5..da77b42 100644
--- a/install/dist/lib/centos52.lib.php
+++ b/install/dist/lib/centos52.lib.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index 1c00c4a..3e6c7e8 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/install/dist/lib/fedora9.lib.php b/install/dist/lib/fedora9.lib.php
index aed95f5..da77b42 100644
--- a/install/dist/lib/fedora9.lib.php
+++ b/install/dist/lib/fedora9.lib.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index 1eba74e..ccbc943 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/install/dist/lib/opensuse110.lib.php b/install/dist/lib/opensuse110.lib.php
index aed95f5..da77b42 100644
--- a/install/dist/lib/opensuse110.lib.php
+++ b/install/dist/lib/opensuse110.lib.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php
index c78c0f0..a0bc33f 100644
--- a/install/lib/install.lib.php
+++ b/install/lib/install.lib.php
@@ -31,7 +31,6 @@
 /*
 	This function returns a string that describes the installed
 	linux distribution. e.g. debian40 for Debian Linux 4.0
-
 */
 
 
diff --git a/install/lib/mysql.lib.php b/install/lib/mysql.lib.php
index ec3e741..0dc8f4b 100644
--- a/install/lib/mysql.lib.php
+++ b/install/lib/mysql.lib.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,479 +28,479 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-	class db
+class db
+{
+	var $dbHost = "";		  // hostname of the MySQL server
+	var $dbName = "";		  // logical database name on that server
+	var $dbUser = "";		  // database authorized user
+	var $dbPass = "";		  // user's password
+	var $dbCharset = "";      // what charset comes and goes to mysql: utf8 / latin1
+	var $linkId = 0;		  // last result of mysql_connect()
+	var $queryId = 0;		  // last result of mysql_query()
+	var $record	= array();	  // last record fetched
+    var $autoCommit = 1;      // Autocommit Transactions
+	var $currentRow;		  // current row number
+	var $errorNumber = 0;	  // last error number
+	var $errorMessage = "";	  // last error message
+	var $errorLocation = "";  // last error location
+	var $show_error_messages = false;
+
+	// constructor
+	function db()
 	{
-		var $dbHost = "";		  // hostname of the MySQL server
-		var $dbName = "";		  // logical database name on that server
-		var $dbUser = "";		  // database authorized user
-		var $dbPass = "";		  // user's password
-		var $dbCharset = "";      // what charset comes and goes to mysql: utf8 / latin1
-		var $linkId = 0;		  // last result of mysql_connect()
-		var $queryId = 0;		  // last result of mysql_query()
-		var $record	= array();	  // last record fetched
-        var $autoCommit = 1;      // Autocommit Transactions
-		var $currentRow;		  // current row number
-		var $errorNumber = 0;	  // last error number
-		var $errorMessage = "";	  // last error message
-		var $errorLocation = "";  // last error location
-		var $show_error_messages = false;
-
-		// constructor
-		function db()
-		{
-			
-			global $conf;
-			$this->dbHost = $conf["mysql"]["host"];
-			//$this->dbName = $conf["mysql"]["database"];
-			$this->dbUser = $conf["mysql"]["admin_user"];
-			$this->dbPass = $conf["mysql"]["admin_password"];
-			$this->dbCharset = $conf["mysql"]["charset"];
-			//$this->connect();
-		}
-
-		// error handler
-		function updateError($location)
-		{
-			$this->errorNumber = mysql_errno();
-			$this->errorMessage = mysql_error();
-			$this->errorLocation = $location;
-			if($this->errorNumber && $this->show_error_messages)
-			{
-				echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
-				flush();
-			}
-		}
-
-		function connect()
-		{
-			if($this->linkId == 0)
-			{
-				$this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
-
-				if(!$this->linkId)
-				{
-					$this->updateError('DB::connect()<br />mysql_connect');
-					return false;
-				}
-    			$this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
-			}
-			return true;
-		}
-
-		function query($queryString)
-		{
-			if(!$this->connect())
-			{
-				return false;
-			}
-			if($this->dbName != '') {
-				if(!mysql_select_db($this->dbName, $this->linkId))
-				{
-					$this->updateError('DB::connect()<br />mysql_select_db');
-					return false;
-				}
-			}
-			$this->queryId = @mysql_query($queryString, $this->linkId);
-			$this->updateError('DB::query('.$queryString.')<br />mysql_query');
-			if(!$this->queryId)
-			{
-				return false;
-			}
-			$this->currentRow = 0;
-			return $this->queryId;
-		}
-
-		// returns all records in an array
-		function queryAllRecords($queryString)
-		{
-			if(!$this->query($queryString))
-			{
-				return false;
-			}
-			$ret = array();
-			while($line = $this->nextRecord())
-			{
-				$ret[] = $line;
-			}
-			return $ret;
-		}
-
-		// returns one record in an array
-		function queryOneRecord($queryString)
-		{
-			if(!$this->query($queryString) || $this->numRows() == 0)
-			{
-				return false;
-			}
-			return $this->nextRecord();
-		}
-
-		// returns the next record in an array
-		function nextRecord()
-		{
-            $this->record = mysql_fetch_assoc($this->queryId);
-			$this->updateError('DB::nextRecord()<br />mysql_fetch_array');
-			if(!$this->record || !is_array($this->record))
-			{
-				return false;
-			}
-			$this->currentRow++;
-			return $this->record;
-		}
-
-		// returns number of rows returned by the last select query
-		function numRows()
-		{
-			return mysql_num_rows($this->queryId);
-		}
 		
-		function affectedRows()
-		{
-			return mysql_affected_rows($this->linkId);
-		}
-		
-		// returns mySQL insert id
-		function insertID()
-		{
-			return mysql_insert_id($this->linkId);
-		}
-        
-        // Check der variablen
-		// deprecated, now use quote
-        function check($formfield)
-        {
-            return $this->quote($formfield);
-        }
-		
-		// Check der variablen
-        function quote($formfield)
-        {
-            return mysql_real_escape_string($formfield);
-        }
-		
-		// Check der variablen
-        function unquote($formfield)
-        {
-            return stripslashes($formfield);
-        }
-		
-		function toLower($record) {
-			if(is_array($record)) {
-				foreach($record as $key => $val) {
-					$key = strtolower($key);
-					$out[$key] = $val;
-				}
-			}
-		return $out;
-		}
-       
-       
-       function insert($tablename,$form,$debug = 0)
-       {
-         if(is_array($form)){
-	       foreach($form as $key => $value) 
-   		    {
-   		    $sql_key .= "$key, ";
-            $sql_value .= "'".$this->check($value)."', ";
-      		 }
-       	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
-        $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
-        
-       	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
-       
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-          }
-       }
-       
-       function update($tablename,$form,$bedingung,$debug = 0)
-       {
-       
-	     if(is_array($form)){
-           foreach($form as $key => $value) 
-   		    {
-   		    $insql .= "$key = '".$this->check($value)."', ";
-      		 }
-       	        $insql = substr($insql,0,strlen($insql) - 2);
-       	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-           }
-       }
-       
-       function closeConn() {
-       
-       }
-       
-       function freeResult() {
-       
-       
-       }
-       
-       function delete() {
-       
-       }
-       
-       function Transaction($action) {
-       //action = begin, commit oder rollback
-       
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function createTable($table_name,$columns) {
-       $index = "";
-       $sql = "CREATE TABLE $table_name (";
-       foreach($columns as $col){
-            $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-       
-            if($col["defaultValue"] != "") {
-				if($col["defaultValue"] == "NULL" or $col["defaultValue"] == "NOT NULL") {
-					$sql .= "DEFAULT ".$col["defaultValue"]." ";
-				} else {
-					$sql .= "DEFAULT '".$col["defaultValue"]."' ";
-				}
-				
-			} elseif($col["defaultValue"] != false) {
-				$sql .= "DEFAULT '' ";
-			}
-			if($col["defaultValue"] != "NULL" && $col["defaultValue"] != "NOT NULL") {
-            	if($col["notNull"] == true) {
-                	$sql .= "NOT NULL ";
-            	} else {
-                	$sql .= "NULL ";
-            	}
-			}
-            if($col["autoInc"] == true) $sql .= "auto_increment ";
-            $sql.= ",";
-            // key Definitionen
-            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
-            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
-            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
-       }
-       $sql .= $index;
-       $sql = substr($sql,0,-1);
-       $sql .= ")";
-       
-       $this->query($sql);
-       return true;
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       function alterTable($table_name,$columns) {
-       $index = "";
-       $sql = "ALTER TABLE $table_name ";
-       foreach($columns as $col){
-            if($col["action"] == 'add') {
-                $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-            } elseif ($col["action"] == 'alter') {
-                $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-            } elseif ($col["action"] == 'drop') {
-                $sql .= "DROP ".$col["name"]." ";
-            }
-            if($col["action"] != 'drop') {  
-            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
-            if($col["notNull"] == true) {
-                $sql .= "NOT NULL ";
-            } else {
-                $sql .= "NULL ";
-            }
-            if($col["autoInc"] == true) $sql .= "auto_increment ";
-            $sql.= ",";
-            // key Definitionen
-            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
-            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
-            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
-            }
-       }
-       $sql .= $index;
-       $sql = substr($sql,0,-1);
-       
-       //die($sql);
-       $this->query($sql);
-       return true;
-       }
-       
-       function dropTable($table_name) {
-       $this->check($table_name);
-       $sql = "DROP TABLE '". $table_name."'";
-       return $this->query($sql);
-       }
-       
-       // gibt Array mit Tabellennamen zur�ck
-       function getTables($database_name = '') {
-	   	
-			if($database_name == ''){
-                $database_name = $this->dbName;
-            }
-            $result = mysql_query("SHOW TABLES FROM `$database_name`");
-            $tb_names = array();
-            for ($i = 0; $i < mysql_num_rows($result); $i++) {
-                $tb_names[$i] = mysql_tablename($result, $i);
-            }
-            return $tb_names;       
-       }
-       
-       // gibt Feldinformationen zur Tabelle zur�ck
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function tableInfo($table_name) {
-       
-       global $go_api,$go_info;
-       // Tabellenfelder einlesen
-        
-        if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){
-        foreach($rows as $row) {
-            $name = $row[0];
-            $default = $row[4];
-            $key = $row[3];
-            $extra = $row[5];
-            $isnull = $row[2];
-            $type = $row[1];
-        
-            
-            $column = array();
-        
-            $column["name"] = $name;
-            //$column["type"] = $type;
-            $column["defaultValue"] = $default;
-            if(stristr($key,"PRI")) $column["option"] = "primary";
-            if(stristr($isnull,"YES")) {
-                $column["notNull"] = false;
-            } else {
-               $column["notNull"] = true; 
-            }
-            if($extra == 'auto_increment') $column["autoInc"] = true;
-            
-            
-            // Type in Metatype umsetzen
-            
-            if(stristr($type,"int(")) $metaType = 'int32';
-            if(stristr($type,"bigint")) $metaType = 'int64';
-            if(stristr($type,"char")) {
-                $metaType = 'char';
-                $tmp_typeValue = explode('(',$type);
-                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
-            }
-            if(stristr($type,"varchar")) {
-                $metaType = 'varchar';
-                $tmp_typeValue = explode('(',$type);
-                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
-            }
-            if(stristr($type,"text")) $metaType = 'text';
-            if(stristr($type,"double")) $metaType = 'double';
-            if(stristr($type,"blob")) $metaType = 'blob';
-            
-            
-            $column["type"] = $metaType;
-            
-        $columns[] = $column;
-        }
-            return $columns;
-        } else {
-            return false;
-        }
-        
-        
-        //$this->createTable('tester',$columns);
-        
-        /*
-        $result = mysql_list_fields($go_info["server"]["db_name"],$table_name);
-        $fields = mysql_num_fields ($result);
-        $i = 0;
-        $table = mysql_field_table ($result, $i);
-        while ($i < $fields) {
-            $name  = mysql_field_name  ($result, $i);
-            $type  = mysql_field_type  ($result, $i);
-            $len   = mysql_field_len   ($result, $i);
-            $flags = mysql_field_flags ($result, $i);
-            print_r($flags);
-            
-            $columns = array(name => $name,
-                        type =>     "",
-                        defaultValue =>  "",
-                        isnull =>   1,
-                        option =>   "");
-            $returnvar[] = $columns;
-            
-            $i++;
-        }
-        */
-        
-        
-       
-       }
-       
-       function mapType($metaType,$typeValue) {
-       global $go_api;
-       $metaType = strtolower($metaType);
-       switch ($metaType) {
-       case 'int16':
-            return 'smallint';
-       break;
-       case 'int32':
-            return 'int';
-       break;
-       case 'int64':
-            return 'bigint';
-       break;
-       case 'double':
-            return 'double';
-       break;
-       case 'char':
-            return 'char';
-       break;
-       case 'varchar':
-            if($typeValue < 1) die("Datenbank Fehler: F�r diesen Datentyp ist eine L�ngenangabe notwendig.");
-            return 'varchar('.$typeValue.')';
-       break;
-       case 'text':
-            return 'text';
-       break;
-       case 'blob':
-            return 'blob';
-       break;
-       }
-       }
-		
+		global $conf;
+		$this->dbHost = $conf["mysql"]["host"];
+		//$this->dbName = $conf["mysql"]["database"];
+		$this->dbUser = $conf["mysql"]["admin_user"];
+		$this->dbPass = $conf["mysql"]["admin_password"];
+		$this->dbCharset = $conf["mysql"]["charset"];
+		//$this->connect();
 	}
 
+	// error handler
+	function updateError($location)
+	{
+		$this->errorNumber = mysql_errno();
+		$this->errorMessage = mysql_error();
+		$this->errorLocation = $location;
+		if($this->errorNumber && $this->show_error_messages)
+		{
+			echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
+			flush();
+		}
+	}
+
+	function connect()
+	{
+		if($this->linkId == 0)
+		{
+			$this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
+
+			if(!$this->linkId)
+			{
+				$this->updateError('DB::connect()<br />mysql_connect');
+				return false;
+			}
+			$this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
+		}
+		return true;
+	}
+
+	function query($queryString)
+	{
+		if(!$this->connect())
+		{
+			return false;
+		}
+		if($this->dbName != '') {
+			if(!mysql_select_db($this->dbName, $this->linkId))
+			{
+				$this->updateError('DB::connect()<br />mysql_select_db');
+				return false;
+			}
+		}
+		$this->queryId = @mysql_query($queryString, $this->linkId);
+		$this->updateError('DB::query('.$queryString.')<br />mysql_query');
+		if(!$this->queryId)
+		{
+			return false;
+		}
+		$this->currentRow = 0;
+		return $this->queryId;
+	}
+
+	// returns all records in an array
+	function queryAllRecords($queryString)
+	{
+		if(!$this->query($queryString))
+		{
+			return false;
+		}
+		$ret = array();
+		while($line = $this->nextRecord())
+		{
+			$ret[] = $line;
+		}
+		return $ret;
+	}
+
+	// returns one record in an array
+	function queryOneRecord($queryString)
+	{
+		if(!$this->query($queryString) || $this->numRows() == 0)
+		{
+			return false;
+		}
+		return $this->nextRecord();
+	}
+
+	// returns the next record in an array
+	function nextRecord()
+	{
+        $this->record = mysql_fetch_assoc($this->queryId);
+		$this->updateError('DB::nextRecord()<br />mysql_fetch_array');
+		if(!$this->record || !is_array($this->record))
+		{
+			return false;
+		}
+		$this->currentRow++;
+		return $this->record;
+	}
+
+	// returns number of rows returned by the last select query
+	function numRows()
+	{
+		return mysql_num_rows($this->queryId);
+	}
+	
+	function affectedRows()
+	{
+		return mysql_affected_rows($this->linkId);
+	}
+	
+	// returns mySQL insert id
+	function insertID()
+	{
+		return mysql_insert_id($this->linkId);
+	}
+    
+    // Check der variablen
+	// deprecated, now use quote
+    function check($formfield)
+    {
+        return $this->quote($formfield);
+    }
+	
+	// Check der variablen
+    function quote($formfield)
+    {
+        return mysql_real_escape_string($formfield);
+    }
+	
+	// Check der variablen
+    function unquote($formfield)
+    {
+        return stripslashes($formfield);
+    }
+	
+	function toLower($record) {
+		if(is_array($record)) {
+			foreach($record as $key => $val) {
+				$key = strtolower($key);
+				$out[$key] = $val;
+			}
+		}
+	return $out;
+	}
+   
+   
+   function insert($tablename,$form,$debug = 0)
+   {
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $sql_key .= "$key, ";
+        $sql_value .= "'".$this->check($value)."', ";
+  		 }
+   	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
+    $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
+    
+   	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
+   
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+      }
+   }
+   
+   function update($tablename,$form,$bedingung,$debug = 0)
+   {
+   
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $insql .= "$key = '".$this->check($value)."', ";
+  		 }
+   	        $insql = substr($insql,0,strlen($insql) - 2);
+   	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+       }
+   }
+   
+   function closeConn() {
+   
+   }
+   
+   function freeResult() {
+   
+   
+   }
+   
+   function delete() {
+   
+   }
+   
+   function Transaction($action) {
+   //action = begin, commit oder rollback
+   
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function createTable($table_name,$columns) {
+   $index = "";
+   $sql = "CREATE TABLE $table_name (";
+   foreach($columns as $col){
+        $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+   
+        if($col["defaultValue"] != "") {
+			if($col["defaultValue"] == "NULL" or $col["defaultValue"] == "NOT NULL") {
+				$sql .= "DEFAULT ".$col["defaultValue"]." ";
+			} else {
+				$sql .= "DEFAULT '".$col["defaultValue"]."' ";
+			}
+			
+		} elseif($col["defaultValue"] != false) {
+			$sql .= "DEFAULT '' ";
+		}
+		if($col["defaultValue"] != "NULL" && $col["defaultValue"] != "NOT NULL") {
+        	if($col["notNull"] == true) {
+            	$sql .= "NOT NULL ";
+        	} else {
+            	$sql .= "NULL ";
+        	}
+		}
+        if($col["autoInc"] == true) $sql .= "auto_increment ";
+        $sql.= ",";
+        // key Definitionen
+        if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+        if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+        if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
+   }
+   $sql .= $index;
+   $sql = substr($sql,0,-1);
+   $sql .= ")";
+   
+   $this->query($sql);
+   return true;
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   function alterTable($table_name,$columns) {
+   $index = "";
+   $sql = "ALTER TABLE $table_name ";
+   foreach($columns as $col){
+        if($col["action"] == 'add') {
+            $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+        } elseif ($col["action"] == 'alter') {
+            $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+        } elseif ($col["action"] == 'drop') {
+            $sql .= "DROP ".$col["name"]." ";
+        }
+        if($col["action"] != 'drop') {  
+        if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
+        if($col["notNull"] == true) {
+            $sql .= "NOT NULL ";
+        } else {
+            $sql .= "NULL ";
+        }
+        if($col["autoInc"] == true) $sql .= "auto_increment ";
+        $sql.= ",";
+        // key Definitionen
+        if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+        if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+        if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
+        }
+   }
+   $sql .= $index;
+   $sql = substr($sql,0,-1);
+   
+   //die($sql);
+   $this->query($sql);
+   return true;
+   }
+   
+   function dropTable($table_name) {
+   $this->check($table_name);
+   $sql = "DROP TABLE '". $table_name."'";
+   return $this->query($sql);
+   }
+   
+   // gibt Array mit Tabellennamen zur�ck
+   function getTables($database_name = '') {
+   	
+		if($database_name == ''){
+            $database_name = $this->dbName;
+        }
+        $result = mysql_query("SHOW TABLES FROM `$database_name`");
+        $tb_names = array();
+        for ($i = 0; $i < mysql_num_rows($result); $i++) {
+            $tb_names[$i] = mysql_tablename($result, $i);
+        }
+        return $tb_names;       
+   }
+   
+   // gibt Feldinformationen zur Tabelle zur�ck
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function tableInfo($table_name) {
+   
+   global $go_api,$go_info;
+   // Tabellenfelder einlesen
+    
+    if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){
+    foreach($rows as $row) {
+        $name = $row[0];
+        $default = $row[4];
+        $key = $row[3];
+        $extra = $row[5];
+        $isnull = $row[2];
+        $type = $row[1];
+    
+        
+        $column = array();
+    
+        $column["name"] = $name;
+        //$column["type"] = $type;
+        $column["defaultValue"] = $default;
+        if(stristr($key,"PRI")) $column["option"] = "primary";
+        if(stristr($isnull,"YES")) {
+            $column["notNull"] = false;
+        } else {
+           $column["notNull"] = true; 
+        }
+        if($extra == 'auto_increment') $column["autoInc"] = true;
+        
+        
+        // Type in Metatype umsetzen
+        
+        if(stristr($type,"int(")) $metaType = 'int32';
+        if(stristr($type,"bigint")) $metaType = 'int64';
+        if(stristr($type,"char")) {
+            $metaType = 'char';
+            $tmp_typeValue = explode('(',$type);
+            $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
+        }
+        if(stristr($type,"varchar")) {
+            $metaType = 'varchar';
+            $tmp_typeValue = explode('(',$type);
+            $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
+        }
+        if(stristr($type,"text")) $metaType = 'text';
+        if(stristr($type,"double")) $metaType = 'double';
+        if(stristr($type,"blob")) $metaType = 'blob';
+        
+        
+        $column["type"] = $metaType;
+        
+    $columns[] = $column;
+    }
+        return $columns;
+    } else {
+        return false;
+    }
+    
+    
+    //$this->createTable('tester',$columns);
+    
+    /*
+    $result = mysql_list_fields($go_info["server"]["db_name"],$table_name);
+    $fields = mysql_num_fields ($result);
+    $i = 0;
+    $table = mysql_field_table ($result, $i);
+    while ($i < $fields) {
+        $name  = mysql_field_name  ($result, $i);
+        $type  = mysql_field_type  ($result, $i);
+        $len   = mysql_field_len   ($result, $i);
+        $flags = mysql_field_flags ($result, $i);
+        print_r($flags);
+        
+        $columns = array(name => $name,
+                    type =>     "",
+                    defaultValue =>  "",
+                    isnull =>   1,
+                    option =>   "");
+        $returnvar[] = $columns;
+        
+        $i++;
+    }
+    */
+    
+    
+   
+   }
+   
+   function mapType($metaType,$typeValue) {
+   global $go_api;
+   $metaType = strtolower($metaType);
+   switch ($metaType) {
+   case 'int16':
+        return 'smallint';
+   break;
+   case 'int32':
+        return 'int';
+   break;
+   case 'int64':
+        return 'bigint';
+   break;
+   case 'double':
+        return 'double';
+   break;
+   case 'char':
+        return 'char';
+   break;
+   case 'varchar':
+        if($typeValue < 1) die("Datenbank Fehler: F�r diesen Datentyp ist eine L�ngenangabe notwendig.");
+        return 'varchar('.$typeValue.')';
+   break;
+   case 'text':
+        return 'text';
+   break;
+   case 'blob':
+        return 'blob';
+   break;
+   }
+   }
+	
+}
+
 ?>
diff --git a/install/options.conf.php b/install/options.conf.php
index bfff3ec..6c5cd19 100644
--- a/install/options.conf.php
+++ b/install/options.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 //** TODO: These options need to be in an install script somehow
 
 //** Installation Options
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index 01ef1ec..bb8b52d 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1,4 +1,32 @@
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 -- ISPConfig 3
 -- DB-Version: 3.0.0.8
 
diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master
index c8796b8..bdc74e2 100644
--- a/install/tpl/config.inc.php.master
+++ b/install/tpl/config.inc.php.master
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2008, Till Brehm, Falko Timme, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php
index 65fcc45..9ff30fe 100644
--- a/interface/lib/app.inc.php
+++ b/interface/lib/app.inc.php
@@ -1,15 +1,7 @@
 <?php
-/**
- * Application Class
- * 
- * @author Till Brehm
- * @copyright  2005, Till Brehm, projektfarm Gmbh
- * @version 0.1
- * @package ISPConfig
- */
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -36,6 +28,10 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
+/*
+    Application Class
+*/
+
 ob_start('ob_gzhandler');
 
 class app {
diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php
index 3bd5f5c..437862a 100644
--- a/interface/lib/classes/auth.inc.php
+++ b/interface/lib/classes/auth.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/cmstree.inc.php b/interface/lib/classes/cmstree.inc.php
index 1a3cb84..2a59000 100644
--- a/interface/lib/classes/cmstree.inc.php
+++ b/interface/lib/classes/cmstree.inc.php
@@ -1,14 +1,7 @@
 <?
-/**
- * cmstree Class
- * 
- * @author Till Brehm
- * @copyright  2005, Till Brehm, projektfarm Gmbh
- * @version 0.1
- * @package ISPConfig
- */
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/db_firebird.inc.php b/interface/lib/classes/db_firebird.inc.php
index e02a878..d358b00 100644
--- a/interface/lib/classes/db_firebird.inc.php
+++ b/interface/lib/classes/db_firebird.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,354 +28,353 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-	class db
+class db {
+	var $dbHost = "";		// hostname of the MySQL server
+	var $dbName = "";		// logical database name on that server
+	var $dbUser = "";		// database authorized user
+	var $dbPass = "";		// user's password
+	var $linkId = 0;		// last result of mysql_connect()
+	var $queryId = 0;		// last result of mysql_query()
+	var $record	= array();	// last record fetched
+    var $autoCommit = 1;    // Autocommit Transactions
+	var $currentRow;		// current row number
+	var $errorNumber = 0;	// last error number
+	var $errorMessage = "";	// last error message
+	var $errorLocation = "";// last error location
+	var $show_error_messages = false;
+	var $transID;
+
+	// constructor
+	function db()
 	{
-		var $dbHost = "";		// hostname of the MySQL server
-		var $dbName = "";		// logical database name on that server
-		var $dbUser = "";		// database authorized user
-		var $dbPass = "";		// user's password
-		var $linkId = 0;		// last result of mysql_connect()
-		var $queryId = 0;		// last result of mysql_query()
-		var $record	= array();	// last record fetched
-        var $autoCommit = 1;    // Autocommit Transactions
-		var $currentRow;		// current row number
-		var $errorNumber = 0;	// last error number
-		var $errorMessage = "";	// last error message
-		var $errorLocation = "";// last error location
-		var $show_error_messages = false;
-		var $transID;
-
-		// constructor
-		function db()
-		{
-			
-			global $conf;
-			$this->dbHost = $conf["db_host"];
-			$this->dbName = $conf["db_database"];
-			$this->dbUser = $conf["db_user"];
-			$this->dbPass = $conf["db_password"];
-			$this->connect();
-		}
-
-		// error handler
-		function updateError($location)
-		{
-			//$this->errorNumber = mysql_errno();
-			$this->errorMessage = ibase_errmsg();
-			$this->errorLocation = $location;
-			if($this->errorNumber && $this->show_error_messages)
-			{
-				echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
-				flush();
-			}
-		}
-
-		function connect()
-		{
-			if($this->linkId == 0)
-			{
-				$this->linkId = ibase_connect( $this->dbHost.":".$this->dbName , $this->dbUser, $this->dbPass,'ISO8859_1',0,3 );
-				if(!$this->linkId)
-				{
-					$this->updateError('DB::connect()<br />ibase_pconnect');
-					return false;
-				}
-			}
-			return true;
-		}
-
-		function query($queryString)
-		{
-			if(!$this->connect()) {
-				return false;
-			}
-			
-			if($this->autoCommit == 1) {
-				//$transID = ibase_trans();
-				$this->queryId = @ibase_query($this->linkId,$queryString);
-				//ibase_commit();
-			} else {
-				$this->queryId = @ibase_query($this->linkId,$queryString);
-			}
-			
-			
-			$this->updateError('DB::query('.$queryString.')<br />ibase_query');
-			if(!$this->queryId) {
-				return false;
-			}
-			$this->currentRow = 0;
-			return $this->queryId;
-		}
-
-		// returns all records in an array
-		function queryAllRecords($queryString)
-		{
-			if(!$this->query($queryString))
-			{
-				return false;
-			}
-			$ret = array();
-			while($line = $this->nextRecord())
-			{
-				$ret[] = $line;
-			}
-			//$this->freeResult();
-			ibase_free_result($this->queryId);
-			return $ret;
-		}
-
-		// returns one record in an array
-		function queryOneRecord($queryString)
-		{
-			if(!$this->query($queryString))
-			{
-				return false;
-			}
-			$result = $this->nextRecord();
-			ibase_free_result($this->queryId);
-			return $result;
-		}
-
-		// returns the next record in an array
-		function nextRecord()
-		{
-            $this->record = ibase_fetch_assoc($this->queryId);
-			$this->updateError('DB::nextRecord()<br />ibase_fetch_assoc');
-			if(!$this->record || !is_array($this->record))
-			{
-				return false;
-			}
-			$this->currentRow++;
-			return $this->record;
-		}
-
-		// returns number of rows returned by the last select query
-		function numRows()
-		{
-			return false;
-		}
 		
-		// returns mySQL insert id
-		function insertID()
-		{
-			return false;
-		}
-        
-        // Check der variablen
-		// deprecated, now use quote
-        function check($formfield)
-        {
-            return $this->quote($formfield);
-        }
-		
-		// Check der variablen
-        function quote($formfield)
-        {
-            return str_replace("'","''",$formfield);
-        }
-		
-		// Check der variablen
-        function unquote($formfield)
-        {
-            return str_replace("''","'",$formfield);
-        }
-		
-		function toLower($record) {
-			if(is_array($record)) {
-				foreach($record as $key => $val) {
-					$key = strtolower($key);
-					$out[$key] = $val;
-				}
-			}
-		return $out;
-		}
-       
-       
-       function insert($tablename,$form,$debug = 0)
-       {
-         if(is_array($form)){
-	       foreach($form as $key => $value) 
-   		    {
-   		    $sql_key .= "$key, ";
-            $sql_value .= "'".$this->quote($value)."', ";
-      		 }
-       	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
-        $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
-        
-       	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
-       
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-          }
-       }
-       
-       function update($tablename,$form,$bedingung,$debug = 0)
-       {
-       
-	     if(is_array($form)){
-           foreach($form as $key => $value) 
-   		    {
-   		    $insql .= "$key = '".$this->quote($value)."', ";
-      		 }
-       	        $insql = substr($insql,0,strlen($insql) - 2);
-       	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-           }
-       }
-       
-       function closeConn() {
-       	ibase_close($this->linkId);
-       }
-       
-       function freeResult() {
-       	//ibase_free_result();
-       }
-       
-       function delete() {
-       
-       }
-       
-       function trans($action,$transID = null) {
-       //action = begin, commit oder rollback
-	   
-	   		if($action == 'begin') {
-	   			$this->transID = ibase_trans($this->linkId);
-				return $this->transID;
-	   		}
-			
-			if($action == 'commit' and !empty($this->transID)) {
-				ibase_commit($this->linkId,$this->transID);
-			}
-		
-			if($action == 'rollback') {
-				ibase_rollback($this->linkId,$this->transID);
-			}
-			
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function createTable($table_name,$columns) {
-       $index = "";
-       $sql = "CREATE TABLE $table_name (";
-       foreach($columns as $col){
-            $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-       
-            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
-            if($col["notNull"] == true) {
-                $sql .= "NOT NULL ";
-            } else {
-                $sql .= "NULL ";
-            }
-            if($col["autoInc"] == true) $sql .= "auto_increment ";
-            $sql.= ",";
-            // key Definitionen
-            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
-            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
-            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
-       }
-       $sql .= $index;
-       $sql = substr($sql,0,-1);
-       $sql .= ")";
-       
-       $this->query($sql);
-       return true;
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       function alterTable($table_name,$columns) {
-       		return false;
-       }
-       
-       function dropTable($table_name) {
-       		$this->check($table_name);
-       		$sql = "DROP TABLE '". $table_name."'";
-      		return $this->query($sql);
-       }
-       
-       // gibt Array mit Tabellennamen zur�ck
-       function getTables($database_name) {
-            return false;       
-       }
-       
-       // gibt Feldinformationen zur Tabelle zur�ck
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function tableInfo($table_name) {
-            return false;
-       }
-       
-       function mapType($metaType,$typeValue) {
-       global $go_api;
-       $metaType = strtolower($metaType);
-       switch ($metaType) {
-       case 'int16':
-            return 'smallint';
-       break;
-       case 'int32':
-            return 'int';
-       break;
-       case 'int64':
-            return 'bigint';
-       break;
-       case 'double':
-            return 'double';
-       break;
-       case 'char':
-            return 'char';
-       break;
-       case 'varchar':
-            if($typeValue < 1) $go_api->errorMessage("Datenbank Fehler: F�r diesen Datentyp ist eine L�ngenangabe notwendig.");
-            return 'varchar('.$typeValue.')';
-       break;
-       case 'text':
-            return 'text';
-       break;
-       case 'blob':
-            return 'blob';
-       break;
-       }
-       }
-		
+		global $conf;
+		$this->dbHost = $conf["db_host"];
+		$this->dbName = $conf["db_database"];
+		$this->dbUser = $conf["db_user"];
+		$this->dbPass = $conf["db_password"];
+		$this->connect();
 	}
 
+	// error handler
+	function updateError($location)
+	{
+		//$this->errorNumber = mysql_errno();
+		$this->errorMessage = ibase_errmsg();
+		$this->errorLocation = $location;
+		if($this->errorNumber && $this->show_error_messages)
+		{
+			echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
+			flush();
+		}
+	}
+
+	function connect()
+	{
+		if($this->linkId == 0)
+		{
+			$this->linkId = ibase_connect( $this->dbHost.":".$this->dbName , $this->dbUser, $this->dbPass,'ISO8859_1',0,3 );
+			if(!$this->linkId)
+			{
+				$this->updateError('DB::connect()<br />ibase_pconnect');
+				return false;
+			}
+		}
+		return true;
+	}
+
+	function query($queryString)
+	{
+		if(!$this->connect()) {
+			return false;
+		}
+		
+		if($this->autoCommit == 1) {
+			//$transID = ibase_trans();
+			$this->queryId = @ibase_query($this->linkId,$queryString);
+			//ibase_commit();
+		} else {
+			$this->queryId = @ibase_query($this->linkId,$queryString);
+		}
+		
+		
+		$this->updateError('DB::query('.$queryString.')<br />ibase_query');
+		if(!$this->queryId) {
+			return false;
+		}
+		$this->currentRow = 0;
+		return $this->queryId;
+	}
+
+	// returns all records in an array
+	function queryAllRecords($queryString)
+	{
+		if(!$this->query($queryString))
+		{
+			return false;
+		}
+		$ret = array();
+		while($line = $this->nextRecord())
+		{
+			$ret[] = $line;
+		}
+		//$this->freeResult();
+		ibase_free_result($this->queryId);
+		return $ret;
+	}
+
+	// returns one record in an array
+	function queryOneRecord($queryString)
+	{
+		if(!$this->query($queryString))
+		{
+			return false;
+		}
+		$result = $this->nextRecord();
+		ibase_free_result($this->queryId);
+		return $result;
+	}
+
+	// returns the next record in an array
+	function nextRecord()
+	{
+        $this->record = ibase_fetch_assoc($this->queryId);
+		$this->updateError('DB::nextRecord()<br />ibase_fetch_assoc');
+		if(!$this->record || !is_array($this->record))
+		{
+			return false;
+		}
+		$this->currentRow++;
+		return $this->record;
+	}
+
+	// returns number of rows returned by the last select query
+	function numRows()
+	{
+		return false;
+	}
+	
+	// returns mySQL insert id
+	function insertID()
+	{
+		return false;
+	}
+    
+    // Check der variablen
+	// deprecated, now use quote
+    function check($formfield)
+    {
+        return $this->quote($formfield);
+    }
+	
+	// Check der variablen
+    function quote($formfield)
+    {
+        return str_replace("'","''",$formfield);
+    }
+	
+	// Check der variablen
+    function unquote($formfield)
+    {
+        return str_replace("''","'",$formfield);
+    }
+	
+	function toLower($record) {
+		if(is_array($record)) {
+			foreach($record as $key => $val) {
+				$key = strtolower($key);
+				$out[$key] = $val;
+			}
+		}
+	return $out;
+	}
+   
+   
+   function insert($tablename,$form,$debug = 0)
+   {
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $sql_key .= "$key, ";
+        $sql_value .= "'".$this->quote($value)."', ";
+  		 }
+   	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
+    $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
+    
+   	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
+   
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+      }
+   }
+   
+   function update($tablename,$form,$bedingung,$debug = 0)
+   {
+   
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $insql .= "$key = '".$this->quote($value)."', ";
+  		 }
+   	        $insql = substr($insql,0,strlen($insql) - 2);
+   	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+       }
+   }
+   
+   function closeConn() {
+   	ibase_close($this->linkId);
+   }
+   
+   function freeResult() {
+   	//ibase_free_result();
+   }
+   
+   function delete() {
+   
+   }
+   
+   function trans($action,$transID = null) {
+   //action = begin, commit oder rollback
+   
+   		if($action == 'begin') {
+   			$this->transID = ibase_trans($this->linkId);
+			return $this->transID;
+   		}
+		
+		if($action == 'commit' and !empty($this->transID)) {
+			ibase_commit($this->linkId,$this->transID);
+		}
+	
+		if($action == 'rollback') {
+			ibase_rollback($this->linkId,$this->transID);
+		}
+		
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function createTable($table_name,$columns) {
+   $index = "";
+   $sql = "CREATE TABLE $table_name (";
+   foreach($columns as $col){
+        $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+   
+        if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
+        if($col["notNull"] == true) {
+            $sql .= "NOT NULL ";
+        } else {
+            $sql .= "NULL ";
+        }
+        if($col["autoInc"] == true) $sql .= "auto_increment ";
+        $sql.= ",";
+        // key Definitionen
+        if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+        if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+        if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
+   }
+   $sql .= $index;
+   $sql = substr($sql,0,-1);
+   $sql .= ")";
+   
+   $this->query($sql);
+   return true;
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   function alterTable($table_name,$columns) {
+   		return false;
+   }
+   
+   function dropTable($table_name) {
+   		$this->check($table_name);
+   		$sql = "DROP TABLE '". $table_name."'";
+  		return $this->query($sql);
+   }
+   
+   // gibt Array mit Tabellennamen zur�ck
+   function getTables($database_name) {
+        return false;       
+   }
+   
+   // gibt Feldinformationen zur Tabelle zur�ck
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function tableInfo($table_name) {
+        return false;
+   }
+   
+   function mapType($metaType,$typeValue) {
+   global $go_api;
+   $metaType = strtolower($metaType);
+   switch ($metaType) {
+   case 'int16':
+        return 'smallint';
+   break;
+   case 'int32':
+        return 'int';
+   break;
+   case 'int64':
+        return 'bigint';
+   break;
+   case 'double':
+        return 'double';
+   break;
+   case 'char':
+        return 'char';
+   break;
+   case 'varchar':
+        if($typeValue < 1) $go_api->errorMessage("Datenbank Fehler: F�r diesen Datentyp ist eine L�ngenangabe notwendig.");
+        return 'varchar('.$typeValue.')';
+   break;
+   case 'text':
+        return 'text';
+   break;
+   case 'blob':
+        return 'blob';
+   break;
+   }
+   }
+	
+}
+
 ?>
\ No newline at end of file
diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php
index 6caf0c9..ed35b41 100644
--- a/interface/lib/classes/db_mysql.inc.php
+++ b/interface/lib/classes/db_mysql.inc.php
@@ -1,14 +1,7 @@
 <?php
-/**
- * mySQL Database class
- * 
- * @author Till Brehm
- * @copyright  2005, Till Brehm, projektfarm Gmbh
- * @version 0.2
- * @package ISPConfig
- */
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -35,8 +28,7 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-class db
-{
+class db {
 	private $dbHost = '';		   // hostname of the MySQL server
 	private $dbName = '';		   // logical database name on that server
 	private $dbUser = '';		   // database authorized user
diff --git a/interface/lib/classes/form.inc.php b/interface/lib/classes/form.inc.php
index e3c1bff..f0e8de6 100644
--- a/interface/lib/classes/form.inc.php
+++ b/interface/lib/classes/form.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/getconf.inc.php b/interface/lib/classes/getconf.inc.php
index e2dc327..097342c 100644
--- a/interface/lib/classes/getconf.inc.php
+++ b/interface/lib/classes/getconf.inc.php
@@ -1,14 +1,7 @@
 <?php
-/**
- * getconf class
- * 
- * @author Till Brehm
- * @copyright  2005, Till Brehm, projektfarm Gmbh
- * @version 0.1
- * @package ISPConfig
- */
+
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/ini_parser.inc.php b/interface/lib/classes/ini_parser.inc.php
index 67e6542..76bbc13 100644
--- a/interface/lib/classes/ini_parser.inc.php
+++ b/interface/lib/classes/ini_parser.inc.php
@@ -1,15 +1,7 @@
 <?php
-/**
- * ini parser 
- * 
- * @author Till Brehm
- * @copyright  2005, Till Brehm, projektfarm Gmbh
- * @version 0.1
- * @package ISPConfig
- */
 
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php
index 31086e8..12d3e18 100644
--- a/interface/lib/classes/listform.inc.php
+++ b/interface/lib/classes/listform.inc.php
@@ -28,14 +28,6 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-/**
-* Listenbehandlung
-*
-* @package listform
-* @author Till Brehm
-* @version 1.1
-*/
-
 class listform {
 
     private $debug = 0;
diff --git a/interface/lib/classes/listform_actions.inc.php b/interface/lib/classes/listform_actions.inc.php
index e90bdc8..e570514 100644
--- a/interface/lib/classes/listform_actions.inc.php
+++ b/interface/lib/classes/listform_actions.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -26,13 +26,6 @@
 OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/**
-* Action framework for the listform library.
-*
-* @author Till Brehm <t.brehm@scrigo.org>
-* @copyright Copyright &copy; 2005, Till Brehm
 */
 
 class listform_actions {
diff --git a/interface/lib/classes/listform_tpl_generator.inc.php b/interface/lib/classes/listform_tpl_generator.inc.php
index 36d026e..f1ccddc 100644
--- a/interface/lib/classes/listform_tpl_generator.inc.php
+++ b/interface/lib/classes/listform_tpl_generator.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,7 +27,6 @@
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
-
 
 class listform_tpl_generator {
 	
diff --git a/interface/lib/classes/plugin_base.inc.php b/interface/lib/classes/plugin_base.inc.php
index 1ac1482..cde853f 100644
--- a/interface/lib/classes/plugin_base.inc.php
+++ b/interface/lib/classes/plugin_base.inc.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 class plugin_base {
 	
 	var $plugin_name;
diff --git a/interface/lib/classes/plugin_dbhistory.inc.php b/interface/lib/classes/plugin_dbhistory.inc.php
index 7c2c4e3..876dcaf 100644
--- a/interface/lib/classes/plugin_dbhistory.inc.php
+++ b/interface/lib/classes/plugin_dbhistory.inc.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 class plugin_dbhistory extends plugin_base {
 
         var $module;
diff --git a/interface/lib/classes/plugin_listview.inc.php b/interface/lib/classes/plugin_listview.inc.php
index 771cd5b..ee254da 100644
--- a/interface/lib/classes/plugin_listview.inc.php
+++ b/interface/lib/classes/plugin_listview.inc.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 class plugin_listview extends plugin_base {
 
         var $module;
diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php
index c9ec53b..f3263dd 100644
--- a/interface/lib/classes/remoting.inc.php
+++ b/interface/lib/classes/remoting.inc.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 class remoting {
 	
 	//* remote session timeout in seconds
diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php
index eca27ad..7d0d7f7 100644
--- a/interface/lib/classes/remoting_lib.inc.php
+++ b/interface/lib/classes/remoting_lib.inc.php
@@ -58,10 +58,6 @@
 *
 *        Hinweis:
 *        Das ID-Feld ist nicht bei den Table Values einzuf�gen.
-*
-* @package form
-* @author Till Brehm
-* @version 1.1
 */
 
 class remoting_lib {
diff --git a/interface/lib/classes/searchform.inc.php b/interface/lib/classes/searchform.inc.php
index 25a9412..9c0c0dd 100644
--- a/interface/lib/classes/searchform.inc.php
+++ b/interface/lib/classes/searchform.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -26,14 +26,6 @@
 OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/**
-* Listenbehandlung
-*
-* @package searchform
-* @author Till Brehm
-* @version 1.1
 */
 
 class searchform {
diff --git a/interface/lib/classes/searchform_actions.inc.php b/interface/lib/classes/searchform_actions.inc.php
index e128ce8..edba2b9 100644
--- a/interface/lib/classes/searchform_actions.inc.php
+++ b/interface/lib/classes/searchform_actions.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -26,13 +26,6 @@
 OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/**
-* Action framework for the searchform library.
-*
-* @author Till Brehm <t.brehm@scrigo.org>
-* @copyright Copyright &copy; 2005, Till Brehm
 */
 
 class searchform_actions {
diff --git a/interface/lib/classes/searchform_tpl_generator.inc.php b/interface/lib/classes/searchform_tpl_generator.inc.php
index d72a077..77e1aa8 100644
--- a/interface/lib/classes/searchform_tpl_generator.inc.php
+++ b/interface/lib/classes/searchform_tpl_generator.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,7 +27,6 @@
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
-
 
 class searchform_tpl_generator {
 	
diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index dbb17fa..c9baa5c 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -56,9 +56,6 @@
 *
 *        Hint: The auto increment (ID) filed of the table has not be be definied eoarately.
 *
-* @package form
-* @author Till Brehm
-* @version 1.1
 */
 
 class tform {
diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php
index 812c792..214b6eb 100644
--- a/interface/lib/classes/tform_actions.inc.php
+++ b/interface/lib/classes/tform_actions.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -26,13 +26,6 @@
 OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/**
-* Action framework for the tform library.
-*
-* @author Till Brehm <t.brehm@scrigo.org>
-* @copyright Copyright &copy; 2005, Till Brehm
 */
 
 class tform_actions {
diff --git a/interface/lib/classes/tform_tpl_generator.inc.php b/interface/lib/classes/tform_tpl_generator.inc.php
index 1f10e8e..5a9af70 100644
--- a/interface/lib/classes/tform_tpl_generator.inc.php
+++ b/interface/lib/classes/tform_tpl_generator.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,7 +27,6 @@
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
-
 
 class tform_tpl_generator {
 	
diff --git a/interface/lib/classes/tree.inc.php b/interface/lib/classes/tree.inc.php
index af030ae..170d126 100644
--- a/interface/lib/classes/tree.inc.php
+++ b/interface/lib/classes/tree.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/validate_client.inc.php b/interface/lib/classes/validate_client.inc.php
index a7b7ae8..9c81aa3 100644
--- a/interface/lib/classes/validate_client.inc.php
+++ b/interface/lib/classes/validate_client.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2007, Till Brehm, Falko Timme, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,7 +27,6 @@
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
-
 
 class validate_client {
 	
diff --git a/interface/lib/classes/validate_dns.inc.php b/interface/lib/classes/validate_dns.inc.php
index 938a8fa..95f1d42 100644
--- a/interface/lib/classes/validate_dns.inc.php
+++ b/interface/lib/classes/validate_dns.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, Falko Timme, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,11 +28,8 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-/**
-* DNS validation
-*
-* @author Falko Timme <ft@falkotimme.com>
-* @copyright Copyright &copy; 2005, Falko Timme
+/*
+    DNS validation
 */
 
 class validate_dns {
diff --git a/interface/web/capp.php b/interface/web/capp.php
index 041e79d..6360881 100644
--- a/interface/web/capp.php
+++ b/interface/web/capp.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/clang.php b/interface/web/clang.php
index 35e0580..5184712 100644
--- a/interface/web/clang.php
+++ b/interface/web/clang.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/content.php b/interface/web/content.php
index 9e6382d..cd19cd4 100644
--- a/interface/web/content.php
+++ b/interface/web/content.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/index.php b/interface/web/index.php
index 419f755..8ec46be 100644
--- a/interface/web/index.php
+++ b/interface/web/index.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/keepalive.php b/interface/web/keepalive.php
index c166055..fd9c1d7 100644
--- a/interface/web/keepalive.php
+++ b/interface/web/keepalive.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/nav.php b/interface/web/nav.php
index 8b22948..c3f550a 100644
--- a/interface/web/nav.php
+++ b/interface/web/nav.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/remoting_client/example.php b/remoting_client/example.php
index 8959034..ddef0ee 100644
--- a/remoting_client/example.php
+++ b/remoting_client/example.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
 //* Examples for the remoting framework
 
 //* Login credentials
diff --git a/server/conf/motd.master b/server/conf/motd.master
index 7467ff3..efc2ac3 100644
--- a/server/conf/motd.master
+++ b/server/conf/motd.master
@@ -1,4 +1,4 @@
-Welcome To Site <tmpl_var name='domain'>
+Welcome to <tmpl_var name='domain'>
 
 
 
diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php
index d045486..e0e9e74 100644
--- a/server/lib/app.inc.php
+++ b/server/lib/app.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php
index 0270821..9bd6c80 100644
--- a/server/lib/classes/db_mysql.inc.php
+++ b/server/lib/classes/db_mysql.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,462 +28,462 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-	class db
+class db
+{
+	var $dbHost = "";		  // hostname of the MySQL server
+	var $dbName = "";		  // logical database name on that server
+	var $dbUser = "";		  // database authorized user
+	var $dbPass = "";		  // user's password
+	var $dbCharset = "";      // what charset comes and goes to mysql: utf8 / latin1
+	var $linkId = 0;		  // last result of mysql_connect()
+	var $queryId = 0;		  // last result of mysql_query()
+	var $record	= array();	  // last record fetched
+    var $autoCommit = 1;      // Autocommit Transactions
+	var $currentRow;		  // current row number
+	var $errorNumber = 0;	  // last error number
+	var $errorMessage = "";	  // last error message
+	var $errorLocation = "";  // last error location
+	var $show_error_messages = false;
+
+	// constructor
+	function db()
 	{
-		var $dbHost = "";		  // hostname of the MySQL server
-		var $dbName = "";		  // logical database name on that server
-		var $dbUser = "";		  // database authorized user
-		var $dbPass = "";		  // user's password
-		var $dbCharset = "";      // what charset comes and goes to mysql: utf8 / latin1
-		var $linkId = 0;		  // last result of mysql_connect()
-		var $queryId = 0;		  // last result of mysql_query()
-		var $record	= array();	  // last record fetched
-        var $autoCommit = 1;      // Autocommit Transactions
-		var $currentRow;		  // current row number
-		var $errorNumber = 0;	  // last error number
-		var $errorMessage = "";	  // last error message
-		var $errorLocation = "";  // last error location
-		var $show_error_messages = false;
-
-		// constructor
-		function db()
-		{
-			
-			global $conf;
-			$this->dbHost = $conf["db_host"];
-			$this->dbName = $conf["db_database"];
-			$this->dbUser = $conf["db_user"];
-			$this->dbPass = $conf["db_password"];
-			$this->dbCharset = $conf["db_charset"];
-			//$this->connect();
-		}
-
-		// error handler
-		function updateError($location)
-		{
-			$this->errorNumber = mysql_errno();
-			$this->errorMessage = mysql_error();
-			$this->errorLocation = $location;
-			if($this->errorNumber && $this->show_error_messages)
-			{
-				echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
-				flush();
-			}
-		}
-
-		function connect()
-		{
-			if($this->linkId == 0)
-			{
-				$this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
-				if(!$this->linkId)
-				{
-					$this->updateError('DB::connect()<br />mysql_connect');
-					return false;
-				}
-    			$this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
-			}
-			return true;
-		}
-
-		function query($queryString)
-		{
-			if(!$this->connect())
-			{
-				return false;
-			}
-			if(!mysql_select_db($this->dbName, $this->linkId))
-			{
-				$this->updateError('DB::connect()<br />mysql_select_db');
-				return false;
-			}
-			$this->queryId = @mysql_query($queryString, $this->linkId);
-			$this->updateError('DB::query('.$queryString.')<br />mysql_query');
-			if(!$this->queryId)
-			{
-				return false;
-			}
-			$this->currentRow = 0;
-			return $this->queryId;
-		}
-
-		// returns all records in an array
-		function queryAllRecords($queryString)
-		{
-			if(!$this->query($queryString))
-			{
-				return false;
-			}
-			$ret = array();
-			while($line = $this->nextRecord())
-			{
-				$ret[] = $line;
-			}
-			return $ret;
-		}
-
-		// returns one record in an array
-		function queryOneRecord($queryString)
-		{
-			if(!$this->query($queryString) || $this->numRows() == 0)
-			{
-				return false;
-			}
-			return $this->nextRecord();
-		}
-
-		// returns the next record in an array
-		function nextRecord()
-		{
-            $this->record = mysql_fetch_assoc($this->queryId);
-			$this->updateError('DB::nextRecord()<br />mysql_fetch_array');
-			if(!$this->record || !is_array($this->record))
-			{
-				return false;
-			}
-			$this->currentRow++;
-			return $this->record;
-		}
-
-		// returns number of rows returned by the last select query
-		function numRows()
-		{
-			return mysql_num_rows($this->queryId);
-		}
 		
-		// returns mySQL insert id
-		function insertID()
-		{
-			return mysql_insert_id($this->linkId);
-		}
-        
-        // Check der variablen
-		// deprecated, now use quote
-        function check($formfield)
-        {
-            return $this->quote($formfield);
-        }
-		
-		// Check der variablen
-        function quote($formfield)
-        {
-            if(!$this->connect()){
-				$this->updateError('WARNING: mysql_connect: Used addslashes instead of mysql_real_escape_string');
-				return addslashes($formfield);
-			}
-			
-			return mysql_real_escape_string($formfield);
-        }
-		
-		// Check der variablen
-        function unquote($formfield)
-        {
-            return stripslashes($formfield);
-        }
-		
-		function toLower($record) {
-			if(is_array($record)) {
-				foreach($record as $key => $val) {
-					$key = strtolower($key);
-					$out[$key] = $val;
-				}
-			}
-		return $out;
-		}
-       
-       
-       function insert($tablename,$form,$debug = 0)
-       {
-         if(is_array($form)){
-	       foreach($form as $key => $value) 
-   		    {
-   		    $sql_key .= "$key, ";
-            $sql_value .= "'".$this->check($value)."', ";
-      		 }
-       	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
-        $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
-        
-       	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
-       
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-          }
-       }
-       
-       function update($tablename,$form,$bedingung,$debug = 0)
-       {
-       
-	     if(is_array($form)){
-           foreach($form as $key => $value) 
-   		    {
-   		    $insql .= "$key = '".$this->check($value)."', ";
-      		 }
-       	        $insql = substr($insql,0,strlen($insql) - 2);
-       	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-           }
-       }
-       
-       function closeConn() {
-       
-       }
-       
-       function freeResult() {
-       
-       
-       }
-       
-       function delete() {
-       
-       }
-       
-       function Transaction($action) {
-       //action = begin, commit oder rollback
-       
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function createTable($table_name,$columns) {
-       $index = "";
-       $sql = "CREATE TABLE $table_name (";
-       foreach($columns as $col){
-            $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-       
-            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
-            if($col["notNull"] == true) {
-                $sql .= "NOT NULL ";
-            } else {
-                $sql .= "NULL ";
-            }
-            if($col["autoInc"] == true) $sql .= "auto_increment ";
-            $sql.= ",";
-            // key Definitionen
-            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
-            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
-            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
-       }
-       $sql .= $index;
-       $sql = substr($sql,0,-1);
-       $sql .= ")";
-       
-       $this->query($sql);
-       return true;
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       function alterTable($table_name,$columns) {
-       $index = "";
-       $sql = "ALTER TABLE $table_name ";
-       foreach($columns as $col){
-            if($col["action"] == 'add') {
-                $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-            } elseif ($col["action"] == 'alter') {
-                $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-            } elseif ($col["action"] == 'drop') {
-                $sql .= "DROP ".$col["name"]." ";
-            }
-            if($col["action"] != 'drop') {  
-            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
-            if($col["notNull"] == true) {
-                $sql .= "NOT NULL ";
-            } else {
-                $sql .= "NULL ";
-            }
-            if($col["autoInc"] == true) $sql .= "auto_increment ";
-            $sql.= ",";
-            // key Definitionen
-            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
-            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
-            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
-            }
-       }
-       $sql .= $index;
-       $sql = substr($sql,0,-1);
-       
-       //die($sql);
-       $this->query($sql);
-       return true;
-       }
-       
-       function dropTable($table_name) {
-       $this->check($table_name);
-       $sql = "DROP TABLE '". $table_name."'";
-       return $this->query($sql);
-       }
-       
-       // gibt Array mit Tabellennamen zur�ck
-       function getTables($database_name = '') {
-	   	
-			if($database_name == '') $database_name = $this->dbName;
-            $result = mysql_list_tables($database_name);
-            for ($i = 0; $i < mysql_num_rows($result); $i++) {
-                $tb_names[$i] = mysql_tablename($result, $i);
-            }
-            return $tb_names;       
-       }
-       
-       // gibt Feldinformationen zur Tabelle zur�ck
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function tableInfo($table_name) {
-       
-       global $go_api,$go_info;
-       // Tabellenfelder einlesen
-        
-        if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){
-        foreach($rows as $row) {
-            $name = $row[0];
-            $default = $row[4];
-            $key = $row[3];
-            $extra = $row[5];
-            $isnull = $row[2];
-            $type = $row[1];
-        
-            
-            $column = array();
-        
-            $column["name"] = $name;
-            //$column["type"] = $type;
-            $column["defaultValue"] = $default;
-            if(stristr($key,"PRI")) $column["option"] = "primary";
-            if(stristr($isnull,"YES")) {
-                $column["notNull"] = false;
-            } else {
-               $column["notNull"] = true; 
-            }
-            if($extra == 'auto_increment') $column["autoInc"] = true;
-            
-            
-            // Type in Metatype umsetzen
-            
-            if(stristr($type,"int(")) $metaType = 'int32';
-            if(stristr($type,"bigint")) $metaType = 'int64';
-            if(stristr($type,"char")) {
-                $metaType = 'char';
-                $tmp_typeValue = explode('(',$type);
-                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
-            }
-            if(stristr($type,"varchar")) {
-                $metaType = 'varchar';
-                $tmp_typeValue = explode('(',$type);
-                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
-            }
-            if(stristr($type,"text")) $metaType = 'text';
-            if(stristr($type,"double")) $metaType = 'double';
-            if(stristr($type,"blob")) $metaType = 'blob';
-            
-            
-            $column["type"] = $metaType;
-            
-        $columns[] = $column;
-        }
-            return $columns;
-        } else {
-            return false;
-        }
-        
-        
-        //$this->createTable('tester',$columns);
-        
-        /*
-        $result = mysql_list_fields($go_info["server"]["db_name"],$table_name);
-        $fields = mysql_num_fields ($result);
-        $i = 0;
-        $table = mysql_field_table ($result, $i);
-        while ($i < $fields) {
-            $name  = mysql_field_name  ($result, $i);
-            $type  = mysql_field_type  ($result, $i);
-            $len   = mysql_field_len   ($result, $i);
-            $flags = mysql_field_flags ($result, $i);
-            print_r($flags);
-            
-            $columns = array(name => $name,
-                        type =>     "",
-                        defaultValue =>  "",
-                        isnull =>   1,
-                        option =>   "");
-            $returnvar[] = $columns;
-            
-            $i++;
-        }
-        */
-        
-        
-       
-       }
-       
-       function mapType($metaType,$typeValue) {
-       global $go_api;
-       $metaType = strtolower($metaType);
-       switch ($metaType) {
-       case 'int16':
-            return 'smallint';
-       break;
-       case 'int32':
-            return 'int';
-       break;
-       case 'int64':
-            return 'bigint';
-       break;
-       case 'double':
-            return 'double';
-       break;
-       case 'char':
-            return 'char';
-       break;
-       case 'varchar':
-            if($typeValue < 1) die("Datenbank Fehler: F�r diesen Datentyp ist eine L�ngenangabe notwendig.");
-            return 'varchar('.$typeValue.')';
-       break;
-       case 'text':
-            return 'text';
-       break;
-       case 'blob':
-            return 'blob';
-       break;
-       }
-       }
-		
+		global $conf;
+		$this->dbHost = $conf["db_host"];
+		$this->dbName = $conf["db_database"];
+		$this->dbUser = $conf["db_user"];
+		$this->dbPass = $conf["db_password"];
+		$this->dbCharset = $conf["db_charset"];
+		//$this->connect();
 	}
 
+	// error handler
+	function updateError($location)
+	{
+		$this->errorNumber = mysql_errno();
+		$this->errorMessage = mysql_error();
+		$this->errorLocation = $location;
+		if($this->errorNumber && $this->show_error_messages)
+		{
+			echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
+			flush();
+		}
+	}
+
+	function connect()
+	{
+		if($this->linkId == 0)
+		{
+			$this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
+			if(!$this->linkId)
+			{
+				$this->updateError('DB::connect()<br />mysql_connect');
+				return false;
+			}
+			$this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
+		}
+		return true;
+	}
+
+	function query($queryString)
+	{
+		if(!$this->connect())
+		{
+			return false;
+		}
+		if(!mysql_select_db($this->dbName, $this->linkId))
+		{
+			$this->updateError('DB::connect()<br />mysql_select_db');
+			return false;
+		}
+		$this->queryId = @mysql_query($queryString, $this->linkId);
+		$this->updateError('DB::query('.$queryString.')<br />mysql_query');
+		if(!$this->queryId)
+		{
+			return false;
+		}
+		$this->currentRow = 0;
+		return $this->queryId;
+	}
+
+	// returns all records in an array
+	function queryAllRecords($queryString)
+	{
+		if(!$this->query($queryString))
+		{
+			return false;
+		}
+		$ret = array();
+		while($line = $this->nextRecord())
+		{
+			$ret[] = $line;
+		}
+		return $ret;
+	}
+
+	// returns one record in an array
+	function queryOneRecord($queryString)
+	{
+		if(!$this->query($queryString) || $this->numRows() == 0)
+		{
+			return false;
+		}
+		return $this->nextRecord();
+	}
+
+	// returns the next record in an array
+	function nextRecord()
+	{
+        $this->record = mysql_fetch_assoc($this->queryId);
+		$this->updateError('DB::nextRecord()<br />mysql_fetch_array');
+		if(!$this->record || !is_array($this->record))
+		{
+			return false;
+		}
+		$this->currentRow++;
+		return $this->record;
+	}
+
+	// returns number of rows returned by the last select query
+	function numRows()
+	{
+		return mysql_num_rows($this->queryId);
+	}
+	
+	// returns mySQL insert id
+	function insertID()
+	{
+		return mysql_insert_id($this->linkId);
+	}
+    
+    // Check der variablen
+	// deprecated, now use quote
+    function check($formfield)
+    {
+        return $this->quote($formfield);
+    }
+	
+	// Check der variablen
+    function quote($formfield)
+    {
+        if(!$this->connect()){
+			$this->updateError('WARNING: mysql_connect: Used addslashes instead of mysql_real_escape_string');
+			return addslashes($formfield);
+		}
+		
+		return mysql_real_escape_string($formfield);
+    }
+	
+	// Check der variablen
+    function unquote($formfield)
+    {
+        return stripslashes($formfield);
+    }
+	
+	function toLower($record) {
+		if(is_array($record)) {
+			foreach($record as $key => $val) {
+				$key = strtolower($key);
+				$out[$key] = $val;
+			}
+		}
+	return $out;
+	}
+   
+   
+   function insert($tablename,$form,$debug = 0)
+   {
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $sql_key .= "$key, ";
+        $sql_value .= "'".$this->check($value)."', ";
+  		 }
+   	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
+    $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
+    
+   	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
+   
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+      }
+   }
+   
+   function update($tablename,$form,$bedingung,$debug = 0)
+   {
+   
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $insql .= "$key = '".$this->check($value)."', ";
+  		 }
+   	        $insql = substr($insql,0,strlen($insql) - 2);
+   	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+       }
+   }
+   
+   function closeConn() {
+   
+   }
+   
+   function freeResult() {
+   
+   
+   }
+   
+   function delete() {
+   
+   }
+   
+   function Transaction($action) {
+   //action = begin, commit oder rollback
+   
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function createTable($table_name,$columns) {
+   $index = "";
+   $sql = "CREATE TABLE $table_name (";
+   foreach($columns as $col){
+        $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+   
+        if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
+        if($col["notNull"] == true) {
+            $sql .= "NOT NULL ";
+        } else {
+            $sql .= "NULL ";
+        }
+        if($col["autoInc"] == true) $sql .= "auto_increment ";
+        $sql.= ",";
+        // key Definitionen
+        if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+        if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+        if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
+   }
+   $sql .= $index;
+   $sql = substr($sql,0,-1);
+   $sql .= ")";
+   
+   $this->query($sql);
+   return true;
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   function alterTable($table_name,$columns) {
+   $index = "";
+   $sql = "ALTER TABLE $table_name ";
+   foreach($columns as $col){
+        if($col["action"] == 'add') {
+            $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+        } elseif ($col["action"] == 'alter') {
+            $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+        } elseif ($col["action"] == 'drop') {
+            $sql .= "DROP ".$col["name"]." ";
+        }
+        if($col["action"] != 'drop') {  
+        if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
+        if($col["notNull"] == true) {
+            $sql .= "NOT NULL ";
+        } else {
+            $sql .= "NULL ";
+        }
+        if($col["autoInc"] == true) $sql .= "auto_increment ";
+        $sql.= ",";
+        // key Definitionen
+        if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+        if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+        if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
+        }
+   }
+   $sql .= $index;
+   $sql = substr($sql,0,-1);
+   
+   //die($sql);
+   $this->query($sql);
+   return true;
+   }
+   
+   function dropTable($table_name) {
+   $this->check($table_name);
+   $sql = "DROP TABLE '". $table_name."'";
+   return $this->query($sql);
+   }
+   
+   // gibt Array mit Tabellennamen zur�ck
+   function getTables($database_name = '') {
+   	
+		if($database_name == '') $database_name = $this->dbName;
+        $result = mysql_list_tables($database_name);
+        for ($i = 0; $i < mysql_num_rows($result); $i++) {
+            $tb_names[$i] = mysql_tablename($result, $i);
+        }
+        return $tb_names;       
+   }
+   
+   // gibt Feldinformationen zur Tabelle zur�ck
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function tableInfo($table_name) {
+   
+   global $go_api,$go_info;
+   // Tabellenfelder einlesen
+    
+    if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){
+    foreach($rows as $row) {
+        $name = $row[0];
+        $default = $row[4];
+        $key = $row[3];
+        $extra = $row[5];
+        $isnull = $row[2];
+        $type = $row[1];
+    
+        
+        $column = array();
+    
+        $column["name"] = $name;
+        //$column["type"] = $type;
+        $column["defaultValue"] = $default;
+        if(stristr($key,"PRI")) $column["option"] = "primary";
+        if(stristr($isnull,"YES")) {
+            $column["notNull"] = false;
+        } else {
+           $column["notNull"] = true; 
+        }
+        if($extra == 'auto_increment') $column["autoInc"] = true;
+        
+        
+        // Type in Metatype umsetzen
+        
+        if(stristr($type,"int(")) $metaType = 'int32';
+        if(stristr($type,"bigint")) $metaType = 'int64';
+        if(stristr($type,"char")) {
+            $metaType = 'char';
+            $tmp_typeValue = explode('(',$type);
+            $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
+        }
+        if(stristr($type,"varchar")) {
+            $metaType = 'varchar';
+            $tmp_typeValue = explode('(',$type);
+            $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
+        }
+        if(stristr($type,"text")) $metaType = 'text';
+        if(stristr($type,"double")) $metaType = 'double';
+        if(stristr($type,"blob")) $metaType = 'blob';
+        
+        
+        $column["type"] = $metaType;
+        
+    $columns[] = $column;
+    }
+        return $columns;
+    } else {
+        return false;
+    }
+    
+    
+    //$this->createTable('tester',$columns);
+    
+    /*
+    $result = mysql_list_fields($go_info["server"]["db_name"],$table_name);
+    $fields = mysql_num_fields ($result);
+    $i = 0;
+    $table = mysql_field_table ($result, $i);
+    while ($i < $fields) {
+        $name  = mysql_field_name  ($result, $i);
+        $type  = mysql_field_type  ($result, $i);
+        $len   = mysql_field_len   ($result, $i);
+        $flags = mysql_field_flags ($result, $i);
+        print_r($flags);
+        
+        $columns = array(name => $name,
+                    type =>     "",
+                    defaultValue =>  "",
+                    isnull =>   1,
+                    option =>   "");
+        $returnvar[] = $columns;
+        
+        $i++;
+    }
+    */
+    
+    
+   
+   }
+   
+   function mapType($metaType,$typeValue) {
+   global $go_api;
+   $metaType = strtolower($metaType);
+   switch ($metaType) {
+   case 'int16':
+        return 'smallint';
+   break;
+   case 'int32':
+        return 'int';
+   break;
+   case 'int64':
+        return 'bigint';
+   break;
+   case 'double':
+        return 'double';
+   break;
+   case 'char':
+        return 'char';
+   break;
+   case 'varchar':
+        if($typeValue < 1) die("Datenbank Fehler: F�r diesen Datentyp ist eine L�ngenangabe notwendig.");
+        return 'varchar('.$typeValue.')';
+   break;
+   case 'text':
+        return 'text';
+   break;
+   case 'blob':
+        return 'blob';
+   break;
+   }
+   }
+	
+}
+
 ?>
\ No newline at end of file
diff --git a/server/lib/classes/file.inc.php b/server/lib/classes/file.inc.php
index e0bd12f..67a973c 100644
--- a/server/lib/classes/file.inc.php
+++ b/server/lib/classes/file.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2007, projektfarm Gmbh, Till Brehm, Falko Timme
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,165 +28,166 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-
 class file{
-
-function rf($file){
-  global $app;
-  clearstatcache();
-  if(!$fp = fopen ($file, "rb")){
-    $app->log("WARNING: could not open file ".$file, 2);
-    return false;
-  } else {
-    if(filesize($file) > 0){
-      $content = fread($fp, filesize($file));
-    } else {
-      $content = "";
-    }
-    fclose($fp);
-    return $content;
-  }
-}
-
-function wf($file, $content){
-  global $app;
-  $this->mkdirs(dirname($file));
-  if(!$fp = fopen ($file, "wb")){
-    $app->log("WARNING: could not open file ".$file, 2);
-    return false;
-  } else {
-    fwrite($fp,$content);
-    fclose($fp);
-    return true;
-  }
-}
-
-function af($file, $content){
-  global $app;
-  $this->mkdirs(dirname($file));
-  if(!$fp = fopen ($file, "ab")){
-    $app->log("WARNING: could not open file ".$file, 2);
-    return false;
-  } else {
-    fwrite($fp,$content);
-    fclose($fp);
-    return true;
-  }
-}
-
-function no_comments($file, $comment = '#'){
-  $content = $this->unix_nl($this->rf($file));
-  $lines = explode("\n", $content);
-  if(!empty($lines)){
-    foreach($lines as $line){
-      if(strstr($line, $comment)){
-        $pos = strpos($line, $comment);
-        if($pos != 0){
-          $new_lines[] = substr($line,0,$pos);
-        } else {
-          $new_lines[] = "";
-        }
+    
+    function rf($file){
+      global $app;
+      clearstatcache();
+      if(!$fp = fopen ($file, "rb")){
+        $app->log("WARNING: could not open file ".$file, 2);
+        return false;
       } else {
-        $new_lines[] = $line;
+        if(filesize($file) > 0){
+          $content = fread($fp, filesize($file));
+        } else {
+          $content = "";
+        }
+        fclose($fp);
+        return $content;
       }
     }
-  }
-  if(is_array($new_lines)){
-    $content_without_comments = implode("\n", $new_lines);
-    $new_lines = NULL;
-    return $content_without_comments;
-  } else {
-    return "";
-  }
-}
-
-function manual_entries($file, $separator = '#### MAKE MANUAL ENTRIES BELOW THIS LINE! ####'){
-  if(is_file($file)){
-    $content = $this->rf($file);
-    $parts = explode($separator, $content);
-    $manual = "\n".trim($parts[1]);
-    return $manual;
-  } else {
-    return "";
-  }
-}
-
-function remove_blank_lines($input, $file = 1){
-  //Leerzeilen l�schen
-  if($file){
-    $content = $this->unix_nl($this->rf($input));
-  } else {
-    $content = $input;
-  }
-  $lines = explode("\n", $content);
-  if(!empty($lines)){
-    foreach($lines as $line){
-      if(trim($line) != "") $new_lines[] = $line;
+    
+    function wf($file, $content){
+      global $app;
+      $this->mkdirs(dirname($file));
+      if(!$fp = fopen ($file, "wb")){
+        $app->log("WARNING: could not open file ".$file, 2);
+        return false;
+      } else {
+        fwrite($fp,$content);
+        fclose($fp);
+        return true;
+      }
     }
-  }
-  if(is_array($new_lines)){
-    $content = implode("\n", $new_lines);
-  } else {
-    $content = "";
-  }
-  if($file){
-    $this->wf($input, $content);
-  } else {
-    return $content;
-  }
-}
-
-function unix_nl($input){
-  $output = str_replace("\r\n", "\n", $input);
-  $output = str_replace("\r", "\n", $output);
-  return $output;
-}
-
-function fileowner($file){
-  $owner_id = fileowner($file);
-  clearstatcache();
-  return $owner_id;
-}
-
-function mkdirs($strPath, $mode = '0755'){
-  // Verzeichnisse rekursiv erzeugen
-  if(is_dir($strPath)) return true;
-  $pStrPath = dirname($strPath);
-  if(!$this->mkdirs($pStrPath, $mode)) return false;
-  $old_umask = umask(0);
-  $ret_val = mkdir($strPath, octdec($mode));
-  umask($old_umask);
-  return $ret_val;
-}
-
-function find_includes($file){
-  ob_start();
-  $httpd_root = system('httpd -V | awk -F"\"" \'$1==" -D HTTPD_ROOT="{print $2}\'');
-  ob_end_clean();
-  clearstatcache();
-  if(is_file($file) && filesize($file) > 0){
-    $includes[] = $file;
-    $inhalt = $this->unix_nl($this->no_comments($file));
-    $lines = explode("\n", $inhalt);
-    if(!empty($lines)){
-      foreach($lines as $line){
-        if(stristr($line, "include ")){
-          $include_file = str_replace("\n", "", trim(shell_exec("echo \"$line\" | awk '{print \$2}'")));
-          if(substr($include_file,0,1) != "/"){
-            $include_file = $httpd_root."/".$include_file;
-          }
-          if(is_file($include_file)){
-            if($further_includes = $this->find_includes($include_file)){
-              $includes = array_merge($includes, $further_includes);
+    
+    function af($file, $content){
+      global $app;
+      $this->mkdirs(dirname($file));
+      if(!$fp = fopen ($file, "ab")){
+        $app->log("WARNING: could not open file ".$file, 2);
+        return false;
+      } else {
+        fwrite($fp,$content);
+        fclose($fp);
+        return true;
+      }
+    }
+    
+    function no_comments($file, $comment = '#'){
+      $content = $this->unix_nl($this->rf($file));
+      $lines = explode("\n", $content);
+      if(!empty($lines)){
+        foreach($lines as $line){
+          if(strstr($line, $comment)){
+            $pos = strpos($line, $comment);
+            if($pos != 0){
+              $new_lines[] = substr($line,0,$pos);
+            } else {
+              $new_lines[] = "";
             }
           } else {
-            if(strstr($include_file, "*")){
-              $more_files = explode("\n", shell_exec("ls -l $include_file | awk '{print \$9}'"));
-              if(!empty($more_files)){
-                foreach($more_files as $more_file){
-                  if(is_file($more_file)){
-                    if($further_includes = $this->find_includes($more_file)){
-                      $includes = array_merge($includes, $further_includes);
+            $new_lines[] = $line;
+          }
+        }
+      }
+      if(is_array($new_lines)){
+        $content_without_comments = implode("\n", $new_lines);
+        $new_lines = NULL;
+        return $content_without_comments;
+      } else {
+        return "";
+      }
+    }
+    
+    function manual_entries($file, $separator = '#### MAKE MANUAL ENTRIES BELOW THIS LINE! ####'){
+      if(is_file($file)){
+        $content = $this->rf($file);
+        $parts = explode($separator, $content);
+        $manual = "\n".trim($parts[1]);
+        return $manual;
+      } else {
+        return "";
+      }
+    }
+    
+    function remove_blank_lines($input, $file = 1){
+      //Leerzeilen l�schen
+      if($file){
+        $content = $this->unix_nl($this->rf($input));
+      } else {
+        $content = $input;
+      }
+      $lines = explode("\n", $content);
+      if(!empty($lines)){
+        foreach($lines as $line){
+          if(trim($line) != "") $new_lines[] = $line;
+        }
+      }
+      if(is_array($new_lines)){
+        $content = implode("\n", $new_lines);
+      } else {
+        $content = "";
+      }
+      if($file){
+        $this->wf($input, $content);
+      } else {
+        return $content;
+      }
+    }
+    
+    function unix_nl($input){
+      $output = str_replace("\r\n", "\n", $input);
+      $output = str_replace("\r", "\n", $output);
+      return $output;
+    }
+    
+    function fileowner($file){
+      $owner_id = fileowner($file);
+      clearstatcache();
+      return $owner_id;
+    }
+    
+    function mkdirs($strPath, $mode = '0755'){
+      // Verzeichnisse rekursiv erzeugen
+      if(is_dir($strPath)) return true;
+      $pStrPath = dirname($strPath);
+      if(!$this->mkdirs($pStrPath, $mode)) return false;
+      $old_umask = umask(0);
+      $ret_val = mkdir($strPath, octdec($mode));
+      umask($old_umask);
+      return $ret_val;
+    }
+    
+    function find_includes($file){
+      ob_start();
+      $httpd_root = system('httpd -V | awk -F"\"" \'$1==" -D HTTPD_ROOT="{print $2}\'');
+      ob_end_clean();
+      clearstatcache();
+      if(is_file($file) && filesize($file) > 0){
+        $includes[] = $file;
+        $inhalt = $this->unix_nl($this->no_comments($file));
+        $lines = explode("\n", $inhalt);
+        if(!empty($lines)){
+          foreach($lines as $line){
+            if(stristr($line, "include ")){
+              $include_file = str_replace("\n", "", trim(shell_exec("echo \"$line\" | awk '{print \$2}'")));
+              if(substr($include_file,0,1) != "/"){
+                $include_file = $httpd_root."/".$include_file;
+              }
+              if(is_file($include_file)){
+                if($further_includes = $this->find_includes($include_file)){
+                  $includes = array_merge($includes, $further_includes);
+                }
+              } else {
+                if(strstr($include_file, "*")){
+                  $more_files = explode("\n", shell_exec("ls -l $include_file | awk '{print \$9}'"));
+                  if(!empty($more_files)){
+                    foreach($more_files as $more_file){
+                      if(is_file($more_file)){
+                        if($further_includes = $this->find_includes($more_file)){
+                          $includes = array_merge($includes, $further_includes);
+                        }
+                      }
                     }
                   }
                 }
@@ -194,126 +196,124 @@
           }
         }
       }
-    }
-  }
-  if(is_array($includes)){
-    $includes = array_unique($includes);
-    return $includes;
-  } else {
-    return false;
-  }
-}
-
-function edit_dist($var, $val){
-  global $$var;
-  $files = array("/root/ispconfig/dist.inc.php");
-  foreach($files as $file){
-    if(is_file($file)){
-      $file_content = $this->unix_nl($this->rf($file));
-      $lines = explode("\n", $file_content);
-      for($i=0;$i<sizeof($lines);$i++){
-        $parts = explode("=", $lines[$i]);
-        if($parts[0] == $var || $parts[0] == '$'.$var.' '){
-          $parts[1] = str_replace($$var, $val, $parts[1]);
-        }
-        $lines[$i] = implode("=", $parts);
+      if(is_array($includes)){
+        $includes = array_unique($includes);
+        return $includes;
+      } else {
+        return false;
       }
-      $file_content = implode("\n", $lines);
-      $this->wf($file, $file_content);
     }
-  }
-}
-
-function getDirectoryListing($dirname, $sortorder = "a", $show_subdirs = 0, $show_subdirfiles = 0, $exts = "", $ext_save = 1){
-// This function will return an array with filenames based on the criteria you can set in the variables
-// @sortorder : a for ascending (the standard) or d for descending (you can use the "r" for reverse as well, works the same)
-// @show_subdirs : 0 for NO, 1 for YES - meaning it will show the names of subdirectories if there are any
-// Logically subdirnames will not be checked for the required extentions
-// @show_subdirfiles : 0 for NO, 1 for YES - meaning it will show files from the subdirs
-// Files from subdirs will be prefixed with the subdir name and checked for the required extentions.
-// @exts can be either a string or an array, if not passed to the function, then the default will be a check for common image files
-// If exts is set to "all" then all extentions are allowed
-// @ext_save : 1 for YES, 0 for NO - meaning it will filter out system files or not (such as .htaccess)
-
-   $dirname = realpath($dirname);
-   if (!$exts || empty($exts) || $exts == "") {
-       $exts = array("jpg", "gif", "jpeg", "png");
-   }
-   if ($handle = opendir($dirname)) {
-       $filelist = array();
-       while (false !== ($file = readdir($handle))) {
-
-           // Filter out higher directory references
-           if ($file != "." && $file != "..") {
-               // Only look at directories or files, filter out symbolic links
-               if ( filetype ($dirname."/".$file) != "link") {
-                   // If it's a file, check against valid extentions and add to the list
-                   if ( filetype ($dirname."/".$file) == "file" ) {
-                       if ($this->checkFileExtension($file, $exts, $ext_save)) {
-                                       $filelist[] = $file;
-                       }
-                   }
-                   // If it's a directory and either subdirs should be listed or files from subdirs add relevant names to the list
-                   else if ( filetype ($dirname."/".$file) == "dir" && ($show_subdirs == 1 || $show_subdirfiles == 1)) {
-                       if ($show_subdirs == 1) {
-                           $filelist[] = $file;
-                       }
-                       if ($show_subdirfiles == 1) {
-                           $subdirname = $file;
-                           $subdirfilelist = $this->getDirectoryListing($dirname."/".$subdirname."/", $sortorder, $show_subdirs, $show_subdirfiles, $exts, $ext_save);
-                           for ($i = 0 ; $i < count($subdirfilelist) ; $i++) {
-                               $subdirfilelist[$i] = $subdirname."/".$subdirfilelist[$i];
+    
+    function edit_dist($var, $val){
+      global $$var;
+      $files = array("/root/ispconfig/dist.inc.php");
+      foreach($files as $file){
+        if(is_file($file)){
+          $file_content = $this->unix_nl($this->rf($file));
+          $lines = explode("\n", $file_content);
+          for($i=0;$i<sizeof($lines);$i++){
+            $parts = explode("=", $lines[$i]);
+            if($parts[0] == $var || $parts[0] == '$'.$var.' '){
+              $parts[1] = str_replace($$var, $val, $parts[1]);
+            }
+            $lines[$i] = implode("=", $parts);
+          }
+          $file_content = implode("\n", $lines);
+          $this->wf($file, $file_content);
+        }
+      }
+    }
+    
+    function getDirectoryListing($dirname, $sortorder = "a", $show_subdirs = 0, $show_subdirfiles = 0, $exts = "", $ext_save = 1){
+    // This function will return an array with filenames based on the criteria you can set in the variables
+    // @sortorder : a for ascending (the standard) or d for descending (you can use the "r" for reverse as well, works the same)
+    // @show_subdirs : 0 for NO, 1 for YES - meaning it will show the names of subdirectories if there are any
+    // Logically subdirnames will not be checked for the required extentions
+    // @show_subdirfiles : 0 for NO, 1 for YES - meaning it will show files from the subdirs
+    // Files from subdirs will be prefixed with the subdir name and checked for the required extentions.
+    // @exts can be either a string or an array, if not passed to the function, then the default will be a check for common image files
+    // If exts is set to "all" then all extentions are allowed
+    // @ext_save : 1 for YES, 0 for NO - meaning it will filter out system files or not (such as .htaccess)
+    
+       $dirname = realpath($dirname);
+       if (!$exts || empty($exts) || $exts == "") {
+           $exts = array("jpg", "gif", "jpeg", "png");
+       }
+       if ($handle = opendir($dirname)) {
+           $filelist = array();
+           while (false !== ($file = readdir($handle))) {
+    
+               // Filter out higher directory references
+               if ($file != "." && $file != "..") {
+                   // Only look at directories or files, filter out symbolic links
+                   if ( filetype ($dirname."/".$file) != "link") {
+                       // If it's a file, check against valid extentions and add to the list
+                       if ( filetype ($dirname."/".$file) == "file" ) {
+                           if ($this->checkFileExtension($file, $exts, $ext_save)) {
+                                           $filelist[] = $file;
                            }
-                           $filelist = array_merge($filelist, $subdirfilelist);
                        }
-
+                       // If it's a directory and either subdirs should be listed or files from subdirs add relevant names to the list
+                       else if ( filetype ($dirname."/".$file) == "dir" && ($show_subdirs == 1 || $show_subdirfiles == 1)) {
+                           if ($show_subdirs == 1) {
+                               $filelist[] = $file;
+                           }
+                           if ($show_subdirfiles == 1) {
+                               $subdirname = $file;
+                               $subdirfilelist = $this->getDirectoryListing($dirname."/".$subdirname."/", $sortorder, $show_subdirs, $show_subdirfiles, $exts, $ext_save);
+                               for ($i = 0 ; $i < count($subdirfilelist) ; $i++) {
+                                   $subdirfilelist[$i] = $subdirname."/".$subdirfilelist[$i];
+                               }
+                               $filelist = array_merge($filelist, $subdirfilelist);
+                           }
+    
+                       }
+    
                    }
-
                }
            }
-       }
-       closedir($handle);
-
-       // Sort the results
-       if (count($filelist) > 1) {
-           natcasesort($filelist);
-           if ($sortorder == "d" || $sortorder == "r" ) {
-               $filelist = array_reverse($filelist, TRUE);
+           closedir($handle);
+    
+           // Sort the results
+           if (count($filelist) > 1) {
+               natcasesort($filelist);
+               if ($sortorder == "d" || $sortorder == "r" ) {
+                   $filelist = array_reverse($filelist, TRUE);
+               }
            }
+           return $filelist;
        }
-       return $filelist;
-   }
-   else {
-       return false;
-   }
-}
-
-function checkFileExtension($filename, $exts, $ext_save = 1){
-   $passed = FALSE;
-   if ($ext_save == 1) {
-       if (preg_match("/^\./", $filename)) {
-           return $passed;
+       else {
+           return false;
        }
-   }
-   if ($exts == "all") {
-                   $passed = TRUE;
-       return $passed;
-   }
-   if (is_string($exts)) {
-       if (eregi("\.". $exts ."$", $filename)) {
-                       $passed = TRUE;
-           return $passed;
-       }
-   } else if (is_array($exts)) {
-       foreach ($exts as $theExt) {
-           if (eregi("\.". $theExt ."$", $filename)) {
-               $passed = TRUE;
+    }
+    
+    function checkFileExtension($filename, $exts, $ext_save = 1){
+       $passed = FALSE;
+       if ($ext_save == 1) {
+           if (preg_match("/^\./", $filename)) {
                return $passed;
            }
        }
-   }
-   return $passed;
-}
+       if ($exts == "all") {
+                       $passed = TRUE;
+           return $passed;
+       }
+       if (is_string($exts)) {
+           if (eregi("\.". $exts ."$", $filename)) {
+                           $passed = TRUE;
+               return $passed;
+           }
+       } else if (is_array($exts)) {
+           foreach ($exts as $theExt) {
+               if (eregi("\.". $theExt ."$", $filename)) {
+                   $passed = TRUE;
+                   return $passed;
+               }
+           }
+       }
+       return $passed;
+    }
 
 }
 ?>
\ No newline at end of file
diff --git a/server/lib/classes/getconf.inc.php b/server/lib/classes/getconf.inc.php
index fd0c088..7bff61f 100644
--- a/server/lib/classes/getconf.inc.php
+++ b/server/lib/classes/getconf.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/lib/classes/ini_parser.inc.php b/server/lib/classes/ini_parser.inc.php
index 349990f..05a7259 100644
--- a/server/lib/classes/ini_parser.inc.php
+++ b/server/lib/classes/ini_parser.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/lib/classes/mod_mail_base.inc.php b/server/lib/classes/mod_mail_base.inc.php
index b169193..01ffda5 100644
--- a/server/lib/classes/mod_mail_base.inc.php
+++ b/server/lib/classes/mod_mail_base.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/lib/classes/services.inc.php b/server/lib/classes/services.inc.php
index 260d3f0..b4ccced 100644
--- a/server/lib/classes/services.inc.php
+++ b/server/lib/classes/services.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2007, projektfarm Gmbh, Till Brehm, Falko Timme
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -26,7 +27,6 @@
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
-
 
 class services {
 
diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index f6fce77..da7e2d0 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2007, projektfarm Gmbh, Till Brehm, Falko Timme
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -26,7 +27,6 @@
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
-
 
 class system{
 
diff --git a/server/lib/classes/tpl.inc.php b/server/lib/classes/tpl.inc.php
index e16f0dc..f4b4063 100644
--- a/server/lib/classes/tpl.inc.php
+++ b/server/lib/classes/tpl.inc.php
@@ -1,5 +1,4 @@
 <?php
-
 /* vim: set expandtab tabstop=4 shiftwidth=4: */
 // +----------------------------------------------------------------------+
 // | PHP version 4.0                                                      |
diff --git a/server/mods-available/client_module.inc.php b/server/mods-available/client_module.inc.php
index a70cbdf..4fdcd4e 100644
--- a/server/mods-available/client_module.inc.php
+++ b/server/mods-available/client_module.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/mods-available/database_module.inc.php b/server/mods-available/database_module.inc.php
index 740e8f8..0d6be2a 100644
--- a/server/mods-available/database_module.inc.php
+++ b/server/mods-available/database_module.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index 342d76a..9502577 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,6 +27,7 @@
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
+
 class monitor_core_module {
     /* TODO: this should be a config - var instead of a "constant" */
     var $interval = 5; // do the monitoring every 5 minutes
diff --git a/server/plugins-available/firewall_plugin.inc.php b/server/plugins-available/firewall_plugin.inc.php
index 3c1568d..697b937 100644
--- a/server/plugins-available/firewall_plugin.inc.php
+++ b/server/plugins-available/firewall_plugin.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php
index d904821..ca3651a 100644
--- a/server/plugins-available/mysql_clientdb_plugin.inc.php
+++ b/server/plugins-available/mysql_clientdb_plugin.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/plugins-available/network_settings_plugin.inc.php b/server/plugins-available/network_settings_plugin.inc.php
index 94e37b4..277d474 100644
--- a/server/plugins-available/network_settings_plugin.inc.php
+++ b/server/plugins-available/network_settings_plugin.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php
index 6a35f95..adba029 100755
--- a/server/plugins-available/shelluser_jailkit_plugin.inc.php
+++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/plugins-available/software_update_plugin.inc.php b/server/plugins-available/software_update_plugin.inc.php
index c3caf63..cc10859 100644
--- a/server/plugins-available/software_update_plugin.inc.php
+++ b/server/plugins-available/software_update_plugin.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,

--
Gitblit v1.9.1