From c82aee0b0424a3e61c72c4efc07de615f3111e3d Mon Sep 17 00:00:00 2001
From: warmels <sdos@astron.nl>
Date: Fri, 20 Jul 2007 08:17:19 +0000
Subject: [PATCH] BugID: 1079

Enkele statistieken uitgewerkt
Gegevens per gebruikersgroep laten tonen ipv alles tonen aan elke gebruiker
---
 .../CRAFT/admin_component_types/bewerken.php  |  60 ++++----
 .../comp_type_functies.php                    |  17 +++
 .../CRAFT/admin_component_types/toevoegen.php |  66 ++++----
 .../CRAFT/admin_gebruikersgroep/bewerken.php  |  45 +++++-
 .../CRAFT/admin_gebruikersgroep/toevoegen.php |  45 +++++-
 .../admin_gebruikersgroep/verwijderen.php     |  16 +-
 .../comp_bewerken.php                         |  24 ++-
 .../comp_toevoegen.php                        |  61 +++-----
 .../comp_toevoegen_functies.php               |   7 +-
 .../globale_functies.php                      |  88 +++++++++++
 .../type_verantwoordelijke.php                |  37 +++++
 support/tool/CRAFT/documentatie/changes.doc   | Bin 28672 -> 28672 bytes
 support/tool/CRAFT/includes/functies.php      |  11 +-
 support/tool/CRAFT/includes/tree_items.js     |  17 ---
 support/tool/CRAFT/includes/tree_items.php    |  87 +++++++++--
 support/tool/CRAFT/includes/type_object.php   |   2 +-
 support/tool/CRAFT/main.php                   |  20 ++-
 support/tool/CRAFT/main/statistieken.php      |   1 -
 .../tool/CRAFT/main_componenten/bewerken.php  |   1 +
 .../tool/CRAFT/main_statistieken/algemeen.php |  42 ++++++
 .../CRAFT/main_statistieken/componenten.php   | 142 ++++++++++++++++++
 .../CRAFT/main_statistieken/meldingen.php     |  36 +++++
 .../main_statistieken/type_componenten.php    |  55 +++++++
 .../main_statistieken/type_meldingen.php      |  72 +++++++++
 24 files changed, 786 insertions(+), 166 deletions(-)
 create mode 100644 support/tool/CRAFT/admin_component_types/comp_type_functies.php
 create mode 100644 support/tool/CRAFT/algemene_functionaliteit/globale_functies.php
 create mode 100644 support/tool/CRAFT/algemene_functionaliteit/type_verantwoordelijke.php
 delete mode 100644 support/tool/CRAFT/includes/tree_items.js
 delete mode 100644 support/tool/CRAFT/main/statistieken.php
 create mode 100644 support/tool/CRAFT/main_statistieken/algemeen.php
 create mode 100644 support/tool/CRAFT/main_statistieken/componenten.php
 create mode 100644 support/tool/CRAFT/main_statistieken/meldingen.php
 create mode 100644 support/tool/CRAFT/main_statistieken/type_componenten.php
 create mode 100644 support/tool/CRAFT/main_statistieken/type_meldingen.php

diff --git a/support/tool/CRAFT/admin_component_types/bewerken.php b/support/tool/CRAFT/admin_component_types/bewerken.php
index 096c6024217..90a6f608780 100644
--- a/support/tool/CRAFT/admin_component_types/bewerken.php
+++ b/support/tool/CRAFT/admin_component_types/bewerken.php
@@ -6,6 +6,7 @@
 	  $_SESSION['huidige_pagina'] = $_SESSION['pagina'] . 'admin.php?p='.$_SESSION['admin_deel'].'&s=2';
 	  
 	  require_once($_SESSION['pagina'] . 'includes/login_funcs.php');
+	  require_once($_SESSION['pagina'] . 'algemene_functionaliteit/globale_functies.php');
 		
 	  //controleren of er iemand ingelogd is...
 	  if ($LOGGED_IN = user_isloggedin()) {
@@ -13,6 +14,8 @@
 	  	?>
 	  	<div id="linkerdeel">
 	  		<?php 
+	  			echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."admin_component_types/comp_type_functies.php\"></script>");
+
 	  			echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree.js\"></script>");
 					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_items.php\"></script>");
 					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_tpl.js\"></script>");
@@ -48,7 +51,7 @@
 							return false;
 	
 						//Reserve tussen minimum en maximum										
