// DLG_User_Modify.cpp : implementation file
//

#include "stdafx.h"
#include "SmsManager.h"
#include "DLG_User_Modify.h"

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

/////////////////////////////////////////////////////////////////////////////
// DLG_User_Modify dialog
#include "MainFrm.h"
#include "DLG_Corp_User.h"

DLG_User_Modify::DLG_User_Modify(CWnd* pParent /*=NULL*/)
	: CDialog(DLG_User_Modify::IDD, pParent)
	, m_bAllowRandSmsnum(FALSE)
	, m_bAllowExtend(FALSE)
	, m_bProhibitNonTemplate(FALSE)
	, m_bProhibitClient(FALSE)
{
	//{{AFX_DATA_INIT(DLG_User_Modify)
	m_bGAddress_Add = FALSE;
	m_bGAddress_Del = FALSE;
	m_bGAddress_Modify = FALSE;
	m_bGAddress_See = FALSE;
	m_tBirthday = COleDateTime::GetCurrentTime();
	m_bLogin = FALSE;
	m_bRecvG = FALSE;
	m_bRecvP = FALSE;
	m_bSeeBill = FALSE;
	m_bSeeList = FALSE;
	m_bSendG = FALSE;
	m_bSendP = FALSE;
	m_strBZ = _T("");
	m_strCreateTime = _T("");
	m_strCreateUser = _T("");
	m_strEmail = _T("");
	m_strFax = _T("");
	m_strJob = _T("");
	m_strLoginCount = _T("");
	m_strLoginName = _T("");
	m_strMobile = _T("");
	m_strName = _T("");
	m_strNickName = _T("");
	m_strQQ = _T("");
	m_lSex = -1;
	m_strNum = _T("");
	m_strSMSSendedAll = _T("");
	m_strSMSUsed = _T("");
	m_strTel = _T("");
	m_strLoginMsg = _T("");
	m_strLocal = _T("");
	m_bPAddress = FALSE;
	m_lPurviewType = -1;
	m_bSmsEmail = FALSE;
	m_bCalendar = FALSE;
	m_bSP = FALSE;
	m_bSDK = FALSE;
	m_strSDKIP = _T("");
	m_bAutoQuery = FALSE;
	m_bAutoReg = FALSE;
	m_strCM2 = _T("");
	m_bAword = FALSE;
	m_bSWT = FALSE;
	m_lSendSpeed = -1;
	m_bAutoReSend = FALSE;
	m_bAllowSetMobile = FALSE;
	m_bRTX = FALSE;
	m_strGAddress_Group = _T("");
	m_bGAddress_UserModify = FALSE;
	m_bGAddress_UserManager = FALSE;
	m_bSmsExpress = FALSE;
	m_bAllowChangeTD = FALSE;
	m_bAllowFindFail = FALSE;
	m_bDXT = FALSE;
	m_bUBox = FALSE;
	m_bHideNum = FALSE;
	m_bPL = FALSE;
	m_bPL_Verify = FALSE;
	m_bPL_Audit = FALSE;
	m_strMmsUsed = _T("");
	//}}AFX_DATA_INIT

	m_pCUser = (DLG_Corp_User *)pParent;
	memset( &m_Address , 0 , sizeof(m_Address));
	m_bModifyPurview = true;
	m_bResetPasswd   = false;
	m_bSetPasswd     = false;
	m_bClearPasswd = false;
	m_bAdd           = false;
	m_bModify        = false;
	m_bGJ            = false;
	m_lCorpID        = 0;
	m_lUserID        = 0;
	memset( m_szPasswd , 0 , sizeof(m_szPasswd) );
	memset( m_szIP , 0 , sizeof(m_szIP));
	memset( m_szLocal,0, sizeof(m_szLocal));
	m_Pos = 0;
	m_dwSDK=0;

}


