<? include("_common.php"); ?>
<? include_once("$g4[path]/zm.extend/sms/sms_ini.php"); ?>
<html>
<head>
<title>SMS 인증</title>
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<script language="javascript">
	zm_set_cookie("cook_auth_result", "0", 0);				//-- 인증 결과 쿠키 삭제
</script>
<script type="text/javascript" src="<?=$g4[path]?>/js/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="<?=$g4[path]?>/zm.extend/js/common.js"></script>

<style type="text/css">
body, form, img	{ padding:0; margin:0; border:0px; font-size:12px; }
#sms_certify_body	{ border-top:2px solid #EE701C; }
#sms_title		{ padding:5px; border-bottom:1px solid #C3C3C3; }

.msg_nosend		{ padding:5px; margin:10px 15px 10px 15; color:#414141; border-bottom:1px solid  #C3C3C3; }
.msg_nosend div	{ margin:2px 0 2px 0; font-size:11px; }
.sms_sertify_info	{ margin:15px; }
.sms_sertify_info span	{ display:inline-block; }
.sms_sertify_info span.item	{ width:100px; text-align:left; color:#202020; font-weight:bold; }
.sms_sertify_info span.tel_no	{ margin-right:20px; color:#6082FE; width:130px; font-size:14px; font-family:나눔고딕; }
.sms_sertify_info div.bttm_line	{ padding:3px; border-top:1px solid #EFEFEF; border-bottom:1px solid #EFEFEF; background:#F9F9F9; }

.sms_sertify_info #in_auth_no	{ width:100px; border:1px solid #6082FE; }
</style>
</head>
<body>
<? if(!$mb_hp1 || !$mb_hp2 || !$mb_hp3) : ?>
	<script language="javascript">
		alert("휴대전화 번호가 정상적으로 입력되지 않았습니다.");
		window.close();
	</script>
<?	exit;
endif; 

$tel_no	= $mb_hp1 . "-" . $mb_hp2 . "-" . $mb_hp3;

//-- 휴대전화 번호 유효성 약식 검사
$is_phone	= zm_is_phonenum("$tel_no");

if(!$is_phone) : ?>
	<script language="javascript">
		alert("입력하신 전화번호는 유효하지 않습니다.\n<?=$tel_no?>");
		window.close();
	</script>
<?	exit;
endif;

//-- 인증 번호 생성 -------------------------------------------------------------------------------
if($mode == "") { ?>
	<script language="javascript">
		//zm_set_cookie("cook_fail_cnt", "", 1);	//-- 지우기
		var fail_cnt	= zm_get_cookie("cook_fail_cnt");			//-- 실패한 횟수
		fail_cnt	= Number(fail_cnt);
		if(fail_cnt >= 3) {
			alert("3번의 인증 기회 중 " + fail_cnt + "회 실패했습니다.\n자동 가입자를 방지하기 위해 1일 후에 다시 인증 받을 수 있습니다.");
			window.close();
		}
	</script>

<?	//-- 정보 수정 시 이미 인증 받은 번호인지 검사
	if($zm_config[sms_certify] && ($member[mb_hp] == $tel_no) && (substr($zm_member[sms_certify], 0, 4) != "0000")) { ?>
		<script language="javascript">
			alert("<?=$tel_no?>는 이미 인증 받은 번호입니다.");
			window.close();
		</script>
<?	}

	//-- 번호 생성
	$auth_no_o	= rand(11111, 99999);
	$auth_no	= base64_encode($auth_no_o);
}

//-- 인증번호 발송 --------------------------------------------------------------------------------
if($mode == "auth_send") {
	if($zm_sms[residual] < 1) {
?>		<script language="javascript">
			alert("관리자의 SMS 전송 가능 충전금액이 충분하지 않습니다.");
			window.close();
		</script>
<?	}

	//-- sendsms(수신자 번호, 수신자 이름, 송신자 번호, 송신자 이름, 문자 내용[, 긴문자(1:90바이트만, 2:90씩 나눠서 여러번)][, 예약전송 여부(1:즉시전송, 2:예약전송)][, 예약시간 YYYYMMDD_hhiiss]);
	//-- $result -> "1/실패한 문자 번호@로 구분한 문자열"; ( 1:성공, 2:실패. 성공일 때 /뒤의 값은 없음 )
	$admin_info	= get_member($config[cf_admin]);			//-- 관리자 정보
	$resvTime	= null;										//-- 예약시간
	$senderName	= $admin_info[mb_nick];						//-- 보내는 사람
	$senderPCS	= $admin_info[mb_hp];
	$receiveName= "회원가입";								//-- 받는 사람
	$receivePCS	= $tel_no;
	$auth_no_o	= base64_decode($auth_no);
	$sendMsg	= "인증번호:[".$auth_no_o."] 인증창에 입력해 주세요. " . $_SERVER[SERVER_NAME];

	$send_result	= sendsms($receivePCS, $receiveName, $senderPCS, $senderName, $sendMsg, $zm_sms[cutstring], "$inSndStyle", "$resvTime");
}

//-- 인증번호가 맞는지 검사 -----------------------------------------------------------------------
if($mode == "auth") {
	$auth_no	= base64_decode($auth_no);
	if($in_auth_no == $auth_no) {
?>		<script language="javascript">
			zm_set_cookie("cook_auth_result", "1", 1);
			opener.document.fregisterform.auth_tel.value	= "<?=$tel_no?>";
			opener.document.fregisterform.sms_certify_result.value	= "1";
//			opener.document.getElementById('sms_certify_ok').style.display	= "block";
//			opener.document.getElementById('sms_certify').style.display	= "none";
			alert("인증 성공~*");
			window.close();
		</script>
<?		exit;
	}else{ ?>
		<script language="javascript">
			var fail_cnt	= zm_get_cookie("cook_fail_cnt");			//-- 실패한 횟수

			fail_cnt	= parseInt(fail_cnt);
			if(fail_cnt < 0 || isNaN(fail_cnt)) var fail_cnt = 0;
			fail_cnt++;
			
			zm_set_cookie("cook_auth_result", "0", 1);
			zm_set_cookie("cook_fail_cnt", fail_cnt, 1);
			alert("입력하신 인증번호가 일치하지 않습니다.\n다시 입력해 주세요.");

			if(fail_cnt > 0) {
				alert("3번의 인증 기회 중 " + fail_cnt + "회 실패.\n3회 실패 시 1일 후에 다시 인증 받을 수 있습니다.");
			}

			if(fail_cnt >= 3) {
				alert("자동 가입자를 방지하기 위해 1일 후에 다시 인증 받을 수 있습니다.");
				window.close();
			}

			zm_gourl("./zm.sms_certify.skin.php?mb_hp1=<?=$mb_hp1?>&mb_hp2=<?=$mb_hp2?>&mb_hp3=<?=$mb_hp3?>&mode=");
		</script>
<?		return false;
	}
}
//-- process end ----------------------------------------------------------------------------------
?>
<form name="form_certify" method="post" action="<?=$_SERVER[PHP_SELF]?>" onsubmit="return false">
<input type="hidden" name="mb_hp1" value="<?=$mb_hp1?>">
<input type="hidden" name="mb_hp2" value="<?=$mb_hp2?>">
<input type="hidden" name="mb_hp3" value="<?=$mb_hp3?>">
<input type="hidden" name="mode" value="">
<input type="hidden" name="send_result" value="<?=$send_result?>">
<input type="hidden" name="auth_no" value="<?=$auth_no?>">
<div id="sms_certify_body">
<div id="sms_title">
	<img src="./img/img_sms_title.gif">
</div>
<div class="sms_sertify_info">
	<div>전송받은 <font color="#FF8000"><b>인증번호</b></font>를 입력 해 주세요.</div>
	<div class="bttm_line" style="padding:3px; margin:4px 0 0 0;">
		<span class="item">휴대전화 번호</span>
		<span class="tel_no">&nbsp;<?=$tel_no?></span>
<?	if($send_result) : ?>
		<span style="color:#FF8000; font-size:11px;">&nbsp;번호 전송 완료(잠시만 기다려 주세요.)</span>
<?	else : ?>
		<span><a href="javascript:get_auth_no(form_certify)"><img src="./img/sms_auth_send_btn.gif" align="absmiddle"></a></span>
<?	endif; ?>
	</div>
	<div class="bttm_line" style="padding:3px; border-top:0px solid;">
		<span class="item">인증번호</span>
		<span>&nbsp;<input name="in_auth_no" id="in_auth_no" autocomplete="off" onFocus="this.select()"></span>
	</div>
</div>
<div class="msg_nosend">
	<div style="font-weight:bold; color:#414141; padding:5px 0 10px 0;">문자 수신이 안 되나요?</div>
	<div>1. 착신관련 서비스에 가입했을 경우</div>
	<div>2. 휴대전화에 스팸 설정 된 경우</div>
	<div>3. 통신사 사정으로 SMS 수신이 지연 될 수 있습니다.</div>
</div>
<div style="text-align:center;">
	<span><input type="image" src="./img/btn_sms_certify.gif" onClick="return sms_auth(form_certify)"></span>
	<span><a href="javascript:window.close();"><img src="./img/btn_sms_close.gif"></a></span>
</div>
</form>

<script language="javascript">
function sms_auth(f){
	if(!f.in_auth_no.value) {
		alert("휴대전화로 전송 된 인증번호를 입력 해 주세요.");
		f.in_auth_no.focus();
		return false;
	}
	if(!f.mb_hp1.value || !f.mb_hp2.value || !f.mb_hp3.value) {
		alert("인증받을 휴대전화 번호가 없습니다. 창을 닫고 다시 시도해 주세요.");
		return false;
	}

	f.mode.value	= "auth";
	f.submit();
}

function get_auth_no(f){
	if(!f.mb_hp1.value || !f.mb_hp2.value || !f.mb_hp3.value) {
		alert("인증받을 휴대전화 번호가 없습니다. 창을 닫고 다시 시도해 주세요.");
		return false;
	}

	f.mode.value	= "auth_send";
	f.submit();
}
</script>
</body>
</html>