// InputMemberno.cpp : implementation file
//

#include "stdafx.h"
#include "ylgl.h"
#include "InputMemberno.h"
#include "AddMember.h"
#include "SelCardType.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// InputMemberno dialog
InputMemberno::InputMemberno(CWnd* pParent /*=NULL*/) : CDialog(InputMemberno::IDD, pParent)
{
	m_memberno = _T("");
	m_cardtype = _T("");
	m_type = 0;
	m_name = _T("");
	m_mode = 0;
	m_bNoAdd = 0;
	m_cardleng = atol(g_cominfoarray.ElementAt(0).ElementAt(55));
}

void InputMemberno::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT1, m_memberno);
	DDX_Text(pDX, IDC_EDIT2, m_cardtype);
	DDX_Text(pDX, IDC_EDIT3, m_name);
}

BEGIN_MESSAGE_MAP(InputMemberno, CDialog)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)
	ON_EN_SETFOCUS(IDC_EDIT1, OnSetfocusEdit1)
END_MESSAGE_MAP()


void InputMemberno::OnOK()
{
	if (GetDlgItem(IDOK)->IsWindowEnabled() == 0)return;
	if (m_type == 1 || m_type == 3)//����
	{
		CString temp = m_memberno2;
		m_memberno2 = m_memberno;
		m_memberno = temp;
		UpdateData(false);
	}
	CDialog::OnOK();
}

BOOL InputMemberno::OnInitDialog()
{
	CDialog::OnInitDialog();
	if (m_cardleng == 0)m_cardleng = 6;

	if (m_bNoAdd)
	{
		GetDlgItem(IDC_BUTTON1)->EnableWindow(0);
	}

	g_sendhead.bsql = 0;
	g_sendhead.code[0] = 68;
	g_sendhead.code[1] = 127;
	g_sendhead.code[2] = 130;
	g_sendhead.code[3] = 131;
	g_sendhead.tabcount = 4;
	g_pMainWnd->ProcessChatMessageRequest2(0); if (g_bSendOK == 0)return 0;
	DataToArray(&m_List1array, &m_List2array, &m_List3array, &m_List4array);
	CenterWindow();
	return TRUE;
}

void InputMemberno::OnButton1()
{
	AddMember dlg;
	if (dlg.DoModal() == IDOK)
	{
		m_memberno = dlg.m_memberno;
		UpdateData(false);
		g_sendhead.bsql = 0;
		g_sendhead.code[0] = 68;
		g_sendhead.code[1] = 127;
		g_sendhead.code[2] = 130;
		g_sendhead.code[3] = 131;
		g_sendhead.tabcount = 4;
		g_pMainWnd->ProcessChatMessageRequest2(0); if (g_bSendOK == 0)return;
		DataToArray(&m_List1array, &m_List2array, &m_List3array, &m_List4array);
		CheckType();
	}
}

