<?php 
$recievers = array();

$recievers[] = array(
	'id' => '1',
	'ip' => '192.168.1.80',
	'name' => 'Vu+'
);
$recievers[] = array(
	'id' => '2',
	'ip' => '192.168.1.89',
	'name' => 'xSarius'
);

if (isset($_GET['toggleStatus'])) {
	$json = array();
	if (isset($_GET['id']) && isset($_GET['toggleStatus'])) {
		$key = array_search($_GET['id'], array_column($recievers, 'id'));
		$json['message'] = $_GET['id'] . '-> ' . $key . ' gevonden';
		if ($key !== false) {
			$status_url = 'http://' . $recievers[$key]['ip'] . '/web/powerstate';
			$set_status_url = 'http://' . $recievers[$key]['ip'] . '/web/powerstate?newstate=' . $_GET['toggleStatus'];
			$zender_url = 'http://' . $recievers[$key]['ip'] . '/web/getcurrent';
			if (@get_headers($set_status_url)) {
				$result = simplexml_load_file($status_url);
				if ($result) {
					$status_standby = trim($result->e2instandby);
					$json['success'][$recievers[$key]['id']]['status'] = $status_standby == 'false' ? false:true;
				}
				if (@get_headers($zender_url)) {
					$result = simplexml_load_file($zender_url);
					if ($result) {
						$zender = trim($result->e2service->e2servicename);
						$json['success'][$recievers[$key]['id']]['zender'] = $zender;
						$ref = trim($result->e2service->e2servicereference);
						$json['success'][$recievers[$key]['id']]['ref'] = $ref;
						$json['success'][$recievers[$key]['id']]['ip'] = $recievers[$key]['ip'];
					}
				}			
			} else {
				$json['error'][$recievers[$key]['id']] = 'Niet gevonden!';
			}
		}		
	}
	header('Content-type: application/json', true);
	echo json_encode($json);
	
} elseif (isset($_GET['getStatus'])) {
	$json = array();
	foreach ($recievers as $reciever) {
		$status_url = 'http://' . $reciever['ip'] . '/web/powerstate';
		$zender_url = 'http://' . $reciever['ip'] . '/web/getcurrent';
		if (@get_headers($status_url)) {
			$result = simplexml_load_file($status_url);
			
			if ($result) {
				$status_standby = trim($result->e2instandby);
				$json['success'][$reciever['id']]['status'] = $status_standby == 'false' ? false:true;
			}
			if (@get_headers($zender_url)) {
				$result = simplexml_load_file($zender_url);
				if ($result) {
					$zender = trim($result->e2service->e2servicename);
					$json['success'][$reciever['id']]['zender'] = $zender;
					$ref = trim($result->e2service->e2servicereference);
					$json['success'][$reciever['id']]['ref'] = $ref;
					$json['success'][$reciever['id']]['ip'] = $reciever['ip'];
				}
			}
			
			
		} else {
			$json['error'][$reciever['id']] = 'Niet gevonden!';
		}
	}

	header('Content-type: application/json', true);
	echo json_encode($json);
} else {
?>
<!doctype html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Status Check</title>
</head>
<body>
<h3>Check Status</h3>
<div class="container">
  <div class="row">
	<?php foreach ($recievers as $reciever) { ?>
	<div class="col-md-4" id="reciever<?php echo $reciever['id']; ?>">
	  <div class="card">
  		<div class="card-header"><?php echo $reciever['name']; ?></div>
		<div class="card-body">
		 <p class="card-title">IP <?php echo $reciever['ip']; ?></p>
		 <p><span class="status"></span></p>
		 <p><span class="zender"></span></p>
		</div>
	  </div>
	</div>
	<?php } ?>
  </div>
  <div class="row">
    <div class="col-md-12">
	  <p class="card-body text-center"><button class="btn btn-primary" id="status-refresh" onclick="getStatus();">Refresh</button></p>
	</div>
  </div>
  <div class="row">
    <div class="col-md-12">
	  <p class="card-body text-center" id="busy"></p>
	</div>
  </div>
</div>

<script>
function toggleStatus(id, status) {
	console.log(id + ' naar ' + status);
		$.ajax({
			url: 'status.php?toggleStatus=' + status + '&id=' + id,
			type: 'get',
			dataType: 'json',
			beforeSend: function() {
				$('#busy').html('loading ...');
			},
			complete: function() {
				$('#busy').html('');
			},
			success: function(json) {
				if (json['message']) {
					console.log(json['message']);
				}
				if (json['success']) {
					console.log (json['success']);
					for (i in json['success']) {
						if (json['success'][i]['status']) {
							$('#reciever' + i + ' .status').html('<div class="alert alert-danger"><i class="fa fa-times-circle"></i> Standby <a href="#" onclick="toggleStatus('+ i + ', 4); return false;"><span class="pull-right"><i class="fa fa-power-off"></i></span></a></div>');
						} else {
							$('#reciever' + i + ' .status').html('<div class="alert alert-success"><i class="fa fa-check-circle"></i> Aan <a href="#" onclick="toggleStatus('+ i + ', 0); return false;"><span class="pull-right"><i class="fa fa-power-off"></i></span></div>');
						}
						if (json['success'][i]['zender']) {
							$('#reciever' + i + ' .zender').html('<div class="alert alert-success">' + json['success'][i]['zender'] + '<span class="pull-right"><a target="_blank" href="http://' + json['success'][i]['ip'] + '/web/stream.m3u?ref=' + json['success'][i]['ref'] + '&amp;name=' + json['success'][i]['zender'] + '" title="Stream: ' + json['success'][i]['zender'] + '"><i class="fa fa-tv"></i></a></span></div>');
						} else {
							$('#reciever' + i + ' .zender').html('');
						}
					}

				}
				if (json['error']) {
					console.log (json['error']);
					for (i in json['error']) {
							$('#reciever' + i + ' .status').html('<div class="alert alert-danger"><i class="fa fa-check-circle"></i> ' + json['error'][i] + '</div>');
						
					}
				}
			},
			error: function(xhr, ajaxOptions, thrownError) {
				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
			}
		}); 
}	
function getStatus() {
		$.ajax({
			url: 'status.php?getStatus=1',
			type: 'get',
			dataType: 'json',
			beforeSend: function() {
				$('#busy').html('loading ...');
			},
			complete: function() {
				$('#busy').html('');
			},
			success: function(json) {
				$('.alert').remove();
				if (json['success']) {
					console.log (json['success']);
					for (i in json['success']) {
						if (json['success'][i]['status']) {
							$('#reciever' + i + ' .status').html('<div class="alert alert-danger"><i class="fa fa-times-circle"></i> Standby <a href="#" onclick="toggleStatus('+ i + ', 4); return false;"><span class="pull-right"><i class="fa fa-power-off"></i></span></div>');
						} else {
							$('#reciever' + i + ' .status').html('<div class="alert alert-success"><i class="fa fa-check-circle"></i> Aan <a href="#" onclick="toggleStatus('+ i + ', 0); return false;"><span class="pull-right"><i class="fa fa-power-off"></i></span></div>');
						}
						if (json['success'][i]['zender']) {
							$('#reciever' + i + ' .zender').html('<div class="alert alert-success">' + json['success'][i]['zender'] + '<span class="pull-right"><a target="_blank" href="http://' + json['success'][i]['ip'] + '/web/stream.m3u?ref=' + json['success'][i]['ref'] + '&amp;name=' + json['success'][i]['zender'] + '" title="Stream: ' + json['success'][i]['zender'] + '"><i class="fa fa-tv"></i></a></span></div>');
						} else {
							$('#reciever' + i + ' .zender').html('');
						}
					}

				}
				if (json['error']) {
					console.log (json['error']);
					for (i in json['error']) {
							$('#reciever' + i + ' .status').html('<div class="alert alert-danger"><i class="fa fa-check-circle"></i> ' + json['error'][i] + '</div>');
						
					}
				}
			},
			error: function(xhr, ajaxOptions, thrownError) {
				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
			}
		}); 
}

getStatus();

</script>





</body></html>
<?php
}
?>