#pragma once
#include "TreeOptionsCtrlEx.h"

class CPPgSharkX : public CPropertyPage
{
	DECLARE_DYNAMIC(CPPgSharkX)

public:
	CPPgSharkX();
	virtual ~CPPgSharkX();

// Dialog Data
	void Localize(void);

	enum { IDD = IDD_PPG_SharkX};

protected:
	void	Nullify();

	CTreeOptionsCtrlEx m_ctrlTreeOptions;
	bool m_bInitializedTreeOpts;

	virtual void DoDataExchange(CDataExchange* pDX);
	virtual BOOL OnInitDialog();
	virtual BOOL OnApply();
	virtual BOOL OnKillActive();
	virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);

	DECLARE_MESSAGE_MAP()
	afx_msg void OnDestroy();
	afx_msg LRESULT OnTreeOptsCtrlNotify(WPARAM wParam, LPARAM lParam);
	afx_msg void OnHelp();
	afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);

//insert HTREEITEMS and variables here:

// By Taz - Mod Options arangement
	HTREEITEM m_htiDM;
	HTREEITEM m_htiUM;
// <------- Mod Options arangement

	HTREEITEM m_htiMultipleInstances;
	bool m_bMultipleInstances;

	HTREEITEM m_htiClientDataRate;
	int  m_uiClientDataRate;

	HTREEITEM m_htiFUChunks;
	int	 m_uiFUChunks;

// By Taz - EMF
	HTREEITEM	m_htiDisplayGroup;
// <------- EMF

//>>> Spike2::Emulate other
	HTREEITEM	m_htiEmulateGroup;

	HTREEITEM	m_htiEmulateEdonkey;
	bool		m_bEmulateEdonkey;
	HTREEITEM	m_htiEmulateEdonkeyHybrid;
	bool		m_bEmulateEdonkeyHybrid;
	HTREEITEM	m_htiEmulateMLdonkey;
	bool		m_bEmulateMLdonkey;
	HTREEITEM	m_htiEmulateShareaza;
	bool		m_bEmulateShareaza;
	HTREEITEM	m_htiEmulateLphant;
	bool		m_bEmulateLphant;
//<<< Spike2::Emulate other
//>>> WiZaRd::IntelliFlush
	HTREEITEM	m_htiSystemGroup;
	HTREEITEM	m_htiFileBufferGroup;
	HTREEITEM	m_htiFileBufferSize;
	HTREEITEM	m_htiFileBufferTime;
	HTREEITEM	m_htiIntelliFlushCheck;
	int			m_iFileBufferSize;
	int			m_iFileBufferTime;
	bool		m_bIntelliFlush;
//<<< WiZaRd::IntelliFlush
//>>> shadow2004::IP2Country [EastShare]
	HTREEITEM	m_htiI2CGroup;
	HTREEITEM	m_htiI2C2Letter;
	HTREEITEM	m_htiI2C3Letter;
	HTREEITEM	m_htiI2CFullCaption;
	HTREEITEM	m_htiI2CShowFlag;
	int			m_iI2CCaption;
	bool		m_bI2CShowFlag;
//<<< shadow2004::IP2Country [EastShare]
//>>> JvA::SLS [enkeyDEV]
	HTREEITEM	m_htiSLSGroup;
	HTREEITEM	m_htiSLSCheck;
	HTREEITEM	m_htiSLSActivationLimit;
	HTREEITEM	m_htiSLSSaveValue;
	bool		m_bSLSCheck;
	int			m_iSLSActivationLimit;
	int			m_iSLSSaveValue;
//<<< JvA::SLS [enkeyDEV]
//>>> WiZaRd::minRQR [WiZaRd]
	HTREEITEM	m_htiMinRQR;
	bool		m_bUseMinRQR;
//<<< WiZaRd::minRQR [WiZaRd]

// By Taz - Multi CS
	// EastShare START - Added by linekin, new creditsystem by [lovelace]
	int m_iCreditSystem;
	HTREEITEM m_htiCreditSystem;
	HTREEITEM m_htiOfficialCredit;
	HTREEITEM m_htiESCredit;
/*	HTREEITEM m_htiRatioCredit;
	// ==> new credit system - Stulle
	HTREEITEM m_htiSivkaCredit;
	HTREEITEM m_htiSwatCredit;
	HTREEITEM m_htiTk4Credit;
	HTREEITEM m_htiZzulCredit;
*/	HTREEITEM m_htiXtremeCredit;
	// <== new credit system - Stulle
	// EastShare START - Added by linekin, new creditsystem by [lovelace]

// By Taz - MagicAngel CS
	HTREEITEM m_htiMagicAngelCredit;
