# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import time
import wx
import widgetUtils

code = None
remember = True

def new_account_dialog():
	return wx.MessageDialog(None, _("In order to continue, you need to configure your VK account before. Would you like to autorhise a new account now?"), _("Authorisation"), wx.YES_NO).ShowModal()

def two_factor_auth():
	global code, remember
	wx.CallAfter(get_code)
	while code == None:
		time.sleep(0.5)
	return (code, remember)

def get_code():
	global code, remember
	dlg = wx.TextEntryDialog(None, _("Please provide the authentication code you have received from VK."), _("Two factor authentication code"))
	response = dlg.ShowModal()
	if response == widgetUtils.OK:
		code = dlg.GetValue()
		dlg.Destroy()
	dlg.Destroy()

class newSessionDialog(widgetUtils.BaseDialog):
	def __init__(self):
		super(newSessionDialog, self).__init__(parent=None, id=wx.NewId(), title=_("Authorise VK"))
		panel = wx.Panel(self)
		lbl1 = wx.StaticText(panel, -1, _("&Email or phone number"))
		self.email = wx.TextCtrl(panel, -1)
		lbl2 = wx.StaticText(panel, -1, _("&Password"))
		self.passw = wx.TextCtrl(panel, -1, style=wx.TE_PASSWORD)
		sizer = wx.BoxSizer()
		b1 = wx.BoxSizer(wx.HORIZONTAL)
		b1.Add(lbl1, 0, wx.ALL, 5)
		b1.Add(self.email, 0, wx.ALL, 5)
		b2 = wx.BoxSizer(wx.HORIZONTAL)
		b2.Add(lbl2, 0, wx.ALL, 5)
		b2.Add(self.passw, 0, wx.ALL, 5)
		sizer.Add(b1, 0, wx.ALL, 5)
		sizer.Add(b2, 0, wx.ALL, 5)
		ok = wx.Button(panel, wx.ID_OK)
		ok.SetDefault()
		cancel = wx.Button(panel, wx.ID_CANCEL)
		btnb = wx.BoxSizer(wx.HORIZONTAL)
		btnb.Add(ok, 0, wx.ALL, 5)
		btnb.Add(cancel, 0, wx.ALL, 5)
		sizer.Add(btnb, 0, wx.ALL, 5)
		panel.SetSizer(sizer)

	def get_email(self):
		return self.email.GetValue()

	def get_password(self):
		return self.passw.GetValue()