<?php

// MEETING OVER - UNCOMMENT REDIRECT
header('Location:http://www.borealis.gi');
exit();

$page_title = 'Meeting Logon';
$year = date('Y');
$year = '2025';

session_name("MEETING".$year);

if ($_SESSION['logon'] == '1') {
   session_destroy();
}

session_start();


$_SESSION['year'] = $year;
$_SESSION['user'] = '';
$_SESSION['user_id'] = '';
$_SESSION['company'] = '';
$_SESSION['logon'] = '';
$_SESSION['auth_level'] = 0;


if (isset($_POST['submit'])) {

   $u = strtoupper(trim($_POST['username']));
   $p = strtoupper(trim($_POST['password']));


// SANITIZE LOGON
   $eviltext = '/[#|:~!()@&%$^?<>`*\;\[\]\{\}\/\\\\]/';
   if (preg_match($eviltext, $u)) {
      $u = preg_replace($eviltext,'',$u);
   }
   if (strlen($u) > 60) {
      $u = substr($u, 0, 60);
   }
   if (preg_match($eviltext, $p)) {
      $p = preg_replace($eviltext,'',$p);
   }
   if (strlen($p) > 40) {
      $p = substr($p, 0, 40);
   }


// GRAB IP, SET TIME RANGE FOR LOGONS
   if (getenv("HTTP_CLIENT_IP")) {
      $ip = getenv("HTTP_CLIENT_IP");
   } else if(getenv("HTTP_X_FORWARDED_FOR")) {
      $ip = getenv("HTTP_X_FORWARDED_FOR");
   } else if(getenv("REMOTE_ADDR")) {
      $ip = getenv("REMOTE_ADDR");
   } else {
      $ip = "UNKNOWN";
   }

   $date = date("Y-m-d");
   require ('/home/default/borealis.gi/user/db_access/access.php'); // Connect to the db.


if ($u != 'GUEST') {
   // CHECK THE BANNED IP LIST
   $query = 'SELECT ip FROM events WHERE ip="'.$ip.'" AND timestamp LIKE "'.$date.'%" AND event_type="99"';
   $result = @mysql_query ($query); // Run the query.
   $count = mysql_num_rows($result);

   // CHECK FOR ADMIN OVERRIDE
   $query2 = 'SELECT ip FROM events WHERE ip="'.$ip.'" AND timestamp LIKE "'.$date.'%" AND event_type="98"';
   $result2 = @mysql_query ($query2); // Run the query.
   $count2 = mysql_num_rows($result2);

   if (($count > 0) && ($count2 == 0)) {

      $message = '<font face="Arial" size="4" color="#993333">TOO MANY FAILURES - LOGON DISABLED</font>';

      // LOG THE FAILED ATTEMPT
      $querykeys = 'event_type, user, ip, timestamp';
      $queryvalues = '"3", "'.$u.'", "'.$ip.'", NOW()';

      $log_query = "INSERT INTO events ($querykeys) VALUES ($queryvalues)";
      $log_result = @mysql_query ($log_query); // Run the query.

   } else {
      $queryx = "SELECT * FROM users WHERE user = '$u' AND password = MD5('$p') AND user_year = $year";
      $resultx = @mysql_query ($queryx); // Run the query.
      $countx  = mysql_num_rows($resultx);

      if ($countx == 0) {
         $message = '<font face="Arial" size="4" color="#993333">Invalid Username or Password</font>';

         // LOG THE FAILED ATTEMPT
         $querykeys = 'event_type, user, ip, timestamp';
         $queryvalues = '"2", "'.$u.'", "'.$ip.'", NOW()';

         $log_query = "INSERT INTO events ($querykeys) VALUES ($queryvalues)";
         $log_result = @mysql_query ($log_query); // Run the query.

         // CHECK FOR MULTIPLE FAILED ATTEMPTS
         $check_query = 'SELECT ip FROM events WHERE ip="'.$ip.'" AND '.
                     'timestamp LIKE "'.$date.'%" AND event_type="2"';
         $check_result = @mysql_query ($check_query); // Run the query.
         $check_count  = mysql_num_rows($check_result);

         if ($check_count > 20) {
            // BLOCK IP
            $querykeys = 'event_type, user, ip, timestamp';
            $queryvalues = '"99", "'.$u.'", "'.$ip.'", NOW()';

            $log_query = "INSERT INTO events ($querykeys) VALUES ($queryvalues)";
            $log_result = @mysql_query ($log_query); // Run the query.

           //$disable_query = 'UPDATE users SET disabled=1 where user="'.$u.'"';
           //$result = @mysql_query ($disable_query); // Run the query.
         }
      }


      if ($countx == 1) {
         while ($row = mysql_fetch_array ($resultx, MYSQL_ASSOC)) {
            if ($row['disabled'] == 1) {
               $message = '<font face="Arial" size="4" color="#993333">Account Disabled</font>';

               // LOG THE FAILED ATTEMPT
               $querykeys = 'event_type, user, ip, timestamp';
               $queryvalues = '"3", "'.$u.'", "'.$ip.'", NOW()';

               $log_query = "INSERT INTO events ($querykeys) VALUES ($queryvalues)";
               $log_result = @mysql_query ($log_query); // Run the query.

            } else {
               $_SESSION['logon'] = '1';
               $_SESSION['user_id'] = $row['user_id'];
               $_SESSION['user'] = $row['user'];
               $_SESSION['user_id'] = $row['user_id'];
               $_SESSION['company'] = $row['company'];
               $_SESSION['auth_level'] = $row['auth_level'];
               $_SESSION['year'] = $year;

               // LOG THE EVENT
               $querykeys = 'event_type, user, user_id, company_name, company_id, ip, timestamp';
               $queryvalues = '"1", "'.$u.'", "'.$_SESSION['user_id'].'", "'.$_SESSION['company_name'].
                              '", "'.$_SESSION['company_id'].'", "'.$ip.'", NOW()';

               $log_query = "INSERT INTO events ($querykeys) VALUES ($queryvalues)";
               $log_result = @mysql_query ($log_query); // Run the query.

               mysql_close(); // Close the database connection.

               if ($_SESSION['auth_level'] == '3') {
                  //header ('HTTP/1.0 302 Found');
                  //echo ' ';

                  header('Location: meeting.php');
                  exit();
               } else {
                  //header ('HTTP/1.0 302 Found');
                  // echo ' ';

                  header('Location: meeting.php');
//                  header('Location: logon.php');

                  exit();
               }
            }
         }
      }
   }

   mysql_close(); // Close the database connection.

} else {
   $_SESSION['logon']      = '1';
   $_SESSION['user']       = $u;
   $_SESSION['year']       = $year;
   $_SESSION['auth_level'] = '0';

   $query2 = "select company from users where user='meetingadmin'";
   $result2= @mysql_result($query2);
   $company = @mysql_result ($result2, 0);

   $_SESSION['company'] = $company;

   // LOG THE EVENT
   $querykeys = 'event_type, user, ip, timestamp';
   $queryvalues = '1, "'.$u.'", "'.$ip.'", NOW()';

   $log_query = "INSERT INTO events ($querykeys) VALUES ($queryvalues)";
   $log_result = @mysql_query ($log_query); // Run the query.

   mysql_close(); // Close the database connection.

   //header ('HTTP/1.0 302 Found');
   //echo ' ';
   header('Location: meeting.php');
   exit();
}
}