void DLG_User_Modify::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DLG_User_Modify)
	DDX_Control(pDX, IDC_USERMODIFY_S1, m_S_S1);
	DDX_Control(pDX, IDC_USERMODIFY_PASSWD, m_B_Passwd);
	DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_ADD, m_bGAddress_Add);
	DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_DEL, m_bGAddress_Del);
	DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_MODIFY, m_bGAddress_Modify);
	DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_SEE, m_bGAddress_See);
	DDX_DateTimeCtrl(pDX, IDC_USERMODIFY_BIRTHDAY, m_tBirthday);
	DDX_Check(pDX, IDC_USERMODIFY_BLOGIN, m_bLogin);
	DDX_Check(pDX, IDC_USERMODIFY_BRECVG, m_bRecvG);
	DDX_Check(pDX, IDC_USERMODIFY_BRECVP, m_bRecvP);
	DDX_Check(pDX, IDC_USERMODIFY_BSEEBILL, m_bSeeBill);
	DDX_Check(pDX, IDC_USERMODIFY_BSEELIST, m_bSeeList);
	DDX_Check(pDX, IDC_USERMODIFY_BSENDGADDRESS, m_bSendG);
	DDX_Check(pDX, IDC_USERMODIFY_BSENDPADDRESS, m_bSendP);
	DDX_Text(pDX, IDC_USERMODIFY_BZ, m_strBZ);
	DDV_MaxChars(pDX, m_strBZ, 60);
	DDX_Text(pDX, IDC_USERMODIFY_CREATETIME, m_strCreateTime);
	DDX_Text(pDX, IDC_USERMODIFY_CREATEUSER, m_strCreateUser);
	DDX_Text(pDX, IDC_USERMODIFY_EMAIL, m_strEmail);
	DDV_MaxChars(pDX, m_strEmail, 28);
	DDX_Text(pDX, IDC_USERMODIFY_FAX, m_strFax);
	DDV_MaxChars(pDX, m_strFax, 15);
	DDX_Text(pDX, IDC_USERMODIFY_JOB, m_strJob);
	DDV_MaxChars(pDX, m_strJob, 15);
	DDX_Text(pDX, IDC_USERMODIFY_LOGINCOUNT, m_strLoginCount);
	DDX_Text(pDX, IDC_USERMODIFY_LOGINNAME, m_strLoginName);
	DDV_MaxChars(pDX, m_strLoginName, 15);
	DDX_Text(pDX, IDC_USERMODIFY_MOBILE, m_strMobile);
	DDV_MaxChars(pDX, m_strMobile, 15);
	DDX_Text(pDX, IDC_USERMODIFY_NAME, m_strName);
	DDV_MaxChars(pDX, m_strName, 15);
	DDX_Text(pDX, IDC_USERMODIFY_NICKNAME, m_strNickName);
	DDV_MaxChars(pDX, m_strNickName, 15);
	DDX_Text(pDX, IDC_USERMODIFY_QQ, m_strQQ);
	DDV_MaxChars(pDX, m_strQQ, 15);
	DDX_CBIndex(pDX, IDC_USERMODIFY_SEX, m_lSex);
	DDX_Text(pDX, IDC_USERMODIFY_SMSNUM, m_strNum);
	DDX_Text(pDX, IDC_USERMODIFY_SMSSENDEDALL, m_strSMSSendedAll);
	DDX_CBString(pDX, IDC_USERMODIFY_SMSUSED, m_strSMSUsed);
	DDV_MaxChars(pDX, m_strSMSUsed, 8);
	DDX_Text(pDX, IDC_USERMODIFY_TEL, m_strTel);
	DDV_MaxChars(pDX, m_strTel, 15);
	DDX_Text(pDX, IDC_USERMODIFY_LOGINMSG, m_strLoginMsg);
	DDX_Text(pDX, IDC_USERMODIFY_LOCAL, m_strLocal);
	DDX_Check(pDX, IDC_USERMODIFY_BPADDRESS, m_bPAddress);
	DDX_CBIndex(pDX, IDC_USERMODIFY_PURVIEWTYPE, m_lPurviewType);
	DDX_Check(pDX, IDC_USERMODIFY_SMSEMAIL, m_bSmsEmail);
	DDX_Check(pDX, IDC_USERMODIFY_CALENDAR, m_bCalendar);
	DDX_Check(pDX, IDC_USERMODIFY_SMSSP, m_bSP);
	DDX_Check(pDX, IDC_USERMODIFY_SDK, m_bSDK);
	DDX_Text(pDX, IDC_USERMODIFY_IP, m_strSDKIP);
	DDV_MaxChars(pDX, m_strSDKIP, 120);
	DDX_Check(pDX, IDC_USERMODIFY_AUTOQUERY, m_bAutoQuery);
	DDX_Check(pDX, IDC_USERMODIFY_AUTOREG, m_bAutoReg);
	DDX_Text(pDX, IDC_USERMODIFY_CM2, m_strCM2);
	DDV_MaxChars(pDX, m_strCM2, 30);
	DDX_Check(pDX, IDC_USERMODIFY_AWORD, m_bAword);
	DDX_Check(pDX, IDC_USERMODIFY_SWT, m_bSWT);
	DDX_CBIndex(pDX, IDC_USERMODIFY_SENDSPEED, m_lSendSpeed);
	DDX_Check(pDX, IDC_USERMODIFY_AUTORESEND, m_bAutoReSend);
	DDX_Check(pDX, IDC_USERMODIFY_ALLOWSETMOBILE, m_bAllowSetMobile);
	DDX_Check(pDX, IDC_USERMODIFY_RTX, m_bRTX);
	DDX_Text(pDX, IDC_USERMODIFY_BGADDRESS_GROUP, m_strGAddress_Group);
	DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_USER_ADMINMODIFY, m_bGAddress_UserModify);
	DDX_Check(pDX, IDC_USERMODIFY_BGADDRESS_USER_MANAGER, m_bGAddress_UserManager);
	DDX_Check(pDX, IDC_USERMODIFY_SMSEXPRESS, m_bSmsExpress);
	DDX_Check(pDX, IDC_USERMODIFY_ALLOWCHANGETD, m_bAllowChangeTD);
	DDX_Check(pDX, IDC_USERMODIFY_ALLOWFINDFAIL, m_bAllowFindFail);
	DDX_Check(pDX, IDC_USERMODIFY_DXT, m_bDXT);
	DDX_Check(pDX, IDC_USERMODIFY_HIDENUM, m_bHideNum);
	DDX_Check(pDX, IDC_USERMODIFY_PL, m_bPL);
	DDX_Check(pDX, IDC_USERMODIFY_PL_VERIFY, m_bPL_Verify);
	DDX_Check(pDX, IDC_USERMODIFY_PL_AUDIT, m_bPL_Audit);
	DDX_CBString(pDX, IDC_USERMODIFY_MMSUSED, m_strMmsUsed);
	DDV_MaxChars(pDX, m_strMmsUsed, 8);
	//}}AFX_DATA_MAP
	DDX_Check(pDX, IDC_USERMODIFY_UBOX, m_bUBox);
	DDX_Check(pDX, IDC_USERMODIFY_ALLOWRANDSMSNUM, m_bAllowRandSmsnum);
	DDX_Control(pDX, IDC_USERMODIFY_CLEARPASSWD, m_B_ClearPasswd);
	DDX_Check(pDX, IDC_USERMODIFY_ALLOWEXTEND, m_bAllowExtend);
	DDX_Check(pDX, IDC_USERMODIFY_SDK_PROHIBITNONTEMPLATE, m_bProhibitNonTemplate);
	DDX_Check(pDX, IDC_USERMODIFY_SDK_PROHIBITCLIENT, m_bProhibitClient);
}


BEGIN_MESSAGE_MAP(DLG_User_Modify, CDialog)
	//{{AFX_MSG_MAP(DLG_User_Modify)
	ON_BN_CLICKED(IDC_USERMODIFY_PASSWD, OnUsermodifyPasswd)
	ON_EN_CHANGE(IDC_USERMODIFY_LOGINNAME, OnChangeUsermodifyLoginname)
	ON_EN_KILLFOCUS(IDC_USERMODIFY_NAME, OnKillfocusUsermodifyName)
	ON_BN_CLICKED(IDC_USERMODIFY_BLOGIN, OnUsermodifyBlogin)
	ON_BN_CLICKED(IDC_USERMODIFY_SMSNUM_AUTO, OnUsermodifySmsnumAuto)
	ON_BN_CLICKED(IDC_USERMODIFY_PURVIEWGJ, OnUsermodifyPurviewgj)
	ON_CBN_SELCHANGE(IDC_USERMODIFY_PURVIEWTYPE, OnSelchangeUsermodifyPurviewtype)
	ON_COMMAND(ID_CLISMSTD, OnClismstd)
	//}}AFX_MSG_MAP
	ON_BN_CLICKED(IDOK, &DLG_User_Modify::OnBnClickedOk)
	ON_BN_CLICKED(IDC_USERMODIFY_CLEARPASSWD, &DLG_User_Modify::OnBnClickedUsermodifyClearpasswd)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DLG_User_Modify message handlers

