#pragma once

#include "TreeOptionsCtrlEx.h"
#include "Preferences.h"

// CPPgAckronic dialog

class CPPgAckronic : public CPropertyPage
{
	DECLARE_DYNAMIC(CPPgAckronic)

public:
	CPPgAckronic();
	virtual ~CPPgAckronic();
	

// Dialog Data
	enum { IDD = IDD_PPG_ACKRONIC };

protected:

	//Ackronic START - Aggiunto da Aenarion[ITA] - Emulate
	bool EmuMLDonkey;
	bool EmueDonkey;
	bool EmueDonkeyHybrid;
	bool EmuShareaza;
	bool m_bEmuLphant;
	bool m_bLogEmulator;
	//Ackronic END - Aggiunto da Aenarion[ITA] - Emulate

	//Ackronic START - Aggiunto da Aenarion[ITA] - download in rosso & grasetto & %client
	bool m_bEnableDownloadInBlue; 
	bool m_bEnableUploadInBlue; 
	bool m_bEnableDownloadInBold;
	bool m_bShowClientPercentage;
	//Ackronic END - Aggiunto da Aenarion[ITA] - download in rosso & grasetto & %client

	// NEO: QS - [QuickStart]
	bool	m_bQuickStart;
	int		m_iQuickStartTime;
	//int		m_iQuickStartTimePerFile;
	int		m_iQuickMaxConperFive;
	int		m_iQuickMaxHalfOpen;
	int		m_iQuickMaxConnections;
	// NEO: QS END

	// NEO: RIC - [ReaskOnIDChange]
	bool    m_bCheckIPChange;
	bool	m_bInformOnIPChange;
	bool	m_bReAskOnIPChange;
	bool	m_bQuickStartOnIPChange; // NEO: QS - [QuickStart]
	//bool	m_bCheckL2HIDChange;
	bool	m_bReconnectKadOnIPChange;
	bool	m_bRebindSocketsOnIPChange;
	// NEO: RIC END

	//Ackronic START - Aggiunto da Aenarion[ITA] - Drop
	int iMaxRemoveQRS;
	int m_iDropSources;
	bool m_iDropSourcesNNS;
	int m_iDropSourcesTimerNNS;
	bool m_iDropSourcesFQ;
	int m_iDropSourcesTimerFQ;
	bool m_iDropSourcesHQR;
	int m_iDropSourcesTimerHQR;
	//Ackronic END - Aggiunto da Aenarion[ITA] - Drop



	//MORPH START - Added by SiRoB, khaos::categorymod+
	bool m_bShowCatNames;
	bool m_bSelectCat;
	bool m_bUseActiveCat;
	bool m_bAutoSetResOrder;
	bool m_bShowA4AFDebugOutput;
	bool m_bSmartA4AFSwapping;
	int m_iAdvA4AFMode;
	bool m_bSmallFileDLPush;
	int m_iResumeFileInNewCat;
	bool m_bUseAutoCat;
	// khaos::accuratetimerem+

	// ==> Sivka-Ban - Stulle
	bool m_bEnableSivkaBan;
	int m_iSivkaAskTime;
	int m_iSivkaAskCounter;
	bool m_bSivkaAskLog;
	// <== Sivka-Ban - Stulle
	// ==> ban systems optional - Stulle
	bool m_bEnableAntiLeecher; //MORPH - Added by IceCream, enable Anti-leecher
	bool m_bBadModString;
	bool m_bBadNickBan;
	//bool m_bGhostMod;
	//bool m_bAntiModIdFaker;
	bool m_bAntiNickThief; // AntiNickThief - Stulle
	bool m_bEmptyNick;
	bool m_bFakeEmule;
	//bool m_bHiddenStr;
	bool m_bLeecherName;
	bool m_bCommunityCheck;
	// <== ban systems optional - Stulle
	bool m_bEnableAntiCreditHack; //MORPH - Added by IceCream, enable Anti-CreditHack
	bool m_bAntiXsExploiter; // Anti-XS-Exploit [Xman] - Stulle
	bool m_bSpamBan; // Spam Ban [Xman] - Stulle
	int m_iClientBanTime; // adjust ClientBanTime - Stulle


	///////////////////Inizio struttura albero//////////////
	CTreeOptionsCtrlEx m_ctrlTreeOptions;
	bool m_bInitializedTreeOpts;
	
	//Ackronic START - Aggiunto da Aenarion[ITA] - Emulate
	HTREEITEM m_htiEmulator;
	HTREEITEM m_htiEnableMLDonkey;
	HTREEITEM m_htiEnableeDonkey;
	HTREEITEM m_htiEnableeDonkeyHybrid;
	HTREEITEM m_htiEnableShareaza;
	HTREEITEM m_htiEmuLphant;
	HTREEITEM m_htiLogEmulator;
	//Ackronic END - Aggiunto da Aenarion[ITA] - Emulate

