/*!
Copyright 2020-2021 Maxim Noltmeer (m.noltmeer@gmail.com)
*/
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Client.h"
#include "SetPassword.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TSetPasswordForm *SetPasswordForm;
//---------------------------------------------------------------------------
__fastcall TSetPasswordForm::TSetPasswordForm(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TSetPasswordForm::ApplyClick(TObject *Sender)
{
  if (Password->Text == "")
	MessageBox(this->Handle, L"Не вказано пароль", L"Помилка", MB_OK|MB_ICONERROR);
  else if (ConfirmPassword->Text == "")
	MessageBox(this->Handle, L"Не вказане підтвердження паролю", L"Помилка", MB_OK|MB_ICONERROR);
  else if (Password->Text != ConfirmPassword->Text)
	MessageBox(this->Handle, L"Пароль та його підтвердження не збігаються", L"Помилка", MB_OK|MB_ICONERROR);
  else if (!ClientForm->IsValidPassword(Password->Text))
	MessageBox(this->Handle, L"Пароль не відповідає правилам. Довжина паролю має бути не менше ніж 8 символів. Допускаються латинські літери верхнього та нижнього регістру, цифри та символи '!', '@', '#', '$', '%', '^', '&', '*', '-', '_'", L"Помилка", MB_OK|MB_ICONERROR);
  else
	{
	  if (ClientForm->SetUserPassword(UserID, Password->Text))
		{
		  MessageBox(this->Handle, L"Пароль успішно змінено", L"Успіх", MB_OK|MB_ICONINFORMATION);
		  Close();
		}
	  else
		MessageBox(this->Handle, L"Не вдалось змінити пароль", L"Помилка", MB_OK|MB_ICONERROR);
	}
}
//---------------------------------------------------------------------------

void __fastcall TSetPasswordForm::CancelClick(TObject *Sender)
{
  Close();
}
//---------------------------------------------------------------------------

void __fastcall TSetPasswordForm::FormShow(TObject *Sender)
{
  Left = ClientForm->Left + ClientForm->ClientWidth / 2 - ClientWidth / 2;
  Top = ClientForm->Top + ClientForm->ClientHeight / 2 - ClientHeight / 2;
  Password->Text = "";
  ConfirmPassword->Text = "";
}
//---------------------------------------------------------------------------

void __fastcall TSetPasswordForm::PasswordKeyPress(TObject *Sender, System::WideChar &Key)
{
  if (Key == 13)
	Apply->Click();
}
//---------------------------------------------------------------------------

void __fastcall TSetPasswordForm::ConfirmPasswordKeyPress(TObject *Sender, System::WideChar &Key)
{
  if (Key == 13)
	Apply->Click();
}
//---------------------------------------------------------------------------