BOOL InputMemberno::PreTranslateMessage(MSG* pMsg)
{
	if (pMsg->message == WM_KEYDOWN)
	{
		switch (pMsg->wParam)
		{
		case '0':
		case VK_NUMPAD0:
			m_input += "0";
			CheckInput();
			break;
		case '1':
		case VK_NUMPAD1:
			m_input += "1";
			CheckInput();
			break;
		case '2':
		case VK_NUMPAD2:
			m_input += "2";
			CheckInput();
			break;
		case '3':
		case VK_NUMPAD3:
			m_input += "3";
			CheckInput();
			break;
		case '4':
		case VK_NUMPAD4:
			m_input += "4";
			CheckInput();
			break;
		case '5':
		case VK_NUMPAD5:
			m_input += "5";
			CheckInput();
			break;
		case '6':
		case VK_NUMPAD6:
			m_input += "6";
			CheckInput();
			break;
		case '7':
		case VK_NUMPAD7:
			m_input += "7";
			CheckInput();
			break;
		case '8':
		case VK_NUMPAD8:
			m_input += "8";
			CheckInput();
			break;
		case '9':
		case VK_NUMPAD9:
			m_input += "9";
			CheckInput();
			break;
#if JEFF_TEST_ON
		case 0x41:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "A";
			else
				m_input += "a";
			CheckInput();
		}
		break;
		case 0x42:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "B";
			else
				m_input += "b";
			CheckInput();
		}
		break;
		case 0x43:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "C";
			else
				m_input += "c";
			CheckInput();
		}
		break;
		case 0x44:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "D";
			else
				m_input += "d";
			CheckInput();
		}
		break;
		case 0x45:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "E";
			else
				m_input += "e";
			CheckInput();
		}
		break;
		case 0x46:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "F";
			else
				m_input += "f";
			CheckInput();
		}
		break;
		case 0x47:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "G";
			else
				m_input += "g";
			CheckInput();
		}
		break;
		case 0x48:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "H";
			else
				m_input += "h";
			CheckInput();
		}
		break;
		case 0x49:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "I";
			else
				m_input += "i";
			CheckInput();
		}
		break;
		case 0x4A:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "J";
			else
				m_input += "j";
			CheckInput();
		}
		break;
		case 0x4B:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "K";
			else
				m_input += "k";
			CheckInput();
		}
		break;
		case 0x4C:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "L";
			else
				m_input += "l";
			CheckInput();
		}
		break;
		case 0x4D:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "M";
			else
				m_input += "m";
			CheckInput();
		}
		break;
		case 0x4E:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "N";
			else
				m_input += "n";
			CheckInput();
		}
		break;
		case 0x4F:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "O";
			else
				m_input += "o";
			CheckInput();
		}
		break;
		case 0x50:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "P";
			else
				m_input += "p";
			CheckInput();
		}
		break;
		case 0x51:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "Q";
			else
				m_input += "q";
			CheckInput();
		}
		break;
		case 0x52:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "R";
			else
				m_input += "r";
			CheckInput();
		}
		break;
		case 0x53:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "S";
			else
				m_input += "s";
			CheckInput();
		}
		break;
		case 0x54:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "T";
			else
				m_input += "t";
			CheckInput();
		}
		break;
		case 0x55:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "U";
			else
				m_input += "u";
			CheckInput();
		}
		break;
		case 0x56:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "V";
			else
				m_input += "v";
			CheckInput();
		}
		break;
		case 0x57:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "W";
			else
				m_input += "w";
			CheckInput();
		}
		break;
		case 0x58:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "X";
			else
				m_input += "x";
			CheckInput();
		}
		break;
		case 0x59:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "Y";
			else
				m_input += "y";
			CheckInput();
		}
		break;
		case 0x5A:
		{
			if ((GetKeyState(VK_SHIFT) & 0X8000) || (GetKeyState(VK_CAPITAL) & 0x0001))
				m_input += "Z";
			else
				m_input += "z";
			CheckInput();
		}
		break;
#endif
		case VK_BACK:
			if (m_input.GetLength())
			{
				m_input.Delete(m_input.GetLength() - 1);
				CheckInput();
			}
			break;
		}
	}
	return CDialog::PreTranslateMessage(pMsg);
}

void InputMemberno::CheckInput()
{
	m_memberno = m_input;
	UpdateData(false);
	CheckType();
}

void InputMemberno::OnChangeEdit1()
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	//	UpdateData();
	//	m_input=m_memberno;
	//	if(m_memberno.GetLength ()>=6)
	//		OnOK();
	//	CheckType();
	// TODO: Add your control notification handler code here

}

void InputMemberno::OnSetfocusEdit1()
{
	GetDlgItem(IDC_EDIT7)->SetFocus();
}