BOOL DLG_User_Modify::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	m_strLoginName = m_Address.szLoginName;
	m_strNum       = m_Address.szSMSNum;
	if ( m_Address.lSMSUsed == -100 )  //������
	{
		m_strSMSUsed = _T("������");
	}
	else
	{
		m_strSMSUsed.Format( _T("%d") , m_Address.lSMSUsed );
	}
	if ( m_Address.lMmsUsed == -100 )  //������
	{
		m_strMmsUsed = _T("������");
	}
	else
	{
		m_strMmsUsed.Format( _T("%d") , m_Address.lMmsUsed );
	}
	m_strName      = m_Address.szName;
	m_strNickName  = m_Address.szNickName;
	long lSex = 0;
	if ( CString(m_Address.szSex)==_T("��") )
		lSex = 1;
	if ( CString(m_Address.szSex)==_T("Ů") )
		lSex = 2;
	m_lSex = lSex;
	COleDateTime tTemp(m_Address.tBirthday);
	if ( tTemp.GetStatus() != 0 )  //��Чʱ��
	{
		m_tBirthday.SetStatus( COleDateTime::null  );
	}
	else
	{
		m_tBirthday = tTemp;
	}
	m_strJob = m_Address.szJob;
	m_strTel = m_Address.szTel;
	m_strFax = m_Address.szFax;
	m_strMobile = m_Address.szMobile;
	m_strEmail = m_Address.szEmail;
	m_strQQ    = m_Address.szQQ;
	m_strCM2   = m_Address.szCM2;
	m_strBZ    = m_Address.szBZ;
	m_strLocal = m_szLocal;
	m_strSDKIP = m_Address.szSDKIP;

	m_strSMSSendedAll.Format( _T("%d") , m_Address.lSMSSendAll );
	m_strCreateUser = m_Address.szCreateUser;
	m_strCreateTime.Format( _T("%04d.%02d.%02d") , m_Address.tCreateTime.wYear,m_Address.tCreateTime.wMonth,m_Address.tCreateTime.wDay);
	m_strLoginCount.Format( _T("%d") , m_Address.lLoginCount );

	//Ȩ������
	m_lPurviewType = m_Address.ulPurviewType;

	m_bSDK         = m_Address.bSDK & SDK_SDK ? true:false;
	m_bProhibitNonTemplate = m_Address.bSDK & SDK_PROHIBITNONTEMPLATE ? true : false;
	m_bProhibitClient = m_Address.bSDK & SDK_PROHIBITCLIENT ? true : false;
	m_bAutoReg     = m_Address.bSDK & SDK_AUTOREG ? true:false;
	m_bAutoQuery   = m_Address.bSDK & SDK_AUTOQUERY ? true:false;
	m_bAword       = m_Address.bSDK & SDK_AWORD ? true:false; 
	m_bSWT         = m_Address.bSDK & SDK_SWT ? true:false; 
	m_bAllowSetMobile=m_Address.bSDK & SDK_ALLOWSETMOBILE ? true:false; 
	m_bAllowChangeTD =m_Address.bSDK & SDK_ALLOWCHANGETD ? true:false; 
	m_bAllowFindFail =m_Address.bSDK & SDK_ALLOWFINDFAIL ? true:false; 
	m_bRTX         = m_Address.bSDK & SDK_RTX ? true:false; 
	m_bSmsExpress  = m_Address.bSDK & SDK_SMSEXPRESS ? true:false; 
	m_bDXT         = m_Address.bSDK & SDK_DXT ? true:false; 
	m_bUBox        = m_Address.bSDK & SDK_UBOX ? true:false; 
	m_bAllowRandSmsnum= m_Address.bSDK & SDK_ALLOWRANDSMSNUM ? true : false;
	m_bAllowExtend = m_Address.bSDK & SDK_ALLOWEXTEND ? true : false;

	//�ͻ�������
	DWORD lClientSetup = (DWORD)m_Address.lClientSetup;
	m_lSendSpeed  =(WORD)(lClientSetup%0x10000);
	m_bAutoReSend =(WORD)(lClientSetup/0x10000);
	if ( m_lSendSpeed<=0 || m_lSendSpeed > 8 )
		m_lSendSpeed = 5;  //Ĭ�Ϸ����ٶ�Ϊ��
	m_lSendSpeed --;  

	//Ȩ��
	m_bLogin   = m_Address.ulPurview & PURVIEW_LOGIN ? true:false;
	m_bSendG   = m_Address.ulPurview & PURVIEW_SENDG? true:false;
	m_bSendP   = m_Address.ulPurview & PURVIEW_SENDP? true:false;
	m_bRecvG   = m_Address.ulPurview & PURVIEW_RECVG? true:false;
	m_bRecvP   = m_Address.ulPurview & PURVIEW_RECVP? true:false;
	m_bSeeBill = m_Address.ulPurview & PURVIEW_SEEBILL? true:false;
	m_bSeeList = m_Address.ulPurview & PURVIEW_SEELIST? true:false;

	m_bGAddress_See = m_Address.ulPurview & PURVIEW_GADDRESS_SEE? true:false;
	m_bGAddress_Modify = m_Address.ulPurview & PURVIEW_GADDRESS_MODIFY? true:false;
	m_bGAddress_UserManager = m_Address.ulPurview & PURVIEW_USER_MANAGER? true:false;
	m_bGAddress_UserModify  = m_Address.ulPurview & PURVIEW_USER_MODIFY ? true:false;
	m_bGAddress_Add = m_Address.ulPurview & PURVIEW_GADDRESS_ADD? true:false;
	m_bGAddress_Del = m_Address.ulPurview & PURVIEW_GADDRESS_DEL? true:false;

	m_bPAddress = m_Address.ulPurview & PURVIEW_PADDRESS? true:false;

	m_bSmsEmail = m_Address.ulPurview & PURVIEW_SMSEMAIL? true:false;
	m_bCalendar = m_Address.ulPurview & PURVIEW_CALENDAR? true:false;
	m_bSP       = m_Address.ulPurview & PURVIEW_SMSSP? true:false;
	m_bHideNum  = m_Address.ulPurview & PURVIEW_HIDENUM? true:false;
	m_bPL       = m_Address.ulPurview & PURVIEW_PL? true:false;
	m_bPL_Verify= m_Address.ulPurview & PURVIEW_PL_VERIFY? true:false;
	m_bPL_Audit = m_Address.ulPurview & PURVIEW_PL_AUDIT? true:false;

	//�����û���
	m_strGAddress_Group.Format( _T("%d") , m_Address.lAccessGroupID );

	UpdateData(false);

	if ( m_bAdd )
	{
		this->OnUsermodifyPasswd();  //��Ϊ�����ӹ���Ա��������Ҫ��������
		if (m_Address.ulPurview & PURVIEW_RECVP)
			OnUsermodifySmsnumAuto();    //ȡ��Ĭ���ط���
		GetDlgItem( IDOK )->SetWindowText( _T("�� ��") );
	}
	if ( !m_bResetPasswd )
	{
		m_B_Passwd.EnableWindow( false );
		m_B_ClearPasswd.EnableWindow(false);
	}
	if ( !m_bModify )  //û���޸�Ȩ��
	{
		GetDlgItem(IDOK)->EnableWindow(false);
	}

	if (!m_bModifyPurview)
	{
		DisableAllPurview();
	}
	else
	{
		//����Լ�û�е�Ȩ�ޣ�Ҳ���ܷ��������
		if ( !(m_ulMainPurview & PURVIEW_LOGIN) )
		{
			GetDlgItem(IDC_USERMODIFY_BLOGIN)->EnableWindow(false);
			m_bLogin = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_SENDG) )
		{
			GetDlgItem(IDC_USERMODIFY_BSENDGADDRESS)->EnableWindow(false);
			m_bSendG = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_SENDP) )
		{
			GetDlgItem(IDC_USERMODIFY_BSENDPADDRESS)->EnableWindow(false);
			m_bSendP = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_RECVG) )
		{
			GetDlgItem(IDC_USERMODIFY_BRECVG)->EnableWindow(false);
			m_bRecvG = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_RECVP) )
		{
			GetDlgItem(IDC_USERMODIFY_BRECVP)->EnableWindow(false);
			m_bRecvP = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_SEEBILL) )
		{
			GetDlgItem(IDC_USERMODIFY_BSEEBILL)->EnableWindow(false);
			m_bSeeBill = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_SEELIST) )
		{
			GetDlgItem(IDC_USERMODIFY_BSEELIST)->EnableWindow(false);
			m_bSeeList = false;
		}

		if ( !(m_ulMainPurview & PURVIEW_GADDRESS_SEE) )
		{
			GetDlgItem(IDC_USERMODIFY_BGADDRESS_SEE)->EnableWindow(false);
			m_bGAddress_See = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_GADDRESS_MODIFY) )
		{
			GetDlgItem(IDC_USERMODIFY_BGADDRESS_MODIFY)->EnableWindow(false);
			m_bGAddress_Modify = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_GADDRESS_ADD ) )
		{
			GetDlgItem(IDC_USERMODIFY_BGADDRESS_ADD)->EnableWindow(false);
			m_bGAddress_Add = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_GADDRESS_DEL) )
		{
			GetDlgItem(IDC_USERMODIFY_BGADDRESS_DEL)->EnableWindow(false);
			m_bGAddress_Del = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_USER_MANAGER  ) )
		{
			GetDlgItem(IDC_USERMODIFY_BGADDRESS_USER_MANAGER)->EnableWindow(false);
			m_bGAddress_UserManager = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_USER_MODIFY    ) )
		{
			GetDlgItem(IDC_USERMODIFY_BGADDRESS_USER_ADMINMODIFY)->EnableWindow(false);
			m_bGAddress_UserModify = false;
		}

		if ( !(m_ulMainPurview & PURVIEW_PADDRESS) )
		{
			GetDlgItem(IDC_USERMODIFY_BPADDRESS)->EnableWindow(false);
			m_bPAddress = false;
		}

		if ( !(m_ulMainPurview & PURVIEW_SMSEMAIL) )
		{
			GetDlgItem(IDC_USERMODIFY_SMSEMAIL)->EnableWindow(false);
			m_bSmsEmail = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_CALENDAR) )
		{
			GetDlgItem(IDC_USERMODIFY_CALENDAR)->EnableWindow(false);
			m_bCalendar = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_SMSSP) )
		{
			GetDlgItem(IDC_USERMODIFY_SMSSP)->EnableWindow(false);
			m_bSP = false;
		}
		if ( !(m_ulMainPurview & PURVIEW_HIDENUM) )
		{
			GetDlgItem(IDC_USERMODIFY_HIDENUM)->EnableWindow(false);
			m_bHideNum = false;
		}
	}



	UpdateData(false);

	ShowLoginMsg();          //��ʾ��¼��Ϣ
	OnUsermodifyBlogin();    //�Ƿ��Ƿ��е�¼Ȩ��
	OnUsermodifyPurviewgj(); //����ʾ�߼�ѡ��

	CEdit * pEdit = (CEdit *)GetDlgItem(IDC_USERMODIFY_SMSNUM);
	long lUserNumLen = m_pCUser->m_UserReq.lUserNumLen; //ȡ�û��ɷ�����볤��
