<?php
//20170704: Added a pop up when swtching into tabs. -- Gael
//20170926 - Moved error message from APT onto wizard - maanie
//20180227 - THIS CHECK HAS IMPLICATIONS - WITH THIS CHECK AF/EN DOESNT WORK, WILL NEED TO FIND A BETTER SOLOTION. JACQUES

//20180227 - THIS CHECK HAS IMPLICATIONS - WITH THIS CHECK AF/EN DOESNT WORK, WILL NEED TO FIND A BETTER SOLOTION. JACQUES
if (session_id()) {
   // session has been started
} else {
   // session has NOT been started
   session_start();
}

// // Initialize S3REGISTRATION session object if it doesn't exist
// if (!isset($_SESSION["S3REGISTRATION"])) {
//    $_SESSION["S3REGISTRATION"] = new stdClass();
// }


## INCLUDES
include_once("_framework/_nemo.basic.cls.php");
include_once("_framework/_nemo.wizzard.cls.php");
include_once("includes/member.registration.cls.php");

include_once("_framework/_nemo.email.cls.php");
include_once("includes/document.cls.php");
include_once("_framework/_nemo.translations.inc.php");


//print_rr($_SESSION[S3REGISTRATION]);//die("oijhio");

## SESSION TESTING VARS
// unset($_SESSION);
// session_destroy();

// switch ($Action) {
//    case 'Previous':
//       if($_POST[btnConinueLink] == 1)
//       {
//          $Action = "Continue Link";
//          $_POST[btnConinueLink] = 0;
//       }
//       break;
// }
// if( ($Action == "Previous") & ($Action == "Gaan terug") )
// {
//echo ini_get("session.save_path");
//vd($_SERVER['DOCUMENT_ROOT']);
//print_rr($_SESSION);

## START NEMO WIZZARD
$page = new NemoWizzard();

$Action = isset($_POST["Action"]) ? $_POST["Action"] : $_GET["Action"];
 
if (count($_SESSION) == 0) 
{ //print_rr($_SESSION); //die("UNDER CONSTRUCTION");
 
   //20210610 - Add ip checker to see if ip is blocked
   $row = $xdb->getRowSQL("SELECT * FROM sysIPBlock WHERE strIP = '".$_SERVER['REMOTE_ADDR']."'");

   if(isset($row->BlockID))
   {
      windowlocation("index.php");
   }
      
   if(count($_SESSION) == 0){//print_rr($_SESSION); //die("UNDER CONSTRUCTION");
    
      //header("Location: server.error.php?MID=uc");
   }
}
if (($Action != "Previous") & ($Action != "Gaan terug")) {
   if ($_POST["btnConinueLink"] == 1) {
      $Action = "Continue Link";
   }
}
// }
//print_rr("test - ".$_SESSION[LANGUAGE]);
if ($_GET["Action"] == "LoadDraft") {
   $Action = "Load Draft";
}

