<?php
include_once('php/php_headers.php');
$scripts = '<script src="js/formfunctions.js" type="text/javascript"></script>';
$scripts .= '<script>function deletechecked(){var answer = confirm("Θέλετε να διαγράψετε την ομάδα;");if (answer) document.messages.submit(); return false;}</script>';
$scripts .= '<script>function delete_user_from_group(){var answer = confirm("Θέλετε να διαγράψετε το χρήστη από την ομάδα;");if (answer) document.messages.submit(); return false;}</script>';
html_header('Επεξεργασία ομάδων',$scripts);
session_null('edit_groups');
$name=$no_name=$msg='';
$status1=$vis1 = "checked"; $status2=$vis2 = "";
require_once "pagination/Paginated.php";
require_once "pagination/DoubleBarLayout.php";

if($_SESSION['ekdhlos_level']==0) 
	$_SESSION['edit_groups'] = get('all','groups','','','all');
else	
	$_SESSION['edit_groups'] = get('user','groups','','','all');
if($_SESSION['ekdhlos_level']==0) 
	$devices = get('all','device','','','all');
else 
	$devices = get('simple','device','','','all');
if(!isset($_GET['edit_id']) && !isset($_GET['visibility_id'])){
echo'
<div id="tools6">';
if($_SESSION['ekdhlos_level']==0)
echo '<a href="insert_devices.php" title="Εισαγωγή συσκευής"><img alt="Εισαγωγή συσκευής" src="images/icon-insert-big.png" /></a>';
echo'
<a href="edit_devices.php" title="Επεξεργασία συσκευής"><img alt="Επεξεργασία συσκευής" src="images/Write2.png" /></a>
<a href="insert_groups.php" title="Εισαγωγή ομάδας"><img alt="Εισαγωγή ομάδας" src="images/icon-insert-big.png" /></a>
<a href="edit_groups.php" title="Επεξεργασία ομάδας"><img alt="Επεξεργασία ομάδας" src="images/Write2.png" /></a>
</div>';	
echo '<h1 class="center">Ομάδες</h1><hr /><br />';
	if(isset($_SESSION['edit_groups'])){
		if($_SESSION['edit_groups']){		
			if(isset($_GET['page']) && is_numeric($_GET['page'])) $page = $_GET['page'];
			else $page = 1;
			$pagedResults = new Paginated($_SESSION['edit_groups'], 8, $page);
			echo '
				<table id="gradient-style">
					<thead>
					<tr>
						<th scope="col" class="width_td">Όνομα ομάδας</th>
						<th scope="col" class="width_td center">Επεξεργασία</th>
						<th scope="col" class="width_td center">Ορατότητα από χρήστες</th>
						<th scope="col" class="width_td center">Διαγραφή</th>
					</tr>
					</thead>
					<tbody>';
			while($row = $pagedResults->fetchPagedRow()) {
			echo "
					<tr>
						<td>";
						if($row['status']=="no") 
						echo "<img alt=\"Ανενεργή\" src=\"images/exclamation-red.png\" title=\"Η ομάδα έχει τεθεί ως ανενεργή!\" />";
						echo $row['g_name']."</td>
						<td class=\"center\"><a href=\"edit_groups.php?edit_id={$row['id']}\"><img alt=\"Επεξεργασία\" src=\"images/icon-edit.png\" /></a></td>
						<td class=\"center\"><a href=\"edit_groups.php?visibility_id={$row['id']}\"><img alt=\"Ορατότητα σε χρήστες\" src=\"images/User_3.png\" /></a></td>
						<td class=\"center\"><a href=\"edit_groups.php?delete_id={$row['id']}\" onclick=\"return deletechecked();\"><img alt=\"Διαγραφή\" src=\"images/icon-delete.png\" /></a></td>
					</tr>";
			}
			echo '	
					</tbody>
					<tfoot>';
					$pagedResults->setLayout(new DoubleBarLayout());
					echo '
					<tr>
						<td colspan="4">';
					if(sizeof($_SESSION['edit_groups'])>8){
						echo $pagedResults->fetchPagedNavigation();
					}
					echo '
						</td>
					</tr>
					</tfoot>
				</table>';
		}
		else echo '<br /><div id="msg_error" class="more_left_2">Δεν βρέθηκαν αποτελέσματα!</div>';
	}
}
if(isset($_GET['edit_id'])){
	if ( (filter_var($_GET['edit_id'], FILTER_VALIDATE_INT)) && ($_GET['edit_id'] ==  strval(intval($_GET['edit_id'])))){
			$edit_id = clean($_GET['edit_id']); 
	}
	else {
			$edit_id=null;
	}	
} 
else { 
	$edit_id=null;
}
if(isset($edit_id) && is_numeric($edit_id) && check("groups", clean($edit_id),"id") && (get('user_id','groups','id',$edit_id,'one')==$_SESSION['ekdhlos_userid'] || $_SESSION['ekdhlos_level']==0)){
	if(isset($_POST['submit'])){
		$insert1=false;
		$g_name  = clean($_POST['name']);
		if(!isset($_POST['name']) || empty($_POST['name'])) $no_name = '<h3 class="triangle-border left more_top">Το όνομα απαιτείται!</h3>';
		else if (strstr($_POST['name'], ',') !== false)  $no_name = '<h3 class="triangle-border left more_top">Ο χαρακτήρας " , " δεν επιτρέπεται!</h3>';
		else if (preg_match("/[^A-Za-z0-9\/\'\(\)\=\<\>\+\-\_\,\!\?\;\:\.\!\' ']/", $_POST['name']))$no_name = '<h3 class="triangle-border left more_top">Μη αποδεκτοί χαρακτήρες!</h3>';
		else if(mb_strlen($_POST['name'], 'UTF-8') <2) $no_name = '<h3 class="triangle-border left more_top">Εισάγετε πάνω από δύο χαρακτήρες!</h3>';
		else if(mb_strlen($_POST['name'], 'UTF-8') >=20) $no_name = '<h3 class="triangle-border left more_top">Εισάγετε μέχρι 20 χαρακτήρες!</h3>';
		else if(check_g_name($_POST['name'],get('g_name','groups','id',$edit_id,'one'))) $no_name = '<h3 class="triangle-border left more_top">Υπάρχει ήδη το όνομα σε άλλη ομάδα!</h3>';
		else $insert1 = true;

		if($_POST['visibility'] == "private") {$vis1 = "checked"; $vis2 = "";}
		else if($_POST['visibility'] == "public") {$vis1 = ""; $vis2 = "checked";}
		
		if($_POST['status'] == "yes") {$status1 = "checked"; $status2 = "";}
		else if($_POST['status'] == "no") {$status1 = ""; $status2 = "checked";}
		$arr=null;
		$i = 0;
		foreach($devices as $row){
			$name="id".$i;
			if (isset($_POST[$name]) && $_POST[$name]==$row['id']){
				$arr.=$row['id'].' , ';
			}
			$i++;
		}
		if($insert1){
			if (update('groups',$g_name,$edit_id,$_POST['visibility'],$_POST['status'],$arr)){
				$msg = '<div id="msg_ok">Η ενημέρωση έγινε με επιτυχία!</div><br />'; 
				echo "<script>setTimeout('window.location.href=\"edit_groups.php\"', 3000)</script>";
			}
			else $msg = '<div id="msg_error">Σφάλμα κατά την ενημέρωση!</div><br />';	
		}
	}
	else {
		$g_name = get('g_name','groups','id',$edit_id,'one');
		if(get('visibility','groups','id',$edit_id,'one') == "private") {$vis1 = "checked"; $vis2 = "";}
		else if(get('visibility','groups','id',$edit_id,'one') == "public") {$vis1 = ""; $vis2 = "checked";}
		if(get('status','groups','id',$edit_id,'one') == "yes") {$status1 = "checked"; $status2 = "";}
		else if(get('status','groups','id',$edit_id,'one') == "no") {$status1 = ""; $status2 = "checked";}
	}
echo'
<div id="tools6">';
if($_SESSION['ekdhlos_level']==0)
echo '<a href="insert_devices.php" title="Εισαγωγή συσκευής"><img alt="Εισαγωγή συσκευής" src="images/icon-insert-big.png" /></a>';
echo'
<a href="edit_devices.php" title="Επεξεργασία συσκευής"><img alt="Επεξεργασία συσκευής" src="images/Write2.png" /></a>
<a href="insert_groups.php" title="Εισαγωγή ομάδας"><img alt="Εισαγωγή ομάδας" src="images/icon-insert-big.png" /></a>
<a href="edit_groups.php" title="Επεξεργασία ομάδας"><img alt="Επεξεργασία ομάδας" src="images/Write2.png" /></a>
</div>';	

echo'
<div id="tools8">
<a href="edit_groups.php?edit_id='.$edit_id.'" title="Επεξεργαστείτε την ομάδα"><img  alt="Επεξεργαστείτε την ομάδα" src="images/icon-edit.png"></a>
<a href="edit_groups.php?visibility_id='.$edit_id.'" title="Επιλέξτε τους χρήστες που θέλετε να στέλνουν στην ομάδα"><img  alt="Επιλέξτε τους χρήστες που θέλετε να στέλνουν στην ομάδα" src="images/User_3.png"></a>
<a href="edit_groups.php?delete_id='.$edit_id.'" onclick="return deletechecked();" title="Διαγράψτε την ομάδα"><img  alt="Διαγράψτε την ομάδα" src="images/icon-delete.png"></a>
<input type="hidden" id="id" value="'.$edit_id.'" />
</div>';

	echo '<h1 class="center">Επεξεργασία ομάδας</h1><hr /><br />';
	
	if($_SESSION['ekdhlos_level']==0){
		$iiiid = get('user_id','groups','id',$edit_id,'one');
		$nnnnname = get('f_name','users','id',$iiiid,'one').' '.get('l_name','users','id',$iiiid,'one');
		echo '<h4 class="more_left_2"><i>*Η ομάδα ανήκει στο χρήστη: <a href="edit_users.php?edit_id='.$iiiid.'">'.$nnnnname.'</a></i></h4>';
	}
	
	$users_r = get('edit','visible_groups','',$edit_id,'all');
	if($users_r){
		$uusers = '<fieldset><h2 class="center">Χρήστες που μπορούν να στείλουν στην ομάδα:</h2><hr />
		<table id="gradient-style">
			<thead>
			<tr>
				<th scope="col" class="width_td">Χρήστες</th>
			</tr>
			</thead>
			<tbody>';
		foreach($users_r as $row){
			if(get('enable','users','id',$row['user_id'],'one')=='yes'){
				$uusers .= '
				<tr><td>
				<a href="edit_groups.php?visibility_id='.$edit_id.'">'.get('f_name','users','id',$row['user_id'],'one').' '.get('l_name','users','id',$row['user_id'],'one').'</a></td></tr>';
			}
			else{
				$uusers .= '
				<tr><td>
				<img alt="Ανενεργός" src="images/exclamation-red.png" title="Ο χρήστης έχει τεθεί ως ανενεργός!" /><a href="edit_groups.php?visibility_id='.$edit_id.'">'.get('f_name','users','id',$row['user_id'],'one').' '.get('l_name','users','id',$row['user_id'],'one').'</a></td></tr>';
			}
		}
		$uusers .= '</tbody></table></fieldset>';
	}
	else{
		$uusers = '<fieldset><h2 class="center">Χρήστες που μπορούν να στείλουν στην ομάδα:</h2><hr /><h3 class="center">Δεν έχετε ορίσει ακόμα χρήστες ή<br />κανείς δεν έχει αποδεχτεί να εισέλθει στην ομάδα!</h3></fieldset>';	
	}
	$form = '
<form method="post" accept-charset="utf-8" class="more_left_2 width"><br />'.$msg.'
<ol class="hh2">
  <li><label for="field1">Όνομα ομάδας:</label></li>
  <li><input type="text" class="field" onblur="g_name_validator2();" id="field1" name="name" value="'.$g_name.'" required/></li>
  
  <li id="f_msg" class="width">'.$no_name.'</li>
</ol>
<ol class="hh2">
  <li><label for="field2">Oρατότητα:</label>
		<h5>
			<input type="radio" id="field2" name="visibility" value="private" '.$vis1.'/>&nbsp;Iδιωτική&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<input type="radio" id="field2v" name="visibility" value="public" '.$vis2.'/>&nbsp;Δημόσια
		</h5>
		</li>
</ol>
<ol class="hh2">
  <li><label for="field3">Κατάσταση:</label>
			<h5>
				<input type="radio" id="field3" name="status" value="yes" '.$status1.'/>&nbsp;Ενεργή&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
				<input type="radio" id="field3v" name="status" value="no" '.$status2.'/>&nbsp;Ανενεργή
			</h5>
			</li>
</ol>
	'.devices_in_this_group($edit_id).'<br />
	<input type="submit" name="submit" id="submit" onclick="checkall_g();"  class="button" value="Αλλαγή"><br />
<br />'.$uusers.'</form>';
	echo $form;
}
else if(isset($edit_id) && (!is_numeric($edit_id) ||  check("groups", clean($edit_id),"id")==0 || get('user_id','groups','id',$edit_id,'one')<>$_SESSION['ekdhlos_userid'])){
	echo "<script>setTimeout('window.location.href=\"edit_groups.php\"', 3000)</script>"; 
	echo '<br /><div id="msg_error" class="more_left_2">Δεν υπάρχει ομάδα με αυτό το id!</div>';
}
/* Ορατότητα σε χρήστες */
if(isset($_GET['visibility_id'])){
	if ( (filter_var($_GET['visibility_id'], FILTER_VALIDATE_INT)) && ($_GET['visibility_id'] ==  strval(intval($_GET['visibility_id'])))){
			$visibility_id = clean($_GET['visibility_id']); 
	}
	else {
			$visibility_id=null;
	}	
} 
else { 
	$visibility_id=null;
}
if(isset($visibility_id) && is_numeric($visibility_id) && check("groups", clean($visibility_id),"id") && (get('user_id','groups','id',$visibility_id,'one')==$_SESSION['ekdhlos_userid'] || $_SESSION['ekdhlos_level']==0)){
	echo'
	<div id="tools6">';
	if($_SESSION['ekdhlos_level']==0)
	echo '<a href="insert_devices.php" title="Εισαγωγή συσκευής"><img alt="Εισαγωγή συσκευής" src="images/icon-insert-big.png" /></a>';
	echo'
	<a href="edit_devices.php" title="Επεξεργασία συσκευής"><img alt="Επεξεργασία συσκευής" src="images/Write2.png" /></a>
	<a href="insert_groups.php" title="Εισαγωγή ομάδας"><img alt="Εισαγωγή ομάδας" src="images/icon-insert-big.png" /></a>
	<a href="edit_groups.php" title="Επεξεργασία ομάδας"><img alt="Επεξεργασία ομάδας" src="images/Write2.png" /></a>
	</div>';
	echo'
	<div id="tools8">
	<a href="edit_groups.php?edit_id='.$visibility_id.'" title="Επεξεργαστείτε την ομάδα"><img alt="Επεξεργαστείτε την ομάδα" src="images/icon-edit.png"></a>
	<a href="edit_groups.php?visibility_id='.$visibility_id.'" title="Επιλέξτε τους χρήστες που θέλετε να στέλνουν στην ομάδα"><img alt="Επιλέξτε τους χρήστες που θέλετε να στέλνουν στην ομάδα" src="images/User_3.png"></a>
	<a href="edit_groups.php?delete_id='.$visibility_id.'" onclick="return deletechecked();" title="Διαγράψτε την ομάδα"><img alt="Διαγράψτε την ομάδα" src="images/icon-delete.png"></a>
	</div>';
	echo '<h1 class="center">Δικαιώματα σε χρήστες</h1><hr /><br />';
	$users = get_users("","all","simple_users");
	if ($users){
		echo '
		<form method="post" accept-charset="utf-8" class="width4">
		<h1>Ομάδα: '.get('g_name','groups','id',$visibility_id,'one').'</h1>
		<table id="gradient-style">
			<thead>
			<tr>
				<th scope="col" class="width_td">Χρήστης</th>
				<th scope="col">Επιλογή</th>
			</tr>
			</thead>
			<tbody>';
			$i=0;
			foreach($users as $row){
				$name="id".$i;
					echo'
					<tr>
						<td>'.get('f_name','users','id',$row['id'],'one').' '.get('l_name','users','id',$row['id'],'one').'</td>';
					if(check('visible_groups',$visibility_id,$row['id']))
					echo'
						<td><a href="edit_groups.php?visibility_id='.$visibility_id.'&remove_user_id='.$row['id'].'" onclick="return delete_user_from_group();"><img  alt="Κάντε κλικ για να απαγορεύσετε στον χρήστη να στέλνει μηνύματα στην ομάδα" src="images/icon-delete.png" title="Κάντε κλικ για να απαγορεύσετε στον χρήστη να στέλνει μηνύματα στην ομάδα"></a></td>
					</tr>';
					else
					echo'
						<td><input type="checkbox" name="'.$name.'" value="'.$row['id'].'"/></td>
					</tr>';
				
				$i++;
			}
		echo '
			<tbody>
		</table><br />
		<input type="submit" name="submit" class="button" value="Ενημέρωση">
		</form>';
		if(isset($_POST['submit'])){
			$i=$count=0;
			$arr=array();
			foreach($users as $row){
				$name="id".$i;
				if ($_POST[$name]==$row['id']){
					$arr[$count]=$row['id'];
					$count++;
				}
				$i++;
			}
			if($count==0){
				echo '<br /><div id="msg_error" class="more_left_2">Πρέπει να επιλέξετε χρήστες!</div>';
			}
			else if($count>0){
				if(insert('visible_groups',$visibility_id,$arr,'check')){ 
					echo '<br /><div id="msg_ok" class="more_left_2">Η ενημέρωση έγινε με επιτυχία!</div><br />'; 
					echo "<script>setTimeout('window.location.href=\"edit_groups.php\"', 3000)</script>";
				}
				else echo '<div id="msg_error" class="more_left_2">Σφάλμα κατά την ενημέρωση!</div><br />';
			}
		}
		
		if(isset($_GET['remove_user_id'])){
			if ( (filter_var($_GET['remove_user_id'], FILTER_VALIDATE_INT)) && ($_GET['remove_user_id'] ==  strval(intval($_GET['remove_user_id'])))){
					$remove_user_id = clean($_GET['remove_user_id']); 
			}
			else {
					$remove_user_id=null;
			}	
		} 
		else { 
			$remove_user_id=null;
		}
		if(isset($remove_user_id) && is_numeric($remove_user_id)){
			if(delete('visible_groups',$visibility_id,$remove_user_id)){ 
				echo '<br /><div id="msg_ok" class="more_left_2">Ο χρήστης δεν μπορεί να στείλει στην ομάδα!</div><br />'; 
				echo "<script>setTimeout('window.location.href=\"edit_groups.php?visibility_id=".$visibility_id."\"', 2000)</script>";
			}
			else echo '<div id="msg_error" class="more_left_2">Σφάλμα κατά την ενημέρωση!</div><br />';
		}

	}
	else{
		echo '<br /><div id="msg_error" class="more_left_2">Δεν υπάρχουν χρήστες!</div><br />';
		echo "<script>setTimeout('window.location.href=\"edit_groups.php\"', 3000)</script>";
	}
}
else if(isset($visibility_id) && (!is_numeric($visibility_id) ||  check("groups", clean($visibility_id),"id")==0 || get('user_id','groups','id',$visibility_id,'one')<>$_SESSION['ekdhlos_userid'])){
	echo "<script>setTimeout('window.location.href=\"edit_groups.php\"', 3000)</script>"; 
	echo '<br /><div id="msg_error" class="more_left_2">Δεν υπάρχει ομάδα με αυτό το id!</div>';
}
/* Διαγραφή ομάδας */
if(isset($_GET['delete_id'])){
	if ( (filter_var($_GET['delete_id'], FILTER_VALIDATE_INT)) && ($_GET['delete_id'] ==  strval(intval($_GET['delete_id'])))){
			$delete_id = clean($_GET['delete_id']); 
	}
	else {
			$delete_id=null;
	}	
} 
else { 
	$delete_id=null;
}
if($_SESSION['ekdhlos_level']==0){
	if(isset($delete_id) && is_numeric($delete_id) &&  check("groups", clean($delete_id),"id")){
		if (delete('groups',$delete_id)){
			echo '<br /><div id="msg_ok" class="more_left_2">Η διαγραφή έγινε με επιτυχία!</div>';
			echo "<script>setTimeout('window.location.href=\"edit_groups.php\"', 3000)</script>";
		}
		else echo '<br /><div id="msg_error" class="more_left_2">Σφάλμα κατά τη διαγραφή!</div>';
	}
	else if(isset($delete_id)&& (!is_numeric($delete_id) || check("users", clean($delete_id),"id")==0)){
		echo '<br /><div id="msg_error" class="more_left_2">Δεν υπάρχει ομάδα με αυτό το id!</div>';
		echo "<script>setTimeout('window.location.href=\"edit_groups.php\"', 3000)</script>";
	}
}
else{
	if(isset($delete_id) && is_numeric($delete_id) &&  check("groups", clean($delete_id),"id") && get('user_id','groups','id',$delete_id,'one')==$_SESSION['ekdhlos_userid']){
		if (delete('groups',$delete_id)){
			echo '<br /><div id="msg_ok" class="more_left_2">Η διαγραφή έγινε με επιτυχία!</div>';
			echo "<script>setTimeout('window.location.href=\"edit_groups.php\"', 3000)</script>";
		}
		else echo '<br /><div id="msg_error" class="more_left_2">Σφάλμα κατά τη διαγραφή!</div>';
	}
	else if(isset($delete_id) && (!is_numeric($delete_id) || check("users", clean($delete_id),"id")==0 || get('user_id','groups','id',$delete_id,'one')<>$_SESSION['ekdhlos_userid'])){
		echo '<br /><div id="msg_error" class="more_left_2">Δεν υπάρχει ομάδα με αυτό το id!</div>';
		echo "<script>setTimeout('window.location.href=\"edit_groups.php\"', 3000)</script>";
	}
}
html_footer();
?>