<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page import="itn.com.cmm.LoginVO" %>
<!-- 암화화 순서에 유의 -->
<link rel="stylesheet" href="/publish/css/mem.css">

<script src="/publish/js/content.js"></script>
<script type="text/javascript" src="/js/RSA/rsa.js"></script>
<script type="text/javascript" src="/js/RSA/jsbn.js"></script>
<script type="text/javascript" src="/js/RSA/prng4.js"></script>
<script type="text/javascript" src="/js/RSA/rng.js"></script>



<script src="/publish/js/jquery-3.5.0.js"></script>
 
 
 
<script type="text/javascript">

$(document).ready(function (){
	if(${!empty message}){
		alert("${message}");
	}
	
	//웹헤더에서 보안로그인으로 인해 페이지 접근 시
	getid(document.loginForm2);
	
	<c:if test="${headerLoginResult ne 'N'}">
		headerLoginResult("<c:out value='${headerLoginResult}'/>");
	</c:if>
});	

function press(event) { if (event.keyCode == 13) actionLoginPage(); }

function actionLoginPage() {
	// 아이디 공백 제거
	document.loginForm2.id_text2.value = $.trim(document.loginForm2.id_text2.value);
	
    if (document.loginForm2.id_text2.value =="") {
        alert("아이디를 입력하세요");
        return;
    } else if (document.loginForm2.password_text2.value =="") {
        alert("비밀번호를 입력하세요");
        return;
    } else {
    	actionLogin();
    }
}

function actionLogin(){
		
		// 로그인 START
		var rsa = new RSAKey();
	    rsa.setPublic($('#RSAModulus2').val(),$('#RSAExponent2').val());
	    
	    var id = $("#id_text2");
	    var pw = $("#password_text2");
	    
	    document.loginForm2.id.value = rsa.encrypt(id.val().toLowerCase());
	    document.loginForm2.password.value = rsa.encrypt(pw.val());
	    
		var checkForm = $("form[name=loginForm2]").serialize() ;
		
		  $.ajax({
		      type : "POST",
		      async : false,
		      url : "/web/user/login/actionSecurityLoginBeforeHpAjax.do",
		      data : checkForm,
		      dataType:'json',
		      success : function(data) {
			      if (data.status=="success"){

			    	    document.loginForm2.passFlag.value = data.passFlag;
				    	if(data.passFlag == "Y")
			    		{
				    		actionLogin_end();
			    		}
				    	else
				    	{
					    	  
					    	//번호인증팝업 띄우기
					    	$("#input_list_item_1").hide();
					    	$("#input_list_item_2").hide();
					    	$("#input_list_item_3").hide();
					    	$("#input_list_item_0").hide();
		
					    	$("#input_list_item_4").show();
					    	$("#input_list_item_5").show();
					    	$("#input_list_item_6").show();
		
					    	var $select = $('#hp_text2');
					    	data.mberCertPhoneList.forEach(function(item) {
					    		$select.append($('<option>', {
					    			value: item.mbtlnum, // option의 value 값
					    			text: item.mbtlnum+'('+item.certAlias+')'  // option의 화면에 보이는 텍스트
					    		}));
					    	});
				    	}
				    	
			   		}else if (data.status=="fail"){
			   			
			   			if (data.returnType == "A"){
							//휴면 회원
			   				document.loginForm2.action="<c:url value='/web/user/humanPage.do'/>";
					 	    document.loginForm2.submit();
			   			}else if (data.returnType == "B"){
							//기업회원 기업정보 기입
			   				document.cmpChangeForm.mberId.value = data.mberId;
			   				document.cmpChangeForm.action="<c:url value='/web/user/login/membershipAttachDocBefore.do'/>";
					 	    document.cmpChangeForm.submit();
			   			}else if (data.returnType == "C"){
							//스팸문자이용제한페이지
			   				document.cmpChangeForm.mberId.value = data.mberId;
			   				document.cmpChangeForm.action="<c:url value='/web/user/login/loginRestrictionUse.do'/>";
					 	    document.cmpChangeForm.submit();
			   			}else{
			   				$("#ret_msg").show();
					    	$("#ret_msg_info").html('<i></i>'+data.msg);
			   			}
			   		}
		      },
		      error : function(xhr, status, error) {
			      	console.log("fn_click_banner_add_stat error : " + error);
			        console.log("fn_click_banner_add_stat xhr : " +  JSON.stringify(xhr)  + "\r\status : " + JSON.stringify(status) + "\r\error : " + JSON.stringify(error));	      	
		          return false;
		      }
		  });	
}