## NAV EVENTS SWITCH

  switch ($Action) {
   case "Reset":
      unset($_SESSION["Wizzard"]->ActiveParent);
      unset($_SESSION["S3REGISTRATION"]);
      $_SESSION["WizzardStep"] = 0;
      $page->step = 0;
      windowlocation("registration.member.php");
      break;

   case "Continue Link":
      $blnNewUserExistingMemberContinue = MemberRegistration::SubmitLink($_SESSION["S3REGISTRATION"]->UserID, qs($_POST["MemberID"]));
      windowLocation("registration.member.php?Step=7");
      //windowLocation("registration.member.php?Step=7&type=ConfirmationSend");
      //windowLocation("registration.member.php?Step=7&type=NewSuperUserAssigned");
      break;

   case "Click Here": 
      windowLocation("index.php?Action=Login&Nav=SAWIS2&strUsername=$rowUser->strEmail&strPasswordMD5=$rowUser->strPasswordMD5");
      //MemberRegistration::Submit($_SESSION[S3REGISTRATION]->UserID, $_SESSION[S3REGISTRATION]->MemberID);
      break;

   case "Continue": 
      if ($_POST["radMemberNumber"] == 1) {
         windowLocation("index.php");
      }
      break;

   case "Submit Registration": 

      MemberRegistration::Submit($_SESSION["S3REGISTRATION"]->UserID, $_SESSION["S3REGISTRATION"]->MemberID);
      windowLocation("registration.member.php?Step=7");
      exit();
      break;

   case "Next": 
      // $page->step = $_REQUEST["Step"];
      // vd($_SE21SSION[S3REGISTRATION]->MemberID);
      // vd($_SESSION[S3REGISTRATION]->UserID);
      // vd($_SESSION[WizzardStep]);
      // print_rr($_SESSION['S3REGISTRATION']);
      // print_rr($_POST[chkUserType]);
      //if($_SESSION[S3REGISTRATION]->MemberID){
      if ($_POST["saveData"] == 1) {

         $blnNewUserExistingMemberContinue = MemberRegistration::Save($_SESSION["S3REGISTRATION"]->UserID, $_SESSION["S3REGISTRATION"]->MemberID,  $_REQUEST["Step"]);
         //print_rr($blnNewUserExistingMemberContinue); die;
         if ($_SESSION["Wizzard"]->ActiveParent == "NewConsultant") {
            windowLocation("registration.member.php?Step=7");
         }

         if ($_SESSION["Wizzard"]->ActiveParent == "NewDesigner") {
            windowLocation("registration.member.php?Step=7");
         }

         if ($blnNewUserExistingMemberContinue == false) {
            $_SESSION["Wizzard"]->ActiveParent = "SelectMember";
            windowLocation("registration.member.php?Step=7");
         } elseif (is_string($blnNewUserExistingMemberContinue)) {
            $Message .= $blnNewUserExistingMemberContinue;
            $LoadStep = 1;
         }
      }

      if (isset($_POST["StoreData"])) {
         $_SESSION["StoredData"] == $_POST["StoreData"];
      }

      switch ($_POST["chkUserType"]) {
         case "ChangeOfOwnership":
            $_SESSION["S3REGISTRATION"]->ChangeOwnMemberID = $_POST["ChangeOwnMemberID"];
            $_SESSION["S3REGISTRATION"]->blnAllWine = $_POST["blnAllWine"];
            $_SESSION["Wizzard"]->ActiveParent = "NewMember";
            break;

         case "NewMember":
         case "SelectMember":
            unset($_SESSION["S3REGISTRATION"]->ChangeOwnMemberID);
            unset($_SESSION["S3REGISTRATION"]->blnAllWine);
            break;
      }
      break;

   case "Previous": 
      // $page->step = $_REQUEST["Step"];
      if ( $_REQUEST["Step"] != 3) {
         if ($_POST["saveData"] == 1) {
            MemberRegistration::Save($_SESSION["S3REGISTRATION"]->UserID, $_SESSION["S3REGISTRATION"]->MemberID,  $_REQUEST["Step"]);
         }
      }

      if (isset($_POST["StoreData"])) {
         $_SESSION["StoredData"] == $_POST["StoreData"];
      }


      break;

   case "Load Draft": 

      $_SESSION["Wizzard"]->ActiveParent = "NewMember";

      $rowMember = $xdb->getRowSQL("SELECT * FROM tmpMember WHERE MemberID = " . $xdb->qs($_SESSION["S3REGISTRATION"]->MemberID));
      $MemberID = $_SESSION["S3REGISTRATION"]->MemberID;
      $RegistrationStatus = $rowMember->RegistrationStatus;
      $IsActive = $_SESSION["ContinueS3"]->IsActive;

      if (strlen($MemberID) > 0 && $IsActive == 1) {
         $LoadStep = 0;
         switch ($RegistrationStatus) {
            case '11110':
               $_SESSION["WizzardStep"] = 5;
               $page->step = 5;
               $LoadStep = 5;
               break;
            case '11111':
               $_SESSION["WizzardStep"] = 6;
               $page->step = 6;
               $LoadStep = 6;
               break;
            default:
               $_SESSION["WizzardStep"] = 2;
               $page->step = 2;
               $LoadStep = 2;
               break;
         }
      } else {
         $_SESSION["WizzardStep"] = 2;
      }


      if (isset($_SESSION["ContinueS3"]->UserID)) {
         $_SESSION["S3REGISTRATION"]->UserID = $_SESSION["ContinueS3"]->UserID;
         $_SESSION["S3REGISTRATION"]->MemberID = $_SESSION["ContinueS3"]->MemberID;
      } else {
         $_SESSION["S3REGISTRATION"]->UserID = $UserID;
      }

      //$getUserDetails = $xdb->getRowSQL("SELECT * FROM sysUser WHERE refMemberID = $MemberID");
      //$_SESSION[S3REGISTRATION]->UserID = $getUserDetails->UserID;
      break;
}


$imgRequired = $SystemSettings["imgRequired"];

## CURRENT LANGUAGE

if (!isset($_SESSION["LANGUAGE"])) {
   $_SESSION["LANGUAGE"] = "EN";
} else {
   //20210315 - Remove language options and make english default language - Russel
   $_SESSION["LANGUAGE"] = "EN";
}

## START NEMO BASIC
$pageRegister = new NemoBasic();




