//---------------------------------------------------------------------------

#ifndef StyleUploadFormUnitH
#define StyleUploadFormUnitH
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ExtCtrls.hpp>
#include "CKBox.h"
#include "GeneralDialogPanel.h"
#include "LineEdit.h"
#include "TextButton.h"
#include "ProCommon.h"

#define TYPE_NUM     12
#define MAX_TYPE	2
#define MAX_STYLE	16

//---------------------------------------------------------------------------
class TStyleUploadForm : public TForm
{
__published:	// IDE-managed Components
	TGeneralDialogPanel *m_GPanelBKG;
	TLabel *m_lblCost;
	TLabel *m_lblDescription;
	TLabel *m_lblNote;
	TLabel *m_lblType;
	TLabel *m_lblAuthor;
	TLabel *m_lblStyleName;
	TTextButton *m_btnOk;
	TTextButton *m_btnCancel;
	//BKGMemoUnit::TMemo *m_memoDescription;
	TMemo *m_memoDescription;
	TLineEdit *m_editStyleName;
	TLineEdit *m_editAuthor;
	TLineEdit *m_editCost;
	TCKBox *m_checkBlues;
	TCKBox *m_checkPop;
	TCKBox *m_checkClassic;
	TCKBox *m_checkCountry;
	TCKBox *m_checkDance;
	TCKBox *m_checkFolk;
	TCKBox *m_checkIndpent;
	TCKBox *m_checkJazz;
	TCKBox *m_checkOthers;
	TCKBox *m_checkRock;
	TCKBox *m_checkSamba;
	TCKBox *m_checkWaltz;
	TLabel *m_lblTips;
	TLabel *m_lblProtocol;

	void __fastcall FormCreate(TObject *Sender);
	void __fastcall CheckBoxClick(TObject *Sender);
	void __fastcall EditNameChange(TObject *Sender);
	void __fastcall MemoChange(TObject *Sender);
	void __fastcall AuthorChange(TObject *Sender);
	void __fastcall CostChange(TObject *Sender);
	void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
	void __fastcall ProtocolMouseEnter(TObject *Sender);
	void __fastcall ProtocolMouseLeave(TObject *Sender);
	void __fastcall ProtocolClick(TObject *Sender);

private:	// User declarations
	bool m_bShare;
	TPROSTYLE* m_pStyle;
	int m_iCheckCount;
	int m_nScore;
	TCKBox* m_cbTypes[TYPE_NUM];
	char m_iStyleType[MAX_TYPE];

	void PresetType();
	int SystemScore();
	bool UploadEnabled();

public:		// User declarations
	__fastcall TStyleUploadForm(TComponent* Owner, TPROSTYLE* pStyle, bool bShare);

	void __fastcall GetShareInfo( TSTYLESHARE* pInfo );
	void __fastcall GetMakeInfo( TMAKESTYLEINFO* pInfo );
};
//---------------------------------------------------------------------------
extern PACKAGE TStyleUploadForm *StyleUploadForm;
//---------------------------------------------------------------------------
#endif
