// SetLeftBar.cpp : implementation file
//

#include "stdafx.h"
#include "ylgl.h"
#include "SetLeftBar.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// SetLeftBar dialog
SetLeftBar::SetLeftBar(CWnd* pParent /*=NULL*/)
	: CDialog(SetLeftBar::IDD, pParent)
{
	//{{AFX_DATA_INIT(SetLeftBar)
	// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

void SetLeftBar::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(SetLeftBar)
	// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(SetLeftBar, CDialog)
	//{{AFX_MSG_MAP(SetLeftBar)
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// SetLeftBar message handlers

BOOL SetLeftBar::OnInitDialog()
{
	//	LOG4C((LOG_NOTICE,"SetLeftBar::OnInitDialog"));
	CDialog::OnInitDialog();
	CString filter = "account='" + m_account + "'";
	g_sendhead.bsql = 0;
	g_sendhead.code[0] = 23;
	g_sendhead.tabcount = 1;
	g_pMainWnd->ProcessChatMessageRequest2(filter);
	if (g_bSendOK == 0)
	{
		CDialog::OnCancel();
		return 0;
	}
	DataToArray(&g_List1array);
	if (g_List1array.GetSize() == 0)
	{
		CDialog::OnCancel();
		return 0;
	}
	// Jeff.case 23 at[4]�������;
	m_rights = g_List1array.ElementAt(0).ElementAt(4);
	//	::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE);
	::MoveWindow(m_hWnd, 0, g_rc.top, g_rc.left + g_rc.Width(), g_rc.Height(), TRUE);
	// TODO: Add extra initialization here

	List1array.SetSize(15, 0);

	List1array.ElementAt(0).Add("��������");
	List1array.ElementAt(0).Add("����");
	List1array.ElementAt(0).Add("����");
	List1array.ElementAt(0).Add("��Ƭ");
	List1array.ElementAt(0).Add("ѡƬ");
	List1array.ElementAt(0).Add("����");
	List1array.ElementAt(0).Add("���");
	List1array.ElementAt(0).Add("����");
	List1array.ElementAt(0).Add("��Ƭ��ӡ");
	List1array.ElementAt(0).Add("��Ƭ/ȡ��");
	List1array.ElementAt(0).Add("���밲��");

	List1array.ElementAt(1).Add("�������");
	List1array.ElementAt(1).Add("�����տ�");
	List1array.ElementAt(1).Add("��������");
	List1array.ElementAt(1).Add("�ֽ�֧��");
	List1array.ElementAt(1).Add("��������");
	List1array.ElementAt(1).Add("��ɱ���");
	//	List1array.ElementAt (1).Add ("Ա������");
	List1array.ElementAt(1).Add("�Ƽ����");	// Jeff
	List1array.ElementAt(1).Add("���ʹ���");
	List1array.ElementAt(1).Add("Ա������");

	List1array.ElementAt(2).Add("ͳ�Ʋ�ѯ");
	List1array.ElementAt(2).Add("�ղ����");
	List1array.ElementAt(2).Add("�²����");
	List1array.ElementAt(2).Add("������");
	List1array.ElementAt(2).Add("�����ͼ��");
	List1array.ElementAt(2).Add("����ͼ��");
	List1array.ElementAt(2).Add("�ɱ�����");
	List1array.ElementAt(2).Add("���ʱ���");
	List1array.ElementAt(2).Add("Ա��ҵ��");
	List1array.ElementAt(2).Add("Ա������");
	List1array.ElementAt(2).Add("Ա������");
	List1array.ElementAt(2).Add("�ͻ�����");

	//List1array.ElementAt (3).Add (" ����Ⱥ�� ");  // remark by jeff
	List1array.ElementAt(3).Add(" ���Ź��� ");	// 2014.05.19 ��Ҫ��"����Ⱥ��"�ij�"���Ź���"
	List1array.ElementAt(3).Add("����Ⱥ��");
	List1array.ElementAt(3).Add("���ŷ���");
	List1array.ElementAt(3).Add("���̶���");
	List1array.ElementAt(3).Add("Ա������");
	List1array.ElementAt(3).Add("���ͼ�¼");
	List1array.ElementAt(3).Add("��������");

	List1array.ElementAt(4).Add("��Ա����");
	List1array.ElementAt(4).Add("�𿨻�Ա");
	List1array.ElementAt(4).Add("�ֽ��ӿ�");
	List1array.ElementAt(4).Add("��ͼ��");
	List1array.ElementAt(4).Add("���ֶ���");

	List1array.ElementAt(4).Add("�����Ա");
	List1array.ElementAt(4).Add("ת���ܷ���");
	List1array.ElementAt(4).Add("ת����ͼ��");
	List1array.ElementAt(4).Add("��������");

	List1array.ElementAt(5).Add("�������");
	List1array.ElementAt(5).Add("���¼��");
	List1array.ElementAt(5).Add("����鿴");
	List1array.ElementAt(5).Add("�������");
	List1array.ElementAt(5).Add("ײ��Ԥ��");
	List1array.ElementAt(5).Add("���ͼƬ");


	List1array.ElementAt(6).Add("������");
	List1array.ElementAt(6).Add("��ⵥ");
	List1array.ElementAt(6).Add("���ⵥ");
	List1array.ElementAt(6).Add("����ѯ");
	List1array.ElementAt(6).Add("��Ʒͼ��");
	List1array.ElementAt(6).Add("�̶��ʲ�����");

#ifdef LYFZ_VERSION
	List1array.ElementAt (7).Add ("�ͻ�����");
	List1array.ElementAt (7).Add ("����ͻ�");
	List1array.ElementAt (7).Add ("�����¼");
	List1array.ElementAt (7).Add ("����ͳ��");
	List1array.ElementAt (7).Add ("ÿ��ǩ��");
	List1array.ElementAt (7).Add ("�����");
	List1array.ElementAt (7).Add ("�ͻ�����");
	List1array.ElementAt (7).Add ("�����");
	List1array.ElementAt (7).Add ("�����ͼ��");
	List1array.ElementAt (7).Add ("�ͻ���ʧ");
	List1array.ElementAt (7).Add ("�ͻ���Դ");
#else
	List1array.ElementAt(7).Add("�ͻ�����");
	List1array.ElementAt(7).Add("�����ͻ�");
	List1array.ElementAt(7).Add("�Ͽͻ�");
	List1array.ElementAt(7).Add("����ͻ�");
	List1array.ElementAt(7).Add("�ͻ���ʧ");
	List1array.ElementAt(7).Add("�ͻ���Դ");
#endif

	List1array.ElementAt(8).Add("���羫��");
	List1array.ElementAt(8).Add("�ͻ�����");
	List1array.ElementAt(8).Add("�����绰");
	List1array.ElementAt(8).Add("�����");

	List1array.ElementAt(9).Add("Ա������");
	List1array.ElementAt(9).Add("���ڼ�¼");
	List1array.ElementAt(9).Add("��ͳ��");
	List1array.ElementAt(9).Add("ʱ������");
	List1array.ElementAt(9).Add("������");

	List1array.ElementAt(10).Add("�ͻ�����");
	List1array.ElementAt(10).Add("�����");
	List1array.ElementAt(10).Add("�����ͼ��");
#if JEFF_DELETE_ON	// 2014.11.14-PM 16:20
	List1array.ElementAt(10).Add("�ظ�ͳ��");
#endif
	BOOL bHospital = 0;
	if (g_cominfoarray.GetSize())
	{
		if (atoi(g_cominfoarray.ElementAt(0).ElementAt(125)))
		{
			bHospital = 1;
		}
	}

	if (bHospital)
	{
		List1array.ElementAt(11).Add("ҽԺ����ϵͳ");
		List1array.ElementAt(11).Add("�����ѯ");
		List1array.ElementAt(11).Add("����¼��");
		List1array.ElementAt(11).Add("��������");
		List1array.ElementAt(11).Add("���ٶ���");
		List1array.ElementAt(11).Add("��������");
	}

	for (int i = 0; i < 15; i++)
	{
		while (List1array.ElementAt(i).GetSize() < 20)
			List1array.ElementAt(i).Add("");
	}

	CRect rc(10, 0, 15, 15);
	CString str;
	int itemcount = 11;
	if (bHospital)itemcount++;
	for (int a = 0; a < itemcount; a++)
	{
		rc.right = rc.left + 100;
		rc.top = 20;
		for (int b = 0; b < 20; b++)
		{
			str = List1array.ElementAt(a).ElementAt(b);
			if (str.IsEmpty())break;
			CButton *pBtn = new CButton;
			rc.top += 22;
			rc.bottom = rc.top + 17;
			pBtn->Create(str, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_FLAT, rc, this, 123);
			if (b == 0)
			{
				if (IsHasRightsHead(m_rights, str))
					pBtn->SetCheck(1);
			}
			else
			{
				if (IsHasRightsItem(m_rights, List1array.ElementAt(a).ElementAt(0), str))
					pBtn->SetCheck(1);
			}
			m_pCheckArray.Add(pBtn);
		}
		if (g_screenwid <= 1024)
			rc.left += 101;
		else
			rc.left += 105;
	}

	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}

void SetLeftBar::SetRights(CString rights)
{
	//	int header[]={};

}

void SetLeftBar::OnDestroy()
{
	// TODO: Add your message handler code here
	for (int i = 0; i < m_pCheckArray.GetSize(); i++)
	{
		CButton *pBtn = m_pCheckArray.ElementAt(i);
		pBtn->DestroyWindow();
		delete pBtn;
	}
	CDialog::OnDestroy();
}

BOOL SetLeftBar::IsHasRightsHead(CString rights, CString name)
{
	name = "*" + name + ";1;";
	int pos = rights.Find(name);
	if (pos == -1)return 0;
	return 1;
}

BOOL SetLeftBar::IsHasRightsItem(CString rights, CString head, CString name)
{
	head = "*" + head + ";";
	int pos = rights.Find(head);
	if (pos == -1)return 0;
	rights = rights.Right(rights.GetLength() - pos - head.GetLength() - 2);
	pos = rights.Find("*");
	if (pos != -1)
		rights = rights.Left(pos);

	if (rights.Find(name) != -1)return 1;
	return 0;
}

void SetLeftBar::OnOK()
{
	// TODO: Add extra validation here
	m_rights.Empty();
	for (int i = 0; i < m_pCheckArray.GetSize(); i++)
	{
		CButton *pBtn = m_pCheckArray.ElementAt(i);
		CString str;
		pBtn->GetWindowText(str);
		if (IsHeader(str))
		{
			m_rights += "*" + str + ";";
			if (pBtn->GetCheck() == 0)
				m_rights += "0;";
			else
				m_rights += "1;";
		}
		else
		{
			if (pBtn->GetCheck() == 0)continue;
			m_rights += str + ";";
		}

	}

	CString sql;
	sql.Format("update [user] set [rights2]='%s' where [account]='%s' ", m_rights, m_account);
	g_sendhead.bsql = 1;
	g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
	AfxMessageBox("����ɹ�!");
	//AfxMessageBox(sql);
	CDialog::OnOK();
}

BOOL SetLeftBar::IsHeader(CString name)
{
	for (int i = 0; i < List1array.GetSize(); i++)
	{
		if (name == List1array.ElementAt(i).ElementAt(0))return 1;
	}
	return 0;

}