if (isset($LoadStep)) {
   $page->step = $LoadStep;
}
//print_rr($_SESSION);
## SET UP WIZZARD STEPS
$page->WizzardStep[0] = new stdClass();
$page->WizzardStep[0]->heading = $_TRANSLATION[$_SESSION["LANGUAGE"]]["LP_Heading"]; ## LANDING PAGE
$page->WizzardStep[0]->intro = $_TRANSLATION[$_SESSION["LANGUAGE"]]["LP_Intro"];
$page->WizzardStep[0]->validation = "validation";
$page->WizzardStep[0]->group = "default";

$page->WizzardStep[1] = new stdClass();
$page->WizzardStep[1]->heading = $_TRANSLATION[$_SESSION["LANGUAGE"]]["UD_Heading"]; ## USER DETAILS
$page->WizzardStep[1]->intro = $_TRANSLATION[$_SESSION["LANGUAGE"]]["UD_Intro"];

$page->WizzardStep[1]->validation = "validation";
$page->WizzardStep[1]->group = "default";

$page->WizzardStep[2] = new stdClass();
$page->WizzardStep[2]->heading = $_TRANSLATION[$_SESSION["LANGUAGE"]]["UT_Heading"]; ## USER DETAILS
$page->WizzardStep[2]->intro = $_TRANSLATION[$_SESSION["LANGUAGE"]]["UT_Intro"];

$page->WizzardStep[2]->validation = "validation";
$page->WizzardStep[2]->group = "default";

$page->WizzardStep[3] = new stdClass();
if (isset($_SESSION["Wizzard"]->ActiveParent)) {
   if ($_SESSION["Wizzard"]->ActiveParent == "NewMember") {
      $page->WizzardStep[3]->heading = $_TRANSLATION[$_SESSION["LANGUAGE"]]["MT_Heading"]; ## MEMBERSHIP DETAILS
      $page->WizzardStep[3]->intro = $_TRANSLATION[$_SESSION["LANGUAGE"]]["MT_Intro"];
      $page->WizzardStep[3]->validation = "validation";
      $page->WizzardStep[3]->group = "NewMember";
   } else if ($_SESSION["Wizzard"]->ActiveParent == "SelectMember") {
      $page->WizzardStep[3]->heading = $_TRANSLATION[$_SESSION["LANGUAGE"]]["MS_Heading"]; ## MEMBERSHIP DETAILS
      $page->WizzardStep[3]->intro = $_TRANSLATION[$_SESSION["LANGUAGE"]]["MS_Intro"];
      $page->WizzardStep[3]->validation = "validation";
      $page->WizzardStep[3]->group = "SelectMember";
   }
}
$page->WizzardStep[4] = new stdClass();
$page->WizzardStep[4]->heading = $_TRANSLATION[$_SESSION["LANGUAGE"]]["MD_Heading"]; ## MEMBER DETAILS
$page->WizzardStep[4]->intro = $_TRANSLATION[$_SESSION["LANGUAGE"]]["MD_Intro"];
$page->WizzardStep[4]->validation = "validation";
$page->WizzardStep[4]->group = "NewMember";

$page->WizzardStep[5] = new stdClass();
$page->WizzardStep[5]->heading = $_TRANSLATION[$_SESSION["LANGUAGE"]]["D_Heading"]; ## DOCUMENTS
$page->WizzardStep[5]->intro = $_TRANSLATION[$_SESSION["LANGUAGE"]]["D_Intro"];

$page->WizzardStep[5]->validation = "validation";
$page->WizzardStep[5]->group = "NewMember";

$page->WizzardStep[6] = new stdClass();
$page->WizzardStep[6]->heading = $_TRANSLATION[$_SESSION["LANGUAGE"]]["R_Heading"]; ## REVIEW
$page->WizzardStep[6]->intro = $_TRANSLATION[$_SESSION["LANGUAGE"]]["R_Intro"];

$page->WizzardStep[6]->validation = "validation";
$page->WizzardStep[6]->Finish = "1";
$page->WizzardStep[6]->group = "NewMember";

$page->WizzardStep[7] = new stdClass();
if (isset($_SESSION["Wizzard"]->ActiveParent)) {
   if ($_SESSION["Wizzard"]->ActiveParent == "NewMember") {
      $page->WizzardStep[7]->heading = $_TRANSLATION[$_SESSION["LANGUAGE"]]["C_Heading"]; ## COMPLETED
      $page->WizzardStep[7]->intro = $_TRANSLATION[$_SESSION["LANGUAGE"]]["C_Intro"];
      $page->WizzardStep[7]->validation = "validation";
      $page->WizzardStep[7]->HideMenu = "1";
      $page->WizzardStep[7]->group = "NewMember";
   } else if ($_SESSION["Wizzard"]->ActiveParent == "SelectMember") {
      $page->WizzardStep[7]->heading = $_TRANSLATION[$_SESSION["LANGUAGE"]]["CL_Heading"]; ## COMPLETED
      $page->WizzardStep[7]->intro = $_TRANSLATION[$_SESSION["LANGUAGE"]]["CL_Intro"];
      $page->WizzardStep[7]->validation = "validation";
      $page->WizzardStep[7]->HideMenu = "1";
      $page->WizzardStep[7]->group = "SelectMember";
   }
}

