//ライセンス情報はAgeOnフォルダのLISENCEフォルダを参照してください
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
//using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;

namespace nispi
{
    public class Be
    {
        public Be()
        {
        }

        public void LogOutBe()
        {
            Const.beState = false;
        }

        public void LogOutSCBe()
        {
            Const.beSCState = false;
        }

        public bool ErrorCheck(string idStr, string pwStr)
        {
            string error = "";

            if (idStr.Length == 0)
                error = "IDが設定されていません";
            else if (pwStr.Length == 0)
                error = "パスワードが設定されていません";

            if (error.Length > 0)
            {
                MessageBox.Show(error,
                    "Beログイン・エラー",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                Const.beSCState = false;
                return false;
            }
            else
                return true;
        }

        public bool GetSCBeCookie()
        {
            string idStr = "";
            string pwStr = "";
            string url = "";
            string error = "";

            idStr = Const.opt.logInOption.SCBeID;
            pwStr = Const.opt.logInOption.SCBePassWord;
            url = "http://be.2ch.sc/test/login.php";

            if (false == ErrorCheck(idStr, pwStr))
                return false;

            string postData = string.Format("m={0}&p={1}&submit={2}", idStr, pwStr, "%A5%ED%A5%B0%A5%A4%A5%F3");

            try
            {
                GetBeSessionID getSessionID = new GetBeSessionID();
                if (true == getSessionID.Send(url, postData))
                {
                    Const.beSCState = true;
                    return true;
                }
                else
                {
                    MessageBox.Show("ログイン出来ませんでした",
                        "Be(SC)ログイン・エラー",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                    Const.beSCState = false;
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }

        public bool GetBeCookie()
        {
            string idStr = "";
            string pwStr = "";
            string url = "";
            string error = "";

            idStr = Const.opt.logInOption.BeID;
            pwStr = Const.opt.logInOption.BePassWord;
            url = "https://be.2ch.net/test/login.php";

            if (false == ErrorCheck(idStr, pwStr))
                return false;

            string postData = string.Format("m={0}&p={1}&submit={2}", idStr, pwStr, "%A5%ED%A5%B0%A5%A4%A5%F3");

            try
            {
                GetBeSessionID getSessionID = new GetBeSessionID();
                if (true == getSessionID.Send(url, postData))
                {
                    Const.beState = true;
                    return true;
                }
                else
                {
                    MessageBox.Show("ログイン出来ませんでした",
                        "Beログイン・エラー",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                    Const.beState = false;
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
    }
}