//아이디/휴대폰 번호 체크
function actionLogin_end(){
		// 로그인 START
		var rsa = new RSAKey();
	    rsa.setPublic($('#RSAModulus2').val(),$('#RSAExponent2').val());
	    var hp = $("#hp_text2").val();
	    var num = $("#num_text2").val();
	    
	    document.loginForm2.hp.value = hp;
	    document.loginForm2.num.value = num;
	    
	    document.loginForm2.action="<c:url value='/web/user/login/actionSecurityLoginAfterHp.do'/>";
	    saveid(document.loginForm2);
	    document.loginForm2.submit();		
}

//아이디/휴대폰 번호 체크
function step1IdCheck(){
	
	document.checkForm.callTo.value = $('#hp_text2').val();
	document.checkForm.userId.value = $('#id_text2').val().toLowerCase();
	
	if ($('#id_text2').val()==''){
		alert("아이디를 입력해주세요.");
		return;
		
	}else if ($('#hp_text2').val()==''){
		alert("핸드폰번호를 입력해주세요.");
		return;
		
	}
	
	var checkForm = $("form[name=checkForm]").serialize() ;
	$.ajax({
        url : "<c:url value='/web/user/sendSysMsgDataAjax.do' />", 
        type : 'POST', 
        data : checkForm,
        dataType:'json',
        success : function(returnData, status){
        	if(status == "success") {
        		alert(returnData.message);
        		
        		if(returnData.result == "success") {
        			timer(); 
        		}
          	}else{ alert("실패");return;} 
        },
        error : function(request , status, error){
        	alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
        }
    });
}

var time = 300; //기준시간 작성
var min = ""; //분
var sec = ""; //초

//인증번호 타이머
function timer(){
	//setInterval(함수, 시간) : 주기적인 실행
	var x = setInterval(function() {
		//parseInt() : 정수를 반환
		min = parseInt(time/60); 
		sec = time%60; //나머지를 계산
	
		document.getElementById("timer").innerHTML = min + "분" + sec + "초";
		time--;
		//타임아웃 시
		if (time < 0) {
			clearInterval(x); //setInterval() 실행을 끝냄
			document.getElementById("timer").innerHTML = "시간초과";
		}
	}, 1000);
	
	if(time != 300){
		time = 300;
		clearInterval(x);
	}
}

//인증번호 발송 1분마다 한번씩 보내기
function sendMsgYn(){
	
	document.checkForm.receive.value = $('#hp_text2').val();
	
	if ($('#hp_text2').val()==''){
		alert("휴대폰 번호를 입력해주세요.");
		return;
	}
	
	var checkForm = $("form[name=checkForm]").serialize() ;
	$.ajax({
        url : "<c:url value='/web/user/sendSysMsgSelectAjax.do' />", 
        type : 'POST', 
        data : checkForm,
        dataType:'json',
        success : function(returnData, status){
        	if(status == "success") {
        		if(returnData.compare){
        			step1IdCheck();
        		}else{
        			alert("인증번호 발송은 1분마다 가능합니다.");
        			return;
        		}
          	}else{ alert("실패");return;} 
        },
 
        error : function(request , status, error){
        	alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
        }
    });
}

function textClear(pram){
	var area = pram;
	$('#'+area).val('');
}


function saveid(form) {
    var expdate = new Date();
    // 기본적으로 30일동안 기억하게 함. 일수를 조절하려면 * 30에서 숫자를 조절하면 됨
    if (form.checkId.checked)
        expdate.setTime(expdate.getTime() + 1000 * 3600 * 24 * 30); // 30일
    else
        expdate.setTime(expdate.getTime() - 1); // 쿠키 삭제조건
    setCookie("ncms_saveid", form.id_text2.value, expdate);
}