#if defined(SMSCENTER_NX) && defined(SMSCENTER_DGSB)
	lUserNumLen = 3; //��ݸ�籣��ȫ����������չ3λ���˺�
#endif
	pEdit->LimitText(lUserNumLen);


	//if ( !(m_dwSDK & SDK_SDK) )
	//	GetDlgItem(IDC_USERMODIFY_SDK)->EnableWindow(false);

	if ( !(m_dwSDK & SDK_AUTOREG) )
		GetDlgItem(IDC_USERMODIFY_AUTOREG)->EnableWindow(false);
	if ( !(m_dwSDK & SDK_AUTOQUERY) )
		GetDlgItem(IDC_USERMODIFY_AUTOQUERY)->EnableWindow(false);
	if ( !(m_dwSDK & SDK_AWORD) )
		GetDlgItem(IDC_USERMODIFY_AWORD)->EnableWindow(false);
	if ( !(m_dwSDK & SDK_SWT) )
		GetDlgItem(IDC_USERMODIFY_SWT)->EnableWindow(false);
	if ( !(m_dwSDK & SDK_RTX) )
		GetDlgItem(IDC_USERMODIFY_RTX)->EnableWindow(false);
	if ( !(m_dwSDK & SDK_SMSEXPRESS) )
		GetDlgItem(IDC_USERMODIFY_SMSEXPRESS)->EnableWindow(false);
	if ( !(m_dwSDK & SDK_DXT) )
		GetDlgItem(IDC_USERMODIFY_DXT)->EnableWindow(false);
	if ( !(m_dwSDK & SDK_UBOX) )
		GetDlgItem(IDC_USERMODIFY_UBOX)->EnableWindow(false);


#ifdef SMSMANAGER_KF
	//GetDlgItem(IDOK)->EnableWindow(false);
	//GetDlgItem(IDOK)->ShowWindow(SW_HIDE);
	//GetDlgItem(IDCANCEL)->ShowWindow(SW_HIDE);

	GetDlgItem(IDC_USERMODIFY_SEX)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_SEX_S)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_BIRTHDAY)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_BIRTHDAY_S)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_JOB)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_JOB_S)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_MOBILE)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_MOBILE_S)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_TEL)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_TEL_S)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_FAX)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_FAX_S)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_EMAIL)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_EMAIL_S)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_QQ)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_QQ_S)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_BZ)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_BZ_S)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_SMSNUM_AUTO)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_USERMODIFY_PURVIEWTYPE)->EnableWindow(false);

	((CEdit *)GetDlgItem(IDC_USERMODIFY_NAME))->SetReadOnly(true);
	((CEdit *)GetDlgItem(IDC_USERMODIFY_NICKNAME))->SetReadOnly(true);
	((CEdit *)GetDlgItem(IDC_USERMODIFY_LOGINNAME))->SetReadOnly(true);
	((CEdit *)GetDlgItem(IDC_USERMODIFY_CM2))->SetReadOnly(true);
	((CEdit *)GetDlgItem(IDC_USERMODIFY_SMSNUM))->SetReadOnly(true);
	GetDlgItem(IDC_USERMODIFY_SMSUSED)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_MMSUSED)->EnableWindow(false);



	GetDlgItem(IDC_USERMODIFY_AUTOREG)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_AUTOQUERY)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_AWORD)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_SWT)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_RTX)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_SMSEXPRESS)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_DXT)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_UBOX)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_ALLOWSETMOBILE)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_SWT)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_SWT)->EnableWindow(false);
	//GetDlgItem(IDC_USERMODIFY_ALLOWCHANGETD)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_ALLOWFINDFAIL)->EnableWindow(false);
	//GetDlgItem(IDC_USERMODIFY_PL)->EnableWindow(false);
	//GetDlgItem(IDC_USERMODIFY_PL_AUDIT)->EnableWindow(false);
	//GetDlgItem(IDC_USERMODIFY_PL_VERIFY)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_ALLOWEXTEND)->EnableWindow(true);
	GetDlgItem(IDC_USERMODIFY_ALLOWRANDSMSNUM)->EnableWindow(true);
#endif

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