//print_rr($_SESSION["WizzardStep"]);
## CHECK WITH CONTENT FUNCTION TO LOAD

## CHECK WITH BROWSER USER IS USING. ## SOME VERY STRANGE REASON CAUSING SESSION TO BREAK ON IE WITHOUT PRINT>
$browser = get_browser_name($_SERVER['HTTP_USER_AGENT']);

if (isset($_GET["Step"])) {
   $_SESSION["WizzardStep"] = $_GET["Step"];
   $page->step = $_GET["Step"];
}
if ($browser == "Internet Explorer") {
}
// var_dump($_SESSION["S3REGISTRATION"]);
## IF USER ID DOES NOT EXIST THE THE FOLLOWING STEPS CANT BE VIEWED
if (($_GET["Step"] == 2) || ($_GET["Step"] == 3) || ($_GET["Step"] == 4) || ($_GET["Step"] == 5)) {
   if (($_SESSION["S3REGISTRATION"]->UserID == "") || (!isset($_SESSION["S3REGISTRATION"]->UserID))) {
      windowLocation("registration.member.php?Step=1");
   }
}

## IF MEMBER TYPE DOES NOT EXIST THE THE FOLLOWING STEPS CANT BE VIEWED
if (($_GET["Step"] == 4) || ($_GET["Step"] == 5) || ($_GET["Step"] == 6)) {
   if (($_SESSION["S3REGISTRATION"]->refMembershipType == "") || (!isset($_SESSION["S3REGISTRATION"]->refMembershipType))) {
      windowLocation("registration.member.php?Step=3");
   }
}

## IF MEMBER ID DOES NOT EXIST THE THE FOLLOWING STEPS CANT BE VIEWED
if (($_GET["Step"] == 5) || ($_GET["Step"] == 6)) {
   if (($_SESSION["S3REGISTRATION"]->MemberID == "") || (!isset($_SESSION["S3REGISTRATION"]->MemberID))) {
      windowLocation("registration.member.php?Step=4");
   }
}

switch ($page->step) {
   case 0:
      $page->WizzardStep[0]->content = MemberRegistration::getLandingPageContent();
      break;
   case 1:
      $page->WizzardStep[1]->content = MemberRegistration::getUserDetailsContent($Message); //20170926 - Moved error message from APT onto wizard - maanie
      break;
   case 2:
      $page->WizzardStep[2]->content = MemberRegistration::getUserTypeContent();
      break;
   case 3:

      // vd($_SESSION[Wizzard]->ActiveParent);
      // die;
      if (isset($_SESSION["Wizzard"]->ActiveParent)) {
         if ($_SESSION["Wizzard"]->ActiveParent == "NewMember") {
            $page->WizzardStep[3]->content = MemberRegistration::getMembershipDetailsContent();
         } else if ($_SESSION["Wizzard"]->ActiveParent == "SelectMember") {
            $page->WizzardStep[3]->content = MemberRegistration::getLinkedMemberContent();
         }
      }
      break;

   case 4:
      $page->WizzardStep[4]->content = MemberRegistration::getMemberDetailsContent();
      break;
   case 5:
      //2015-11-30n ca replaced document upload form with one from document class
      //$page->WizzardStep[5]->content = MemberRegistration::getDocumentsContent();
      // print_rr($_POST);//die("jkhdfjkhjk");

      $page->WizzardStep[5]->content = "</form>" . Document::getUploadForm('MemberTMP', $_SESSION["S3REGISTRATION"]->MemberID) . "<input type='hidden' value='1' name='saveData' />";

      break;
   case 6:

      $page->WizzardStep[6]->content = MemberRegistration::getReviewContent();
      //TODO: add Reg.Type parameter - delete later
      break;
   case 7:
      $page->WizzardStep[7]->content = MemberRegistration::GetCompletedContent();
      if ($_SESSION["Wizzard"]->ActiveParent == "SelectMember") {
         $page->WizzardStep[7]->content = MemberRegistration::GetCompletedContentLinked($blnNewUserExistingMemberContinue, $_GET["type"]);
      }

      break;
}

//20210315 - Remove language options and make english default language - Russel
$_SESSION["LANGUAGE"] = "EN";

## RENDER WIZZARD
$pageRegister->Content = $page->renderWizzard($_TRANSLATION[$_SESSION["LANGUAGE"]]["WizzardName"]);

//$pageRegister->Message->Text = $Message; // Error message moved to wizard itself

## DISPLAY PAGE
$pageRegister->Display();

die;

?>