<?php
session_start();
ini_set('display_errors',1);
require("../functions.php");
$config = loadConfig();
echo '<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="Shortcut Icon" href="../opolytics.png"><title>Backup wiederherstellen - Opolytics</title><link rel="Stylesheet" href="../style.php" type="text/css"></head><body>';
include('../menu.php');
if(!isset($_GET['step'])) {
	if(o_login_check($_SESSION['user'],$_SESSION['password']) AND $_SESSION['user']==$config[1]) {
		$_SESSION['opb_date'] = $_POST['date'];
		echo '<h1>Identität bestätigen</h1><p>Bestätigen Sie ihre Identität durch Eingabe ihres Kennworts. Alle bisherigen Daten werden überschrieben. Diese Aktion kann nicht rückgängig gemacht werden.</p><form method="post" action="?step=2">Geben Sie Ihr Passwort ein.<br><input type="password" name="password"> <input type="submit" value="Bestätigen"></form>';
	}
	else {
		echo '<h1>Unausreichende Berechtigungen</h1><p>Sie sind derzeit in Opolytics nicht als Administrator angemeldet. Melden Sie sich als Administrator an um das Backup wiederherzustellen</p><p><input type="button" value="Zurück" onclick="window.history.back()"></p>';
	}
}
else if($_GET['step']==2) {
	if(password_verify($_POST['password'],$config[2])) {
		$_SESSION['admin_pass'] = $_POST['password'];
		echo '<h1>Backup starten</h1><p>Bitte bestätigen Sie, dass alle jetzt gespeicherten Daten überschrieben werden sollen.</p><p><input type="button" value="Bestätigen" onclick="window.location.href = \'?step=3\'"></p>';
	}
	else {
		echo '<h1>Identifikation fehlgeschlagen</h1><p>Ihre Identität konnte nicht festgestellt werden. Sie haben das falsche Passwort verwendet. Bitte versuchen Sie es noch einmal.</p><p><input type="button" value="Zurück" onclick="window.history.back()"></p>';
	}
}
if($_GET['step']==3 AND password_verify($_SESSION['admin_pass'],$config[2])) {
	echo '<h1>Backup wird ausgeführt</h1><p>Bitte warten Sie, während das Backup angefragt und ausgeführt wird...</p><script>
	var p;
	var time;
	var xhr = new XMLHttpRequest();
	xhr.open("GET","request.php");
	xhr.addEventListener("load",function() {
		p = document.createElement("p");
		if(this.responseText==" Request Completed.") p.innerHTML = "Anfrage ausgeführt. Warten auf Antwort. Dies kann eine Weile dauern...<br><br>Erwartete Wartezeit (s): ";
		else p.innerHTML = "<b>Es ist ein Fehler aufgetreten</b>, der Server hat folgende Fehlermeldung zurückgegeben:<br><br>" + this.responseText;
		document.body.appendChild(p);
		time = document.createElement("span");
		time.innerHTML = (60 - new Date().getSeconds() + 10);
		time = p.appendChild(time);
	});
	xhr.send();
	var interval = window.setInterval(function() {
		var xhr = new XMLHttpRequest();
		xhr.open("GET","request_completed.php?" + Math.random());
		xhr.addEventListener("load",function() {
			if(this.responseText=="completed") window.location.href = "?step=4";
			else time.innerHTML = (55 - new Date().getSeconds());
		});
		xhr.send();
	},5000);
	</script>';
}
if($_GET['step']==4) {
	echo '<h1>Backup wiederhergestellt</h1><p>Ihr Backup wurde soeben wiederhergestellt.</p><p><a href="../view.php">Beenden</a></p>';
}
?>