void DLG_User_Modify::OnUsermodifyPasswd() 
{
	m_bSetPasswd = true;
	m_bClearPasswd = false;
	CString strTemp;
	/*
	srand(::GetTickCount());
	strTemp.Format( _T("%03d%03d") , rand(),rand());
	strTemp.SetAt( 6 , 0 );
	*/

	//strTemp = ::LuGetRandPassword();
#ifdef SMSCENTER_DGSB  //��ݸ�籣�İ汾��������������Ҫ��
	strTemp = ::Passwd_Create(8, 1);
#else
	strTemp = ::Passwd_Create(8, 0);
#endif
	m_B_Passwd.SetWindowText(strTemp);	
	ShowLoginMsg();
}

ANS_Corp_UserData2 DLG_User_Modify::GetParam()
{
	return m_Address;
}

void DLG_User_Modify::SetParam(ANS_Corp_UserData2 data, ULONG ulPurviewType,ULONG ulPurview, long lCorpID,long lUserID,const TCHAR * pIP,POSITION pos,DWORD dwSDK,BOOL bAdd)
{
	m_Address = data;
	m_ulMainPurviewType = ulPurviewType;
	m_ulOldPurviewType  = ulPurviewType;
	m_ulMainPurview  = ulPurview;
	m_bModify        = ulPurview&PURVIEW_GADDRESS_MODIFY;
	m_bModifyPurview = ulPurview&PURVIEW_USER_MANAGER;
	m_bResetPasswd   = ulPurview&PURVIEW_USER_MODIFY;
	m_bAdd           = bAdd;
	m_lUserID        = lUserID;
	m_lCorpID        = lCorpID;
	_tcscpy( m_szIP , pIP );
	//_tcscpy( m_szLocal , pLocal );
	m_Pos = pos;
	m_dwSDK = dwSDK;
	if ( _tcslen(m_Address.szLoginName) > 0 )
	{
		CDes des;
		char szUser[32]={0};
		char szPasswd[64]={0};
		char szPasswd2[64]={0};
#ifdef _UNICODE 
		strcpy(szUser , CW2A(m_Address.szLoginName));
		strcpy(szPasswd , CW2A(m_Address.szPasswd));
#else
		strcpy(szUser , m_Address.szLoginName);
		strcpy(szPasswd , m_Address.szPasswd);
#endif

		long lOut = sizeof(szPasswd2);
		des.Decrypt( szPasswd,strlen(szPasswd) , szPasswd2 , lOut,szUser,8);
#ifdef _UNICODE 
		_tcscpy(m_szPasswd , CA2W(szPasswd2));
#else
		strcpy(m_szPasswd , szPasswd2);
#endif
	}
}

void DLG_User_Modify::ShowLoginMsg()
{
	UpdateData(true);
	m_strLoginMsg.Format(_T("��������ַ:%s\r\n��ҵID:%d\r\n�û���:%s\r\n����:******\r\n"), m_szIP, m_lCorpID, m_strLoginName);
	if (m_bSetPasswd)
	{
		CString strPasswd ;
		m_B_Passwd.GetWindowText(strPasswd);
		m_strLoginMsg.Format( _T("��������ַ:%s\r\n��ҵID:%d\r\n�û���:%s\r\n����:%s\r\n"),m_szIP,m_lCorpID,m_strLoginName,strPasswd );
	}
	if (m_bClearPasswd)
	{
		m_strLoginMsg.Format(_T("���������ַ:https://%s%s\r\n��ҵID:%d\r\n�û���:%s\r\n�ֻ�����:%s\r\n"),m_szIP, SETPASSWD_POST,m_lCorpID,m_strLoginName,m_strMobile);
	}
	UpdateData(false);
}

void DLG_User_Modify::OnChangeUsermodifyLoginname() 
{
	ShowLoginMsg();
}


void DLG_User_Modify::OnKillfocusUsermodifyName() 
{
	UpdateData(true);
	if ( m_strLoginName.GetLength() <= 0 &&
		 m_bLogin)
	{
		m_strLoginName = m_strName;
		UpdateData(false);
		ShowLoginMsg();
	}
	
}

void DLG_User_Modify::OnUsermodifyBlogin() 
{
	CButton * pButton = (CButton *)GetDlgItem(IDC_USERMODIFY_BLOGIN);
	if ( pButton->GetCheck() )
	{
		GetDlgItem(IDC_USERMODIFY_LOGINNAME)->EnableWindow(true);
		if ( m_bResetPasswd )
			GetDlgItem(IDC_USERMODIFY_PASSWD)->EnableWindow(true);
		GetDlgItem(IDC_USERMODIFY_SMSNUM)->EnableWindow(true);
		GetDlgItem(IDC_USERMODIFY_SMSUSED)->EnableWindow(true);
	}
	else
	{
		GetDlgItem(IDC_USERMODIFY_LOGINNAME)->EnableWindow(false);
		GetDlgItem(IDC_USERMODIFY_PASSWD)->EnableWindow(false);
		GetDlgItem(IDC_USERMODIFY_SMSNUM)->EnableWindow(false);
		GetDlgItem(IDC_USERMODIFY_SMSUSED)->EnableWindow(false);
	}
}

void DLG_User_Modify::OnUsermodifySmsnumAuto() 
{
	TCHAR szNum[16]={0};
	int i=m_pCUser->FindSMSNum();
	long lSmsNum = i;  //ȡ��New Num
	long lAllNum = 1;
	long lUserNumLen = m_pCUser->m_UserReq.lUserNumLen; //ȡ�û��ɷ�����볤��
#if defined(SMSCENTER_NX) && defined(SMSCENTER_DGSB)
	lUserNumLen = 3; //��ݸ�籣��ȫ����������չ3λ���˺�
#endif
	for ( i=0;i<lUserNumLen;i++)
	{
		lAllNum = lAllNum*10;
	}
	if ( lSmsNum > lAllNum-1 )
	{
		MessageBox( _T("�Բ����ط��ŷ��������������ٷ���!") , _T("����") , MB_ICONWARNING );
		return ;
	}
	TCHAR szBuf[32];
	_stprintf( szBuf , _T("%%0%dd") , lUserNumLen );
	_stprintf( szNum,szBuf , lSmsNum);
	GetDlgItem(IDC_USERMODIFY_SMSNUM)->SetWindowText(szNum);
}

void DLG_User_Modify::OnUsermodifyPurviewgj() 
{
	CRect rectwnd;
	this->GetWindowRect( &rectwnd );
	CRect rectS1;
	m_S_S1.GetWindowRect( &rectS1 );
//	CRect rectS2;
//	m_S_S2.GetWindowRect( &rectS2 );


	if ( m_bGJ )
	{
		rectwnd.right = rectS1.right+=10;
		this->MoveWindow( rectwnd );
		this->CenterWindow();
		GetDlgItem(IDC_USERMODIFY_PURVIEWGJ)->SetWindowText(_T("�߼� <<") );
//		m_wndSetup.SetWindowText( _T("���� <<") );
	}
	else
	{
		rectwnd.right = rectS1.left;
		this->MoveWindow( rectwnd );
		this->CenterWindow();
		GetDlgItem(IDC_USERMODIFY_PURVIEWGJ)->SetWindowText(_T("�߼� >>") );
//		m_wndSetup.SetWindowText( _T("���� >>") );
	}

	m_bGJ = !m_bGJ;
}

