<?php
if (isset($_POST['field_name'])) {
	$timer['main_start'] = microtime(true);
	/**
	 * WORKING SET OF STUDY_IDs
	 */
	$timer['start_main'] = microtime(true);
//$empty_result = db_query("SELECT * FROM redcap_data WHERE project_id = '$project_id' AND value = '' ORDER BY abs(record) ASC");
	/**
	 * exclude dm_subjid from query, as RED-I writes orphan records to this field, and we don't want to screw that up, do we?
	 */
	$empty_result = db_query("SELECT * FROM redcap_data WHERE project_id = '$project_id' AND field_name = '{$_POST['field_name']}' ORDER BY abs(record) ASC");
	if ($empty_result) {
		while ($empty_row = db_fetch_assoc($empty_result)) {
			$history = Form::getDataHistoryLog($empty_row['record'], $empty_row['event_id'], $empty_row['field_name']);
			$all_fields_hidden = $my_branching_logic->allFieldsHidden($empty_row['record'], $empty_row['event_id'], array($empty_row['field_name']));
			if ($debug) {
				/**
				 * pick apart the hidden field logic - something's not right with fib_lbtest logic. ?'null'?
				 */
				$fieldsDependent = getDependentFields(array($empty_row['field_name']), false, true);
				$unique_event_name = $project->getUniqueEventNames($empty_row['event_id']);
				$record_data = Records::getSingleRecordData($empty_row['record'], array_merge($fieldsDependent, array($empty_row['field_name'])));
				$logic = $project->metadata[$empty_row['field_name']]['branching_logic'];
				if ($longitudinal) {
					$logic = LogicTester::logicPrependEventName($logic, $unique_event_name);
				}
				if (LogicTester::isValid($logic)) {
					$displayField = LogicTester::apply($logic, $record_data);
					$displayField = $displayField ? false : true;
				}
$first_event_id = $Proj->firstEventId;
$plugin_title = "Reset SVR DATA PENDING flag when hidden by branching logic";
$my_branching_logic = new BranchingLogic();
/**
 * plugin title
 */
echo "<h3>$plugin_title</h3>";
/**
 * MAIN
 */
if ($debug) {
	$timer['main_start'] = microtime(true);
}
$fields = array('dis_suppds_funcmprsn', 'hcv_suppfa_svr12dt', 'hcv_suppfa_svr24dt', 'hcv_suppfa_fuelgbl');
$data = REDCap::getData('array', $subjects, $fields, $first_event_id);
foreach ($data AS $subject_id => $subject) {
	/**
	 * MAIN EVENT LOOP
	 */
	foreach ($subject AS $event_id => $event) {
		$field_is_hidden = $my_branching_logic->allFieldsHidden($subject_id, $event_id, array('dis_suppds_funcmprsn'));
		if ($field_is_hidden /*&& $event['dis_suppds_funcmprsn'] == 'SVR_DATA_PENDING' && ($event['hcv_suppfa_svr12dt'] != '' || $event['hcv_suppfa_fuelgbl'] == 'N')*/) {
			update_field_compare($subject_id, $project_id, $event_id, '', $event['dis_suppds_funcmprsn'], 'dis_suppds_funcmprsn', $debug, $plugin_title);
		}
	}
}
if ($debug) {
	$timer['main_end'] = microtime(true);
	$init_time = benchmark_timing($timer);
	echo $init_time;
}
	LEFT OUTER JOIN
	(SELECT * FROM redcap_events_arms) arm
	ON arm.arm_id = events_meta.arm_id
	WHERE arm.project_id = '$project_id'
	AND forms.form_name = '$this_form_name'");
	if ($event_result) {
		while ($events_row = db_fetch_assoc($event_result)) {
			$events[] = $events_row['event_id'];
		}
		$data = REDCap::getData('array', '', array($_POST['field_name'], $this_form_name . '_complete'), $events);
		$form_complete = isset($_POST['form_complete']) && $_POST['form_complete'] == 'on' ? true : false;
		//d($data);
		foreach ($data AS $subject_id => $subject) {
			foreach ($subject AS $event_id => $event) {
				$do_if_complete = $form_complete ? $event[$this_form_name . '_complete'] == '2' : true;
				$all_fields_hidden = $my_branching_logic->allFieldsHidden($subject_id, $event_id, array($_POST['field_name']));
				//d($event);
				if (!$all_fields_hidden && $event[$_POST['field_name']] != $_POST['default_value'] && $do_if_complete) {
					update_field_compare($subject_id, $project_id, $event_id, $_POST['default_value'], $event[$_POST['field_name']], $_POST['field_name'], $debug);
				}
			}
		}
	}
} else {
	print "<h3>You must select field name and default value</h3>";
}
?>
	<script type="text/javascript">
		$(document).ready(function () {
			$("#field_name").change(function () {
				$("#field_val_select").trigger('submit');