이호영 이호영 2025-04-15
친구톡 진행중
@69e592478f603ef6b6420027db15bbfc85611483
 
src/main/java/itn/let/kakao/user/kakaoFt/service/KakaoFriendsTalkService.java (added)
+++ src/main/java/itn/let/kakao/user/kakaoFt/service/KakaoFriendsTalkService.java
@@ -0,0 +1,12 @@
+package itn.let.kakao.user.kakaoFt.service;
+
+import javax.servlet.http.HttpServletRequest;
+
+import itn.let.kakao.kakaoComm.KakaoVO;
+import itn.let.mail.service.StatusResponse;
+
+public interface KakaoFriendsTalkService {
+
+	StatusResponse insertKakaoFtSandAjax_advc(KakaoVO kakaoVO, HttpServletRequest request);
+
+}
 
src/main/java/itn/let/kakao/user/kakaoFt/service/impl/KakaoFriendsTalkServiceImpl.java (added)
+++ src/main/java/itn/let/kakao/user/kakaoFt/service/impl/KakaoFriendsTalkServiceImpl.java
@@ -0,0 +1,37 @@
+package itn.let.kakao.user.kakaoFt.service.impl;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Service;
+
+import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
+import egovframework.rte.fdl.idgnr.EgovIdGnrService;
+import itn.let.kakao.kakaoComm.KakaoVO;
+import itn.let.kakao.user.kakaoFt.service.KakaoFriendsTalkService;
+import itn.let.mail.service.StatusResponse;
+
+@Service("kakaoFriendsTalkTemplateService")
+public class KakaoFriendsTalkServiceImpl  extends EgovAbstractServiceImpl implements KakaoFriendsTalkService{
+
+	@Resource(name = "egovFriendstalkTemplateIdService")
+	private EgovIdGnrService idgenFriendTalkTmpId;
+
+	@Resource(name="kakaoFriendsTalkTemplateDAO")
+	private KakaoFriendsTalkTemplateDAO kakaoFriendsTalkTemplateDAO;
+
+	@Override
+	public StatusResponse insertKakaoFtSandAjax_advc(KakaoVO kakaoVO, HttpServletRequest request) {
+		StatusResponse statusResponse = new StatusResponse();
+		
+		
+
+		
+		
+		statusResponse.setStatus(HttpStatus.OK);
+//		statusResponse.setObject(returnMap);
+		return statusResponse;
+	}
+	
+}
src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
--- src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
+++ src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
@@ -13,9 +13,11 @@
 import javax.servlet.http.HttpServletRequest;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.servlet.ModelAndView;
 
@@ -29,7 +31,9 @@
 import itn.let.kakao.kakaoComm.KakaoVO;
 import itn.let.kakao.kakaoComm.kakaoApi.service.KakaoApiService;
 import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService;
+import itn.let.kakao.user.kakaoFt.service.KakaoFriendsTalkService;
 import itn.let.kakao.user.kakaoFt.service.KakaoFriendsTalkTemplateService;
+import itn.let.mail.service.StatusResponse;
 import itn.let.mjo.mjocommon.MjonCommon;
 import itn.let.mjo.mjocommon.MjonHolidayApi;
 import itn.let.mjo.msgdata.service.MjonMsgDataService;
@@ -67,6 +71,9 @@
 	
 	@Resource(name = "kakaoFriendsTalkTemplateService")
 	private KakaoFriendsTalkTemplateService kakaoFtTemplateService;
+	
+	@Resource(name = "kakaoFriendsTalkService")
+	private KakaoFriendsTalkService kakaoFriendsTalkService;
 	
 	/** userManageService */
 	@Resource(name = "userManageService")
@@ -313,7 +320,30 @@
 		return modelAndView;
 	}
 	
+
+    /**
+     * 문자 발송  기능
+     * @param searchVO
+     * @param model
+     * @return	"/web/mjon/msgdata/sendMsgDataAjax.do"
+     * @throws Exception
+     */
 	
