<?php
# $Id$
# http://www.mapbender.org/index.php/Administration
#
# Copyright (C) 2002 CCGIS 
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

import_request_variables("PG");
$e_id="filteredGroup_filteredGui";
require_once(dirname(__FILE__)."/../php/mb_validatePermission.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<?php
echo '<meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'">';	
?>
<title>Add Permission for Filtered GUI to Filtered Group</title>
<?php
include '../include/dyn_css.php';
?>
<script language="JavaScript">
function validate(wert){
	if(document.forms[0]["selected_group"].selectedIndex == -1){
		document.getElementsByName("selected_group")[0].style.backgroundColor = '#ff0000';
		return;
	}else{
		if(wert == "remove"){
			if(document.forms[0]["remove_gui[]"].selectedIndex == -1){
				document.getElementsByName("remove_gui[]")[0].style.backgroundColor = '#ff0000';
				return;
			}
			document.form1.remove.value = 'true';
			document.form1.submit();
		}
		if(wert == "insert"){
			if(document.forms[0]["selected_gui[]"].selectedIndex == -1){
				document.getElementsByName("selected_gui[]")[0].style.backgroundColor = '#ff0000';
				return;
			}
			document.form1.insert.value = 'true';
			document.form1.submit();
		}
	}
}
</script>

</head>
<body>
<?php
require_once(dirname(__FILE__)."/../php/mb_getGUIs.php");

$fieldHeight = 20;

$cnt_gui = 0;
$cnt_group = 0;
$cnt_group = 0;
$cnt_gui_group = 0;
$cnt_gui_group = 0;
$exists = false;
$gui_id_array = array();

$logged_user_name=$_SESSION["mb_user_name"];
$logged_user_id=$_SESSION["mb_user_id"];


/*handle remove, update and insert*****************************************************************/
if($insert){
	if(count($selected_gui)>0){
		for($i=0; $i<count($selected_gui); $i++){
			$exists = false;
			$sql_insert = "SELECT * from gui_mb_group where fkey_mb_group_id = $1 and fkey_gui_id = $2 ";
			$v = array($selected_group,$selected_gui[$i]);
			$t = array('i','s');
			$res_insert = db_prep_query($sql_insert,$v,$t);
			while(db_fetch_row($res_insert)){$exists = true;}
			if($exists == false){
				$sql_insert = "INSERT INTO gui_mb_group(fkey_mb_group_id, fkey_gui_id) VALUES($1, $2)";
				$v = array($selected_group,$selected_gui[$i]);
				$t = array('i','s');
				$res_insert = db_prep_query($sql_insert,$v,$t);
			}
		}
	}
}
if($remove){
	if(count($remove_gui)>0){
		for($i=0; $i<count($remove_gui); $i++){
			$sql_remove = "DELETE FROM gui_mb_group WHERE fkey_gui_id = $1 and fkey_mb_group_id = $2";
			$v = array($remove_gui[$i],$selected_group);
			$t = array('s','i');
			db_prep_query($sql_remove,$v,$t);
		}
	}
}

/*get allocated gui  ******************************************************************************/

$arrayGuis=mb_getGUIs($logged_user_id);
$v = array();
$t = array();
$sql_gui = "SELECT * FROM gui WHERE gui_id IN (";
for($i=0; $i<count($arrayGuis); $i++){
	if($i>0){ $sql_gui .= ",";}
	$sql_gui .= "$".($i+1);
	array_push($v,$arrayGuis[$i]);
	array_push($t,'s');
}
$sql_gui.= ") ORDER BY gui_name";

$res_gui = db_prep_query($sql_gui,$v,$t);
while($row = db_fetch_array($res_gui)){
	$gui_id_array[$cnt_gui] = $row["gui_id"];
	$gui_name[$cnt_gui] = $row["gui_name"];
	$cnt_gui++;
}

/*get owner group *********************************************************************************/

$sql_group = "SELECT * FROM mb_group WHERE mb_group_owner = $1 ORDER BY mb_group_name";
$v = array($logged_user_id);
$t = array('i');
$res_group = db_prep_query($sql_group,$v,$t);
while($row = db_fetch_array($res_group)){
	$group_id[$cnt_group] = $row["mb_group_id"];
	$group_name[$cnt_group] = $row["mb_group_name"];
	$cnt_group++;
}

if ($cnt_group > 0) {

	/*get allocated gui from selected_group******************************************************************************/
	$arrayGuis=mb_getGUIs($logged_user_id);
	$v = array();
	$t = array();
	$sql_group_mb_gui = "SELECT gui.gui_id, gui.gui_name, gui_mb_group.fkey_mb_group_id FROM gui_mb_group ";
	$sql_group_mb_gui .= " JOIN gui ON gui_mb_group.fkey_gui_id = gui.gui_id ";
	$sql_group_mb_gui .= "WHERE gui_mb_group.fkey_mb_group_id = $1 ";
	if(!$selected_group){
		if($group_id[0] > 0){
			array_push($v,$group_id[0]);
			array_push($t,'i');
		}
		else{
			array_push($v, "NULL");
			array_push($t,'i');
		}
	}
	else if($selected_group){
		array_push($v,$selected_group);
		array_push($t,'i');
	}
	$sql_group_mb_gui .= " AND gui.gui_id IN (";
	$c = 2;
	for($i=0; $i<count($arrayGuis); $i++){
		if($i>0){ $sql_group_mb_gui .= ",";}
		$sql_group_mb_gui .= "$".$c;
		array_push($v,$arrayGuis[$i]);
		array_push($t,'s');
		$c++;
	}
	$sql_group_mb_gui .= ") ORDER BY gui.gui_name";
	
	$res_group_mb_gui = db_prep_query($sql_group_mb_gui,$v,$t);
	while($row = db_fetch_array($res_group_mb_gui)){
		$gui_id_group[$cnt_gui_group] = $row["gui_id"];
		$gui_name_group[$cnt_gui_group] =  $row["gui_name"];
		$cnt_gui_group++;
	}

	/*INSERT HTML*/
	echo "<form name='form1' action='" . $self ."' method='post'>";
	
	/*insert all group in selectbox********************************************************************/
	echo "<div class='text1'>GROUP: </div>";
	echo "<select style='background:#ffffff' class='select1' name='selected_group' onChange='submit()' size='10'>";
	for($i=0; $i<$cnt_group; $i++){
		echo "<option value='" . $group_id[$i] . "' ";
		if($selected_group && $selected_group == $group_id[$i]){
			echo "selected";
		}
		echo ">" . $group_name[$i]  . "</option>";
	}
	echo "</select>";
	
	/*insert all gui in selectbox**********************************************************************/
	echo "<div class='text2'>GUI:</div>";
	echo "<select style='background:#ffffff' class='select2' multiple='multiple' name='selected_gui[]' size='$fieldHeight' >";
	for($i=0; $i<$cnt_gui; $i++){
		echo "<option value='" . $gui_id_array[$i]  . "'>" . $gui_name[$i]  . "</option>";
	}
	echo "</select>";
	
	/*Button*******************************************************************************************/
	
	echo "<div class='button1'><input type='button'  value='==>' onClick='validate(\"insert\")'></div>";
	echo "<input type='hidden' name='insert'>";
	
	echo "<div class='button2'><input type='button' value='<==' onClick='validate(\"remove\")'></div>";
	echo "<input type='hidden' name='remove'>";
	
	/*insert group_gui_dependence in selectbox*********************************************************/
	echo "<div class='text3'>SELECTED GUI:</div>";
	echo "<select style='background:#ffffff' class='select3' multiple='multiple' name='remove_gui[]' size='$fieldHeight' >";
	for($i=0; $i<$cnt_gui_group; $i++){
		echo "<option value='" . $gui_id_group[$i]  . "'>" . $gui_name_group[$i]  . "</option>";
	}
	echo "</select>";
	
	echo "</form>";
}
else {
	echo "<div class = 'text3'>There are no groups available for this user.</div>";
}


?>
<script type="text/javascript">
<!--
document.forms[0].selected_group.focus();
// -->
</script>
</body>
</html>