/*

MAgen.dll: Miranda plugin for mail.ru message exchange.

Copyright 2005-2010 Lenik.
Project home at http://www.lenik.ru/win32/magent
Author contact: lenik@lenik.ru

This program is free software.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

*/

unsigned long MRIM_GetTimeout(void)
{
return(DBGetContactSettingDword(NULL,ProtoName,DB_SETTING_TIMEOUT,10));
}

static BOOL CALLBACK MRIM_OptsDlgProc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
{
DBVARIANT dbv;

switch(msg)
    {
    case WM_INITDIALOG:
        TranslateDialogDefault(hwndDlg);
        if(!DBGetContactSetting(NULL,ProtoName,DB_SETTING_EMAIL, &dbv))
            {
            SetDlgItemText(hwndDlg,IDC_MRIMLOGIN,dbv.pszVal);
            DBFreeVariant(&dbv);
            }
        if(!DBGetContactSetting(NULL,ProtoName,DB_SETTING_PASSWORD,&dbv))
            {
            CallService(MS_DB_CRYPT_DECODESTRING,strlen(dbv.pszVal)+1,(LPARAM)dbv.pszVal);
            SetDlgItemText(hwndDlg,IDC_PASSWORD,dbv.pszVal);
            DBFreeVariant(&dbv);
            }
        CODEBLOCK
            {
            unsigned char buff[20];

            ultoa(DBGetContactSettingDword(NULL,ProtoName,DB_SETTING_TIMEOUT,10),buff,10);
            SetDlgItemText(hwndDlg,IDC_PROTOCOLTIMEOUT,buff);
            }
        CheckDlgButton(hwndDlg,IDC_NEWMAILCHKFLAG,DBGetContactSettingByte(NULL,ProtoName,DB_SETTING_NEWMAILNOTIFY,0));
        CheckDlgButton(hwndDlg,IDC_NEWMAILFLAG,MRIM_NewMailGetNotifyByPopup());
        return(TRUE);
    case WM_COMMAND:
        SendMessage(GetParent(hwndDlg),PSM_CHANGED,0,0);
        break;
    case WM_NOTIFY:
        switch(((LPNMHDR)lParam)->code)
            {
            case PSN_APPLY:
                CODEBLOCK
                    {
                    char str[128];

                    GetDlgItemText(hwndDlg,IDC_MRIMLOGIN,str,sizeof(str));
                    DBWriteContactSettingString(NULL,ProtoName,DB_SETTING_EMAIL,str);
                    GetDlgItemText(hwndDlg,IDC_PASSWORD,str,sizeof(str));
                    CallService(MS_DB_CRYPT_ENCODESTRING,sizeof(str),(LPARAM)str);
                    DBWriteContactSettingString(NULL,ProtoName,DB_SETTING_PASSWORD,str);
                    DBWriteContactSettingByte(NULL,ProtoName,DB_SETTING_NEWMAILNOTIFY,(BYTE)IsDlgButtonChecked(hwndDlg,IDC_NEWMAILCHKFLAG));
                    MRIM_NewMailSetNotifyByPopup(IsDlgButtonChecked(hwndDlg,IDC_NEWMAILFLAG));

                    GetDlgItemText(hwndDlg,IDC_PROTOCOLTIMEOUT,str,sizeof(str));
                    CODEBLOCK
                        {
                        unsigned long v;
                        v = atol(str);
                        if((v == 0)||(v > 60))v = 10;
                        DBWriteContactSettingDword(NULL,ProtoName,DB_SETTING_TIMEOUT,v);
                        }
                    }
                return(TRUE);
            }
        break;
    }
return(FALSE);
}