-						if (isset($_POST['minimum']) && isset($_POST['maximum']) && isset($_POST['reserve']) && 
+						if (isset($_POST['minimum']) && isset($_POST['maximum']) && isset($_POST['reserve']) && ($_POST['reserve'] != 0) &&
 							($_POST['reserve'] > $_POST['maximum'] || $_POST['reserve'] < $_POST['minimum']))
 								return false;
 						
@@ -62,7 +65,7 @@
 							$query = $query . "1', ";
 						else $query = $query . "0', ";
 						$query = $query . "Min_Aantal='". htmlspecialchars($_POST['minimum']) ."', Max_Aantal='". htmlspecialchars($_POST['maximum']) ."', Reserve_Minimum='". htmlspecialchars($_POST['reserve']) ."', ";
-						$query = $query . "Type_Verantwoordelijke='". $_POST['verantwoordelijke'] ."', Geleverd_Door='".$_POST['leverancier']."', Gefabriceerd_Door='".$_POST['fabricant']."'";
+						$query = $query . "Type_Verantwoordelijke='". $_POST['hidden_verantwoordelijke'] ."', Geleverd_Door='".$_POST['leverancier']."', Gefabriceerd_Door='".$_POST['fabricant']."'";
 						$query = $query . " WHERE Comp_Type = '" . $_GET['c'] . "'";
 						
 						if (mysql_query($query)) echo("Het gewijzigde type \"". $_POST['naam'] ."\" is in het systeem bijgewerkt<br>");
@@ -72,7 +75,7 @@
 					else {
 					
 						if (isset($_GET['c']) && $_GET['c'] != 0 ) {
-						
+							$type_selectie = -1;
 							$query = 'SELECT * FROM comp_type WHERE Comp_Type = '. $_GET['c'];
 					  	$resultaat = mysql_query($query);  	
 					  	$row = mysql_fetch_array($resultaat);
@@ -91,20 +94,18 @@
 					    		</tr>
 					    		<tr>
 					    			<td>Parent van het type:</td>
-					    			<td><select name="parent">
+					    			<td>
+ 						    			<select name="parent" id="parent" onchange="switchDocument(<?php if(isset($_POST['hidden_verantwoordelijke'])) echo($_POST['hidden_verantwoordelijke']); else echo("-1");?>);">
 						    			<?php 
-						    				$query = 'SELECT Comp_Type, Type_Naam FROM comp_type';
+						    				//Type ophalen uit gebruikersgroeprechten
+						    				$query = "SELECT Comp_Type_ID FROM gebruikersgroeprechten WHERE Groep_ID = '".$_SESSION['groep_id']."'";
 						    			  $resultaat = mysql_query($query);
-						    			  if (isset($_POST['parent'])) $selectie = $_POST['parent'];
-						    			  else $selectie = $row['Type_Parent'];
-										  	while ($data = mysql_fetch_array($resultaat)) {
-										  		if ($data['Comp_Type'] != $_GET['c']) {
-											  		echo('<option value="'. $data['Comp_Type'] .'"');
-											  		if(isset($selectie) && isset($_GET['c']) &&  $data['Comp_Type'] == $selectie)
-											  			echo('SELECTED');
-											  		echo('>'. $data['Type_Naam'] .'</option>');
-										  		}
-										  	}
+												$data = mysql_fetch_array($resultaat);
+						    				
+									  		if (isset($_POST['parent'])) $type_selectie = $_POST['parent'];
+									  		else if(isset($_GET['c'])) $type_selectie = $row['Type_Parent'];
+				
+												Vul_Component_Types_Select_Box($data[0], $type_selectie, true);
 						    			?></select>
 						    		</td>
 					    		</tr>
@@ -189,30 +190,21 @@
 					    			<td>Aantal op reserve:</td>
 					    			<td><input name="reserve" type="text" value="<?php if(isset($_POST['reserve'])) echo(htmlentities($_POST['reserve'],ENT_QUOTES)); else echo($row['Reserve_Minimum']); ?>">
 					    			<?php
-											if (isset($_POST['minimum']) && isset($_POST['maximum']) && isset($_POST['reserve']) && 
+											if (isset($_POST['minimum']) && isset($_POST['maximum']) && isset($_POST['reserve']) && ($_POST['reserve'] != 0) &&
 												($_POST['reserve'] > $_POST['maximum'] || $_POST['reserve'] < $_POST['minimum']))
 						    					echo('<b id="type_reserve">* De invoer ('.$_POST['reserve'] .') valt buiten de min. / max. waardes.</b>');
 					    				?></td>
 					    		</tr>
+			    				<?php
+			    					if (isset($_POST['hidden_verantwoordelijke'])) 
+    									$verantwoordelijke = $_POST['hidden_verantwoordelijke'];
+    								else $verantwoordelijke = $row['Type_Verantwoordelijke'];
+			    				
+			    				?>
+			    				<tr><td>Type verantwoordelijke:</td><td><iframe id="frame_contact" name="frame_contact" align="middle" marginwidth="0" marginheight="0" src="<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/type_verantwoordelijke.php?c=<?php echo($type_selectie . "&s=" . $verantwoordelijke);?>" width="300" height="26" ALLOWTRANSPARENCY frameborder="0" scrolling="auto"></iframe></td></tr>
 					    		<tr>
-					    			<td>Type verantwoordelijke:</td>
-					    			<td><select name="verantwoordelijke">
-					    			<?php
-											$query2 = 'SELECT Werknem_ID, inlognaam FROM gebruiker';
-					  					$resultaat2 = mysql_query($query2); 
-									  	if (isset($_POST['verantwoordelijke'])) $selectie = $_POST['verantwoordelijke'];
-									  	else $selectie = $row['Type_Verantwoordelijke'];
-									  	while ($data = mysql_fetch_array($resultaat2)) {
-									  		echo('<option value="'. $data['Werknem_ID'] .'"');
-									  		if(isset($selectie) && $data['Werknem_ID'] == $selectie)
-									  			echo('SELECTED');
-									  		echo('>'. $data['inlognaam'] .'</option>');
-									  	}
-					    			?></select></td>
-					    		</tr>
-					    		<tr>
-										<td id="opslaan" align="right"><a href="javascript:document.theForm.submit();">Opslaan</a></td>
-					    			<td><input id="opslaan" name="opslaan" type="hidden" value="1"></td>
+										<td id="opslaan" align="right"><a href="javascript:submitTypeOpslaan();">Opslaan</a></td>
+					    			<td><input name="hidden_verantwoordelijke" id="hidden_verantwoordelijke" type="hidden" value="-1"><input id="opslaan" name="opslaan" type="hidden" value="1"></td>
 					    		</tr>
 					    	</table>
 							</form> 		   	
diff --git a/support/tool/CRAFT/admin_component_types/comp_type_functies.php b/support/tool/CRAFT/admin_component_types/comp_type_functies.php
new file mode 100644
index 00000000000..8396f75be21
--- /dev/null
+++ b/support/tool/CRAFT/admin_component_types/comp_type_functies.php
@@ -0,0 +1,17 @@
+<?php
+
+	session_start();
+?>
+
+function switchDocument(selectie)
+{
+	var y=document.getElementById('parent').value;
+	document.getElementById('frame_contact').src = "<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/type_verantwoordelijke.php?c=" + y + "&s=" + selectie;	
+}
+
+function submitTypeOpslaan() 
+{
+	var z = document.frames['frame_contact'].document.getElementById('sVerantwoordelijke').value;
+	document.getElementById('hidden_verantwoordelijke').value = z;
+	document.theForm.submit();
+}
\ No newline at end of file
diff --git a/support/tool/CRAFT/admin_component_types/toevoegen.php b/support/tool/CRAFT/admin_component_types/toevoegen.php
index 7206903d39d..dac1b9c1e77 100644
--- a/support/tool/CRAFT/admin_component_types/toevoegen.php
+++ b/support/tool/CRAFT/admin_component_types/toevoegen.php
@@ -5,6 +5,7 @@
 	  $_SESSION['huidige_pagina'] = $_SESSION['pagina'] . 'admin.php?p='.$_SESSION['admin_deel'].'&s=1';
 	  
 	  require_once($_SESSION['pagina'] . 'includes/login_funcs.php');
+	  require_once($_SESSION['pagina'] . 'algemene_functionaliteit/globale_functies.php');
 		
 	  //controleren of er iemand ingelogd is...
 	  if ($LOGGED_IN = user_isloggedin()) {
@@ -12,6 +13,8 @@
 	  	?>
 	  	<div id="linkerdeel">
 	  		<?php 
+	  			echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."admin_component_types/comp_type_functies.php\"></script>");
+
 	  			echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree.js\"></script>");
 					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_items.php\"></script>");
 					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_tpl.js\"></script>");
@@ -27,7 +30,9 @@
 	    	
 	    	<h2>Type component toevoegen</h2>
 	    	<?php
-	    	
+	    		$Geselecteerd_Type = '';
+
+
 	    		function Valideer_Invoer() {
 						if (isset($_POST['opslaan']) && $_POST['opslaan'] == 0) 
 							return false;
@@ -46,7 +51,7 @@
 							return false;
 	
 						//Reserve tussen minimum en maximum										
-						if (isset($_POST['minimum']) && isset($_POST['maximum']) && isset($_POST['reserve']) && 
+						if (isset($_POST['minimum']) && isset($_POST['maximum']) && isset($_POST['reserve']) && ($_POST['reserve'] != 0) && 
 							($_POST['reserve'] > $_POST['maximum'] || $_POST['reserve'] < $_POST['minimum']))
 								return false;
 						
@@ -61,34 +66,32 @@
 						
 						$query = "INSERT INTO comp_type (Type_Naam, Type_Parent, Aangemaakt_Door, Aanmaak_Datum, Structuur_Entry, Min_Aantal, Max_Aantal, Reserve_Minimum, Type_Verantwoordelijke, Gefabriceerd_door, Geleverd_Door) ";
 						$query = $query . " VALUES ('". htmlspecialchars($_POST['naam']) ."', '". $_POST['parent'] ."', '". $_SESSION['gebr_id'] ."' ,NOW(), '". $entry ."', '". htmlspecialchars($_POST['minimum']) ."', '";
-						$query = $query. htmlspecialchars($_POST['maximum']) ."', '". htmlspecialchars($_POST['reserve']) ."', '". $_POST['verantwoordelijke'] ."', '".$_POST['fabricant']."', '". $_POST['leverancier'] ."')";
+						$query = $query. htmlspecialchars($_POST['maximum']) ."', '". htmlspecialchars($_POST['reserve']) ."', '". $_POST['hidden_verantwoordelijke'] ."', '".$_POST['fabricant']."', '". $_POST['leverancier'] ."')";
 						if (mysql_query($query)) echo("Het nieuwe type \"". $_POST['naam'] ."\" is aan het systeem toegevoegd<br>");
 						else echo("Het nieuwe type \"". $_POST['naam'] ."\" kon niet aan het systeem toegevoegd worden!.");
 						echo('<a href="'.$_SESSION['huidige_pagina'].'">Klik hier om nog een type toe te voegen.</a>');
 					}
 					else {
-						
 	    	?>
 	    	
 	    	<form name="theForm" method="post" action="<?php echo($_SESSION['huidige_pagina']);?>">
 		    	<table>
 		    		<tr><td>Naam van het type:</td><td><input type="text" name="naam" value="<?php if(isset($_POST['naam'])) echo(htmlentities($_POST['naam'],ENT_QUOTES)); ?>"><?php if(isset($_POST['naam']) && $_POST['naam'] == '') echo('<b id="type_naam">* Er is geen naam ingevoerd!</b>'); ?></td></tr>
 		    		<tr><td>Parent van het type:</td><td>
-		    			<select name="parent">
+		    			<select name="parent" id="parent" onchange="switchDocument(<?php if(isset($_POST['hidden_verantwoordelijke'])) echo($_POST['hidden_verantwoordelijke']); else echo("-1");?>);">
 		    			<?php 
-		    				$query = 'SELECT Comp_Type, Type_Naam FROM comp_type';
+		    				//Type ophalen uit gebruikersgroeprechten
+		    				$query = "SELECT Comp_Type_ID FROM gebruikersgroeprechten WHERE Groep_ID = '".$_SESSION['groep_id']."'";
 		    			  $resultaat = mysql_query($query);
-					  		if (isset($_POST['parent'])) $selectie = $_POST['parent'];
-					  		else if(isset($_GET['c'])) $selectie = $_GET['c'];
-								
-						  	while ($data = mysql_fetch_array($resultaat)) {
-						  		echo('<option value="'. $data['Comp_Type'] .'"');
-						  		if(isset($selectie) && $data['Comp_Type'] == $selectie)
-						  			echo('SELECTED');
-						  		echo('>'. $data['Type_Naam'] .'</option>');
-						  	}
-		    			?>
-		    			</select></td></tr>
+								$data = mysql_fetch_array($resultaat);
+		    				
+					  		if (isset($_POST['parent'])) $Geselecteerd_Type = $_POST['parent'];
+					  		else if(isset($_GET['c'])) $Geselecteerd_Type = $_GET['c'];
+					  		else $Geselecteerd_Type = 'SELECTED';
+
+								Vul_Component_Types_Select_Box($data[0], $Geselecteerd_Type, true);
+		    			?></select>
+		    		</td></tr>
 		    		<tr><td>Structurele entry:</td><td><input name="entry" type="checkbox" value="1" <?php if(isset($_POST['entry']) && $_POST['entry'] == 1 ) echo("CHECKED"); ?>></td></tr>
 		    		<tr><td>Gefabriceerd door:</td><td><select name="fabricant">
 			    		<?php
@@ -119,26 +122,21 @@
 		    		<tr><td>Minimaal aan te maken aantal:</td><td><input name="minimum" type="text" value="<?php if(isset($_POST['minimum'])) echo(htmlentities($_POST['minimum'], ENT_QUOTES)); else echo('1'); ?>"><?php if (isset($_POST['minimum']) && $_POST['minimum'] < 0 ) echo('<b id="type_minimum">* Het minimum aantal ('. $_POST['minimum'] .') mag niet negatief zijn!</b>');?></td></tr>
 		    		<tr><td>Maximaal aan te maken aantal:</td><td><input name="maximum" type="text" value="<?php if(isset($_POST['maximum'])) echo(htmlentities($_POST['maximum'], ENT_QUOTES)); ?>"><?php if (isset($_POST['minimum']) && isset($_POST['maximum']) && ($_POST['maximum'] < $_POST['minimum']) ) echo('<b id="type_maximum">* Het minimum aantal is hoger dan het maximum aantal!</b>'); ?> </td></tr>
 		    		<tr><td>Aantal op reserve:</td><td><input name="reserve" type="text" value="<?php if(isset($_POST['reserve'])) echo(htmlentities($_POST['reserve'],ENT_QUOTES)) ?>"><?php
-							if (isset($_POST['minimum']) && isset($_POST['maximum']) && isset($_POST['reserve']) && 
+							if (isset($_POST['minimum']) && isset($_POST['maximum']) && isset($_POST['reserve']) && ($_POST['reserve'] != 0) &&
 								($_POST['reserve'] > $_POST['maximum'] || $_POST['reserve'] < $_POST['minimum']))
 		    					echo('<b id="type_reserve">* De invoer valt buiten de min. / max. waardes!</b>');
 	    				?></td></tr>
-		    		<tr><td>Type verantwoordelijke:</td><td>
-		    			<select name="verantwoordelijke">
-		  				<?php
-		    				$query = 'SELECT Werknem_ID, inlognaam FROM gebruiker';
-		    			  $resultaat = mysql_query($query);
-						  	if (isset($_POST['verantwoordelijke'])) $selectie = $_POST['verantwoordelijke'];
-						  	else $selectie = $_SESSION['gebr_id'];
-						  	
-						  	while ($data = mysql_fetch_array($resultaat)) {
-						  		echo('<option value="'. $data['Werknem_ID'] .'"');
-						  		if (isset($selectie) && $selectie == $data['Werknem_ID']) echo(' SELECTED ');
-						  		echo('>'.$data['inlognaam'] .'</option>');
-						  	}
-		   				?>
-		    			</select></td></tr>
-		    		<tr><td></td><td><input name="opslaan" type="hidden" value="1"><a href="javascript:document.theForm.submit();">Opslaan</a></td></tr>
+    				<?php
+    					if (isset($_POST['hidden_verantwoordelijke'])) 
+    						$verantwoordelijke = $_POST['hidden_verantwoordelijke'];
+    					else $verantwoordelijke = -1;
+    					
+    					if (isset($_GET['c']))
+    						$selectie = $_GET['c'];
+    					else $selectie = $Geselecteerd_Type;
+    				?>
+    				<tr><td>Type verantwoordelijke:</td><td><iframe id="frame_contact" name="frame_contact" align="middle" marginwidth="0" marginheight="0" src="<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/type_verantwoordelijke.php?c=<?php echo($selectie . "&s=" . $verantwoordelijke);?>" width="300" height="26" ALLOWTRANSPARENCY frameborder="0" scrolling="auto"></iframe></td></tr>
+		    		<tr><td><input name="hidden_verantwoordelijke" id="hidden_verantwoordelijke" type="hidden" value="-1"></td><td><input name="opslaan" type="hidden" value="1"><a href="javascript:submitTypeOpslaan();">Opslaan</a></td></tr>
 		    	</table>
 				</form> 		   	
 			<?php
diff --git a/support/tool/CRAFT/admin_gebruikersgroep/bewerken.php b/support/tool/CRAFT/admin_gebruikersgroep/bewerken.php
index 4a900e2a0da..1d5991e1c12 100644
--- a/support/tool/CRAFT/admin_gebruikersgroep/bewerken.php
+++ b/support/tool/CRAFT/admin_gebruikersgroep/bewerken.php
@@ -40,7 +40,7 @@
 					function checkboxWaardes($waarde) {
 						if (isset($_POST[$waarde]) && $_POST[$waarde] == 'on') 
 							return "1";
-						else return "0";					
+						else return "0";
 					}
 					
 					
@@ -58,7 +58,9 @@
 						$query = $query . "Instel_Zichtbaar = '". checkboxWaardes('Inst_Zichtbaar') ."', Toevoegen = '". checkboxWaardes('Toevoeg_Rechten') ."', ";
 						$query = $query . "Bewerken = '". checkboxWaardes('Bewerk_Rechten') ."', Verwijderen = '". checkboxWaardes('Verwijder_Rechten') ."', Admin_Rechten='". $row['Admin_Rechten'] ."'";
 						$query = $query . " WHERE Groep_ID = '" . $_GET['c'] . "'";
-	
+
+						
+
 						if (mysql_query($query)) echo("De gewijzigde gebruikersgroep \"". $_POST['groepsnaam'] ."\" is in het systeem bijgewerkt<br>");
 						else("Er is iets mis gegaan met het opslaan van de gebruikersgroep \"". $_POST['groepsnaam'] ."\"!! De gebruikersgroep is niet bijgewerkt!");
 						echo('<a href="'.$_SESSION['huidige_pagina'].'&c='.$_GET['c']. '">Klik hier om terug te keren naar het vorige type of selecteer links een gebruikersgroep uit de treeview.</a>');
@@ -95,6 +97,45 @@
 										}
 	    						 ?></select>
 	    					</td>
+	    				</tr>
+	    				<tr>
+	    					<td>Zichtbaar vanaf:</td>
+	    					<td><select name="Comp_Type" <?php if ($row['Vaste_gegevens'] == 1) echo('DISABLED'); ?>>
+	    						<?php 
+	    							$query = "SELECT Comp_Type_ID FROM gebruikersgroeprechten WHERE Groep_ID = '". $_GET['c']."'";
+	    							$resultaat = mysql_query($query);
+	    							$data2 = mysql_fetch_array($resultaat);
+	    							
+	    							$query = 'SELECT Comp_Type, Type_Naam FROM comp_type';
+										$resultaat = mysql_query($query);
+				    			  if (isset($_POST['Comp_Type'])) $selected = $_POST['Comp_Type'];
+				    			  else $selected = $data2['Comp_Type_ID'];
+	
+	    							while ($data = mysql_fetch_array($resultaat)) {
+											echo("<option value=\"". $data['Comp_Type'] ."\" ");
+											if ($selected == $data['Comp_Type'])
+												echo ('SELECTED');
+											echo(">". $data['Type_Naam'] ."</option>\r\n");
+										}
+	    						 ?></select>
+	    					</td>
+	    				</tr>
+	    				<tr>
+	    					<td>Onderliggende data vanaf component:</td>
+	    					<td><?php 
+    							$query = "SELECT onderliggende_Data FROM gebruikersgroeprechten WHERE Groep_ID = '". $_GET['c']."'";
+    							$resultaat = mysql_query($query);
+    							$data2 = mysql_fetch_array($resultaat);
+
+			    				echo('<input id="onderliggende_data" name="onderliggende_data"  type="checkbox" ');
+			    				if(isset($_POST['opslaan']) && $_POST['opslaan'] == 1) {
+			    					if(isset($_POST['onderliggende_data']) && ($_POST['onderliggende_data'] == 1 || $_POST['onderliggende_data'] == 'on')) 
+			    						echo('CHECKED');
+			    				}
+			    				else if ($data2['onderliggende_Data'] == 1) echo('CHECKED');
+			    				if ($row['Vaste_gegevens'] == 1) echo(' DISABLED');
+			    				echo('>');
+			    			?></td>
 	    				</tr>
 							<tr>
 								<td>Intro scherm zichtbaar:</td>
diff --git a/support/tool/CRAFT/admin_gebruikersgroep/toevoegen.php b/support/tool/CRAFT/admin_gebruikersgroep/toevoegen.php
index 415f3bc6fdb..ed730930f58 100644
--- a/support/tool/CRAFT/admin_gebruikersgroep/toevoegen.php
+++ b/support/tool/CRAFT/admin_gebruikersgroep/toevoegen.php
@@ -55,13 +55,30 @@
 	    				$resultaat = mysql_query($query);
 							$row = mysql_fetch_array($resultaat);
 
+							//"onderliggende_data"
 	    				$query = "INSERT INTO gebruikers_groepen (Groeps_Naam, Admin_Rechten, Groep_Parent, Intro_Zichtbaar, Comp_Zichtbaar, Melding_Zichtbaar, Stats_Zichtbaar, ";
 	    				$query = $query . "Instel_Zichtbaar, Toevoegen, Bewerken, Verwijderen) VALUES ('". htmlentities($_POST['groepsnaam'], ENT_QUOTES) ."', '". $row['Admin_Rechten'] ."', '". $_POST['groepsparent'] ."', '";
 							$query = $query . Omzetten_Checkbox($_POST['hidden_intro']) ."', '". Omzetten_Checkbox($_POST['hidden_comp']) ."', '". Omzetten_Checkbox($_POST['hidden_melding']) ."', '". Omzetten_Checkbox($_POST['hidden_stats']) ."', '";
 							$query = $query . Omzetten_Checkbox($_POST['hidden_inst']) ."', '" . Omzetten_Checkbox($_POST['hidden_toevoeg']) ."', '". Omzetten_Checkbox($_POST['hidden_bewerk']) ."', '". Omzetten_Checkbox($_POST['hidden_verwijder']) ."')";
+
+							$errorLevel = 0;
+							if (mysql_query($query)) {
+								$errorLevel = 1;
+
+								$Groep = mysql_insert_id();
+								$query = "INSERT INTO gebruikersgroeprechten (Groep_ID, Comp_Type_ID, onderliggende_Data) VALUES (";
+								$query = $query . "'".$Groep."', '".$_POST['Comp_Type']."', '";
+								
+								if (isset($_POST['onderliggende_data']) && $_POST['onderliggende_data'] == 'on') 
+									$query = $query .  "1')";
+								else $query = $query . "0')";
+								
+								if (mysql_query($query)) { $errorLevel = 2; }
+							}
 							
-							if (mysql_query($query)) echo("De nieuwe groep \"". $_POST['groepsnaam'] ."\" is aan het systeem toegevoegd<br>");
-							else echo("De nieuwe groep \"". $_POST['groepsnaam'] ."\" kon niet aan het systeem toegevoegd worden!.");
+							if ($errorLevel == 2) echo("De nieuwe groep \"". $_POST['groepsnaam'] ."\" is samen met de groepsrechten aan het systeem toegevoegd!<br>");
+							else if ($errorLevel == 0) echo("De nieuwe groep \"". $_POST['groepsnaam'] ."\" kon niet aan het systeem toegevoegd worden!.");
+							else if ($errorLevel == 1) echo("De nieuwe groep \"". $_POST['groepsnaam'] ."\" is aan het systeem toegevoegd.<br>Alleen er is iets foutgegaan met het toevoegen van de groepsrechten! De groepsrechten zijn dus niet aan het systeem toegevoegd!");
 	    				echo('<a href="'.$_SESSION['huidige_pagina'].'">Klik hier om nog een groep toe te voegen.</a>');
 						}
 						else {
@@ -94,6 +111,30 @@
 			    						 ?></select>
 			    					</td>
 			    				</tr>
+			    				<tr>
+			    					<td>Zichtbaar vanaf:</td>
+			    					<td><select name="Comp_Type">
+			    						<?php 
+			    							$query = 'SELECT Comp_Type, Type_Naam FROM comp_type';
+												$resultaat = mysql_query($query);
+						    			  if (isset($_POST['Comp_Type'])) $selected = $_POST['Comp_Type'];
+						    			  else $selected = 'SELECTED';
+			
+			    							while ($data = mysql_fetch_array($resultaat)) {
+													echo("<option value=\"". $data['Comp_Type'] ."\" ");
+													if ($selected == $data['Comp_Type'] || $selected == 'SELECTED'){
+														echo ('SELECTED');
+														$selected = $data['Comp_Type'];
+													}
+													echo(">". $data['Type_Naam'] ."</option>\r\n");
+												}
+			    						 ?></select>
+			    					</td>
+			    				</tr>
+			    				<tr>
+			    					<td>Onderliggende data vanaf component:</td>
+			    					<td><input type="Checkbox" name="onderliggende_data" CHECKED></td>
+			    				</tr>
 			    			</table>
 	    				</td></tr>
 	    				<tr><td><iframe id="frame_gegevens" name="frame_gegevens" align="middle" marginwidth="0" marginheight="0" src="<?php echo($_SESSION['pagina']); ?>admin_gebruikersgroep/groep_gegevens.php?c=<?php echo($selected); ?>" width="450" height="195" ALLOWTRANSPARENCY frameborder="0" scrolling="auto"></iframe></td></tr>
diff --git a/support/tool/CRAFT/admin_gebruikersgroep/verwijderen.php b/support/tool/CRAFT/admin_gebruikersgroep/verwijderen.php
index e2ca7662ab5..c2ea39b8bef 100644
--- a/support/tool/CRAFT/admin_gebruikersgroep/verwijderen.php
+++ b/support/tool/CRAFT/admin_gebruikersgroep/verwijderen.php
@@ -28,9 +28,19 @@
 	
 				<?php
 	  			if (isset($_POST['verwijderen']) && $_POST['verwijderen'] == 1 && isset($_POST['confirmatie']) && $_POST['confirmatie'] == 'on') {
-						$query = "DELETE FROM gebruikers_groepen WHERE Groep_ID = " . $_POST['groep'];
-						if (mysql_query($query)) echo("De door u geselecteerde gebruikersgroep is uit het systeem verwijderd.<br>");
-						else("Er is iets mis gegaan met het verwijderen van de geselecteerde gebruikersgroep!! De gebruikersgroep is niet verwijderd!");
+						$errorlevel = 0;
+						//eerst de gebruikersgroeprechten verwijderen
+						$query = "DELETE FROM gebruikersgroeprechten WHERE Groep_ID = '". $_POST['groep'] ."'";
+						if (mysql_query($query)) {
+							$errorlevel = 1;
+							//hierna de gebruikersgroep verwijderen
+							$query = "DELETE FROM gebruikers_groepen WHERE Groep_ID = " . $_POST['groep'];
+							if (mysql_query($query)) {$errorlevel = 2;}
+						}	
+						
+						if ($errorlevel == 2) echo("De door u geselecteerde gebruikersgroep is uit het systeem verwijderd.<br>");
+						else if ($errorlevel == 0) echo ("Er is iets mis gegaan met het verwijderen van de geselecteerde gebruikersgroep!! De gebruikersgroep is niet verwijderd!<br>"); 
+						else if ($errorlevel == 1) echo ("Er is iets mis gegaan met het verwijderen van de geselecteerde gebruikersgroep!! De groepsrechten zijn echter wel verwijderd!<br>");
 						echo('<a href="'.$_SESSION['huidige_pagina'].'">Klik hier om terug te keren naar het verwijderen scherm of selecteer links een gebruikersgroep uit de treeview.</a>');
 	  			}
 	  			else {
diff --git a/support/tool/CRAFT/algemene_functionaliteit/comp_bewerken.php b/support/tool/CRAFT/algemene_functionaliteit/comp_bewerken.php
index 6b7c06e3fb3..217bf816ce9 100644
--- a/support/tool/CRAFT/algemene_functionaliteit/comp_bewerken.php
+++ b/support/tool/CRAFT/algemene_functionaliteit/comp_bewerken.php
@@ -115,7 +115,7 @@
 
 		//opslaan van het component
 		$query = "UPDATE comp_lijst SET Comp_Naam = '". htmlentities($_POST['comp_naam'], ENT_QUOTES) . "', Comp_Parent = '". $_POST['comp_nieuwe_parent'] . "', Laatste_Melding ='". $melding_id;
-		$query = $query . "', Comp_Locatie = '". $_POST['comp_locatie'] ."', Comp_Verantwoordelijke = '". $_POST['comp_verantwoordelijke'] . "'";
+		$query = $query . "', Comp_Locatie = '". $_POST['comp_locatie'] ."', Comp_Verantwoordelijke = '". $_POST['hidden_verantwoordelijke'] . "'";
 		
 		//de waarde voor de leverdatum aan de query toevoegen
 		if (isset($_POST['leverdatum']) && $_POST['leverdatum'] != '') {
@@ -230,20 +230,13 @@
 						?>
 					</select></td>
 				</tr>
-				<tr>
-					<td>Verantwoordelijke component:</td>
-					<td><select name="comp_verantwoordelijke">
-						<?php
-							$query2 = "SELECT Werknem_ID, inlognaam FROM gebruiker";
-							$result = mysql_query($query2);
-							while ($data = mysql_fetch_array($result)) {
-								echo("<option value=\"". $data['Werknem_ID'] ."\"");
-								if ($data['Werknem_ID'] == $row['Comp_Verantwoordelijke']) echo(" SELECTED");
-								echo(">". $data['inlognaam'] ."</option>\r\n");
-							}
-						?>
-					</select></td>
-				</tr>
+				<?php
+					if (isset($_POST['hidden_verantwoordelijke'])) 
+						$verantwoordelijke = $_POST['hidden_verantwoordelijke'];
+					else $verantwoordelijke = $row['Comp_Verantwoordelijke'];
+				?>
+ 				<tr><td>Verantwoordelijke:</td><td><iframe id="frame_contact" name="frame_contact" align="middle" marginwidth="0" marginheight="0" src="<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/type_verantwoordelijke.php?c=<?php echo($row['Comp_Type_ID'] . "&s=" . $verantwoordelijke);?>" width="300" height="26" ALLOWTRANSPARENCY frameborder="0" scrolling="auto"></iframe></td></tr>
+
 				<tr>
 					<td>Fabricant:</td>
 					<td><select name="fabricant">				    				
@@ -315,6 +308,7 @@
   					<input id="hidden_melding" name="hidden_melding" type="hidden" value="">
   					<input id="hidden_status" name="hidden_status" type="hidden" value="">
     				<input id="opslaan" name="opslaan" type="hidden" value="1">
+    				<input id="hidden_verantwoordelijke" name="hidden_verantwoordelijke" type="hidden" value="-1">
     				<input id="Voorgaande_Melding" name="Voorgaande_Melding" type="hidden" value="<?php echo($row['Laatste_Melding']); ?>">
     			</td>
     		</tr>
diff --git a/support/tool/CRAFT/algemene_functionaliteit/comp_toevoegen.php b/support/tool/CRAFT/algemene_functionaliteit/comp_toevoegen.php
index fcbe916a3cb..ef20d51dea7 100644
--- a/support/tool/CRAFT/algemene_functionaliteit/comp_toevoegen.php
+++ b/support/tool/CRAFT/algemene_functionaliteit/comp_toevoegen.php
@@ -1,4 +1,5 @@
 <?php
+		  require_once($_SESSION['pagina'] . 'algemene_functionaliteit/globale_functies.php');
 
 			//het valideren van de invoer, dus controleren of de ingevoerde gegevens opgeslagen mogen worden
 			function Valideer_Invoer() {
@@ -84,7 +85,7 @@
 				
 				//de waardes, welke opgeslagen moeten worden in de database
 				$query = $query . ") VALUES ('". htmlentities($_POST['hidden_naam'], ENT_QUOTES) ."', '". $_POST['comp_type'] ."', '". $_POST['hidden_type'] ."', '";
-				$query = $query .  $_POST['comp_locatie'] ."', '".  $_POST['comp_verantwoordelijke']."', '".$_POST['hidden_fabricant']."', '".$_POST['hidden_leverancier']."'";
+				$query = $query .  $_POST['comp_locatie'] ."', '".  $_POST['hidden_verantwoordelijke']."', '".$_POST['hidden_fabricant']."', '".$_POST['hidden_leverancier']."'";
 				    				
 				//de waarde voor de leverdatum aan de query toevoegen
 				if (isset($_POST['leverdatum']) && $_POST['leverdatum'] != '') {
@@ -112,8 +113,8 @@
 					$Comp_ID = mysql_insert_id();
 
 					//De eerste melding van het component toevoegen, dit is zeer waarschijnlijk het plaatsen van het component oid
-					$query = "INSERT INTO melding_lijst (Meld_Type_ID, Comp_Lijst_ID, Meld_Datum, Huidige_Status, Voorgaande_Melding, Prob_Beschrijving, Behandeld_Door, Gemeld_Door)";
-					$query = $query . "VALUES ('". $_POST['type_melding'] ."', '". $Comp_ID ."'";
+					$query = "INSERT INTO melding_lijst (Melding_Locatie, Meld_Type_ID, Comp_Lijst_ID, Meld_Datum, Huidige_Status, Voorgaande_Melding, Prob_Beschrijving, Behandeld_Door, Gemeld_Door)";
+					$query = $query . "VALUES ('". $_POST['comp_locatie'] ."', '". $_POST['type_melding'] ."', '". $Comp_ID ."'";
 
   				//het toevoegen van een statusdatum: eerst kijken of er 1 ingevuld is, anders de huidige datum gebruiken...
   				if (isset($_POST['statusdatum']) && $_POST['statusdatum'] != '') {
@@ -122,7 +123,7 @@
 					}
 					else $query = $query . ", NOW()";
 					$query = $query . ", '". $_POST['hidden_status'] ."', '1', '". htmlentities($_POST['hidden_melding'], ENT_QUOTES) ."', '". $_SESSION['gebr_id'] ."', '". $_SESSION['gebr_id'] ."') ";
-					
+										
 					//de melding is goed toegevoegd, dus nu een verwijzing naar de laatste melding bij het component voegen
 					if (mysql_query($query)) {
 						$errorLevel = 2;
@@ -150,7 +151,7 @@
   		<table>
   			<tr>
   				<td>Selecteer type om toe te voegen:</td>
-  				<td><select name="comp_type" id="comp_type" onchange="switchDocument(<?php if(isset($_POST['comp_naam'])){ echo("&n=". $_POST['hidden_naam']); } ?> );">
+  				<td><select name="comp_type" id="comp_type" onchange="switchDocument(<?php if(isset($_POST['comp_naam'])){ echo("'&n=". $_POST['hidden_naam']."'"); } else echo("''");  ?>, <?php if(isset($_POST['hidden_verantwoordelijke'])) echo("'".$_POST['hidden_verantwoordelijke']."'"); else echo("'-1'");?> );">
 		    	  <?php
 		    			if (isset($_POST['comp_type']))
 		    				$selected = $_POST['comp_type'];
@@ -167,26 +168,16 @@
 								$selected = $data['Comp_Type_ID'];
 		    			}
 		    			else $selected = 'SELECTED';
-		    			
-		    			$query = "SELECT Comp_Type, Type_Naam FROM comp_type WHERE Type_Parent IN (SELECT Comp_Type_ID FROM comp_lijst)";
-		    			$resultaat = mysql_query($query);
-		    			//$selected = 'SELECTED';
-					  	while ($data = mysql_fetch_array($resultaat)) {
-	  	  				echo('<option value="'.$data['Comp_Type'].'"');
-		  	  			
-	  	  				//kijken of het huidige record hetzelfde is als de geposte record,
-	  	  				//is dit het geval, dan dit record als de huidige selectie instellen
-	  	  				if ($data['Comp_Type'] == $selected || $selected == 'SELECTED')  {
-	  	  					echo(" SELECTED"); 
-	  	  					$selected = $data['Comp_Type'];
-	  	  				}
-		  	  			echo('>'. $data['Type_Naam'] .'</option>');
-					  	}
+
+	    				//Type ophalen uit gebruikersgroeprechten
+	    				$query = "SELECT Comp_Type_ID FROM gebruikersgroeprechten WHERE Groep_ID = '".$_SESSION['groep_id']."'";
+	    			  $resultaat = mysql_query($query);
+							$data = mysql_fetch_array($resultaat);
+
+							Vul_Component_Types_Select_Box($data[0], $selected, false);
 		    		?></select>
 		    	</td>
   			</tr>
-  			<tr>
-  			</tr>
   			<tr>
   				<td>Naam van het component:</td>
   				<td><iframe id="frame_naam" name="frame_naam" align="middle" marginwidth="0" marginheight="0" src="<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/comp_toevoegen_naam.php?c=<?php echo($selected); if(isset($_POST['hidden_naam'])){ echo("&n=".$_POST['hidden_naam']); } ?>" width="400" height="44" ALLOWTRANSPARENCY frameborder="0" scrolling="auto"></iframe>
@@ -240,20 +231,18 @@
   				?>	
  					</select></td>
   			</tr>
-  			<tr>
-  				<td>Verantwoordelijke:</td>
-  				<td><select name="comp_verantwoordelijke">
-  				<?php
-  					$query = "SELECT Werknem_ID, inlognaam FROM gebruiker";
+				<?php
+
+					if (isset($_POST['hidden_verantwoordelijke'])) 
+						$verantwoordelijke = $_POST['hidden_verantwoordelijke'];
+					else {
+  					$query = "SELECT Type_Verantwoordelijke FROM comp_type WHERE Comp_Type = '". $selected ."'";
 	    			$resultaat = mysql_query($query);
-				  	while ($data = mysql_fetch_array($resultaat)) {
-	  	  			echo('<option value="'.$data['Werknem_ID'].'"');
-	  	  			if ($_SESSION['gebr_id'] == $data['Werknem_ID']) echo(' SELECTED');
-	  	  			echo('>'. $data['inlognaam'] .'</option>');
-				  	}
-  				?>    					
-  				</select></td>
-  			</tr>
+				  	$data = mysql_fetch_array($resultaat);
+						$verantwoordelijke = $data[0];
+					}
+				?>
+ 				<tr><td>Verantwoordelijke:</td><td><iframe id="frame_contact" name="frame_contact" align="middle" marginwidth="0" marginheight="0" src="<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/type_verantwoordelijke.php?c=<?php echo($selected . "&s=" . $verantwoordelijke);?>" width="300" height="26" ALLOWTRANSPARENCY frameborder="0" scrolling="auto"></iframe></td></tr>
   			<tr>
   				<td>Fabricant contact:</td>
   				<td><iframe id="frame_fabricant" name="frame_fabricant" align="middle" marginwidth="0" marginheight="0" src="<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/comp_toevoegen_fabricant.php?c=<?php echo($selected); if(isset($_POST['hidden_naam'])){ echo("&n=".$_POST['hidden_naam']); } ?>" width="450" height="26" ALLOWTRANSPARENCY frameborder="0" scrolling="auto"></iframe>
@@ -281,7 +270,7 @@
   						<input id="hidden_aantal" name="hidden_aantal" type="hidden" value=""><input id="hidden_maximum" name="hidden_maximum" type="hidden" value="">
   						<input id="hidden_fabricant" name="hidden_fabricant" type="hidden" value=""><input id="hidden_leverancier" name="hidden_leverancier" type="hidden" value="">
     					<input id="hidden_melding" name="hidden_melding" type="hidden" value=""><input id="hidden_status" name="hidden_status" type="hidden" value=""></td>
-  				<td><a href="javascript:submitComponentToevoegen();">Toevoegen</a></td>
+  				<td><input name="hidden_verantwoordelijke" id="hidden_verantwoordelijke" type="hidden" value="-1"><a href="javascript:submitComponentToevoegen();">Toevoegen</a></td>
   			</tr>
   		</table>
   	</form>
diff --git a/support/tool/CRAFT/algemene_functionaliteit/comp_toevoegen_functies.php b/support/tool/CRAFT/algemene_functionaliteit/comp_toevoegen_functies.php
index b511e379f6f..239c18428b9 100644
--- a/support/tool/CRAFT/algemene_functionaliteit/comp_toevoegen_functies.php
+++ b/support/tool/CRAFT/algemene_functionaliteit/comp_toevoegen_functies.php
@@ -14,24 +14,28 @@ function SubmitComponentBewerken()
 {
 	var s = document.frames['frame_melding'].document.getElementById('sStatus').value;
 	var m = document.frames['frame_melding'].document.getElementById('sMelding').value;
+	var n = document.frames['frame_contact'].document.getElementById('sVerantwoordelijke').value;
 	
 	document.getElementById('hidden_melding').value = m;
 	document.getElementById('hidden_status').value = s;
+	document.getElementById('hidden_verantwoordelijke').value = n;
 	
 	document.theForm.submit();
 }
 
-function switchDocument(naam)
+function switchDocument(naam, verantwoordelijke)
 {
 	var y=document.getElementById('comp_type').value;
 	document.getElementById('frame_parent').src = "<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/comp_toevoegen_parent.php?c=" + y + naam;
 	document.getElementById('frame_naam').src = "<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/comp_toevoegen_naam.php?c=" + y + naam;	
 	document.getElementById('frame_fabricant').src = "<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/comp_toevoegen_fabricant.php?c=" + y + naam;	
 	document.getElementById('frame_leverancier').src = "<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/comp_toevoegen_leverancier.php?c=" + y + naam;	
+	document.getElementById('frame_contact').src = "<?php echo($_SESSION['pagina']); ?>algemene_functionaliteit/type_verantwoordelijke.php?c=" + y + "&s=" + verantwoordelijke;	
 }
 
 function submitComponentToevoegen() 
 {
+	var n = document.frames['frame_contact'].document.getElementById('sVerantwoordelijke').value;
 	var s = document.frames['frame_melding'].document.getElementById('sStatus').value;
 	var m = document.frames['frame_melding'].document.getElementById('sMelding').value;
 	var w = document.frames['frame_parent'].document.getElementById('sComp_Parent').value;
@@ -41,6 +45,7 @@ function submitComponentToevoegen()
 	
 	var aantal  = document.frames['frame_naam'].document.getElementById('sComp_Aantal').value;
 	var maximum = document.frames['frame_naam'].document.getElementById('sComp_Max').value;
+	document.getElementById('hidden_verantwoordelijke').value = n;
 	document.getElementById('hidden_type').value = w;
 	document.getElementById('hidden_naam').value = x;
 	document.getElementById('hidden_fabricant').value = y;
diff --git a/support/tool/CRAFT/algemene_functionaliteit/globale_functies.php b/support/tool/CRAFT/algemene_functionaliteit/globale_functies.php
new file mode 100644
index 00000000000..eefb7c29936
--- /dev/null
+++ b/support/tool/CRAFT/algemene_functionaliteit/globale_functies.php
@@ -0,0 +1,88 @@
+<?php
+	
+	//functie welke het geheel van het vullen van ene select lijst met component types vereenvoudigt
+	//hierdoor hoeft er geen lange code meer geschreven te worden
+	//$type_selectie wordt als call by reference variable meegegeven, zodat de geselecteerde type teruggegeven kan worden
+	function Vul_Component_Types_Select_Box($begin_type, &$type_selectie, $toplevel) {
+		//deze plaatsen en daarna dit type als parent gebruiken en zo itereren
+		$query = 'SELECT Comp_Type, Type_Naam FROM comp_type WHERE Comp_Type = '.$begin_type;
+	  $resultaat = mysql_query($query);
+		$data = mysql_fetch_array($resultaat);
+		if (($toplevel) || (!$toplevel && $begin_type > 1) ) {
+			echo('<option value="'. $data['Comp_Type'] .'"');
+			if(isset($type_selectie) && $data['Comp_Type'] == $type_selectie || $type_selectie == 'SELECTED') {
+				echo('SELECTED');
+				if ($type_selectie == 'SELECTED') $type_selectie = $data['Comp_Type'];
+			}
+			echo('>'. $data['Type_Naam'] .'</option>'); 
+		}
+		echo(Component_Types($data['Comp_Type'], $type_selectie));
+	}
+	
+	//functie om alle type componenten uit de database te lezen en deze hierarchisch op te slaan 
+	//voor gebruik in een <select></select> lijst
+  function Component_Types($parent, &$selectie) {
+  	$Uitkomst = '';
+  	$query = 'SELECT Comp_Type, Type_Naam FROM comp_type WHERE Type_Parent = '.$parent;
+	  $resultaat = mysql_query($query);
+  	while ($huidige_level = mysql_fetch_array($resultaat)) {
+
+  		$Uitkomst = $Uitkomst . '<option value="'. $huidige_level['Comp_Type'] .'"';
+  		if(isset($selectie) && ($huidige_level['Comp_Type'] == $selectie || $selectie == 'SELECTED')) {
+  			$Uitkomst = $Uitkomst . 'SELECTED';
+  			$selectie = $huidige_level['Comp_Type'];
+  		}
+  		$Uitkomst = $Uitkomst . '>'. $huidige_level['Type_Naam'] .'</option>';
+
+	  	$num_rows = mysql_num_rows(mysql_query($query));		
+	  	if ($num_rows > 0) $Uitkomst = $Uitkomst . Component_Types($huidige_level['Comp_Type'], $selectie);
+  	}  
+  	return $Uitkomst;	
+  }
+
+	//Recursieve functie welke bekijkt (en teruggeeft) of het meegegeven type component in een structuur voorkomt
+  //$aant is een variabele die als "call by reference" is meegegeven, dit moet gedaan worden omdat bij normaal returnen de waarde wordt overschreven
+  function Check_Comp_Type($parent, $invoer, $aant) {
+  	//alle component types selecteren, welke het meegegeven type als parent hebben
+  	$query = 'SELECT Comp_Type, Type_Naam FROM comp_type WHERE Type_Parent = '.$parent;
+	  $resultaat = mysql_query($query);
+  	//zolang er childs van het meegegeven type zijn, dan...
+  	while ($huidige_level = mysql_fetch_array($resultaat)) {
+			//als de child het gezochte record is, dan $aant 1 verhogen
+			if($huidige_level['Comp_Type'] == $invoer) $aant = $aant + 1;
+
+			//als het child niet het gevonden record is, dan een niveau dieper kijken
+			else {
+		  	//kijken of er childs zijn
+		  	$num_rows = mysql_num_rows(mysql_query($query));
+		  	//er zijn childs, dus een niveau dieper duiken
+		  	if ($num_rows > 0) Check_Comp_Type($huidige_level['Comp_Type'], $invoer, &$aant);
+		  }
+  	}  
+  }
+	
+  //Functie welke de groepen retouneert (in een array) welke access hebben tot het meegegeven componentType
+  function Check_groepen($Gezocht_Component) {
+	  $Groepen = array();
+	  
+		//elk record in de gebruikersgroeprechten tabel langs om te evalueren
+	  $query = 'SELECT * FROM gebruikersgroeprechten';
+	  $rest = mysql_query($query);
+	 	//per record bekijken of de groep toegang heeft tot het componenttype
+	 	while ($data = mysql_fetch_array($rest)) {
+			//het gezochte type is al gevonden, omdat deze in de gebruikersgroeprechten tabel staat.
+			if($data['Comp_Type_ID'] == $Gezocht_Component) array_push($Groepen, $data['Groep_ID']);
+			else {
+				$aantal = 0;
+				if ($data['onderliggende_Data'] == 1) {
+					//De componenttypestructuur maken en kijken of het gezochte type in de structuur voorkomt
+					Check_Comp_Type($data['Comp_Type_ID'], $Gezocht_Component, &$aantal);
+					//gevonden!
+					if ($aantal > 0) array_push($Groepen, $data['Groep_ID']);
+				}
+			}
+		}
+  	//de (gevonden) groepen retourneren
+  	return $Groepen;
+	}
+?>
\ No newline at end of file
diff --git a/support/tool/CRAFT/algemene_functionaliteit/type_verantwoordelijke.php b/support/tool/CRAFT/algemene_functionaliteit/type_verantwoordelijke.php
new file mode 100644
index 00000000000..9c77f369163
--- /dev/null
+++ b/support/tool/CRAFT/algemene_functionaliteit/type_verantwoordelijke.php
@@ -0,0 +1,37 @@
+<html>
+	<head>
+	</head>
+	<body bgcolor="#B3CCE6">
+		<?php
+			include_once("../includes/vars.php");
+			include_once("../algemene_functionaliteit/globale_functies.php");
+			
+			if (isset($_GET['c']) && $_GET['c'] != 0) {		
+				$Collectie = Check_groepen($_GET['c']);
+				echo("<form name=\"fTest\">\r\n");
+				
+				if ($_GET['s'] == -1) {
+					$query = "SELECT Type_verantwoordelijke FROM comp_type WHERE Comp_Type = '". $_GET['c'] ."'";
+					$resultaat = mysql_query($query);
+					$data = mysql_fetch_array($resultaat);
+					$selectie = $data[0];
+				}
+				else $selectie = $_GET['s'];
+				
+				echo("<select id=\"sVerantwoordelijke\" name=\"sComp_Fabricant\">\r\n");
+
+				for ($i = 0; $i < count($Collectie); $i++){
+				  $query = "SELECT Werknem_ID, inlognaam FROM gebruiker WHERE Groep_ID = '". $Collectie[$i] ."'";
+					$resultaat = mysql_query($query);
+					while ($data = mysql_fetch_array($resultaat)) {
+						echo("<option value=\"". $data['Werknem_ID'] ."\"");
+						if ($selectie == $data['Werknem_ID']) echo(" SELECTED");
+						echo(">". $data['inlognaam'] ."</option>\r\n");
+					}
+				}
+				echo("</select></form>");			
+			}
+		?>	
+		</select>
+	</body>
+</html>
\ No newline at end of file
diff --git a/support/tool/CRAFT/documentatie/changes.doc b/support/tool/CRAFT/documentatie/changes.doc
index 5e581bf9caff615a05c372d4854d6055bc0b18e3..d789fd21f22bedd2faf216507c7c1b95fb247f92 100644
GIT binary patch
delta 2872
zcmbW3e@s(X6vxjkg#w!j6cEP`-|$ByOhhOIa0+1tP=>!US)x%==#zFWEtZ0D+0vTK
zj6^qeFJ_&yQRm$L5S{vFbjh~JekkaiCPpOcCegWUK{H*JOtTsHJ$-$Eh}p73KKI<8
z=bU@*xsL`0L|{N1$}otKl4+P_2*oSgj9H4y(BbbgQCP;($rw3-@u#7u8nt<Q5{U`~
zQGaCJ|J4%g7>KGU8x@xSqNifsg(M<7R?bNwYDBvV>r<4a26KEuB*cCbnyK0U7FkuI
z@^@60U!TS?u;}fTu$zkZ?{VSo$28Adgo7CNs?8hS=8cXN-Cm?m86TaKqx*c)TwYU#
z1zpOZak1Z$psm$ceHXbR>BPAM>w8WiCQbA!osQL==<1(96t53L>)zHP!hE#(YFVyh
z-ZJPAPMGB&)@MU=8z~V*mIS5Sw5U=a4^Kj&@0{big|;4_uJxVkZQRo~<Mb!q6JIO~
z?g`VP&vO*0O(`8-uT9X~di;9(F|DMVrcC<@xf6>M`w)xuq#mtf)h1KOpnBpzi}Opl
zl2>+FeGXZ2TdiK{1y4(B!;79K?ip7tH+tJ0PTAX5?e)m5%j71zPj*W)=Sdy1%O?3e
za<kll!d51E+&0<kax^!~s5H#C`mA|UjYIaf$g;G~<F)xDtJU4i^I^cVMzXqGGHSA2
z_DS}3ht1K90302%wOxAE0XK~tjH8XG+N?gw<8ewh`B5)Y#9W)yC_C}zmS&;0PWC!|
zQi}(HgdNN7ym4x`$tL_UM76O*^}q&X5C9v%eJ~9-kOvAt1*ir!;4ffBVqFGTz&lS7
z9RVuXgm1@HuxcF9Zm<V9#}m0g67s|h?%lrm!|jV_zs>pL=z)D_L)+g9ZG3%WdyBkE
zUS4;vE_}!1Q|;x8tkhCtHnsuvz0`WqkVy!5Ap+x|^&mMQ4q~M9kxsY5@g=YoN!|-i
z0}dh?bO9T(t`CHg)YsA^p=_BnS=nt&R1QvB8b6U8hVcD)fb+U5Rv3*WgwR*lVfFrq
zmDRA&02)CPV5>X8MZnetjF`brzy|N#`DLL0JpOu4^c+8M`~$qNJC(^P_Kf-gO0}0b
zw+wBa(97*ny*QvpW}&@##zbXJ=6aEEB&#$<R48SIbtpRvH~T|4pJ<{CKH7&6)(b%`
z*Z}T>8hl2s;HjulxI}zduYx^T<iruUz*caHHJ(y0I1S9Whh)$NY`BL$unWG@V9$_`
zf+ax8IZL`AWzdpds&(mQkc33}k?&VP@71(6hJaXLqr8Z1tSlPa1_IUQX*yDBHV`xm
zY<v>7aVA{ODb7;n7H2%84Tj5L1=NVJBU5;qvaPtNp0_+KK{6otNINjrn7*;G#`KMy
zHYq*D(_aaMO^<b!wVgvwhz;Ue!ut8aJkx?vW4Jn9#K<vr772!wgqJ7#Mc68Gmqj1Z
zT8IP(#yQS;ipwOtVA3A~UieU*e<iT+KdJ>_30MwRfYrbY)`2%bCy?N18psiTqM4{z
zKnZ9CZQwe%31%W*3vhz9;B)X5;Pku(E@PiRf(O8W^Y{jw1lPa~FbIAFMx<pD=mp<{
zbfjkvsGfo1CD04b0?yl8U^}+^KG+#ym-1|hRhd^3+himYPF}nJgV@XA5&L<7kRO7*
z2yGvj4A(iJ8%cQv%*J_Iz*}GoxB&XVUYPp`q`(_qjdHhScHzfpbGmRJN5QYjgtt5F
z{jnI;m8FYg%8C#Wd=j=vHvx+U_zlr?(iczoIMCO1lgO5uOGis{DbDm9{aTPunYGH*
z^2#WDOO(tCPk{)Cq1`XJ5i|;92gkvpYeOV&h(9Y!)GsUE6@`CnI#$JVEVKjZvK^-p
zi}Mux)j?QM31;X=d(CQRWrK(b!bUJ&>5iVK=FTq{N2>BgTu}j078ax_neMc?s8j&T
zh;jc6yW#qwD;xWcof6@C#i#rDM-XxW{`l95=81J|oceZk_Jl<C&TWo{bx`fD-=7%M
Vs{D!HPpa1*BgA2Kz2nW8e*m^U*!che

delta 2551
zcmbW2eN5F=7{|}=a^VUJTu>NzfvzYH&<c5rYmtCll(&l_QFEESIW9~tOUq3+cTuyN
zD_?fh_(NLFY11;9H$%;q%*a~VEPI=*!Zup1S~S;kOr_6r@BM-EWwjpmIp=rIdCv2E
zf9E;BOXr}`IcW5xS&UqrZn@i%8>4qvGxSQ!8h^G;1?^V-6jttIeG>f)Yshb6f>Qa0
zQcdA~|F_>_SIVMPm3ol}vH#M~z^^n>DK9(sq3&_UJ?u}?i!GC5>|u#bHipTW|E8?R
zuCGL7_)Ry_AZCvHiJQ#W8y%d!sTaRu4q`lO$nVCnyy*32#tYBsxX7FwGw1DmWzSqT
zWa?k74gQ1ip}pp=h2avZmaD%_?LUL2keMajGC`@GOnKNBV=mI0*#=OU$5=`$_7HxJ
z^tPnnP-T!kJ3QvlBh<lo-DmSunCl_0@skjJgG`$G%-(!+b4;CfSZCh0PEuGg>V#Wl
z6)G}$n(i9kA966qrhapLQ?DJi=~>nY-X?r`%}ae_pB;F@)@||EHOwz>s&+4NR#ewG
z>)myg)t&`zkF#OXlDhJ8`g-TmhRO!Fr_$|oGhgAx#o6R`);3nxh+{KO<J%Uw8=c{Z
zP8KWOjSJj$)it&5X+evPeXzA{U299LuVsbLxu&CIRlpu|Alh<QY@pBfjp2_{s)ItF
zfPOd+U&0?S405<Tp&MR<!|)FDLK{^-2h|gmssV!!dKzTH2-L<Z^(n;1QAD@^mxqVG
z`)cTH|9eLd?d$H}^-}8QUF)A&-@anm1Iy||$8NTP1If*XU&SSR-*o(`+80i?t_Fuf
zun%D(`Z$PiQ>cg%A=e8q6AzGl6sovIqfo*%aKT2{1P*TLdC28=V8qm*^xRatE=`RM
zw5KE(y4#wl-%4E^lOiI-@fv4%$?#YV!;qJg92>5Sd6MU;#FW@);WPLgz5vOULkJ0T
zdHC|rgWsO}=oEj)4iVFCOq!D9O=})h$zH!DQa_izcAA{T4&U;zlaTQ|&tqfbxFZ>^
zBm>0-^|UV(yy(xRHk?SBQWMlDCU50~4mb`cU>Ll7+PzT270%?xZUky0sTps10R~_c
zs<_^xP{NVBU?Xe-2T9JuZ1SZL&yq)@l-^dDpdT$xgIuFSA1-vzep2XgN&a!`QifCI
z@yjdLd8;*Kh1T>PMH1uQqFcv6V#qJlhucv6@R!-yp|=HNjE36`eYH56QgoH!9?~r;
z^k`9VMZZ#LCu7KaN%1|FifBDpJX7y3w(F7NNoMa?Hn|dV2c({ygW}#R^O|ra$Da8v
zf_8xR7`zW3z{hYFF2YZ63I2v{6lN!M!5-KPufq@UBP{0Rn*20-U@u&NL72s{%>k*Z
z2db%RJ*<SMpnwV&fd?94DLewJsptkMp`xX*1-d}K`qPlf+hs#e7^%8GRnoSs1-0#v
zjw&aZ%2y)B2Z@N70$WMm1$ms<TzD1s!WFm%71YWNiHJyoYb2em{jNLpc9(S?8?j{O
z<qFERlXVdzLToBBh?Q3CCb5AbS3^{OK1&ja2x<t#<^bQC`ta!(b-F%PJ()a99d*r8
z(YD#@mwfFjtI%(k`SK$=jj>lRYdC2bDm0c5qC(8VcONwQ0=Ea6%3n4LO4@q&%UqsX
z$JKb2^Vv^!1HB?8!p^n1VKy<4F@L!cl|_uK7~L0nf1s~&o}tg#b|0zAGolMil*(XJ
zica^Xl=4sp>f!FcE)qNV+%vHG>)ta)@VWEd@8y3u$4^fAXB)~U{r(AotqU^a6GVZG
hMUnJbfxhN95~9i$&iQ?6e_)k2$}k*(wXM%b{R2I0f0h6M

diff --git a/support/tool/CRAFT/includes/functies.php b/support/tool/CRAFT/includes/functies.php
index 6a5c151c62f..bfa763da90e 100644
--- a/support/tool/CRAFT/includes/functies.php
+++ b/support/tool/CRAFT/includes/functies.php
@@ -52,12 +52,11 @@
       ?>
    	}	
   	else if (optie ==4) {
-      <?php 
-      	echo("document.getElementById('suboptie1').innerHTML=\"Statistieken overzicht\";");
-      	if($_SESSION['toevoegen'] == 1)   echo("document.getElementById('suboptie2').innerHTML=\"Statistieken toevoegen\";");
-      	if($_SESSION['bewerken'] == 1)    echo("document.getElementById('suboptie3').innerHTML=\"Statistieken bewerken\";");
-      	if($_SESSION['verwijderen'] == 1) echo("document.getElementById('suboptie4').innerHTML=\"Statistieken verwijderen\";");
-      ?>
+    	document.getElementById('suboptie1').innerHTML="Algemeen";
+    	document.getElementById('suboptie2').innerHTML="Type componenten";
+    	document.getElementById('suboptie3').innerHTML="Componenten";
+    	document.getElementById('suboptie4').innerHTML="Type meldingen";
+    	document.getElementById('suboptie5').innerHTML="Meldingen";
   	}	
   	else if (optie ==5) {
   	}	
diff --git a/support/tool/CRAFT/includes/tree_items.js b/support/tool/CRAFT/includes/tree_items.js
deleted file mode 100644
index 845c370ecb5..00000000000
--- a/support/tool/CRAFT/includes/tree_items.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var TREE_ITEMS = [
-	['Home', 'http://www.softcomplex.com/index.html',
-		['Services', 'http://www.softcomplex.com/services.html'],
-		['Download', 'http://www.softcomplex.com/download.html'],
-		['Order',    'http://www.softcomplex.com/order.html'],
-		['Support',  'http://www.softcomplex.com/support.html'],
-	],
-	['Level 0 Item 1', null,
-		['Level 1 Item 0', 'links.html'],
-		['Level 1 Item 1', 0,
-			['Level 2 Item 0'],
-			['Level 2 Item 1', 0],
-		],
-		['Level 1 Item 2'],
-		['Level 1 Item 3'],
-	]
-];
\ No newline at end of file
diff --git a/support/tool/CRAFT/includes/tree_items.php b/support/tool/CRAFT/includes/tree_items.php
index ca0bbf19f70..94b8632b5d2 100644
--- a/support/tool/CRAFT/includes/tree_items.php
+++ b/support/tool/CRAFT/includes/tree_items.php
@@ -93,7 +93,9 @@
   //functie om alle componenten uit de database te lezen en deze hierarchisch op te slaan
   function Comp_Lijst($parent) {
   	$Collectie = array();
-  	$query = 'SELECT a.Comp_Lijst_ID, a.Comp_Naam FROM comp_lijst a, comp_type b WHERE a.Comp_Type_ID = b.Comp_Type AND a.Comp_Parent = '.$parent;
+  	$query = 'SELECT Comp_Lijst_ID, Comp_Naam FROM comp_lijst WHERE Comp_Parent = '.$parent;
+
+  	//$query = 'SELECT a.Comp_Lijst_ID, a.Comp_Naam FROM comp_lijst a, comp_type b WHERE a.Comp_Type_ID = b.Comp_Type AND a.Comp_Parent = '.$parent;
 	  $resultaat = mysql_query($query);
   	while ($huidige_level = mysql_fetch_array($resultaat)) {
   		$Comp_Type = new Type_Object();
@@ -125,7 +127,9 @@
   function Recursieve_Uitlees_Methode($type_object) {
   	$uitkomst = '';
   	for ($i = 0; $i < count($type_object);$i++) {
-			$uitkomst = $uitkomst . "['". $type_object[$i]->Get_Naam()."', '". $_SESSION['huidige_pagina']. "&c=". $type_object[$i]->Get_ID() ."'";
+			$uitkomst = $uitkomst . "['". $type_object[$i]->Get_Naam()."', ";
+			$uitkomst = $uitkomst . "'". $_SESSION['huidige_pagina']. "&c=". $type_object[$i]->Get_ID() ."'";
+
   		$temp = $type_object[$i]->Get_Childarray();
 			if (count($temp) > 0) $uitkomst = $uitkomst . ", ";
   		$uitkomst = $uitkomst . Recursieve_Uitlees_Methode($temp);
@@ -134,35 +138,94 @@
   	return $uitkomst;
   }
   
+  //Functie welke bepaalt wat voor componenten zichtbaar zijn voor de ingelogde gebruiker
+  function Bepaal_Comp_Lijst() {
+  	$Collectie = array();
+
+  	$query = "SELECT Comp_Type FROM comp_type WHERE Comp_Type IN (SELECT Comp_Type_ID FROM gebruikersgroeprechten WHERE Groep_ID = '". $_SESSION['groep_id'] ."')";
+  	$result = mysql_query($query);
+		$row = mysql_fetch_array($result);
+		if ($row['Comp_Type'] != 1) {
+	  	$query = "SELECT Comp_Lijst_ID, Comp_Naam FROM comp_lijst WHERE Comp_Type_ID = '".$row['Comp_Type']."'";
+  		$resultaat = mysql_query($query);
+    	while ($data = mysql_fetch_array($resultaat)) {
+				$Comp_Type = new Type_Object();
+				$Comp_Type->Set_ID($data['Comp_Lijst_ID'],$data['Comp_Naam']);
+		  	$num_rows = mysql_num_rows(mysql_query($query));		
+		  	if ($num_rows > 0) $Comp_Type->Add(Comp_Lijst($data['Comp_Lijst_ID']));
+	  		array_push($Collectie, $Comp_Type);
+	  		$Comp_Type = NULL;
+    	}
+	  }
+	  else $Collectie = Comp_Lijst(1);
+	  return $Collectie;
+  }
+  
+  //Functie welke bepaalt wat voor types componenten zichtbaar zijn voor de ingelogde gebruiker
+  function Bepaal_Comp_Type_Lijst() {
+  	$Collectie = array();
+
+  	$query = "SELECT Comp_Type, Type_Naam FROM comp_type WHERE Comp_Type IN (SELECT Comp_Type_ID FROM gebruikersgroeprechten WHERE Groep_ID = '". $_SESSION['groep_id'] ."')";
+  	$result = mysql_query($query);
+		$row = mysql_fetch_array($result);
+
+		if ($row['Comp_Type'] != 1) {
+			$Comp_Type = new Type_Object();
+			$Comp_Type->Set_ID($row['Comp_Type'],$row['Type_Naam']);
+	  	$query = 'SELECT Comp_Type, Type_Naam FROM comp_type WHERE Type_Parent = '.$row['Comp_Type'];
+	  	$num_rows = mysql_num_rows(mysql_query($query));		
+	  	if ($num_rows > 0) $Comp_Type->Add(Comp_Type_Lijst($row['Comp_Type']));
+	  	array_push($Collectie, $Comp_Type);
+	  	$Comp_Type = NULL;
+	  }
+	  else $Collectie = Comp_Type_Lijst(1);
+	  return $Collectie;
+  }
+  
   
   $link = mysql_connect("localhost", "root", "root") or die("Kan niet verbinden: " . mysql_error());
   mysql_select_db('LOFAR-CRAFT', $link) or die('Could not select database.');
   $query = 'SELECT Comp_Type, Type_Naam FROM comp_type WHERE Type_Parent = 1';
   $rest = mysql_query($query);
   
-  if ($_SESSION['admin_deel'] == 1)      $Types_Objecten = Comp_Type_Lijst(1);
-  else if ($_SESSION['admin_deel'] == 2) $Types_Objecten = Comp_Lijst(1);
+  //Component types
+  if ($_SESSION['admin_deel'] == 1)      $Types_Objecten = Bepaal_Comp_Type_Lijst();
+  //componenten
+  else if ($_SESSION['admin_deel'] == 2) $Types_Objecten = Bepaal_Comp_Lijst();
+  //type meldingen
   else if ($_SESSION['admin_deel'] == 3) $Types_Objecten = Melding_Type_Lijst();
-	else if ($_SESSION['admin_deel'] == 4) $Types_Objecten = Comp_Lijst(1);
+	//meldingen
+	else if ($_SESSION['admin_deel'] == 4) $Types_Objecten = Bepaal_Comp_Lijst();
+	//gebruikersgroepen
 	else if ($_SESSION['admin_deel'] == 5) $Types_Objecten = Gebruikersgroepen_Lijst(1);
+	//gebruikers
 	else if ($_SESSION['admin_deel'] == 6) $Types_Objecten = Gebruikers_Lijst();
+	//contacten
 	else if ($_SESSION['admin_deel'] == 7) $Types_Objecten = Contacten_Lijst(1);
+	//Locaties
 	else if ($_SESSION['admin_deel'] == 8) $Types_Objecten = Locaties_Lijst();
+  //Het admin scherm is niet geselecteerd...
   else if ($_SESSION['admin_deel'] == 0) {
+  	//componenten
   	if ($_SESSION['main_deel'] == 2) {
-  		if ($_SESSION['type_overzicht'] == 1) 		 $Types_Objecten = Comp_Lijst(1);
-  		else if ($_SESSION['type_overzicht'] == 2) $Types_Objecten = Comp_Type_Lijst(1);
+  		if ($_SESSION['type_overzicht'] == 1) 		 $Types_Objecten = Bepaal_Comp_Lijst();
+  		else if ($_SESSION['type_overzicht'] == 2) $Types_Objecten = Bepaal_Comp_Type_Lijst();
   	}
+  	//meldingen
   	else if ($_SESSION['main_deel'] == 3) {
-  		if ($_SESSION['type_overzicht'] == 1) 		 $Types_Objecten = Comp_Lijst(1);
+  		if ($_SESSION['type_overzicht'] == 1) 		 $Types_Objecten = Bepaal_Comp_Lijst();
   		else if ($_SESSION['type_overzicht'] == 2) $Types_Objecten = Melding_Type_Lijst();
   	}
-  	
+  	//statistieken
+  	else if ($_SESSION['main_deel'] == 4) {
+  		if ($_SESSION['type_overzicht'] == 1) 		 $Types_Objecten = Bepaal_Comp_Type_Lijst();
+  		else if ($_SESSION['type_overzicht'] == 2) $Types_Objecten = Bepaal_Comp_Lijst();
+  		else if ($_SESSION['type_overzicht'] == 3) $Types_Objecten = Melding_Type_Lijst();
+  	}
   }
-	echo ("var TREE_ITEMS = [");
-	
+  
+	echo ("var TREE_ITEMS = [");	
 	echo(Recursieve_Uitlees_Methode($Types_Objecten));
-	
 	echo ("];");
 
   mysql_close($link);  
diff --git a/support/tool/CRAFT/includes/type_object.php b/support/tool/CRAFT/includes/type_object.php
index 43c03e8747d..a391f24705b 100644
--- a/support/tool/CRAFT/includes/type_object.php
+++ b/support/tool/CRAFT/includes/type_object.php
@@ -18,7 +18,7 @@
 		function Get_ID() {
 			return $this->comp_id;
 		}
-		
+
 		function Get_Childarray() {
 			return $this->Childarray;
 		}
diff --git a/support/tool/CRAFT/main.php b/support/tool/CRAFT/main.php
index 2a4488a276f..e812f0c6e71 100644
--- a/support/tool/CRAFT/main.php
+++ b/support/tool/CRAFT/main.php
@@ -49,8 +49,24 @@
     			else 
 						include($_SESSION['pagina'] . 'main_meldingen/overzicht.php');
     		}
-    		//include ($_SESSION['pagina'] .'main/meldingen.php');
-    		else if ($pagina == 4) include ($_SESSION['pagina'] .'main/statistieken.php');
+    		//statistieken
+    		else if ($pagina == 4) {
+    			//Type Componenten
+					if (isset($_GET['s']) && $_GET['s'] == 2)
+						include($_SESSION['pagina'] . 'main_statistieken/type_componenten.php');
+					//componenten 
+					else if (isset($_GET['s']) && $_GET['s'] == 3)
+						include($_SESSION['pagina'] . 'main_statistieken/componenten.php');
+					//Type Meldingen 
+					else if (isset($_GET['s']) && $_GET['s'] == 4)
+						include($_SESSION['pagina'] . 'main_statistieken/type_meldingen.php');
+					//meldingen
+					else if (isset($_GET['s']) && $_GET['s'] == 5)
+						include($_SESSION['pagina'] . 'main_statistieken/meldingen.php');    			
+    			//algemene statistieken
+    			else 
+						include($_SESSION['pagina'] . 'main_statistieken/algemeen.php');
+    		}
     		else if ($pagina == 5) include ($_SESSION['pagina'] .'main/instellingen.php');
     	?>
 	</div> 
diff --git a/support/tool/CRAFT/main/statistieken.php b/support/tool/CRAFT/main/statistieken.php
deleted file mode 100644
index 8835261b452..00000000000
--- a/support/tool/CRAFT/main/statistieken.php
+++ /dev/null
@@ -1 +0,0 @@
-Statistieken
\ No newline at end of file
diff --git a/support/tool/CRAFT/main_componenten/bewerken.php b/support/tool/CRAFT/main_componenten/bewerken.php
index 96ace0acb36..e97b52d541b 100644
--- a/support/tool/CRAFT/main_componenten/bewerken.php
+++ b/support/tool/CRAFT/main_componenten/bewerken.php
@@ -1,6 +1,7 @@
 <?php	
 	if(isset($_SESSION['main_deel'])){
 		$_SESSION['main_deel'] = 2;
+		$_SESSION['type_overzicht'] = 1;
 	  $_SESSION['huidige_pagina'] = $_SESSION['pagina'] . 'main.php?p='.$_SESSION['main_deel'].'&s=3';
 	  
 	  require_once($_SESSION['pagina'] . 'includes/login_funcs.php');
diff --git a/support/tool/CRAFT/main_statistieken/algemeen.php b/support/tool/CRAFT/main_statistieken/algemeen.php
new file mode 100644
index 00000000000..fd06e74d536
--- /dev/null
+++ b/support/tool/CRAFT/main_statistieken/algemeen.php
@@ -0,0 +1,42 @@
+<?php	
+	if(isset($_SESSION['main_deel'])){
+		$_SESSION['main_deel'] = 4;
+	  $_SESSION['huidige_pagina'] = $_SESSION['pagina'] . 'main.php?p='.$_SESSION['main_deel'].'&s=1';
+	    
+	  require_once($_SESSION['pagina'] . 'includes/login_funcs.php');
+
+	  //controleren of er iemand ingelogd is...
+	  if ($LOGGED_IN = user_isloggedin()) {
+	  	
+	  	?>
+	    <div id="rechterdeel">
+
+	    	<h2>Algemene statistieken:</h2>
+	    		<table>
+	    			<tr>
+	    				<td>Aantal faciliteiten:</td><td></td>
+	    			</tr>
+	    			<tr>
+	    				<td>Gemiddeld aantal componenten per faciliteit:</td><td></td>
+	    			</tr>
+	    			<tr>
+	    				<td>Gemiddeld aantal niveaus per faciliteit:</td><td></td>
+	    			</tr>
+	    			<tr>
+	    				<td></td><td></td>
+	    			</tr>
+	    		</table>
+	    	Meeste 	componenten<br>
+				Faciliteit met de minste type componenten<br>
+				Aantal meldingen: 
+				Gemiddelde aantal meldingen per faciliteit
+				
+				
+
+	    </div>	
+	<?php  
+	      }
+		//niemand ingelogt, dus bezoeker naar de inlogpagina sturen
+		else header("Location: index.php");  
+	}
+?> 
diff --git a/support/tool/CRAFT/main_statistieken/componenten.php b/support/tool/CRAFT/main_statistieken/componenten.php
new file mode 100644
index 00000000000..b713b678f70
--- /dev/null
+++ b/support/tool/CRAFT/main_statistieken/componenten.php
@@ -0,0 +1,142 @@
+<?php	
+	if(isset($_SESSION['main_deel'])){
+		$_SESSION['main_deel'] = 4;
+	  $_SESSION['huidige_pagina'] = $_SESSION['pagina'] . 'main.php?p='.$_SESSION['main_deel'].'&s=3';
+	  $_SESSION['type_overzicht'] = 2;
+
+	  require_once($_SESSION['pagina'] . 'includes/login_funcs.php');
+	  include("status_object.php");
+		date_default_timezone_set ("Europe/Amsterdam");
+
+	  $Objecten_Array = array();
+
+		function zet_timestamp_om($timestamp) {
+			//365 (31536000)
+			if ($timestamp > 31536000) 
+				return (round($timestamp / 31536000 ,2) . " jaren");
+			//24 (86400)
+			else if ($timestamp > 86400)
+				return (round($timestamp / 86400 ,2) . " dagen");
+			//60 (3600)
+			else if ($timestamp > 3600)
+				return (round($timestamp / 3600 ,2) . " uren");
+			//60
+			else if ($timestamp > 60)
+				return (round($timestamp / 60 ,2) . " minuten");		
+			else if ($timestamp == 0)
+				return ("0 minuten");
+		}
+
+
+		function zet_datum_om($datum_tijd) {
+			//splitten op de spatie (formaat is als volgt: 2007-08-26 12:01:56)
+			$gedeeldveld=split(" ",$datum_tijd);
+			//datum veld opdelen zodat de jaar, maand en dagvelden makkelijk te benaderen zijn
+			$datum = split("-",$gedeeldveld[0]);
+			//tijd veld opdelen zodat de uren, minuten en secondevelden makkelijk te benaderen zijn
+			$tijd = split(":",$gedeeldveld[1]);
+			$test = mktime($tijd[0], $tijd[1], $tijd[2], $datum[1], $datum[2], $datum[0], -1);
+			return $test;
+		}
+
+
+	  //controleren of er iemand ingelogd is...
+	  if ($LOGGED_IN = user_isloggedin()) {
+	  	
+	  	?>
+	  	<div id="linkerdeel">
+	  		<?php	
+	  			echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree.js\"></script>");
+					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_items.php\"></script>");
+					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_tpl.js\"></script>");
+	  		?>
+				<script language="JavaScript">
+				<!--//
+		 			new tree (TREE_ITEMS, TREE_TPL);
+	   		//-->
+				</script> 
+			
+			</div>
+	    <div id="rechterdeel">
+
+	    	<h2>Componenten</h2>
+
+				<?php
+//				De totale tijd van een component in een bepaalde status<br>
+//				meldingen van componenten onder dit component<br>
+
+					if (isset($_GET['c'])) {
+						$query = "SELECT Comp_Naam, Laatste_Melding FROM comp_lijst WHERE Comp_Lijst_ID = '".$_GET['c']."'";
+					  $res = mysql_query($query);
+						$data = mysql_fetch_array($res);
+						
+						echo("U heeft \"". $data['Comp_Naam'] ."\" geselecteerd.");
+						echo("<table>");
+						echo("<tr>");
+						echo("<td>Aantal meldingen bij dit component:</td><td>");
+
+						$query = "SELECT Count(Meld_Type_ID) FROM melding_lijst WHERE Comp_Lijst_ID = '".$_GET['c']."'";
+					  $res = mysql_query($query);
+						$row = mysql_fetch_array($res);
+						echo($row[0] ."</td><tr>");
+						
+						//array van statusobjecten worden: 0 waardes voor de tijd
+						$query = "SELECT * FROM Status";
+					  $res = mysql_query($query);
+				  	while ($row = mysql_fetch_array($res)) {
+				  		$Stat_Obj = new Status_Object();
+				  		$Stat_Obj->Set_ID($row['Status_ID'],$row['Status'], 0, 0);
+				 	  	array_push($Objecten_Array, $Stat_Obj);
+  				  	$Stat_Obj = NULL;
+				  	}
+						//datum nu
+						$eind = date('U');
+						//daarna alle meldingen langs om tijden bij elkaar op te tellen. afhankelijk van de status ID
+						$query = "SELECT * FROM melding_lijst WHERE Meld_Lijst_ID = '".$data['Laatste_Melding']."'";
+					  $res = mysql_query($query);
+						$row = mysql_fetch_array($res);
+						$begin = zet_datum_om($row['Meld_Datum']);
+						$verschil = $eind - $begin;
+
+						for ($i=0; $i < count($Objecten_Array); $i++) {
+							if ($Objecten_Array[$i]->Get_ID() == $row['Huidige_Status']) {
+								$Objecten_Array[$i]->Add_TotaalTijd($verschil);
+								$Objecten_Array[$i]->Add_Aantal(1);
+							}
+						}
+						$eind = zet_datum_om($row['Meld_Datum']);
+
+				  	while ($row['Voorgaande_Melding'] != 1) {
+				  		//status
+							$query = "SELECT * FROM melding_lijst WHERE Meld_Lijst_ID = '".$row['Voorgaande_Melding']."'";
+						  $res = mysql_query($query);
+							$row = mysql_fetch_array($res);
+
+							$begin = zet_datum_om($row['Meld_Datum']);
+							$verschil = $eind - $begin;
+							for ($i=0; $i < count($Objecten_Array); $i++) {
+								if ($Objecten_Array[$i]->Get_ID() == $row['Huidige_Status']) {
+									$Objecten_Array[$i]->Add_TotaalTijd($verschil);
+ 									$Objecten_Array[$i]->Add_Aantal(1);
+								}
+							}
+							$eind = zet_datum_om($row['Meld_Datum']);
+				  	}
+
+						for ($i=0; $i < count($Objecten_Array); $i++) {
+							echo("<tr><td>" . $Objecten_Array[$i]->Get_Naam() . "</td><td>". zet_timestamp_om($Objecten_Array[$i]->Get_TotaalTijd()) ."</td><td>(". $Objecten_Array[$i]->Get_Aantal() ." meldingen)</td></tr>");
+						}
+						
+						echo("</table>");
+						
+					}
+					else { echo("Er is geen component geselecteerd!<br>Selecteer een component om hier de gegevens van te zien.");}
+				?>
+
+	    </div>	
+	<?php  
+	      }
+		//niemand ingelogt, dus bezoeker naar de inlogpagina sturen
+		else header("Location: index.php");  
+	}
+?> 
diff --git a/support/tool/CRAFT/main_statistieken/meldingen.php b/support/tool/CRAFT/main_statistieken/meldingen.php
new file mode 100644
index 00000000000..797de4b38d1
--- /dev/null
+++ b/support/tool/CRAFT/main_statistieken/meldingen.php
@@ -0,0 +1,36 @@
+<?php	
+	if(isset($_SESSION['main_deel'])){
+		$_SESSION['main_deel'] = 4;
+	  $_SESSION['huidige_pagina'] = $_SESSION['pagina'] . 'main.php?p='.$_SESSION['main_deel'].'&s=4';
+	    
+	  require_once($_SESSION['pagina'] . 'includes/login_funcs.php');
+
+	  //controleren of er iemand ingelogd is...
+	  if ($LOGGED_IN = user_isloggedin()) {
+	  	
+	  	?>
+	  	<div id="linkerdeel">
+	  		<?php	
+	  			echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree.js\"></script>");
+					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_items.php\"></script>");
+					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_tpl.js\"></script>");
+	  		?>
+				<script language="JavaScript">
+				<!--//
+		 			new tree (TREE_ITEMS, TREE_TPL);
+	   		//-->
+				</script> 
+			
+			</div>
+	    <div id="rechterdeel">
+
+	    	<h2>Meldingen</h2>
+
+
+	    </div>	
+	<?php  
+	      }
+		//niemand ingelogt, dus bezoeker naar de inlogpagina sturen
+		else header("Location: index.php");  
+	}
+?> 
diff --git a/support/tool/CRAFT/main_statistieken/type_componenten.php b/support/tool/CRAFT/main_statistieken/type_componenten.php
new file mode 100644
index 00000000000..7aa3f10679b
--- /dev/null
+++ b/support/tool/CRAFT/main_statistieken/type_componenten.php
@@ -0,0 +1,55 @@
+<?php	
+	if(isset($_SESSION['main_deel'])){
+		$_SESSION['main_deel'] = 4;
+	  $_SESSION['huidige_pagina'] = $_SESSION['pagina'] . 'main.php?p='.$_SESSION['main_deel'].'&s=1';
+	    
+	  require_once($_SESSION['pagina'] . 'includes/login_funcs.php');
+
+	  //controleren of er iemand ingelogd is...
+	  if ($LOGGED_IN = user_isloggedin()) {
+	  	
+	  	?>
+	  	<div id="linkerdeel">
+	  		<?php	
+	  			echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree.js\"></script>");
+					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_items.php\"></script>");
+					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_tpl.js\"></script>");
+	  		?>
+				<script language="JavaScript">
+				<!--//
+		 			new tree (TREE_ITEMS, TREE_TPL);
+	   		//-->
+				</script> 
+			
+			</div>
+	    <div id="rechterdeel">
+
+	    	<h2>Type componenten</h2>
+	    		<table>
+	    			<tr>
+	    				<td>Aantal faciliteiten:</td><td></td>
+	    			</tr>
+	    			<tr>
+	    				<td>Gemiddeld aantal componenten per faciliteit:</td><td></td>
+	    			</tr>
+	    			<tr>
+	    				<td>Gemiddeld aantal niveaus per faciliteit:</td><td></td>
+	    			</tr>
+	    			<tr>
+	    				<td></td><td></td>
+	    			</tr>
+	    		</table>
+	    	Aantal componenten per faciliteit<br>
+	    	Hoeveel niveaus per faciliteit<br>
+	    	Faciliteit met de meeste type componenten<br>
+				Faciliteit met de minste type componenten<br>
+				Aantal meldingen 
+				
+
+	    </div>	
+	<?php  
+	      }
+		//niemand ingelogt, dus bezoeker naar de inlogpagina sturen
+		else header("Location: index.php");  
+	}
+?> 
diff --git a/support/tool/CRAFT/main_statistieken/type_meldingen.php b/support/tool/CRAFT/main_statistieken/type_meldingen.php
new file mode 100644
index 00000000000..4ce30b97e76
--- /dev/null
+++ b/support/tool/CRAFT/main_statistieken/type_meldingen.php
@@ -0,0 +1,72 @@
+<?php	
+	if(isset($_SESSION['main_deel'])){
+		$_SESSION['main_deel'] = 4;
+	  $_SESSION['huidige_pagina'] = $_SESSION['pagina'] . 'main.php?p='.$_SESSION['main_deel'].'&s=4';
+	  $_SESSION['type_overzicht'] = 3;
+	  
+	  require_once($_SESSION['pagina'] . 'includes/login_funcs.php');
+
+	  //controleren of er iemand ingelogd is...
+	  if ($LOGGED_IN = user_isloggedin()) {
+	  	
+	  	?>
+	  	<div id="linkerdeel">
+	  		<?php	
+	  			echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree.js\"></script>");
+					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_items.php\"></script>");
+					echo("<script language=\"JavaScript\" src=\"". $_SESSION['pagina'] ."includes/tree_tpl.js\"></script>");
+	  		?>
+				<script language="JavaScript">
+				<!--//
+		 			new tree (TREE_ITEMS, TREE_TPL);
+	   		//-->
+				</script> 
+			
+			</div>
+	    <div id="rechterdeel">
+
+	    	<h2>Type meldingen</h2>
+				
+				<?php
+					if (isset($_GET['c'])) {
+						$query = "SELECT Melding_Type_Naam FROM melding_type WHERE Meld_Type_ID = '".$_GET['c']."'";
+					  $res = mysql_query($query);
+						$data = mysql_fetch_array($res);
+						echo("U heeft \"". $data[0]  ."\" geselecteerd.");
+
+						$query = "SELECT Count(Meld_Type_ID) FROM melding_lijst";
+					  $res = mysql_query($query);
+						$data = mysql_fetch_array($res);
+
+						$query = "SELECT Count(Meld_Type_ID), Count(Distinct(Comp_Lijst_ID)) FROM melding_lijst WHERE Meld_Type_ID = '".$_GET['c']."'";
+					  $res = mysql_query($query);
+						$row = mysql_fetch_array($res);
+						echo("<table>");
+						echo("<tr><td>Aantal meldingen van dit type:</td><td>". $row[0] . "</td><td>(Totale meldingen: ". $data[0] .")</td></tr>");
+						
+						$query = "SELECT Count(Distinct(Comp_Type_ID)) FROM comp_lijst WHERE Comp_Lijst_ID IN (SELECT Distinct(Comp_Lijst_ID) FROM melding_lijst WHERE Meld_Type_ID = '".$_GET['c']."')";
+					  $res = mysql_query($query);
+						$data = mysql_fetch_array($res);
+						echo("<tr><td>Aantal componenten met dit type melding:</td><td>". $row[1] ."</td><td>(Verspreid over ". $data[0] ." componenttypes)</td></tr>");
+
+						$query = "SELECT Count(Comp_lijst_ID) as aantal, Comp_Lijst_ID from melding_lijst WHERE Meld_Type_ID = '".$_GET['c']."' AND Comp_Lijst_ID > 1 GROUP BY Comp_Lijst_ID ORDER BY aantal desc";
+					  $res = mysql_query($query);
+						$data = mysql_fetch_array($res);
+						$query = "select Type_Naam from comp_type WHERE Comp_Type in (SELECT Comp_Type_ID FROM comp_lijst WHERE Comp_Lijst_ID = '".$data[1]."')";
+					  $res = mysql_query($query);
+						$row = mysql_fetch_array($res);
+						
+						echo("<tr><td>Type component met de meeste meldingen: </td><td>" . $row[0] ."</td><td>(Aantal meldingen bij dit type: ". $data[0] .")</td></tr>");
+						echo("</table>");
+
+					}
+					else { echo("Er is geen type melding geselecteerd!<br>Selecteer een type melding!");}
+				?>
+
+	    </div>	
+	<?php  
+	      }
+		//niemand ingelogt, dus bezoeker naar de inlogpagina sturen
+		else header("Location: index.php");  
+	}
+?> 
-- 
GitLab