void InputMemberno::CheckType(int type)
{
	GetDlgItem(IDOK)->EnableWindow(0);
	UpdateData();
	m_memberno.TrimLeft();
	m_memberno.TrimRight();
	SetDlgItemText(IDC_STATIC1, "");
	if (m_memberno.IsEmpty())
	{
		return;
	}


	CStringArray namearray;
	for (int i = 0; i < m_List1array.GetSize(); i++)
	{
		if (m_List1array.ElementAt(i).ElementAt(1) == m_memberno)
		{
			m_type = 0;
			GetDlgItem(IDOK)->EnableWindow(1);
			m_cardtype = "�𿨻�Ա";
			m_name = m_List1array.ElementAt(i).ElementAt(2);
			UpdateData(false);
			if (type != -1 && type == m_type)
				return;
			if (m_mode)return;
			namearray.Add(m_cardtype);
		}
	}

	if (m_mode == 0)
	{
		for (i = 0; i < m_List2array.GetSize(); i++)
		{
			if (m_List2array.ElementAt(i).ElementAt(1) == m_memberno)
			{
				m_type = 1;
				m_memberno2 = m_List2array.ElementAt(i).ElementAt(0);
				m_memberno2date = m_List2array.ElementAt(i).ElementAt(2);
				GetDlgItem(IDOK)->EnableWindow(1);
				m_cardtype = "�𿨸���";
				GetNameFromNo(m_memberno2, m_membernoname, m_membernosex, m_membernophone);
				m_name = m_membernoname;
				UpdateData(false);
				if (type != -1 && type == m_type)
					return;
				namearray.Add(m_cardtype);
			}
		}
		for (i = 0; i < m_List3array.GetSize(); i++)
		{
			if (m_List3array.ElementAt(i).ElementAt(1) == m_memberno)
			{
				m_type = 2;
				GetDlgItem(IDOK)->EnableWindow(1);
				m_cardtype = "���꿨��Ա";
				m_name = m_List3array.ElementAt(i).ElementAt(2);
				UpdateData(false);
				if (type != -1 && type == m_type)
					return;
				namearray.Add(m_cardtype);
			}
		}
		for (i = 0; i < m_List4array.GetSize(); i++)
		{
			if (m_List4array.ElementAt(i).ElementAt(1) == m_memberno)
			{
				m_type = 3;
				m_memberno2 = m_List4array.ElementAt(i).ElementAt(0);
				m_memberno2date = m_List4array.ElementAt(i).ElementAt(2);
				GetDlgItem(IDOK)->EnableWindow(1);
				m_cardtype = "���꿨����";
				GetNameFromNo2(m_memberno2, m_membernoname, m_membernosex, m_membernophone, m_membernojiage);
				m_name = m_membernoname;
				UpdateData(false);
				if (type != -1 && type == m_type)
					return;
				namearray.Add(m_cardtype);
			}
		}
	}
	if (namearray.GetSize() == 1)return;
	if (type == -1 && namearray.GetSize() > 1)
	{
		SelCardType dlg;
		dlg.m_pArray = &namearray;
		dlg.DoModal();
		CheckType(dlg.m_type);
		return;
	}
	m_cardtype = "";
	m_name = "";
	UpdateData(false);
	SetDlgItemText(IDC_STATIC1, "û�������Ա����!");
}

void InputMemberno::GetNameFromNo(CString no, CString &name, CString &sex, CString &phone)
{
	CString filter = "[memberno]='" + no + "'";
	g_sendhead.bsql = 0;
	g_sendhead.code[0] = 68;
	g_sendhead.tabcount = 1;
	g_pMainWnd->ProcessChatMessageRequest2(filter);
	if (g_bSendOK == 0)return;
	DataToArray(&g_List1array);
	if (g_List1array.GetSize())
	{
		name = g_List1array.ElementAt(0).ElementAt(2);
		sex = g_List1array.ElementAt(0).ElementAt(3);
		phone = g_List1array.ElementAt(0).ElementAt(4);
		return;
	}
}

void InputMemberno::GetNameFromNo2(CString no, CString &name, CString &sex, CString &phone, CString &price)
{
	CString filter = "[memberno]='" + no + "'";
	g_sendhead.bsql = 0;
	g_sendhead.code[0] = 130;
	g_sendhead.tabcount = 1;
	g_pMainWnd->ProcessChatMessageRequest2(filter);
	if (g_bSendOK == 0)return;
	DataToArray(&g_List1array);
	if (g_List1array.GetSize())
	{
		name = g_List1array.ElementAt(0).ElementAt(2);
		sex = g_List1array.ElementAt(0).ElementAt(3);
		phone = g_List1array.ElementAt(0).ElementAt(4);
		price = g_List1array.ElementAt(0).ElementAt(9);
		return;
	}
}