#if !defined(AFX_ChoosePhotoSkin2_H__10660444_160F_41F4_9A1D_50A4F7C66150__INCLUDED_)
#define AFX_ChoosePhotoSkin2_H__10660444_160F_41F4_9A1D_50A4F7C66150__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif 

#include "MyBmpButton2.h"
#include "resource.h"
#include <afxtempl.h>
#include "shockwaveflash.h"
#include "EditListCtrl.h"
#include "ShowSelPhoto.h"
#include "ShowSelPhoto2.h"
#include "DragListCtrl.h"	// add by Jeff 2015.04.06
#include "DragDropListCtrl.h"	// add by Jeff 2015.04.06
#include <vector>
using namespace std;

// ��ʼѡƬ��ѡ���
class ChoosePhotoSkin2 : public CDialog
{
	BOOL				m_bChooseBig;
	BOOL				m_bSaveFail;
	BOOL				m_bSort;
	BOOL				m_bCanSave;
	int					m_ticks;
	int					m_timer;
	int					m_nChoosePhotoType;		// =0:ԭƬ+��Ƭ; =1����Ƭ; =2��ԭƬ
	
	CString				m_liapath;
	CString				m_sChooseFilter;
	CStringArray		m_DirArrayBuf;
	ShowSelPhoto		m_selphotownd;
	ShowSelPhoto2		m_selphotownd2;
	// Construction
public:

	BOOL m_bHide;
	BOOL m_bFromLocal;
	BOOL m_bShowTimeOut;
	BOOL	m_bGrowthTX;
	BOOL m_bSave;
	BOOL m_bModify;

	int m_Runingmode;					// ����:ѡƬģʽ==0�������ģʽ==1, Ĭ��Ϊ0;
	int m_SelectCategory;				// ����:��ǰ���鿴����Ƭ(ȫ����ѡ�С�δѡ��ɾ������ᡢ���);

	CString				m_delphotos; // dindan.delphotos�ֶ��ﱣ����ɾ������Ƭ,��ʽ��001;002;003;004;
	CString m_path;		// ѡƬ����Ƶ�Ƭ��Ŀ¼;
	CString m_strOrderNumber;
	CString m_status8;
	CString m_name;
	CString m_seltxname;
	CString taoxiname;
	CString m_taoxijiage;
	CString m_waiter1;
	CString m_waiter2;
	CString m_clothescount;
	CString ren;
	CString	m_time5old;
	CString	m_time6old;
	CString m_checkstatus;	// � ���� OK;
	CString m_size;
	CString m_oldmoney3;
	CString	m_name1;
	CString	m_name2;
	CString	m_phone1;
	CString	m_phone2;
	CString	m_time4;
	CString	m_waiter3;
	CString	m_takezs;
	CString	m_taoxizs;
	CString	m_choosezs;
	CString	m_money3;
	CString	m_bz3;
	CString	m_bz4;
	CString	m_bz2;
	CString	m_time5;
	CString	m_time6;
	CString	m_urgent;
	CString m_strStatusOfChoosePhoto;		// Jeff.add 2014.08.30��

	CArray<DWORD, DWORD>m_picarray;
	CArray<CRect, CRect>m_rcarray;


	CStringArray m_patharray1;		// �鿴ȫ����Ƭ;��Ƭ����ȫ·����;
	CStringArray m_patharray2;		// �鿴ѡ����Ƭ;
	CStringArray m_patharray3;		// �鿴δѡ��Ƭ;
	CStringArray m_patharray4;		// �鿴ɾ����Ƭ;��Ƭ����ȫ·����;
	CStringArray m_patharray5;		// �鿴�����Ƭ;
	CStringArray m_patharray6;		// �鿴�����Ƭ;

	CArray<CStringArray, CStringArray>oldsparray;
	CArray<CStringArray, CStringArray>m_sparray;
	CArray<CStringArray, CStringArray>m_List2array;

	// Jeff:����ʲô? ����"�鿴ȫ��"����Ƭ?
	CStringArray m_noarray;//no���� ,11,12,13, ��ʽ
	// Jeff:����ʲô? ����"�鿴ѡ��"����Ƭ?
	CStringArray m_no2array;//no���� ,11,12,13, ��ʽ