void DLG_User_Modify::OnSelchangeUsermodifyPurviewtype() 
{
	UpdateData( true );
	if ( m_lPurviewType < (long)m_ulMainPurviewType )
	{
		MessageBox( _T("�㲻�ܷ������Ȩ�޸�����û�!") , _T("����") , MB_ICONWARNING );
		m_lPurviewType = this->m_ulOldPurviewType;
		UpdateData(false);
		return ;
	}
	m_ulOldPurviewType = m_lPurviewType;

	//���������Ȩ��
	m_bGAddress_UserManager = false;
	m_bGAddress_UserModify = false;
	m_bGAddress_Add = false;
	m_bGAddress_Del = false;
	m_bGAddress_Modify = false;
	m_bGAddress_See = false;
	m_bLogin = false;
	m_bRecvG = false;
	m_bRecvP = false;
	m_bSeeBill = false;
	m_bSeeList = false;
	m_bSendG = false;
	m_bSendP = false;
	m_bPAddress = false;
	m_bSmsEmail = false;
	m_bCalendar = false;
	m_bSP       = false;
	m_bHideNum  = false;

	if ( m_lPurviewType == PURVIEWTYPE_ADDRESS )  //��ͨѶ¼
	{
		m_strNum = _T("") ;  //�����ط���
		m_strLoginName=_T(""); //�����¼��
	}

	if ( m_lPurviewType == PURVIEWTYPE_INPUT )  //����¼��Ա
	{
		//����Լ�û�е�Ȩ�ޣ�Ҳ���ܷ��������
		if ( m_ulMainPurview & PURVIEW_LOGIN )
			m_bLogin = true;
		if ( m_ulMainPurview & PURVIEW_GADDRESS_SEE )
			m_bGAddress_See = true;
		if ( m_ulMainPurview & PURVIEW_GADDRESS_MODIFY )
			m_bGAddress_Modify = true;
		if ( m_ulMainPurview & PURVIEW_GADDRESS_ADD )
			m_bGAddress_Add = true;
	}

	if ( m_lPurviewType == PURVIEWTYPE_USERS )  //һ��Ա��
	{
		//����Լ�û�е�Ȩ�ޣ�Ҳ���ܷ��������
		if ( m_ulMainPurview & PURVIEW_LOGIN )
			m_bLogin = true;
		if ( m_ulMainPurview & PURVIEW_SENDG )
			m_bSendG = true;
		if ( m_ulMainPurview & PURVIEW_RECVP )
			m_bRecvP = true;
		if ( m_ulMainPurview & PURVIEW_GADDRESS_SEE )
			m_bGAddress_See = true;

		if ( m_ulMainPurview & PURVIEW_SMSEMAIL )
			m_bSmsEmail = true;
		if ( m_ulMainPurview & PURVIEW_CALENDAR )
			m_bCalendar = true;
		if ( m_ulMainPurview & PURVIEW_SMSSP )
			m_bSP = true;

	}
	if ( m_lPurviewType == PURVIEWTYPE_KF )  //�ͻ�����Ա
	{
		//����Լ�û�е�Ȩ�ޣ�Ҳ���ܷ��������
		if ( m_ulMainPurview & PURVIEW_LOGIN )
			m_bLogin = true;
		if ( m_ulMainPurview & PURVIEW_SENDG )
			m_bSendG = true;
		if ( m_ulMainPurview & PURVIEW_SENDP )
			m_bSendP = true;
//		if ( m_ulMainPurview & PURVIEW_RECVG )    //�������չ�����Ϣ��Ȩ��
//			m_bRecvG = true;
		if ( m_ulMainPurview & PURVIEW_RECVP )
			m_bRecvP = true;

		if ( m_ulMainPurview & PURVIEW_GADDRESS_SEE )
			m_bGAddress_See = true;

		if ( m_ulMainPurview & PURVIEW_PADDRESS )
			m_bPAddress = true;

		if ( m_ulMainPurview & PURVIEW_SMSEMAIL )
			m_bSmsEmail = true;
		if ( m_ulMainPurview & PURVIEW_CALENDAR )
			m_bCalendar = true;
		if ( m_ulMainPurview & PURVIEW_SMSSP )
			m_bSP = true;
	}

	if ( m_lPurviewType == PURVIEWTYPE_ADMIN )  //����Ա
	{
		//����Լ�û�е�Ȩ�ޣ�Ҳ���ܷ��������
		if ( m_ulMainPurview & PURVIEW_LOGIN )
			m_bLogin = true;
		if ( m_ulMainPurview & PURVIEW_SENDG )
			m_bSendG = true;
		if ( m_ulMainPurview & PURVIEW_SENDP )
			m_bSendP = true;
		if ( m_ulMainPurview & PURVIEW_RECVG )
			m_bRecvG = true;
		if ( m_ulMainPurview & PURVIEW_RECVP )
			m_bRecvP = true;

		if ( m_ulMainPurview & PURVIEW_GADDRESS_SEE )
			m_bGAddress_See = true;

		if ( m_ulMainPurview & PURVIEW_GADDRESS_MODIFY )
			m_bGAddress_Modify = true;
		if ( m_ulMainPurview & PURVIEW_GADDRESS_ADD )
			m_bGAddress_Add = true;
		if ( m_ulMainPurview & PURVIEW_GADDRESS_DEL )
			m_bGAddress_Del = true;
		if ( m_ulMainPurview & PURVIEW_USER_MANAGER )
			m_bGAddress_UserManager = true;
		if ( m_ulMainPurview & PURVIEW_USER_MODIFY )
			m_bGAddress_UserModify = true;


		if ( m_ulMainPurview & PURVIEW_SEEBILL )
			m_bSeeBill = true;
		if ( m_ulMainPurview & PURVIEW_SEELIST )
			m_bSeeList = true;

		if ( m_ulMainPurview & PURVIEW_PADDRESS )
			m_bPAddress = true;

		if ( m_ulMainPurview & PURVIEW_SMSEMAIL )
			m_bSmsEmail = true;
		if ( m_ulMainPurview & PURVIEW_CALENDAR )
			m_bCalendar = true;
		if ( m_ulMainPurview & PURVIEW_SMSSP )
			m_bSP = true;
		if ( m_ulMainPurview & PURVIEW_HIDENUM )
			m_bHideNum = true;
	}

	UpdateData(false);
	OnUsermodifyBlogin();   //�Ƿ���ʾ��¼��Ϣ

	return;

}

void DLG_User_Modify::DisableAllPurview()
{
	GetDlgItem(IDC_USERMODIFY_BLOGIN)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BSENDGADDRESS)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BSENDPADDRESS)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BRECVG)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BRECVP)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BSEEBILL)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BSEELIST)->EnableWindow(false);
	
	GetDlgItem(IDC_USERMODIFY_BGADDRESS_SEE)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BGADDRESS_MODIFY)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BGADDRESS_USER_MANAGER)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BGADDRESS_USER_ADMINMODIFY)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BGADDRESS_ADD)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BGADDRESS_DEL)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_BPADDRESS)->EnableWindow(false);
	           
	GetDlgItem(IDC_USERMODIFY_SMSEMAIL)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_CALENDAR)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_SMSSP)->EnableWindow(false);
	GetDlgItem(IDC_USERMODIFY_HIDENUM)->EnableWindow(false);
}

