<?php
	/* (C) DairyWindow 2012-2017 */
	
	require "inc/connect.php";
	require "inc/fade.php";
	
	if(isset($_POST['new_calc']) && $_POST['new_calc']!=""){
		//create new calc
		
		$new_calc = clean($_POST['new_calc']);
		if(isset($_POST['calcText1']) && $_POST['calcText1']!="" && $_POST['calcText1']!=null) $calcText1 = iconv(mb_detect_encoding(clean($_POST['calcText1']), mb_detect_order(), true), "UTF-8", clean($_POST['calcText1'])); else $calcText1 = "";
		if(isset($_POST['calcTest1']) && $_POST['calcTest1']!="" && $_POST['calcTest1']!=null) $calcTest1 = clean($_POST['calcTest1']); else $calcTest1 = "NULL";
		if(isset($_POST['calcText2']) && $_POST['calcText2']!="" && $_POST['calcText2']!=null) $calcText2 = clean($_POST['calcText2']); else $calcText2 = "";
		if(isset($_POST['calcTest2']) && $_POST['calcTest2']!="" && $_POST['calcTest2']!=null) $calcTest2 = clean($_POST['calcTest2']); else $calcTest2 = "NULL";
		if(isset($_POST['calcText3']) && $_POST['calcText3']!="" && $_POST['calcText3']!=null) $calcText3 = clean($_POST['calcText3']); else $calcText3 = "";
		if(isset($_POST['calcTest3']) && $_POST['calcTest3']!="" && $_POST['calcTest3']!=null) $calcTest3 = clean($_POST['calcTest3']); else $calcTest3 = "NULL";
		if(isset($_POST['calcText4']) && $_POST['calcText4']!="" && $_POST['calcText4']!=null) $calcText4 = clean($_POST['calcText4']); else $calcText4 = "";
		if(isset($_POST['calcTest4']) && $_POST['calcTest4']!="" && $_POST['calcTest4']!=null) $calcTest4 = clean($_POST['calcTest4']); else $calcTest4 = "NULL";
		if(isset($_POST['calcText5']) && $_POST['calcText5']!="" && $_POST['calcText5']!=null) $calcText5 = clean($_POST['calcText5']); else $calcText5 = "";

		if($calcText1[0]=="=") $calcText1 = substr($calcText1, 1); //remove = at start due to users thinking it's excel

		$sql="
			# insert new calc
			INSERT INTO dw_calc                  (calcName ,  calcText1,  calcTest1,  calcText2,  calcTest2,  calcText3,  calcTest3,  calcText4,  calcTest4,  calcText5, calcModDate,    calcModUser   ,       calcSite       )
			VALUES                               (    ?    ,      ?    ,      ?    ,      ?    ,      ?    ,      ?    ,      ?    ,      ?    ,      ?    ,      ?    ,    now()   ,        ?         ,           ?          )
		";
		if(!savesql($link, $sql, "ssisisisisii", array($new_calc, $calcText1, $calcTest1, $calcText2, $calcTest2, $calcText3, $calcTest3, $calcText4, $calcTest4, $calcText5,            $_SESSION['userID'], $_SESSION['userSite']), __FILE__, __LINE__)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
	}else{
		if(isset($_POST['edit_calcID']) && $_POST['edit_calcID']!="" && $_POST['edit_calcID']!=null){
			//edit existing calc
			$sql="
				# update this calc
				UPDATE dw_calc SET
					calcName       = ?,
					calcText1      = ?,
					calcTest1      = ?,
					calcText2      = ?,
					calcTest2      = ?,
					calcText3      = ?,
					calcTest3      = ?,
					calcText4      = ?,
					calcTest4      = ?,
					calcText5      = ?,
					calcChangeCode = ?,
					calcModDate    = now(),
					calcModUser    = ?
				WHERE calcID     = ?
			";

			$edit_calcText1 = $_POST['edit_calcText1'][0] == "=" ? substr($_POST['edit_calcText1'], 1) : $_POST['edit_calcText1'];

			if(isset($_POST['edit_calcTest2'])) $edit_calcTest2 = $_POST['edit_calcTest2'];
			else $edit_calcTest2 = 0;
			
			if(isset($_POST['edit_calcTest3'])) $edit_calcTest3 = $_POST['edit_calcTest3'];
			else $edit_calcTest3 = 0;
			
			if(isset($_POST['edit_calcTest4'])) $edit_calcTest4 = $_POST['edit_calcTest4'];
			else $edit_calcTest4 = 0;
			
			if(!savesql($link, $sql, "ssisisisissii", array(
				$_POST['edit_calc'],
				$edit_calcText1,
				$_POST['edit_calcTest1'],
				$_POST['edit_calcText2'],
				$edit_calcTest2,
				$_POST['edit_calcText3'],
				$edit_calcTest3,
				$_POST['edit_calcText4'],
				$edit_calcTest4,
				$_POST['edit_calcText5'],
				$_POST['edit_calc_reason'],
				$_SESSION['userID'],
				$_POST['edit_calcID']
			), __FILE__, __LINE__)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
		}
	}
	
	$title = "Calculations";
	require "inc/head.php";
	$menu="calc";
	require "inc/menu.php";
	
	if($debug) showdebug();
?>

<div id="topDIV" >
	<h1 class="text-center">
		<?php echo $title; ?>
		<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#new_calc_form" ><span class='glyphicon glyphicon-plus' aria-hidden='true'></span>&nbsp;Create new</button>
	</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 class="table-responsive" id="main" role="main" >
	<table class="table table-hover" id="table">
		<thead>
			<tr id="table_head" style="background-color:white;color:inherit;white-space:nowrap;">
				<!--<th class="text-center th_buttons" id="th_buttons">&nbsp;</th>-->
				<th class="text-center th_name"    id="th_name">Name</th>
				<th style="display:none;"          id="th_name2"></th>
				<th class="text-center th_calc"    id="th_calc">Calculation formula</th>
				<?php if($_SESSION['userLevel']==1 || $_SESSION['userLevel']=="1"){ ?>
					<th class="text-center th_mod" id="th_mod">Modified by</th>
				<?php } ?>
			</tr>
		</thead>
		<tbody>
			<?php
				$sql="
					# sql for main table
					Select
						dw_calc.calcID,
						dw_calc.calcName,
						dw_calc.calcText1,
						dw_calc.calcTest1,
						dw_test_1.testText As testText1,
						dw_calc.calcText2,
						dw_calc.calcTest2,
						dw_test_2.testText As testText2,
						dw_calc.calcText3,
						dw_calc.calcTest3,
						dw_test_3.testText As testText3,
						dw_calc.calcText4,
						dw_calc.calcTest4,
						dw_test_4.testText As testText4,
						dw_calc.calcText5,
						dw_user.userFirst,
						dw_user.userLast,
						dw_calc.calcModDate,
						dw_change.changeText
					From
						dw_change Right Join
						(((((dw_calc Left Join
						dw_test As dw_test_1
							On dw_calc.calcTest1 = dw_test_1.testID) Left Join
						dw_test As dw_test_2
							On dw_calc.calcTest2 = dw_test_2.testID) Left Join
						dw_test As dw_test_3
							On dw_calc.calcTest3 = dw_test_3.testID) Left Join
						dw_test As dw_test_4
							On dw_calc.calcTest4 = dw_test_4.testID) Left Join
						dw_user
							On dw_calc.calcModUser = dw_user.userID)
							On dw_change.changeID = dw_calc.calcChangeCode
					Where
						dw_calc.calcSite = ?
					Order By
						dw_calc.calcModDate Desc
				";
				if(!$calc_query = mysqli_prepared_query($link, $sql, "i", array($_SESSION['userSite']), __FILE__, __LINE__)) reporterror(get_error(), $sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
				foreach($calc_query as $calc_row){
					?>
						<tr class="text-nowrap" id="calc_<?php echo $calc_row['calcID']; ?>" data-toggle="modal" data-target="#edit_calc_form" onclick="update_calc_edit(<?php echo $calc_row['calcID']; ?>, <?php echo $debug ? "1" : "0"; ?>);" >
							<td class="text-center th_name" id="td_calc_<?php  echo $calc_row['calcID']; ?>" ><?php echo $calc_row['calcName']; if($debug) echo " <small>[".$calc_row['calcID']."]</small>"; ?></td>
							<td style="display:none;"       id="td_calc2_<?php echo $calc_row['calcID']; ?>" ><?php echo $calc_row['calcName']; ?></td>
							<td class="text-center th_calc" id="td_calc_<?php  echo $calc_row['calcID']; ?>" >
								<?php
									$open_bracket = " ";
									$close_bracket = " ";
									
									echo "<span id='calcText1_".$calc_row['calcID']."'>".$calc_row['calcText1']."</span>".$open_bracket."<span id='calcTest1_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest1']."</span><span id='calc_row['testText1']_".$calc_row['calcID']."'>".$calc_row['testText1']."</span>".$close_bracket;
									if($calc_row['calcText2']!="" && $calc_row['calcText2']!=null){
										echo "<span id='calcText2_".$calc_row['calcID']."'>".$calc_row['calcText2']."</span>";
										if($calc_row['testText2']!="" && $calc_row['testText2']!=null){
											echo $open_bracket."<span id='calcTest2_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest2']."</span><span id='calc_row['testText2']_".$calc_row['calcID']."'>".$calc_row['testText2']."</span>".$close_bracket;
											if($calc_row['calcText3']!="" && $calc_row['calcText3']!=null){
												echo "<span id='calcText3_".$calc_row['calcID']."'>".$calc_row['calcText3']."</span>";
												if($calc_row['testText3']!="" && $calc_row['testText3']!=null){
													echo $open_bracket."<span id='calcTest3_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest3']."</span><span id='calc_row['testText3']_".$calc_row['calcID']."'>".$calc_row['testText3']."</span>".$close_bracket;
													if($calc_row['calcText4']!="" && $calc_row['calcText4']!=null){
														echo "<span id='calcText4_".$calc_row['calcID']."'>".$calc_row['calcText4']."</span>";
														if($calc_row['testText4']!="" && $calc_row['testText4']!=null){
															echo $open_bracket."<span id='calcTest4_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest4']."</span><span id='calc_row['testText4']_".$calc_row['calcID']."'>".$calc_row['testText4']."</span>".$close_bracket;
															if($calc_row['calcText5']!="" && $calc_row['calcText5']!=null){
																echo "<span id='calcText5_".$calc_row['calcID']."'>".$calc_row['calcText5']."</span>";
															}else echo "<span id='calcText5_".$calc_row['calcID']."'></span>";
														}else echo "<span id='calcTest4_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest4']."</span><span id='calc_row['testText4']_".$calc_row['calcID']."'></span><span id='calcText5_".$calc_row['calcID']."'></span>";
													}else echo "<span id='calcText4_".$calc_row['calcID']."'></span><span id='calcTest4_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest4']."</span><span id='calc_row['testText4']_".$calc_row['calcID']."'></span><span id='calcText5_".$calc_row['calcID']."'></span>";
												}else echo "<span id='calcTest3_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest3']."</span><span id='calc_row['testText3']_".$calc_row['calcID']."'></span><span id='calcText4_".$calc_row['calcID']."'></span><span id='calcTest4_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest4']."</span><span id='calc_row['testText4']_".$calc_row['calcID']."'></span><span id='calcText5_".$calc_row['calcID']."'></span>";
											}else echo "<span id='calcText3_".$calc_row['calcID']."'></span><span id='calcTest3_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest3']."</span><span id='calc_row['testText3']_".$calc_row['calcID']."'></span><span id='calcText4_".$calc_row['calcID']."'></span><span id='calcTest4_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest4']."</span><span id='calc_row['testText4']_".$calc_row['calcID']."'></span><span id='calcText5_".$calc_row['calcID']."'></span>";
										}else echo "<span id='calcTest2_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest2']."</span><span id='calc_row['testText2']_".$calc_row['calcID']."'></span><span id='calcText3_".$calc_row['calcID']."'></span><span id='calcTest3_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest3']."</span><span id='calc_row['testText3']_".$calc_row['calcID']."'></span><span id='calcText4_".$calc_row['calcID']."'></span><span id='calcTest4_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest4']."</span><span id='calc_row['testText4']_".$calc_row['calcID']."'></span><span id='calcText5_".$calc_row['calcID']."'></span>";
									}else echo "<span id='calcText2_".$calc_row['calcID']."'></span><span id='calcTest2_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest2']."</span><span id='calc_row['testText2']_".$calc_row['calcID']."'></span><span id='calcText3_".$calc_row['calcID']."'></span><span id='calcTest3_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest3']."</span><span id='calc_row['testText3']_".$calc_row['calcID']."'></span><span id='calcText4_".$calc_row['calcID']."'></span><span id='calcTest4_".$calc_row['calcID']."' style='display:none;'>".$calc_row['calcTest4']."</span><span id='calc_row['testText4']_".$calc_row['calcID']."'></span><span id='calcText5_".$calc_row['calcID']."'></span>";
								?>
							</td>
							
							<?php
								if($_SESSION['userLevel']==1 || $_SESSION['userLevel']=="1"){
									$fullname = $calc_row['userFirst']." ".$calc_row['userLast'][0];
								?>
								<td class="text-center td_mod" id="td_mod_<?php echo $calc_row['calcID']; ?>" title="<?php echo $calc_row['changeText']; ?>" ><?php echo $fullname." ".date('j/n/y',strtotime($calc_row['calcModDate'])); ?></td>
							<?php } ?>
						</tr>
					<?php
				}
			?>
		</tbody>
	</table>