$_SESSION['year'] = $year;
$_SESSION['user'] = '';
$_SESSION['user_id'] = '';
$_SESSION['company'] = '';
$_SESSION['logon'] = '';
$_SESSION['auth_level'] = 0;

echo '<html><head>
<meta http-equiv="Content-Language" content="en-us">
<META HTTP-EQUIV="Refresh" CONTENT="360;URL=logon.php">
<title>'.$page_title.'</title>
</head>
<body bgcolor="#EFEFE3" topmargin=4 onload="document.logon.username.focus()">

<form method="POST" action="logon.php" name="logon" ID="logon" style="margin-bottom:10px;">
';

if ($_GET['test'] == 1) {
    echo '<input type="hidden" name="test" value="1">';
}

echo '

<center>
<img src="images/spacer.gif" border=0 height=100 width=1><BR>
<table border="4" cellspacing="1" cellpadding="0" bordercolor="#000066" width="400" height="200" bgcolor="#FFFFFF">
  <tr><td valign="top">
    <table border=0 cellspacing="4" cellpadding="2" width="100%">
    <tr>
        <td colspan=2 align="center"><img src="images/spacer.gif" height=10><BR>
    <font face="Arial, Helvetica" size=5>Annual Meeting Logon</font><BR>
    <img src="images/spacer.gif" height=10></td>
    </tr>
    <tr>
    <td align="left"><b><font face="Arial" color="#000066">Username</font></b></td>
    <td align="right"><input type="text" name="username" size="28" style="width:200px"></td></tr>
    <tr>
    <td align="left"><b><font face="Arial" color="#000066">Password</font></b></td>
    <td align="right"><input type="password" name="password" size="28" style="width: 200px"></td></tr>
    <tr>
        <td colspan="2" align="right" valign="bottom" height="*">
';

// MEETING START TIME - always London time, independent of the server's timezone.
// (PHP 5 compatible: no intdiv(), no global timezone change.)
$meeting_start = strtotime('2026-10-05 16:00:00 Europe/London');
$now  = time();
$diff = $meeting_start - $now;

$days = 0;
$hours = 0;
$mins = 0;
$disabled = '';

if ($diff > 0) {
    $days  = (int) floor($diff / 86400);
    $hours = (int) floor(($diff % 86400) / 3600);
    $mins  = (int) floor(($diff % 3600) / 60);

    // Enable Submit only within 10 minutes of the start
    if ($diff > 600) {
        $disabled = ' disabled';
    }
}

if (array_key_exists('ADM', $_GET) && $_GET['ADM'] == 1) {
    $disabled = '';
}

echo '
    <input type="submit" name="submit" value="Submit" '.$disabled.'></td>
    </tr>
    <tr>
    <td valign="bottom" align="center" colspan="2">'.$message.'&nbsp;</td></tr>
';

echo "<!-- now UTC: ".gmdate('Y-m-d H:i:s', $now)."  start UTC: ".gmdate('Y-m-d H:i:s', $meeting_start)."  diff: ".$diff." -->";

if ($diff > 0) {
echo '<tr><td colspan=2 align="center"><font face="Arial" color="#000066" size="3">';
echo "<b>Meeting begins in ";
if ($days > 0) {
  echo "$days day".($days == 1 ? '' : 's')." ";
}
echo "$hours hours and $mins minutes.</b>";
echo '</font></td></tr>';
}

echo '

    </table><BR>
</td></tr></table>
</form>
<BR>
<span style="font size:14px;font-family:Arial, Helvetica;font-weight:bold;color:#CC0000; margin:10px">
NOTE: Logon information can be found on your Proxy form, <BR>
sent via email from the Borealis Family of Companies<BR><BR>
If you do not have your logon information, you may log on<BR>
as GUEST and leave the password blank</span>

</center>
';

echo "\n<!--\n";
//print_r($_SESSION);
echo "\n-->\n";

echo'
</body>
</html>';

exit();
?>