function setCookie(name, value, expires) {
    document.cookie = name + "=" + escape (value) + "; path=/; expires=" + expires.toGMTString();
}

function getid(form){
    if(getCookie("ncms_saveid") != ""){
    	form.checkId.checked = (form.id_text2.value = getCookie("ncms_saveid"));
    }
}

function getCookie(Name) {
    var search = Name + "="
    if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면
        offset = document.cookie.indexOf(search)
        if (offset != -1) { // 쿠키가 존재하면
            offset += search.length
            // set index of beginning of value
            end = document.cookie.indexOf(";", offset)
            // 쿠키 값의 마지막 위치 인덱스 번호 설정
            if (end == -1)
                end = document.cookie.length
            return unescape(document.cookie.substring(offset, end))
        }
    }
    return "";
}

//로그인 화면 비밀번호 보기 추가
function fn_passView(obj){
	var passInputType = $('#password_text2').prop("type");
	if(passInputType == 'text'){
		$('#password_text2').prop("type", "password");
		//비밀번호 보호 이미지
		$(obj).find('img').attr('src', '/publish/images/content/password_protect.png');
	}else{
		$('#password_text2').prop("type", "text");
		//비밀번호 비보호 이미지
		$(obj).find('img').attr('src', '/publish/images/content/password_protect2.png');
	}
}

<c:if test="${headerLoginResult ne 'N'}">
	function headerLoginResult(headerLoginResult){

			//보안로그인로 왔을때
			if(headerLoginResult === 'secure'){
				document.loginForm2.id_text2.value = "<c:out value='${id_secure}'/>";
				document.loginForm2.password_text2.value = "<c:out value='${pw_secure}'/>";
				actionLoginPage();
			}
			//로그인 실패로 왔을때
			else{
				$("#ret_msg").show();
		    	$("#ret_msg_info").html('<i></i>'+headerLoginResult);
			}
		}
</c:if>