	// Jeff:m_pArrayû���ҵ���ֵ�ĵط�,δ֪��Ӧ�ã�
	// ֻ����ѡƬģʽ,ѡ���δ�õ��ñ�����
	CStringArray *m_pInputArray;// Jeff.������û�õ�,Ψһ��ֵ�ĵط��ѱ�������,������������Ƿ�����!!!

	BOOL ReLoad();
	BOOL CheckHC();
	void ReLoadPhoto();
	BOOL IsPhoto2Exist();
	void GetDiskPhoto();
	void GetAlbumPhoto();
	int GetNoSelPhotoCount();
	void CalChooseZS();
	void OnRclickList2();
	void GetSelCountFromName(CString name, CString &scount);
	CString GetZSInfo(int iItem);

	// remark by Jeff
	void DelNo(CString no);			// ������Ƭ�ļ���ɾ����Ƭ�ļ����;
	BOOL InitializeUI();			// add by Jeff:��ʼ���û�����,����ϸ��OnInitDialog
	BOOL CheckOK(CString name);
	BOOL CheckName(CString name);
	void CheckForDisk();

	void DrawLogin();
	void Save();
	void GetPhotos();
	void CheckForAlbum();
	void SortArray();
	
	BOOL GetData2();
	
	void OnDblclkList1();
	CString GetSelName(CString name);

	BOOL IsSelPhoto(CString path);
	BOOL IsSelAlbumPhoto(CString path);
	BOOL IsSelDiskPhoto(CString path);
	CStringArray* GetCurArray();
	void GetNoSelPhoto();
	void LoadPhotos();
	void GetPath(CString str);
	CString GetSPNameFromId(CString id);
	float GetSPPriceFromId(CString id);

	BOOL OnDel();
	void OnRclickList1();
	void UpdateChooseZS();

	void UpdateTakeZS();
	int GetZS(CString str);
	BOOL GetData();
	BOOL TerminateThread();
	void LoadThumbImages();
	
	HWND m_showpichwd;
	vector<CString> m_vFileName;
	//	CListCtrl   m_ListCtrl;
	CImageList	m_ImageListThumb;		// image list holding the thumbnails
	bool m_bRunning;			// Flag to whether thread is on running or not
	bool m_bTerminate;			// Flag to Thread to be terminated
	unsigned int m_dwThreadID;	// Thread ID
	HANDLE m_hThread, m_hEvent; // Thread and Event handle

	CShockwaveFlash	m_flashctrl;
	Image *m_pBk;
	void SetLiaPath(CString path);
	void OnPaint2(CWnd *pWnd);
	ChoosePhotoSkin2(DWORD id, CWnd *pParent);
	CWnd *m_pParent;

	ChoosePhotoSkin2(CWnd* pParent = NULL);   // standard constructor
	enum { IDD = IDD_DLGChoosePhotoSkin2 };
	CNumEdit	m_editnum4;
	CNumEdit	m_editnum3;
	CNumEdit	m_editnum2;
	CNumEdit	m_editnum1;

	// Jeff: �Զ�id����š���Ʒ���ơ��۸�������(p����������)��Ƭ���;
	CEditListCtrl	m_List3;
	// Jeff: what effect that is!?//��Ʒ���,��Ʒ��,����;
	CEditListCtrl	m_List2;
#if JEFF_TEST_ON
	//CDragListCtrl m_List1;
	CDragDropListCtrl m_List1;
#else
	CListCtrl	m_List1;
#endif
	CComboBox	m_combo1;

public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg void OnDestroy();
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	virtual void OnOK();
	virtual void OnCancel();
	afx_msg void OnFSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args);
	afx_msg void OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnClose();
	afx_msg void OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult);

	afx_msg void OnButton4();	// ���水ť
	afx_msg void OnClickList1(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnTimer(UINT nIDEvent);

	DECLARE_EVENTSINK_MAP()
	//}}AFX_MSG
	afx_msg void OnBtnClick(WPARAM wParam, LPARAM lParam);
	afx_msg void OnComMsg(WPARAM wParam, LPARAM lParam);
	void OnCommandMenu(UINT nID);        //��Ӧ�˵�����
	void OnCommandMenu2(UINT nID);        //��Ӧ�˵�����
	afx_msg long UpdateTakeZS(WPARAM inWParam, LPARAM inLParam);
	DECLARE_MESSAGE_MAP()
};

#endif