<?php

/**
 * Copyright (C) DairyWindow 2019
 * admin@dairywindow.nz
 */

/* (C) DairyWindow 2012-2017 */

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
 * Currently HTML5 <input type='time'> is screwed up       *
 * Time fields in chrome require setting an AM or PM field *
 * Which is useless for milk ages                          *
 * So DairyWindow is using <input type='text'> instead     *
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

$time = explode(' ', microtime());
$time = $time[1] + $time[0];
$start = $time;
$qry = array();

$formula = "";
$endscript = "";

function print_time($text = "")
{
	global $start;
	global $debug;

	$time = explode(' ', microtime());
	$time = $time[1] + $time[0];
	$finish = $time;
	$total_time = number_format(($finish - $start), 4);
	if (!$debug) {
		echo "<!-- ";
	} else {
		echo "<div>";
	}
	echo "Time " . $text . ": " . $total_time . " seconds";
	if (!$debug) {
		echo "-->";
	} else {
		echo "</div>";
	}
}

require "inc/connect.php"; //dairywindow
require "inc/getDataRecursive.php";
require_once 'api/connect.php'; //api
require_once 'shiftnotes_constants.php';

if (isset($_POST['c']) && $_POST['c'] != "" && $_POST['c'] != null) {
	$c = clean($_POST['c']);
} elseif (isset($_GET['c']) && $_GET['c'] != "" && $_GET['c'] != null) {
	$c = clean($_GET['c']);
} else {
	$c = date('Y-m-d');
}

if (isset($_POST['p']) && $_POST['p'] != "" && $_POST['p'] != null) {
	$page = $_POST['p'];
} elseif (isset($_GET['p']) && $_GET['p'] != "" && $_GET['p'] != null) {
	$page = $_GET['p'];
} else {
	$sql = "# [shiftnotes] get page id
		Select
			pageID
		From
			dw_sn_page
		Where
			pageSite = ? And
			pageActive = 1
		Order By
			pageOrder,
			pageID
		Limit 1";
	if (!$qry = mysqli_prepared_query($link, $sql, "i", array($_SESSION['userSite']), __FILE__, __LINE__)) {
		reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
	}
	$array = $qry[0];
	$page = $array['pageID'];
}

$title = "Shift notes";
require "inc/head.php";
$menu = "shiftnotes";
require "inc/menu.php";

if ($debug) {
	showdebug();
	$showfield = "text";
} else {
	$showfield = "hidden";
}
$value = 0; //need this for downtime, etc

?>
<span id="c" style="display:none;"><?php echo $c; ?></span>
<span id="saved" class="saved">Saved</span>

<div id="topDIV">
	<h1 class="text-center visible-xs-block hidden-print">
		<?php
		echo date("D j/n/y", strtotime($c));
		if ($debug) {
			echo "&nbsp;<small title=\"" . str_replace("	", "", $sql) . "\"></small>";
		}
		?>
	</h1>
	<h1 class="text-center visible-lg-block hidden-print" id="topdivdate">
		<?php
		echo date("l j F, Y", strtotime($c));
		if ($debug) {
			echo "&nbsp;<small title=\"" . str_replace("	", "", $sql) . "\"></small>";
		}
		?>
	</h1>
	<h1 class="text-center visible-print-block">
		<?php
		echo date("l j F, Y", strtotime($c));
		if ($debug) {
			echo "&nbsp;<small title=\"" . str_replace("	", "", $sql) . "\"></small>";
		}
		?>
	</h1>
</div>