</div>

<script src="js/calc.js?v=2.1"><!-- Include JS specific to calc.php (this file) --></script>

<div id="new_calc_form" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="new_calcLabel" aria-hidden="true">
	<div class="modal-dialog">
		<div class="modal-content">
			<form class="container-fluid panel-info" method="post" style="padding:0;">
				<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_calcLabel">New calculation details</h2>
				</div>
				<div class="modal-body">
					
					<div class="form-group">
						<label for="new_calc" >Name of calculation</label>
						<input type="text" name="new_calc" id="new_calc" class="form-control" placeholder="Description of calculation">
					</div>
					<div class="form-group">
						<label for="new_calcTest1" >Calculation formula</label>
						<div class="input-group">
							<?php
								$test_sql="
									Select
										dw_test.testID,
										dw_group.groupText,
										dw_test.testText,
										dw_test.testCalc
									From
										dw_group Left Join
										dw_test
											On dw_test.testGroup = dw_group.groupID
									Where
										dw_test.testSite = ? And
										dw_test.testActive = 1
									Order By
										dw_group.groupOrder,
										dw_test.testOrder,
										dw_test.testText
								";
							?>
							<input type="text" class="form-control w57 text-center" id="calcText1" name="calcText1" required >
							<label for="calcTest1" class="sr-only">Test 1</label>
							<?php
								if(!$qryTest = mysqli_prepared_query($link, $test_sql, "i", array($_SESSION['userSite']), __FILE__, __LINE__)) reporterror(get_error(), $test_sql, $_SERVER['REQUEST_URI'], __FILE__, __LINE__);
							?>
							<select name="calcTest1" id="calcTest1" class="form-control w57" >
								<option value='0' selected >&nbsp;</option>
								<?php
									$group = array();
									foreach($qryTest as $row){
										$group[$row['groupText']][] = $row;
									}
									foreach ($group as $key => $values) {
										echo "<optgroup label='".$key."'>\n";
										foreach ($values as $value) {
											echo "	<option value='".$value['testID']."'>".$value['testText'];
											if($debug) echo " [".$value['testID']."]";
											echo "</option>\n";
										}
										echo "</optgroup>\n";
									}
								?>
							</select>
							<input type="text" class="form-control w57 text-center" id="calcText2" name="calcText2" >
							<label for="calcTest2" class="sr-only">Format</label>
							<select name="calcTest2" id="calcTest2" class="form-control w57" ></select>
							<input type="text" class="form-control w57 text-center" id="calcText3" name="calcText3" >
							<label for="calcTest3" class="sr-only">Format</label>
							<select name="calcTest3" id="calcTest3" class="form-control w57" ></select>
							<input type="text" class="form-control w57 text-center" id="calcText4" name="calcText4" >
							<label for="calcTest4" class="sr-only">Format</label>
							<select name="calcTest4" id="calcTest4" class="form-control w57" ></select>
							<input type="text" class="form-control w57 text-center" id="calcText5" name="calcText5" >
							<script>

								var tests = document.getElementById('calcTest1').innerHTML;
								var calcTest2 = document.getElementById('calcTest2'); calcTest2.innerHTML = tests;
								var calcTest3 = document.getElementById('calcTest3'); calcTest3.innerHTML = tests;
								var calcTest4 = document.getElementById('calcTest4'); calcTest4.innerHTML = tests;

								$("#calcTest2").html($("#calcTest1").html());
								$("#calcTest3").html($("#calcTest1").html());
								$("#calcTest4").html($("#calcTest1").html());
								dropdown("#calcTest1");
								dropdown("#calcTest2");
								dropdown("#calcTest3");
								dropdown("#calcTest4");
							</script>
						</div>
					</div>
				</div>
				<div class="modal-footer">
					<span class="pull-left">Instead of times (&times;), use an asterisk (*)<br>Instead of divided by (&divide;), use a slash (&sol;)</span>
					<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_calc_button" onclick="please_wait('new_calc_button');"><span class='glyphicon glyphicon-ok' aria-hidden='true'></span>&nbsp;Create</button>
				</div>
			</form>
		</div>
	</div>
