/**
 *******************************************************************************
 * @source  : customer.js
 * @desc    : 회원(고객) 공통 JS
 *============================================================================
 * STYLE24
 * Copyright(C) 2021 TSIT, All rights reserved.
 *============================================================================
 * VER  DATE         AUTHOR      DESCRIPTION
 * ===  ===========  ==========  =============================================
 * 1.0  2021.02.15   jsshin     최초 작성
 *******************************************************************************
 */


/**
 * 이메일 유효성 체크
 * @param email - 이메일
 * @return boolean - 통과(true)/실패(false)
 * @author jsshin
 * @since 2021. 02. 15
 */
var fnCheckValidationEmail = function (email) {
	const regexp = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;
	let result = true;
	if (!regexp.test(email)) {
		result = false;
	}
	return result;
};

/**
 * 날짜 변환 YYYYMMDD -> YYYY.MM.DD
 * @param date - 날짜
 * @return string - YYYY.MM.DD
 * @author jsshin
 * @since 2021. 02. 15
 */
var fnToDateFormat =  function(date) {
	if (gagajf.isNull(date))
		return "";
	return date.replaceAll("/", "").replaceAll("-", "").toDate("YYYYMMDD").format("YYYY.MM.DD");
};

/**
 * 비밀번호 길이확인
 * @param password - 패스워드
 * @return boolean 패스워드 길이가 짧거나 길면 true
 * @author jsshin
 * @since 2021. 02. 17
 */
var fnValidationPwdLength = function (password) {
	let result;
	// 길이
	if(!/^[a-zA-Z0-9!@#$%^&*()?_~]{8,20}$/.test(password)) {
		result = true;
	} else {
		result = false;
	}

	return result;
};

/**
 * 비밀번호 영문, 숫자, 특수문자 2종 이상 혼용
 * @param password - 패스워드
 * @return boolean 충족이 안되면 true
 * @author jsshin
 * @since 2021. 02. 17
 */
var fnValidtaionPwdMixedWord = function (password) {
	let result;
	let count = 0;
	if(password.search(/[0-9]/g) != -1 ) count ++;
	if(password.search(/[a-zA-Z]/ig)  != -1 ) count ++;
	if(password.search(/[!@#$%^&*()?_~]/g)  != -1  ) count ++;

	if (count < 2) {
		result = true;
	} else {
		result = false;
	}

	return result;
};


/**
 * 동일한 문자 숫자 4자이상 인지확인
 * @param password - 패스워드
 * @return boolean 동일한 문자가 있으면 true
 * @author jsshin
 * @since 2021. 02. 17
 */
var fnValidationPwdSameWord = function (password) {
	let result;
	if (/(\w)\1\1\1/.test(password)) {
		result = true;
	} else {
		result = false;
	}
	return result;
};

/**
 * 연속되는 문자가 4자이상 인지확인
 * @param password - 패스워드
 * @return boolean 연속된 문자가 있으면 true
 * @author jsshin
 * @since 2021. 02. 17
 */
var fnValidtaionPwdCntnsWord = function (password) {
	let result;
	let intCnt1 = 0;
	let intCnt2 = 0;
	let wordZero = '';
	let wordOne = '';
	let wordTwo = '';
	let wordThree = '';

	for (var i = 0; i < password.length-3; i++) {
		wordZero = password.charAt(i);
		wordOne = password.charAt(i + 1);
		wordTwo = password.charAt(i + 2);
		wordThree = password.charAt(i + 3);

		if (wordZero.charCodeAt(0) - wordOne.charCodeAt(0) == 1
			&& wordOne.charCodeAt(0) - wordTwo.charCodeAt(0) == 1
			&& wordTwo.charCodeAt(0) - wordThree.charCodeAt(0) == 1) {
			intCnt1 = intCnt1 + 1;
		}

		if (wordZero.charCodeAt(0) - wordOne.charCodeAt(0) == -1
			&& wordOne.charCodeAt(0) - wordTwo.charCodeAt(0) == -1
			&& wordTwo.charCodeAt(0) - wordThree.charCodeAt(0) == -1) {
			intCnt2 = intCnt2 + 1;
		}
	}

	if (intCnt1 > 0 || intCnt2 > 0) {
		result = true;
	} else {
		result = false;
	}
	return result;
}

/**
 * 비밀번호가 아이디랑 동일한지 확인
 * @param password - 패스워드
 * @param custId - 고객아이디
 * @return boolean 아이디랑 동일한게 있으면 true
 * @author jsshin
 * @since 2021. 02. 17
 */
var fnValidationPwdSameId = function (password, custId) {
	let result;

	if (password.search(custId) > -1) {
		result = true;
	} else {
		result = false;
	}
	return result;
}

/**
 * 확인 비밀번호 유효성 체크
 * @param password - 비밀번호
 * @param confirmPassword - 확인 비밀번호
 * @author jsshin
 * @since 2021. 02. 17
 */
var fnValidationPwdSameConfirmPwd = function (password, confirmPassword) {
	let result = false;

	if (!gagajf.isNull(password) && !gagajf.isNull(confirmPassword)) {
		if (password === confirmPassword) {
			result = true;
		}
	}

	return result;
};
/**
 * 확인 고객이디
 * @param custId - 아이디
 * @author jsshin
 * @since 2021. 06. 11
 */
var fnCheckCustId = function (custId) {
	const regexp = /[^a-zA-Z0-9]/gi;
	let result = true;
	if (regexp.test(custId)) {
		result = false;
	}
	return result;
}