//	HTREEITEM m_htiMagicAngelPlusCredit;
// <------- MagicAngel CS

	HTREEITEM m_htiLovelaceCredit;
	HTREEITEM m_htiPawcioCredit;

// By Taz - Fine CS
	bool m_bFineCS;
	HTREEITEM m_htiFineCredit;
// <------- Fine CS

// By Taz - ClientAnalyzer
#ifdef CLIENTANALYZER
	HTREEITEM m_htiCACredit;
#endif
// <------- ClientAnalyzer
// <------- Multi CS

// By Taz - reward rare chunk uploaders
	bool m_bRarePartCredits;
	HTREEITEM m_htiRareChunks;
// <------- reward rare chunk uploaders

// By Taz - Don't allow file hot swapping
	bool m_bCloseMaellaBackdoor;
	HTREEITEM m_htiCloseMaellaBackdoor;
// <------- Don't allow file hot swapping

// By Taz - emule Priority
	bool m_bHighProcess; //MORPH - Added by IceCream, high process priority
	HTREEITEM m_htiHighProcess; //MORPH - Added by IceCream, high process priority
// <------- emule Priority

// By Taz - version check
	bool		m_bModVersionCheck, m_bModBetaCheck;
	HTREEITEM	m_htiModVersionCheck, m_htiModBetaCheck;
// <------- version check

// By Taz - AutoHL
//>>> WiZaRd::AutoHL
	HTREEITEM m_htiAutoHL;

	HTREEITEM m_htiUseAutoHLRadio;
	HTREEITEM m_htiUseAutoHLPerFile;
	HTREEITEM m_htiUseAutoHLOn;
	HTREEITEM m_htiUseAutoHLOff;
	int m_iUseAutoHL;

	HTREEITEM m_htiMaxSources;
	int	 m_iMaxSources;

	HTREEITEM m_htiMaxPerFileSources;
	int	 m_iMaxPerFileSources;

	HTREEITEM m_htiMinPerFileSources;
	int	 m_iMinPerFileSources;

	HTREEITEM m_htiAHLUpdate;
	int	 m_iAHLUpdate;
//<<< WiZaRd::AutoHL
// <------- AutoHL

// By Taz - drop sources
	// ==> drop sources - Stulle
	bool m_bEnableAutoDropNNSDefault;
	int m_iAutoNNS_TimerDefault;
	int m_iMaxRemoveNNSLimitDefault;
	bool m_bEnableAutoDropFQSDefault;
	int m_iAutoFQS_TimerDefault;
	int m_iMaxRemoveFQSLimitDefault;
	bool m_bEnableAutoDropQRSDefault;
	int m_iAutoHQRS_TimerDefault;
	int m_iMaxRemoveQRSDefault;
	int m_iMaxRemoveQRSLimitDefault;
	// <== drop sources - Stulle
	// ==> drop sources - Stulle
	HTREEITEM m_htiDropDefaults;
	HTREEITEM m_htiAutoNNS;
	HTREEITEM m_htiAutoNNSTimer;
	HTREEITEM m_htiAutoNNSLimit;
	HTREEITEM m_htiAutoFQS;
	HTREEITEM m_htiAutoFQSTimer;
	HTREEITEM m_htiAutoFQSLimit;
	HTREEITEM m_htiAutoQRS;
	HTREEITEM m_htiAutoQRSTimer;
	HTREEITEM m_htiAutoQRSMax;
	HTREEITEM m_htiAutoQRSLimit;
	// <== drop sources - Stulle
// <------- drop sources

// By Taz - SCC
	// ==> Smart Category Control (SCC) [khaos/SiRoB/Stulle] - Stulle
	int m_iDlMode;
	bool m_bShowCatNames;
	bool m_bSelectCat;
	bool m_bUseActiveCat;
	bool m_bAutoSetResOrder;
	bool m_bSmallFileDLPush;
	int m_iResumeFileInNewCat;
	bool m_bUseAutoCat;
	// <== Smart Category Control (SCC) [khaos/SiRoB/Stulle] - Stulle
	// ==> Smart Category Control (SCC) [khaos/SiRoB/Stulle] - Stulle
	HTREEITEM m_htiSCC;
	HTREEITEM m_htiDlMode;
	HTREEITEM m_htiDlNone;
	HTREEITEM m_htiDlAlph;
	HTREEITEM m_htiDlLP;
	HTREEITEM m_htiShowCatNames;
	HTREEITEM m_htiSelectCat;
	HTREEITEM m_htiUseActiveCat;
	HTREEITEM m_htiAutoSetResOrder;
	HTREEITEM m_htiSmallFileDLPush;
	HTREEITEM m_htiResumeFileInNewCat;
	HTREEITEM m_htiUseAutoCat;
	// <== Smart Category Control (SCC) [khaos/SiRoB/Stulle] - Stulle
