package com.dbs.mplus.fatima.activity.activityEvent;

import android.content.Context;
import android.content.Intent;
import android.graphics.PorterDuff;
import android.view.View;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;

import com.dbs.mplus.fatima.R;
import com.dbs.mplus.fatima.activity.ConsentActivity;

public class TapMenu {
  private AppCompatActivity mActivity;
  private Context mContext;
  private ConsentActivity instance;
  public TapMenu(AppCompatActivity mActivity, Context mContext) {
    this.mActivity = mActivity;
    this.mContext = mContext;
    this.instance = (ConsentActivity) mContext;
  }

  /**
   * 각 탭을 클릭 했을때 배경색 및 아이콘 색상 변경
   * @author jksong
   * @since 2020-01-16 오전 9:22
   * 입원 : I, 외래 : O, 응급 : ER, 수술 : P, 검색 : S
   **/
  public void tapMenuColorChange(String indexPage) {
    if (indexPage.equals("I")) {
      instance.tabAdmission.setBackgroundColor(ContextCompat.getColor(mContext, R.color.leftBtnBgColor));
      instance.ivInPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.leftBtnIvTvColor), PorterDuff.Mode.SRC_ATOP);
      instance.tvInPatient.setTextColor(ContextCompat.getColor(mContext, R.color.leftBtnIvTvColor));

      instance.tabOutPatient.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivOutPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvOutPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabEmergency.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivErPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvErPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabSurgery.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivOpPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvOpPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabSearch.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivSearchPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvSearchPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabAdmission.setEnabled(false);
      instance.tabOutPatient.setEnabled(true);
      instance.tabEmergency.setEnabled(true);
      instance.tabSurgery.setEnabled(true);
      instance.tabSearch.setEnabled(true);
    } else if (indexPage.equals("O")) {
      instance.tabAdmission.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivInPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvInPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabOutPatient.setBackgroundColor(ContextCompat.getColor(mContext, R.color.leftBtnBgColor));
      instance.ivOutPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.leftBtnIvTvColor), PorterDuff.Mode.SRC_ATOP);
      instance.tvOutPatient.setTextColor(ContextCompat.getColor(mContext, R.color.leftBtnIvTvColor));

      instance.tabEmergency.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivErPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvErPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabSurgery.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivOpPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvOpPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabSearch.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivSearchPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvSearchPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabAdmission.setEnabled(true);
      instance.tabOutPatient.setEnabled(false);
      instance.tabEmergency.setEnabled(true);
      instance.tabSurgery.setEnabled(true);
      instance.tabSearch.setEnabled(true);
    } else if (indexPage.equals("E")) {
      instance.tabAdmission.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivInPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvInPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabOutPatient.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivOutPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvOutPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabEmergency.setBackgroundColor(ContextCompat.getColor(mContext, R.color.leftBtnBgColor));
      instance.ivErPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.leftBtnIvTvColor), PorterDuff.Mode.SRC_ATOP);
      instance.tvErPatient.setTextColor(ContextCompat.getColor(mContext, R.color.leftBtnIvTvColor));

      instance.tabSurgery.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivOpPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvOpPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabSearch.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivSearchPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvSearchPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabAdmission.setEnabled(true);
      instance.tabOutPatient.setEnabled(true);
      instance.tabEmergency.setEnabled(false);
      instance.tabSurgery.setEnabled(true);
      instance.tabSearch.setEnabled(true);
    } else if (indexPage.equals("P")) {
      instance.tabAdmission.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivInPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvInPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabOutPatient.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivOutPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvOutPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabEmergency.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivErPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvErPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabSurgery.setBackgroundColor(ContextCompat.getColor(mContext, R.color.leftBtnBgColor));
      instance.ivOpPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.leftBtnIvTvColor), PorterDuff.Mode.SRC_ATOP);
      instance.tvOpPatient.setTextColor(ContextCompat.getColor(mContext, R.color.leftBtnIvTvColor));

      instance.tabSearch.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivSearchPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvSearchPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabAdmission.setEnabled(true);
      instance.tabOutPatient.setEnabled(true);
      instance.tabEmergency.setEnabled(true);
      instance.tabSurgery.setEnabled(false);
      instance.tabSearch.setEnabled(true);
    } else {
      instance.tabAdmission.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivInPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvInPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabOutPatient.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivOutPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvOutPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabEmergency.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivErPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvErPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabSurgery.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
      instance.ivOpPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.darkGray), PorterDuff.Mode.SRC_ATOP);
      instance.tvOpPatient.setTextColor(ContextCompat.getColor(mContext, R.color.darkGray));

      instance.tabSearch.setBackgroundColor(ContextCompat.getColor(mContext, R.color.leftBtnBgColor));
      instance.ivSearchPatient.setColorFilter(ContextCompat.getColor(mContext, R.color.leftBtnIvTvColor), PorterDuff.Mode.SRC_ATOP);
      instance.tvSearchPatient.setTextColor(ContextCompat.getColor(mContext, R.color.leftBtnIvTvColor));

      instance.tabAdmission.setEnabled(true);
      instance.tabOutPatient.setEnabled(true);
      instance.tabEmergency.setEnabled(true);
      instance.tabSurgery.setEnabled(true);
      instance.tabSearch.setEnabled(false);
    }
  }

  public View.OnClickListener onClickListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
      Intent intent = new Intent(mContext, ConsentActivity.class);
      intent.putExtra("emplNo" , instance.emplNo);
      intent.putExtra("name" , instance.name);
      intent.putExtra("unitNm" , instance.unitNm);
      intent.putExtra("dutplcedeptCd", instance.dutplcedeptCd);
      intent.putExtra("dutplceDeptNm" , instance.dutplceDeptNm);
      intent.putExtra("jobKindCd" , instance.jobKindCd);
      intent.putExtra("jobKindNm" , instance.jobKindNm);

      if (instance.tabAdmission == v){
        intent.putExtra("mobile", "I");
      } else if (instance.tabOutPatient == v) {
        intent.putExtra("mobile", "O");
      } else if (instance.tabEmergency == v) {
        intent.putExtra("mobile", "E");
      } else if (instance.tabSurgery == v) {
        intent.putExtra("mobile", "P");
      } else {
        intent.putExtra("mobile", "SR");
      }

      mActivity.startActivity(intent);
      mActivity.finish();
      instance.tapClick = true;
    }
  };
}