	//Ackronic START - Aggiunto da Aenarion[ITA] - download in rosso & grasetto & %client
	HTREEITEM m_htiDisp;
	HTREEITEM m_htiEnableDownloadInBlue; 
	HTREEITEM m_htiEnableUploadInBlue; 
	HTREEITEM m_htiEnableDownloadInBold;
	HTREEITEM m_htiShowClientPercentage;
	//Ackronic END - Aggiunto da Aenarion[ITA] - download in rosso & grasetto & %client

	// NEO: QS - [QuickStart]
		HTREEITEM m_htiQuickStart;
			HTREEITEM m_htiQuickStartEnable;
			HTREEITEM m_htiQuickStartTime;
			//HTREEITEM m_htiQuickStartTimePerFile;
			HTREEITEM m_htiQuickMaxConperFive;
			HTREEITEM m_htiQuickMaxHalfOpen;
			HTREEITEM m_htiQuickMaxConnections;
		// NEO: QS END

	// NEO: RIC - [ReaskOnIDChange]
	HTREEITEM m_htiOnIDChange;
		HTREEITEM m_htiCheckIPChange;
		HTREEITEM m_htiInformOnIPChange;
		HTREEITEM m_htiReAskOnIPChange;
		HTREEITEM m_htiQuickStartOnIPChange; // NEO: QS - [QuickStart]
		//HTREEITEM m_htiCheckL2HIDChange;
		HTREEITEM m_htiReconnectKadOnIPChange;
		HTREEITEM m_htiRebindSocketsOnIPChange;
		// NEO: RIC END

	//Ackronic START - Aggiunto da Aenarion[ITA] - Drop
	HTREEITEM m_htiDropSources;
	HTREEITEM m_htiDropSourcesNNS;
	HTREEITEM m_htiDropSourcesTimerNNS;
	HTREEITEM m_htiDropSourcesFQ;
	HTREEITEM m_htiDropSourcesTimerFQ;
	HTREEITEM m_htiDropSourcesHQR;
	HTREEITEM m_htiDropSourcesTimerHQR;
	HTREEITEM m_htiHqrBox;
	//Ackronic END - Aggiunto da Aenarion[ITA] - Drop



	//MORPH START - Added by SiRoB, khaos::categorymod+
	HTREEITEM m_htiDM;
	HTREEITEM m_htiSCC;
	HTREEITEM m_htiSAC;
	HTREEITEM m_htiShowCatNames;
	HTREEITEM m_htiSelectCat;
	HTREEITEM m_htiUseActiveCat;
	HTREEITEM m_htiAutoSetResOrder;
	HTREEITEM m_htiShowA4AFDebugOutput;
	HTREEITEM m_htiSmartA4AFSwapping;
	HTREEITEM m_htiAdvA4AFMode;
	HTREEITEM m_htiBalanceSources;
	HTREEITEM m_htiStackSources;
	HTREEITEM m_htiDisableAdvA4AF;
	HTREEITEM m_htiSmallFileDLPush;
	HTREEITEM m_htiResumeFileInNewCat;
	HTREEITEM m_htiUseAutoCat;
	// khaos::accuratetimerem+

	HTREEITEM m_htiSecu;
	// ==> Sivka-Ban - Stulle
	HTREEITEM m_htiSivkaBanGroup;
	HTREEITEM m_htiEnableSivkaBan;
	HTREEITEM m_htiSivkaAskTime;
	HTREEITEM m_htiSivkaAskCounter;
	HTREEITEM m_htiSivkaAskLog;
	// <== Sivka-Ban - Stulle
	// ==> ban systems optional - Stulle
	HTREEITEM m_htiAntiLeecherGroup;
	HTREEITEM m_htiEnableAntiLeecher; //MORPH - Added by IceCream, enable Anti-leecher
	HTREEITEM m_htiBadModString;
	HTREEITEM m_htiBadNickBan;
	//HTREEITEM m_htiGhostMod;
	//HTREEITEM m_htiAntiModIdFaker;
	HTREEITEM m_htiAntiNickThief; // AntiNickThief - Stulle
	HTREEITEM m_htiEmptyNick;
	HTREEITEM m_htiFakeEmule;
	//HTREEITEM m_htiHiddenStr;
	HTREEITEM m_htiLeecherName;
	HTREEITEM m_htiCommunityCheck;
	// <== ban systems optional - Stulle
	HTREEITEM m_htiEnableAntiCreditHack; //MORPH - Added by IceCream, enable Anti-CreditHack
	HTREEITEM m_htiAntiXsExploiter; // Anti-XS-Exploit [Xman] - Stulle
	HTREEITEM m_htiSpamBan; // Spam Ban [Xman] - Stulle
	HTREEITEM m_htiClientBanTime; // adjust ClientBanTime - Stulle

	afx_msg void OnDestroy();
	afx_msg LRESULT OnTreeOptsCtrlNotify(WPARAM wParam, LPARAM lParam);
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	
DECLARE_MESSAGE_MAP()
public:
	void Localize(void);	
	void LoadSettings(void);
	virtual BOOL OnApply();
	virtual BOOL OnInitDialog();
	virtual BOOL OnKillActive();
	
};
