<?php
	/*
		(C) DairyWindow 2017
		admin@dairywindow.nz
	*/
	
	require "inc/connect.php";
	if($_SESSION['userLevel']<= $_SESSION['admin_group_edit']) $allow_edit=1; else $allow_edit=0;
	
	if(isset($_POST['add_text']) && $_POST['add_text']!="" && $_POST['add_text']!=null){
		//create new group
		
		$groupText = clean($_POST['add_text']);
		if(isset($_POST['add_order']) && $_POST['add_order']!='' && $_POST['add_order']!=null) $groupOrder = clean($_POST['add_order'])+1;
		else $groupOrder = '1';
		
		$sql="
			# check if adding a duplicate
			Select
				dw_group.groupID
			From
				dw_group
			Where
				dw_group.groupText = ? And
				dw_group.groupSite = ?
		";
		if(!$select_query = mysqli_prepared_query($link, $sql, "si", array($groupText, $_SESSION['userSite']), __FILE__, __LINE__)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
		if(mysqli_prepared_num_rows($select_query)>0){
			//already exists
			$message['type'] = "error";
			$message['text'] = "<span class='glyphicon glyphicon-warning-sign' aria-hidden='true'></span> Group ".$groupText." already exists";
		}else{
			$sql="
				INSERT INTO dw_group         ( groupText,  groupOrder,     groupModUser   ,       groupSite      , groupModDate, groupActive)
				VALUES                       (      ?   ,       ?    ,          ?         ,            ?         ,    now()    ,      1     )
			";
			if(!savesql($link, $sql, "siii", array($groupText, $groupOrder, $_SESSION['userID'], $_SESSION['userSite']                           ), __FILE__, __LINE__)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
		}
	}else{
		if(isset($_POST['edit_id']) && $_POST['edit_id']!='' && $_POST['edit_id']!=null){
			$edit_id       = clean($_POST['edit_id']);
			$groupTextx    = explode(' [',clean($_POST['edit_group']));
			$edit_group    = $groupTextx[0]; //the first part (minus the id)
			$edit_order    = clean($_POST['edit_order']);
			$edit_order_old = clean($_POST['edit_order_old']);
			if(isset($_POST['edit_active'])) $edit_active = clean($_POST['edit_active']);
			else $edit_active = 0;
			$edit_reason   = clean($_POST['edit_reason']);
			
			if($edit_order_old!= $edit_order){
				$sql="
					# update all the group orders +1
					Select
						dw_group.groupID,
						dw_group.groupOrder
					From
						dw_group
					Where
						dw_group.groupText = ? And
						dw_group.groupOrder > ? And
						dw_group.groupOrder <= ? And
						dw_group.groupSite = ?
				";
				if(!$qrygroups = mysqli_prepared_query($link, $sql, "iiii", array($edit_group, $edit_order_old, $edit_order, $_SESSION['userSite']), __FILE__, __LINE__)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
				foreach($qrygroups as $group_row){
					$sql="
						UPDATE dw_group SET 
							groupOrder = ?
						WHERE groupID = ?
					";
					if(!savesql($link, $sql, "ii", array(($group_row['groupOrder']+1), $group_row['groupID']), __FILE__, __LINE__)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
				}
			}
			
			$sql="
				# update this group
				UPDATE dw_group SET
					groupText       = ?,
					groupOrder      = ?,
					groupActive     = ?,
					groupChangeCode = ?,
					groupModDate    = now(),
					groupModUser    = ?
				WHERE groupID     = ?
			";
			if(!savesql($link, $sql, "siisii", array($edit_group, $edit_order, $edit_active, $edit_reason, $_SESSION['userID'], $edit_id), __FILE__, __LINE__)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
		}
	}
	
	$title = "Group";
	require "inc/head.php";
	$menu="group";
	require "inc/menu.php";
	
	if($debug) showdebug();
?>

<div id="topDIV" >
	<h1 class="text-center">
		<?php echo $title; ?>
		<?php
			if($_SESSION['userLevel']<= $_SESSION['admin_group_add']){
				$sql="
					# get last order for adding group
					Select
						dw_group.groupID
					From
						dw_group
					Where
						dw_group.groupSite = ? And
						dw_group.groupActive = 1 And
						dw_group.groupOrder <> 99
					Order By
						dw_group.groupOrder DESC,
						dw_group.groupText DESC
					Limit 1
				";
				if(!$order_query = mysqli_prepared_query($link, $sql, "i", array($_SESSION['userSite']), __FILE__, __LINE__)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
				if(mysqli_prepared_num_rows($order_query)>0){
					$order_row = $order_query[0];
				}else{
					$order_row=array('groupID'=>1);
				}
				?><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#new_group" onclick="update_groups(<?php echo $order_row['groupID']; ?>, 'add_order');" ><span class='glyphicon glyphicon-plus' aria-hidden='true'></span>&nbsp;Create new</button><?php
			}
		?>
	</h1>
</div>

<div id="loading" ><img src="images/loading-small.gif" alt="Please wait. Loading..." width="111" height="156" style="margin-top:150px;" class="center-block"><br><div class="text-center"><img src='images/carregando.gif' width='16' height='16'>&nbsp;Please wait while loading...</div></div>

<div id="main" class="container-fluid" style="display:none;" role="main">
	<table class="table table-hover sorttable" id="table">
		<thead>
			<tr id="table-head" style="background-color:white; color:inherit; white-space:nowrap;">
				<th class="text-center th_text"   id="th_text"   >Group</th>
				<th style="display:none;"         id="th_id"     ><!-- ID --></th>
				<th style="display:none;"         id="th_order"  ><!-- Order --></th>
				<th style="display:none;"         id="th_active" ><!-- Active --></th>
			</tr>
		</thead>
		<tbody class="sortable">
			<?php
				$sql="
					# sql for main table
					Select
						dw_group.groupSite,
						dw_group.groupActive,
						dw_group.groupOrder,
						dw_group.groupText,
						dw_group.groupID,
						dw_group.groupModUser,
						dw_group.groupModDate,
						dw_group.groupModReason,
						dw_group.groupChangeCode
					From
						dw_group
					Where
						dw_group.groupSite = ?
					Order By
						dw_group.groupActive Desc,
						dw_group.groupOrder,
						dw_group.groupText
				";
				if(!$group_query = mysqli_prepared_query($link, $sql, "i", array($_SESSION['userSite']), __FILE__, __LINE__)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
				foreach($group_query as $group_row){
					?>
						<tr class="text-nowrap" id="group_<?php echo $group_row['groupID']; ?>">
							<td class="text-center th_text<?php if($group_row['groupActive']!=1) echo " strike"; ?>" id="td_text_<?php echo $group_row['groupID']; ?>" data-toggle="modal" data-target="#edit_group_form" onclick="update_group_edit(<?php echo $group_row['groupID']; ?>, 0);"><?php echo $group_row['groupText'  ]; if($debug) echo " [".$group_row['groupID']."]"; ?></td>
							<td style="display:none;" id="td_id_<?php     echo $group_row['groupID']; ?>"><?php echo $group_row['groupID'    ]; ?></td>
							<td style="display:none;" id="td_order_<?php  echo $group_row['groupID']; ?>"><?php echo $group_row['groupOrder' ]; ?></td>
							<td style="display:none;" id="td_active_<?php echo $group_row['groupID']; ?>"><?php echo $group_row['groupActive']; ?></td>
						</tr>
					<?php
				}
			?>
		</tbody>
	</table>
</div>

<script src="js/group.js?v=2.1"><!-- Include JS groupific to group.php (this file) --></script>

<div id="new_group" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="new_groupLabel" aria-hidden="true">
	<div class="modal-dialog">
		<div class="modal-content">
			<form class="container-fluid panel-info form-horizontal" method="post">
				<div class="modal-header">
					<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
					<h2 class="modal-title" id="new_groupLabel">New group details</h2>
				</div>
				<div class="modal-body">
					<div class="form-group">
						<label for="add_text" class="col-sm-2 control-label">New group</label>
						<div class="col-sm-10">
							<input type="text" class="form-control" id="add_text" name="add_text" placeholder="Text" required >
						</div>
					</div>
					<div class="form-group">
						<label for="add_order" class="col-sm-2 control-label">Add after</label>
						<div class="col-sm-10">
							<select name="add_order" id="add_order" class="form-control" >
								<!-- list goes here (group.js:update_groups) -->
							</select>
						</div>
					</div>
				</div>
				<div class="modal-footer">
					<button type="button" class="btn btn-default" data-dismiss="modal"><span class='glyphicon glyphicon-remove' aria-hidden='true'></span>&nbsp;Cancel</button>
					<button type="submit" class="btn btn-primary" id="new_group_button" onclick="please_wait('new_group_button');"><span class='glyphicon glyphicon-ok' aria-hidden='true'></span>&nbsp;Create</button>
				</div>
			</form>
		</div>
	</div>
</div>

<div id="edit_group_form" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="edit_groupLabel" aria-hidden="true">
	<div class="modal-dialog">
		<div class="modal-content">
			<div class="modal-header">
				<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
				<h2 class="modal-title" id="edit_groupLabel">Edit group details</h2>
			</div>
			<form class="container-fluid panel-info" method="post">
				<div class="modal-body">
					<div class="form-group">
						<label for="edit_code" >Group text</label>
						<input type="text" class="form-control" id="edit_group" name="edit_group" placeholder="Group name" onchange="update('edit_group_reason', 'G1');" required >
					</div>
					<div class="form-group">
						<label for="edit_order" >Reposition this group in the list <strong>after</strong></label>
						<select name="edit_order" id="edit_order" class="form-control" onchange="update('edit_group_reason', 'G2');">
							<!-- list goes here (group.js:update_groups) -->
						</select>
					</div>
					<div class="form-group">
						<label class="checkbox-inline">
							<input type="checkbox" data-toggle="toggle" id="edit_active" name="edit_active" data-on="Yes" data-off="No" value="1" onchange="update('edit_group_reason', 'G3');" > Is the group <strong>Active</strong>?
						</label>
					</div>
					<input type="<?php echo $debug ? "text" : "hidden"; ?>" id="edit_group_reason" name="edit_reason">
					<input type="<?php echo $debug ? "text" : "hidden"; ?>" id="edit_order_old" name="edit_order_old">
					<input type="<?php echo $debug ? "text" : "hidden"; ?>" id="edit_id" name="edit_id">
				</div>
				<div class="modal-footer">
					<button type="button" class="btn btn-default" data-dismiss="modal"><span class='glyphicon glyphicon-remove' aria-hidden='true'></span>&nbsp;Cancel</button>
					<button type="submit" class="btn btn-primary" id="edit_group_button" onclick="please_wait('edit_group_button');"><span class='glyphicon glyphicon-ok' aria-hidden='true'></span>&nbsp;Update</button>
				</div>
			</form>
		</div>
	</div>
</div>
<?php require "inc/footer.php"; ?>