</script>
<div class="inner">
	<form:form id="loginForm2" name="loginForm2" method="post">
    <input type="hidden" name="beforeUrl"  value="<c:out value='/web/user/login/login.do'/>"/>
    <input type="hidden" name="userSe"  value="USR"/>
    <input type="hidden" id="RSAModulus2" value="${RSAModulus}"/>
    <input type="hidden" id="RSAExponent2" value="${RSAExponent}"/>  
  	<input type="hidden" id="id" name="id">
    <input type="hidden" id="password" name="password">
    <input type="hidden" name="goEventPay" value="${goEventPay}"/>
    <input type="hidden" id="hp" name="hp">
    <input type="hidden" id="num" name="num">
    <input type="hidden" id="passFlag" name="passFlag">
    
    <div class="send_top">
		<div class="mypage_content current">
			<div class="heading">
				<h2>로그인</h2>
			</div>
			<div class="mem_cont_in widthS login_wrap">
				<div class="input_list">
					<p class="welcome">
						<span>문자온</span>에 오신것을 환영합니다.<br>
						<span class="c_222 fwMd">로그인</span>해주세요.
					</p>
					<div class="input_list_item" id="input_list_item_1">
						<div class="input_left">아이디</div>
						<div class="input_right">
							<label for="list_inputType1" class="label">아이디</label> 
							<input type="text" id="id_text2" class="list_inputType1" placeholder="아이디를 입력해주세요" 
							onfocus="this.placeholder=''" onblur="this.placeholder='아이디를 입력해주세요'" onkeypress="press(event);" maxlength="20">
						</div>
						<div class="login_del">
							<button type="button" onclick="textClear('id_text2')" tabindex="-1">
								<img src="/publish/images/content/login_del.png" alt="입력 삭제">
							</button>
						</div>
					</div>
					<div class="input_list_item" id="input_list_item_2">
						<div class="input_left">비밀번호</div>
						<div class="input_right">
							<label for="list_inputType1" class="label">비밀번호 입력</label> 
							<input type="password" id="password_text2" class="list_inputType1" placeholder="비밀번호를 입력해주세요" 
							onfocus="this.placeholder=''" onblur="this.placeholder='비밀번호를 입력해주세요'" onkeypress="if(event.keyCode==13) {actionLoginPage(); return false;}">
						</div>
						<div class="login_del">
							<!-- <i class="password_protect"></i> -->
							<button type="button" onclick="fn_passView(this); return false;" tabindex="-1">
								<img id="passViewImg" src="/publish/images/content/password_protect.png" alt="비밀번호 보기">
							</button>
							<button type="button" onclick="textClear('password_text2')" tabindex="-1">
								<img src="/publish/images/content/login_del.png" alt="입력 삭제">
							</button>
						</div>
					</div>
					<c:if test="${fail}">
						<div class="pass_no2" id="input_list_item_0">
							<p>
								<i></i>아이디 또는 비밀번호가 일치하지 않습니다.
							</p>
						</div>
					</c:if>
					<c:if test="${fail2}">
						<div class="pass_no2" id="input_list_item_0">
							<p>
								<i></i>인증번호가 일치하지 않습니다.
							</p>
						</div>
					</c:if>
						<div class="pass_no2" style="display:none;" id="ret_msg">
							<p id="ret_msg_info">
								<i></i>아이디 또는 비밀번호가 일치하지 않습니다.
							</p>
						</div>
					<div class="mem_btnWrap2" id="input_list_item_3">
						<button type="button" class="mem_btn5" onclick="javascript:actionLoginPage(); return false;">로그인</button>
					</div>
					
					<div class="input_list_item" id="input_list_item_4" style="display:none;">
						<div class="input_left">휴대폰번호</div>
						<div class="input_right">
							<label for="list_inputType1" class="label">휴대폰번호</label> 
							<select id="hp_text2" class="list_selType1" style="width:70%;">
							</select>
						</div>
						<div class="login_del">
							<button type="button" class="btnType btnType3" onclick="sendMsgYn();">인증번호 받기</button>								
						</div>
					</div>		
					<div class="input_list_item" id="input_list_item_5" style="display:none;">
						<div class="input_left">인증번호 입력</div>
						<div class="input_right">
							<label for="list_inputType1" class="label">인증번호 입력</label> 
							<input type="text" id="num_text2" class="list_inputType1" placeholder="인증번호를 입력해주세요" maxlength="6" 
							onfocus="this.placeholder=''" onblur="this.placeholder='인증번호를 입력해주세요'" onkeypress="if(event.keyCode==13) {return false;}">
						</div>
						<div class="login_del">
							<!-- <i class="password_protect"></i> -->
							<button type="button" onclick="textClear('num_text2')" tabindex="-1">
								<img src="/publish/images/content/login_del.png" alt="입력 삭제">
							</button>
						</div>
					</div>					
					<div class="mem_btnWrap2" id="input_list_item_6" style="display:none;">
						<button type="button" class="mem_btn5" onclick="javascript:actionLogin_end(); return false;">확인</button>
					</div>								
					
					<div class="lgoin_bottom clearfix">
						<div>
							<div class="checkbox_wrap">
								<input type="checkbox" id="save_id" name="checkId" title="아이디 저장" class="joinCheckbox type3"> 
								<label for="save_id">아이디 저장</label>
							</div>
						</div>
						<ul>
							<li><a href="/web/user/login/selectUserDept.do">회원가입</a></li>
							<li class="SortLine"><a href="/web/user/findUserId.do">아이디찾기</a></li>
							<li class="SortLine"><a href="/web/user/rePassword.do">비밀번호찾기</a></li>
						</ul>
					</div>
                    <ul class="adv_list">
                    </ul>					
				</div>
			</div>
			<!--// 비밀번호 확인 -->
	
		</div>
	</div>
	<!--// 마이페이지 - 회원정보 변경 -->
</form:form>
<form name="checkForm" id="checkForm" method="post" action="#">
	<input type="hidden" name="searchNm" value=""/>	
	<input type="hidden" name="userId" value=""/>
	<input type="hidden" name="callTo" value=""/>
	<input type="hidden" name="receive" value=""/>
</form>
<form name="cmpChangeForm" id="cmpChangeForm" method="post" action="#">
	<input type="hidden" name="mberId" value=""/>	
</form>
</div>