<!DOCTYPE html>
<HTML lang="en">
<HEAD>
<TITLE>European Astrobiology Network Association</TITLE>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Description" content="">
<meta name="Keywords" content="Astrobiology">
<meta name="Author" content="EANA">
<link rel="shortcut icon" href="favicon.jpg" type="image/x-icon">
<link href="style.css" rel="stylesheet" type="text/css" />
<script src="ckeditor/ckeditor.js"></script>
<script src="ckeditor/adapters/jquery.js"></script>
<!--<script src="ckeditor5/ckeditor.js"></script>-->
</HEAD>
<BODY>
	<div id="page-content">
        <?php                        
            include ("header.php");
            include ("menu.php");
//            include ("main.php");
        
        ?><script> // google findes wrong link with index.php/index.php, needs to reload correct page
            var path = window.location.href;
            if (path.includes("/index.php/index.php")) {
                let newPath = path.replace("/index.php/index.php", "/index.php");
                window.location.replace(newPath);
            }
        </script><?php                        
        
            if (!empty($_GET['action']))  {
            //if (!isset($_SESSION['eana_login'])) {
            //    echo "<br><br>Task: ".$_GET['action'];
                if ( $_GET['action'] == "login") {
                    include("members/login.php");
                } else if ( $_GET['action'] == "logout") {
                    include("members/logout.php");
/*                } else if ( $_GET['action'] == "changepw") {
//                    include("members/change_password.php");
                    include("members/internal.php?action=changepw");*/
                } else if ( $_GET['action'] == "resetpw") {
                    include("members/reset_password.php");
//                } else if ( $_GET['action'] == "accountupdate") {
//                    include("members/account_update.php");
//                } else if ( $_GET['action'] == "payments") {
//                    include("members/payments.php");
                }
            } else {
                $page=$_GET['page']; 
                if ($page==''){ $page='main'; }
                include $page.'.php';                
            }
                
            include ("footer.php");
        ?>
    </div>
</BODY>
</HTML>