void DLG_User_Modify::OnClismstd() 
{
	
}


void DLG_User_Modify::OnBnClickedOk()
{
	UpdateData(true);
	BOOL bReMakePasswd = false;
	BOOL bCheck=true;
#ifdef SMSMANAGER_KF
	bCheck=false;
#endif
	if (bCheck && m_strName.GetLength() <= 0 )
	{
		GetDlgItem(IDC_USERMODIFY_NAME)->SetFocus();
		MessageBox( _T("�û���������Ϊ�գ�����������!") , _T("����") , MB_ICONWARNING );
		return ;
	}

	//���أ����������ظ�
	if (bCheck &&  CString(m_Address.szName) != m_strName)
	{
		if ( m_pCUser->FindUserName( m_strName,m_Pos ) )
		{
			GetDlgItem(IDC_USERMODIFY_NAME)->SetFocus();
			MessageBox( _T("��������ʹ�ã�����������!") , _T("����") , MB_ICONWARNING );
			return ;
		}
	}


	if (bCheck &&  m_bLogin )  //����е�¼Ȩ�ޣ�����Ҫ����¼�������
	{
		if (m_strLoginName.GetLength() <= 0 )
		{
			GetDlgItem(IDC_USERMODIFY_LOGINNAME)->SetFocus();
			MessageBox( _T("��¼������Ϊ�գ�����������!") , _T("����") , MB_ICONWARNING );
			return ;
		}
	
		if ( CString(m_Address.szLoginName) != m_strLoginName)
		{
			if ( m_pCUser->FindLoginName( m_strLoginName,m_Pos ) )
			{
				GetDlgItem(IDC_USERMODIFY_LOGINNAME)->SetFocus();
				MessageBox( _T("�˵�¼����ʹ�ã�����������!") , _T("����") , MB_ICONWARNING );
				return ;
			}
			bReMakePasswd = true;  //��¼��ͬ����Ҫ�޸�����
		}

		//�ط��Ų���Ϊ��
		//if ( m_bRecvP || m_bSendG || m_bSendP )
		if ( m_bRecvP )
		{
			if ( m_strNum.GetLength()<=0 )
			{
				GetDlgItem(IDC_USERMODIFY_SMSNUM)->SetFocus();
				if ( MessageBox( _T("����㲻Ϊ���û������ط��ţ����޷�����˽�˶��ţ�\r\n�Ƿ������") , _T("����") , MB_ICONQUESTION|MB_YESNO ) != IDYES )
					return ;
			}
		}
	}

	long lUserNumLen = m_pCUser->m_UserReq.lUserNumLen; //ȡ�û��ɷ�����볤��
	if (bCheck &&  m_strNum.GetLength() > 0 && m_strNum.GetLength() != lUserNumLen ) //����,�����ط���
	{
		GetDlgItem(IDC_USERMODIFY_SMSNUM)->SetFocus();
		if ( MessageBox( _T("�ط���λ�����ԣ�\r\n�Ƿ������") , _T("����") , MB_ICONQUESTION|MB_YESNO ) != IDYES )
			return ;
	}

	if (bCheck &&  m_strNum.GetLength() > 0 && m_strNum!=CString(m_Address.szSMSNum)) //����,�����ط���
	{
		if ( m_pCUser->FindSMSNum( m_strNum,m_Pos ) )
		{
			GetDlgItem(IDC_USERMODIFY_SMSNUM)->SetFocus();
			MessageBox( _T("���ط�����ʹ�ã�����������!") , _T("����") , MB_ICONWARNING );
			return ;
		}
	}

	_tcscpy( m_Address.szLoginName , m_strLoginName );
	_tcscpy( m_Address.szSMSNum, m_strNum);
	if ( m_strSMSUsed == _T("������") || _ttol( m_strSMSUsed ) < 0)
	{
		m_Address.lSMSUsed = -100;
	}
	else
	{
		m_Address.lSMSUsed = _ttol(m_strSMSUsed);
	}
	if ( m_strMmsUsed == _T("������") || _ttol( m_strMmsUsed ) < 0)
	{
		m_Address.lMmsUsed = -100;
	}
	else
	{
		m_Address.lMmsUsed = _ttol(m_strMmsUsed);
	}
	_tcscpy( m_Address.szName , m_strName );
	_tcscpy( m_Address.szNickName , m_strNickName );

	if ( m_lSex == 0 )
		_tcscpy( m_Address.szSex , _T("") );
	else
		if ( m_lSex == 1 )
			_tcscpy( m_Address.szSex , _T("��") );
		else
			_tcscpy( m_Address.szSex , _T("Ů") );
	_tcscpy( m_Address.szJob    , m_strJob );
	_tcscpy( m_Address.szTel    , m_strTel );
	_tcscpy( m_Address.szFax    , m_strFax );
	_tcscpy( m_Address.szMobile , m_strMobile );
	_tcscpy( m_Address.szEmail  , m_strEmail );
	_tcscpy( m_Address.szQQ     , m_strQQ );
	_tcscpy( m_Address.szCM2    , m_strCM2 );
	_tcscpy( m_Address.szBZ     , m_strBZ );

	if ( m_tBirthday.GetStatus() == 0 )
		m_tBirthday.GetAsSystemTime( m_Address.tBirthday );
	else
		memset(&m_Address.tBirthday,0,sizeof(m_Address.tBirthday));

	//Ȩ������
	m_Address.ulPurviewType = m_lPurviewType;
	m_Address.bSDK = 0;
	if ( m_bSDK )
		m_Address.bSDK |= SDK_SDK;
	if (m_bProhibitNonTemplate)
		m_Address.bSDK |= SDK_PROHIBITNONTEMPLATE;
	if (m_bProhibitClient)
		m_Address.bSDK |= SDK_PROHIBITCLIENT;
	
	if ( m_bAutoReg )
		m_Address.bSDK |= SDK_AUTOREG;
	if ( m_bAutoQuery )
		m_Address.bSDK |= SDK_AUTOQUERY;
	if ( m_bAword )
		m_Address.bSDK |= SDK_AWORD;
	if ( m_bSWT )
		m_Address.bSDK |= SDK_SWT;
	if ( m_bAllowSetMobile )
		m_Address.bSDK |= SDK_ALLOWSETMOBILE;
	if ( m_bAllowChangeTD )
		m_Address.bSDK |= SDK_ALLOWCHANGETD;
	if ( m_bAllowFindFail )
		m_Address.bSDK |= SDK_ALLOWFINDFAIL;
	if (m_bAllowRandSmsnum)
		m_Address.bSDK |= SDK_ALLOWRANDSMSNUM;
	if (m_bAllowExtend)
		m_Address.bSDK |= SDK_ALLOWEXTEND;
	

	if ( m_bRTX )
		m_Address.bSDK |= SDK_RTX;
	if ( m_bSmsExpress )
		m_Address.bSDK |= SDK_SMSEXPRESS;
	if ( m_bDXT )
		m_Address.bSDK |= SDK_DXT;
	if ( m_bUBox )
		m_Address.bSDK |= SDK_UBOX;

	//�ͻ�������
	m_Address.lClientSetup = MAKELPARAM((WORD)(m_lSendSpeed+1),(WORD)m_bAutoReSend);


	_tcscpy(m_Address.szSDKIP , m_strSDKIP );

	if ( m_bModifyPurview )
	{
		m_Address.ulPurview = 0;
		if ( m_bLogin )
			m_Address.ulPurview |= PURVIEW_LOGIN ;
		
		if ( m_bSendG )
			m_Address.ulPurview |= PURVIEW_SENDG ;
		if ( m_bSendP )
			m_Address.ulPurview |= PURVIEW_SENDP ;
		if ( m_bRecvG )
			m_Address.ulPurview |= PURVIEW_RECVG ;
		if ( m_bRecvP )
			m_Address.ulPurview |= PURVIEW_RECVP ;
		if ( m_bSeeBill )
			m_Address.ulPurview |= PURVIEW_SEEBILL ;
		if ( m_bSeeList )
			m_Address.ulPurview |= PURVIEW_SEELIST ;
		
		if ( this->m_bGAddress_See )
			m_Address.ulPurview |= PURVIEW_GADDRESS_SEE;
		if ( this->m_bGAddress_Modify )
			m_Address.ulPurview |= PURVIEW_GADDRESS_MODIFY;
		if ( this->m_bGAddress_UserManager )
			m_Address.ulPurview |= PURVIEW_USER_MANAGER;
		if ( this->m_bGAddress_UserModify )
			m_Address.ulPurview |= PURVIEW_USER_MODIFY;
		if ( this->m_bGAddress_Add )
			m_Address.ulPurview |= PURVIEW_GADDRESS_ADD;
		if ( this->m_bGAddress_Del )
			m_Address.ulPurview |= PURVIEW_GADDRESS_DEL;

		if ( this->m_bPAddress )
			m_Address.ulPurview |= PURVIEW_PADDRESS;

		if ( this->m_bSmsEmail )
			m_Address.ulPurview |= PURVIEW_SMSEMAIL;
		if ( this->m_bCalendar )
			m_Address.ulPurview |= PURVIEW_CALENDAR;
		if ( this->m_bSP )
			m_Address.ulPurview |= PURVIEW_SMSSP;
		if ( this->m_bHideNum )
			m_Address.ulPurview |= PURVIEW_HIDENUM;
		if ( this->m_bPL )
			m_Address.ulPurview |= PURVIEW_PL;
		if ( this->m_bPL_Verify )
			m_Address.ulPurview |= PURVIEW_PL_VERIFY;
		if ( this->m_bPL_Audit )
			m_Address.ulPurview |= PURVIEW_PL_AUDIT;
	}

#ifdef SMSMANAGER_KF
		if ( this->m_bPL )
			m_Address.ulPurview |= PURVIEW_PL;
		else
			m_Address.ulPurview = m_Address.ulPurview&~PURVIEW_PL;

		if ( this->m_bPL_Verify )
			m_Address.ulPurview |= PURVIEW_PL_VERIFY;
		else
			m_Address.ulPurview = m_Address.ulPurview&~PURVIEW_PL_VERIFY;

		if ( this->m_bPL_Audit )
			m_Address.ulPurview |= PURVIEW_PL_AUDIT;
		else
			m_Address.ulPurview = m_Address.ulPurview&~PURVIEW_PL_AUDIT;
#endif

	//ȡ��������
	if (bCheck &&  m_bResetPasswd && m_bSetPasswd )  //�����������Ȩ�޲��������ù�����
	{
		bReMakePasswd = true;
		m_B_Passwd.GetWindowText(m_szPasswd , sizeof(m_szPasswd));
	}
	if (bCheck &&  bReMakePasswd )
	{
		CDes des;
		char szUser[32]={0};
		char szPasswd[64]={0};
		char szPasswd2[64]={0};
#ifdef _UNICODE 
		strcpy(szUser , CW2A(m_Address.szLoginName));
		strcpy(szPasswd , CW2A(m_szPasswd));
#else
		strcpy(szUser , m_Address.szLoginName);
		strcpy(szPasswd , m_szPasswd);
#endif
		long lOut = sizeof(szPasswd2);
		des.Encrypt( szPasswd,strlen(szPasswd) , szPasswd2 , lOut,szUser,8);
#ifdef _UNICODE 
		_tcscpy(m_Address.szPasswd , CA2W(szPasswd2));
#else
		strcpy(m_Address.szPasswd , szPasswd2);
#endif

	}
	//�������
	if (bCheck &&  m_bResetPasswd && m_bClearPasswd)  //�����������Ȩ�޲������������
	{
		memset(m_Address.szPasswd, 0, sizeof(m_Address.szPasswd));
		_tcscpy(m_Address.szPasswd, _T("ResetPasswd"));
	}

/*
	if ( m_bAdd )  //����
	{
		m_pFGAddress->AddUser( m_Address );
		m_strName = _T("");
		m_strNickName = _T("");
		m_strLoginName = _T("");
		m_tBirthday.SetStatus( COleDateTime::null );
		m_strMobile = _T("");
		m_strEmail  = _T("");
		m_strQQ     = _T("");
		UpdateData(false);
		OnUsermodifyPasswd();  //��Ϊ�����ӹ���Ա��������Ҫ��������
		if (m_Address.ulPurview & PURVIEW_RECVP)
		{
			_tcscpy( m_Address.szLoginName , _T("") );
			_tcscpy( m_Address.szSMSNum , _T("") );
			//�Զ���1��ȡ�ط���
			{
				long lSmsNum = atoi(m_strNum);  //ȡ��New Num
				long lAllNum = 1;
				lSmsNum ++;
				for ( int i=0;i<lUserNumLen;i++)
				{
					lAllNum = lAllNum*10;
				}
				if ( lSmsNum > lAllNum-1 )
				{
					MessageBox( _T("�Բ����ط��ŷ��������������ٷ���!") , _T("����") , MB_ICONWARNING );
					return ;
				}
				TCHAR szBuf[32];
				TCHAR szNum[32];
				_stprintf( szBuf , _T("%%0%dd") , lUserNumLen );
				_stprintf( szNum,szBuf , lSmsNum);
				GetDlgItem(IDC_USERMODIFY_SMSNUM)->SetWindowText(szNum);
			}
		}
		GetDlgItem(IDC_USERMODIFY_NAME)->SetFocus();
		return ;
	}
*/

	CDialog::OnOK();
}


void DLG_User_Modify::OnBnClickedUsermodifyClearpasswd()
{
	m_bSetPasswd = false;
	m_bClearPasswd = true;
	m_B_Passwd.SetWindowText(_T("��������"));
	ShowLoginMsg();

	UpdateData(true);
	if (m_strMobile.GetLength() != 11)
	{
		MessageBox(_T("����������Ҫʹ���ֻ�������֤����¼����ȷ���ֻ����룡"), _T("����"), MB_ICONWARNING);
		GetDlgItem(IDC_USERMODIFY_MOBILE)->SetFocus();
		return;
	}
}