// <------- SCC

// By Taz - FunnyNick
	bool m_bFunnyNick; //MORPH - Added by SiRoB, Optionnal funnynick display
	HTREEITEM m_htiDisplayFunnyNick;//MORPH - Added by SiRoB, Optionnal funnynick display
// <------- FunnyNick

// By Taz - retry connection attempts
	HTREEITEM	m_htiRetryConnectionAttempts;
	bool		m_bRetryConnectionAttempts;
// <------- retry connection attempts

// By Taz - Extended control download priority
	int m_iAutoDown_start_Prio;
	int m_iAutoDown_start_PrioPerc;
	int m_iAutoDown_start_PrioSize;
	int m_iAutoDown_start_PrioVal;
	HTREEITEM m_htiAutoDownPrioGroup;
	HTREEITEM m_htiAutoDown_start_PrioGroup;
	HTREEITEM m_htiAutoDown_start_PrioOff;
	HTREEITEM m_htiAutoDown_start_PrioPerc;
	HTREEITEM m_htiAutoDown_start_PrioPercVal;
	HTREEITEM m_htiAutoDown_start_PrioSize;
	HTREEITEM m_htiAutoDown_start_PrioSizeVal;
	HTREEITEM m_htiAutoDown_start_PrioValGroup;
	HTREEITEM m_htiAutoDown_start_PrioLow;
	HTREEITEM m_htiAutoDown_start_PrioNormal;
	HTREEITEM m_htiAutoDown_start_PrioHigh;
	// ==> Control download priority [tommy_gun/iONiX] - Stulle
	int m_iAutoDownPrio;
	int m_iAutoDownPrioPerc;
	int m_iAutoDownPrioSize;
	int m_iAutoDownPrioVal;
	// <== Control download priority [tommy_gun/iONiX] - Stulle
	// ==> Control download priority [tommy_gun/iONiX] - Stulle
	HTREEITEM m_htiAutoDown_end_PrioGroup;
	HTREEITEM m_htiAutoDownPrioOff;
	HTREEITEM m_htiAutoDownPrioPerc;
	HTREEITEM m_htiAutoDownPrioPercVal;
	HTREEITEM m_htiAutoDownPrioSize;
	HTREEITEM m_htiAutoDownPrioSizeVal;
	HTREEITEM m_htiAutoDownPrioValGroup;
	HTREEITEM m_htiAutoDownPrioLow;
	HTREEITEM m_htiAutoDownPrioNormal;
	HTREEITEM m_htiAutoDownPrioHigh;
	// <== Control download priority [tommy_gun/iONiX] - Stulle
// <------- Extended control download priority

// By Taz - taz dynamic ratio
	HTREEITEM	m_htiDynamicRatio;
	HTREEITEM	m_htiMaxDLULRatio;
	HTREEITEM	m_htiMaxDLSpeed;
	int			m_iMaxDLULRatio;
	int			m_iMaxDLSpeed;
// <------- taz dynamic ratio

// By Taz - Anti Upload Protection
	// ==> Anti Upload Protection - sFrQlXeRt
	bool	m_bAntiUploadProtection;
	HTREEITEM	m_htiAntiUploadProtection;
	// <== Anti Upload Protection - sFrQlXeRt
// <------- Anti Upload Protection

	HTREEITEM	m_htiMoreTweaksGroup;

// By Taz - startup sound
	HTREEITEM	m_htiStartupSound;
	bool		m_bStartupSound;
// <------- startup sound

// By Taz - show SRC totals
	HTREEITEM	m_htiShowSrcTotals;
	bool		m_bShowSrcTotals;
// <------- show SRC totals

// By Taz - download color
	HTREEITEM	m_htiDownloadColor;
	HTREEITEM	m_htiRedDownload;
	HTREEITEM	m_htiGreenDownload;
	HTREEITEM	m_htiBlueDownload;
	int			m_iDownloadRed;
	int			m_iDownloadGreen;
	int			m_iDownloadBlue;
// <------- download color

// By Taz - Advanced official preferences
	HTREEITEM	m_hti_m_bRTLWindowsLayout;
	bool		m_bRTLWindowsLayout;
// <------- Advanced official preferences

// By Taz - folder ICONS
	HTREEITEM m_htiFolderIcons;
	bool m_bFolderIcons;
// <------- folder ICONS

// By Taz - corrupted block ban threshold
	HTREEITEM	m_htiBanThreshold;
	int			m_iBanThreshold;
// <------- corrupted block ban threshold

};