</div>

<div id="edit_calc_form" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="edit_calcLabel" aria-hidden="true">
	<div class="modal-dialog" >
		<div class="modal-content">
			<form class="container-fluid panel-info" method="post" style="padding:0;">
				<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_calcLabel">Edit calculation details</h2>
				</div>
				<div class="modal-body">
					<div class="form-group">
						<label for="edit_calc" >Name of calculation</label>
						<input type="text" name="edit_calc" id="edit_calc" class="form-control" >
					</div>
					<div class="form-group">
						<label for="edit_calcText1" >Calculation formula</label>
						<div class="input-group" style="width:560px;">
							<label for="edit_calcText1" class="sr-only">Text 1</label>
							<input type="text"          class="form-control w57 text-center" id="edit_calcText1" name="edit_calcText1" onchange="update('edit_calc_reason', 'B1');" required >
							<label for="edit_calcTest1" class="sr-only">Test 1</label>
							<select                     class="form-control w57 text-center" id="edit_calcTest1" name="edit_calcTest1" onchange="update('edit_calc_reason', 'B2');" ></select>
							<label for="edit_calcText2" class="sr-only">Text 2</label>
							<input type="text"          class="form-control w57 text-center" id="edit_calcText2" name="edit_calcText2" onchange="update('edit_calc_reason', 'B2');" >
							<label for="edit_calcTest2" class="sr-only">Test 2</label>
							<select                     class="form-control w57 text-center" id="edit_calcTest2" name="edit_calcTest2" onchange="update('edit_calc_reason', 'B2');" ></select>
							<label for="edit_calcText1" class="sr-only">Text 3</label>
							<input type="text"          class="form-control w57 text-center" id="edit_calcText3" name="edit_calcText3" onchange="update('edit_calc_reason', 'B2');" >
							<label for="edit_calcTest3" class="sr-only">Test 3</label>
							<select                     class="form-control w57 text-center" id="edit_calcTest3" name="edit_calcTest3" onchange="update('edit_calc_reason', 'B2');" ></select>
							<label for="edit_calcText4" class="sr-only">Text 4</label>
							<input type="text"          class="form-control w57 text-center" id="edit_calcText4" name="edit_calcText4" onchange="update('edit_calc_reason', 'B2');" >
							<label for="edit_calcTest4" class="sr-only">Test 4</label>
							<select                     class="form-control w57 text-center" id="edit_calcTest4" name="edit_calcTest4" onchange="update('edit_calc_reason', 'B2');" ></select>
							<label for="edit_calcText5" class="sr-only">Text 5</label>
							<input type="text"          class="form-control w57 text-center" id="edit_calcText5" name="edit_calcText5" onchange="update('edit_calc_reason', 'B2');" >
							<script>
								var edit_calcTest1 = document.getElementById('edit_calcTest1'); edit_calcTest1.innerHTML = tests;
								var edit_calcTest2 = document.getElementById('edit_calcTest2'); edit_calcTest2.innerHTML = tests;
								var edit_calcTest3 = document.getElementById('edit_calcTest3'); edit_calcTest3.innerHTML = tests;
								var edit_calcTest4 = document.getElementById('edit_calcTest4'); edit_calcTest4.innerHTML = tests;
							</script>
							<input type="<?php echo $debug ? "text" : "hidden"; ?>" id="edit_calcID" name="edit_calcID" >
							<input type="<?php echo $debug ? "text" : "hidden"; ?>" id="edit_calc_reason" name="edit_calc_reason" >
						</div>
					</div>
				</div>
				<div class="modal-footer">
					<span class="pull-left">Instead of times (&times;), use an asterisk (*)<br>Instead of divided by (&divide;), use a slash (&sol;)</span>
					<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_calc_button" onclick="please_wait('edit_calc_button');"><span class='glyphicon glyphicon-save' aria-hidden='true'></span>&nbsp;Save</button>
				</div>
			</form>
		</div>
	</div>
</div>

<?php
	if(isset($_GET['b']) && $_GET['b']!="" && $_GET['b']!=null){
		echo "
			<script>
				$('#edit_calc_form').modal('show');
				update_calc_edit(".clean($_GET['b']).", ".($debug ? "1" : "0").");
			</script>
		";
	}
	require "inc/footer.php";
?>