+	@RequestMapping(value = "/web/mjon/kakao/friendstalk/kakaoFriendsTalkMsgSendAjax_advc.do")
+     public ResponseEntity<StatusResponse> sendMsgData_ft_advc(
+		    @RequestBody KakaoVO kakaoVO,
+		    HttpServletRequest request,
+	        ModelMap model) throws Exception {
+		System.out.println(" :: sendMsgData_ft_advc :: ");
+		
+
+	    // 디버깅 출력
+//	    System.out.println("mjonMsgVO : " + mjonMsgVO.getMjonMsgSendVOList().toString());
+//	    System.out.println("mjonMsgVO : " + mjonMsgVO.getMjonMsgSendVOList().size()); 
+
+		return ResponseEntity.ok().body(kakaoFriendsTalkService.insertKakaoFtSandAjax_advc(kakaoVO, request)) ;
+		
+	}
 	
 	/**
 	* @Method Name : kakaoFriendsTalkMsgSendAjax
src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
@@ -1191,14 +1191,19 @@
 		var data = new FormData(document.bizForm);
 		$.ajax({
 			type: "POST"
-			, url: "/web/mjon/kakao/friendstalk/kakaoFriendsTalkMsgSendAjax.do"
+// 			, url: "/web/mjon/kakao/friendstalk/kakaoFriendsTalkMsgSendAjax.do"
+			, url: "/web/mjon/kakao/friendstalk/kakaoFriendsTalkMsgSendAjax_advc.do"
 			, data: data
 			, dataType: 'json'
 			, async: true
 			, processData: false
 			, contentType: false
 			, cache: false
-			, success: function (returnData, status) {
+			, success: function (returnData) {
+				
+				console.log('returnData : ', returnData);
+				
+				/* 
 				if(status == 'success'){
 					if("loginFail" == returnData.result){
 						
@@ -1230,7 +1235,7 @@
 						
 						$('.mask').addClass('on');
 					}
-				}
+				} */
 			}
 			,beforeSend : function(xmlHttpRequest) {
 				//로딩창 show
 
src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView_advcbackup_20250414.jsp (added)
+++ src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView_advcbackup_20250414.jsp
@@ -0,0 +1,2549 @@
+<%@ 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" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
+<%@ page import="itn.com.cmm.LoginVO" %>
+<script src="/js/kakao/templateComm.js"></script>
+
+<script type="text/javascript" src="<c:out value='/js/MJUtill.js' />"></script>
+<script type="text/javascript" src="<c:out value='/js/kakao/ft/ftPriceClclt.js' />"></script>
+<script type="text/javascript" src="<c:out value='/js/kakao/ft/ftTabulator.js' />"></script>
+<script type="text/javascript" src="<c:out value='/js/txtSpecialReplace.js' />"></script>
+<script type="text/javascript" src="<c:out value='/js/kakao/at/addr.js' />"></script>
+<script type="text/javascript" src="<c:out value='/js/common/popup.js' />"></script>
+<script type="text/javascript" src="<c:out value='/js/kakao/ft/friendstalkExcel.js' />"></script>
+
+
+<script type="text/javascript">
+
+var loginVO = '${loginVO}';
+/* 파일등록 */
+var _fileIdx = 0;
+var _fileForm2 = new Array();
+var fileExt = ""; // 첨부파일 확장자
+var excelAddr = []; //엑셀 불러오기에서 내용 저장하는 배열 변수
+
+$(document).ready(function (){
+	
+	//화면 초기 로딩시 화면 처리해주기 - 템플릿 불러오기 했을 경우를 위함
+	initFormChk();
+	
+	//이모티콘 삽입 기능 처리
+	$(".symbolButton, .changeWord").on('click', function(){
+		
+		// 커서 위치에 삽입
+		setCursorInsertText("inputTemplateContent", $(this).attr("value"));
+		setContentsLeng($('#inputTemplateContent').val());
+	});
+	
+	
+	//즉시 발송 라디오 버튼 선택시 숨김처리
+	$("#reserYnN").on('click', function(){
+		$('.rev_selected').hide();
+		$('.send_rev .send_content').css('padding-bottom','108px');
+		$('.send_btn .btnType:first-child').html('발송하기');
+		$('#bizForm #reserveYn').val($(this).val());
+	});
+	
+	//예약 발송 라디오 버튼 선택시 숨김 해제처리
+	$("#reserYnY").on('click', function(){
+		$('.rev_selected').show();
+		$('.send_rev .send_content').css('padding-bottom','0');
+		$('.send_btn .btnType:first-child').html('예약하기');
+		$('#bizForm #reserveYn').val($(this).val());
+	});
+	
+	//템플릿 내용 입력 글자수 체크 해주기
+	$("#inputTemplateContent").keyup(function(e){
+		
+		var contents = $('#inputTemplateContent').val();
+		setContentsLengForFriends(contents);
+		
+	});
+	
+	$("#excelAdd").click(function(){
+		
+		if(excelAddr.length > 0){
+			
+			//첨부파일로 불러온 데이터를 받는사람 목록에 추가해 준다.
+			addPhoneInfo(excelAddr);
+			
+			 //첨부파일 초기화 시켜주기
+		    $("#excelFile").val("");
+		    $("#excelNm").val("");
+			
+		}else{
+			
+			alert("추가 엑셀 데이터가 없습니다.");
+			return false;
+			
+		}
+		
+	});
+	
+	
+	$("#send_fail_check").change(function(){
+		if($("#send_fail_check").is(":checked")){
+
+			
+			if(loginVO == "" || loginVO == null){
+				alert("로그인 후 사용 가능한 기능입니다.");
+				location.href="<c:url value='/web/user/login/login.do'/>";
+				return false;
+				
+				$("#send_fail_check").prop("checked", false);
+			}
+			
+			if($('#callFromList').val() === ''){
+				
+				if(confirm('대체문자 전송을 위한 발신번호가 등록되지 않았습니다. \n대체문자 발신번호를 지금 등록하시겠습니까?')){
+					window.location="<c:out value='/web/user/sendNumberManage.do' />";
+				}
+				$("#send_fail_check").prop("checked", false);
+				
+			}else{
+				// 에러버튼 체크 초기화
+				fn_insertErrorYN('N');
+				
+				$('#smsTxtArea').val('');
+// 				// 미리보기 텍스트를 가져와 줄바꿈 처리 후 대체문자 내용으로 입력
+				$('#smsTxtArea').val(
+					$('.template_text').html().trim().replace(/(<br>|<br\/>|<br \/>)/g, '\r\n')
+				);
+
+// 				//문자 내용 입력시 바이트수 계산하기
+				
+				$(".replace_send_wrap").slideDown(400);
+				thisFnByteString($('#smsTxtArea').val());
+			}
+		}else{
+			$(".replace_send_wrap").slideUp(400);
+			// 초기화 버튼 클릭
+			$('#failCheckInit').click();
+			$('.send_top .send_right .phone').css({'top': '0','transition': 'top .4s linear'});
+		}
+
+		// 금액 계산 fn 호출
+		totalFtPriceSum(tableL.getRows().length);
+		//fn_priceClclt();
+	});
+	
+	// 대체문자 내용 수정
+	$('#smsTxtArea').keyup(function(){
+		// 금액 계산 fn 호출
+		totalFtPriceSum(tableL.getRows().length);
+		//fn_priceClclt();
+		// 문자 바이트수 체크
+		thisFnByteString($('#smsTxtArea').val());
+		// 에러버튼 체크 초기화
+		fn_insertErrorYN('N');
+		
+	});
+	
+	
+	//대체문자 초기화 버튼 선택 처리
+	$("#failCheckInit").click(function(){
+		
+		$('#smsTxtArea').val("");
+		
+		// 금액 계산 fn 호출
+		totalFtPriceSum(tableL.getRows().length);
+		//fn_priceClclt();
+		// 문자 바이트수 체크
+		thisFnByteString($('#smsTxtArea').val());
+		// 에러버튼 체크 초기화
+		fn_insertErrorYN('N');
+		
+	});
+	
+	
+});
+
+function initFormChk(){
+	
+	//첫로딩시 우측 미리보기 화면 숨김처리
+	$('.emphasis_title_text').hide();	//강조유형 타이틀
+	$('.emphasis_side_text').hide();	//강조유형 보조문구
+	//$('.template_text').hide();			//내용 미리보기
+	$('.side_info_text').hide();		//부가정보 내용
+	$('.channel_info_text').hide();		//채널추가 텍스트 내용
+	$('.btnAd').hide();					//샘플 채널추가 버튼
+	//$('.btnEmpty').hide();				//샘플 버튼
+	
+	//채널ID 정보 미리보기에 표시해주기
+	fnAgentCodeChg();
+	
+	//템플릿 등록 이미지가 있는 경우 이미지 정보 표시해 주기
+	var imgType = $("input[name=img_file_add]:checked").val();
+	
+	if(!imgType == ''){
+		
+		if($("input[name='img_file_add']:checked").attr("id")=="img_file_1"){
+			$(".basic_img_add_wrap").show().siblings(".img_add_info_wrap").hide();
+			$(".img_file_add_wrap").show();
+		}else if($("input[name='img_file_add']:checked").attr("id")=="img_file_2"){
+			$(".wide_img_add_wrap").show().siblings(".img_add_info_wrap").hide();
+			$(".img_file_add_wrap").show();
+		} else{
+			$(".img_add_info_wrap, .img_file_add_wrap").hide();
+		}
+		
+	}else{
+		
+		$("#img_file_0").prop('checked',true);
+		
+	}
+	var imageFileName = '${resultTemplateVO.imageFileName}';
+	$("#imgNm").text(imageFileName);
+	
+	//미리보기에 이미지 표시해주기
+	var imgUrl = '${resultTemplateVO.templateImageUrl}';
+	
+	if(imgUrl != ''){
+		$('.kakao_image').css("display", "block");
+		$("#kakaoImg").attr("src", imgUrl);
+	}
+	
+	//초기 템플릿 내용 글자수 처리해주기
+	var tmpContents = $('#inputTemplateContent').val();
+	setContentsLengForFriends(tmpContents);
+	
+	//초기 광고포함 여부 처리
+	var adFlagVal = $("input[name=ad_flag]:checked").val();
+	advTextChange(adFlagVal);
+	
+	var reserYn = $("input[name=reserYn]:checked").val();
+	if(reserYn == 'N'){
+		
+		$('.rev_selected').hide();
+		$('.send_rev .send_content').css('padding-bottom','108px');
+		$('.send_btn .btnType:first-child').html('발송하기');
+		$('#bizForm #reserveYn').val('N');
+		
+	}
+	
+}
+
+//우측 미리보기 화면 채널 아이디 정보 변경해 주기
+function fnAgentCodeChg(){
+	var yellowIdVal = $("#selectAgentCode option:checked").val();
+	var yellowId = $("#selectAgentCode option:checked").text();
+	var yellowIdAt = yellowId.replaceAll('@','');
+	if(yellowIdVal != ''){
+		
+		$('#spnYellowid').text(yellowId);			//미리보기화면 채널ID
+		$('#spnYellowidAt').text(yellowIdAt);		//미리보기화면 채널ID @제거
+		$('#yellowIdCon').text(yellowIdAt);			//내용 입력 부분 채널ID 
+	}else{
+		
+		$('#spnYellowid').text("채널ID");			//미리보기화면 채널ID
+		$('#spnYellowidAt').text("채널ID");			//미리보기화면 채널ID @제거
+		$('#yellowIdCon').text("채널ID");			//내용 입력 부분 채널ID 
+	}
+}
+
+//파일첨부 버튼 클릭시 파일 첨부 실행
+function upImgClick(){
+	var selectChennelID = $("select[name='selectAgentCode']").val();	//채널ID 정보
+	var imageType = $("input[name=img_file_add]:checked").val();		//이미지 종류 정보(일반, 와이드)
+	var title = $("#imgTitle").val();
+	var link = $("#imgLink").val();
+	
+	if(selectChennelID == ''){
+		
+		$("#imgNm").text("");
+		$("#imgFile").val("");
+		alert("채널ID를 선택해 주세요.");
+		return false;
+		
+	}
+	
+	if(imageType != ''){
+		
+		bizForm.imageType.value = imageType;
+		
+	}else{
+		
+		$("#imgNm").text("");
+		$("#imgFile").val("");
+		alert("이미지 종류를 선택해 주세요.");
+		return false;
+		
+	}
+	
+	if(title == ''){
+		
+		$("#imgNm").text("");
+		$("#imgFile").val("");
+		alert("이미지 제목을 입력해 주세요.");
+		return false;
+		
+	}
+	
+	//이미지 선택시 링크 정보 및 url 패턴 검사
+	if(link == ''){
+		
+		$("#imgNm").text("");
+		$("#imgFile").val("");
+		alert("이미지 클릭시 이동할 URL 주소를 http:// 또는 https:// 포함하여 입력해 주세요.");
+		return false;
+		
+	}else{
+		
+		if(link.search("http://") == -1 && link.search("https://") == -1){
+			
+			$("#imgNm").text("");
+			$("#imgFile").val("");
+			alert("이미지 URL 주소에는 http:// 또는 https://를 포함하여 입력해야 합니다.");
+			return false;
+			
+		}
+		
+	}
+	
+	//첨부파일 선택 팝업 호출해주기
+	$("#imgFile").click();
+}
+
+//첨부 이미지 정보 확인 처리 해주기(이미지 리사이징 전단계)
+function imgResizeInfo(event){
+	
+	var fileValue = $("#imgFile").val().split("\\");
+	var fileName = fileValue[fileValue.length-1];
+	
+	var fileExt = fileName.split('.').pop().toLowerCase();
+
+	if(fileExt.length > 0){
+		if($.inArray(fileExt, ['jpg','jpeg','png']) == -1) {
+			alert('jpg, jpeg, png 파일만 업로드 할수 있습니다.');
+			return false;
+	   	}
+	   
+		$("#imgNm").text(fileName); 
+	}
+	
+	//알림톡 이미지 등록 요청하기
+	getTemplateImagUrl();
+}
+
+//카카오 친구톡 이미지 등록 요청 API 호출해주기
+function getTemplateImagUrl(){
+	
+	var bizForm = document.bizForm;
+	
+	var data = new FormData(bizForm);
+	var atchFileSts = true;	//첨부파일 갯수 상태 값1
+	
+	data.append("file0", $('#imgFile').prop('files')[0]);
+	
+	var fileValue = $("#imgFile").val().split("\\");
+	var fileName = fileValue[fileValue.length-1];
+	
+	var fileExt = fileName.split('.').pop().toLowerCase();
+	
+	if($.inArray(fileExt, ['jpg','jpeg', 'png']) == -1) {
+
+		alert('jpg, jpeg 파일만 업로드 할수 있습니다.');
+		return false;
+
+   	}
+	
+	var url = "";
+	
+	if(fileExt == "jpg" || fileExt == "jpeg" || fileExt == "png"){
+		
+		url = "/web/mjon/kakao/template/sendKakaoFriendsTemplateImageUploadAjax.do";
+		
+	}else{
+		
+		alert('jpg, jpeg 파일만 업로드 할수 있습니다.');
+		return;
+		
+	}
+	
+	$.ajax({
+		type : 'POST'
+		, enctype : 'multipart/form-data'
+		, url : url
+		, data : data
+		, dataType:'json'
+		, async:true
+		, processData: false
+		, contentType: false
+		, cache : false
+		, success : function(returnData, status){
+			if(returnData.result == "success") {
+				
+				var code = returnData.code;
+				var msg = returnData.msg;
+				var imgUrl = returnData.imgUrl;
+				
+				if(code == "200"){//등록 성공시 메시지 및 이미지 표시 처리
+					alert("이미지 등록이 완료 되었습니다.");
+					$("#templateImageName").val(fileName);
+					$("#templateImageUrl").val(imgUrl);
+				
+					$('.kakao_image').css("display", "block");
+					$("#kakaoImg").attr("src", imgUrl);
+					$("#imageFileName").val(fileName);
+					
+				}else if(code == "2002"){//일반 이미지 가로 세로 크기 오류 발생
+					
+					alert("권장 이미지 사이즈는  가로 720px 세로 720px(가로:세로 비율이 2:1 아닐 경우, 가로 500px, 세로 250px 이하일 경우 업로드 불가), 최대용량 500KB 입니다.");
+					
+					//첨부파일 정보를 지워준다.
+					$("#imgFile").val("");
+				    $("#imgNm").text("");  
+					return false;
+					
+				}else if(code == "405"){
+					
+					alert("권장 이미지 사이즈는  가로 800px 세로 600px(가로:세로 비율이 2:1 아닐 경우, 가로 500px, 세로 250px 이하일 경우 업로드 불가), 최대용량 2MB 입니다.");
+					
+					//첨부파일 정보를 지워준다.
+					$("#imgFile").val("");
+				    $("#imgNm").text("");  
+					return false;
+					
+				}else{
+					
+					alert(msg);
+					
+					//첨부파일 정보를 지워준다.
+					$("#imgFile").val("");
+				    $("#imgNm").text(""); 
+					return false;
+				}
+				
+			}else if(returnData.result == "loginFail"){
+				location.href="/web/user/login/login.do";
+			}else{
+				alert("이미지 등록 중 오류가 발생하였습니다.!!!");
+				return false;
+			}
+		},
+		beforeSend : function(xmlHttpRequest) {
+        	//로딩창 show
+        	$('.loading_layer').addClass('active');				
+		},	        	        
+        complete : function(xhr, textStatus) {
+        	//로딩창 hide
+        	$('.loading_layer').removeClass('active');
+		},
+		error : function(request , status, error){
+			alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
+		}
+	});
+	
+	//첨부파일 이름 및 데이터 지워주기 - 완료 후 팝업이 자동으로 닫힘.
+	$("#imgFile").val("");
+}
+
+function fnImageDel(){
+	
+	var selectAgentCode = $("select[name='selectAgentCode']").val();	// 선택 채널ID
+	var imageUrl = $("#templateImageUrl").val();
+	var bizForm = document.bizForm;
+	
+	bizForm.senderKey.value = selectAgentCode;
+	
+	if(imageUrl == ''){
+		
+		alert("등록된 이미지가 없습니다.");
+		return false;
+		
+	}
+	
+	var tmpFriendId = $("#tmpFriendId").val();
+	
+	if(tmpFriendId != ''){
+		
+		if(!confirm("불러온 템플릿의 이미지도 함께 삭제 됩니다. 계속하시겠습니까?")){
+			return false;
+		}
+		
+	}
+	
+	var data = new FormData(bizForm);
+	
+	if(confirm("등록된 이미지를 삭제하시겠습니까?")){
+		
+		$.ajax({
+			type: "POST"
+			, url: "/web/mjon/kakao/template/deleteKakaoFriendsImageDataAjax.do"
+			, data: data
+			, dataType: 'json'
+			, async: false
+			, processData: false
+			, contentType: false
+			, cache: false
+			, success: function (returnData, status) {
+				
+				var result = returnData.result;
+				var code = returnData.code;
+				var msg = returnData.msg;
+				
+				if(result == "notLogin") {//차단 발신번호인 경우 등록 불가
+					alert("로그인후 진행이 가능합니다.");
+				}else if(returnData.result == "success") {
+					
+					if(code == "200"){
+						alert("등록된 이미지가 삭제되었습니다.");
+						$("#imgTitle").val("");
+						$("#imgLink").val("");
+						$("#imgFile").val("");
+						$("#imgNm").text("첨부파일 이미지");
+						$("#templateImageUrl").val("");
+						$('.kakao_image').css("display", "none");
+						$("#kakaoImg").attr("src", "");
+						$("#imageFileName").val("");	//이미지 파일명 삭제
+						$("#img_file_0").click();		//이미지 첨부 안함 선택
+						return false;
+						
+					}else{
+						alert(msg);
+						return false;
+					}
+				}else{
+					alert("이미지 삭제에 오류가 발생하였습니다.");
+					return false;
+				}
+			}
+			,error: function (e) {
+				console.log("ERROR : ", e);
+				alert("이미지 삭제에 오류가 발생하였습니다.");
+			}
+		});
+	}
+}
+
+//알림톡 내용 초기화 해주기
+function fnContentsReset(){
+	$("#inputTemplateContent").val("");
+	$(".template_text").text("내용 미리보기");
+	$('.nowChar').text("0 /");
+}
+
+//저장 템플릿 불러오기 선택시 
+function myTemplateSelect(ftId){
+	
+	var form = document.templateForm;
+	
+	form.friendId.value = ftId;
+	
+	form.action="/web/mjon/kakao/friendstalk/kakaoFriendsTalkMsgDataView.do";
+	form.submit();
+	
+	
+}
+
+//광고성 정보 포함 선택에 따른 텍스트 표시 부분 처리
+$(document).on('change', '.inputAdFlag', function(){
+	
+	var adFlagVal = $(this).val();
+	advTextChange(adFlagVal);
+	
+});
+
+function advTextChange(adFlagVal){
+	
+	if(typeof adFlagVal == "undefined" || adFlagVal == null || adFlagVal == ""){
+		
+		$("#ad_Y").prop('checked',true);
+		
+	}else if(adFlagVal == 'N'){//광고 표시 숨김처리
+		
+		$('.adFlag').hide();
+		$('.kakao_block_text').hide();
+		$('#adFlagFront').hide();
+		$('.adFlagAfter').hide();
+		
+	}else{
+		$('.adFlag').show();
+		$('.kakao_block_text').show();
+		$('#adFlagFront').show();
+		$('.adFlagAfter').show();
+	}
+	
+}
+
+
+//친구톡 내용 템플릿으로 저장하기 - 내용 저장하기
+function myTemplateSave(){
+
+	var selectAgentCode = $("select[name='selectAgentCode']").val();	// 선택 채널ID
+	var yellowId = $("select[name='selectAgentCode'] option:selected").text().replaceAll('@','');			// 선택 채널명
+	var inputTemplateName = $("#inputTemplateName").val();				// 입력 템플릿 이름
+	var imageType = $("input[name=img_file_add]:checked").val();		// 첨부 이미지 종류(없음, 일반, 와이드 이미지)
+	var imageTitle = $("#imgTitle").val();								//첨부이미지 제목
+	var imageLink = $("#imgLink").val();								//첨부이미지 클릭시 이동 링크 주소
+	var inputTemplateAd = $("input[name=ad_flag]:checked").val();	// 광고성메시지 선택 여부
+	var inputTemplateContent = $("#inputTemplateContent").val();		// 템플릿 내용
+	
+	var inputTemplateImageName = $("#templateImageName").val();	// 템플릿 이미지 파일명
+	var inputTemplateImageUrl = $("#templateImageUrl").val();		// 템플릿 이미지 링크
+	
+	// 공통 유효성 검사 조회
+	if(selectAgentCode == null || selectAgentCode == ""){
+		alert("채널ID를 선택해 주세요");
+		return;
+	};
+	
+	if(inputTemplateName == null || inputTemplateName == ""){
+		alert("템플릿 명을 입력해 주세요");
+		$("#inputTemplateName").focus();
+		return;
+	};
+	
+	if(imageType == 'I' || imageType == 'W'){
+		
+		if(imageTitle == ''){
+			
+			alert("이미지 제목을 입력해 주세요.");
+			return false;
+			
+		}
+		
+		if(imageLink == ''){
+			
+			alert("이미지 클릭시 이동할 URL을 입력해 주세요.");
+			return false;
+			
+		}else{
+			
+			if(imageLink.search("http://") == -1 && imageLink.search("https://") == -1){
+				
+				alert("이미지 URL 주소에는 http:// 또는 https://를 포함하여 입력해야 합니다.");
+				return false;
+				
+			}
+			
+		}
+		
+		if(inputTemplateImageUrl == ''){
+			
+			alert("이미지를 선택해 주세요.");
+			return false;
+			
+		}
+		
+	}
+	
+	
+	if(inputTemplateContent == null || inputTemplateContent == ""){
+		alert("템플릿 내용을 입력해 주세요.");
+		return;
+	};
+	
+	var bizForm = document.bizForm;
+	bizForm.senderKey.value = selectAgentCode;
+	//bizForm.yellowId.value = yellowId;
+	bizForm.templateName.value = inputTemplateName;
+	//bizForm.imageType.value = imageType;
+	//bizForm.imgTitle.value = imageTitle;
+	//bizForm.imgLink.value = imageLink;
+	bizForm.adFlag.value = inputTemplateAd;
+	bizForm.templateContent.value = inputTemplateContent;
+	
+	var data = new FormData(bizForm);
+	
+	if(confirm("템플릿을 저장하시겠습니까?")){
+		
+		$.ajax({
+			type: "POST"
+			, url: "/web/mjon/kakao/template/insertKakaoFriendsTemplateDataAjax.do"
+			, data: data
+			, dataType: 'json'
+			, async: false
+			, processData: false
+			, contentType: false
+			, cache: false
+			, success: function (returnData, status) {
+				
+				var result = returnData.result;
+				
+				if(result == "loginFail") {//차단 발신번호인 경우 등록 불가
+					alert("로그인후 진행이 가능합니다.");
+				}else if(returnData.result == "success") {
+					alert("템플릿 저장이 완료되었습니다.");
+					return false;
+				}else{
+					
+					alert("템플릿 저장에 오류가 발생하였습니다.");
+					return false;
+					
+				}
+			}
+			,error: function (e) {
+				console.log("ERROR : ", e);
+				alert("템플릿 저장에 오류가 발생하였습니다.");
+			}
+		});
+		
+	}
+	
+}
+
+//주소록 불러오기 버튼 클릭시
+$('.popupAddr').click(function(){
+	
+	if(loginVO == "" || loginVO == null){
+		alert("주소록 불러오기 서비스는 로그인 후 이용 가능합니다.");
+		location.href="<c:url value='/web/user/login/login.do'/>";
+		return false;
+	}
+	
+	$("#addrGroupLoad").load("/web/mjon/msgdata/selectAddrGroupListAjax.do", "" ,function(response, status, xhr){
+		//리스트 스크롤 처리해주기
+		$(".adr_pop_list").mCustomScrollbar({
+			axis: 'y',
+			scrollbarPosition: "outside",
+			theme: "dark",
+			autoHideScrollbar: false
+		});
+	});
+	
+});
+
+function fnEmptyId(){
+	
+	alert("로그인 후 이용이 가능합니다.");
+	return false;
+	
+}
+
+//분할전송 건수 데이터 체크
+function checkNumber(event) {
+	var divideCnt = $('#frmDivideCnt').val();
+	if(!(event.key >= 0 && event.key <= 9)) {
+		return false;
+	}
+	
+	var totCnt = divideCnt + "" + event.key;
+	if(Number(totCnt) > 5000){
+		alert("분할전송 건수는 5,000건을 초과할 수 없습니다.");
+		$('#frmDivideCnt').val("20");
+		return false;
+	}
+  
+  return true;
+}
+
+function fnSelectMinChk(){
+	
+	var resHour = $("#msgResHour option:selected").val();
+	var resMin = $("#msgResMin option:selected").val();
+	
+	if(resHour == '20'){
+		
+		if(resMin >= 50 && resMin <= 59){
+			
+			alert("친구톡은 20:50 ~ 익일 08:00까지 발송할 수 없습니다.");
+			$("#msgResMin").val("40").prop("selected", true);
+			
+		}
+		
+	}
+	
+}
+
+
+//친구톡 발송 금지 시간 처리
+function fn_noTimeSend(){
+	
+	var id = '${loginVO.id}';
+
+	if(id == ""){
+		
+		alert("로그인 후 이용이 가능합니다.");
+		return false;
+		
+	}
+	
+	alert("친구톡은 20:50 ~ 익일 08:00까지 발송할 수 없습니다.");
+	return false;
+	
+}
+
+//친구톡 데이터 전송 처리
+function fn_sendMsgData(){
+	
+	var senderKey = $("#selectAgentCode option:checked").val();
+	
+	if(senderKey == ''){
+		
+		alert("채널ID를 선택해 주세요.");
+		return false;
+		
+	}else{
+		
+		$("#inputSenderKey").val(senderKey);
+		
+	}
+	
+	//이미지 첨부 체크	
+	var imgChk = $("input[name=img_file_add]:checked").val();
+	if(!getFtImageType(imgChk)){
+		return false;
+	}
+	
+	//템플릿 버튼 갯수 체크 
+	var buttonCnt = $(".btn_kakao_type").length;
+
+	if(buttonCnt > 0){
+		//json 파일 필요 유무 셋팅
+		$("#bizJsonYn").val("Y");
+	}
+	
+	//친구톡 내용 체크
+	var tmpContents = $('#inputTemplateContent').val();
+
+	if(tmpContents == ""){
+		
+		alert("친구톡 내용을 입력해 주세요.");
+		return false;
+		
+	}
+	
+	var rtnStr = strChinJpnCheck(tmpContents);
+	
+	//문자내용에 이모지가 있는지 체크
+	if(!emojiCheck(tmpContents)) return false;
+	
+	if(rtnStr.length > 0){
+		
+		alert("입력하신 문구 중 \" " + rtnStr + " \" 는 일부 휴대폰에서 표기되지 않을 수 있습니다.");
+		
+	}
+	
+
+	//수신번호 리스트 체크하기
+	var numCnt = 0;
+	var nameList = [];		//치환문자 이름
+	var phoneNum = [];	//받는사람
+	var rep1List = [];		//치환문자1
+	var rep2List = [];		//치환문자2
+	var rep3List = [];		//치환문자3
+	var rep4List = [];		//치환문자4
+	
+	var varValList = [];		//치환문자 연결시킬 변수 셋팅
+	
+	var selectedData = tableL.getRows();
+	
+	var varValStatus = true; //치환분자 데이터 체크용
+	
+	if(selectedData == "" || selectedData == null){
+		
+		alert("받는사람 주소를 한 건 이상 입력해주세요.");
+		return false;
+	
+	}else{ // 선택한 Row '-' 문자 삭제하기
+		
+		var txtReplYn = $("#txtReplYn").val();
+		
+		if(txtReplYn == 'Y'){//치환문자가 있는 경우 변수 치환 처리
+		
+			for(var i=0; i < selectedData.length; i++){
+				
+				var nmStatus = false;
+				var rep1Status = false;
+				var rep2Status = false;
+				var rep3Status = false;
+				var rep4Status = false;
+				
+				
+				if(tmpContents.indexOf("\#{이름}")  > -1){
+					
+					nmStatus = true;
+				}
+				
+				if(tmpContents.indexOf("\#{1}")  > -1){
+					
+					rep1Status = true;
+				}
+				
+				if(tmpContents.indexOf("\#{2}")  > -1){
+					
+					rep2Status = true;
+				}
+				
+				if(tmpContents.indexOf("\#{3}")  > -1){
+					
+					rep3Status = true;
+				}
+				
+				if(tmpContents.indexOf("\#{4}")  > -1){
+					
+					rep4Status = true;
+				}
+				
+				//일괄변환 문자에 콤마(,)가 들어가있으면 배열로 넘길때 문제가 발생하여 특수문자(§)로 치환하여 넘겨주도록 한다.
+				var name = tableL.getRows()[i].getData().name;
+				var phone = removeDash(tableL.getRows()[i].getData().phone);
+				var rep1 = tableL.getRows()[i].getData().rep1;
+				var rep2 = tableL.getRows()[i].getData().rep2;
+				var rep3 = tableL.getRows()[i].getData().rep3;
+				var rep4 = tableL.getRows()[i].getData().rep4;
+				var varValStr = "";	//¶ 구분자
+				
+				if(phone == ""){
+					
+					alert("수신 목록에 핸드폰 번호가 없는 항목이 있습니다.");
+					return false;
+					
+				}else if(!checkHpNum(phone)){
+					
+					alert("수신 목록에 잘 못된 핸드폰 번호가 있습니다. 핸드폰 번호 : " + phone + " 입니다.");
+					return false;
+					
+				}else{
+					
+					if(typeof(name) != 'undefined' && name != null && name !=""){
+						if(!emojiCheck(name)){//이모지 체크 해주기
+							return false;
+						}
+						
+						//이름 치환변수가 있으면 저장
+						if(nmStatus){
+							//nameList[i] = name.replaceAll(",","§");
+							if(varValStr == ''){
+								
+								varValStr = name.replaceAll(",","§");
+							}else{
+								
+								varValStr = varValStr + "¶" +  name.replaceAll(",","§");
+								
+							}
+						}
+					}else{
+						if(nmStatus){
+							varValStatus = false;
+						}
+					}
+
+					
+					if(phone != '' && phone != null){
+						//연락처 변수 저장하기
+						phoneNum[i] = phone;
+						if(varValStr == ''){
+							varValStr = phone;	
+						}else{
+							varValStr = varValStr + "¶" +  phone;
+						}
+					}else{
+						varValStatus = false;
+					}
+					
+					if(typeof(rep1) != 'undefined' && rep1 != null && rep1 !=""){
+						if(!emojiCheck(rep1)){//이모지 체크 해주기
+							return false;
+						}
+						
+						if(rep1Status){
+							
+							if(varValStr == ''){
+								//rep1List[i] = rep1.replaceAll(",","§");
+								varValStr = rep1.replaceAll(",","§");
+							}else{
+								//rep1List[i] = rep1.replaceAll(",","§");
+								varValStr = varValStr + "¶" +  rep1.replaceAll(",","§");
+							}
+						}
+					}else{
+						if(rep1Status){
+							varValStatus = false;
+						}
+					}
+					
+					if(typeof(rep2) != 'undefined' && rep2 != null && rep2 !=""){
+						if(!emojiCheck(rep2)){//이모지 체크 해주기
+							return false;
+						}
+						
+						if(rep2Status){
+							
+							if(varValStr == ''){
+								varValStr = rep2.replaceAll(",","§");
+							}else{
+								//rep2List[i] = rep2.replaceAll(",","§");
+								varValStr = varValStr + "¶" +  rep2.replaceAll(",","§");
+							}
+						}
+					}else{
+						if(rep2Status){
+							varValStatus = false;
+						}
+					}
+					
+					
+					if(typeof(rep3) != 'undefined' && rep3 != null && rep3 !=""){
+						if(!emojiCheck(rep3)){//이모지 체크 해주기
+							return false;
+						}
+						
+						if(rep3Status){
+							
+							if(varValStr == ''){
+								varValStr = rep3.replaceAll(",","§");
+							}else{
+								//rep3List[i] = rep3.replaceAll(",","§");
+								varValStr = varValStr + "¶" +  rep3.replaceAll(",","§");
+							}
+						}
+					}else{
+						if(rep3Status){
+							varValStatus = false;
+						}
+					}
+					
+					
+					if(typeof(rep4) != 'undefined' && rep4 != null && rep4 !=""){
+						if(!emojiCheck(rep4)){//이모지 체크 해주기
+							return false;
+						}
+						
+						if(rep4Status){
+							
+							if(varValStr == ''){
+								varValStr = rep4.replaceAll(",","§");
+							}else{
+								//rep4List[i] = rep4.replaceAll(",","§");
+								varValStr = varValStr + "¶" +  rep4.replaceAll(",","§");
+							}
+						}
+					}else{
+						if(rep4Status){
+							varValStatus = false;
+						}
+					}
+					
+				}
+				
+				varValList[i] = varValStr;
+				
+			}
+		
+		}else{//치환문자가 없는 경우 휴대폰 번호만 입력
+			
+			for(var i=0; i < selectedData.length; i++){
+				
+				//일괄변환 문자에 콤마(,)가 들어가있으면 배열로 넘길때 문제가 발생하여 특수문자(§)로 치환하여 넘겨주도록 한다.
+				var phone = removeDash(tableL.getRows()[i].getData().phone);
+				
+				if(phone == ""){
+					
+					alert("수신 목록에 핸드폰 번호가 없는 항목이 있습니다.");
+					return false;
+					
+				}else if(!checkHpNum(phone)){
+					
+					alert("수신 목록에 잘 못된 핸드폰 번호가 있습니다. 핸드폰 번호 : " + phone + " 입니다.");
+					return false;
+					
+				}else{
+					
+					phoneNum[i] = phone;
+					
+				}
+				
+			}
+		
+		}
+	
+	}
+	
+	//예약문자 시간 체크
+	var reserYn = $("input[name=reserYn]:checked").val(); // 예약 발송 여부 확인
+	
+	if(reserYn == 'Y'){
+		
+		var date = $(".resDate").val();//form.msgResDate.value;
+		var hour = $("#msgResHour option:selected").val();
+		var min = $("#msgResMin option:selected").val();
+		
+		if(date == ""){
+			
+			alert("예약전송 날짜를 선택해 주세요.");
+			return false;
+			
+		}else{
+			
+			var now = new Date();
+			var reqDate = date + " " + hour + ":" + min + ":00";
+			var gapDate = getGapDayTime(date, hour, min);
+			
+			if(gapDate < 0){ // 음수이면 이전날짜, 크면 이후 날짜.
+				alert("예약 날짜는 현재 시간 이후의 날짜 및 시간을 선택해 주세요.");
+				return false;
+			}else{
+				$("#reqDate").val(reqDate);	//예약일자 파라미터 저장
+			}
+		}
+
+	}else{
+		
+		$("#reqDate").val("");	//예약일자 파라미터 저장
+		
+	}
+	
+	
+	//대체문자 선택 및 내용 체크
+	var subMsgSendYn = "N";
+	
+	if($("#send_fail_check").is(":checked")){
+		
+		subMsgSendYn = "Y";
+		$("#subMsgSendYn").val("Y");
+		
+		//대체문자 체크사항 함수 호출
+		if(!fn_subMsgCheck()){ 
+			
+			/* $("#send_fail_check").prop("checked", false);
+			$(".replace_send_wrap").slideUp(400);
+			// 초기화 버튼 클릭
+			$('#failCheckInit').click();
+			$('.send_top .send_right .phone').css({'top': '0','transition': 'top .4s linear'}); */
+			return false;
+		
+		}
+		
+	}else{
+		
+		subMsgSendYn = "N";
+		$("#subMsgSendYn").val("N");
+		
+	}
+	
+	//수신전화번호 목록
+	$("#callToList").val(phoneNum);
+	
+	//치환변수 데이터 정보 목록(수신번호 포함, tabulator 정보 모두 )
+	$("#varValList").val(varValList);
+
+	//템플릿 내용 입력
+	$("#templateContent").val(tmpContents);
+	
+	//광고포함 여부
+	var adFlag = $("input[name=ad_flag]:checked").val();
+	$("#adFlag").val(adFlag);
+	
+	//치환문자에 대한 데이터 누락 체크
+	if(!varValStatus){
+		
+		alert("특정문구 일괄변환에 대한 일부 데이터가 누락된 부분이 있습니다. 데이터를 확인해 주세요.");
+		return false;
+		
+	}
+	
+	if(!confirm("친구톡을 발송하시겠습니까?")){
+		
+		return false;
+		
+	}
+	
+	var spamChk = true;
+	
+	var spmData = new FormData(document.bizForm);
+	$.ajax({
+		type: "POST"
+		, url: "/web/mjon/kakao/friendstalk/selectSpamKakaoFriendsTalkMsgChkAjax.do"
+		, data: spmData
+		, dataType:'json'
+		, async: false
+		, processData: false
+		, contentType: false
+		, cache: false
+		, success: function (returnData, status) {
+			if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
+				
+				if("fail" == returnData.result){
+					alert(returnData.message);
+					spamChk = false;
+					return false;
+				}else if("loginFail" == returnData.result){
+					alert(returnData.message);
+					spamChk = false;
+					return false;
+				}else if("spams" == returnData.result){
+					//alert("전송 내용에  스팸문구가 포함되어 있습니다.")
+					$("#spamStatus").val("Y");
+					return false;
+				}else{
+					spamChk = true;
+					return false;
+				}
+				
+			} else if(status== 'fail'){
+				alert(returnData.message);
+				return false;
+			}
+		}
+		, error: function (e) {
+			alert("문자 발송에 실패하였습니다.");
+			console.log("ERROR : ", e);
+			return false;
+		}
+	});
+	
+	if(spamChk){
+		var data = new FormData(document.bizForm);
+		$.ajax({
+			type: "POST"
+			, url: "/web/mjon/kakao/friendstalk/kakaoFriendsTalkMsgSendAjax.do"
+			, data: data
+			, dataType: 'json'
+			, async: true
+			, processData: false
+			, contentType: false
+			, cache: false
+			, success: function (returnData, status) {
+				if(status == 'success'){
+					if("loginFail" == returnData.result){
+						
+						alert(returnData.message);
+						return false;
+						
+					}else  if('fail' == returnData.result){
+						
+						alert(returnData.message);
+						return false;
+						
+					}else if('authFail' == returnData.result){
+						
+						alert(returnData.message);
+						location.reload();
+						
+					} else if(status == 'success'){
+						
+						var kakaoSendCnt = returnData.resultSts;
+						
+						$('.pop_msg_success').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
+						
+						//예약발송 건의 경우 결과 팝업 문구 변경
+						if(reserYn == 'Y'){
+							$('.pop_msg_success .msg_text').html("예약 성공 : <strong>"+ kakaoSendCnt + "</strong>건의<br>친구톡이 예약 되었습니다.");
+						}else{
+							$('.pop_msg_success .msg_text').html("발송 성공 : <strong>"+ kakaoSendCnt + "</strong>건의<br>친구톡이 발송 되었습니다.");
+						}
+						
+						$('.mask').addClass('on');
+					}
+				}
+			}
+			,beforeSend : function(xmlHttpRequest) {
+				//로딩창 show
+				$('.loading_layer').addClass('active');
+			}
+			,complete : function(xhr, textStatus) {
+				//로딩창 hide
+				$('.loading_layer').removeClass('active');
+			}
+			,error: function (e) {
+				console.log("ERROR : ", e);
+				alert("카카오 친구톡 전송에 실패하였습니다.");
+			}
+		}); 
+	}
+	
+}
+
+
+/**
+ * @description 대체문자 오류체크 funciton
+ */
+function fn_errorChk(){
+
+	// 대체문자가 없을 시 return false;
+	if($('#txtReplYn').val() === 'N')
+	{
+		alert('오류가 없습니다.');
+		return false;
+	}
+
+	// 치환 부분 변수명만 추출 = 배열
+	var varList = $("#inputTemplateContent").val().match(/#\{([^}]+)\}/g);
+	
+	var smsTxt = $('#smsTxtArea').val();
+	for(var i=0; i < varList.length; i++){
+		if(smsTxt.indexOf(varList[i]) < 0){
+			if(confirm(varList[i] + '값이 없습니다. 치환문자 없이 진행하시겠습니까?')){
+				fn_insertErrorYN('Y');
+			};
+			return false;
+		}
+		smsTxt = smsTxt.replace(varList[i], '');
+	};
+	alert('오류가 없습니다.');
+	fn_insertErrorYN('Y');
+}
+
+
+function fn_insertErrorYN(val){
+	$('#errorChk').val(val);
+}
+
+/*
+ *대체문자 필수 항목 체크 
+ *
+ **/
+ 
+function fn_subMsgCheck(){
+
+	if($('#callFromList').val() === ''){
+		
+		if(confirm('대체문자 전송을 위한 발신번호가 등록되지 않았습니다. \n대체문자 발신번호를 지금 등록하시겠습니까?')){
+			window.location="<c:out value='/web/user/sendNumberManage.do' />";
+		}
+		$("#send_fail_check").prop("checked", false);
+		
+		return false;
+		
+	}else{
+	
+		//발신번호 입력 처리
+		$("#callFrom").val(removeDash($('#callFromList').val()));
+		
+	}
+	
+	if($("#smsTxtArea").val() === ''){
+		
+		alert("대체문자 내용을 입력해 주세요.");
+		return false;
+		
+	}else{//대체문자에 치환문자 여부 체크
+		
+		var smsTxtArea = $("#smsTxtArea").val();
+		var replStatus = false;
+	
+		if(smsTxtArea.indexOf("\#{이름}")  > -1){
+			replStatus = true;
+		}
+		
+		if(smsTxtArea.indexOf("\#{1}")  > -1){
+			replStatus = true;
+		}
+		
+		if(smsTxtArea.indexOf("\#{2}")  > -1){
+			replStatus = true;
+		}
+		
+		if(smsTxtArea.indexOf("\#{3}")  > -1){
+			replStatus = true;
+		}
+		
+		if(smsTxtArea.indexOf("\#{4}")  > -1){
+			replStatus = true;
+		}
+		
+		if(replStatus){
+			$("#subMsgTxtReplYn").val("Y");
+		}else{
+			$("#subMsgTxtReplYn").val("N");
+		}
+		
+		$("#subMsgTxt").val(smsTxtArea);
+		
+	}
+	
+	
+	
+	return true;
+	
+}
+
+//문자 바이트수 계산하기 함수
+function thisFnByteString(contents){
+	var totalByte = 0; 
+	//var content = contents;
+	var adverYn = $("input[name='send_adYn']:checked").val();
+	var adTxtLeng = 0;
+	var denyTxtLeng = 0;
+
+	$('#msgLeng').html("");
+	$('#limitLeng').html("");
+	var conLeng = conByteLeng(contents); // 내용 문자 입력 바이트 수 계산하기
+	
+		
+	$('#msgLeng').text(conLeng);
+	
+	//문자 길이 변수에 저장해주기
+	$('#smsLen').val(conLeng);
+	
+	
+	if(conLeng > 90){
+		
+		$('#msgLeng').html(conLeng + " / ");
+		$('#limitLeng').html("2000");
+		$('.msg_com').html("장문");
+		$('#msgType').val("6"); // 메세지 타입 설정
+		
+		$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
+		$('.put_left').removeClass("short"); //내용 입력 박스 클래스 삭제
+		$('.msg_com').addClass("msg_long"); // 장문 클래스 삽입
+		$("#subMsgType").val("LMS");
+		
+	}else{
+		
+		$('#msgLeng').html(conLeng + " / ");
+		$('#limitLeng').html("90");
+		$('.msg_com').html("단문");
+		$('#msgType').val("4"); // 메세지 타입 설정
+		$('.msg_com').removeClass("msg_long"); //단문 클래스 삭제하고
+		$('.put_left').removeClass("long"); //내용 입력 박스 클래스 삭제
+		$('.msg_com').addClass("msg_short"); // 장문 클래스 삽입
+		$("#subMsgType").val("SMS");
+		
+	}
+		
+}
+
+function msgSuccessClose(obj){
+	$(obj).closest('.pop_msg_success').attr('style','');
+	location.reload(true);
+	$('html').scrollTop(0);
+}
+
+function getFtImageType(imgChk){
+	
+	if(imgChk == 'I' || imgChk == 'W'){
+		
+		var imgTitle = $("#imgTitle").val();
+		var imgLink = $("#imgLink").val();
+		var imgFileName = $("#imageFileName").val();
+		
+		if(imgTitle == ''){
+			
+			alert("친구톡 이미지 제목정보를 입력해 주세요.");
+			return false;
+			
+		}
+		
+		if(imgLink == ''){
+			
+			alert("친구톡 이미지 선택시 이동할 링크 주소를 입력해 주세요.");
+			return false;
+			
+		}
+		
+		if(imgFileName == ''){
+			
+			alert("친구톡 이미지를 등록해 주세요.");
+			return false;
+			
+		}
+		
+		$("#imageType").val(imgChk);
+		
+		//json 파일 필요 유무 셋팅
+		$("#bizJsonYn").val("Y");
+	}
+	
+	return true;
+	
+}
+
+
+function goToKakaoTestPopUp(){
+	
+	if(loginVO == "" || loginVO == null){
+		alert("테스트 발송 서비스는 로그인 후 이용 가능합니다.");
+		location.href="<c:url value='/web/user/login/login.do'/>";
+		return false;
+	}
+	
+	//기업회원 체크
+	if(!usrDeptChk()){
+		return false;
+	}
+	
+	var form = document.bizForm;
+	var senderKey = $("#selectAgentCode option:checked").val();
+	var yellowId = $("#selectAgentCode option:checked").text();
+	
+	if(senderKey == ''){
+		alert("채널ID를 선택해 주세요.");
+		return false;
+	}else{
+		$("#inputSenderKey").val(senderKey);
+		$("#yellowId").val(yellowId);
+	}
+	
+	var imgChk = $("input[name=img_file_add]:checked").val();
+	if(!getFtImageType(imgChk)){
+		return false;
+	}
+	
+	//템플릿 버튼 갯수 체크 
+	var buttonCnt = $(".btn_kakao_type").length;
+
+	if(buttonCnt > 0){
+		//json 파일 필요 유무 셋팅
+		$("#bizJsonYn").val("Y");
+	}
+	
+	//친구톡 내용 체크
+	var tmpContents = $('#inputTemplateContent').val();
+
+	if(tmpContents == ""){
+		
+		alert("친구톡 내용을 입력해 주세요.");
+		return false;
+		
+	}else{
+		
+		//템플릿 내용 입력
+		$("#templateContent").val(tmpContents);
+		
+	}
+	
+	var rtnStr = strChinJpnCheck(tmpContents);
+	
+	//문자내용에 이모지가 있는지 체크
+	if(!emojiCheck(tmpContents)) return false;
+	
+	if(rtnStr.length > 0){
+		
+		alert("입력하신 문구 중 \" " + rtnStr + " \" 는 일부 휴대폰에서 표기되지 않을 수 있습니다.");
+		
+	}
+	
+	
+	var selectedData = tableL.getRows();
+	
+	if(selectedData == "" || selectedData == null){
+		
+		alert("받는사람 주소를 한 건 이상 입력해주세요.");
+		return false;
+	
+	}else{
+		
+		//치환문구 변환 
+		var txtReplYn = $("#txtReplYn").val();
+		
+		if(txtReplYn == 'Y'){
+			
+			var name = tableL.getRows()[0].getData().name;
+			var phone = removeDash(tableL.getRows()[0].getData().phone);
+			var rep1 = tableL.getRows()[0].getData().rep1;
+			var rep2 = tableL.getRows()[0].getData().rep2;
+			var rep3 = tableL.getRows()[0].getData().rep3;
+			var rep4 = tableL.getRows()[0].getData().rep4;
+			
+			var varValList = [];		//치환문자 연결시킬 변수 셋팅
+			
+			
+			var nmStatus = false;
+			var rep1Status = false;
+			var rep2Status = false;
+			var rep3Status = false;
+			var rep4Status = false;
+			
+			var varValStr = "";
+			var varValStatus = true;
+
+			
+			if(tmpContents.indexOf("\#{이름}")  > -1){
+				nmStatus = true;
+			}
+			
+			if(tmpContents.indexOf("\#{1}")  > -1){
+				rep1Status = true;
+			}
+			
+			if(tmpContents.indexOf("\#{2}")  > -1){
+				rep2Status = true;
+			}
+			
+			if(tmpContents.indexOf("\#{3}")  > -1){
+				rep3Status = true;
+			}
+			
+			if(tmpContents.indexOf("\#{4}")  > -1){
+				rep4Status = true;
+			}
+			
+	
+			if(nmStatus && (typeof(name) != 'undefined' && name != null && name !="")){
+				
+				if(varValStr == ''){
+					varValStr = name.replaceAll(",","§");
+				}else{
+					varValStr = varValStr + "¶" +  name.replaceAll(",","§");
+				}
+				
+			}else{
+				
+				if(nmStatus){
+					varValStatus = false;
+				}
+				
+			}
+			
+			if(varValStr == ''){
+				varValStr = phone;
+			}else{
+				varValStr = varValStr + "¶" +  phone;
+			}
+
+			if(rep1Status && (typeof(rep1) != 'undefined' && rep1 != null && rep1 !="")){
+				
+				if(varValStr == ''){
+					varValStr = rep1.replaceAll(",","§");
+				}else{
+					varValStr = varValStr + "¶" +  rep1.replaceAll(",","§");
+				}
+				
+			}else{
+				
+				if(rep1Status){
+					varValStatus = false;
+				}
+				
+			}
+			
+			
+			if(rep2Status && (typeof(rep2) != 'undefined' && rep2 != null && rep2 !="")){
+			
+				if(varValStr == ''){
+					varValStr = rep2.replaceAll(",","§");
+				}else{
+					varValStr = varValStr + "¶" +  rep2.replaceAll(",","§");
+				}
+				
+			}else{
+				
+				if(rep2Status){
+					varValStatus = false;
+				}
+				
+			}
+			
+			if(rep3Status && (typeof(rep3) != 'undefined' && rep3 != null && rep3 !="")){
+				
+				if(varValStr == ''){
+					varValStr = rep3.replaceAll(",","§");
+				}else{
+					varValStr = varValStr + "¶" +  rep3.replaceAll(",","§");
+				}
+				
+			}else{
+				
+				if(rep3Status){
+					varValStatus = false;
+				}
+				
+			}
+			
+			if(rep4Status && (typeof(rep4) != 'undefined' && rep4 != null && rep4 !="")){
+				
+				if(varValStr == ''){
+					varValStr = rep4.replaceAll(",","§");
+				}else{
+					varValStr = varValStr + "¶" +  rep4.replaceAll(",","§");
+				}
+			
+			}else{
+				
+				if(rep4Status){
+					varValStatus = false;
+				}
+				
+			}
+			
+			if(!varValStatus){
+				
+				alert("특정문구 일괄변환에 대한 일부 데이터가 누락된 부분이 있습니다. 데이터를 확인해 주세요.");
+				return false;
+				
+			}
+			
+			varValList[0] = varValStr;
+			
+			$("#varValList").val(varValList);
+		}
+		
+	}
+
+	form.method = "post"; 
+	window.open("about:blank", 'testSendPop', 'width=770, height=850, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
+	form.target = "testSendPop";
+	form.action = "/web/mjon/kakao/friendstalk/selectKakaoFriendsTalkTestSendPopup.do";
+	form.submit();
+}
+
+
+function msgResultLink(){
+	var reserYn = $("input[name=reserYn]:checked").val(); // 예약 발송 여부 확인
+	if(reserYn == 'Y'){
+		
+		location.href="/web/mjon/reservmsg/selectReservKaKaoView.do";
+		
+	}else{
+		location.href="/web/kakao/sent/selectKakaoSentView.do";
+	}
+}
+
+</script>
+
+<!-- 로딩바 -->
+<div class="loading_layer">
+	<div class="loading_container">
+		<div class="bar"></div>
+		<div class="text">Loading</div>
+	</div>
+</div>
+
+<div class="inner">
+	<div class="send_top">
+		<!-- tab button -->
+		<%@include file="/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkTopMenuTap.jsp" %>
+		<!-- // tab button -->
+		<div class="top_content kakaotalksend_cont current pay_tab_wrap">
+			<div class="heading">
+				<h2>친구톡 전송</h2>
+				<button type="button" class="button info">친구톡 사용방법</button>
+			</div>
+			
+			<!-- 유저 보유잔액 -->
+			<input type="hidden" id="oriUserMoney" value="<c:out value='${userMoney}' />">
+			
+			<!-- 각 금액 단가  -->
+			<input type="hidden" id="kakaoFtPrice" value="<c:out value='${sendPrice.kakaoFtPrice}' />"> <!-- 친구톡 단가  -->
+			<input type="hidden" id="longPrice" value="<c:out value='${sendPrice.longPrice}' />"> <!-- mms 단가  -->
+			<input type="hidden" id="shortPrice" value="<c:out value='${sendPrice.shortPrice}' />"> <!-- sms 단가  -->
+			
+			<form id="bizForm" name="bizForm" method="multipart/form-data">
+				<input type="hidden" id="menuTopTab" name="menuTopTab" value="tabFriend">
+				<input type="hidden" id="imageType" name="imageType" value="<c:out value='${resultTemplateVO.imageType}'/>"/>
+				<input type="hidden" id="inputSenderKey" name="senderKey" value="<c:out value='${resultTemplateVO.senderKey}'/>"/>
+				<input type="hidden" id="imageFileName" name="imageFileName" value="<c:out value='${resultTemplateVO.imageFileName}'/>">
+				<input type="hidden" id="templateImageUrl" name="templateImageUrl" value="<c:out value='${resultTemplateVO.templateImageUrl}'/>">
+				<input type="hidden" id="tmpFriendId" name="friendId" value="<c:out value='${resultTemplateVO.friendId}'/>">
+				<input type="hidden" id="templateName" name="templateName" value=""/>
+				<input type="hidden" id="adFlag" name="adFlag" value="N"/>
+				<input type="hidden" id="templateContent" name="templateContent" value=""/>
+				
+				<!-- 예약발송 여부 -->
+				<input type="hidden" id="reserveYn" name="reserveYn" value="N"/>
+				<input type="hidden" id="reqDate" name="reqDate" value=""/>
+				
+				<!-- 변환문자 유무 -->
+				<input type="hidden" id="txtReplYn" name="txtReplYn" value="N"/>
+				<input type="hidden" id="varValList" name="varValList" value=""/>
+				
+				<!-- 수신목록 -->
+				<input type="hidden" id="callToList" name="callToList" value=""/>
+				
+				<!-- 스팸 문구 유무 -->
+				<input type="hidden" id="spamStatus" name="spamStatus" value="N"/>
+				<input type="hidden" id="atSmishingYn" name="atSmishingYn" value="<c:out value='${atSmishingYn}' />"/>
+				
+				<!-- 오류 체크 -->
+				<input type="hidden" id="errorChk" name="errorChk" value="N"/>
+				
+				<!-- 대체문자 여부 -->
+				<input type="hidden" id="subMsgSendYn" name="subMsgSendYn" value="N"/>
+				<input type="hidden" id="subMsgType" name="subMsgType" value="SMS"/>
+				<input type="hidden" id="subMsgTxtReplYn" name="subMsgTxtReplYn" value="N"/>
+				<input type="hidden" id="subMsgTxt" name="subMsgTxt" value=""/>
+				
+				<!-- 발신번호정보 -->
+				<input type="hidden" id="callFrom" name="callFrom" value=""/>
+				
+				<!-- 친구톡 발송 단가 정보 -->
+				<input type="hidden" id="kakaoFtPrice" name="kakaoFtPrice" value="<c:out value='${sendPrice.kakaoFtPrice}' />"/>
+				<input type="hidden" id="eachPrice" name="eachPrice" value="0"/>
+				<input type="hidden" id="totPrice" name="totalPrice" value="0"/>
+				
+				<!-- 친구톡 발송 json 파일 필요 유무 -->
+				<input type="hidden" id="bizJsonYn" name="bizJsonYn" value="N"/>
+				
+				<input type="hidden" id="yellowId" name="yellowId" value=""/>
+				
+				
+				<div class="send_general friend_talk_wrap kakao_wrap">
+					<div class="send_left">
+						<table class="tType1">
+							<colgroup>
+								<col style="width: 130px;">
+								<col style="width: auto;">
+							</colgroup>
+							<tbody>
+								<tr>
+									<th>채널ID</th>
+									<td>
+										<label for="selectAgentCode" class="채널ID 선택"></label>
+										<select class="select_gray_type" name="selectAgentCode" id="selectAgentCode" onchange="javascript:fnAgentCodeChg();">
+											<option value="">채널ID 선택</option>
+											<c:forEach var="kakaoProfileInfo" items="${resultProfileList}" varStatus="status">
+												<option value="${kakaoProfileInfo.senderKey}" <c:if test="${kakaoProfileInfo.senderKey eq resultTemplateVO.senderKey}">selected</c:if> ><c:out value='${kakaoProfileInfo.yellowId}'/></option>
+											</c:forEach>
+										</select>
+									</td>
+								</tr>
+								<tr>
+	                                <th>템플릿명</th>
+	                                <td>
+	                                    <input type="text" class="template_name" id="inputTemplateName" name="inputTemplateName" value="<c:out value='${resultTemplateVO.templateName}'/>" placeholder="템플릿명을 입력해주세요. (최대 50자)">
+	                                    <p class="template_name_cf">최대 50자, 템플릿 관리용</p>
+	                                </td>
+	                            </tr>
+								<tr>
+									<th>이미지 첨부</th>
+									<td>
+										<div class="img_sort_wrap">
+											<input type="radio" name="img_file_add" id="img_file_0" value="" <c:if test="${resultTemplateVO.imageType eq ''}">checked</c:if> > <label for="img_file_0">첨부안함</label>
+											<input type="radio" name="img_file_add" id="img_file_1" value="I" <c:if test="${resultTemplateVO.imageType eq 'I'}">checked</c:if> > <label for="img_file_1">이미지 첨부</label>
+											<input type="radio" name="img_file_add" id="img_file_2" value="W" <c:if test="${resultTemplateVO.imageType eq 'W'}">checked</c:if> > <label for="img_file_2">와이드 이미지 첨부</label>
+											<div class="img_add_info_wrap basic_img_add_wrap">
+												<p class="info_title_text"><span class="c_e40000">*</span> 이미지 첨부 안내</p>
+												<ul class="info_text">
+												<li>- 권장사이즈 : 720px * 720px</li>
+												<li>- 제한사이즈 : 가로 500px 미만, 가로:세로 비율이 2:1 미만 또는 3:4 초과시 업로드 불가</li>
+												<li>- 파일형식 : jpg, png (최대 500kb)</li>
+												<li>- 이미지 첨부시 메시지 내용은 최대 400자까지 입력할 수 있습니다.</li>
+												</ul>
+											</div>
+											<div class="img_add_info_wrap wide_img_add_wrap">
+												<p class="info_title_text"><span class="c_e40000">*</span> 와이드 이미지 첨부 안내</p>
+												<ul class="info_text">
+												<li>- 권장사이즈 : 800px * 600px</li>
+												<!-- <li>- 제한사이즈 : 가로 500px 미만, 가로:세로 비율이 2:1 미만 또는 3:4 초과시 업로드 불가</li> -->
+												<li>- 파일형식 : jpg, png (최대 2mb)</li>
+												<li>- 와이드 이미지 첨부시 메시지 내용은 최대 76자, 버튼 1개까지 입력할 수 있습니다.</li>
+												</ul>
+											</div>
+										</div>
+										<div class="img_file_add_wrap">
+											<ul class="img_file_info_wrap">
+												<li>
+													<p>이미지 제목</p>
+													<input type="text" id="imgTitle" name="imgTitle" value="<c:out value='${resultTemplateVO.imgTitle}'/>" class="img_url" maxLength="50">
+												</li>
+												<li>
+													<p>이미지 클릭시 이동할 URL</p>
+													<input type="text" id="imgLink" name="imgLink" value="<c:out value='${resultTemplateVO.imgLink}'/>" placeholder="http://" class="img_url" maxLength="1000">
+												</li>
+												<li>
+													<p class="file_name"  id="imgNm" name="imgNm">첨부파일 이미지</p>
+													<button type="button" class="btn_del btnImgDel" onclick="buttonTypeDel(this);">
+														<img src="/publish/images/btn_delete.png" id="imgDel" alt="이미지 삭제" onclick="fnImageDel();">
+													</button>
+												</li>
+											</ul>
+											<button type="button" class="btnType btnType8 btn_img_upload" title="이미지 불러오기" onclick="javascript:upImgClick(); return false;">이미지 불러오기</button>
+											<input type="file" id="imgFile" accept=".jpg, .jpeg, .png" onchange="imgResizeInfo(event); return false;" style="display:none"/>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th>광고포함 여부</th>
+									<td>
+										<input type="radio" class="inputAdFlag" name="ad_flag" id="ad_Y" value="Y" <c:if test="${resultTemplateVO.adFlag eq 'Y'}">checked</c:if> ><label for="ad_Y">광고성 정보 포함</label>
+										<%-- <input type="radio" class="inputAdFlag" name="ad_flag" id="ad_N" value="N" <c:if test="${resultTemplateVO.adFlag eq 'N'}">checked</c:if> ><label for="ad_N">포함 안함</label> --%>
+									</td>
+								</tr>
+								<tr>
+									<th>내용</th>
+									<td class="kakao_template_text">
+										<div class="put_left short">
+											<div class="put_text_wrap">
+												<div class="ad_txt">
+													<p><span id="adFlagFront">(광고)</span> <span id="yellowIdCon" >채널ID</span></p>
+												</div>
+												<label for="inputTemplateContent" class="label"></label>
+												<textarea id="inputTemplateContent" name="inputTemplateContent" class="put_text" placeholder="내용을 입력해주세요."><c:out value="${resultTemplateVO.templateContent}"/></textarea>
+												<div class="text_length">
+													<div>
+														<p class="adFlagAfter">수신거부 : 홈 > 채널차단</p>
+													</div>
+													<div>
+														<p><span class="fwMd nowChar">0 /</span><span class="c_002c9a fwMd totChar">1000</span>자</p>
+													</div>
+												</div>
+											</div>
+										</div>
+										<div class="put_right">
+											<div class="btn_popup_wrap">
+												<button type="button" class="btnType btnType7" onclick="miniPopup(this)">특수문자</button>
+													<div class="send_miniPop spc_character">
+														<div class="tab_character">
+															<a href="#none" class="on">특수문자</a>
+															<a href="#none">웃음</a>
+															<a href="#none">슬픔</a>
+															<a href="#none">분노</a>
+															<a href="#none">사랑</a>
+															<a href="#none">그외</a>
+														</div>
+														<!-- 특수문자 -->
+														<div class="cnt_character on">
+															<div class="box_character">
+															<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'D'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}"><c:out value="${symbolList.symbol}"/></a>
+																</c:if>
+															</c:forEach>
+															</div>
+														</div>
+														<!-- //특수문자 -->
+														
+														<!-- 웃음 -->
+														<div class="cnt_character emt_character">
+															<div class="box_character">
+																<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'S'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
+																</c:if>
+																</c:forEach>
+															</div>
+														</div>
+														<!-- //웃음 -->
+														
+														<!-- 슬픔 -->
+														<div class="cnt_character emt_character">
+															<div class="box_character">
+																<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'C'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
+																</c:if>
+																</c:forEach>
+															</div>
+														</div>
+														<!-- //슬픔 -->
+														
+														<!-- 분노 -->
+														<div class="cnt_character emt_character">
+															<div class="box_character">
+																<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'A'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
+																</c:if>
+																</c:forEach>
+															</div>
+														</div>
+														<!-- //분노 -->
+														
+														<!-- 사랑 -->
+														<div class="cnt_character emt_character">
+															<div class="box_character">
+																<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'L'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
+																</c:if>
+																</c:forEach>
+															</div>
+														</div>
+														<!-- //사랑 -->
+														
+														<!-- 그외 -->
+														<div class="cnt_character emt_character emt_etc ">
+															<div class="box_character">
+																<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'E'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
+																</c:if>
+																</c:forEach>
+															</div>
+														</div>
+														<!-- //그외 -->
+													<button type="button" class="btn_close" onclick="miniPopup(this)">닫기</button>
+												</div>
+											</div>
+											<div class="btn_popup_wrap convers_wrap">
+												<button type="button" class="btnType btnType7" onclick="miniPopup(this)">특정문구 일괄변환<i class="qmMark"></i></button>
+												<div class="send_miniPop convers">
+													<div>
+														<div class="convers_top">
+															<span>특정문구 일괄변환이란?</span>
+															<p>주소록, 엑셀에 입력된 내용을 이용해 수신자마다 다른 내용의 메시지를 발송하는 기능</p>
+														</div>
+														<div class="convers_middle">
+															<a href="javascript:void(0)" class="changeWord" value="\#{이름}"><c:out value="\#{이름}"/></a>
+														</div>
+														<div class="convers_bottom">
+															<a href="javascript:void(0)" class="changeWord" value="\#{1}"><c:out value="\#{1}"/></a>
+															<a href="javascript:void(0)" class="changeWord" value="\#{2}"><c:out value="\#{2}"/></a>
+															<a href="javascript:void(0)" class="changeWord" value="\#{3}"><c:out value="\#{3}"/></a>
+															<a href="javascript:void(0)" class="changeWord" value="\#{4}"><c:out value="\#{4}"/></a>
+														</div>
+													</div>
+													<button type="button" class="btn_close" onclick="miniPopup(this)">닫기</button>
+												</div>
+											</div>
+											<div class="btn_popup_wrap spc_wrap">
+												<button type="button" class="btnType btnType7" onclick="miniPopup(this)">이모티콘</button>
+												<div class="send_miniPop spc_character kakao_emoticon">
+													<%@include file="/WEB-INF/jsp/web/kakao/include/KakaoSentImoticonInfo.jsp" %>
+													<button type="button" class="btn_close" onclick="miniPopup(this)">닫기</button>
+												</div>
+											</div>
+											<div class="btn_popup_wrap template_call_wrap">
+												<c:choose>
+													<c:when test="${not empty loginVO.id}">
+														<button type="button" class="btnType btnType8" onclick="window.open('/web/mjon/kakao/template/selectKakaoFriendsTemplateListPopupAjax.do','_blank','width=930, height=780, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=yes')">템플릿 불러오기</button>
+													</c:when>
+													<c:otherwise>
+														<button type="button" class="btnType btnType8" onclick="javascript:fnEmptyId();">템플릿 불러오기</button>
+													</c:otherwise>
+												</c:choose>
+											</div>
+											<div class="send_btnWrap">
+												<c:choose>
+													<c:when test="${not empty loginVO.id}">
+														<button type="button" class="btnType btn_text_save" onclick="javascript:myTemplateSave();">내용 저장하기</button>
+													</c:when>
+													<c:otherwise>
+														<button type="button" class="btnType btn_text_save" onclick="javascript:fnEmptyId();">내용 저장하기</button>
+													</c:otherwise>
+												</c:choose>
+												
+												<button type="button" class="btnType btnType9" onclick="javascript:fnContentsReset();">초기화</button>
+											</div>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th>버튼</th>
+									<td class="template_button">
+										<select name="tmpBtnSelect" id="tmpBtnSelect" class="select_gray_type template_button_select">
+											<option value="button_type_0">버튼타입 선택</option>
+											<option value="button_type_1">배송조회</option>
+											<option value="button_type_2">웹링크</option>
+											<option value="button_type_3">앱링크</option>
+											<option value="button_type_5">메시지전달</option>
+										</select>
+										<button type="button" class="btnType btnType6" onclick="friendTemplateButtonAdd();">추가</button>
+										<p class="cf_text fwRg">
+											<span class="c_e40000 fwBold">*</span> 버튼 타입중 <span class="c_e40000">봇키워드, 메시지전달</span>은 <span class="c_222">카카오톡 채널 관리자센터(https://center-pf.kakao.com)</span>에서 설정을 직접 한 후 이용하셔야 동작합니다. (최대 5개까지 등록가능)
+										</p>
+										<div class="button_add_wrap">
+	                                    	<c:forEach var="buttonList" items="${resultTemplateVO.buttonVOList}" varStatus="status">
+	                                    	
+	                                    		<c:if test="${buttonList.linkType eq 'DS'}">
+	                                    			<!-- 배송조회 버튼  -->
+			                                    	<dl class="button_type_wrap type1">
+				                                    	<dt>배송조회</dt>
+				                                    	<dd class="button_type_input">
+				                                    		<input type="hidden" id="buttonLikeTypeDeliv" name="buttonVOList[${status.index}].linkType" value="DS"/>
+				                                    		<input type="text" id="btnNmDeliv" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+				                                    		<p class="cf_text">*이용가능 택배사 : KG로지스, 우체국택배,일양로지스, GTX로지스, FedEx, 경동택배, 합동택배, 롯데택배</p>
+				                                    	</dd>
+				                                    	<dd>
+				                                    		<button type="button" class="btn_del" onclick="buttonTypeDel(this);"><img src="/publish/images/btn_delete.png" alt=""></button>
+				                                    	</dd>
+			                                    	</dl>
+	                                    		</c:if>
+		                                    	
+		                                    	<c:if test="${buttonList.linkType eq 'WL'}">
+			                                    	<!-- 웹링크 버튼 -->
+			                                    	<dl class="button_type_wrap type2">
+			                                    		<dt>웹링크</dt>
+			                                    		<dd class="button_type_input">
+			                                    			<ul>
+			                                    				<li>
+			                                    					<input type="hidden" id="buttonLikeTypeWeb" name="buttonVOList[${status.index}].linkType" value="WL"/>
+			                                    					<input type="text" id="btnNmWeb" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+			                                    				</li>
+			                                    				<li>
+			                                    					<input type="text" id="buttonLinkMo" name="buttonVOList[${status.index}].linkMo" value="<c:out value='${buttonList.linkMo}'/>" placeholder="모바일 링크 입력">
+			                                    				</li>
+			                                    				<li>
+			                                    					<input type="text" id="buttonLinkPc" name="buttonVOList[${status.index}].linkPc" value="<c:out value='${buttonList.linkPc}'/>" placeholder="PC 링크 입력">
+			                                    				</li>
+			                                    			</ul>
+			                                    		</dd>
+			                                    		<dd>
+			                                    			<button type="button" class="btn_del" onclick="buttonTypeDel(this);"><img src="/publish/images/btn_delete.png" alt=""></button>
+			                                    		</dd>
+			                                    	</dl>
+		                                    	</c:if>
+		                                    	
+		                                    	<c:if test="${buttonList.linkType eq 'AL'}">
+			                                    	<!-- 앱링크 버튼 -->
+			                                    	<dl class="button_type_wrap type3">
+			                                    		<dt>앱링크</dt>
+			                                    		<dd class="button_type_input">
+			                                    			<ul>
+			                                    				<li>
+			                                    					<input type="hidden" id="buttonLikeTypeApp" name="buttonVOList[${status.index}].linkType" value="AL"/>
+			                                    					<input type="text" id="btnNmApp" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+			                                    				</li>
+			                                    				<li>
+			                                    					<input type="text" id="buttonLinkAnd" name="buttonVOList[${status.index}].linkAnd" value="<c:out value='${buttonList.linkAnd}'/>" placeholder="Android 링크 입력">
+			                                    				</li>
+			                                    				<li>
+			                                    					<input type="text" id="buttonLinkIos" name="buttonVOList[${status.index}].linkIos" value="<c:out value='${buttonList.linkIos}'/>" placeholder="IOS 링크 입력">
+			                                    				</li>
+			                                    			</ul>
+			                                    		</dd>
+			                                    		<dd>
+			                                    			<button type="button" class="btn_del" onclick="buttonTypeDel(this);"><img src="/publish/images/btn_delete.png" alt=""></button>
+			                                    		</dd>
+			                                    	</dl>
+		                                    	</c:if>
+		                                    	
+		                                    	<c:if test="${buttonList.linkType eq 'BK'}">
+			                                    	<!-- 봇키워드 -->
+			                                    	<dl class="button_type_wrap type4">
+			                                    		<dt>봇키워드</dt>
+		                                    			<dd class="button_type_input">
+		                                    				<input type="hidden" id="buttonLikeTypeBot" name="buttonVOList[${status.index}].linkType" value="BK"/>
+		                                    				<input type="text" id="btnNmBot" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+		                                    			</dd>
+		                                    			<dd><button type="button" class="btn_del" onclick="buttonTypeDel(this);"><img src="/publish/images/btn_delete.png" alt=""></button></dd>
+			                                    	</dl>
+		                                    	</c:if>
+		                                    	
+		                                    	<c:if test="${buttonList.linkType eq 'MD'}">
+			                                    	<!-- 메시지 전달 -->
+			                                    	<dl class="button_type_wrap type5">
+													   <dt>메시지전달</dt>
+													   <dd class="button_type_input">
+													      <input type="hidden" id="buttonLikeTypeMsg" name="buttonVOList[${status.index}].linkType" value="MD" />
+													      <input type="text" id="btnNmMsg" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+													   </dd>
+													   <dd>
+													      <button type="button" class="btn_del" onclick="buttonTypeDel(this);">
+													         <img src="/publish/images/btn_delete.png" alt="">
+													      </button>
+													   </dd>
+													</dl>
+												</c:if>	                                    	
+		                                    	
+		                                    	<c:if test="${buttonList.linkType eq 'BC'}">
+			                                    	<!-- 상담톡 전환 -->
+													<dl class="button_type_wrap type6">
+													   <dt>상담톡전환</dt>
+													   <dd class="button_type_input">
+													      <input type="hidden" id="buttonLikeTypeCons" name="buttonVOList[${status.index}].linkType" value="BC" />
+													      <input type="text" id="btnNmCons" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+													   </dd>
+													   <dd>
+													      <button type="button" class="btn_del" onclick="buttonTypeDel(this);">
+													         <img src="/publish/images/btn_delete.png" alt="">
+													      </button>
+													   </dd>
+													</dl>
+												</c:if>
+												
+												<c:if test="${buttonList.linkType eq 'BT'}">
+													<!-- 챗봇전환 -->
+													<dl class="button_type_wrap type7">
+													   <dt>챗봇전환</dt>
+													   <dd class="button_type_input">
+													      <input type="hidden" id="buttonLikeTypeBotChg" name="buttonVOList[${status.index}].linkType" value="BT" />
+													      <input type="text" id="btnNmBotChg" name="buttonVOList[${status.index}].name" value="" placeholder="버튼명 입력(최대 14자)">
+													   </dd>
+													   <dd>
+													      <button type="button" class="btn_del" onclick="buttonTypeDel(this);">
+													         <img src="/publish/images/btn_delete.png" alt="">
+													      </button>
+													   </dd>
+													</dl>
+												</c:if>
+											</c:forEach>
+	                                    </div>
+									</td>
+								</tr>
+								<tr>
+									<th>받는사람</th>
+									<td class="putText">
+										<div class="clearfix receipt_num">
+											<div class="receipt_num_top">
+												<label for="callTo" class="label">받는 번호입력</label>
+												<input type="text" placeholder="번호를 입력하세요" id="callTo" name="callTo" onfocus="this.placeholder=''" onblur="this.placeholder='번호를 입력하세요'" style="width:340px;">
+												<button type="button" class="btnType btnType6 addCallToF">번호추가</button>
+												<span><span class="vMiddle">*</span> 중복번호는 한번만 발송됩니다.</span>
+											</div>
+											<div class="receipt_num_midde">
+												<div class="listType list01 callList_box"  id="callList_box">
+													<div class="list_table list_head">
+														<div class="cb_wrap">
+															<label for="select_all" class="label"></label>
+															<input type="checkbox" id="select_all">
+														</div>
+														<div class="list_table_num">
+															<p>휴대폰</p>
+															<img src="/publish/images/sortUp.png">
+															<img src="/publish/images/sortDown.png">
+														</div>
+														<div class="list_table_name">
+															<p>이름</p>
+															<img src="/publish/images/sortUp.png">
+															<img src="/publish/images/sortDown.png">
+														</div>
+													</div>
+													<div class="list_body_wrap" id="wrap01_body">
+													</div>
+												</div>
+												<div class="put_right">
+													<div class="btn_popup_wrap spc_wrap">
+														<button type="button" data-tooltip="popup06" class="btnType btnType7 popupAddr">주소록 불러오기</button>
+													</div>
+													<div class="btn_popup_wrap">
+														<button type="button" data-tooltip="popup02" class="btnType btnType7">엑셀 불러오기</button>
+													</div>
+													<div class="btn_popup_wrap">
+														<button type="button" data-tooltip="popup03" class="btnType btnType7 tab1">최근 전송내역</button>
+													</div>
+													<div class="btn_popup_wrap">
+														<button type="button" data-tooltip="popup03" class="btnType btnType7 tab2">자주보내는 번호</button>
+													</div>
+													<div class="btn_popup_wrap check_validity_wrap">
+														<button type="button" class="btnType btnType7 check_validity">오류 검사<i class="qmMark error_qm"></i></button>
+														<div class="error_hover_cont send_hover_cont">
+															<p>휴대폰 번호 입력 시 해당 휴대폰 번호에 대한 형식이 어긋나거나 휴대폰 번호에 오류가 있는지 등을 검사하는 기능</p>
+															<span>(예시) 010-1234-0001(O) / 010-12345-0001(X)</span>
+														</div>
+													</div>
+												</div>
+											</div>
+											<div class="list_bottom clearfix">
+												<div class="remove_btnWrap">
+													<button type="button" class="btnType15 all_del"><i class="remove_img"></i>전체삭제</button>
+													<button type="button" class="btnType15 select_del"><i class="remove_img"></i>선택삭제</button>
+												</div>
+												<div class="list_bottom_right">
+													<p>총 <span class="c_e40000" id="rowTotCnt">0</span>건 / 중복 <span class="c_002c9a" id="rowDupCnt">0</span>건</p>
+<!-- 														<button type="button" class="address_reg2">주소록에 등록</button> -->
+												</div>
+											</div>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th colspan="2" class="billingAmount">
+										<div>
+											<div class="final_pay">
+												<div class="pay_info_list">
+													<p>발송금액 :</p>
+													<div class="info" id="repPriceTxt" style="display: none;">
+														단문 : <strong>20</strong>건<span>/</span>장문 :
+														<strong>150</strong>건<span>/</span>그림문자 :
+														<strong>30</strong>건
+													</div>
+												</div>
+												<p class="price"><span id="repPriceTxt"></span><span id="totalPriceTxt">0</span> 원<span></span></p>
+											</div>
+											<div class="pay_type clearfix">
+												<div>
+													<input type="radio" id="radio_bill_1" name="radio_bill" checked="checked">
+													<label for="radio_bill_1">보유잔액</label>
+													<label for="userMoney" class="label">보유잔액</label>
+													<fmt:formatNumber type="number" maxFractionDigits="3" value="${sendPrice.userMoney}" var="commaPrice" />
+													<input type="text" id="userMoney" name="userMoney" value="<c:out value='${commaPrice}'/>" readonly="">
+													<span class="won">원</span>
+													<button type="button" class="btnType btnType21" onclick="location.href='/web/member/pay/PayView.do'">충전</button>
+												</div>
+												<div></div>
+											</div>
+										</div>
+									</th>
+								</tr>
+								<tr>
+									<th colspan="2" class="replace_send_th">
+										<div class="title_th"><p>대체문자</p> 
+											<input type="checkbox" id="send_fail_check" name="send_fail_check" class="send_fail_check">
+											<label for="send_fail_check">친구톡 전송 실패 시 문자 전송</label>
+										</div>
+										<div class="replace_send_wrap">
+											<table class="tType1">
+												<colgroup>
+													<col style="width: 90px;">
+													<col style="width: auto;">
+												</colgroup>
+												<tbody>
+													<tr>
+														<th>발신번호</th>
+														<td>
+															<label for="callFromList" class="label"></label>
+															<select id="callFromList" name="callFromList" class="sel_number">
+																<c:choose>
+																	<c:when test="${not empty resultPhonList}">
+																		<c:forEach var="phonList" items="${resultPhonList}" varStatus="status">
+																			<option value="${phonList}">${phonList}</option>
+																		</c:forEach>
+																	</c:when>
+																	<c:otherwise>
+																		<option value="">등록된 발신 번호가 없습니다.</option>
+																	</c:otherwise>
+																</c:choose>
+															</select>
+															<button type="button" class="btnType btnType6" onclick="location.href='/web/user/sendNumberManage.do'">번호등록</button>
+														</td>
+													</tr>
+													<tr>
+														<th>내용</th>
+														<td class="putText">
+															<div class="clearfix">
+																<div class="put_left short">
+																	<!-- 업로드한 이미지의 썸네일 영역 -->
+																	<ul class="thumb_wrap liOnImg ui-sortable"></ul>
+																	<!-- //업로드한 이미지의 썸네일 영역 -->
+																	<label for="smsTxtArea" class="label"></label>
+																	<textarea id="smsTxtArea" name="smsTxtArea" class="put_text"></textarea>
+																	<div class="text_length">
+																		<div name="afterDeny">
+																			<p>
+																				<span class="fwMd" id="msgLeng">0 /</span>
+																				<span class="c_002c9a fwMd" id="limitLeng">90</span>byte
+																			</p>
+																			<span class="msg_com msg_short">단문</span>
+																		</div>
+																	</div>
+																</div>
+																<div class="put_right">
+																	<button type="button" class="btnType btnType9" id="failCheckInit">초기화</button>
+																	<button type="button" class="btnType btnType7" onclick="javascript:fn_errorChk(); return false;">오류검사<i class="qmMark"></i></button>
+																</div>
+															</div>
+														</td>
+													</tr>
+												</tbody>
+											</table>
+										</div>
+									</th>
+								</tr>
+							</tbody>
+						</table>
+					</div>
+					<div class="send_right">
+						<div class="phone" style="top: 201px;">
+							<div class="phoneIn">
+								<p class="prev_p">
+									<img src="/publish/images/content/kakao_prev_icon.png" alt="">
+									<span id="spnYellowid">@채널ID</span>
+								</p>
+								<!-- 텍스트 미리보기 -->
+								<div class="text_preview">
+									<p class="friend_talk_title">
+										<span class="adFlag">(광고)</span>
+										<span id="spnYellowidAt">채널ID</span>
+									</p>
+									<div class="allimtalk_content">
+										<div class="kakao_image"  style="display:none;">
+											<img src="" id="kakaoImg" alt="">
+										</div>
+										<p class="template_text">내용 미리보기</p>
+										<div class="btnViewArea">
+											<c:forEach var="buttonList" items="${resultTemplateVO.buttonVOList}" varStatus="status">
+	                                    		<button type="button" class="btn_kakao_type btnEmpty"  style="display:block;"><c:out value="${buttonList.name}"/></button>
+	                                    	</c:forEach>
+										</div>
+									</div>
+									<p class="kakao_block_text">수신거부 : 홈 > 채널차단</p>
+								</div>
+								<!-- //텍스트 미리보기 -->
+							</div>
+							<p class="addText">※ 단말기 설정에 따라 다르게 보일 수 있습니다<p>
+						</div>
+						<div class="phone_bottom">
+							<div class="send_rev">
+								<div class="send_content" style="padding-bottom: 0;">
+									<div class="rev_radio">
+										<ul>
+											<li>
+												<input type="radio" id="reserYnN" name="reserYn" value="N" checked="checked"><label for="reserYnN">즉시</label>
+											</li>
+											<li>
+												<input type="radio" id="reserYnY" name="reserYn" value="Y"><label for="reserYnY">예약</label>
+											</li>
+										</ul>
+									</div>
+									<div class="send_btn">
+									<%-- 친구톡 발송시간 체크 하기 - 20:50 ~ 익일 08:00 사이에는 발송 금지 --%>
+										<c:choose>
+											<c:when test="${sendStatus eq 'true'}">
+												<button type="button" class="btnType btnType11" onclick="javascript:fn_sendMsgData(); return false;">발송하기</button>
+											</c:when>
+											<c:otherwise>
+												<button type="button" class="btnType btnType11" onclick="javascript:fn_noTimeSend(); return false;">발송하기</button>
+											</c:otherwise>
+										</c:choose>
+										<button type="button" class="btnType btnType10"  onclick="javascript:goToKakaoTestPopUp(); return false;">테스트발송</button>
+									</div>
+								</div>
+								<div class="rev_selected" >
+									<div class="rev_top">
+										<span>날짜 :</span>
+										<div class="calendar_wrap">
+											<input type="text" class="startDate2 inp resDate calendar picker__input picker__input--active" title="검색 시작일" id="startDate2" name="startDate2" value="" data-datecontrol="true" readonly="" aria-haspopup="true" aria-expanded="true" aria-readonly="false" aria-owns="startDate2_root">
+										</div>
+										<div class="selBox">
+											<label for="msgResHour" class="label">시 선택</label>
+											<select class="selType1" id="msgResHour" name="msgResHour">
+												<c:forEach  var="hour"  begin="8" end="20" step="1" varStatus="status">
+													<c:choose>
+														<c:when test="${hour < 10}">
+															<option value="0${hour}">0${hour}시</option>
+														</c:when>
+														<c:otherwise>
+															<option value="${hour}">${hour}시</option>
+														</c:otherwise>
+													</c:choose>
+												</c:forEach>
+											</select>
+											<label for="msgResMin" class="label">분 선택</label>
+											<select class="selType1" id="msgResMin" name="msgResMin" onChange="fnSelectMinChk();">
+												<c:forEach var="min" begin="0" end="59" step="1">
+													<c:choose>
+														<c:when test="${min < 10}">
+															<option value="0${min}">0${min}분</option>
+														</c:when>
+														<c:otherwise>
+															<option value="${min}">${min}분</option>
+														</c:otherwise>
+													</c:choose>
+												</c:forEach>
+											</select>
+										</div>
+									</div>
+									<%-- <div class="rev_bottom">
+										<input type="checkbox" id="inputDivideChk" name="inputDivideChk">
+										<label for="inputDivideChk">분할전송</label>
+										<input type="text" class="dividType1" id="frmDivideCnt" name="frmDivideCnt" value="20" onkeypress='return checkNumber(event)' maxlength="4"/>
+										<label for="divideCnt">건</label>
+										<select class="selType1" id="divideTime" name="divideTime">
+					 						<option value="5">05분</option>
+					 						<option value="10">10분</option>
+					 						<option value="15">15분</option>
+					 						<option value="20">20분</option>
+					 						<option value="30">30분</option>
+					 					</select>
+					 					<label for="divideTime">간격</label>
+									</div> --%>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</form>
+		</div>
+	</div>
+</div>
+
+<!-- 문자발송 성공 레이어팝업 -->
+<div class="tooltip-wrap">
+	<div class="popup-com pop_msg_success">
+		<div class="popup_heading">
+			<p>친구톡 전송 결과</p>
+			<button type="button" class="tooltip-close" onclick="msgSuccessClose(this);"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
+		</div>
+		<div class="layer_in">
+			<div class="msg_text">발송 성공 : <strong>1</strong> 건,수신거부 : <span>0</span>건의<br>문자가 발송 되었습니다.</div>
+		</div>
+		<div class="popup_btn">
+			<button type="button" onclick="msgResultLink(); return false;">친구톡 발송결과 바로가기</button>
+			<button type="button" class="tooltip-close" onclick="msgSuccessClose(this);">확인</button>
+		</div>
+	</div>
+</div>
+
+<!-- 주소록 불러오기 -->
+<div class="tooltip-wrap">
+	<div class="popup-com import_layer popup06" tabindex="0" data-tooltip-con="popup06" data-focus="popup06" data-focus-prev="popup06-close" style="width: 1000px">
+		<div class="popup_heading">
+			<p><span>주소록 불러오기</p>
+			<button type="button" onClick="javascript:addrClose(); return false;">
+			<img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
+		</div>
+		<div class="layer_in">
+			<div class="titBox titBox_pad">
+				<p>- 주소록 수정 및 변경은 <span>[주소록 관리]</span>에서만 가능합니다.</p>
+				<button type="button" class="adr_admin" onClick="location.href='/web/mjon/addr/selectAddrList.do'">주소록 관리</button>
+			</div>
+			<div class="adr_wrap">
+				<form id="searchAddrGrpForm" name="searchAddrGrpForm" method="post" style="display: flex; justify-content: space-between;">
+					<input type="hidden" id="searchAddrGrpId" name="searchAddrGrpId" value=""/>
+					<input type="hidden" id="type" name="type" value="all"/>
+					<input type="hidden" id="searchKeyword" name="searchKeyword" value=""/>
+					<input type="hidden" name="searchCondition" id="searchCondition" value="0" />
+					<div class="adr_pop_left">
+						<div class="adr_left_search">
+							<label for="searchGrpKeyword" class="label">그룹명 검색</label>
+							<input type="text" name="searchGrpKeyword" id="searchGrpKeyword"  placeholder="그룹명 검색" onfocus="this.placeholder=''" onblur="this.placeholder='그룹명 검색'" class="inputLight">
+							<button type="button" onClick="javascrit:fnAddrGrpSearch(); return false;"><img src="/publish/images/popup/search.png" alt="검색"></button>
+						</div>
+						<div class="adr_pop_box">
+							<div id="addrGroupLoad">
+							</div>
+						</div>
+						<!-- <div class="popup_btn">
+							<button type="button" class="btnType" onClick="javascript:fnSelectAddrGrpList(); return false;">선택 그룹 추가</button>
+						</div> -->
+					</div>
+					<div class="adr_pop_right">
+						<div class="clearfix">
+							<div class="btnWrap_last">
+								<label for="searchAddrCondition" class="label">카테고리 선택</label>
+								<select id="searchAddrCondition" name="searchAddrCondition" class="selType2">
+									<option value='0'>전체</option>
+									<option value='1'>그룹명</option>
+									<option value='2'>이름</option>
+									<option value='3'>핸드폰번호</option>
+								</select>
+								<label for="searchAddrKeyword" class="label">검색어 입력</label>
+								<input type="text" id="searchAddrKeyword" name="searchAddrKeyword" placeholder="검색어를 입력하세요"  onfocus="this.placeholder=''" onblur="this.placeholder='검색어를 입력하세요'" >
+								<button type="button" class="btnType btnType17"  onClick="javascrit:fnAddrSearch(); return false;">검색</button>
+							</div>
+							<!-- table -->
+							<div class="adr_excel adr_pop_list2 callAddr_box">
+							</div>
+							<!--// table -->
+						</div>
+						<div class="popup_btn_wrap2">
+							<button type="button" onClick="javascript:addrToList(); return false;">추가</button>
+							<button type="button" onClick="javascript:addrClose(); return false;">닫기</button>
+						</div>
+						<%-- 주소록 레이어 팝업 닫기 실행 코드 --%>
+						<input type="hidden" name="btnAddrClose" id="btnAddrClose" class="tooltip-close closeAddr" data-focus="popup06-close" />         
+					</div>
+				</form>
+			</div>
+		</div>
+	</div>
+</div>
+<!--// 주소록 불러오기 -->
+
+<!-- 엑셀 불러오기 -->
+<form id="excelToolTipForm" name="excelToolTipForm" method="post">
+	<div class="tooltip-wrap">
+		<div class="popup-com import_layer popup02" tabindex="0" data-tooltip-con="popup02" data-focus="popup02" data-focus-prev="popup02-close">
+			<div class="popup_heading">
+				<p><span>엑셀</span> 불러오기</p>
+				<button type="button" class="tooltip-close" data-focus="popup02-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
+			</div>
+			<div class="layer_in">
+				<!-- 엑셀파일 불러오기 -->
+				<div class="hascont">
+					<div class="titBox">
+						<p>- 최대 2만 건까지 등록할 수 있습니다.</p>
+						<p>- [엑셀 불러오기]시 문서의 A, B열을 불러옵니다.(지원하는 파일 형식 : xls, xlsx)</p>
+						<p>- 휴대폰 항목은 숫자, 하이픈(-)만 인식하며, 번호 앞에 0이 생략되어도 정상 등록됩니다.
+						</p>
+						<!-- <button type="button" class="excel_btn" onclick="location.href='/cmm/fms/FileDown.do?atchFileId=FILE_000000000011651&fileSn=1'"><i></i>샘플파일 다운로드</button> -->
+						<button type="button" class="excel_btn" onclick="location.href='/download/msg/엑셀주소록_등록양식.xlsx'"><i class="downroad"></i>샘플파일 다운로드</button>
+					</div>
+					<div class="attachedFile">
+						<label for="excelNm" class="attachedFile_label">첨부파일</label>
+						<input type="text" id="excelNm" value="" readonly>
+						<input type="file" id="excelFile" accept=".xls, .xlsx" onchange="excelExport(event); return false;" style="display:none"/>
+						<button type="button" class="btnType btnType6 c1">찾아보기</button>
+<!-- 						<p><span class="vMiddle">*</span> 첨부된 파일은 <span class="c_e40000">[추가]버튼을 클릭</span>하셔야 받는 사람에 등록됩니다.</p> -->
+						<p><span class="vMiddle">*</span> 첨부된 파일은 <span class="c_e40000">[추가]버튼을 클릭</span>하셔야 받는 사람에 등록됩니다.</p>
+					</div>
+				</div><!--// 엑셀파일 불러오기 -->
+				<div class="popup_btn_wrap2">
+					<button type="button" class="tooltip-close" data-focus="popup02-close"  data-focus-next="popup02" id="excelAdd">추가</button>
+					<button type="button" class="tooltip-close" data-focus="popup02-close"  data-focus-next="popup02">닫기</button>                      
+				</div>
+			</div>
+		</div>
+	</div><!--// 엑셀 불러오기 -->
+</form>
+
+<form id="templateForm" name="templateForm" method="post">
+	<input type="hidden" id="friendId" name="friendId" value="<c:out value='${resultTemplateVO.friendId}'/>"/>
+</form>(No newline at end of file)
Add a comment
List