<div class="container-fluid">
	<?php require "inc/calendar.php"; ?>
	<div class="col-md-9" role="main">
		<ul class="nav nav-tabs">
			<?php
			$sql = "# get tab data
				Select
					pageID,
					pageText
				From
					dw_sn_page
				Where
					pageActive = 1 And
					pageSite = ?
				Order By
					pageOrder,
					pageText";
			if (!$qry = mysqli_prepared_query($link, $sql, "i", array($_SESSION['userSite']), __FILE__, __LINE__)) {
				reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
			}

			$pageText = '';
			foreach ($qry as $array) {
				echo "<li role='presentation' ";
				if ($page == $array['pageID']) {
					echo "class='active'";
					$pageText = $array['pageText'];
				}
				echo "><a href='?c=" . $c . "&p=" . $array['pageID'];
				if ($debug) {
					echo "&debug=true";
				}
				echo "' >" . $array['pageText'];
				if ($debug) {
					echo "&nbsp;<small>[" . $array['pageID'] . "]</small>";
				}
				echo "</a></li>";
			}
			?>
		</ul>
		<form method="post" id="mainform">
			<?php
			//get API details
			$sql_api = 'SELECT DISTINCT page FROM login WHERE site = :site AND username <> "kurdtpage" LIMIT 1';
			$params_api = ['site' => $_SESSION['userSite']];
			$stmt = $pdo->run($sql_api, $params_api);
			while ($login = $stmt->fetch()) {
				$pages = $login['page'];
			}

			if ($page == $pages) { //llumin
				echo '<Llumin>';
				$data = [];
				$sql = "# get data for Llumin
					SELECT
						f.fieldTitle AS `title`,
						f.fieldOrder,
						v.valueValue AS `value`
					FROM
						dw_sn_field f LEFT JOIN
						dw_sn_value v ON f.fieldID = v.valueField AND v.valueDay = ?
					WHERE
						f.fieldActive = 1
						AND f.fieldType <> $SN_FIELD_SPACE
						AND f.fieldPage = ?
					ORDER BY
						f.fieldOrder,
						v.valueID";
				$params = [
					$c,
					$pages
				];
				if (!$field_query = mysqli_prepared_query($link, $sql, 'si', $params, __FILE__, __LINE__)) {
					reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
				}

				$groupedData = [];
				$titles = [];

				foreach ($field_query as $field) {
					$titles[$field['fieldOrder']] = $field['title'];
					$groupedData[$field['title']][] = $field['value'] ?? '';
				}

				// Sort titles by fieldOrder
				ksort($titles);

				// Start the HTML table
				echo '<table><thead><tr>';

				// Print table headers
				foreach ($titles as $title) {
					echo '<th style="padding:2px">' . htmlspecialchars($title) . '</th>';
				}
				echo '</tr></thead><tbody>';

				// Determine number of rows
				$rowCount = max(array_map('count', $groupedData));

				// Print table rows
				for ($i = 0; $i < $rowCount; $i++) {
					echo '<tr data-row="' . $i . '">';
					foreach ($titles as $title) {
						$value = $groupedData[$title][$i] ?? '';
						echo '<td style="padding:2px">';
						echo '<!-- title:' . $title . ' -->';
						if ($title == 'Work order number') {
							echo '<a href="http://ia1vs16/LLumin/WorkOrder/Read_View?id=' . $value . '" target="llumin">' . $value . '</a>';
						} else {
							if (substr($value, 0, 4) == 'http') {
								echo '<a href="' . htmlspecialchars($value) . '">';
							}
							echo htmlspecialchars($value);
							if (substr($value, 0, 4) == 'http') {
								echo '</a>';
							}
						}
						echo '</td>';
					}
					echo '</tr>';
				}

				echo '</tbody></table></Llumin>';
			} else {
				if ($debug) {
					echo '<!-- Not Llumin -->';
				}
				$sql1 = "# get field data for this page
					Select
						dw_sn_field.fieldID,
						dw_sn_field.fieldTitle,
						dw_sn_field.fieldType,
						dw_sn_field.fieldDP,
						dw_sn_field.fieldExtra,
						dw_sn_field.fieldShow,
						dw_sn_field.fieldList,
						dw_sn_field.fieldSum1,
						dw_sn_field.fieldOperator,
						dw_sn_field.fieldSum2,
						dw_sn_fielda.fieldTitle As fieldTitlea,
						dw_sn_fieldb.fieldTitle As fieldTitleb,
						dw_sn_field.fieldReadOnly,
						dw_sn_field.fieldMin,
						dw_sn_field.fieldMax,
						dw_sn_field.fieldYes,
						dw_sn_field.fieldNo
					From
						dw_sn_field Left Join
						dw_sn_field dw_sn_fielda
							On dw_sn_field.fieldSum1 = dw_sn_fielda.fieldID Left Join
						dw_sn_field dw_sn_fieldb
							On dw_sn_field.fieldSum2 = dw_sn_fieldb.fieldID Left Join
						dw_sn_page
							On dw_sn_field.fieldPage = dw_sn_page.pageID
					Where
						dw_sn_field.fieldActive = 1 And
						dw_sn_field.fieldPage = ? And
						dw_sn_page.pageSite = ?
					Order By
						dw_sn_field.fieldOrder,
						dw_sn_field.fieldTitle";
				if (!$qry = mysqli_prepared_query($link, $sql1, "ii", array($page, $_SESSION['userSite']), __FILE__, __LINE__)) {
					reporterror(get_error(), $sql1, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
				}

				if (mysqli_prepared_num_rows($qry) == 0) {
					//no results found
					echo "<div class='text-center'>There are no items on this page. Use the <a href='editsn.php'>shift notes editor</a> to add some</div>";
				} else {
					$col = 1;
					$enteredby = "";
					foreach ($qry as $fieldArray) {
						if ($fieldArray['fieldReadOnly'] == 1) {
							$readonly = " readonly ";
						} else {
							$readonly = "";
						}

						//get value from db
						switch ($fieldArray['fieldType']) {
							case $SN_FIELD_CALC:
								//use JS instead of PHP to do this (because it's faster)
								//the JS will grab the values out of the boxes and calculate them
								$value = "";
								$formula = "";
								break;
							case $SN_FIELD_LIST:
								//get all values from 'value' where field= $fieldArray['fieldID'] (more than 1)
								$sql = "# get total for list
									Select
										Sum(dw_sn_value.valueValue) As totalval
									From
										dw_sn_value
									Where
										dw_sn_value.valueField = ? And
										dw_sn_value.valueDay = ?";
								if (!$valueQuery = mysqli_prepared_query($link, $sql, "is", array($fieldArray['fieldID'], $c), __FILE__, __LINE__)) {
									reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
								}

								$valueArray = $valueQuery[0];
								$value = $valueArray['totalval'];
								break;
							default:
								//TODO: This is the slowest query. I have tried several methods to speed it up, to no avail
								/*
								$sql = "# Get field data. fieldType is NOT $SN_FIELD_CALC or $SN_FIELD_LIST
									Select
										dw_sn_value.valueValue,
										dw_user.userFirst,
										dw_user.userLast
									From
										dw_sn_value Left Join
										dw_user
											On dw_sn_value.valueModUser = dw_user.userID
									Where
										dw_sn_value.valueField = " . clean($fieldArray['fieldID']) . " And
										dw_sn_value.valueDay = '" . clean($c) . "'
									Order by
										valueID Desc
									Limit 1";
								if (!$valueQuery = $link->query($sql)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
								*/

								$sql = "# Get field data. fieldType is NOT $SN_FIELD_CALC or $SN_FIELD_LIST
									SELECT
										valueValue,
										valueModUser
									FROM
										dw_sn_value
									WHERE
										valueDay = ? AND
										valueField = ? AND
										valueID = (
											SELECT MAX(valueID)
											FROM dw_sn_value
											WHERE valueDay = ? AND valueField = ?
										)";
								if (!$valueQuery = mysqli_prepared_query($link, $sql, "sisi", array($c, $fieldArray['fieldID'], $c, $fieldArray['fieldID']), __FILE__, __LINE__)) {
									reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
								}

								/* Override for open country dairy */
								$valueArray = $valueQuery[0];
								$value = $valueArray['valueValue'];

								//get default values
								if (empty($value)) {
									$sql = "SELECT `value`
										FROM `dw_defaults`
										WHERE `active` = 1 and `field` = ?";
									if (!$defaultQuery = mysqli_prepared_query($link, $sql, "i", array($fieldArray['fieldID']), __FILE__, __LINE__)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
									$defaultArray = $defaultQuery[0];
									if (!empty($defaultArray['value'])) {
										$value = $defaultArray['value'];
									}
								}

								//now get user. this was taken out to make the query faster
								if ($valueArray['valueModUser']) {
									$sql = "SELECT userFirst, userLast
										FROM dw_user
										WHERE userID = ?";
									if (!$valueQuery = mysqli_prepared_query($link, $sql, "i", array($valueArray['valueModUser']), __FILE__, __LINE__)) {
										reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
									}

									$valueArray = $valueQuery[0];
									if (isset($valueArray['userFirst']) && $valueArray['userFirst'] != "") {
										$enteredby = $valueArray['userFirst'] . " " . substr($valueArray['userLast'], 0, 1);
									}
								}
								break;
						}

						//we have the value, now show it
						if ($col == 1) {
							echo "<div class='row'>";
						}
						if ($fieldArray['fieldType'] != $SN_FIELD_MEMO) {
							/*
							<div class='col-sm-3'>
								<div class="form-group">
									<label for="44">Actual received ODL</label>
									<div class="input-group input-group-sm">
										<input type="number" step="0.001" min="0" value="0.000" class="form-control input-sm" id="44" name="44">
										<div class="input-group-addon">
											m<sup>3</sup>
										</div>
									</div>
								</div>
							</div>
							*/
							if (($fieldArray['fieldType'] != $SN_FIELD_CALC && $fieldArray['fieldType'] != $SN_FIELD_LIST) || $fieldArray['fieldShow'] == 1) {
								switch ($fieldArray['fieldType']) {
									case $SN_FIELD_API:
										echo "<div class='col-sm-12'>"; //whole table width
										break;
									case $SN_FIELD_WIDETEXT:
										echo "<div class='col-sm-6'>"; //wide text
										break;
									default:
										echo "<div class='col-sm-3'>"; //short text
										break;
								}

								echo "<div class='form-group'>";
								if ($fieldArray['fieldType'] != $SN_FIELD_SPACE) {
									echo "<label for='" . $fieldArray['fieldID'] . "'>" . $fieldArray['fieldTitle'];
									if ($debug) {
										echo "&nbsp;<small>[" . $fieldArray['fieldID'] . "]</small>";
									}
									echo "</label>";
								}

								if (!empty($fieldArray['fieldExtra'])) {
									echo "<div class='input-group input-group-sm' style='width:100%;'>";
								}
							}

							//show value
							switch ($fieldArray['fieldType']) {
								case $SN_FIELD_NUMBER:
									switch ($fieldArray['fieldDP']) {
										case 1:
											$step = "0.1";
											break;
										case 2:
											$step = "0.01";
											break;
										case 3:
											$step = "0.001";
											break;
										case 4:
											$step = "0.0001";
											break;
										default:
											$step = "1";
									}
									echo "<input type='number' step='" . $step . "' min='0' value='" . number_format(floatval($value), $fieldArray['fieldDP'], '.', '') . "' class='form-control input-sm dw1' id='" . $fieldArray['fieldID'] . "' data-toggle='tooltip' title='" . $enteredby . "' ";
									if ($readonly == "") {
										echo "name='" . $fieldArray['fieldID'] . "' onblur=\"clickme('" . $fieldArray['fieldID'] . "', 0, 0);\"";
									} else {
										echo $readonly;
									}
									echo " >";
									break;
								case $SN_FIELD_TIME:
									echo "<input type='text' id='" . $fieldArray['fieldID'] . "' value='" . $value . "' class='form-control input-sm dw4' data-toggle='tooltip' title='" . $enteredby . "' ";
									if ($readonly == "") {
										echo "name='" . $fieldArray['fieldID'] . "' onblur=\"clickme('" . $fieldArray['fieldID'] . "', 0, 0);\" ";
									} else {
										echo $readonly;
									}
									echo " >";
									//to change to html5 compliant, change this from text to time (doesnt work with Chrome)
									break;
								case $SN_FIELD_CALC:
									if ($debug) {
										$showfield = "number";
									} else {
										$showfield = "hidden";
									}

									$sql = '# get calculation
										SELECT
											dw_sn_field1.fieldTitle AS fieldTitle1,
											dw_sn_field.fieldOperator,
											dw_sn_field2.fieldTitle AS fieldTitle2
										FROM
											dw_sn_field LEFT JOIN
											dw_sn_field dw_sn_field1 ON dw_sn_field1.fieldID = dw_sn_field.fieldSum1 LEFT JOIN
											dw_sn_field dw_sn_field2 ON dw_sn_field.fieldSum2 = dw_sn_field2.fieldID
										WHERE
											dw_sn_field.fieldID = ?';
									if (!$calcquery = mysqli_prepared_query($link, $sql, "i", array($fieldArray['fieldID']), __FILE__, __LINE__)) {
										reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
									}

									$value = number_format(getDataRecursive($fieldArray['fieldID'], $c), $fieldArray['fieldDP']);
									echo "<input min='0' type='";
									if ($fieldArray['fieldShow'] == 1) {
										echo "number";
									} else {
										echo $showfield;
									}
									$title = $calcquery[0]['fieldTitle1'] . $calcquery[0]['fieldOperator'] . $calcquery[0]['fieldTitle2'];
									echo "' class='form-control input-sm dw6' value='" . $value . "' id='" . $fieldArray['fieldID'] . "' readonly data-toggle='tooltip' title='" . $title . "' >";

									break;
								case $SN_FIELD_LIST:
									echo "<div class='row'>
										<div class='col-md-4'>";
									$sql = "
										Select
											dw_dtarea.dtAreaID,
											dw_dtarea.dtAreaText
										From
											dw_dtarea
										Where
											dtAreaBC = ?
										Order By
											dw_dtarea.dtAreaOrder,
											dw_dtarea.dtAreaText";
									if ($fieldArray['fieldList'] == 4) {
										if (!$dtquery = mysqli_prepared_query($link, $sql, "i", array(1), __FILE__, __LINE__)) {
											reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
										}
									} else {
										if (!$dtquery = mysqli_prepared_query($link, $sql, "i", array(0), __FILE__, __LINE__)) {
											reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
										}
									}
									if ($fieldArray['fieldReadOnly'] == 1) {
										$readonly = " disabled ";
									} else {
										$readonly = "";
									}
									echo "
										<select id='area" . $fieldArray['fieldID'] . "' class='form-control input-sm hidden-print dw7a' ";
									if ($readonly == "") {
										echo "name='area" . $fieldArray['fieldID'] . "' ";
									} else {
										echo $readonly;
									}
									echo " >
										<option disabled selected value='0'>Choose reason</option>";
									foreach ($dtquery as $dtarray) {
										echo "<option value='" . $dtarray['dtAreaID'] . "'>" . $dtarray['dtAreaText'] . "</option>";
									}
									echo "
										</select>
									</div>
		
									<div class='col-md-4' style='padding-left:0; padding-right:0;'>
										<input type='";
									switch ($fieldArray['fieldList']) {
										case 0: //nothing
											echo "text' ";
											break;
										case 1: //damages
											echo "number' title='Items damaged' placeholder='# items' ";
											break;
										case 2: //downtime
											echo "text' title='Hours:Minutes' placeholder='HH:MM' maxlength='5' ";
											//to change to html5 compliant, change this from text to time (doesnt work with Chrome)
											break;
										case 3: //stockfood
											echo "number' title='Tonnes' placeholder='Tonnes' ";
											break;
										case 4: //downtime B&C
											echo "text' title='Hours:Minutes' placeholder='HH:MM' maxlength='5' ";
											//to change to html5 compliant, change this from text to time (doesnt work with Chrome)
											break;
										default:
											echo "text' ";
											reporterror("Unknown fieldList: " . $fieldArray['fieldList'], "None", $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
									}
									echo "class='form-control input-sm hidden-print dw7b' id='" . $fieldArray['fieldID'] . "' name='" . $fieldArray['fieldID'] . "' onblur=\"clickme('" . $fieldArray['fieldID'] . "', 0, 1);\" >";
									if ($fieldArray['fieldList'] == 2 || $fieldArray['fieldList'] == 4) {
										time_input($fieldArray['fieldID']);
									}
									echo "</div>";

									$listdata = '';
									$sql = '# Get items for 7 (list)
										Select
											dw_dtarea.dtAreaText,
											dw_sn_value.valueValue
										From
											dw_sn_value Left Join
											dw_dtarea
											On dw_sn_value.valueReason = dw_dtarea.dtAreaID
										Where
											dw_sn_value.valueField = ? And
											dw_sn_value.valueDay = ?
										Order By
											dw_dtarea.dtAreaOrder,
											dw_dtarea.dtAreaText';
									if (!$listquery = mysqli_prepared_query($link, $sql, "is", array($fieldArray['fieldID'], $c), __FILE__, __LINE__)) {
										reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
									}
									foreach ($listquery as $listarray) {
										$listdata .= "<nobr>" . $listarray['dtAreaText'] . " - " . $listarray['valueValue'] . "</nobr><br>"; //not sure if nobr still works??
									}
									echo "
										<div class='col-md-4' data-toggle='popover' title='Details' data-content='" . $listdata . "' data-trigger='focus' data-html='true' style='cursor:pointer;'>
											<input type='";
									if ($fieldArray['fieldList'] == 2 || $fieldArray['fieldList'] == 4) {
										echo "text";
									} // for html5 compliance, change this to 'time'
									else {
										echo "number";
									}
									if ($value == '') {
										$value = 0;
									}
									echo "' readonly id='" . $fieldArray['fieldID'] . "total' value='" . $value . "' class='form-control input-sm dw7c' >
										</div>
									</div>";
									break;
								case $SN_FIELD_SPACE:
									echo "&nbsp;";
									break;
								case $SN_FIELD_SLIDER:
									echo "
									<br>" . $fieldArray['fieldMin'] . "&nbsp;
									<input
										type='text'
										name='" . $fieldArray['fieldID'] . "'
										id='" . $fieldArray['fieldID'] . "'
										data-slider-id='" . $fieldArray['fieldID'] . "'
										value='" . $value . "'
										data-slider-value='" . $value . "'
										data-slider-min='" . $fieldArray['fieldMin'] . "'
										data-slider-max='" . $fieldArray['fieldMax'] . "'
										data-slider-enabled='";
									if ($readonly == "") {
										echo "true";
									} else {
										echo "false";
									}
									echo "'
									>&nbsp;" . $fieldArray['fieldMax'] . "<br>
									<script>
										$(function() {
											var mySlider" . $fieldArray['fieldID'] . " = $('#" . $fieldArray['fieldID'] . "').bootstrapSlider({
												tooltip: 'always',
												tooltip_position: 'bottom',
												precision: " . $fieldArray['fieldDP'] . ",
												step: ";
									switch ($fieldArray['fieldDP']) {
										case 1:
											echo "0.1";
											break;
										case 2:
											echo "0.01";
											break;
										case 3:
											echo "0.001";
											break;
										case 4:
											echo "0.0001";
											break;
										default:
											echo "1";
									}
									echo "
											});
				
											var value" . $fieldArray['fieldID'] . " = mySlider" . $fieldArray['fieldID'] . ".bootstrapSlider('getValue');
											//console.log('value" . $fieldArray['fieldID'] . ": '+value" . $fieldArray['fieldID'] . ");
				
											mySlider" . $fieldArray['fieldID'] . ".on('slideStop', function() {
												value" . $fieldArray['fieldID'] . " = mySlider" . $fieldArray['fieldID'] . ".bootstrapSlider('getValue');
												clickme('" . $fieldArray['fieldID'] . "',0,0,value" . $fieldArray['fieldID'] . ")
											});
				
											$('#" . $fieldArray['fieldID'] . ".slider-selection').css('background-color', '#BABABA');
										});
									</script>";
									break;
								case $SN_FIELD_YESNO:
			?>
									<input type='checkbox' id='" . $fieldArray[' fieldID'] . "' name='" . $fieldArray['fieldID']
										. "' data-onstyle='success' data-offstyle='danger' data-on='" . $fieldArray['fieldYes'] . "' data-off='"
										. $fieldArray['fieldNo'] . "' value='1' data-width='100%' >
									<script>
										$(function() {												
											<?php
											echo "$('#" . $fieldArray['fieldID'] . "').bootstrapToggle();";
											if ($value == 1) {
												echo "$('#" . $fieldArray['fieldID'] . "').bootstrapToggle('on');";
											} else {
												echo "$('#" . $fieldArray['fieldID'] . "').bootstrapToggle('off');";
											}

											if ($readonly != "") {
												echo "$('#" . $fieldArray['fieldID'] . "').bootstrapToggle('disable');";
											}

											echo "
									$('#" . $fieldArray['fieldID'] . "').change(function() {
										if ($('#" . $fieldArray['fieldID'] . "').prop('checked')) var value = 1;
										else var value = 0;
										//alert('value: '+value);
										if ('" . $readonly . "'=='') clickme('" . $fieldArray['fieldID'] . "',0,0,value);
									});
									";
											?>
										});
									</script>
								<?php
									break;
								case $SN_FIELD_USER:
									$sql = '# get user names
										Select
											userID,
											userFirst,
											userLast
										From
											dw_user
										Where
											userID >= ?
										Order By
											userFirst,
											userLast';
									if (!$qry = mysqli_prepared_query($link, $sql, 'i', array(0), __FILE__, __LINE__)) {
										reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
									}

									echo "<select id='" . $fieldArray['fieldID'] . "' name='' class='form-control input-sm dw11' title='" . $enteredby . "' ";
									if ($readonly == "") {
										echo "name='" . $fieldArray['fieldID'] . "' onclick=\"clickme('" . $fieldArray['fieldID'] . "',0,0);\" ";
									} else {
										echo $readonly;
									}
									echo "><option></option>";
									foreach ($qry as $row) {
										echo "<option";
										if ($row['userID'] == $value) {
											echo " selected";
										}
										echo " value='" . $row['userID'] . "'>" . $row['userFirst'] . ' ' . $row['userLast'] . "</option>";
									}
									echo "</select>";
									break;
								case $SN_FIELD_API:
									echo '<Llumin>';

									$sql = "# get data for Llumin
											SELECT 
												fieldTitle AS `title`,
												v.valueValue AS `value`
											FROM
												dw_sn_field f LEFT JOIN
												dw_sn_value v ON f.fieldID = v.valueField AND v.valueDay = ?
											WHERE
												f.fieldActive = 1
												AND f.fieldType <> $SN_FIELD_SPACE
												AND f.fieldPage = ?
												AND EXISTS (
													SELECT 1
													FROM dw_sn_value craft_value
													INNER JOIN dw_sn_field craft_field ON craft_value.valueField = craft_field.fieldID
													WHERE craft_field.fieldTitle = 'Craft'
													AND craft_value.valueValue = ?
													AND craft_value.valueDay = v.valueDay
												)
											ORDER BY
												f.fieldOrder,
												v.valueID";

									$params = [
										$c,
										$pages,
										$pageText
									];

									if (!$field_query = mysqli_prepared_query($link, $sql, 'sis', $params, __FILE__, __LINE__)) {
										reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
									}

									// Collect data by field title and row index
									$data = [];
									foreach ($field_query as $field) {
										$data[$field['title']][] = $field['value'];
									}

									// Build column titles dynamically from the keys of $data
									$column_titles = array_keys($data);

									// Remove "Craft" from column titles
									if (($key = array_search('Craft', $column_titles)) !== false) {
										unset($column_titles[$key]);
									}

									// Find which row indices are allowed (where Craft == $pageText)
									$allowed = [];
									if (isset($data['Craft'])) {
									foreach ($data['Craft'] as $key => $value) {
										if ($value == $pageText) {
											$allowed[] = $key;
										}
									}
									}

									// Build the HTML table
									echo '<table><thead><tr>';
									foreach ($column_titles as $title) {
										echo '<th style="padding:2px">' . htmlspecialchars($title) . '</th>';
									}
									echo '</tr></thead><tbody>';

									// For each allowed row index, print a table row
									foreach ($allowed as $row_index) {
										echo '<tr style="border-top: 1px solid black;">';

										foreach ($column_titles as $title) {
											echo '<td style="padding:2px">';

											$value = isset($data[$title][$row_index]) ? htmlspecialchars($data[$title][$row_index]) : '';
											if ($title == 'Work order number') {
												echo '<a href="http://ia1vs16/LLumin/WorkOrder/Read_View?id=' . $value . '" target="llumin">' . $value . '</a>';
											} else if (substr($value, 0, 4) == 'http') {
												echo '<a href="' . $value . '">' . $value . '</a>';
											} else {
												// For other fields, just print the value
												echo $value;
											}

											echo '</td>';
										}

										echo '</tr>';
									}

									echo '</tbody></table></Llumin>';

									break;

								default:
									echo "<input type='text' id='" . $fieldArray['fieldID'] . "' value='" . $value . "' class='form-control input-sm dw0' data-toggle='tooltip' title='" . $enteredby . "' ";
									if ($readonly == "") {
										echo "name='" . $fieldArray['fieldID'] . "' onblur=\"clickme('" . $fieldArray['fieldID'] . "',0,0);\" ";
									} else {
										echo $readonly;
									}
									echo " >";
							}
							if ($debug) {
								$showfield = "text";
							} else {
								$showfield = "hidden";
							}

							//JS for time colons
							if ($fieldArray['fieldType'] == $SN_FIELD_TIME) {
								time_input($fieldArray['fieldID']);
							}
							//extra
							if ($fieldArray['fieldExtra'] != "" && $fieldArray['fieldExtra'] != null && $fieldArray['fieldType'] != $SN_FIELD_YESNO) {
								echo "<div class='input-group-addon' ";
								if ($fieldArray['fieldExtra'] == "Me") {
									echo "onclick=\"setname('" . $fieldArray['fieldID'] . "', '" . $_SESSION['userFirst'] . " " . $_SESSION['userLast'] . "');\" style='cursor:pointer' title='Click to insert your name' ";
								}
								echo ">" . $fieldArray['fieldExtra'] . "</div>";
							}
							//end divs							col-sm-3 form-group
							if ($fieldArray['fieldType'] != $SN_FIELD_CALC || $fieldArray['fieldShow'] == 1) {
								echo "</div></div>";
							}
							if ($fieldArray['fieldExtra'] != "" && $fieldArray['fieldExtra'] != null) {
								echo "</div>";
							}

							if ($fieldArray['fieldType'] == $SN_FIELD_WIDETEXT) {
								$col += 6;
							} elseif ($fieldArray['fieldType'] != $SN_FIELD_CALC || $fieldArray['fieldShow'] == 1) {
								$col += 3;
							} //all others (except for type=6 or show=1)
						} else {
							/*
					<div class="col-lg-6">
						<label for="0">Day notes</label>
						<textarea class='form-control textarea' rows='10' name='0' id='0' style='resize:none;width:100%;' >Blah</textarea>
					</div>
				*/
							echo "<div class='col-lg-6 dw3'>
						<label for='" . $fieldArray['fieldID'] . "'>" . $fieldArray['fieldTitle'] . "</label>
						<div class='hidden-print'>
							<textarea class='form-control textarea dw3' rows='" . $fieldArray['fieldDP'] . "' name='" . $fieldArray['fieldID'] . "' id='" . $fieldArray['fieldID'] . "' style='resize:none;width:100%;' maxlength='16300' >" . $value . "</textarea>
						</div>
						<div class='visible-print-block dw3'>" . $value . "</div>
					</div>";
							$col += 6;
						}

						echo '<!-- col:' . $col . ' -->';

						if ($col >= 12) {
							$col = 1;
							echo "</div>"; //new row
						}
					}

					if ($col != 1) {
						echo '</div>';
					}

					if (($_SESSION['userSite'] == 13 && $_GET['c'] == date("Y-m-d")) || $_SESSION['userSite'] <> 13) {
						echo "<div class='text-center hidden-print'>
				<input type='" . $showfield . "' name='c' id='c' value='" . $c . "'>
				<input type='" . $showfield . "' name='p' id='p' value='" . $page . "'>
				<button type='button' class='btn btn-default btn-primary' name='save' ><span class='glyphicon glyphicon-save' aria-hidden='true'></span>&nbsp;Save</button>
				<button type='button' class='btn btn-default' onclick=\"$" . "Spelling.SpellCheckInWindow('editors')\"><span class='glyphicon glyphicon-check' aria-hidden='true'></span>&nbsp;Spell check</button>
			</div>";
					} else {
						echo "<div class='text-center hidden-print'>
				<button type='button' class='btn btn-default btn-primary' name='save' disabled style='cursor: not-allowed !important;'><span class='glyphicon glyphicon-save' aria-hidden='true'></span>&nbsp;Save</button>
				<button type='button' class='btn btn-default' onclick=\"$" . "Spelling.SpellCheckInWindow('editors')\"><span class='glyphicon glyphicon-check' aria-hidden='true'></span>&nbsp;Spell check</button>
			</div>";
					}
				}
			}
								?>
		</form>
	</div>
</div>
 
<script src=" js/responsive-calendar.js?v=2.1"><!-- for calendar --></script>
									<script src="js/tinymce/tinymce.min.js?v=2.1">
										<!-- For editable textareas 
										-->
									</script>
									<script src="js/shiftnotes.js?v=2.6">
										<!-- Include JS specific to shiftnotes 
										-->
									</script>
									<script src="js/JavaScriptSpellCheck/include.js?v=2.1">
										<!-- For JS spell checker 
										-->
									</script>

									<?php
									echo $endscript;
									print_time('bottom');
									require "inc/footer.php";
