이호영 이호영 2024-11-08
문자발송 기능개선중
@9f4644f3b1f789b7652c90597edf6f655540ea9d
 
src/main/java/itn/com/cmm/MjonMsgTabulVO.java (added)
+++ src/main/java/itn/com/cmm/MjonMsgTabulVO.java
@@ -0,0 +1,20 @@
+package itn.com.cmm;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+public class MjonMsgTabulVO{
+	
+	private static final long serialVersionUID = 1L;
+	
+	private String 	name;
+	private String  phone;
+	private String  rep1;
+	private String  rep2;
+	private String  rep3;
+	private String  rep4;
+}
src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
--- src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
+++ src/main/java/itn/let/mjo/msg/service/MjonMsgVO.java
@@ -1,9 +1,18 @@
 package itn.let.mjo.msg.service;
 
+import java.util.ArrayList;
 import java.util.List;
 
-import itn.com.cmm.ComDefaultVO;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 
+import itn.com.cmm.ComDefaultVO;
+import itn.com.cmm.MjonMsgTabulVO;
+import lombok.Getter;
+import lombok.Setter;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+@Getter
+@Setter
 public class MjonMsgVO extends ComDefaultVO{
 	
 	private static final long serialVersionUID = 1L;
@@ -68,6 +77,7 @@
 	private String 	msgGroupId;	// 전송그룹ID (대량문자의 경우 하나의 그룹으로 세팅)
 	private String 	msgGroupCnt;	// 전송그룹 카운트
 	private String[]  imgFilePath;  // 그림 이미지 경로
+	private String imgFilePathAdvc;  // 그림 이미지 경로
 	private String  neoType;		// 아이엠오 장문, 그림 타입 지정
 	private int   msgCnt;		// 아이엠오 장문, 그림 타입 지정
 	private String 	eachPrice ;	// 전송문자 개별가격
@@ -84,7 +94,9 @@
 	private String  ntceBgnde;		// 검색일(현시점 범위 검색은 아님) : 04-21
 	private String  ntceEndde;		// 검색일(현시점 범위 검색은 아님) : 04-21
 	private String[] imgFileId;		//이미지 atchId 배열
+	private String imgFileIdAdvc;		//이미지 atchId 배열
 	private String[] templateYn;	//템플릿 이미지 사용 여부
+	private String templateYnAdvc;	//템플릿 이미지 사용 여부
 	
 	private String divideChk;		//분할문자 사용 여부
 	private String divideCnt;		//분할문자 건수 
@@ -212,273 +224,15 @@
 	private String cancelResultYn = "";	//야간스미싱 알림에 따른 관리자 결과(회원이용정지 또는 문자발송 취소) 처리 여부 N:미처리, Y:처리완료
 	
 	private String admSmsImgAuto = "N"; //관리자 SMS 문자내용 자동 이미치 처리 유무
-	
-	public String getSearchDelayMsgYn() {
-		return searchDelayMsgYn;
-	}
-	public void setSearchDelayMsgYn(String searchDelayMsgYn) {
-		this.searchDelayMsgYn = searchDelayMsgYn;
-	}
-	public int getSmsGroupSCntSum() {
-		return smsGroupSCntSum;
-	}
-	public void setSmsGroupSCntSum(int smsGroupSCntSum) {
-		this.smsGroupSCntSum = smsGroupSCntSum;
-	}
-	public int getSmsTotSPriceSum() {
-		return smsTotSPriceSum;
-	}
-	public void setSmsTotSPriceSum(int smsTotSPriceSum) {
-		this.smsTotSPriceSum = smsTotSPriceSum;
-	}
-	public int getSmsGroupFWCntSum() {
-		return smsGroupFWCntSum;
-	}
-	public void setSmsGroupFWCntSum(int smsGroupFWCntSum) {
-		this.smsGroupFWCntSum = smsGroupFWCntSum;
-	}
-	public int getSmsTotFWPriceSum() {
-		return smsTotFWPriceSum;
-	}
-	public void setSmsTotFWPriceSum(int smsTotFWPriceSum) {
-		this.smsTotFWPriceSum = smsTotFWPriceSum;
-	}
-	public int getLmsGroupSCntSum() {
-		return lmsGroupSCntSum;
-	}
-	public void setLmsGroupSCntSum(int lmsGroupSCntSum) {
-		this.lmsGroupSCntSum = lmsGroupSCntSum;
-	}
-	public int getLmsTotSPriceSum() {
-		return lmsTotSPriceSum;
-	}
-	public void setLmsTotSPriceSum(int lmsTotSPriceSum) {
-		this.lmsTotSPriceSum = lmsTotSPriceSum;
-	}
-	public int getLmsGroupFWCntSum() {
-		return lmsGroupFWCntSum;
-	}
-	public void setLmsGroupFWCntSum(int lmsGroupFWCntSum) {
-		this.lmsGroupFWCntSum = lmsGroupFWCntSum;
-	}
-	public int getLmsTotFWPriceSum() {
-		return lmsTotFWPriceSum;
-	}
-	public void setLmsTotFWPriceSum(int lmsTotFWPriceSum) {
-		this.lmsTotFWPriceSum = lmsTotFWPriceSum;
-	}
-	public int getMmsGroupSCntSum() {
-		return mmsGroupSCntSum;
-	}
-	public void setMmsGroupSCntSum(int mmsGroupSCntSum) {
-		this.mmsGroupSCntSum = mmsGroupSCntSum;
-	}
-	public int getMmsTotSPriceSum() {
-		return mmsTotSPriceSum;
-	}
-	public void setMmsTotSPriceSum(int mmsTotSPriceSum) {
-		this.mmsTotSPriceSum = mmsTotSPriceSum;
-	}
-	public int getMmsGroupFWCntSum() {
-		return mmsGroupFWCntSum;
-	}
-	public void setMmsGroupFWCntSum(int mmsGroupFWCntSum) {
-		this.mmsGroupFWCntSum = mmsGroupFWCntSum;
-	}
-	public int getMmsTotFWPriceSum() {
-		return mmsTotFWPriceSum;
-	}
-	public void setMmsTotFWPriceSum(int mmsTotFWPriceSum) {
-		this.mmsTotFWPriceSum = mmsTotFWPriceSum;
-	}
-	public int getRateSuccessCount() {
-		return rateSuccessCount;
-	}
-	public void setRateSuccessCount(int rateSuccessCount) {
-		this.rateSuccessCount = rateSuccessCount;
-	}
-	public int getRateApiSuccessCount() {
-		return rateApiSuccessCount;
-	}
-	public void setRateApiSuccessCount(int rateApiSuccessCount) {
-		this.rateApiSuccessCount = rateApiSuccessCount;
-	}
-	public int getTotalSendCount() {
-		return totalSendCount;
-	}
-	public void setTotalSendCount(int totalSendCount) {
-		this.totalSendCount = totalSendCount;
-	}
-	public int getTotalSuccessCount() {
-		return totalSuccessCount;
-	}
-	public void setTotalSuccessCount(int totalSuccessCount) {
-		this.totalSuccessCount = totalSuccessCount;
-	}
-	public int getRateTotalSuccessCount() {
-		return rateTotalSuccessCount;
-	}
-	public void setRateTotalSuccessCount(int rateTotalSuccessCount) {
-		this.rateTotalSuccessCount = rateTotalSuccessCount;
-	}
-	public int getaSuccessCount() {
-		return aSuccessCount;
-	}
-	public void setaSuccessCount(int aSuccessCount) {
-		this.aSuccessCount = aSuccessCount;
-	}
-	public int getaSendCount() {
-		return aSendCount;
-	}
-	public void setaSendCount(int aSendCount) {
-		this.aSendCount = aSendCount;
-	}
-	public String getSendKind() {
-		return sendKind;
-	}
-	public void setSendKind(String sendKind) {
-		this.sendKind = sendKind;
-	}
-	public String getBlineCode() {
-		return blineCode;
-	}
-	public void setBlineCode(String blineCode) {
-		this.blineCode = blineCode;
-	}
-	public String getReqFullDate() {
-		return reqFullDate;
-	}
-	public void setReqFullDate(String reqFullDate) {
-		this.reqFullDate = reqFullDate;
-	}
-	public String getSearchMsgResultCode() {
-		return searchMsgResultCode;
-	}
-	public void setSearchMsgResultCode(String searchMsgResultCode) {
-		this.searchMsgResultCode = searchMsgResultCode;
-	}
-	public String getSearchExceptSpamYn() {
-		return searchExceptSpamYn;
-	}
-	public void setSearchExceptSpamYn(String searchExceptSpamYn) {
-		this.searchExceptSpamYn = searchExceptSpamYn;
-	}	
-	public String getStatDate() {
-		return statDate;
-	}
-	public void setStatDate(String statDate) {
-		this.statDate = statDate;
-	}
-	public String getKakaoSubMagOrgnlTxt() {
-		return kakaoSubMagOrgnlTxt;
-	}
-	public void setKakaoSubMagOrgnlTxt(String kakaoSubMagOrgnlTxt) {
-		this.kakaoSubMagOrgnlTxt = kakaoSubMagOrgnlTxt;
-	}
-	public String getVisitCnt() {
-		return visitCnt;
-	}
-	public void setVisitCnt(String visitCnt) {
-		this.visitCnt = visitCnt;
-	}
-	public String getMemCnt() {
-		return memCnt;
-	}
-	public void setMemCnt(String memCnt) {
-		this.memCnt = memCnt;
-	}
-	public String getConversRate() {
-		return conversRate;
-	}
-	public void setConversRate(String conversRate) {
-		this.conversRate = conversRate;
-	}
+
 	private String visitCnt;	// 방문수
 	private String memCnt;		// 회원수
 	private String conversRate;	// 방문자수 대비 회원전환률
 	
-	public String getMsgDiv() {
-		return msgDiv;
-	}
-	public void setMsgDiv(String msgDiv) {
-		this.msgDiv = msgDiv;
-	}
-	public Float getAgentPrice() {
-		return agentPrice;
-	}
-	public void setAgentPrice(Float agentPrice) {
-		this.agentPrice = agentPrice;
-	}
+	
+	
 	private String registPnttm;	//통계등록일시
 	
-	public String getNowDate() {
-		return nowDate;
-	}
-	public void setNowDate(String nowDate) {
-		this.nowDate = nowDate;
-	}
-	public String getTodayYn() {
-		return todayYn;
-	}
-	public void setTodayYn(String todayYn) {
-		this.todayYn = todayYn;
-	}
-	public String getReserveType() {
-		return reserveType;
-	}
-	public void setReserveType(String reserveType) {
-		this.reserveType = reserveType;
-	}
-	public String getAtchFiles() {
-		return atchFiles;
-	}
-	public void setAtchFiles(String atchFiles) {
-		this.atchFiles = atchFiles;
-	}
-	public String getApprovalPnttm() {
-		return approvalPnttm;
-	}
-	public void setApprovalPnttm(String approvalPnttm) {
-		this.approvalPnttm = approvalPnttm;
-	}
-	public String getPayCnt() {
-		return payCnt;
-	}
-	public void setPayCnt(String payCnt) {
-		this.payCnt = payCnt;
-	}
-	public String getPayPct() {
-		return payPct;
-	}
-	public void setPayPct(String payPct) {
-		this.payPct = payPct;
-	}
-	public String getAdminSmsNoticeYn() {
-		return adminSmsNoticeYn;
-	}
-	public void setAdminSmsNoticeYn(String adminSmsNoticeYn) {
-		this.adminSmsNoticeYn = adminSmsNoticeYn;
-	}
-	
-	public String getSearchAdminSmsNoticeYn() {
-		return searchAdminSmsNoticeYn;
-	}
-	public void setSearchAdminSmsNoticeYn(String searchAdminSmsNoticeYn) {
-		this.searchAdminSmsNoticeYn = searchAdminSmsNoticeYn;
-	}
-	
-	public String getMaxRegDate() {
-		return maxRegDate;
-	}
-	public void setMaxRegDate(String maxRegDate) {
-		this.maxRegDate = maxRegDate;
-	}
-	public String getMinRegDate() {
-		return minRegDate;
-	}
-	public void setMinRegDate(String minRegDate) {
-		this.minRegDate = minRegDate;
-	}
 
 
 	private String resultCode;	//문자 결과 코드 정보
@@ -541,1132 +295,16 @@
 	private String bizLogCallStatusTxt;	//다우기술 biz_log 테이블의 발송결과 내용 텍스트.
 	private String bizLogStatus;		//다우기술 biz_log 테이블의 전송상태값 
 
-
-    private String  accessKey; // 'API Key',
-	
-	public String getUserCallbackYn() {
-		return userCallbackYn;
-	}
-	public void setUserCallbackYn(String userCallbackYn) {
-		this.userCallbackYn = userCallbackYn;
-	}
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
-	public String getCallbackYn() {
-		return callbackYn;
-	}
-	public void setCallbackYn(String callbackYn) {
-		this.callbackYn = callbackYn;
-	}
-
-	public int getCallRejectionCount() {
-		return callRejectionCount;
-	}
-	public void setCallRejectionCount(int callRejectionCount) {
-		this.callRejectionCount = callRejectionCount;
-	}
-	public int getSuccessCount() {
-		return successCount;
-	}
-	public void setSuccessCount(int successCount) {
-		this.successCount = successCount;
-	}
-
+	private String  accessKey; // 'API Key',
 
 	private int regCount;
-	public int getRegCount() {
-		return regCount;
-	}
-	public void setRegCount(int regCount) {
-		this.regCount = regCount;
-	}
-	public int getRegComCount() {
-		return regComCount;
-	}
-	public void setRegComCount(int regComCount) {
-		this.regComCount = regComCount;
-	}
-
-
+	
 	private int regComCount;
 	
-	public String getAddrGrpId() {
-		return addrGrpId;
-	}
-	public void setAddrGrpId(String addrGrpId) {
-		this.addrGrpId = addrGrpId;
-	}
-	public String getAddrGrpNm() {
-		return addrGrpNm;
-	}
-	public void setAddrGrpNm(String addrGrpNm) {
-		this.addrGrpNm = addrGrpNm;
-	}
-
-	
 	private int orderByCode;		// 문자타입 정렬번호
+	
 	private String detailType;
-	
-	public int getOrderByCode() {
-		return orderByCode;
-	}
-	public void setOrderByCode(int orderByCode) {
-		this.orderByCode = orderByCode;
-	}
-	public String getRegDate() {
-		return regDate;
-	}
-	public void setRegDate(String regDate) {
-		this.regDate = regDate;
-	}
-	public String getMsgId() {
-		return msgId;
-	}
-	public void setMsgId(String msgId) {
-		this.msgId = msgId;
-	}
-	public String getUserId() {
-		return userId;
-	}
-	public void setUserId(String userId) {
-		this.userId = userId;
-	}
-	public String getMberId() {
-		return mberId;
-	}
-	public void setMberId(String mberId) {
-		this.mberId = mberId;
-	}
-	public String getAgentFlag() {
-		return agentFlag;
-	}
-	public void setAgentFlag(String agentFlag) {
-		this.agentFlag = agentFlag;
-	}
-	public String getUserData() {
-		return userData;
-	}
-	public void setUserData(String userData) {
-		this.userData = userData;
-	}
-	public String getMsgSeq() {
-		return msgSeq;
-	}
-	public void setMsgSeq(String msgSeq) {
-		this.msgSeq = msgSeq;
-	}
-	public String getCurState() {
-		return curState;
-	}
-	public void setCurState(String curState) {
-		this.curState = curState;
-	}
-	public String getSentDate() {
-		return sentDate;
-	}
-	public void setSentDate(String sentDate) {
-		this.sentDate = sentDate;
-	}
-	public String getRsltDate() {
-		return rsltDate;
-	}
-	public void setRsltDate(String rsltDate) {
-		this.rsltDate = rsltDate;
-	}
-	public String getReportDate() {
-		return reportDate;
-	}
-	public void setReportDate(String reportDate) {
-		this.reportDate = reportDate;
-	}
-	public String getReqDate() {
-		return reqDate;
-	}
-	public void setReqDate(String reqDate) {
-		this.reqDate = reqDate;
-	}
-	public String getRsltCode() {
-		return rsltCode;
-	}
-	public void setRsltCode(String rsltCode) {
-		this.rsltCode = rsltCode;
-	}
-	public String getRsltCode2() {
-		return rsltCode2;
-	}
-	public void setRsltCode2(String rsltCode2) {
-		this.rsltCode2 = rsltCode2;
-	}
-	public String getRsltNet() {
-		return rsltNet;
-	}
-	public void setRsltNet(String rsltNet) {
-		this.rsltNet = rsltNet;
-	}
-	public String getCallTo() {
-		return callTo;
-	}
-	public void setCallTo(String callTo) {
-		this.callTo = callTo;
-	}
-	public String getCallFrom() {
-		return callFrom;
-	}
-	public void setCallFrom(String callFrom) {
-		this.callFrom = callFrom;
-	}
-	public String getSmsTxt() {
-		return smsTxt;
-	}
-	public void setSmsTxt(String smsTxt) {
-		this.smsTxt = smsTxt;
-	}
-	public String getSmsTxtArea() {
-		return smsTxtArea;
-	}
-	public void setSmsTxtArea(String smsTxtArea) {
-		this.smsTxtArea = smsTxtArea;
-	}
-	public String getMsgType() {
-		return msgType;
-	}
-	public void setMsgType(String msgType) {
-		this.msgType = msgType;
-	}
-	public String getMsgKind() {
-		return msgKind;
-	}
-	public void setMsgKind(String msgKind) {
-		this.msgKind = msgKind;
-	}
-	public String getMsgPayCode() {
-		return msgPayCode;
-	}
-	public void setMsgPayCode(String msgPayCode) {
-		this.msgPayCode = msgPayCode;
-	}
-	public String getContSeq() {
-		return contSeq;
-	}
-	public void setContSeq(String contSeq) {
-		this.contSeq = contSeq;
-	}
-	public String getMsgTypeResend() {
-		return msgTypeResend;
-	}
-	public void setMsgTypeResend(String msgTypeResend) {
-		this.msgTypeResend = msgTypeResend;
-	}
-	public String getCenterSeqResend() {
-		return centerSeqResend;
-	}
-	public void setCenterSeqResend(String centerSeqResend) {
-		this.centerSeqResend = centerSeqResend;
-	}
-	public String getMsgNoticetalkSenderKey() {
-		return msgNoticetalkSenderKey;
-	}
-	public void setMsgNoticetalkSenderKey(String msgNoticetalkSenderKey) {
-		this.msgNoticetalkSenderKey = msgNoticetalkSenderKey;
-	}
-	public String getMsgNoticetalkTmpKey() {
-		return msgNoticetalkTmpKey;
-	}
-	public void setMsgNoticetalkTmpKey(String msgNoticetalkTmpKey) {
-		this.msgNoticetalkTmpKey = msgNoticetalkTmpKey;
-	}
-	public String getMsgResendCount() {
-		return msgResendCount;
-	}
-	public void setMsgResendCount(String msgResendCount) {
-		this.msgResendCount = msgResendCount;
-	}
-	public String getMsgResenddate() {
-		return msgResenddate;
-	}
-	public void setMsgResenddate(String msgResenddate) {
-		this.msgResenddate = msgResenddate;
-	}
-	public String getSentDatePre() {
-		return sentDatePre;
-	}
-	public void setSentDatePre(String sentDatePre) {
-		this.sentDatePre = sentDatePre;
-	}
-	public String getRsltDatePre() {
-		return rsltDatePre;
-	}
-	public void setRsltDatePre(String rsltDatePre) {
-		this.rsltDatePre = rsltDatePre;
-	}
-	public String getReportDatePre() {
-		return reportDatePre;
-	}
-	public void setReportDatePre(String reportDatePre) {
-		this.reportDatePre = reportDatePre;
-	}
-	public String getRsltCodePre() {
-		return rsltCodePre;
-	}
-	public void setRsltCodePre(String rsltCodePre) {
-		this.rsltCodePre = rsltCodePre;
-	}
-	public String getRsltCode2Pre() {
-		return rsltCode2Pre;
-	}
-	public void setRsltCode2Pre(String rsltCode2Pre) {
-		this.rsltCode2Pre = rsltCode2Pre;
-	}
-	public String getRsltNetPre() {
-		return rsltNetPre;
-	}
-	public void setRsltNetPre(String rsltNetPre) {
-		this.rsltNetPre = rsltNetPre;
-	}
-	public String getConectMthd() {
-		return conectMthd;
-	}
-	public void setConectMthd(String conectMthd) {
-		this.conectMthd = conectMthd;
-	}
 
-	public String getAgentCode() {
-		return agentCode;
-	}
-	public void setAgentCode(String agentCode) {
-		this.agentCode = agentCode;
-	}
-	public String getConectMthdTxt() {
-		return conectMthdTxt;
-	}
-	public void setConectMthdTxt(String conectMthdTxt) {
-		this.conectMthdTxt = conectMthdTxt;
-	}
-	public String getAgentCodeTxt() {
-		return agentCodeTxt;
-	}
-	public void setAgentCodeTxt(String agentCodeTxt) {
-		this.agentCodeTxt = agentCodeTxt;
-	}
-	public String getCurStateTxt() {
-		return curStateTxt;
-	}
-	public void setCurStateTxt(String curStateTxt) {
-		this.curStateTxt = curStateTxt;
-	}
-	public String getMsgTypeTxt() {
-		return msgTypeTxt;
-	}
-	public void setMsgTypeTxt(String msgTypeTxt) {
-		this.msgTypeTxt = msgTypeTxt;
-	}
-	public String getSentDateTxt() {
-		return sentDateTxt;
-	}
-	public void setSentDateTxt(String sentDateTxt) {
-		this.sentDateTxt = sentDateTxt;
-	}
-	public String getSearchCondition2() {
-		return searchCondition2;
-	}
-	public void setSearchCondition2(String searchCondition2) {
-		this.searchCondition2 = searchCondition2;
-	}
-	public String getDelFlag() {
-		return delFlag;
-	}
-	public void setDelFlag(String delFlag) {
-		this.delFlag = delFlag;
-	}
-	public String getDelFlagTxt() {
-		return delFlagTxt;
-	}
-	public void setDelFlagTxt(String delFlagTxt) {
-		this.delFlagTxt = delFlagTxt;
-	}
-	public String getSearchCondition3() {
-		return searchCondition3;
-	}
-	public void setSearchCondition3(String searchCondition3) {
-		this.searchCondition3 = searchCondition3;
-	}
-	public String getSearchCondition4() {
-		return searchCondition4;
-	}
-	public void setSearchCondition4(String searchCondition4) {
-		this.searchCondition4 = searchCondition4;
-	}
-	public String getMmsSubject() {
-		return mmsSubject;
-	}
-	public void setMmsSubject(String mmsSubject) {
-		this.mmsSubject = mmsSubject;
-	}
-	public String getFileCnt() {
-		return fileCnt;
-	}
-	public void setFileCnt(String fileCnt) {
-		this.fileCnt = fileCnt;
-	}
-	public String getFileType1() {
-		return fileType1;
-	}
-	public void setFileType1(String fileType1) {
-		this.fileType1 = fileType1;
-	}
-	public String getFileName1() {
-		return fileName1;
-	}
-	public void setFileName1(String fileName1) {
-		this.fileName1 = fileName1;
-	}
-	public String getFileType2() {
-		return fileType2;
-	}
-	public void setFileType2(String fileType2) {
-		this.fileType2 = fileType2;
-	}
-	public String getFileName2() {
-		return fileName2;
-	}
-	public void setFileName2(String fileName2) {
-		this.fileName2 = fileName2;
-	}
-	public String getFileType3() {
-		return fileType3;
-	}
-	public void setFileType3(String fileType3) {
-		this.fileType3 = fileType3;
-	}
-	public String getFileName3() {
-		return fileName3;
-	}
-	public void setFileName3(String fileName3) {
-		this.fileName3 = fileName3;
-	}
-	public String getSubject() {
-		return subject;
-	}
-	public void setSubject(String subject) {
-		this.subject = subject;
-	}
-	public String getMsgGroupId() {
-		return msgGroupId;
-	}
-	public void setMsgGroupId(String msgGroupId) {
-		this.msgGroupId = msgGroupId;
-	}
-	public String getMsgGroupCnt() {
-		return msgGroupCnt;
-	}
-	public void setMsgGroupCnt(String msgGroupCnt) {
-		this.msgGroupCnt = msgGroupCnt;
-	}
-	public String[] getCallToList() {
-		return callToList;
-	}
-	public void setCallToList(String[] strings) {
-		this.callToList = strings;
-	}
-	public String[] getImgFilePath() {
-		return imgFilePath;
-	}
-	public void setImgFilePath(String[] imgFilePath) {
-		this.imgFilePath = imgFilePath;
-	}
-	public String getNeoType() {
-		return neoType;
-	}
-	public void setNeoType(String neoType) {
-		this.neoType = neoType;
-	}
-	public int getMsgCnt() {
-		return msgCnt;
-	}
-	public void setMsgCnt(int msgCnt) {
-		this.msgCnt = msgCnt;
-	}
-	public String getSearchCondition5() {
-		return searchCondition5;
-	}
-	public void setSearchCondition5(String searchCondition5) {
-		this.searchCondition5 = searchCondition5;
-	}
-	public String getNtceBgnde() {
-		return ntceBgnde;
-	}
-	public void setNtceBgnde(String ntceBgnde) {
-		this.ntceBgnde = ntceBgnde;
-	}
-	public String getEachPrice() {
-		return eachPrice;
-	}
-	public void setEachPrice(String eachPrice) {
-		this.eachPrice = eachPrice;
-	}
-	public String getTotPrice() {
-		return totPrice;
-	}
-	public void setTotPrice(String totPrice) {
-		this.totPrice = totPrice;
-	}
-	public String getBeforeUrl() {
-		return beforeUrl;
-	}
-	public void setBeforeUrl(String beforeUrl) {
-		this.beforeUrl = beforeUrl;
-	}
-	public String getReserveYn() {
-		return reserveYn;
-	}
-	public void setReserveYn(String reserveYn) {
-		this.reserveYn = reserveYn;
-	}
-	public String getReserveCYn() {
-		return reserveCYn;
-	}
-	public void setReserveCYn(String reserveCYn) {
-		this.reserveCYn = reserveCYn;
-	}
-	public String getCancelDate() {
-		return cancelDate;
-	}
-	public void setCancelDate(String cancelDate) {
-		this.cancelDate = cancelDate;
-	}
-	public String[] getImgFileId() {
-		return imgFileId;
-	}
-	public void setImgFileId(String[] imgFileId) {
-		this.imgFileId = imgFileId;
-	}
-	public String[] getTemplateYn() {
-		return templateYn;
-	}
-	public void setTemplateYn(String[] templateYn) {
-		this.templateYn = templateYn;
-	}
-	public String getNtceEndde() {
-		return ntceEndde;
-	}
-	public void setNtceEndde(String ntceEndde) {
-		this.ntceEndde = ntceEndde;
-	}
-	public static long getSerialversionuid() {
-		return serialVersionUID;
-	}
-	public String getSendRate() {
-		return sendRate;
-	}
-	public void setSendRate(String sendRate) {
-		this.sendRate = sendRate;
-	}
-	public float getSendRateInfo() {
-		return sendRateInfo;
-	}
-	public void setSendRateInfo(float sendRateInfo) {
-		this.sendRateInfo = sendRateInfo;
-	}
-	public String getDivideChk() {
-		return divideChk;
-	}
-	public void setDivideChk(String divideChk) {
-		this.divideChk = divideChk;
-	}
-	public String getDivideCnt() {
-		return divideCnt;
-	}
-	public void setDivideCnt(String divideCnt) {
-		this.divideCnt = divideCnt;
-	}
-	public String getDivideTime() {
-		return divideTime;
-	}
-	public void setDivideTime(String divideTime) {
-		this.divideTime = divideTime;
-	}
-	public String getBefCash() {
-		return befCash;
-	}
-	public void setBefCash(String befCash) {
-		this.befCash = befCash;
-	}
-	public String getRecommId() {
-		return recommId;
-	}
-	public void setRecommId(String recommId) {
-		this.recommId = recommId;
-	}
-	public String getBefPoint() {
-		return befPoint;
-	}
-	public void setBefPoint(String befPoint) {
-		this.befPoint = befPoint;
-	}
-	public String[] getNameList() {
-		return nameList;
-	}
-	public void setNameList(String[] nameList) {
-		this.nameList = nameList;
-	}
-	public String[] getRep1List() {
-		return rep1List;
-	}
-	public void setRep1List(String[] rep1List) {
-		this.rep1List = rep1List;
-	}
-	public String[] getRep2List() {
-		return rep2List;
-	}
-	public void setRep2List(String[] rep2List) {
-		this.rep2List = rep2List;
-	}
-	public String[] getRep3List() {
-		return rep3List;
-	}
-	public void setRep3List(String[] rep3List) {
-		this.rep3List = rep3List;
-	}
-	public String[] getRep4List() {
-		return rep4List;
-	}
-	public void setRep4List(String[] rep4List) {
-		this.rep4List = rep4List;
-	}
-	public String getThisPoint() {
-		return thisPoint;
-	}
-	public void setThisPoint(String thisPoint) {
-		this.thisPoint = thisPoint;
-	}
-	public String getEndDate() {
-		return endDate;
-	}
-	public void setEndDate(String endDate) {
-		this.endDate = endDate;
-	}
-	public String getStartDate() {
-		return startDate;
-	}
-	public void setStartDate(String startDate) {
-		this.startDate = startDate;
-	}
-	public int getPhoneNumberCnt() {
-		return phoneNumberCnt;
-	}
-	public void setPhoneNumberCnt(int phoneNumberCnt) {
-		this.phoneNumberCnt = phoneNumberCnt;
-	}
-	public String getPhmAuthType() {
-		return phmAuthType;
-	}
-	public void setPhmAuthType(String phmAuthType) {
-		this.phmAuthType = phmAuthType;
-	}
-	public String getRefundYn() {
-		return refundYn;
-	}
-	public void setRefundYn(String refundYn) {
-		this.refundYn = refundYn;
-	}
-	public String getFilePath1() {
-		return filePath1;
-	}
-	public void setFilePath1(String filePath1) {
-		this.filePath1 = filePath1;
-	}
-	public String getFilePath2() {
-		return filePath2;
-	}
-	public void setFilePath2(String filePath2) {
-		this.filePath2 = filePath2;
-	}
-	public String getFilePath3() {
-		return filePath3;
-	}
-	public void setFilePath3(String filePath3) {
-		this.filePath3 = filePath3;
-	}
-	public String getResultCodeTxt() {
-		return resultCodeTxt;
-	}
-	public void setResultCodeTxt(String resultCodeTxt) {
-		this.resultCodeTxt = resultCodeTxt;
-	}
-	public String getTxtReplYn() {
-		return txtReplYn;
-	}
-	public void setTxtReplYn(String txtReplYn) {
-		this.txtReplYn = txtReplYn;
-	}
-	public String getsPrice() {
-		return sPrice;
-	}
-	public void setsPrice(String sPrice) {
-		this.sPrice = sPrice;
-	}
-	public String getmPrice() {
-		return mPrice;
-	}
-	public void setmPrice(String mPrice) {
-		this.mPrice = mPrice;
-	}
-	public String getpPrice() {
-		return pPrice;
-	}
-	public void setpPrice(String pPrice) {
-		this.pPrice = pPrice;
-	}
-	public String getP2Price() {
-		return p2Price;
-	}
-	public void setP2Price(String p2Price) {
-		this.p2Price = p2Price;
-	}
-	public String getP3Price() {
-		return p3Price;
-	}
-	public void setP3Price(String p3Price) {
-		this.p3Price = p3Price;
-	}
-	public String getShortMsgCnt() {
-		return shortMsgCnt;
-	}
-	public void setShortMsgCnt(String shortMsgCnt) {
-		this.shortMsgCnt = shortMsgCnt;
-	}
-	public String getLongMsgCnt() {
-		return longMsgCnt;
-	}
-	public void setLongMsgCnt(String longMsgCnt) {
-		this.longMsgCnt = longMsgCnt;
-	}
-	public String getAtchFileId1() {
-		return atchFileId1;
-	}
-	public void setAtchFileId1(String atchFileId1) {
-		this.atchFileId1 = atchFileId1;
-	}
-	public String getAtchFileId2() {
-		return atchFileId2;
-	}
-	public void setAtchFileId2(String atchFileId2) {
-		this.atchFileId2 = atchFileId2;
-	}
-	public String getAtchFileId3() {
-		return atchFileId3;
-	}
-	public void setAtchFileId3(String atchFileId3) {
-		this.atchFileId3 = atchFileId3;
-	}
-	public String getAtchFileSn1() {
-		return atchFileSn1;
-	}
-	public void setAtchFileSn1(String atchFileSn1) {
-		this.atchFileSn1 = atchFileSn1;
-	}
-	public String getAtchFileSn2() {
-		return atchFileSn2;
-	}
-	public void setAtchFileSn2(String atchFileSn2) {
-		this.atchFileSn2 = atchFileSn2;
-	}
-	public String getAtchFileSn3() {
-		return atchFileSn3;
-	}
-	public void setAtchFileSn3(String atchFileSn3) {
-		this.atchFileSn3 = atchFileSn3;
-	}
-	
-	public String getMsgTypeName() {
-		return msgTypeName;
-	}
-	public void setMsgTypeName(String msgTypeName) {
-		this.msgTypeName = msgTypeName;
-	}
-	public int getSendCount() {
-		return sendCount;
-	}
-	public void setSendCount(int sendCount) {
-		this.sendCount = sendCount;
-	}
-	public double getSupplyPrice() {
-		return supplyPrice;
-	}
-	public void setSupplyPrice(double supplyPrice) {
-		this.supplyPrice = supplyPrice;
-	}
-	public double getVatPrice() {
-		return vatPrice;
-	}
-	public void setVatPrice(double vatPrice) {
-		this.vatPrice = vatPrice;
-	}
-	public double getTotalPrice() {
-		return totalPrice;
-	}
-	public void setTotalPrice(double totalPrice) {
-		this.totalPrice = totalPrice;
-	}
-	public String getAddVatType() {
-		return addVatType;
-	}
-	public void setAddVatType(String addVatType) {
-		this.addVatType = addVatType;
-	}
-	public String getDetailType() {
-		return detailType;
-	}
-	public void setDetailType(String detailType) {
-		this.detailType = detailType;
-	}
-	public String getMsgGroupSCnt() {
-		return msgGroupSCnt;
-	}
-	public void setMsgGroupSCnt(String msgGroupSCnt) {
-		this.msgGroupSCnt = msgGroupSCnt;
-	}
-	public String getMsgGroupFWCnt() {
-		return MsgGroupFWCnt;
-	}
-	public void setMsgGroupFWCnt(String msgGroupFWCnt) {
-		MsgGroupFWCnt = msgGroupFWCnt;
-	}
-	public String getTotSPrice() {
-		return totSPrice;
-	}
-	public void setTotSPrice(String totSPrice) {
-		this.totSPrice = totSPrice;
-	}
-	public String getTotFWPrice() {
-		return totFWPrice;
-	}
-	public void setTotFWPrice(String totFWPrice) {
-		this.totFWPrice = totFWPrice;
-	}
-	public String getMsgGroupSCntSum() {
-		return msgGroupSCntSum;
-	}
-	public void setMsgGroupSCntSum(String msgGroupSCntSum) {
-		this.msgGroupSCntSum = msgGroupSCntSum;
-	}
-	public String getMsgGroupFWCntSum() {
-		return MsgGroupFWCntSum;
-	}
-	public void setMsgGroupFWCntSum(String msgGroupFWCntSum) {
-		MsgGroupFWCntSum = msgGroupFWCntSum;
-	}
-	public String getTotSPriceSum() {
-		return totSPriceSum;
-	}
-	public void setTotSPriceSum(String totSPriceSum) {
-		this.totSPriceSum = totSPriceSum;
-	}
-	public String getTotFWPriceSum() {
-		return totFWPriceSum;
-	}
-	public void setTotFWPriceSum(String totFWPriceSum) {
-		this.totFWPriceSum = totFWPriceSum;
-	}
-	public String getSmiId() {
-		return smiId;
-	}
-	public void setSmiId(String smiId) {
-		this.smiId = smiId;
-	}
-	public List<String> getDividDay() {
-		return dividDay;
-	}
-	public void setDividDay(List<String> dividDay) {
-		this.dividDay = dividDay;
-	}
-	public String getUserNm() {
-		return userNm;
-	}
-	public void setUserNm(String userNm) {
-		this.userNm = userNm;
-	}
-	public String getMbtlnum() {
-		return mbtlnum;
-	}
-	public void setMbtlnum(String mbtlnum) {
-		this.mbtlnum = mbtlnum;
-	}
-	public String getEmailAdres() {
-		return emailAdres;
-	}
-	public void setEmailAdres(String emailAdres) {
-		this.emailAdres = emailAdres;
-	}
-	public String getAuthorCode() {
-		return authorCode;
-	}
-	public void setAuthorCode(String authorCode) {
-		this.authorCode = authorCode;
-	}
-	public String getResultLogUpdtPnttm() {
-		return resultLogUpdtPnttm;
-	}
-	public void setResultLogUpdtPnttm(String resultLogUpdtPnttm) {
-		this.resultLogUpdtPnttm = resultLogUpdtPnttm;
-	}
-	public String getRepAgent() {
-		return repAgent;
-	}
-	public void setRepAgent(String repAgent) {
-		this.repAgent = repAgent;
-	}
-	public String getEventYn() {
-		return eventYn;
-	}
-	public void setEventYn(String eventYn) {
-		this.eventYn = eventYn;
-	}
+	private List<MjonMsgTabulVO> mjonMsgTabulListVO = new ArrayList<>();
 
-	public String getSpamKeyword() {
-		return spamKeyword;
-	}
-	public void setSpamKeyword(String spamKeyword) {
-		this.spamKeyword = spamKeyword;
-	}
-	public String getSpamMsgGroupId() {
-		return spamMsgGroupId;
-	}
-	public void setSpamMsgGroupId(String spamMsgGroupId) {
-		this.spamMsgGroupId = spamMsgGroupId;
-	}
-	public String getSpamStatus() {
-		return spamStatus;
-	}
-	public void setSpamStatus(String spamStatus) {
-		this.spamStatus = spamStatus;
-	}
-
-	public String getSmishingYn() {
-		return smishingYn;
-	}
-	public void setSmishingYn(String smishingYn) {
-		this.smishingYn = smishingYn;
-	}
-	public int getTotalCallCnt() {
-		return totalCallCnt;
-	}
-	public void setTotalCallCnt(int totalCallCnt) {
-		this.totalCallCnt = totalCallCnt;
-	}
-	public String getDelayYn() {
-		return delayYn;
-	}
-	public void setDelayYn(String delayYn) {
-		this.delayYn = delayYn;
-	}
-	public String getDelayCompleteYn() {
-		return delayCompleteYn;
-	}
-	public void setDelayCompleteYn(String delayCompleteYn) {
-		this.delayCompleteYn = delayCompleteYn;
-	}
-	public String getVipYn() {
-		return vipYn;
-	}
-	public void setVipYn(String vipYn) {
-		this.vipYn = vipYn;
-	}
-	public String getResultCode() {
-		return resultCode;
-	}
-	public void setResultCode(String resultCode) {
-		this.resultCode = resultCode;
-	}
-	public String getResultCode2() {
-		return resultCode2;
-	}
-	public void setResultCode2(String resultCode2) {
-		this.resultCode2 = resultCode2;
-	}
-	public String getRegistPnttm() {
-		return registPnttm;
-	}
-	public void setRegistPnttm(String registPnttm) {
-		this.registPnttm = registPnttm;
-	}
-	public String getBizLogCallStatus() {
-		return bizLogCallStatus;
-	}
-	public void setBizLogCallStatus(String bizLogCallStatus) {
-		this.bizLogCallStatus = bizLogCallStatus;
-	}
-	public String getBizLogCallStatusCode() {
-		return bizLogCallStatusCode;
-	}
-	public void setBizLogCallStatusCode(String bizLogCallStatusCode) {
-		this.bizLogCallStatusCode = bizLogCallStatusCode;
-	}
-	public String getBizLogCallStatusTxt() {
-		return bizLogCallStatusTxt;
-	}
-	public void setBizLogCallStatusTxt(String bizLogCallStatusTxt) {
-		this.bizLogCallStatusTxt = bizLogCallStatusTxt;
-	}
-	public String getBizLogStatus() {
-		return bizLogStatus;
-	}
-	public void setBizLogStatus(String bizLogStatus) {
-		this.bizLogStatus = bizLogStatus;
-	}
-	public float getSmsPrice() {
-		return smsPrice;
-	}
-	public void setSmsPrice(float smsPrice) {
-		this.smsPrice = smsPrice;
-	}
-	public float getMmsPrice() {
-		return mmsPrice;
-	}
-	public void setMmsPrice(float mmsPrice) {
-		this.mmsPrice = mmsPrice;
-	}
-	public float getKakaoAtPrice() {
-		return kakaoAtPrice;
-	}
-	public void setKakaoAtPrice(float kakaoAtPrice) {
-		this.kakaoAtPrice = kakaoAtPrice;
-	}
-	public float getKakaoFtPrice() {
-		return kakaoFtPrice;
-	}
-	public void setKakaoFtPrice(float kakaoFtPrice) {
-		this.kakaoFtPrice = kakaoFtPrice;
-	}
-	public String getMyNameFlag() {
-		return myNameFlag;
-	}
-	public void setMyNameFlag(String myNameFlag) {
-		this.myNameFlag = myNameFlag;
-	}
-	public float getKakaoFtImgPrice() {
-		return kakaoFtImgPrice;
-	}
-	public void setKakaoFtImgPrice(float kakaoFtImgPrice) {
-		this.kakaoFtImgPrice = kakaoFtImgPrice;
-	}
-	public float getKakaoFtWideImgPrice() {
-		return kakaoFtWideImgPrice;
-	}
-	public void setKakaoFtWideImgPrice(float kakaoFtWideImgPrice) {
-		this.kakaoFtWideImgPrice = kakaoFtWideImgPrice;
-	}
-	public String getMberSttus() {
-		return mberSttus;
-	}
-	public void setMberSttus(String mberSttus) {
-		this.mberSttus = mberSttus;
-	}
-	public String getAccessKey() {
-		return accessKey;
-	}
-	public void setAccessKey(String accessKey) {
-		this.accessKey = accessKey;
-	}
-	public String getAtDelayYn() {
-		return atDelayYn;
-	}
-	public void setAtDelayYn(String atDelayYn) {
-		this.atDelayYn = atDelayYn;
-	}
-	public String getAtDelayCompleteYn() {
-		return atDelayCompleteYn;
-	}
-	public void setAtDelayCompleteYn(String atDelayCompleteYn) {
-		this.atDelayCompleteYn = atDelayCompleteYn;
-	}
-	public String getAtSmishingYn() {
-		return atSmishingYn;
-	}
-	public void setAtSmishingYn(String atSmishingYn) {
-		this.atSmishingYn = atSmishingYn;
-	}
-	public int getShtSendCount() {
-		return shtSendCount;
-	}
-	public void setShtSendCount(int shtSendCount) {
-		this.shtSendCount = shtSendCount;
-	}
-	public int getLongSendCount() {
-		return longSendCount;
-	}
-	public void setLongSendCount(int longSendCount) {
-		this.longSendCount = longSendCount;
-	}
-	public int getPictSendCount() {
-		return pictSendCount;
-	}
-	public void setPictSendCount(int pictSendCount) {
-		this.pictSendCount = pictSendCount;
-	}
-	public int getAtSendCount() {
-		return atSendCount;
-	}
-	public void setAtSendCount(int atSendCount) {
-		this.atSendCount = atSendCount;
-	}
-	public int getFtSendCount() {
-		return ftSendCount;
-	}
-	public void setFtSendCount(int ftSendCount) {
-		this.ftSendCount = ftSendCount;
-	}
-	public int getFaxSendCount() {
-		return faxSendCount;
-	}
-	public void setFaxSendCount(int faxSendCount) {
-		this.faxSendCount = faxSendCount;
-	}
-	public int getSuccSendCnt() {
-		return succSendCnt;
-	}
-	public void setSuccSendCnt(int succSendCnt) {
-		this.succSendCnt = succSendCnt;
-	}
-	public int getFailSendCnt() {
-		return failSendCnt;
-	}
-	public void setFailSendCnt(int failSendCnt) {
-		this.failSendCnt = failSendCnt;
-	}
-	public double getSuccSendPrice() {
-		return succSendPrice;
-	}
-	public void setSuccSendPrice(double succSendPrice) {
-		this.succSendPrice = succSendPrice;
-	}
-	public double getFailSendPrice() {
-		return failSendPrice;
-	}
-	public void setFailSendPrice(double failSendPrice) {
-		this.failSendPrice = failSendPrice;
-	}
-	public String getTotSuccSendPrice() {
-		return totSuccSendPrice;
-	}
-	public void setTotSuccSendPrice(String totSuccSendPrice) {
-		this.totSuccSendPrice = totSuccSendPrice;
-	}
-	public String getBookmarkYn() {
-		return bookmarkYn;
-	}
-	public void setBookmarkYn(String bookmarkYn) {
-		this.bookmarkYn = bookmarkYn;
-	}
-	public String getCancelResultYn() {
-		return cancelResultYn;
-	}
-	public void setCancelResultYn(String cancelResultYn) {
-		this.cancelResultYn = cancelResultYn;
-	}
-	public String getAdmSmsImgAuto() {
-		return admSmsImgAuto;
-	}
-	public void setAdmSmsImgAuto(String admSmsImgAuto) {
-		this.admSmsImgAuto = admSmsImgAuto;
-	}
 }
src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
@@ -3987,7 +3987,7 @@
     @Override
     public StatusResponse sendMsgData_advc(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception {
 
-		
+		log.info(" :: sendMsgData_advc :: ");
 		
 		LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
 		String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
@@ -4000,34 +4000,57 @@
 		
 		//발신번호가 등록된 유효한 번호인지 확인
 		int sendCallFromCnt = mjonMsgDAO.selectCallFromNumberChk(mjonMsgVO);
-		log.info("sendCallFromCnt :: [{}]", sendCallFromCnt);
+		System.out.println("sendCallFromCnt : "+ sendCallFromCnt);
 		if(sendCallFromCnt < 1) {
 			return new StatusResponse(HttpStatus.BAD_REQUEST, "등록된 발신번호를 찾을 수 없습니다.");
 		}
-		
+
 		/**
 		 * 회원 정지된 상태이면 문자 발송이 안되도록 처리함
 		 * 현재 로그인 세션도 만료 처리함
 		 * */
 		boolean mberSttus = userManageService.selectUserStatusInfo(userId);
 		if(!mberSttus) {
-		    request.getSession().invalidate();
-		    // UNAUTHORIZED : 인증되지 않은 사용자가 접근하려고 할 때
-		    return new StatusResponse(HttpStatus.UNAUTHORIZED, "현재 고객님께서는 문자온 서비스 이용이 정지된 상태로 문자를 발송하실 수 없습니다. 이용정지 해제를 원하시면 고객센터로 연락주시기 바랍니다.");
-		
+			request.getSession().invalidate();
+			// UNAUTHORIZED : 인증되지 않은 사용자가 접근하려고 할 때
+			return new StatusResponse(HttpStatus.UNAUTHORIZED, "현재 고객님께서는 문자온 서비스 이용이 정지된 상태로 문자를 발송하실 수 없습니다. 이용정지 해제를 원하시면 고객센터로 연락주시기 바랍니다.");
 		}
+
+		String smsTxt = mjonMsgVO.getSmsTxtArea();
+		// 광고문자면 처리 - 광고 A
+		if("A".equals(mjonMsgVO.getMsgKind())) {
+			smsTxt = "(광고)"+smsTxt
+					+"\n"+"무료거부 0808800858";
+		}
+
+		log.debug(" :: smsTxt :: [{}]", smsTxt);
+
+		StatusResponse statusResponse = new StatusResponse();
+		mjonMsgVO = setImagesSetting(mjonMsgVO, statusResponse);
+
+		if(mjonMsgVO == null) {
+			return statusResponse;
+		}
+
+		log.debug(" + mjonMsgVO.getFileCnt() :: [{}]", mjonMsgVO.getFileCnt());
+
+		//////////////////////////////////
+		//////////////////////////////////
+		//////////////////////////////////
+		if(true) {
+		    return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 테스트 실패");
+		}
+		//////////////////////////////////
+		//////////////////////////////////
+		//////////////////////////////////
+		
 		
 		/*
-		 * 어디에 사용하는지 모르겠음
-		 * set 후에 사용하는 곳이 없음
-		 * //회원정보에서 스미싱 회원 여부 정보 조회
-		        UserManageVO userManageVO = new UserManageVO();
-		
-		        userManageVO.setMberId(userId);
-		        UserManageVO resultUserVO = userManageService.selectSmishingYnUserInfo(userManageVO);
-		        String smishingYn = resultUserVO.getSmishingYn();
-		        mjonMsgVO.setSmishingYn(smishingYn);
-		*/
+		 * 화면에서 넘어오는 단가 금액 및 총 결제 캐시 금액 체크 해주기
+		 * 검증을 위해서 시스템 단가, 회원 협의 단가, 이벤트 단가 정보 조회
+		 * 조회 단가를 이용하여 총 결제 캐시 금액 계산
+		 * 파라미터로 넘어온 개별단가(eachPrice), 총 결제캐시(totPrice)를 비요하여 동일하지 않으면 컨트롤러에서 계산한 금액으로 입력해줌.
+		 */
 		
 		int smsTxtByte = MsgSendUtils.getSmsTxtBytes(mjonMsgVO.getSmsTxt());
 		if(smsTxtByte > 2000) {
@@ -4040,74 +4063,7 @@
 		    return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 내용은 2000Byte를 넘을 수 없습니다.");
 		}
 		mjonMsgVO.setMsgType(msgType);
-
-
-
-		int fileCount = 0;
-		// 장문 메시지일 경우 + 그림 이미지가 첨부된 경우
-		if (msgType.equals("6") 
-				&& mjonMsgVO.getImgFilePath() != null 
-				&& mjonMsgVO.getImgFilePath().length > 0
-				) 
-		{
 		
-			//그림 이미지가 첨부된 경우
-			
-			String[] path = mjonMsgVO.getImgFilePath();
-			String[] fileId = mjonMsgVO.getImgFileId();
-			String[] templateYn = mjonMsgVO.getTemplateYn();
-			
-			for(int i=0; i<path.length; i++) {
-			
-				if("Y".equals(templateYn[i])) {
-					//템플릿 사용누계 증가
-					letterDAO.updateTemplateUseCount(fileId[i]);
-				}
-				
-				String imgFilePath = mjonMsgDAO.selectPhotoImgFileRealPath(fileId[i]);
-
-				if (StringUtils.isEmpty(imgFilePath)) {
-					return new StatusResponse(HttpStatus.NO_CONTENT, "문자 메세지 이미지 추가에 오류가 발생하여 문자 발송이 취소 되었습니다.");
-				}
-				
-				switch (i) {
-					case 0:
-						mjonMsgVO.setFileName1(imgFilePath);
-						break;
-					case 1:
-						mjonMsgVO.setFileName2(imgFilePath);
-						break;
-					default:
-						mjonMsgVO.setFileName3(imgFilePath);
-						break;
-				}
-				
-				
-				fileCount ++;
-				
-				//첨부파일 갯수 셋팅해주기
-				mjonMsgVO.setFileCnt(Integer.toString(fileCount));
-				
-			}
-		
-		}
-
-
-		// 파일 갯수는 있는데 파일 경로가 없는 경우 문자발송이 안되도록 튕겨내도록 함 - 20220520 우영두
-		// 리펙토링 20240930 이호영
-//		StatusResponse returnStatusResponse = MsgSendUtils.validateFilesForMessageSending(fileCount, mjonMsgVO);
-//		if (returnStatusResponse != null) {
-//			return returnStatusResponse;
-//		}
-
-
-
-		/*
-		 * 화면에서 넘어오는 단가 금액 및 총 결제 캐시 금액 체크 해주기
-		 * 검증을 위해서 시스템 단가, 회원 협의 단가, 이벤트 단가 정보 조회
-		 * 조회 단가를 이용하여 총 결제 캐시 금액 계산
-		 * 파라미터로 넘어온 개별단가(eachPrice), 총 결제캐시(totPrice)를 비요하여 동일하지 않으면 컨트롤러에서 계산한 금액으로 입력해줌.
-		 */
 		
 		
 		MjonEventVO mjonEventVO = new MjonEventVO();
@@ -4176,7 +4132,6 @@
 		////////////////////////////////////////////////
 		// 치환 여부
 		////////////////////////////////////////////////
-		StatusResponse statusResponse = new StatusResponse();
 		if (MsgSendUtils.isReplacementRequired(mjonMsgVO)) {
 			
 			if (!MsgSendUtils.validateReplacementData(mjonMsgVO, statusResponse)) {
@@ -4205,6 +4160,108 @@
 
 	}
 	
+	private MjonMsgVO setImagesSetting(MjonMsgVO mjonMsgVO, StatusResponse statusResponse) throws Exception {
+		
+		int fileCount = 0;
+		// 장문 메시지일 경우 + 그림 이미지가 첨부된 경우
+		// 
+		if (mjonMsgVO.getMsgType().equals("6") 
+				&& mjonMsgVO.getImgFilePathAdvc() != null 
+				&& mjonMsgVO.getImgFileIdAdvc() != null
+				) 
+		{
+		
+			//그림 이미지가 첨부된 경우
+			
+			String[] path;
+			if(mjonMsgVO.getImgFilePathAdvc().contains(",")) {
+				path = mjonMsgVO.getImgFilePathAdvc().split(",");
+			}else {
+				path = new String[1]; // 크기 1의 배열로 초기화
+				path[0] = mjonMsgVO.getImgFilePathAdvc();
+			}
+			
+ 			String[] fileId = null;
+			if(mjonMsgVO.getImgFileIdAdvc().contains(",")) {
+				fileId = mjonMsgVO.getImgFileIdAdvc().split(",");
+			}else {
+				fileId = new String[1]; // 크기 1의 배열로 초기화
+				fileId[0] = mjonMsgVO.getImgFileIdAdvc();
+			}
+			
+			
+			String[] templateYn = null;
+			if(mjonMsgVO.getTemplateYnAdvc().contains(",")) {
+				templateYn = mjonMsgVO.getTemplateYnAdvc().split(",");
+			}else {
+				templateYn = new String[1]; // 크기 1의 배열로 초기화
+				templateYn[0] = mjonMsgVO.getTemplateYnAdvc();
+			}
+			
+			
+			for(int i=0; i<path.length; i++) {
+			
+				if("Y".equals(templateYn[i])) {
+					//템플릿 사용누계 증가
+					letterDAO.updateTemplateUseCount(fileId[i]);
+				}
+				
+				String imgFilePath = mjonMsgDAO.selectPhotoImgFileRealPath(fileId[i]);
+
+				if (StringUtils.isEmpty(imgFilePath)) {
+					statusResponse.setStatus(HttpStatus.NO_CONTENT);
+					statusResponse.setMessage("문자 메세지 이미지 추가에 오류가 발생하여 문자 발송이 취소 되었습니다.");
+					return null;
+				}
+				
+				switch (i) {
+					case 0:
+						mjonMsgVO.setFileName1(imgFilePath);
+						break;
+					case 1:
+						mjonMsgVO.setFileName2(imgFilePath);
+						break;
+					default:
+						mjonMsgVO.setFileName3(imgFilePath);
+						break;
+				}
+				fileCount ++;
+				
+				
+			}
+		
+		}
+		
+		//첨부파일 갯수 셋팅해주기
+		mjonMsgVO.setFileCnt(Integer.toString(fileCount));
+		
+		
+		return mjonMsgVO;
+		
+	}
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
 	
 	// 그림 문자 발송 처리 메서드
 	private StatusResponse processMessageSending(MjonMsgVO mjonMsgVO, ReplacementListsVO lists, StatusResponse statusResponse) throws Exception {
src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
--- src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
+++ src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
@@ -42,6 +42,7 @@
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -50,6 +51,7 @@
 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.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.support.SessionStatus;
@@ -58,6 +60,8 @@
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+
 import egovframework.rte.fdl.idgnr.EgovIdGnrService;
 import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
 import egovframework.rte.psl.dataaccess.util.EgovMap;
@@ -65,6 +69,7 @@
 import itn.com.cmm.EgovMessageSource;
 import itn.com.cmm.JsonResult;
 import itn.com.cmm.LoginVO;
+import itn.com.cmm.MjonMsgTabulVO;
 import itn.com.cmm.service.EgovFileMngService;
 import itn.com.cmm.service.EgovFileMngUtil;
 import itn.com.cmm.service.FileVO;
@@ -2792,7 +2797,7 @@
         			imgMsgVO.setRep4List(imgRep4);
         			
         			//개별단가 계산하기
-        			String eachPrice = imgMsgVO.getpPrice();
+        			String eachPrice = imgMsgVO.getPPrice();
         			
         			//api 서버에서 pPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가
         			if(eachPrice == null) {
@@ -2815,7 +2820,7 @@
             			eachPrice = mjonMsgVO.getP2Price();
             			
             		}else if(fileCount == 1) {//그림 이미지가 1개
-            			eachPrice = mjonMsgVO.getpPrice();
+            			eachPrice = mjonMsgVO.getPPrice();
             			
             		}
         			
@@ -2843,7 +2848,7 @@
         			shortMsgVO.setRep4List(shortRep4);
         			
         			//개별단가 계산하기
-        			String eachPrice = shortMsgVO.getsPrice();
+        			String eachPrice = shortMsgVO.getSPrice();
         			
         			//api 서버에서 sPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가
         			if(eachPrice == null) {
@@ -2866,7 +2871,7 @@
             			eachPrice = mjonMsgVO.getP2Price();
             			
             		}else if(fileCount == 1) {//그림 이미지가 1개
-            			eachPrice = mjonMsgVO.getpPrice();
+            			eachPrice = mjonMsgVO.getPPrice();
             			
             		}
         			
@@ -2902,7 +2907,7 @@
         			 * 그림문자의 경우 이로직을 타지 않지만 혹시 몰라서 추가해놓음
         			 * */
         			
-        			String eachPrice = longMsgVO.getmPrice();
+        			String eachPrice = longMsgVO.getMPrice();
         			
         			//api 서버에서 mPrice 값이 없는 경우가 있어서 오류 방지를위해서 추가
         			if(eachPrice == null) {
@@ -2920,7 +2925,7 @@
             			eachPrice = mjonMsgVO.getP2Price();
             			
             		}else if(fileCount == 1) {//그림 이미지가 1개
-            			eachPrice = mjonMsgVO.getpPrice();
+            			eachPrice = mjonMsgVO.getPPrice();
             			
             		}
         			
@@ -3159,14 +3164,19 @@
      * @return	"/web/mjon/msgdata/sendMsgDataAjax.do"
      * @throws Exception
      */
-	@RequestMapping(value= {"/web/mjon/msgdata/sendMsgDataAjax_advc.do"})
-	public ResponseEntity<StatusResponse> sendMsgData_advc(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO, 
-			RedirectAttributes redirectAttributes, 
-			HttpServletRequest request,
-			ModelMap model) throws Exception{
-		
+	
+	@RequestMapping(value = "/web/mjon/msgdata/sendMsgDataAjax_advc.do")
+     public ResponseEntity<StatusResponse> sendMsgData_advc(
+		    @RequestBody MjonMsgVO mjonMsgVO,
+		    HttpServletRequest request,
+	        ModelMap model) throws Exception {
+
+	    // 디버깅 출력
+	    System.out.println("mjonMsgVO : " + mjonMsgVO.getMjonMsgTabulListVO().toString());
+	    System.out.println("mjonMsgVO : " + mjonMsgVO.getMjonMsgTabulListVO().size());
 		
 		return ResponseEntity.ok().body(mjonMsgDataService.sendMsgData_advc(mjonMsgVO, request)) ;
+//		return null;
 		
 	}
 	
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
@@ -3777,7 +3777,9 @@
     <form id="msgForm" name="msgForm" method="post">
 		<input type="hidden" id="msgType" name="msgType" value="4" /><!-- 문자 종류 : 단문 - 4, 장문/그림 - 6 -->
 		<input type="hidden" id="imgFilePath" name="imgFilePath" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 -->
+		<input type="hidden" id="imgFilePathAdvc" name="imgFilePathAdvc" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 -->
 		<input type="hidden" id="imgFileId" name="imgFileId" value="" /><!-- 선택 이미지 파일 아이디 정보 , 로 구분 최대 3장까지 -->
+		<input type="hidden" id="imgFileIdAdvc" name="imgFileIdAdvc" value="" /><!-- 선택 이미지 파일 아이디 정보 , 로 구분 최대 3장까지 -->
 		<input type="hidden" id="fileCnt" name="fileCnt" value="0" /><!-- 첨부파일 추가 갯수 -->
 		<input type="hidden" id="callToList" name="callToList" value=""/><!-- 수신자 전화번호 리스트 -->
 		<input type="hidden" id="callFrom" name="callFrom" value=""/> <!-- 발신자 전화번호 -->
@@ -3794,6 +3796,7 @@
 		<input type="hidden" id="rep3List" name="rep3List" value=""/><!-- 문자발송 문자 치환3 리스트 -->
 		<input type="hidden" id="rep4List" name="rep4List" value=""/><!-- 문자발송 문자 치환4 리스트 -->
 		<input type="hidden" name="templateYn" />
+		<input type="hidden" name="templateYnAdvc" />
 		<input type="hidden" id="sPrice" name="sPrice" value="<c:out value="${shortPrice}"/>"/><!-- 단문문자 단가 -->
 		<input type="hidden" id="mPrice" name="mPrice" value="<c:out value="${longPrice}"/>"/><!-- 장문문자 단가 -->
 		<input type="hidden" id="pPrice" name="pPrice" value="<c:out value="${picturePrice}"/>"/><!-- 그림문자 단가 -->
@@ -4055,7 +4058,7 @@
 												placeholder="번호를 입력하세요" 
 												onfocus="this.placeholder=''" 
 												onblur="this.placeholder='번호를 입력하세요'" 
-												style="width:340px;"></textarea>
+												style="width:340px;">01083584250</textarea>
 										<!-- <button type="button" class="btnType btnType6">번호추가</button> -->
 										<div class="btn_popup_wrap">
 											<button type="button" class="btnType btnType6 btn_add_number addCallToF">번호추가<i class="qmMark"></i></button>
 
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView2_advc_backup_20241106.jsp (added)
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView2_advc_backup_20241106.jsp
@@ -0,0 +1,4354 @@
+<%@ 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="ui" uri="http://egovframework.gov/ctl/ui"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+
+
+<script type="text/javascript" src="<c:url value='/publish/js/content.js'/>"></script>
+<script type="text/javascript" src="<c:url value='/js/txtSpecialReplace.js?date=202304250003'/>"></script>
+<!-- 주소록 유효성 체크 공통유틸로 인해 추가 -->
+<script type="text/javascript" src="<c:url value='/js/web/addr/cmn.js?date=202409021440'/>"></script>
+
+<% pageContext.setAttribute("newLineChar", "\r\n"); %>
+<script type="text/javascript">
+
+
+
+
+$(document).ready(function(){
+	
+	
+
+	
+	//받는사람 연락처 내용 처리
+	//Tabulator AJAX Data Loading
+	tableL = new Tabulator(".callList_box", {
+		height:"255px",
+	    layout:"fitColumns",
+	    headerHozAlign:"center",
+	    validationMode:"highlight",
+	    placeholder:"복사(Ctrl+C)한 내용을 여기에 붙여넣기(Ctrl+V) 해주세요.", //fit columns to width of table (optional)
+	    resizableColumns:false,
+	    columnDefaults:{ // 공통설정
+	        hozAlign: "center",
+	        headerHozAlign: "center",
+	        editor: "input",
+	        editor: false
+	    },
+	 	columns:[ //Define Table Columns
+	 		{formatter:"rowSelection", headerHozAlign:"center", titleFormatter:"rowSelection",clipboard:false, hozAlign:"center", width:5, headerSort:false, cellClick:function(e, cell){
+	 	        cell.getRow().toggleSelect();
+		 	}}, 
+// 			{formatter:"rownum", align:"center", title:"No", hozAlign:"center", headerHozAlign:"center", field:"No", width:30},
+			{formatter:"rownum", align:"center" ,title:"No", hozAlign:"center", headerHozAlign:"center", width:40},
+		 	{title:"이름", field:"name", editor:false, validator:["maxLength:12"], cellEdited:function(cell){
+		 	    fnReplCell();
+		    }},
+		 	{title:"휴대폰", field:"phone", width:100, editor:false, validator:["required","minLength:10", "maxLength:12"]},
+		 	{title:"[*1*]", field:"rep1", minWidth:60, editor:false, validator:["maxLength:40"], cellEdited:function(cell){
+		 	    fnReplCell();
+		    }},
+		 	{title:"[*2*]", field:"rep2", minWidth:60, editor:false, validator:["maxLength:40"], cellEdited:function(cell){
+		 		fnReplCell();
+		    }},
+		 	{title:"[*3*]", field:"rep3", minWidth:60, editor:false, validator:["maxLength:40"], cellEdited:function(cell){
+		 		fnReplCell();
+		    }},
+		 	{title:"[*4*]", field:"rep4", minWidth:60, editor:false, validator:["maxLength:40"], cellEdited:function(cell){
+		 		fnReplCell();
+		    }},
+		 	
+	 	],
+	 	validationFailed:function(cell, value, parameters){ // 유효성 체크 함수 - 아직 잘 모르겠음 
+	        //take action on validation fail
+	 		var valid = cell.isValid();
+	 		var fieldNm = cell.getField();
+	 		var cellVal = cell.getValue();
+	 		var returnVal = "";
+	 		if(!valid){
+	 			
+	 			if(fieldNm == "name"){
+	 				alert("받는사람 이름은 최대 12글자까지만 입력 가능합니다.");
+	 				cell.setValue(strMaxLengthSubstring(cellVal, 11)); //스크립트 함수가 0부터 시작이므로 원하는 글자수 -1을 해줘야한다.
+	 				cell.clearValidation();
+	 			}else if(fieldNm == "phone"){
+	 				alert("휴대폰번호는 하이픈(-)을 제외한 숫자만 정확히 입력해 주세요.");
+	 			}else{
+		 			alert("치환문자를 정확히 입력해 주세요. 40글자 이내로 입력 가능합니다.");
+		 			cell.setValue(strMaxLengthSubstring(cellVal, 39));
+		 			cell.clearValidation();
+	 			}
+	 			
+	 			//해당 셀 데이터 삭제
+	 			//cell.setValue("");
+	 			
+	 		}
+	 		return value % parameters.phone;
+	    },
+
+	});
+	
+	// Tabulator 초기화
+	tableAddr = new Tabulator(".callAddr_box", {
+	    height: "255px",
+	    layout: "fitColumns",
+	    headerHozAlign: "center",
+	    validationMode: "highlight",
+	    placeholder: "주소록 그룹을 선택해 주세요.", 
+	    resizableColumns: false,
+		progressiveLoad:"scroll",
+	    columns: [
+	        {formatter: "rowSelection", clipboard: false, hozAlign: "center", headerSort: false}, 
+// 	        {formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerSort: false, cellClick: function(e, cell) {
+// 	                cell.getRow().toggleSelect();
+// 	            }
+// 	        }, 
+	        {formatter: "rownum", align: "center", title: "No", hozAlign: "center", headerHozAlign: "center", width: 60},
+	        {title: "그룹명", hozAlign: "center", field: "addrGroupNm", editor: false, width: 100, validator: ["required", "minLength:2", "maxLength:40"]},
+	        {title: "이름", hozAlign: "center", field: "name", editor: false, width: 100, validator: ["maxLength:12"]},
+	        {title: "휴대폰번호", hozAlign: "center", field: "phone", editor: false, width: 100, validator: ["required", "minLength:10", "maxLength:11"]},
+	        {title: "[*1*]", hozAlign: "center", field: "rep1", editor: false, width: 84, validator: ["maxLength:40"]},
+	        {title: "[*2*]", hozAlign: "center", field: "rep2", editor: false, width: 84, validator: ["maxLength:40"]},
+	        {title: "[*3*]", hozAlign: "center", field: "rep3", editor: false, width: 84, validator: ["maxLength:40"]},
+	        {title: "[*4*]", hozAlign: "center", field: "rep4", editor: false, width: 84, validator: ["maxLength:40"]},
+	    ],
+	    validationFailed: function(cell, value, parameters) { 
+	        var valid = cell.isValid();
+	        var fieldNm = cell.getField();
+	        if (!valid) {
+	            if (fieldNm == "addrName") {
+	                alert("받는사람 이름은 최대 12글자까지만 입력 가능합니다.");
+	            } else if (fieldNm == "addrPhone") {
+	                alert("휴대폰번호는 하이픈(-)을 제외한 숫자만 정확히 입력해 주세요.");
+	            } else if (fieldNm == "addrGroupNm") {
+	                alert("그룹명을 정확히 입력해 주세요. 2 ~ 40글자 이내로 입력 가능합니다.");
+	            } else {
+	                alert("치환문자를 정확히 입력해 주세요. 100글자 이내로 입력 가능합니다.");
+	            }
+	            cell.setValue("");
+	        }
+	        console.log('parameters : ', parameters);
+	        return value % parameters.addrPhone;
+	    },
+	});
+	
+	
+	
+	/*  
+	* 20240823
+	* 미리보기 스크립트
+	*/
+	// 현재 위치
+	var currentIndex = 0;
+
+	// 제일 이전
+	$('#btnFirst').on('click', function(){
+		currentIndex = 0;
+		
+		updateButtons(currentIndex );
+		fn_previewText(currentIndex);
+	});
+
+	// 이전
+	$('#btnPrev').on('click', function(){
+    	
+		if (currentIndex > 0) {
+			currentIndex--;
+			updateButtons(currentIndex );
+			fn_previewText(currentIndex);
+		}
+    });
+    
+
+	// 다음
+	$('#btnNext').on('click', function(){
+		var dataLength = tableL.getData().length;
+		if (currentIndex < dataLength - 1) {
+			currentIndex++;
+			updateButtons(currentIndex );
+			fn_previewText(currentIndex);
+		}
+    });
+
+	// 제일 다음
+	$('#btnLast').on('click', function(){
+		var dataLength = tableL.getData().length;
+		currentIndex = dataLength - 1;
+		updateButtons(currentIndex );
+		fn_previewText(currentIndex);
+	});
+
+	updateButtons(currentIndex);
+	
+});
+
+/*
+ * 버튼 disabled 스크립트
+ */
+function updateButtons(currentIndex ) {
+	
+	
+	var dataLength = tableL.getData().length;
+// 	console.log('dataLength ', dataLength);
+// 	console.log('currentIndex ', currentIndex);
+	
+	
+	if (currentIndex <= 0) {
+		$('#btnPrev').attr('disabled', true);
+		$('#btnFirst').attr('disabled', true);
+	} else {
+		$('#btnPrev').attr('disabled', false);
+		$('#btnFirst').attr('disabled', false);
+	}
+	
+	if (currentIndex >= dataLength - 1) {
+		$('#btnNext').attr('disabled', true);
+		$('#btnLast').attr('disabled', true);
+	} else {
+		$('#btnNext').attr('disabled', false);
+		$('#btnLast').attr('disabled', false);
+	}
+} 
+
+/*
+ * 미리보기 데이터 치환
+ */
+function fn_previewText(rowIndex){
+	
+	var smsText = $('#smsTxtArea').val()
+	// 데이터 가져오기
+	var data = tableL.getData();
+	
+	// 특정 인덱스(예: 1)로 행을 선택하여 치환
+	var row = data[rowIndex]; // 인덱스 1의 행을 선택
+	
+	
+	// 이름 치환
+	smsText = smsText.replace(/\[\*이름\*\]/g, row.name !== undefined && row.name !== null ? row.name : '[*이름*]');
+	
+	// rep1, rep2, rep3, rep4 치환
+	smsText = smsText.replace(/\[\*1\*\]/g, row.rep1 !== undefined && row.rep1 !== null ? row.rep1 : '[*1*]');
+	smsText = smsText.replace(/\[\*2\*\]/g, row.rep2 !== undefined && row.rep2 !== null ? row.rep2 : '[*2*]');
+	smsText = smsText.replace(/\[\*3\*\]/g, row.rep3 !== undefined && row.rep3 !== null ? row.rep3 : '[*3*]');
+	smsText = smsText.replace(/\[\*4\*\]/g, row.rep4 !== undefined && row.rep4 !== null ? row.rep4 : '[*4*]');
+	
+	// 결과 출력 또는 다른 곳에 사용
+	console.log(smsText);
+	$('.realtime').text(smsText);
+}
+
+var tableErrorData = [];
+var totRows = 0; // 좌측 받는사람 총 갯수
+
+/* 파일등록 */
+var _fileIdx = 0;
+var _fileForm2 = new Array();
+var fileExt = ""; // 첨부파일 확장자
+var excelAddr = []; //엑셀 불러오기에서 내용 저장하는 배열 변수
+
+//전체 데이터 갯수 구하는 함수
+function updateTotCnt(data){
+	
+	console.log(' :: updateTotCnt :: ');
+	var rowTotCnt = data;
+	$("#rowTotCnt").text(numberWithCommas(rowTotCnt));
+
+}
+
+
+function addPhoneInfo(data){
+	
+	if(data == null){
+		
+		alert("연락처 정보가 없습니다.");
+		return;
+		
+	}else{
+		
+		var idx = 0;
+		var newData = data;//중복 연락처는 하나만 남기고 모두 제거
+		
+		var recTableData = tableL.getRows();		 // 받는사람 리스트의 전체 목록을 저장
+		var tableData = [];
+		
+		//기존 받는사람 리스트를 배열에 미리 담아둔다.
+		if(recTableData.length > 0){
+			
+			for(var j=0; j < recTableData.length; j++){
+				
+				tableData.push({phone: removeDash(recTableData[j].getData().phone) , name: recTableData[j].getData().name, rep1: recTableData[j].getData().rep1, rep2: recTableData[j].getData().rep2, rep3: recTableData[j].getData().rep3, rep4: recTableData[j].getData().rep4});
+			
+			}
+		
+		}
+		
+		//받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다.
+		for(var i=0; i < newData.length; i++){
+			
+			tableData.push({phone: removeDash(newData[i].phone) , name: newData[i].name, rep1: newData[i].rep1, rep2: newData[i].rep2, rep3: newData[i].rep3, rep4: newData[i].rep4});
+			
+		}
+		
+// 		var temp = tableData.length;
+		
+		//기존 수신 리스트를 지워준 후 신규 전체 리스트를 추가해준다.
+		tableL.clearData(); //기존 받는사람 목록을 삭제.
+		//tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		tableL.addData(getSpupDupliPhoneDataChk(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		
+		_fileForm2 = []; //form file data 초기화
+		_fileIdx = 0;	//form file idx 초기화
+		
+		totRows = tableL.getRows().length; 
+		updateTotCnt(totRows); //전체 데이터 갯수 구하기
+		
+		var smsTxtArea = $('#smsTxtArea').val();
+		//일괄변환 문구 결제금액 처리
+		if(smsTxtArea.indexOf("[*이름*]")  > -1 
+				|| smsTxtArea.indexOf("[*1*]") > -1
+				|| smsTxtArea.indexOf("[*2*]") > -1
+				|| smsTxtArea.indexOf("[*3*]") > -1
+				|| smsTxtArea.indexOf("[*4*]") > -1){
+			
+			fnReplCell();
+			
+		}else{
+			
+			//결제 금액 구하기
+		    totalPriceSum(totRows);
+			
+		}
+		
+	}
+	
+}
+
+/* 파일사이즈 가져오기 */
+function getStrFileSize(filesize){
+	var sizeStr="";
+	var sizeKB = filesize/1024;
+	if(parseInt(sizeKB) > 1024){
+	    var sizeMB = sizeKB/1024;
+	    sizeStr = sizeMB.toFixed(2)+" MB";
+	}else{
+	    sizeStr = sizeKB.toFixed(2)+" KB";
+	}
+	return sizeStr;
+}
+
+// 엑셀 파일 불러오기
+function excelExport(event){
+	
+	var data = new FormData(document.excelForm);
+	data.append("file0", $('#excelFile').prop('files')[0]);
+	
+	var fileValue = $("#excelFile").val().split("\\");
+	var fileName = fileValue[fileValue.length-1];
+	
+	var fileExt = fileName.split('.').pop().toLowerCase();
+
+	if(fileExt.length > 0){
+		if($.inArray(fileExt, ['txt','xls','xlsx']) == -1) {
+
+			alert('txt, xls, xlsx 파일만 업로드 할수 있습니다.');
+			return false;
+
+	   	}
+	   
+		
+		var url = "";
+		
+		if(fileExt == "xls" || fileExt == "xlsx"){
+			
+			url = "/web/mjon/msgdata/sendExelFilePhoneNumAjax.do";
+			
+		}else if(fileExt = "txt"){
+			
+			url = "/web/mjon/msgdata/sendTxtFilePhoneNumAjax.do";
+			
+		}else{
+			
+			alert('txt, xls, xlsx 파일만 업로드 할수 있습니다.');
+			return;
+			
+		}
+		
+		//엑셀 데이터 변수에 자료가 있으면 지워준다.
+	   	if(excelAddr.length > 0){
+	    	
+	    	excelAddr = [];
+	    	
+	    }
+		
+		$.ajax({
+	        type: "POST",
+	        enctype: 'multipart/form-data',
+	        url: url,
+	        data: data,
+	        dataType:'json',
+	        async: true,
+	        processData: false,
+	        contentType: false,
+	        cache: false,
+	        //timeout: 600000,
+	        success: function (returnData, status) {
+				if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
+					
+					if(returnData.success){
+						
+						var data = returnData.data;
+						var message = returnData.message;
+						
+						if(message != '' ){
+							alert(returnData.message);
+						}
+						
+						if(data != null){
+							
+							$.each(data, function(i, item){
+								
+								if(checkHpNum(item.phone)){
+								
+									excelAddr.push({phone: item.phone, name: item.name, rep1: item.replace1, rep2: item.replace2, rep3: item.replace3, rep4: item.replace4});
+									
+								}/* else{
+									
+									alert("엑셀 파일 데이터의 형식이 맞지 않는 부분이 있습니다.");
+					        		excelAddr = []; //엑셀 데이터 저장 변수 초기화
+					        		$("#excelFile").val(""); //첨부파일 input 초기화
+					        	    $("#excelNm").val("");  // 첨부파일 명 초기화
+					        	    fileName = "";
+					        		return;
+									
+								} */
+							 
+							});
+	
+						}
+						
+					}else{
+						alert(returnData.message);
+// 						alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
+						excelAddr = []; //엑셀 데이터 저장 변수 초기화
+		        		$("#excelFile").val(""); //첨부파일 input 초기화
+		        	    $("#excelNm").val("");  // 첨부파일 명 초기화
+		        	    fileName = "";
+						return;
+						
+					}
+				} else if(status== 'fail'){
+					alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
+					console.log("status : fail ~");
+				}
+			},
+			error: function (e) { 
+	        	alert("첨부파일 불러오는 중 오류가 발생하였습니다."); 
+	        	console.log("ERROR : ", e); 
+	        },
+			beforeSend : function(xmlHttpRequest) {
+	        	//로딩창 show
+	        	$('.loading_layer').addClass('active');				
+			},	        	        
+	        complete : function(xhr, textStatus) {
+	        	//로딩창 hide
+	        	$('.loading_layer').removeClass('active');
+			}
+	    });
+		
+		$("#excelFile").val("");
+	    $("#excelNm").val(fileName); 
+		
+	}
+	
+}
+
+//엑셀 불러오기 팝업의 추가 버튼 처리
+$("#excelAdd").click(function(){
+	
+	if(excelAddr.length > 0){
+		
+		//첨부파일로 불러온 데이터를 받는사람 목록에 추가해 준다.
+		addPhoneInfo(excelAddr);
+		
+		 //첨부파일 초기화 시켜주기
+	    $("#excelFile").val("");
+	    $("#excelNm").val("");
+		
+	}else{
+		
+		alert("추가 엑셀 데이터가 없습니다.");
+		return false;
+		
+	}
+	
+	
+});
+
+
+//첨부 이미지 정보 확인 처리 해주기(이미지 리사이징 전단계)
+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']) == -1) {
+			alert('jpg, jpeg 파일만 업로드 할수 있습니다.');
+			return false;
+	   	}
+	   
+		$("#imgNm").val(fileName); 
+	}
+}
+
+//첨부 이미지 파일 리사이징 처리 해주기
+function imgExport(event){
+	
+	var loginVO = '${LoginVO}';
+	
+	if(loginVO == "" || loginVO == null){
+		alert("문자전송 그림 이미지 등록은 로그인 후 이용 가능합니다.");
+		return false;
+	}
+	
+	var data = new FormData(document.imgForm);
+	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(fileExt.length > 0){
+		if($.inArray(fileExt, ['jpg','jpeg']) == -1) {
+
+			alert('jpg, jpeg 파일만 업로드 할수 있습니다.');
+			return false;
+
+	   	}
+		
+		var url = "";
+		
+		if(fileExt == "jpg" || fileExt == "jpeg"){
+			
+			url = "/web/mjon/msgdata/insertAtchImageResizeAjax.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,
+	        //timeout: 600000,
+	        success: function (returnData, status) {
+				if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
+					
+					var data = returnData.data;
+					var message = returnData.message;
+					var result = returnData.result;
+					
+					if(result == "success"){
+						
+						var fullPath = returnData.filefullPath;
+						var fileName = returnData.fileName;
+						var atchFileId = returnData.atchFileId;
+						var imgSrc = returnData.imgSrc;
+						var imgCnt = $("#imgCnt").val();
+
+						//현재 문자내용에 첨부된 이미지 갯수 체크
+						if(imgCnt >= 3){
+							alert("이미지는 3장만 선택할 수 있습니다.");
+							return false;
+						}
+						//내문서함 이미지 불러오는 방식과 동일하여 함수 호출 처리함.
+						myMsgImageControl(imgSrc, "edit_n", fileName, atchFileId);
+						
+						var contents = $('#smsTxtArea').val();
+						//(contents);
+						
+						totRows = tableL.getRows().length; 
+						updateTotCnt(totRows); //전체 데이터 갯수 구하기
+						
+						//일괄변환 문구 결제금액 처리
+						if(contents.indexOf("[*이름*]")  > -1
+								|| contents.indexOf("[*1*]") > -1
+								|| contents.indexOf("[*2*]") > -1
+								|| contents.indexOf("[*3*]") > -1
+								|| contents.indexOf("[*4*]") > -1){
+							
+							fnReplCell();
+							
+						}else{
+							
+							//결제금액 표시해주기
+							var totalPrice  = totalPriceSum(totRows);
+							$('#totalPrice').text(totalPrice);
+							$('#txtReplYn').val("N");
+							
+						}
+
+						alert(message);
+						
+					}else if(result == "fail"){
+						
+						alert(message);
+						return false;
+						
+					}
+					
+				} else if(status== 'fail'){
+					alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
+					console.log("status : fail ~");
+				}
+			},
+			error: function (e) { 
+	        	alert("첨부파일 불러오는 중 오류가 발생하였습니다."); 
+	        	console.log("ERROR : ", e); 
+	        },
+			beforeSend : function(xmlHttpRequest) {
+	        	//로딩창 show
+	        	$('.loading_layer').addClass('active');				
+			},	        	        
+	        complete : function(xhr, textStatus) {
+	        	//로딩창 hide
+	        	$('.loading_layer').removeClass('active');
+			}
+	    });
+		
+		//첨부파일 이름 및 데이터 지워주기 - 완료 후 팝업이 자동으로 닫힘.
+		$("#imgFile").val("");
+	    $("#imgNm").val(""); 
+		
+	}
+	
+}
+
+function txtExport(event){
+    var input = event.target; 
+    var reader = new FileReader();
+    var file = input.files[0];
+    var txtAddr = [];
+	var fileNm = input.files[0].name;
+    var fileExt = fileNm.split('.').pop().toLowerCase();
+    
+    if(fileExt != "txt"){
+    	
+    	alert("TXT 파일만 등록 할 수 있습니다.");
+    	return false;
+    	
+    }
+    
+    if (!file) {
+    	
+    	alert("첨부파일이 없습니다.");
+        return;
+    }
+    
+    //txt 파일 읽어 오기
+    var arrSplitData = [];
+    reader.onload = function(e) {
+        fileData = e.target.result;
+        arrSplitData = fileData.split("\n");
+        
+        for(var i=0; i < arrSplitData.length; i++){
+        	
+        	var arrTemp = arrSplitData[i].split("\t");
+        	txtAddr.push({phone: arrTemp[1].trim(), name: arrTemp[0].trim()});
+        	
+        }
+        
+      	//Tabulator에 데이터 입력해주기
+        addPhoneInfo(txtAddr);
+    };
+    reader.readAsText(file, 'UTF-8');
+    
+    //첨부파일 초기화 시켜주기
+    $("#txtFile").val("");
+} 
+
+// 발송금액 단가표시
+function SetPriceWrapOpen() {
+	var loginVO = '${LoginVO}';
+	//로그인 체크
+	if(loginVO == "" || loginVO == null){
+	}
+	else {
+		// 발송금액 가격안내
+		$("#myPriceWrap").show();		
+	}
+}
+
+//등급제 시행 ON/OFF 체크
+function getMberSettingDetail() {
+	$.ajax({
+        type: "POST",
+        url: "/web/grd/mberSettDetailAjax.do",
+        data: {},
+        dataType:'json',
+        async: false,
+        success: function (data) {
+			if (data.isSuccess) {
+				// 발송금액 가격안내
+				$("#myPriceWrap").show();
+			} 
+			else {
+				//alert("Msg : " + data.msg);
+			}
+		},
+        error: function (e) { 
+        	//alert("ERROR : " + JSON.stringify(e)); 
+        }
+    });				
+}	
+
+$(document).ready(function (){
+	// 발송금액 단가표시
+	SetPriceWrapOpen();	
+			
+	// Bline 확연 및 라디오 버튼 클릭 이벤트 추가
+	var blineCodeYn = $("#blineCode").val();
+	if(blineCodeYn != 'N' && blineCodeYn != ''){
+		$('input[name="send_adYn"]').val(['Y']);
+		$(".send_adYnN").css('display', 'none');
+		advMsgInsert();
+	}
+	
+	//미리보기 이미지 영역 숨김 처리
+	$('.preiew_img').hide();
+	$('.prePhoto').hide();
+	
+	//최초 화면 문자열 길이 체크해주기
+	var strCon = $('#smsTxtArea').val();
+	fnByteString(strCon);
+	
+	//일반문자, 광고문자 텍스트 내용 추가해주기
+	$('input[name=send_adYn]').change(function(){
+	
+		advMsgInsert();
+		
+	});
+	
+
+	
+	
+	//문자 내용 입력시 바이트수 계산하기
+	$('#smsTxtArea').keyup(function(e){
+// 		console.log("11$('.preview_auto').test() :: ",$('.realtime').html())
+// 		console.log("11$('.preview_auto').test() :: ",$('.realtime').text())
+		
+		var contents = $(this).val();
+		var adrYn = $("input[name=send_adYn]:checked").val();
+		
+		if(adrYn == 'N'){
+			
+			if((contents.indexOf("(광고)") > -1 && (contents.indexOf("무료거부") > -1 || contents.indexOf("무료 거부") > -1))
+					|| contents.indexOf("(광고)") > -1){
+				
+				alert("광고 내용이 인식되어 광고 문자로 전환됩니다.");
+				$('#smsTxtArea').val("");	//입력 내용 지워주기
+				$('#send_adYnY').prop('checked', true);
+				//광고 상하단 내용 넣어주기
+				advMsgInsert();
+				
+			}
+			
+			fnByteString(contents);
+			
+		}else{
+			
+			fnByteString(contents);
+			
+		}
+
+		
+		
+		
+	});//문자 바이트수 계산하기 끝
+	
+	
+	//스프레드 시트 Tabulator 초기 셋팅
+	/* var tabledata = [
+	 ]; */
+	
+	//var selectRow;
+	
+	//핸드폰 번호 Tabulator에서 수정시 중복 체크
+	function fnDuplPhone(){
+		
+		var recTableData = tableL.getRows();		 // 받는사람 리스트의 전체 목록을 저장
+		var tableData = [];
+		
+		//기존 받는사람 리스트를 배열에 미리 담아둔다.
+		if(recTableData.length > 0){
+			
+			for(var j=0; j < recTableData.length; j++){
+				
+				tableData.push({phone: removeDash(recTableData[j].getData().phone.trim()) , name: recTableData[j].getData().name, rep1: recTableData[j].getData().rep1, rep2: recTableData[j].getData().rep2, rep3: recTableData[j].getData().rep3, rep4: recTableData[j].getData().rep4});
+			
+			}
+		
+		}
+		
+		//수신목록에서 중복 휴대폰문자가 있는지 체크해주기
+		var dupCnt = dupliPhoneDataChk(tableData);
+		
+		if(dupCnt > 0){
+			
+			if(confirm("동일한 휴대폰 번호가 받는사람 목록에 등록되어 있습니다. 중복 번호를 삭제하시겠습니까?")){
+				
+				//수신목록에서 중복 휴대폰 번호 삭제해주기
+				tableL.clearData(); //기존 받는사람 목록을 삭제.
+				tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
+				_fileForm2 = []; //form file data 초기화
+				_fileIdx = 0;	//form file idx 초기화
+				
+				totRows = tableL.getRows().length; 
+				updateTotCnt(totRows); //전체 데이터 갯수 구하기
+				
+			}
+			
+		}
+		
+	}
+	
+	//받는사람 목록에 복사/붙여넣기 기능 처리
+	$('.callList_box').on('paste', function (e) {
+		console.log(' :: callList_box :: ');
+		
+		var element = e.originalEvent.clipboardData.getData('text'); // 클립보드에 복사한 데이터 가져오기
+		
+		var elmSplit= [];
+		  
+		elmSplit = element.split("\n");
+		
+		var elmLen = elmSplit.length;
+		
+		  
+		if(elmLen < 0){
+			  
+			alert("붙여넣을 연락처를 복사해주세요.");
+			return false;
+			  
+		}else{
+			tableErrorData.length = 0;	// 오류 번호 배열 초기화
+			
+			var splitData = [];
+			var realPhone = [];
+			for(var i=0; i < elmLen; i++){
+				  
+				var splitStr = elmSplit[i]; 
+				var tabData = [];
+				var comData = [];
+				
+				if(splitStr.indexOf('\t') != -1){
+					splitData = splitStr.split('\t'); //탭 구분으로 데이터 분할
+				}else if(splitStr.indexOf(',') != -1){
+					splitData = splitStr.split(','); //콤마 구분으로 데이터 분할
+				}else{
+					splitData = splitStr.split(' ');
+				}
+				
+				
+				if(splitData.length == 0){// 데이터가 없는경우
+					
+					alert("탭으로 구분하여 데이터를 복사해 주세요.");
+				  	return false;
+				  
+				}else if(splitData.length == 1){// 데이터가 탭으로 구분이 없는 경우
+					
+					for(var j=0; j < splitData.length; j++){
+						if(checkHpNum(splitData[j].trim())){//핸드폰 양식이 맞는지 확인
+							//배열 끝에 데이터 추가해 주기
+							realPhone.push({phone: removeDash(splitData[j].trim()), name: ""});
+						}
+						else {
+							if (splitData[j].trim() != '' && splitData[j].trim() != null && splitData[j].trim() != undefined) {
+								tableErrorData.push(splitData[j].trim());
+							}
+						}
+					}
+				
+				}else{//데이터가 탭으로 구분되어 이름, 연락처로 구분된 경우
+					
+					var phone = "";	//핸드폰번호
+					var name = "";	//이름
+					var rep1 = "";	//치환문자1
+					var rep2 = "";	//치환문자2
+					var rep3 = "";	//치환문자3
+					var rep4 = "";	//치환문자4
+					var isPhoneValid = false;
+					for(var j=0; j < splitData.length; j++){
+
+						if(j == 0){
+							
+							name = splitData[j].trim();
+							
+						}
+						
+						if(j == 1){
+							
+							if(checkHpNum(splitData[j].trim())){//핸드폰 양식이 맞는지 확인
+								phone = removeDash(splitData[j].trim());
+								isPhoneValid = true;
+							}else{
+								if (splitData[j].trim() != '' && splitData[j].trim() != null && splitData[j].trim() != undefined) {
+									tableErrorData.push(splitData[j].trim());
+								}
+							}
+							
+						}
+						
+						if(j == 2){	//치환문자1
+							
+							rep1 = splitData[j].trim();
+							
+						}
+						
+						if(j == 3){	//치환문자2
+							
+							rep2 = splitData[j].trim();
+							
+						}
+						
+						if(j == 4){	//치환문자3
+							
+							rep3 = splitData[j].trim();
+							
+						}
+						
+						if(j == 5){	//치환문자4
+							
+							rep4 = splitData[j].trim();
+							
+						}
+						
+					}
+					
+					if (isPhoneValid == true) {
+						//배열 끝에 데이터 추가해 주기
+						realPhone.push({phone: phone, name: name, rep1 : rep1, rep2 : rep2, rep3 : rep3, rep4 : rep4 });
+					}
+					
+				}//else end
+				  
+			}
+			
+			var recTableData = tableL.getRows();		 // 받는사람 리스트의 전체 목록을 저장
+			var tableData = [];
+			
+			//기존 받는사람 리스트를 배열에 미리 담아둔다.
+			if(recTableData.length > 0){
+				
+				for(var j=0; j < recTableData.length; j++){
+					
+					tableData.push({phone: removeDash(recTableData[j].getData().phone.trim()) , name: recTableData[j].getData().name, rep1: recTableData[j].getData().rep1, rep2: recTableData[j].getData().rep2, rep3: recTableData[j].getData().rep3, rep4: recTableData[j].getData().rep4,  });
+				
+				}
+			
+			}
+			
+			if(realPhone.length > 0){
+				
+				for(var j=0; j < realPhone.length; j++){
+					
+					tableData.push({phone: removeDash(realPhone[j].phone.trim()) , name: realPhone[j].name, rep1: realPhone[j].rep1, rep2: realPhone[j].rep2, rep3: realPhone[j].rep3, rep4: realPhone[j].rep4});
+				
+				}
+			
+			}
+			
+			//tableData.push(realPhone);
+				
+			//중복 연락처 1개만 남기고 삭제하기
+			var removeDuplPhone = dupliPhoneData(tableData);
+			  
+			//수신자 리스트에 전화번호 추가해주기
+			//tableL.addData(removeDuplPhone);
+			tableL.setData(removeDuplPhone);
+			
+			totRows = tableL.getRows().length; 
+			updateTotCnt(totRows); //전체 데이터 갯수 구하기
+			
+			var smsTxtArea = $('#smsTxtArea').val();
+			
+			//일괄변환 문구 결제금액 처리
+			if(smsTxtArea.indexOf("[*이름*]") > -1
+					|| smsTxtArea.indexOf("[*1*]") > -1
+					|| smsTxtArea.indexOf("[*2*]") > -1
+					|| smsTxtArea.indexOf("[*3*]") > -1
+					|| smsTxtArea.indexOf("[*4*]") > -1){
+				
+				fnReplCell();
+			}else{
+				//결제 금액 구하기
+			    totalPriceSum(totRows);
+			}
+
+			if (tableErrorData.length > 0) {
+				alert("올바르지 않은 휴대폰 번호가 "+ tableErrorData.length +" 건 있습니다.");
+			}			
+			
+		}
+		  
+	});
+	
+	//받는사람 번호 버튼 클릭시 Tabulator에 데이터 넣어주기
+	$('.addCallToF').click(function(){ 
+		
+		var callToNum = $('#callTo').val();
+		if (callToNum == null || callToNum == "") {
+		    alert("받는사람 번호를 입력해 주세요.");
+		    return false;
+		}
+
+		const textarea = $('#callTo');
+		const numbers = textarea.val().split('\n')
+		    .map(num => num.trim())
+		    .filter(num => num !== "");
+
+		console.log('입력된 번호들 : ', numbers);
+
+		// 현재 테이블에 있는 데이터 가져오기
+		const existingRows = tableL.getData();
+		const existingNumbers = new Set(existingRows.map(row => row.phone.replace(/[^0-9]/g, ''))); // 숫자만 남겨서 중복 비교
+
+		let duplicateCount = 0; // 중복 번호 개수를 저장할 변수
+		let invalidNumbers = []; // 유효하지 않은 번호를 저장할 배열
+
+		// 각 번호를 테이블에 추가 (중복 검사 및 포맷팅 포함)
+		numbers.forEach(number => {
+			const formattedNumber = formatPhoneNumber(number); // 번호 표준화
+// 			console.log('number : ', number)
+// 			console.log('formattedNumber : ', formattedNumber)
+			const cleanedNumber = formattedNumber.replace(/[^0-9]/g, ''); // 숫자만 남김
+			if (!existingNumbers.has(cleanedNumber)) { // 중복 번호 체크
+				if (isValidPhoneNumber(formattedNumber)) { // 유효성 검사
+					tableL.addRow({ phone: formattedNumber }); // 표준화된 번호로 추가
+					existingNumbers.add(cleanedNumber); // 추가된 번호를 기존 목록에 추가
+				} else {
+// 					alert(`유효하지 않은 번호 형식: ${number}`);
+					invalidNumbers.push(number); // 유효하지 않은 번호를 배열에 추가
+				}
+			} else {
+				duplicateCount++; // 중복 번호가 발견될 때마다 카운트를 증가
+			}
+		});
+
+		// 중복 번호 개수를 #rowDupCnt 요소에 표시
+		$("#rowDupCnt").text(duplicateCount);
+
+		updateTotCnt(tableL.getRows().length);
+		
+		// 유효하지 않은 번호가 있으면 alert로 표시
+		console.log('invalidNumbers : ', invalidNumbers);
+		if (invalidNumbers.length > 0) {
+			alert('유효하지 않은 번호 형식: \n'+ invalidNumbers.join('\n'));
+		}
+		// textarea 초기화
+		textarea.val(''); // jQuery 객체에서 값을 초기화할 때는 .val('') 사용
+		
+	});
+	
+
+
+
+	
+	//받는사람 전체삭제 버튼 처리
+	$('.all_del').click(function(){
+		
+		var data = tableL.getRows();	
+	
+		if(data == null || data == ""){
+			
+			alert("받는사람을 추가해 주세요.");
+			return false;
+		
+		}else{
+			
+			if(confirm("받는사람 목록을 모두 삭제하시겠습니까?")){
+				tableL.clearData();
+				$("#rowTotCnt").text(0); //총건수 수정
+				$("#rowDupCnt").text(0); //중복건수 수정
+				totalPriceSum(0);		 //결제 금액 수정
+			}
+	
+		}
+		
+	});
+	
+	
+	// 받는사람 선택삭제 버튼 처리해주기
+	$('.select_del').click(function(){
+		
+		if(tableL == null || tableL == ""){
+			
+			alert("받는사람을 추가해 주세요.");
+			return false;
+		
+		}
+		
+		var selectedData = tableL.getSelectedRows();
+		
+		if(selectedData == "" || selectedData == null){
+			
+			alert("삭제할 연락처를 선택해주세요.");
+			return false;
+		
+		}else{ // 선택한 Row 데이터 삭제하기
+			
+			if(confirm("선택하신 받는 사람을 삭제하시겠습니까?")){
+				
+				// 선택 데이터 삭제
+			    selectedData.forEach(row => row.delete());
+			    
+			    
+				totRows = tableL.getRows().length;
+				updateTotCnt(totRows);
+			    
+				var smsTxtArea = $('#smsTxtArea').val();
+				
+				//일괄변환 문구 결제금액 처리
+				if(smsTxtArea.indexOf("[*이름*]") > -1
+						|| smsTxtArea.indexOf("[*1*]") > -1
+						|| smsTxtArea.indexOf("[*2*]") > -1
+						|| smsTxtArea.indexOf("[*3*]") > -1
+						|| smsTxtArea.indexOf("[*4*]") > -1){
+					
+					fnReplCell();
+				}else{
+					//결제 금액 구하기
+				    totalPriceSum(totRows);
+				}
+				
+			}
+
+		}
+		
+	});
+	
+/* 	//받는사람 중복 삭제
+	$('.duple_del').click(function(){
+		
+		//기존 연락처 모두 불러오기
+	    var data = tableL.getRows();
+	    var tableData = [];
+	    var dpCnt = 0;
+	    var totLen = tableL.getRows().length;
+	    
+	    for(var i=0; i < totLen; i++){
+	    	
+	    	tableData.push({phone: data[i].getData().phone.trim(), name: data[i].getData().name});
+	    	
+	    }
+	    
+	    var removeDuplData = dupliPhoneData(tableData);
+		
+	    tableL.setData(removeDuplData);
+	    
+	    //총 받는사람 수 계산
+	    totRows = tableL.getRows().length;
+	    updateTotCnt(totRows);
+	    
+	  	//결제 금액 구하기
+	    totalPriceSum(totRows);
+	
+	}); */
+	
+	//주소록 불러오기 버튼 클릭시
+	$('.popupAddr').click(function(){
+		
+		var login = '${LoginVO.id}';
+		
+		if(login == null || login == ''){
+			
+			alert("로그인 후 이용이 가능합니다.");
+			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
+			});
+		});
+		
+	});
+	
+	//엑섹불러오기 버튼 클릭시 파일 첨부 실행
+	$('.c3').click(function(){ // 엑셀파일 불러오기 선택 시
+		
+		$("#excelFile").click();
+		
+	});
+	
+	//엑섹불러오기 버튼 클릭시 파일 첨부 실행
+	$('.upImg').click(function(){ // 엑셀파일 불러오기 선택 시
+		
+		$("#imgFile").click();
+		
+	});
+	
+	//최근전송내역 팝업 선택추가 버튼 처리(체크내역 받는사람 리스트로 추가해주기)
+	$(document).on('click', '#latestAddPhone', function (){
+		var addPhoneList = []; //신규로 추가할 전화번호 저장변수
+		$("input:checkbox[name='latAddrChk']:checked").each(function(index){
+			var chkPhone = $(this).val();
+			if(!checkHpNum(chkPhone)){
+				alert("올바른 전화번호가 아닙니다.");
+				return false;
+			}else{
+				addPhoneList.push({phone: removeDash(chkPhone.trim())});
+			}
+		});
+		
+		if(addPhoneList.length > 0){
+			//연락처 추가해 주기
+			addPhoneInfo(addPhoneList);
+			$("#btnLatestAddPhoneClose").trigger("click");
+		}
+		else {
+			alert("연락처를 선택해주세요.");
+			return false;
+		}		
+	});
+	
+	//최근전송내역 팝업 전체추가 버튼 처리
+	$(document).on('click', '#latestAddPhoneAll', function (){
+		var addPhoneList = []; //신규로 추가할 전화번호 저장변수
+		$("input:checkbox[name='latAddrChk']").each(function(index){
+			var chkPhone = $(this).val();
+			if(!checkHpNum(chkPhone)){
+				alert("올바른 전화번호가 아닙니다.");
+				return false;
+			}else{
+				addPhoneList.push({phone: removeDash(chkPhone.trim())});
+			}
+		});
+		
+		if(addPhoneList.length > 0){
+			//연락처 추가해 주기
+			addPhoneInfo(addPhoneList);
+			$("#btnLatestAddPhoneClose").trigger("click");
+		}
+		else {
+			alert("연락처가 없습니다.");
+			return false;
+		}		
+	});
+	
+	//최근전송내역 팝업 선택 취소 버튼 처리
+	$(document).on('click', '#latestCancelPhone', function (){
+		
+		$("input[name=latAddrChk]").prop("checked", false);
+		
+	});
+	
+	//최근전송내역 팝업 삭제 버튼 처리
+	$(document).on('click', '#latestAddrDel', function (){
+		
+		$(this).parent("#latestLi").remove();
+		
+	});
+	
+	//자주보내는 번호 팝업 선택추가 버튼 처리(체크내역 받는사람 리스트로 추가해주기)
+	$(document).on('click', '#bookMarkAddPhone', function (){
+		var addPhoneList = []; //신규로 추가할 전화번호 저장변수
+		$("input:checkbox[name='bookAddrChk']:checked").each(function(index){
+			var chkPhone = $(this).val();
+			if(!checkHpNum(chkPhone)){
+				alert("올바른 전화번호가 아닙니다.");
+				return false;
+			}else{
+				addPhoneList.push({phone: removeDash(chkPhone.trim())});
+			}
+		});
+		
+		if(addPhoneList.length > 0){
+			//연락처 추가해 주기
+			addPhoneInfo(addPhoneList);
+			$("#btnLatestAddPhoneClose").trigger("click");
+		}
+		else {
+			alert("연락처를 선택해주세요.");
+			return false;
+		}		
+	});
+	
+	//자주보내는 번호 팝업 전체추가 버튼 처리
+	$(document).on('click', '#bookMarkAddPhoneAll', function (){
+		var addPhoneList = []; //신규로 추가할 전화번호 저장변수
+		$("input:checkbox[name='bookAddrChk']").each(function(index){
+			var chkPhone = $(this).val();
+			if(!checkHpNum(chkPhone)){
+				alert("올바른 전화번호가 아닙니다.");
+				return false;
+			}else{
+				addPhoneList.push({phone: removeDash(chkPhone.trim())});
+			}
+		});
+		
+		if(addPhoneList.length > 0){
+			//연락처 추가해 주기
+			addPhoneInfo(addPhoneList);
+			$("#btnLatestAddPhoneClose").trigger("click");
+		}
+		else {
+			alert("연락처가 없습니다.");
+			return false;
+		}		
+	});
+	
+	//자주보내는 번호 팝업 선택 취소 버튼 처리
+	$(document).on('click', '#bookMarkCancelPhone', function (){
+		
+		$("input[name=bookAddrChk]").prop("checked", false);
+		
+	});
+	
+	//자주보내는 번호 팝업 삭제 버튼 처리
+	$(document).on('click', '#bookMarkAddrDel', function (){
+		
+		$(this).parent("#bookMarkLi").remove();
+		
+	});
+	
+	// 자주보내는 번호 팝업 닫기 버튼 처리
+	$(document).on('click', '#btnLatestAddPhoneClose', function (){
+		// 자주보내는 번호 체크박스 해제처리
+		setCheckBoxUnChecked();		
+	});	
+	
+	// 자주보내는 번호 체크박스 해제처리
+	function setCheckBoxUnChecked() {
+		$("input[name=latAddrChk]").prop("checked", false);
+		$("input[name=bookAddrChk]").prop("checked", false);
+	}
+	
+	
+	//오류 검사 버튼 처리
+	$('.check_validity').click(function(){
+		
+		var invalid = tableL.getInvalidCells();		//오류 데이터 체크
+		var dataLen = tableL.getRows().length;		//연락처 데이터 갯수
+		var totLen = invalid.length;				//오류 데이터 갯수
+		var errMsg = "";							//최종 alert에 표시할 메시지 저장 변수
+		
+		if(dataLen > 0){ //연락처 정보가 있으면 수행
+			
+			if(totLen > 0){ //내용에 오류가 있으면 수행
+				
+				//오류 데이터 값 저장
+				for(var i=0; i < totLen; i++){
+					
+					var cellValue = invalid[i].getValue();
+					
+					if(i == 0){
+						
+						errMsg = cellValue;
+						
+					}else{
+						
+						errMsg = errMsg +", "+ cellValue;
+						
+					}
+					
+				}
+				
+				if(errMsg == "" || errMsg == null){
+					
+					alert("내용에 오류가 있습니다.");
+					return false;
+					
+				}else{
+					
+					alert(errMsg + "의 내용에 오류가 있습니다.");
+					return false;
+					
+				}
+				
+			}else{
+				
+				alert("오류 데이터가 없습니다.");
+				return false;
+				
+			}
+			
+		}else{
+			
+			alert("연락처를 입력해 주세요.");
+			return false;
+			
+		}
+		
+	});
+	
+	//문자입력창의 첨부된 이미지 순서를 바꿀 때
+	$(document).on('mouseup', '.thumb_wrap img', function (){
+		//미리보기 창의 이미지 순서를 변경한다
+		setTimeout(function() { 
+			var previewHtml = "";
+			var imgCnt = $("#imgCnt").val();
+			//이미지 갯수만큼 for문 돌림
+
+			for(var i=0; i<imgCnt; i++) {
+				var imgTag = $(".thumb_wrap li:eq("+i+") div").html(); // 썸네일에 있는 이미지 태그 가져오기
+				previewHtml += '<div class="img_box preBoxF on_scroll_img" id="preBoxF'+(i+1)+'">'
+				previewHtml += imgTag;
+				previewHtml += '</div>'
+			}
+			$('.preViewShort div').remove(); //미리보기 영역에 있던 이미지 다 지우고
+			$('.preViewShort').append(previewHtml);  //새로 sorting된 이미지 그려주기
+		}, 100);
+		
+	});
+	
+	//문자 샘플 탭, 그림문자 샘플 탭 선택시 옵션 초기화
+	$('.tab').click(function(){
+
+		var index = $(this).index();
+		var form = document.letterForm;
+		
+		if($(this).hasClass("active") === true){
+			
+			if(index == 0){
+				
+				form.pageIndex.value = 1;
+				form.letterType.value = "S";
+				form.categoryCode.value = "";
+				form.hashTag.value = "";
+			
+			}else if(index == 1){
+				
+				form.pageIndex.value = 1;
+				form.letterType.value = "P";
+				form.categoryCode.value = "";
+				form.hashTag.value = "";
+				
+			}else if(index == 2){
+				
+				setTimeout(function(){ 
+			    	map.relayout();
+			    	map.setCenter(testcoords);
+			    }, 0);
+				
+			}
+		
+		}
+		
+	});
+	
+	
+	//이미지 선택시 그림문자 처리
+	$(document).on('click', '.photoOnImg', function(){ 
+		
+		// 클릭 시 조회수 증가 로직
+		var letterId = $(this).attr('id');
+		
+		var url = "/web/mjon/msgdata/updateSmsTemplateCntAjax.do";
+		
+		$.ajax({
+			type: "POST",
+			url: url,
+			data: {'letterId':letterId},
+			dataType:'json',
+			async: false,
+			cache: false,
+			success: function (returnData, status) {
+				console.log("status : ", status);
+			},
+			error: function (e) {console.log("ERROR : ", e); }
+		});
+		// 클릭 시 조회수 증가 로직 끝
+		
+		var imgId = $(this).parent().find("input").val();
+		
+		imageControl($(this), "edit_n", "Template", imgId);
+		
+		var contents = $('#smsTxtArea').val();
+		//(contents);
+		
+		totRows = tableL.getRows().length; 
+		updateTotCnt(totRows); //전체 데이터 갯수 구하기
+		
+		//일괄변환 문구 결제금액 처리
+		if(contents.indexOf("[*이름*]")  > -1
+				|| contents.indexOf("[*1*]") > -1
+				|| contents.indexOf("[*2*]") > -1
+				|| contents.indexOf("[*3*]") > -1
+				|| contents.indexOf("[*4*]") > -1){
+			
+			fnReplCell();
+			
+		}else{
+			
+			//결제금액 표시해주기
+			var totalPrice  = totalPriceSum(totRows);
+			$('#totalPrice').text(totalPrice);
+			$('#txtReplYn').val("N");
+			
+		}
+
+		var sendOfT=$('.send_top').offset().top;
+		$('html,body').stop().animate({'scrollTop':sendOfT-60},250);
+		/* 
+		//결제 금액 구하기
+	    totalPriceSum(totRows); */
+		
+	});
+	
+	
+	//그림문자 이미지 삭제 처리 - 동적으로 추가한 객체는 on 함수로 불러올 수 있다.
+	$(document).on('click', '.file_close', function(){ 
+		var delImgPath = ""; //삭제하려는 이미지 경로 받아오기 
+		var index = $(this).parent().index(); // 현재 선택 된 객체 인덱스 번호 받아오기
+		var imgCnt = $("#imgCnt").val(); // 현재 첨부된 이미지의 갯수
+		var contents = $('#smsTxtArea').val();
+		
+		//선택한 태그의 부모 이미지 li 객체 삭제
+		$(this).parent(".delLi").remove();
+		
+		//미리보기 화면에서의 이미지 객체 삭제
+		//삭제하려는 이미지 경로 받아오기
+		delImgPath = $('.preBoxF').eq(index).find("img").attr("src");
+		
+		$('.preBoxF').eq(index).remove();
+		
+		// 삭제한 이미지 경로 배열에서 삭제해 주기
+		for(var i=0; i < imgFilePath.length; i++){
+			
+			if(imgFilePath[i] == delImgPath){
+				
+				imgFilePath.splice(i, 1); //이미지 경로 삭제
+				imgFileId.splice(i, 1);   //이미지 아이디 삭제 - 내 문자 보관함 저장용으로 사용
+				i--;
+			}
+			
+		}
+		
+		//imgCnt--;
+		$("#imgCnt").val(Number(imgCnt) - 1);
+		
+		//미리보기 포토 1,2,3 번 번호 표시 변경
+		$('.photo_num_02').hide();
+		$('.photo_num_03').hide();
+		if(imgCnt > 2){
+			
+			$('.photo_num_01').show();
+			$('.photo_num_02').show();
+			
+			
+		}else if(imgCnt > 1){
+			$('.photo_num_01').show();
+			
+		}else{
+			
+			//그림을 모두 삭제 했을때 단문으로 변경
+			$('.preShort').show();
+			$('.prePhoto').hide();
+			
+			$('.msg_com').removeClass("msg_photo");
+			$('.msg_com').addClass("msg_short");
+			$('.put_left').removeClass("photo");
+			$('#msgType').val("4"); // 메세지 타입 설정
+			
+			fnByteString(contents);
+			
+		}
+		
+		//수신목록 전체 데이터 갯수 구하기
+		updateTotCnt(totRows);
+		
+		//일괄변환 문구 결제금액 처리
+		if(contents.indexOf("[*이름*]")  > -1
+				|| contents.indexOf("[*1*]") > -1
+				|| contents.indexOf("[*2*]") > -1
+				|| contents.indexOf("[*3*]") > -1
+				|| contents.indexOf("[*4*]") > -1){
+			
+			fnReplCell();
+			
+		}else{
+			
+			//결제금액 표시해주기
+			var totalPrice  = totalPriceSum(totRows);
+			$('#totalPrice').text(totalPrice);
+			$('#txtReplYn').val("N");
+			
+		}
+		
+		var scrollHei = $(".mCustomScrollBox").height();
+		if(scrollHei > 488) {
+			$(".img_box").removeClass("on_scroll_img");
+		}
+		
+	}); 
+	
+	// 초기화 버튼 처리
+	$('.btnReset').click(function(){
+		
+		//일반문자 라이오 선택해 주기
+		$("#send_adYnN").prop("checked", true);
+		
+		// Bline 확연 및 라디오 버튼 클릭 이벤트 추가
+		var blineCodeYn = $("#blineCode").val();
+		if(blineCodeYn != 'N' && blineCodeYn != ''){
+			$('input[name="send_adYn"]').val(['Y']);
+			$(".send_adYnN").css('display', 'none');
+		}
+		
+		$('.delLi').each(function(){
+			
+			$(this).remove();
+			
+		});
+		
+		$('.preBoxF').each(function(){
+			
+			$(this).remove();
+			
+		});
+		
+		//그림 카운트 초기화
+		$('#imgCnt').val(0);
+		
+		//그림을 모두 삭제 했을때 단문으로 변경
+		$('.preShort').show();
+		$('.prePhoto').hide();
+		
+		$('.msg_com').removeClass("msg_photo");
+		$('.msg_com').addClass("msg_short");
+		$('#msgType').val("4"); // 메세지 타입 설정
+		
+		//메세지 내용 초기화
+		$('#smsTxtArea').val("");
+		fnByteString("");
+		
+	});
+	
+	// 동적으로 추가해주기 때문에 on 사용
+	$(document).on('click', '.letterMsg', function(){ //문자 템플릿 선택시 상단 문자 내용에 입력해주기 
+	
+		// 클릭 시 조회수 증가 로직
+		var letterId = $(this).attr('id');
+		
+		var url = "/web/mjon/msgdata/updateSmsTemplateCntAjax.do";
+		
+		$.ajax({
+			type: "POST",
+			url: url,
+			data: {'letterId':letterId},
+			dataType:'json',
+			async: false,
+			cache: false,
+			success: function (returnData, status) {
+				console.log("status : ", status);
+			},
+			error: function (e) {console.log("ERROR : ", e); }
+		});
+		// 클릭 시 조회수 증가 로직 끝
+		
+		var smsTxtArea = $(this).find('.msg_text').html();
+				
+		smsTxtArea = smsTxtArea.replace(/(<br>|<br\/>|<br \/>)/g, '\n');
+		$('#smsTxtArea').val("");
+		$('#smsTxtArea').val(smsTxtArea);
+		fnByteString(smsTxtArea);
+
+		var sendOfT=$('.send_top').offset().top;
+		$('html,body').stop().animate({'scrollTop':sendOfT-60},250);
+	});
+	
+	// 동적으로 추가해주기 때문에 on 사용
+	$(document).on('click', '.btnSearchF', function(){ // 검색 기능 실행 
+		
+		var formL = document.letterForm;
+		var formM = document.myMsgForm;
+		formL.categoryCode.value = ""; //해시태그 검색 시 카테고리 제거
+		formL.upperCateNo.value = ""; //해시태그 검색 시 카테고리 제거
+		/* if(form.searchKeyword.value == ""){
+			
+			alert("검색어를 입력해 주세요.");
+			return false;
+			
+		} */
+		
+		var tabIndex = $(".selectedTab").children(".active").index();
+
+		//문자 리스트 불러오기 
+		if(tabIndex == 0) {
+			
+			if($('.tDep1_letType a').eq(0).hasClass('on')) {
+				formL.letterType.value="S";
+			} else if ($('.tDep1_letType a').eq(1).hasClass('on')) {
+				formL.letterType.value="L";
+			}
+			
+			fnLetterListAjax(1);
+		}
+		//그림 문자 리스트 불러오기
+		if(tabIndex == 1) {
+			formL.letterType.value="P";
+			fnPhotoListAjax(1);
+		}
+		//내문자함 리스트 불러오기
+		if(tabIndex == 3) {
+			formM.searchKeyword.value = formL.searchKeyword.value; //letterForm의 검색어를 문자함 검색어 부분에 입력해줌
+			fnMyMsgListAjax(1);
+		}
+		$('.bottom_content.current .area_total_count').show();
+		return false;
+	});
+	
+	//탭 선택시에 검색자 초기화하여 검색하기
+	$(document).on('click', '.selectedTab', function(){
+		var formL = document.letterForm;
+		var formM = document.myMsgForm;
+		formL.categoryCode.value = ""; //탭 선택시 카테고리 제거
+		formL.upperCateNo.value = ""; //탭 선택시 카테고리 제거
+		
+		var tabIndex = $(".selectedTab").children(".active").index();
+		
+		//2줄보기, 4줄보기 초기화
+		$("#LPageUnit option:eq(0)").prop("selected", true);
+		$("#PhPageUnit option:eq(0)").prop("selected", true);
+		$("#msgPageUnit option:eq(0)").prop("selected", true);
+
+		$('.bottom_content .area_total_count').hide();
+		 
+		//문자 리스트 불러오기 
+		if(tabIndex == 0) {
+			formL.letterType.value="S";
+			formL.pageUnit.value = "10";
+			formL.searchKeyword.value="";
+			fnLetterListAjax(1);
+		}
+		//그림 문자 리스트 불러오기
+		if(tabIndex == 1) {
+			formL.letterType.value="P";
+			formL.pageUnit.value = "10";
+			formL.searchKeyword.value="";
+			fnPhotoListAjax(1);
+		}
+		//내문자함 리스트 불러오기
+		if(tabIndex == 3) {
+			formM.pageUnit.value = "10";
+			formM.searchKeyword.value = "";
+			fnMyMsgListAjax(1);
+		}
+		
+	});
+	
+	/*
+	
+		단문 / 장문 탭 옵션 선택시 실행 
+	
+	**/
+	
+	$('.tDep1_mType').click(function(){ // 전체,기업, 개인 선택 옵션 처리
+		
+		var mType = $(this).find('.on').text();
+		var form = document.letterForm;
+		
+		if(mType == "전체"){
+			
+			form.memberType.value = "";
+			
+		}else if(mType == "기업"){
+			
+			form.memberType.value = "B";
+			
+		}else{
+			
+			form.memberType.value = "P";
+			
+		}
+		
+		//문자 리스트 불러오기
+		//form.letterType.value = "S";
+		form.categoryCode.value = "";
+		form.hashTag.value = "";
+		form.pageIndex.value = 1;
+		
+		//문자 리스트 불러오기
+		fnLetterListAjax(1);
+		
+	});
+	
+	$('.tDep1_letType').click(function(){ // 단문, 장문 선택 시 옵션처리
+		
+		var letterType = $(this).find('.on').attr("value");
+		var form = document.letterForm;
+		
+		form.letterType.value = letterType;
+		
+		//문자 리스트 불러오기
+		fnLetterListAjax(1);
+		
+	});
+	
+	$('.tDep1_cateCode').click(function(){ // 카테고리 선택 시 옵션 처리
+		var cateCode = $(this).find('.on').attr("value");
+		var form = document.letterForm;
+		if($('.tDep1_letType a').eq(0).hasClass('on')) {
+			form.letterType.value="S";
+		} else if ($('.tDep1_letType a').eq(1).hasClass('on')) {
+			form.letterType.value="L";
+		}
+		
+		if(cateCode == "all"){ //전체 선택시
+			
+			cateCode = "";	
+		
+		} else {
+			//카테고리 코드 클릭 시 해쉬태그 초기화 후 전체 선택
+			form.hashTag.value="";
+			$('.tDep1_hashTag').find('.on').removeClass('on');
+			$('.tDep1_hashTag').find('.hashAll').addClass('on');
+		}
+		form.upperCateNo.value = "";
+		form.categoryCode.value = cateCode;
+		form.pageIndex.value = 1;
+		//카테고리 클릭 시 검색자 초기화
+		form.searchKeyword.value = "";
+		
+		//문자 리스트 불러오기
+		fnLetterListAjax(1);
+		
+	});
+	
+	$('.tDep1_threeCateCode').click(function(){ // 하위 카테고리 선택 시 문자샘플 조회
+		var cateCode = $(this).find('.on').attr("value");
+		var form = document.letterForm;
+		var upperCateNo = $(this).siblings('div').find('.on').attr('value');
+		form.upperCateNo.value = upperCateNo;
+		form.categoryCode.value=cateCode;
+		//해쉬태그 검색자 초기화
+		form.searchKeyword.value = "";
+		form.pageIndex.value = 1;
+		
+		//문자 리스트 불러오기
+		fnLetterListAjax(1);
+		
+	});
+	
+	$('.tDep1_hashTag').click(function(){ // 해시 태그 선택 시 옵션 처리
+		var hashTag = $(this).find('.on').attr("value");
+		var form = document.letterForm;
+		
+		//해쉬태그 클릭 시 카테고리코드 초기화 후 전체 선택
+		form.categoryCode.value="";
+		$('.tDep1_cateCode').find('.on').removeClass('on');
+		$('.tDep1_cateCode').find('.cateAll').addClass('on');
+		//해쉬태그 클릭 시 검색자 초기화
+		form.searchKeyword.value = "";
+		
+		form.hashTag.value = hashTag;
+		form.pageIndex.value = 1;
+		
+		//문자 리스트 불러오기
+		fnLetterListAjax(1);
+		
+	});
+	
+	
+	/*
+		
+		그림문자 탭 옵션 선택시 사용
+	
+	*/
+	
+	$('.tDep2_mType').click(function(){ // 전체,기업, 개인 선택 옵션 처리
+		
+		var mType = $(this).find('.on').text();
+		var form = document.letterForm;
+		
+		if(mType == "전체"){
+			
+			form.memberType.value = "";
+			
+		}else if(mType == "기업"){
+			
+			form.memberType.value = "B";
+			
+		}else{
+			
+			form.memberType.value = "P";
+			
+		}
+		
+		//문자 리스트 불러오기
+		form.letterType.value = "P";
+		form.categoryCode.value = "";
+		form.hashTag.value = "";
+		form.pageIndex.value = 1;
+		
+		fnPhotoListAjax(1);
+		
+	});
+	
+	$('.tDep2_letType').click(function(){ // 그림문자 선택 
+		
+		var letterType = $(this).find('.on').attr("value");
+		var form = document.letterForm;
+		form.letterType.value = 'P';
+		
+		//문자 리스트 불러오기
+		fnPhotoListAjax(1);
+		
+	});
+	
+	$('.tDep2_cateCode').click(function(){ // 그림 문자 카테고리 선택 시 옵션 처리
+		
+		var cateCode = $(this).find('.on').attr("value");
+		var form = document.letterForm;
+		
+		if(cateCode == "all"){ //전체 선택시
+			
+			cateCode = "";	
+		
+		} else {
+			//카테고리 코드 클릭 시 해쉬태그 초기화 후 전체 선택
+			form.hashTag.value="";
+			$('.tDep2_hashTag').find('.on').removeClass('on');
+			$('.tDep2_hashTag').find('.hashAll').addClass('on');
+		}
+		
+		form.upperCateNo.value = "";
+		form.categoryCode.value = cateCode;
+		form.pageIndex.value = 1;
+		//카테고리 클릭 시 검색자 초기화
+		form.searchKeyword.value = "";
+		//문자 리스트 불러오기
+		fnPhotoListAjax(1);
+		
+	});
+	
+	$('.tDep2_threeCateCode').click(function(){ // 하위 카테고리 선택 시 문자샘플 조회
+		var cateCode = $(this).find('.on').attr("value");
+		var form = document.letterForm;
+		var upperCateNo = $(this).siblings('div').find('.on').attr('value');
+		form.upperCateNo.value = upperCateNo;
+		form.categoryCode.value=cateCode;
+		//해쉬태그 검색자 초기화
+		form.searchKeyword.value = "";
+		form.pageIndex.value = 1;
+		
+		//그림문자 리스트 불러오기
+		fnPhotoListAjax(1);		
+	});
+	
+	
+	$('.tDep2_hashTag').click(function(){ // 그림문자 해시 태그 선택 시 옵션 처리
+		var hashTag = $(this).find('.on').attr("value");
+		var form = document.letterForm;
+		
+		//해쉬태그 클릭 시 카테고리코드 초기화 후 전체 선택
+		form.categoryCode.value="";
+		$('.tDep2_cateCode').find('.on').removeClass('on');
+		$('.tDep2_cateCode').find('.cateAll').addClass('on');
+		//해쉬태그 클릭 시 검색자 초기화
+		form.searchKeyword.value = "";
+		
+		form.hashTag.value = hashTag;
+		form.pageIndex.value = 1;
+		
+		//문자 리스트 불러오기
+		fnPhotoListAjax(1);
+	});
+	
+	
+	$(".fontPlus").click(function () {
+		var currentSize = $(".preview_auto").css("fontSize");
+		var size = parseInt(currentSize, 10) * 1.2;
+		var unit = currentSize.slice(-2);
+		if(size > 65){
+			return false;
+		}
+		$(".preview_auto").css("fontSize", size+unit);
+	});
+	
+	$(".fontMinus").click(function () {
+		var currentSize = $(".preview_auto").css("fontSize");
+		var size = parseInt(currentSize, 10) / 1.2;
+		var unit = currentSize.slice(-2);
+		if(size < 10){
+			return false;
+		}
+		$(".preview_auto").css("fontSize", size+unit);
+	});
+	
+	//즉시, 예약 선택시 날짜 영역 초기 표시
+	var reYn = $("input[name=reserYn]:checked").val();
+	
+	if(reYn == "N"){
+		$('.rev_selected').hide();
+	}else{
+		$('.rev_selected').show();
+	}
+	
+	//즉시 발송 라디오 버튼 선택시 숨김처리
+	$("#reserYnN").on('click', function(){
+		$('.rev_selected').hide();
+		$('.send_rev .send_content').css('padding-bottom','108px');
+		$('.send_btn .btnType:first-child').html('발송하기');
+	});
+	
+	//예약 발송 라디오 버튼 선택시 숨김 해제처리
+	$("#reserYnY").on('click', function(){
+		$('.rev_selected').show();
+		$('.send_rev .send_content').css('padding-bottom','0');
+		$('.send_btn .btnType:first-child').html('예약하기');
+	});
+});
+
+function advMsgInsert(){
+	
+	var advStr = '<div class="ad_txt"><p>(광고)</p></div>';
+	var advDenyStr = '<div class="deny_txt"><p>무료거부 0808800858</p> </div>';
+	
+	var preAdvStr = '<p class="ad_tit">(광고)</p>';
+	var preAdvDenyStr = '<p class="deny_receipt">무료거부 0808800858</p>';
+	
+	//광고 및 무료수신거부 텍스트 추가
+	if ($('input[name=send_adYn]:checked').val() == 'Y'){
+		
+		//문자 내용에 광고 문자 추가해주기
+		$(advStr).insertBefore('textarea[name=smsTxtArea]'); 
+		$(advDenyStr).insertBefore('div[name=afterDeny]');
+		
+		//미리보기에 광고 문자 추가해주기
+		$(preAdvStr).insertBefore('.none_txt');
+		$(preAdvDenyStr).insertAfter('.realtime');
+		
+		//$('#smsTxtArea').val(advStr + "\r\n" + contents + "\r\n" + advDenyStr);
+		
+		
+	}else{ //광고 및 무료수신거부 텍스트 삭제
+		
+		//문자내용 광고문자 삭제하기
+		$('.ad_txt').remove();
+		$('.deny_txt').remove();
+		
+		//미리보기 광고 문자 삭제하기
+		$('.ad_tit').remove();
+		$('.deny_receipt').remove();
+		
+	}
+	
+	//문자 바이트수 계산하기
+	fnByteString($('#smsTxtArea').val());
+	
+}
+
+//문자 바이트수 계산하기 함수
+function fnByteString(contents){
+	var totalByte = 0; 
+	//var content = contents;
+	var adverYn = $("input[name='send_adYn']:checked").val();
+	var adTxtLeng = 0;
+	var denyTxtLeng = 0;
+	var adverTxt = $('.ad_txt').html();
+	var denyTxt = $('.deny_txt').html();
+
+	//광고문자 상단 문구 줄바꿈 처리하기(문자길이 바이트수 계산을 위해서)
+	if(typeof adverTxt !='undefined' && adverTxt != null){
+		
+		adverTxt = adverTxt.replaceAll("<p>","");
+		adverTxt = adverTxt.replaceAll("</p>","");
+		adTxtLeng = conByteLeng(adverTxt);
+
+	}
+	
+	//광고문자 하단 문구 줄바꿈 처리하기(문자길이 바이트수 계산을 위해서)
+	if(typeof denyTxt !='undefined' && denyTxt != null){
+		
+		denyTxt = denyTxt.replaceAll("<p>","\n");
+		denyTxt = denyTxt.replaceAll("</p>","");
+		denyTxtLeng = conByteLeng(denyTxt);
+		
+	}
+	
+	$('#msgLeng').html("");
+	$('#limitLeng').html("");
+	var conLeng = conByteLeng(contents); // 내용 문자 입력 바이트 수 계산하기
+	
+	//일반문자, 광고문자에 따른 문자 길이 변경해주기
+	if(adverYn == "N"){
+		
+		$('#msgLeng').text(conLeng);
+		
+		//문자 길이 변수에 저장해주기
+		$('#smsLen').val(conLeng);
+		
+	}else{
+		
+		conLeng = adTxtLeng + conLeng + denyTxtLeng; // 상단 광고 텍스트 , 하단 080 문자내용 길이 더해주기
+		$('#msgLeng').text(conLeng);
+		
+		//문자 길이 변수에 저장해주기
+		$('#smsLen').val(conLeng);
+		
+	}
+	
+	var photoSts = $('.delLi').length;
+	if(photoSts > 0){
+		
+		$('#msgLeng').html(conLeng + " / ");
+		$('#limitLeng').html("2000");
+		$('.msg_com').html("그림");
+		$('#msgType').val("6"); // 메세지 타입 설정
+		
+		$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
+		$('.put_left').removeClass("short"); //내용 입력 박스 클래스 삭제
+		$('.msg_com').removeClass("msg_long"); //장문 클래스 삭제하고
+		$('.put_left').removeClass("long"); //내용 입력 박스 클래스 삭제
+		$('.msg_com').addClass("msg_photo"); // 그림 클래스 삽입
+		$('.put_left').addClass("photo");  // 내용 입력 박스에 클래스 삽입
+		$('.put_left').css("display","block");  // 내용 입력 박스에 클래스 삽입
+		$('.msg_title').addClass('active');
+		//document.getElementById("mmsSubject").disabled = false;
+		
+	}else{
+		
+		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"); // 장문 클래스 삽입
+			$('.put_left').addClass("long");  // 내용 입력 박스에 클래스 삽입
+			$('.msg_title').addClass('active');
+			//document.getElementById("mmsSubject").disabled = false;
+			
+		}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"); // 장문 클래스 삽입
+			$('.put_left').addClass("short");  // 내용 입력 박스에 클래스 삽입
+			$('.msg_title, .title_wrap .textbox').removeClass('active');
+			$('#mmsSubject').val("");
+			$('#title_y').prop('checked',false);
+			$('#title_n').prop('checked',true);
+			//제목 비활성화로 내용 지워주기
+			/* $('#mmsSubject').val("");
+			document.getElementById("mmsSubject").disabled = true; */
+			
+		}
+		
+	}
+	
+	
+	// 미리보기 데이터 입력해 주기 , 줄바꿈 문자 변환해주기
+	//var repContent = "";
+	//repContent = content.replace(/(?:\r\n|\r|\n)/g, '<br/>');
+	
+	
+	if(conLeng > 0){
+		
+		$('.none_txt').text("");
+		
+	}else{
+		
+		$('.none_txt').text("내용을 입력해주세요.");
+		
+	}
+
+	//미리보기에 내용 입력해 주기
+	$('.realtime').text(contents);
+
+	// 2000byte 초과시 메세지 알림
+	if(conLeng > 2000){
+		
+		//2000바이트 초과시 문자열 잘라서 보여주기
+		var subUnderStr = strUnderLineSubstring(contents, 2000);
+		$('#smsTxtArea').val(subUnderStr);
+		
+		//문자 바이트수 수정해주기
+		$('#msgLeng').text(conByteLeng(subUnderStr));
+		
+		//문자 길이 변수에 저장해주기
+		$('#smsLen').val(conByteLeng(subUnderStr));
+		
+ 		alert("문자 내용은 2000byte를 넘을 수 없습니다.");
+		return false;
+	}
+	
+	//수신목록 전체 데이터 갯수 구하기
+// 	updateTotCnt(totRows);
+	
+	//일괄변환 문구 결제금액 처리
+	if(contents.indexOf("[*이름*]")  > -1
+			|| contents.indexOf("[*1*]") > -1
+			|| contents.indexOf("[*2*]") > -1
+			|| contents.indexOf("[*3*]") > -1
+			|| contents.indexOf("[*4*]") > -1){
+		
+		fnReplCell();
+		
+	}else{
+		
+		var totalPrice  = totalPriceSum(totRows);
+		$('#totalPrice').text(totalPrice);
+		$('#txtReplYn').val("N");
+		
+	}
+	
+}
+	
+function openPhotoEditor() {
+	var imgCnt = $("#imgCnt").val();
+	
+	if(imgCnt >= 3) {
+		alert("메시지에 첨부할 수 있는 이미지는 최대 3장입니다.");
+		return;		
+	}
+	
+    //만들려는 팝업의 크기
+    var popup_wid = '1100';
+    var popup_ht = '851';
+
+    //중앙 정렬을 위해 윈도우 스크린의 width,height 구하는 변수 만듦
+    var popup_left = (window.screen.width / 2) - (popup_wid / 2);
+    var popup_top =(window.screen.height / 2) - (popup_ht / 2);
+
+    window.open('<c:url value='/web/mjon/msgdata/openImageEditorPopup.do'/>', 'a', 'width=' + popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top + ', scrollbar=no' );
+
+}
+
+//그림샘플 이미지 선택시 문자 내용에 입력 처리
+function imageControl(obj, editYn, imageName, imgId) {
+	
+	var imgCnt = $("#imgCnt").val(); // 현재 페이지에 첨부된 이미지 갯수
+	var imgSrc = obj.attr("src");
+	
+	if(imgCnt >= 3){
+		alert("이미지는 3장만 선택할 수 있습니다.");
+		return false;
+	}
+
+	$('.preShort').hide();
+	$('.prePhoto').show();
+	
+	if($('.msg_com').hasClass("msg_short") === true){
+		
+		$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
+		$('.msg_com').addClass("msg_photo"); // 그림문자용 클래스 삽입
+		$('.put_left').removeClass("short");
+		$('.put_left').addClass("photo");
+		$('.msg_com').html("그림");
+		$('#msgType').val("6"); // 메세지 타입 설정
+		
+		//제목 입력 항목 활성화
+		//document.getElementById("mmsSubject").disabled = false;
+		
+	}else{
+		
+		$('.msg_com').removeClass("msg_long"); //장문 클래스 삭제하고
+		$('.msg_com').addClass("msg_photo"); // 그림문자용 클래스 삽입
+		$('.put_left').removeClass("long");
+		$('.put_left').addClass("photo");
+		$('.msg_com').html("그림");
+		$('#msgType').val("6"); // 메세지 타입 설정
+		
+		//제목 입력 항목 활성화
+		//document.getElementById("mmsSubject").disabled = false;
+		
+	}
+	
+	//이미지 카운트 증가시키기
+	//imgCnt ++;
+	$("#imgCnt").val(Number(imgCnt)+1);
+	
+	
+	//문자 내용 상단에 이미지 이름 영역 객체 추가해주기
+	var imgPath = '<img src="' + imgSrc + '" class="thumb_img '+ editYn +'" alt="thumb1"/>';
+	var liPath = '<li class="delLi '+imageName+'" id="delLi'+ imgCnt +'">'
+				+ '<div>'+ imgPath+ '</div>'
+				+ '<button type="button" class="file_close"><img src="/publish/images/content/thumb_del.png" alt="첨부파일 삭제"></button>'
+				+ '<button type="button" class="file_close_on"><img src="/publish/images/content/thumb_del_on.png" alt="첨부파일 삭제"></button>'
+				+ '</li>';
+				
+				
+		/* "<li class=\"delLi\"><p>" + imgPath + "</p><button type=\"button\" class=\"file_close\"><img class=\"delImg\" src=\"/publish/images/content/file_close.png\" alt=\"첨부파일 삭제\"></button></li>" */
+	$('.liOnImg').append(liPath);	
+		
+	//미리보기 보여주기
+	$('.preiew_img').show();
+	
+	var imgHtml = "";
+	var imgPath = "<div class=\"img_box preBoxF\" id=preBoxF"+ imgCnt +"><img src=\"" + imgSrc + "\" /></div>";
+
+	if($("#imgCnt").val() == 1){
+		$('.preViewShort').append(imgPath);
+		$('.photo_num_01').show();
+		$('.photo_num_02').hide();
+		$('.photo_num_03').hide();
+		//$(".thumb_wrap li:eq(0)").addClass("on");
+		
+	}else if($("#imgCnt").val() == 2){
+		$('.preViewShort').append(imgPath);
+		$('.photo_num_02').show();
+		$(".thumb_wrap li").removeClass("on");
+		//$(".thumb_wrap li:eq(1)").addClass("on");
+		
+	}else if($("#imgCnt").val() == 3){
+		$('.preViewShort').append(imgPath);
+		$('.photo_num_03').show();
+		$(".thumb_wrap li").removeClass("on");
+		//$(".thumb_wrap li:eq(2)").addClass("on");
+		
+	}
+	
+	// 배열에 선택한 이미지 경로 저장해주기
+	imgFilePath.push(imgSrc);
+	
+	// 배열에 선택한 이미지 아이디 저장해주기 - 내 문자 보관함 저장용으로 사용
+	if(typeof(imgId) != 'undefined' && imgId != null && editYn != 'edit_y'){
+		imgFileId.push(imgId);
+	}
+	//문자 길이 및 타입 변경해주기
+	var contents = $('#smsTxtArea').val();
+	fnByteString(contents);
+	
+	var scrollHei = $(".mCustomScrollBox").height();
+	if(scrollHei > 488) {
+		$(".img_box").addClass("on_scroll_img");
+	}
+	
+}
+
+//그림샘플 이미지 선택시 문자 내용에 입력 처리
+function myMsgImageControl(imgSrc, editYn, imageName, imgId) {
+	
+	var imgCnt = $("#imgCnt").val(); // 현재 페이지에 첨부된 이미지 갯수
+	var imgSrc = imgSrc;
+
+	if(imgCnt >= 3){
+		alert("이미지는 3장만 선택할 수 있습니다.");
+		return false;
+	}
+
+	$('.preShort').hide();
+	$('.prePhoto').show();
+	
+	if($('.msg_com').hasClass("msg_short") === true){
+		
+		$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
+		$('.msg_com').addClass("msg_photo"); // 그림문자용 클래스 삽입
+		$('.put_left').removeClass("short");
+		$('.put_left').addClass("photo");
+		$('.msg_com').html("그림");
+		$('#msgType').val("6"); // 메세지 타입 설정
+		
+		//제목 입력 항목 활성화
+		//document.getElementById("mmsSubject").disabled = false;
+		
+	}else{
+		
+		$('.msg_com').removeClass("msg_long"); //장문 클래스 삭제하고
+		$('.msg_com').addClass("msg_photo"); // 그림문자용 클래스 삽입
+		$('.put_left').removeClass("long");
+		$('.put_left').addClass("photo");
+		$('.msg_com').html("그림");
+		$('#msgType').val("6"); // 메세지 타입 설정
+		
+		//제목 입력 항목 활성화
+		//document.getElementById("mmsSubject").disabled = false;
+		
+	}
+	
+	//이미지 카운트 증가시키기
+	//imgCnt ++;
+	$("#imgCnt").val(Number(imgCnt)+1);
+	
+	//문자 내용 상단에 이미지 이름 영역 객체 추가해주기
+	var imgPath = '<img src="' + imgSrc + '" class="thumb_img '+ editYn +'" alt="thumb1"/>';
+	var liPath = '<li class="delLi '+imageName+'" id="delLi'+ imgCnt +'">'
+				+ '<div>'+ imgPath+ '</div>'
+				+ '<button type="button" class="file_close"><img src="/publish/images/content/thumb_del.png" alt="첨부파일 삭제"></button>'
+				+ '<button type="button" class="file_close_on"><img src="/publish/images/content/thumb_del_on.png" alt="첨부파일 삭제"></button>'
+				+ '</li>';
+				
+				
+		/* "<li class=\"delLi\"><p>" + imgPath + "</p><button type=\"button\" class=\"file_close\"><img class=\"delImg\" src=\"/publish/images/content/file_close.png\" alt=\"첨부파일 삭제\"></button></li>" */
+	$('.liOnImg').append(liPath);	
+		
+	//미리보기 보여주기
+	$('.preiew_img').show();
+	
+	var imgHtml = "";
+	var imgPath = "<div class=\"img_box preBoxF\" id=preBoxF"+ imgCnt +"><img src=\"" + imgSrc + "\" /></div>";
+
+	if($("#imgCnt").val() == 1){
+		$('.preViewShort').append(imgPath);
+		$('.photo_num_01').show();
+		$('.photo_num_02').hide();
+		$('.photo_num_03').hide();
+		//$(".thumb_wrap li:eq(0)").addClass("on");
+		
+	}else if($("#imgCnt").val() == 2){
+		$('.preViewShort').append(imgPath);
+		$('.photo_num_02').show();
+		$(".thumb_wrap li").removeClass("on");
+		//$(".thumb_wrap li:eq(1)").addClass("on");
+		
+	}else if($("#imgCnt").val() == 3){
+		$('.preViewShort').append(imgPath);
+		$('.photo_num_03').show();
+		$(".thumb_wrap li").removeClass("on");
+		//$(".thumb_wrap li:eq(2)").addClass("on");
+		
+	}
+	
+	// 배열에 선택한 이미지 경로 저장해주기
+	imgFilePath.push(imgSrc);
+	// 배열에 선택한 이미지 아이디 저장해주기 - 내 문자 보관함 저장용으로 사용
+	if(typeof(imgId) != 'undefined' && imgId != null){
+		imgFileId.push(imgId);
+	}
+	//문자 길이 및 타입 변경해주기
+	var contents = $('#smsTxtArea').val();
+	fnByteString(contents);
+	
+	var scrollHei = $(".mCustomScrollBox").height();
+	if(scrollHei > 488) {
+		$(".img_box").addClass("on_scroll_img");
+	}
+	
+}
+
+
+$(document).on('click', '.symbolButton, .changeWord', function (){
+	//var smsTxtArea = $('#smsTxtArea').val();
+	//$('#smsTxtArea').val(smsTxtArea + $(this).attr("value"));
+	
+	// 커서 위치에 삽입
+	setCursorInsertText("smsTxtArea", $(this).attr("value"));
+	
+	fnByteString($('#smsTxtArea').val());
+});
+
+$(document).on('click', '#recommBtn', function(){
+	
+	var recommId = $('#recommId').val();
+	
+	if(recommId == ''){
+		
+		alert("추천인 ID를 입력해 주세요.");
+		return false;
+		
+	}
+	
+	var data = new FormData(document.msgForm);
+	var url = "/web/mjon/msgdata/selectRecommIdCheckAjax.do";
+	
+	$.ajax({
+        type: "POST",
+        enctype: 'multipart/form-data',
+        url: url,
+        data: data,
+        dataType:'json',
+        async: false,
+        processData: false,
+        contentType: false,
+        cache: false,
+        //timeout: 600000,
+        success: function (returnData, status) {
+			if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
+				
+				if(returnData.status == "success"){
+					
+					alert("추천인 아이디가 확인 되었습니다.");
+					return false;
+					
+				}else{
+					
+					alert("존재하지 않는 추천인 아이디 입니다.");
+					return false;
+					
+				}
+				
+			} else if(status== 'fail'){
+				alert("추천인 확인에 실패하였습니다. !!");
+			}
+		},
+        error: function (e) { alert("추천인 확인에 실패하였습니다."); console.log("ERROR : ", e); }
+    });
+	
+});
+
+//문자발송 받는사람 목록 주소록에 등록하기 기능 처리
+$('.registAddr').click(function(){
+	
+	var tableData = tableL.getRows();
+	var dataLen = tableL.getRows().length;
+	
+	var nameList = [];		//치환문자 이름
+	var phoneNum = [];		//받는사람
+	var rep1List = [];		//치환문자1
+	var rep2List = [];		//치환문자2
+	var rep3List = [];		//치환문자3
+	var rep4List = [];		//치환문자4
+	
+	if(dataLen > 0){
+		
+		for(var i=0; i < dataLen; i++){
+			
+			var name = tableData[i].getData().name;
+			var phone = removeDash(tableData[i].getData().phone);
+			var rep1 = tableData[i].getData().rep1;
+			var rep2 = tableData[i].getData().rep2;
+			var rep3 = tableData[i].getData().rep3;
+			var rep4 = tableData[i].getData().rep4;
+			
+			if(phone == "" || phone == null){
+				
+				alert("수신 목록에 핸드폰 번호가 없는 항목이 있습니다.");
+				return false;
+				
+			}else if(!checkHpNum(phone)){
+				
+				alert("수신 목록에 잘 못된 핸드폰 번호가 있습니다. 핸드폰 번호 : " + phone + " 입니다.");
+				return false;
+				
+			}
+			
+			
+			phoneNum[i] = phone;
+			
+			if(name == "" || name == null){
+				nameList[i] = "";
+			}else{
+				nameList[i] = name.replaceAll(",","§");
+			}
+			
+			if(rep1 == "" || rep1 == null){
+				rep1List[i] = "-";
+			}else{
+				rep1List[i] = rep1.replaceAll(",","§");
+			}
+			
+			if(rep2 == "" || rep2 == null){
+				rep2List[i] = "-";
+			}else{
+				rep2List[i] = rep2.replaceAll(",","§");
+			}
+			
+			if(rep3 == "" || rep3 == null){
+				rep3List[i] = "-";
+			}else{
+				rep3List[i] = rep3.replaceAll(",","§");
+			}
+			
+			if(rep4 == "" || rep4 == null){
+				rep4List[i] = "-";
+			}else{
+				rep4List[i] = rep4.replaceAll(",","§");
+			}
+			
+			/* if(name == "" || name == null){
+				
+				alert("수신 목록에 이름이 없는 항목이 있습니다. 이름을 입력해 주세요");
+				return false;
+				
+			}else{
+				
+				nameList[i] = name;
+				phoneNum[i] = phone;
+				
+				if(rep1 == "" || rep1 == null){
+					rep1List[i] = "-";
+				}else{
+					rep1List[i] = rep1;
+				}
+				
+				if(rep2 == "" || rep2 == null){
+					rep2List[i] = "-";
+				}else{
+					rep2List[i] = rep2;
+				}
+				
+				if(rep3 == "" || rep3 == null){
+					rep3List[i] = "-";
+				}else{
+					rep3List[i] = rep3;
+				}
+				
+				if(rep4 == "" || rep4 == null){
+					rep4List[i] = "-";
+				}else{
+					rep4List[i] = rep4;
+				}
+				
+			} */
+			
+		}
+		
+		//주소록 정보를 Form에 넣어준다.
+		
+		var form = document.msgForm;
+		form.callToList.value = phoneNum;
+		form.nameList.value = nameList;
+		form.rep1List.value = rep1List;
+		form.rep2List.value = rep2List;
+		form.rep3List.value = rep3List;
+		form.rep4List.value = rep4List;
+		form.addrGrpId.value = $("#addrGrpIdInfo").val();
+		form.addrGrpNm.value = $("#addrGrpNm").val();
+		
+		if ($("#addrGrpIdInfo option:selected").val() == "NEW" && ($("#addrGrpNm").val() == "" || $("#addrGrpNm").val() == null || $("#addrGrpNm").val() == undefined)) {
+			alert("저장할 그룹을 선택하거나 새 그룹명을 입력해주세요.");
+			return false;		
+		}else if ($("#addrGrpIdInfo option:selected").val() == "NEW" && $("#addrGrpNm").val() != "") {
+			//주소록 중복체크
+			if (getAddrGroupDuplCheckAjax() == false) {
+				alert("중복된 그룹명입니다. 새 그룹명을 입력해주세요.");
+				return false;			
+			}
+		}
+		if(confirm("연락처 정보를 주소록에 등록 하시겠습니까?")){
+			
+			var data = new FormData(form);
+			var url = "/web/mjon/msgdata/insertMsgAddrListAjax.do";
+			
+			$.ajax({
+		        type: "POST",
+		        enctype: 'multipart/form-data',
+		        url: url,
+		        data: data,
+		        dataType:'json',
+		        async: true,
+		        processData: false,
+		        contentType: false,
+		        cache: false,
+		        //timeout: 600000,
+		        success: function (returnData, status) {
+					if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
+						
+						if(returnData.result == "success"){
+							var alertMsg = "총 " + returnData.resultCnt + "건의 " +returnData.message;
+							
+							if(returnData.dupliCnt > 0) {
+								alertMsg += "\n"+numberWithCommas(returnData.dupliCnt) + "건은 이미 등록되어있는 번호입니다.";
+							}
+
+							alert(alertMsg);
+							$("#addrGrpNm").val("");
+							$('.addressregi_layer').attr('style','');
+							$('.mask').removeClass('on');
+							return false;
+							
+						}else if(returnData.result == "allDupl") {
+							alert("요청하신 "+returnData.dupliCnt+"건의 번호가 주소록에 이미 등록되어있습니다.");
+							$("#addrGrpNm").val("");
+							$('.addressregi_layer').attr('style','');
+							$('.mask').removeClass('on');
+							return false;
+						}else{
+							alert(returnData.message);
+							$("#addrGrpNm").val("");
+							$('.addressregi_layer').attr('style','');
+							$('.mask').removeClass('on');
+							return false;
+							
+						}
+						
+					} else if(status== 'fail'){
+						alert("주소록 등록에 실패하였습니다. !!");
+					}
+				},
+		        error: function (e) { 
+		        	alert("주소록 등록에 실패하였습니다."); 
+		        	console.log("ERROR : ", e); 
+		        },
+				beforeSend : function(xmlHttpRequest) {
+		        	//로딩창 show
+		        	$('.loading_layer').addClass('active');				
+				},	        	        
+		        complete : function(xhr, textStatus) {
+		        	//로딩창 hide
+		        	$('.loading_layer').removeClass('active');
+				}
+		    });
+			
+		}
+		
+	}else{
+		
+		alert("연락처 정보를 등록해 주세요.");
+		return false;
+		
+	}
+	
+	
+});
+
+//주소록 불러오기 그룹명 검색 기능처리
+function fnAddrGrpSearch(){
+	
+	var form = document.searchAddrGrpForm;
+	form.searchKeyword.value = form.searchGrpKeyword.value;
+	form.searchCondition.value = "";
+	
+	var sendData = $(document.searchAddrGrpForm).serializeArray();
+	
+	$("#addrGroupLoad").load("/web/mjon/msgdata/selectAddrGroupListAjax.do", sendData ,function(response, status, xhr){
+		//리스트 스크롤 처리해주기
+		$(".adr_pop_list").mCustomScrollbar({
+			axis: 'y',
+			scrollbarPosition: "outside",
+			theme: "dark",
+			autoHideScrollbar: false
+		});
+	});
+	
+}
+
+
+//주소록 불러오기 팝업의 그룹 선택시 우측에 주소록 불러오기
+function fnSelectAddrList(type,addrGrpId,item){
+	
+	// 주소록 그룹 열림, 닫힘 폴더이미지 초기화
+	$(".adr_pop_list div p").each(function (index, item) {
+		$(item).find("img").attr("src", "/publish/images/content/close_folder2.png");
+		$(item).find("img").attr("alt", "폴더 닫힘");
+	});
+	
+	var form = document.searchAddrGrpForm;
+	form.type.value = type;
+	form.searchAddrGrpId.value = addrGrpId;
+	form.searchKeyword.value = "";
+	form.searchCondition.value = form.searchAddrCondition.value;
+	
+	//왼쪽 그룹리스트의 그룸명을 선택시 검색어를 초기화해준다.
+	form.searchAddrKeyword.value="";
+	
+	/*
+	$(item).toggleClass("open");
+	if ($(item).hasClass("open") === true) {
+		$(item).find("img").attr("src", "/publish/images/content/open_folder2.png");
+		$(item).find("img").attr("alt", "폴더 열림");
+	}
+	else {
+		$(item).find("img").attr("src", "/publish/images/content/close_folder2.png");
+		$(item).find("img").attr("alt", "폴더 닫힘");
+	}
+	*/
+	   
+	$(item).find("img").attr("src", "/publish/images/content/open_folder2.png");
+	$(item).find("img").attr("alt", "폴더 열림");
+	
+	loadAddrList();
+	
+}
+
+
+function fnAddrSearch(){
+	
+	var form = document.searchAddrGrpForm;
+	form.searchKeyword.value = form.searchAddrKeyword.value;
+	form.searchCondition.value = form.searchAddrCondition.value;
+	
+	loadAddrList();
+	
+}
+
+function loadAddrList(){
+
+	/*
+		serialize 를 사용할때는 processDa    ta, contentType 옵션 제가할것
+	*/
+	var data = $("#searchAddrGrpForm").serialize();	 
+
+	var url = "/web/mjon/msgdata/selectMsgAddrListAjax_advc.do";
+	
+	$.ajax({
+        type: "POST",
+        url: url,
+        data: data,
+        dataType:'json',
+        async: true,
+        cache: false,
+        success: function (data) {
+        	console.log('data : ', data);
+			if(data.status == "OK"){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
+				
+					var addrList = data.object;
+					
+					if(addrList.length == 0){
+						
+						alert("주소록 정보가 없습니다.");
+// 	                    tableAddr.setData([]);
+						return false;
+					}
+					
+					//받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다.
+// 					for(var i=0; i < addrList.length; i++){
+// 						tableData.push({
+// 								addrGroupNm: addrList[i].addrGrpNm
+// 								, addrPhone: removeDash(addrList[i].addrPhoneNo) 
+// 								, addrName: addrList[i].addrNm
+// 								, addrRep1: addrList[i].addrInfo1
+// 								, addrRep2: addrList[i].addrInfo2
+// 								, addrRep3: addrList[i].addrInfo3
+// 								, addrRep4: addrList[i].addrInfo4
+// 							});
+// 					}
+					
+// 					addrList.forEach(function(addr){
+// 						tableData.push({
+// 							addrGroupNm: addr.addrGrpNm,
+// 							addrPhone: removeDash(addr.addrPhoneNo),
+// 							addrName: addr.addrNm,
+// 							addrRep1: addr.addrInfo1,
+// 							addrRep2: addr.addrInfo2,
+// 							addrRep3: addr.addrInfo3,
+// 							addrRep4: addr.addrInfo4
+// 						});
+//                     });
+					
+					//우측 주소록 리스트 Tabulator에 입력해주기
+// 					tableAddr.setData(tableData);
+					console.log('data : ', data);
+					tableAddr.setData(addrList);
+// 	                tableAddr.updateOrAddData(addrList); // 무한 스크롤을 위해 데이터를 업데이트
+			} 
+			else
+			{
+				alert("주소록 불러오기에 실패하였습니다. !!");
+			}
+		},
+        error: function (jqXHR, textStatus, errorThrown) { 
+            alert("주소록 불러오기에 실패하였습니다."); 
+            console.log("ERROR : ", jqXHR.status, textStatus, errorThrown); // 상태 코드, 상태 텍스트, 에러 메시지 출력
+            console.log("Response Text: ", jqXHR.responseText); // 서버 응답 텍스트 출력
+        },
+		beforeSend : function(xmlHttpRequest) {
+        	//로딩창 show
+        	$('.loading_layer').addClass('active');				
+		},	        	        
+        complete : function(xhr, textStatus) {
+        	//로딩창 hide
+        	$('.loading_layer').removeClass('active');
+		}
+    });
+	
+}
+
+//주소록 불러오기에서 수신자 리스트 추가해 주기
+function addrToList(){
+	
+	var selectedData = tableAddr.getSelectedRows();
+	var tableData = [];
+	
+	if(selectedData == "" || selectedData == null){
+		
+		alert("주소록을 선택해 주세요.");
+		return false;
+	
+	}else{ // 선택한 Row 데이터 저장해주기
+		
+		for(var i=0; i < selectedData.length; i++){
+			
+			//좌측 받는사람 리스트를 담아둔 배열에 데이터를 추가해 준다.
+			tableData.push({phone: removeDash(selectedData[i].getData().addrPhone), 
+				name: selectedData[i].getData().addrName, 
+				rep1: selectedData[i].getData().addrRep1, 
+				rep2: selectedData[i].getData().addrRep2, 
+				rep3: selectedData[i].getData().addrRep3, 
+				rep4: selectedData[i].getData().addrRep4}
+			);
+		
+		}
+	
+		//선택한 데이터 받는사람 리스트에 추가해 주기
+		addPhoneInfo(tableData);
+		$(".closeAddr").trigger("click");
+		
+		//주소록 레이어 팝업의 Tabulator 데이터 지워주기
+		tableAddr.clearData();
+
+	}
+	
+}
+
+//주소록 불러오기에서 수신자 리스트 추가해 주기
+function addrToList_advc(type){
+// 	var selectedData = tableAddr.getSelectedRows();
+	var tableSize = tableAddr.getDataCount();
+	var tableData = [];
+	
+	if(tableSize < 1){
+		
+		alert("주소록을 선택해 주세요.");
+		return false;
+	
+	}else{ // 선택한 Row 데이터 저장해주기
+		
+		// 기존 tableL의 데이터를 가져옵니다.
+		var existingData = tableL.getData();
+		var addrData;
+
+		if(type == 'all'){
+			addrData = tableAddr.getData();
+		}else{
+			addrData = tableAddr.getSelectedData();
+		}
+		
+		// 기존 데이터와 새로운 데이터를 합칩니다.
+		var combinedData = existingData.concat(addrData);
+		
+		// 합쳐진 데이터를 tableL에 설정합니다.
+		tableL.setData(combinedData);
+		
+		//일괄변환 문구 결제금액 처리
+		totRows = tableL.getRows().length; 
+		updateTotCnt(totRows); //전체 데이터 갯수 구하기
+		var smsTxtArea = $('#smsTxtArea').val();
+		if(smsTxtArea.indexOf("[*이름*]")  > -1 
+				|| smsTxtArea.indexOf("[*1*]") > -1
+				|| smsTxtArea.indexOf("[*2*]") > -1
+				|| smsTxtArea.indexOf("[*3*]") > -1
+				|| smsTxtArea.indexOf("[*4*]") > -1){
+			
+			fnReplCell();
+		}else{
+			//결제 금액 구하기
+		    totalPriceSum(totRows);
+		} 
+	
+		$(".closeAddr").trigger("click");
+		//주소록 레이어 팝업의 Tabulator 데이터 지워주기
+		tableAddr.clearData();
+
+	}
+	
+}
+
+
+//주소록 팝업 닫기 기능
+function addrClose(){
+	
+	$(".closeAddr").trigger("click");
+	
+	//주소록 레이어 팝업의 Tabulator 데이터 지워주기
+	tableAddr.clearData();
+	
+}
+
+//내문자함 선택시 저장된 내용 문자 입력영역에 처리해주기
+function fnMyMsgAdd(msgId){
+	
+	var form = document.addMyMsgForm;
+	form.msgId.value = msgId;
+	form.pageType.value = "myMsg";
+	
+	var url = "/web/mjon/msgdata/selectMsgAddInfoAjax.do";
+	var data = new FormData(document.addMyMsgForm);
+	
+	$.ajax({
+        type: "POST",
+        url: url,
+        data: data,
+        dataType:'json',
+        async: false,
+        processData: false,
+        contentType: false,
+        cache: false,
+        success: function (returnData, status) {
+			if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
+				
+				if(returnData.result == "success"){
+					
+					var msgData = returnData.resultMsgInfo;
+					var fileData = returnData.resultMsgAddPhotoInfo;
+					
+					var smsTxt = msgData.smsTxt;
+					var subject = msgData.subject;
+					var fileId = "";
+					var filePath = "";
+					var len = fileData.length;
+					
+					//기존 내용 지워주기
+					//$(".btnReset").trigger("click");
+					$('.delLi').each(function(){
+						$(this).remove();
+					});
+					
+					$('.preBoxF').each(function(){
+						$(this).remove();
+					});
+
+					$('#imgCnt').val(0);
+					
+					//기존 imgFileId, imgFilePath 배열에 있는 내용 초기화 해주기
+					imgFilePath = [];
+					imgFileId = [];
+					
+					//내문자함 텍스트 내용 입력해주기
+					$('#smsTxtArea').val(smsTxt);
+					
+					//첨부 이미지가 있는경우 이미지 처리해주기
+					if(len > 0){
+						
+						for(var i=0; i < len; i++){
+							
+							var num = i + 1;
+							var imgId = fileData[i].atchFileId;
+							var imgSn = fileData[i].fileSn;
+							var fileStreCours = fileData[i].fileStreCours;
+							var streFileNm = fileData[i].streFileNm;
+							var fileExtsn = fileData[i].fileExtsn;
+							
+							/* var imgSrc = fileStreCours + "/" + streFileNm + "." + fileExtsn; */
+							var imgSrc = '/cmm/fms/getImage2.do?atchFileId=' + imgId + '&fileSn=' + imgSn;
+							myMsgImageControl(imgSrc, "edit_n", "Template", imgId);
+							
+						}
+						
+						fnByteString(smsTxt);
+						
+					}else{
+						
+						fnByteString(smsTxt);
+						
+					}
+					
+					//내 문자함 가져오기에서 글자길이 계산을 다시한다.
+					$("#smsTxtArea").trigger("keyup");										
+					
+					// 문자전송 상단으로 이동
+					var sendOfT=$('.send_top').offset().top;
+					$('html,body').stop().animate({'scrollTop':sendOfT-60},250);
+				}else{
+					
+					alert("내문자함 내용을 불러오지 못하였습니다.");
+					return false;
+					
+				}
+				
+			} else if(status== 'fail'){
+				alert("내문자함 내용 입력에 실패하였습니다. !!");
+			}
+		},
+        error: function (e) { alert("내문자함 내용 입력에 실패하였습니다."); console.log("ERROR : ", e); }
+    });
+	
+}
+//최초 문자샘플 탭 리스트 데이터 불러오기
+//fnLetterListAjax();
+
+/* 윈도우팝업 열기 */
+function infoPop(pageUrl){
+	document.popForm.pageType.value = pageUrl;
+	document.popForm.action = "/web/pop/infoPop.do";
+	document.popForm.method = "post"; 
+	if(pageUrl == "adrvertisement1"){
+		window.open("about:blank", 'infoPop', 'width=790, height=800, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');	
+	}else{
+		window.open("about:blank", 'infoPop', 'width=790, height=350, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');	
+	}
+	
+	document.popForm.target = "infoPop";
+	document.popForm.submit();
+}
+
+$(document).on('click', '.addressregi_btn', function() {
+	var tableData = tableL.getRows();
+	var dataLen = tableL.getRows().length;
+	if(dataLen == 0){
+		alert("연락처 정보를 등록해 주세요.");
+		return false;
+	}else{
+		$('.addressregi_layer').css({'width':'680px','display':'block','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
+		setTimeout(function(){
+			$('.addressregi_layer').css({'opacity':'1'});
+		},150);
+		$('.mask').addClass('on');
+		getAddrGroupList();
+	}
+});
+
+$(document).on('click', '.addressregi_layer .tooltip-close', function() {
+	$('.addressregi_layer').attr('style','');
+	$("#addrGrpNm").val("");
+});
+
+$(document).on('change', '#addrGrpIdInfo', function() {
+	if ($("#addrGrpIdInfo option:selected").val() != "NEW") {
+		$("#addrGrpNm").val(""); //	새그룹명 Clear;
+	}
+});
+
+//주소록 그룹정보 불러오기
+function getAddrGroupList() {
+ $.ajax({
+     type : "POST",
+     async : false,
+     url : "/web/mjon/addr/addrGroupListAjax.do",
+     data : {},
+     dataType:'json',
+     success : function(data) {
+		//alert(JSON.stringify(data.addrGroupList));
+
+		// Show Html
+		getAddrGroupListShow(data.addrGroupList);
+     },
+     error : function(xhr, status, error) {
+         alert(error);
+         return false;
+     }
+ });	    	
+}
+
+//Show Html
+function getAddrGroupListShow(jsonList) {
+	var sHtml = "";
+	sHtml += "<option value='NEW'>그룹추가</option>";
+	sHtml += "<option value='0'>그룹미지정</option>";
+	sHtml += "<option value='bookmark'>자주보내는 번호</option>";
+	for (var j = 0; j < jsonList.length; j++) {
+		sHtml += "	<option value='" + $.trim(jsonList[j].addrGrpId) + "' />" + $.trim(jsonList[j].addrGrpNm) + "</option>";
+	}
+	    	
+	$("#addrGrpIdInfo").html(sHtml);
+}
+
+//주소록 그룹 중복체크
+function getAddrGroupDuplCheckAjax() {
+	var isReturn = true;
+	
+	$.ajax({
+		url : "<c:url value='/web/addr/getAddrGroupDuplCheckAjax.do' />", 
+		type : 'POST', 
+		data : {"addrGrpNm" : $("#addrGrpNm").val()},
+		dataType:'json',
+		async: false,			// 동기
+		success : function(data, status){
+			if(data.isSuccess == true) {
+				if(data.isDupl == true) {
+					//alert("중복된 그룹명입니다.");
+					isReturn = false;
+				}
+			} 
+			else {
+				//alert("Message : " + msg);
+			}			
+		},
+		error: function (e) {
+			//alert("주소록 중복체크에 실패했습니다.");
+		}
+	});
+	
+	return isReturn;	
+}
+
+/* 테스트발송 열기 */
+function fnTestSend(){
+	
+	if(!checkConf()){	//문자온 conf-check
+		alert("현재 문자 발송하기 기능 점검 중입니다.\n\n1분 후 다시 시도해주세요.");
+		return false;
+	}
+	
+	var msgForm = document.msgForm;
+	var form = document.testSendForm;
+	var loginVO = '${LoginVO}';
+	var spamStatus = false;
+	var callFrom = $("#callFromList option:selected").val();
+	var adverYn = $("input[name='send_adYn']:checked").val(); //광고 체크여부
+	
+	//로그인 체크
+	if(loginVO == "" || loginVO == null){
+		alert("문자발송 서비스는 로그인 후 이용 가능합니다.");
+		return false;
+	}
+	
+	var blineCodeYn = $("#blineCode").val();
+	if(blineCodeYn != 'N'){
+		if(!blineSendCheck(blineCodeYn)){	//문자온 conf-check
+			alert("현재 문자 발송하기 기능 점검 중입니다.\n\n잠시 후 다시 시도해주세요.");
+			return false;
+		}
+	}
+	
+	//MJ_MSG_GROUP_DATA 누락데이터 체크
+	//if (getMsgGroupDataErrorCheck() == false) {
+	//	alert("고객님께서 발송한 최근문자가 발송결과에 표시되지않아, 문자발송이 임시로 차단되었습니다.\n문자온 고객센터에 문의해주세요.");
+	//	return false;	 	
+	//}
+	
+	//문자내용에 이모지가 있는지 체크
+	var strCont = msgForm.smsTxtArea.value;
+	if(!emojiCheck(strCont)) return false;
+	
+	// 발신번호 체크
+	if(callFrom == ""){
+		alert("발신번호를 입력해 주세요.");
+		return false;
+	}
+	
+	//그림문자가 아닌데 본문 비어있는지 확인
+	if(imgFilePath.length == 0) {
+		if(msgForm.smsTxtArea.value == "") {
+			alert("문자 내용을 입력해 주세요.");
+			return false;
+		}
+	}else{//문자내용에 스팸 단어 포함여부 체크
+		var spmData = new FormData(msgForm);
+		url = "/web/mjon/msgdata/selectSpamTxtChkAjax.do";
+		
+		$.ajax({
+	        type: "POST",
+	        url: url,
+	        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);
+						return false;
+						
+					}else if("loginFail" == returnData.result){
+						
+						alert(returnData.message);
+						return false;
+							
+					}else if("spams" == returnData.result){
+						
+// 						var spmFilterTxt = returnData.spmFilterTxt;
+						spamStatus = true;
+						//alert("문자 내용에 \"" + spmFilterTxt + "\"의 스팸문자가 포함되어 있습니다.");
+						alert("전송 문자내용 중 스팸문구로 의심되는 단어가 포함되어 있어 문자발송이 불가합니다.\n자세한 사항은 문자온 고객센터를 통해 문의주시기 바랍니다.");
+						return false;
+						
+					}
+					
+				} else if(status== 'fail'){
+					alert(returnData.message);
+					return false;
+				}
+			},
+	        error: function (e) { alert("시스템 오류가 발생하였습니다."); console.log("ERROR : ", e); return false;}
+	    });
+		
+	}
+
+
+	//단문 장문 그림(몇장인지) 판별하기 - 발송금액 계산
+
+	if($('#nowMsgType').text() == "그림"){
+		
+		msgType = 'P';
+		
+		if(imgFilePath.length == 1) {
+		
+			form.eachPrice.value = '<c:out value="${picturePrice}" />';
+		
+		} else if(imgFilePath.length == 2) {
+		
+			form.eachPrice.value = '<c:out value="${picture2Price}" />';
+		
+		} else if(imgFilePath.length == 3) {
+		
+			form.eachPrice.value = '<c:out value="${picture3Price}" />';
+		
+		}
+		
+		//제목 사용한 경우
+		if($("input[name=title_status]:checked").val() == 'Y') {
+			form.mmsSubject.value = msgForm.mmsSubject.value;
+		} else {
+			form.mmsSubject.value = ""; //초기화
+		}
+		
+
+	}else if($('#nowMsgType').text() == "장문"){
+		
+		msgType = 'L';
+		
+		form.eachPrice.value = '<c:out value="${longPrice}" />';
+		
+		//제목 사용한 경우
+		if($("input[name=title_status]:checked").val() == 'Y') {
+			form.mmsSubject.value = msgForm.mmsSubject.value;
+		} else {
+			form.mmsSubject.value = ""; //초기화
+		}
+		
+	}else{
+		
+		msgType = 'S';
+		
+		form.eachPrice.value = '<c:out value="${shortPrice}" />';
+		
+		form.mmsSubject.value = ""; // 장문/그림 제목 초기화
+	}
+	
+	form.msgType.value = msgType;
+	
+	/* 
+	var phoneIn = $(".send_right .phone").html();
+	//팝업으로 보내기 전에 realtime class 삭제 - 스크립트 제외
+	phoneIn = phoneIn.replace(' class="realtime"',"");
+	form.msgpreview.value = phoneIn;
+	 */
+
+	
+	
+	//발신번호 세팅
+	form.callFrom.value = callFrom;
+	
+	//이미지 path 보내기
+	form.imgFilePath.value = imgFilePath;
+	
+	//광고
+	if(adverYn == 'Y'){
+		form.msgKind.value = "A";
+	}else{
+		form.msgKind.value = "N";
+	}
+	
+	form.action = "/web/pop/testSendPop.do";
+	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.submit();
+}
+
+//이벤트 잔액 로그인 체크
+$(".btn_event_cash").off().on("click", function(){
+	var loginVO = '${LoginVO}';
+	if(loginVO == "" || loginVO == null){
+		alert("로그인 후 이용이 가능합니다.");
+		return false;
+	}
+});	
+
+function checkNumber(event) {
+	var divideCnt = $('#divideCnt').val();
+	if(!(event.key >= 0 && event.key <= 9)) {
+		return false;
+	}
+	
+	var totCnt = divideCnt + "" + event.key;
+	if(Number(totCnt) > 5000){
+		
+		alert("분할전송 건수는 5,000건을 초과할 수 없습니다.");
+		$('#divideCnt').val("20");
+		return false;
+		
+	}
+  
+  return true;
+}
+
+//문자 발송목록
+function getMjMsgSentListAll(pageNo) {
+	document.sentListForm.pageIndex.value = pageNo;
+	document.sentListForm.msgSentType.value = "01";		// 01:문자전송, 02:선거문자
+	
+	var sendData= $(document.sentListForm).serializeArray();
+	$("#mjMsgSentListAllLoad").load("/web/mjon/msgdata/selectMjMsgSentListAjax.do", sendData ,function(response, status, xhr){
+
+	});
+}
+
+</script>
+	
+	<div class="loading_layer">
+		<div class="loading_container">
+			<div class="bar"></div>
+			<div class="text">Loading</div>
+		</div>
+	</div>
+	
+	<form id="sentListForm" name="sentListForm" method="post">
+		<input type="hidden" name="pageType"  value=""/>
+		<input type="hidden" name="pageIndex" value=""/>
+		<input type="hidden" name="msgSentType" value=""/>
+		<input type="hidden" name="searchSortCnd" value="" />
+		<input type="hidden" name="searchSortOrd" value="" />		
+	</form>
+	
+	<!-- 2023 10 16 재전송 : 상세내용 팝업 -->
+	<div class="tooltip-wrap" style="z-index:110;">
+		<div class="popup-com adr_layer rev_popup01" tabindex="0" data-tooltip-con="rev_popup01"
+			data-focus="rev_popup01" data-focus-prev="rev_popup01-close" style="width: 440px;">
+			<div class="popup_heading">
+				<p>문자내용</p>
+				<button type="button" class="tooltip-close" data-focus="rev_popup01-close"><img
+						src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
+			</div>
+			<div class="layer_in" id="msgSentDetailPopLoad" style="padding-bottom: 0px;">
+			</div>
+			<div class="popup_btn_wrap2" style="justify-content: center; margin-bottom: 30px;">
+				<button type="button" class="tooltip-close" data-focus="rev_popup01-close" data-focus-next="rev_popup01">닫기</button>
+			</div>
+		</div>
+	</div>
+	<!--// 2023 10 16  재전송 : 상세내용 팝업 -->	
+	
+	<!-- 2023 10 16  재전송 팝업 -->  
+	<div class="tooltip-wrap">
+		<div class="popup-com import_layer popup05" tabindex="0" data-tooltip-con="popup05" data-focus="popup05" data-focus-prev="popup05-close" style="width: 900px;">
+			<div class="popup_heading">
+				<p><span>전송내역</p>
+				<button type="button" class="tooltip-close" data-focus="popup05-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
+			</div>
+			<div class="layer_in" id="mjMsgSentListAllLoad" style="padding-bottom: 0px; min-height:428px;">
+			</div>
+			<div class="popup_btn_wrap2" style="margin-bottom: 30px;">
+				<button type="button" class="tooltip-close" data-focus="popup05-close"  data-focus-next="popup05">닫기</button>                      
+			</div>			
+		</div>
+	</div>
+	<!--// 2023 10 16  재전송 팝업 -->
+
+	<div class="tooltip-wrap">
+		<div class="popup-com history_layer popup03" tabindex="0" data-tooltip-con="popup03" data-focus="popup03" data-focus-prev="popup03-close">
+			<div class="popup_heading">
+				<p><span>전송내역</p>
+				<button type="button" class="tooltip-close" data-focus="popup03-close" id="btnLatestAddPhoneClose"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
+			</div>
+			<div class="layer_in">
+				<!-- tab button -->
+				<ul class="tabType6"> 
+					<li class="tab active"><button type="button" onclick="TabType(this,'1');">최근 전송내역</button></li>
+					<li class="tab"><button type="button" onclick="TabType(this,'2');">자주보내는 번호</button></li>
+				</ul><!--// tab button -->
+				<!-- 최근 전송내역 -->
+				<div class="history_cont hascont current">
+					<div class="histroy_trans latestMsgArea" id="latestMsgArea">
+						<ul id="latestMsgUl">
+							<c:choose>
+								<c:when test="${not empty resultLatestMsgList}">
+									<c:forEach var="latestMsgList" items="${resultLatestMsgList}" varStatus="status">
+										<li id="latestLi">
+											<input type="checkbox" id="addrChk_${status.count}" name="latAddrChk" value="<c:out value='${latestMsgList.callTo}'/>">
+											<label for="addrChk_${status.count}" class="label">최근 전송내역</label>
+											<p><c:out value="${latestMsgList.callTo}"/></p>
+											<button type="button" id="latestAddrDel"><img src="/publish/images/popup/close3.png"  alt="전화번호 삭제"></button>
+										</li>
+									</c:forEach>
+								</c:when>
+								<c:otherwise>
+									<li>
+										<p>최근 발송 내역이 없습니다.</p>
+									</li>
+								</c:otherwise>
+							</c:choose>
+						</ul>
+					</div>
+					<div class="popup_btn_wrap2 hisroy_btn" style="width: 230px;">
+						<button type="button" id="latestAddPhoneAll">전체추가</button>
+						<button type="button" id="latestAddPhone">선택추가</button>
+						<button type="button" id="latestCancelPhone">선택취소</button>                      
+					</div>
+				</div><!--// 최근 전송내역 -->
+				<!-- 자주보내는 번호 -->
+				<div class="history_cont hascont">
+					<div class="histroy_trans" id="bookMarkMsgArea">
+						<ul id="bookMsgUl">
+							<c:choose>
+								<c:when test="${not empty resultBookMarkMsgList}">
+									<c:forEach var="bookMarkMsgList" items="${resultBookMarkMsgList}" varStatus="status">
+										<li id="bookMarkLi">
+											<input type="checkbox" id="bokAddrChk_${status.count}" name="bookAddrChk" value="<c:out value='${bookMarkMsgList.addrPhoneNo}'/>">
+											<label for="addrChk_${status.count}" class="label">최근 전송내역</label>
+											<p><c:out value="${bookMarkMsgList.addrPhoneNo}"/></p>
+											<button type="button" id="bookMarkAddrDel"><img src="/publish/images/popup/close3.png"  alt="전화번호 삭제"></button>
+										</li>
+									</c:forEach>
+								</c:when>
+								<c:otherwise>
+									<li>
+										<p>등록된 자주 보내는 번호 내역이 없습니다.</p>
+									</li>
+								</c:otherwise>
+							</c:choose>
+						</ul> 
+					</div>
+					<div class="popup_btn_wrap2 hisroy_btn" style="width: 230px;">
+						<button type="button" id="bookMarkAddPhoneAll">전체추가</button>
+						<button type="button" id="bookMarkAddPhone">선택추가</button>
+						<button type="button" id="bookMarkCancelPhone">선택취소</button>                      
+					</div>
+				</div><!--// 자주보내는 번호  -->         
+			</div>
+		</div>
+	</div><!--// 전송내역 팝업 -->
+	<!-- 엑셀 불러오기 -->
+	<form id="excelForm" name="excelForm" 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-com adr_layer popup02" tabindex="0" data-tooltip-con="popup02" data-focus="popup02" data-focus-prev="popup02-close" style="width: 1000px;">
+			  		<%@include file="/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp" %>
+				<!-- <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, C, D열을 불러옵니다.(지원하는 파일 형식 : xls, xlsx)</p>
+							<p>- 이름 : 20byte, [*1*]~[*4*] : 40byte까지 입력 가능합니다.</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="" class="attachedFile_label">첨부파일</label>
+							<input type="text" id="excelNm" readonly>
+							<input type="file" id="excelFile" accept=".xls, .xlsx" onchange="excelExport(event); return false;" style="display:none"/>
+							<button type="button" class="btnType btnType6 c3">찾아보기</button>
+							<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="imgForm" name="imgForm" method="post">
+		<div class="tooltip-wrap">
+			<div class="popup-com import_layer popupImg" tabindex="0" data-tooltip-con="popupImg" data-focus="popupImg" data-focus-prev="popupImg-close">
+				<div class="popup_heading">
+					<p><span>이미지</span> 불러오기</p>
+					<button type="button" class="tooltip-close" data-focus="popupImg-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
+				</div>
+				<div class="layer_in">
+					<!-- 첨부파일 불러오기 -->
+					<div class="hascont">
+						<div class="titBox">
+							<p>- 첨부할 이미지를 불러옵니다.(지원하는 파일 형식 : jpg, jpeg)</p>
+							<p>- 이미지 권장 사이즈 : 640 X 960픽셀</p>
+							<p>- 이미지가 권장 사이즈보다 큰 경우 자동 리사이징 처리되어 첨부됩니다.</p>
+							<p>- 이미지 용량 : 300KB 이하</p>
+							<p>- 이미지에 텍스트가 많은 경우 내용이 잘 보이지 않을 수 있습니다.</p>
+							<p>- 문자전송 시 사전 테스트 발송 후 대량발송을 권장드립니다.</p>
+							<p>- <span class="c_e40000">해상도 저하에 따른 캐시 환불 불가</span></p>
+						</div>
+						<div class="attachedFile">
+							<label for="" class="attachedFile_label">첨부파일</label>
+							<input type="text" id="imgNm" readonly>
+							<input type="file" id="imgFile" accept=".jpg, .jpeg" onchange="imgResizeInfo(event); return false;" style="display:none"/>
+							<button type="button" class="btnType btnType6 upImg">찾아보기</button>
+							<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="popupImg-close"  data-focus-next="popupImg" id="imgAdd" onclick="imgExport(event); return false;">이미지 등록</button>
+						<button type="button" class="tooltip-close closeResizeImg" data-focus="popupImg-close"  data-focus-next="popupImg">닫기</button>                      
+					</div>
+				</div>
+			</div>
+		</div>
+	</form>
+	<!--// 이미지 첨부 불러오기 끝 -->
+	
+	<!-- 주소록 불러오기 -->
+	<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="searchKeyword" 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:addrToList_advc('all'); return false;">전체추가</button>
+								<button type="button" onClick="javascript:addrToList_advc('select'); 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><!--// 주소록 불러오기 -->
+	<!-- 주소록에 등록 data-tooltip:duplication_layer -->
+	<div class="tooltip-wrap">
+		<div class="popup-com addressregi_layer" tabindex="0" data-tooltip-con="addressregi_layer" data-focus="addressregi_layer" data-focus-prev="addressregi_layer-close" style="width: 680px;">
+			<div class="popup_heading">
+				<p>주소록에 등록</p>
+				<button type="button" class="tooltip-close" data-focus="addressregi_layer-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
+			</div>
+			<div class="layer_in" style="padding: 30px 20px;">
+				<table class="layer_tType1">
+					<caption>주소록 그룹선택 표</caption>
+						<colgroup>
+							<col style="width: 95px">
+							<col style="width: auto">
+						</colgroup>
+					<tbody>
+						<tr>
+							<th>그룹 선택</th>
+							<td>
+								<label for="" class="label">그룹 선택</label>
+								<select id="addrGrpIdInfo" name="addrGrpIdInfo">
+								</select>
+								<label for="" class="label">그룹명 입력</label>
+								<input type="text" id="addrGrpNm" name="addrGrpNm" placeholder="새 그룹명을 입력해주세요." onfocus="this.placeholder=''" onblur="this.placeholder='새 그룹명을 입력해주세요.'"class="inputLight" style="width: 300px;">
+								<input type="file" id="excelFile" accept=".xls, .xlsx, .txt" onchange="excelExport(event); return false;" style="display:none"/>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+				<div class="popup_btn_wrap2">
+					<button type="button" class="registAddr">등록</button>
+					<button type="button" class="tooltip-close" data-focus="addressregi_layer-close" data-focus-next="addressregi_layer">닫기</button>
+				</div>
+			</div>
+		</div>
+	</div>
+	<!--// 주소록에 등록 팝업 -->
+	
+	<!-- 이벤트 잔여 캐시로 발송 가능한 문자 건수 정보 -->
+	<%-- <div class="tooltip-wrap">
+		<div class="popup-com import_layer popupEventSendInfo" tabindex="0" data-tooltip-con="popupEventSendInfo" data-focus="popupEventSendInfo" data-focus-prev="popupEventSendInfo-close">
+			<div class="popup_heading">
+				<p>이벤트 캐시 전송 가능 건수</p>
+				<button type="button" class="tooltip-close" data-focus="popupEventSendInfo-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
+			</div>
+			<div class="layer_in">
+				<!-- 발송 건수 정보 표시 -->
+				<div class="hascont">
+					<div class="titBox">
+						<p> 첫 결제 이벤트 잔액(캐시) : <fmt:formatNumber value="${eventRemainCash}" pattern="#,###.#"/> 원</p>
+						<p id="evnShortMsg">단문(<fmt:formatNumber value="${eventMberInfo.eventShortPrice}" pattern="#,###.#"/>) : <fmt:formatNumber value="${(eventRemainCash / eventMberInfo.eventShortPrice) - ((eventRemainCash / eventMberInfo.eventShortPrice) % 1) }" pattern="#,###"/> 건</p>
+						<p id="evnShortMsg">장문(<fmt:formatNumber value="${eventMberInfo.eventLongPrice}" pattern="#,###.#"/>) : <fmt:formatNumber value="${(eventRemainCash / eventMberInfo.eventLongPrice) - ((eventRemainCash / eventMberInfo.eventLongPrice) % 1)}" pattern="#,###"/> 건</p>
+						<p id="evnShortMsg">그림 1장(<fmt:formatNumber value="${eventMberInfo.eventPicturePrice}" pattern="#,###.#"/>) : <fmt:formatNumber value="${(eventRemainCash / eventMberInfo.eventPicturePrice) - ((eventRemainCash / eventMberInfo.eventPicturePrice) % 1)}" pattern="#,###"/> 건</p>
+						<p id="evnShortMsg">그림 2장(<fmt:formatNumber value="${eventMberInfo.eventPicture2Price}" pattern="#,###.#"/>) : <fmt:formatNumber value="${(eventRemainCash / eventMberInfo.eventPicture2Price) - ((eventRemainCash / eventMberInfo.eventPicture2Price) % 1)}" pattern="#,###"/> 건</p>
+						<p id="evnShortMsg">그림 3장(<fmt:formatNumber value="${eventMberInfo.eventPicture3Price}" pattern="#,###.#"/>) : <fmt:formatNumber value="${(eventRemainCash / eventMberInfo.eventPicture3Price) - ((eventRemainCash / eventMberInfo.eventPicture3Price) % 1)}" pattern="#,###"/> 건</p>
+						
+					</div>
+				</div><!--// 발송 건수 정보 표시 -->
+				<div class="popup_btn_wrap2">
+					<button type="button" class="tooltip-close closePopupEventSendInfo" data-focus="popupEventSendInfo-close"  data-focus-next="popupEventSendInfo">닫기</button>                      
+				</div>
+			</div>
+		</div>
+	</div> --%>
+	
+	<!-- 이벤트 잔여 캐시 정보 표시 팝업 -->
+	<div class="tooltip-wrap">
+		<div class="popup-com event_cash_popup popup07" tabindex="0" data-tooltip-con="popup07" data-focus="popup07" data-focus-prev="popup07-close">
+			<div class="popup_heading">
+				<p>이벤트 잔액</p>
+				<button type="button" class="tooltip-close" data-focus="popup07-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
+			</div>
+			<div class="layer_in">
+				<div class="table_wrap">
+					<div class="table_top">
+						<p class="popup_title_18">첫 결제 이벤트 잔액(캐시)</p>
+						<p><span class="c_e40000 fwBold"><fmt:formatNumber value="${eventRemainCash}" pattern="#,###.#"/></span>원</p>
+					</div>
+					<table class="popup_table_type2">
+						<colgroup>
+							<col style="width: 25%;">
+							<col style="width: auto;">
+						</colgroup>
+						<tbody>
+							<tr>
+								<th>단문(<fmt:formatNumber value="${eventMberInfo.eventShortPrice}" pattern="#,###.#"/>)</th>
+								<td><span class="c_002c9a fwBold"><fmt:formatNumber value="${(eventRemainCash / eventMberInfo.eventShortPrice) - ((eventRemainCash / eventMberInfo.eventShortPrice) % 1) }" pattern="#,###"/></span>건</td>
+							</tr>
+							<tr>
+								<th>장문(<fmt:formatNumber value="${eventMberInfo.eventLongPrice}" pattern="#,###.#"/>)</th>
+								<td><span class="c_002c9a fwBold"><fmt:formatNumber value="${(eventRemainCash / eventMberInfo.eventLongPrice) - ((eventRemainCash / eventMberInfo.eventLongPrice) % 1)}" pattern="#,###"/></span>건</td>
+							</tr>
+							<tr>
+								<th>그림 1장(<fmt:formatNumber value="${eventMberInfo.eventPicturePrice}" pattern="#,###.#"/>)</th>
+								<td><span class="c_002c9a fwBold"><fmt:formatNumber value="${(eventRemainCash / eventMberInfo.eventPicturePrice) - ((eventRemainCash / eventMberInfo.eventPicturePrice) % 1)}" pattern="#,###"/></span>건</td>
+							</tr>
+							<tr>
+								<th>그림 2장(<fmt:formatNumber value="${eventMberInfo.eventPicture2Price}" pattern="#,###.#"/>)</th>
+								<td><span class="c_002c9a fwBold"><fmt:formatNumber value="${(eventRemainCash / eventMberInfo.eventPicture2Price) - ((eventRemainCash / eventMberInfo.eventPicture2Price) % 1)}" pattern="#,###"/></span>건</td>
+							</tr>
+							<tr>
+								<th>그림 3장(<fmt:formatNumber value="${eventMberInfo.eventPicture3Price}" pattern="#,###.#"/>)</th>
+								<td><span class="c_002c9a fwBold"><fmt:formatNumber value="${(eventRemainCash / eventMberInfo.eventPicture3Price) - ((eventRemainCash / eventMberInfo.eventPicture3Price) % 1)}" pattern="#,###"/></span>건</td>
+							</tr>
+						</tbody>
+					</table>
+				</div>
+				<div class="popup_btn_wrap2">
+					<button type="button" class="tooltip-close" data-focus="popup07-close"  data-focus-next="popup07">닫기</button>
+				</div>
+			</div>
+		</div>
+	</div>
+	
+	
+    <form id="msgForm" name="msgForm" method="post">
+		<input type="hidden" id="msgType" name="msgType" value="4" /><!-- 문자 종류 : 단문 - 4, 장문/그림 - 6 -->
+		<input type="hidden" id="imgFilePath" name="imgFilePath" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 -->
+		<input type="hidden" id="imgFileId" name="imgFileId" value="" /><!-- 선택 이미지 파일 아이디 정보 , 로 구분 최대 3장까지 -->
+		<input type="hidden" id="fileCnt" name="fileCnt" value="0" /><!-- 첨부파일 추가 갯수 -->
+		<input type="hidden" id="callToList" name="callToList" value=""/><!-- 수신자 전화번호 리스트 -->
+		<input type="hidden" id="callFrom" name="callFrom" value=""/> <!-- 발신자 전화번호 -->
+		<input type="hidden" id="eachPrice" name="eachPrice" value="0"/> <!-- 문자 개별 단가 금액 -->
+		<input type="hidden" id="totPrice" name="totPrice" value="0"/> <!-- 총 결제 금액 -->
+		<input type="hidden" id="smsLen" name="smsLen" value="0"/> <!-- 문자 길이 정보 -->
+		<input type="hidden" id="reserveYn" name="reserveYn" value="N"/> <!-- 즉시/예약 선택여부 -->
+		<input type="hidden" id="reqDate" name="reqDate" value=""/> <!-- 예약문자 날짜 -->
+		<input type="hidden" id="imgCnt" value="0" />
+		<input type="hidden" id="smsTxt" name="smsTxt" value=""/><!-- 문자발송 문자 내용 -->
+		<input type="hidden" id="nameList" name="nameList" value=""/><!-- 문자발송 문자 이름 리스트 -->
+		<input type="hidden" id="rep1List" name="rep1List" value=""/><!-- 문자발송 문자 치환1 리스트 -->
+		<input type="hidden" id="rep2List" name="rep2List" value=""/><!-- 문자발송 문자 치환2 리스트 -->
+		<input type="hidden" id="rep3List" name="rep3List" value=""/><!-- 문자발송 문자 치환3 리스트 -->
+		<input type="hidden" id="rep4List" name="rep4List" value=""/><!-- 문자발송 문자 치환4 리스트 -->
+		<input type="hidden" name="templateYn" />
+		<input type="hidden" id="sPrice" name="sPrice" value="<c:out value="${shortPrice}"/>"/><!-- 단문문자 단가 -->
+		<input type="hidden" id="mPrice" name="mPrice" value="<c:out value="${longPrice}"/>"/><!-- 장문문자 단가 -->
+		<input type="hidden" id="pPrice" name="pPrice" value="<c:out value="${picturePrice}"/>"/><!-- 그림문자 단가 -->
+		<input type="hidden" id="p2Price" name="p2Price" value="<c:out value="${picture2Price}"/>"/><!-- 그림2장문자 단가 -->
+		<input type="hidden" id="p3Price" name="p3Price" value="<c:out value="${picture3Price}"/>"/><!-- 그림3장문자 단가 -->
+		<input type="hidden" id="myPrice" name="myPrice" value="<c:out value="${userMoney}"/>"/><!-- 보유 캐시금액 -->
+		<input type="hidden" id="msgKind" name="msgKind" value="N"/><!-- 문자종류 일반:N , 광고:A , 선거:C -->
+		<input type="hidden" id="txtReplYn" name="txtReplYn" value="N"/><!-- 변환문자 유무 -->
+		<input type="hidden" id="shortMsgCnt" name="shortMsgCnt" value="0"/><!-- 단문 변환문자 건수  -->
+		<input type="hidden" id="longMsgCnt" name="longMsgCnt" value="0"/><!-- 장문 변환문자 건수 -->
+		
+		<!-- 주소록 등록 -->
+		<input type="hidden" id="addrGrpId" name="addrGrpId" value=""/>
+		<input type="hidden" id="addrGrpNm" name="addrGrpNm" value=""/>
+		
+		<!-- 이벤트 관련 변수 -->
+		<input type="hidden" id="eventStatus" name="eventStatus" value="<c:out value='${eventMberInfo.eventStatus}'/>"/>
+		<input type="hidden" id="eventRemainCash" name="eventRemainCash" value="<c:out value='${eventRemainCash}'/>"/>
+		<input type="hidden" id="eventYn" name="eventYn" value="N"/>
+		
+		<!-- 스팸문자 관련 변수 -->
+		<input type="hidden" id="spamKeyword" name="spamKeyword"/>
+		<input type="hidden" id="spamStatus" name="spamStatus"/>
+		<input type="hidden" id="exceptSpamYn" name="exceptSpamYn" value="<c:out value='${exceptSpamYn}'/>"/>
+		
+		<!-- 이벤트 캐시 부족시 일반캐시로 계산을 위해 저장, 우영두 2023.03.28 -->
+		<input type="hidden" id="norsPrice" name="norsPrice" value="<c:out value="${norShortPrice}"/>"/><!-- 단문문자 단가(이벤트 단가 제외) -->
+		<input type="hidden" id="normPrice" name="normPrice" value="<c:out value="${norLongPrice}"/>"/><!-- 장문문자 단가(이벤트 단가 제외) -->
+		<input type="hidden" id="norpPrice" name="norpPrice" value="<c:out value="${norPicturePrice}"/>"/><!-- 그림문자 단가(이벤트 단가 제외) -->
+		<input type="hidden" id="norp2Price" name="norp2Price" value="<c:out value="${norPicture2Price}"/>"/><!-- 그림2장문자 단가(이벤트 단가 제외) -->
+		<input type="hidden" id="norp3Price" name="norp3Price" value="<c:out value="${norPicture3Price}"/>"/><!-- 그림3장문자 단가(이벤트 단가 제외) -->	
+		<input type="hidden" id="evnPhoneNumCnt" name="evnPhoneNumCnt" value="0"/><!-- 치환 이벤트 발송 수신자 갯수 -->
+		<input type="hidden" id="evnShortMsgCnt" name="evnShortMsgCnt" value="0"/><!-- 치환 이벤트 단문 건수 -->
+		<input type="hidden" id="evnLongMsgCnt" name="evnLongMsgCnt" value="0"/><!-- 치환 이벤트 장문 건수 -->
+		
+		<input type="hidden" id="blineCode" name="blineCode" value="<c:out value="${blineCode}"/>"/>
+		
+	<!-- <div class="top_content current" id="tab1_1"> -->
+	    <div class="heading">
+	        <h2>문자전송</h2>
+	        <button type="button" class="button info" onclick="infoPop('adrvertisement1');" style="right: 128px;">광고규정</button>
+	        <button type="button" class="button info" onclick="infoPop('selectMsgDataView1');">사용안내</button>
+	    </div>
+	    <div class="send_general">
+	        <div class="send_left">
+	        	<%-- <dl class="myprice_view">
+	        		<dt>나의 요금제</dt>
+	        		<dd>
+	        			<ul>
+							<li><span class="type">단문</span><span class="price"><c:out value="${shortPrice}"/></span>원</li>
+							<li><span class="type">장문</span><span class="price"><c:out value="${longPrice}"/></span>원</li>
+							<li><span class="type">그림</span><span class="price"><c:out value="${picturePrice}"/></span>원 <span class="count">(2장 : <c:out value="${picture2Price}"/>원 / 3장 : <c:out value="${picture3Price}"/>원)</span></li>
+						</ul>
+	        		</dd>
+	        	</dl> --%>
+	            <table class="tType1">
+	                <caption>일반 문자보내기 분류 번호 내용 등을 입력하는 표</caption>
+	                <colgroup>
+	                    <col style="width: 100px;">
+	                    <col style="width: auto;">
+	                </colgroup>
+	                <tbody>
+	                    <tr>
+	                        <th scope="row">문자분류</th>
+	                        <td class="send_cf">
+	                            <input class="send_adYnN" id="send_adYnN" type="radio"name="send_adYn" value="N" checked="checked">
+	                            <label class="send_adYnN" for="send_adYnN">일반</label>
+	                            <input id="send_adYnY" type="radio" name="send_adYn" value="Y">
+	                            <label for="send_adYnY">광고</label>
+	                        </td>
+	                    </tr>
+	                    <tr>
+                            <th scope="row">발신번호</th>
+                            <td class="put_num">
+                                <label for="callFrom" 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 class="msg_title">
+                            <th scope="row">제목</th>
+                            <td>
+                           		<ul class="title_wrap">
+                           			<li>
+                           				<input id="title_y" type="radio"name="title_status" value="Y" onchange="titleStatus(this);">
+			                            <label for="title_y">사용</label>
+			                            <input id="title_n" type="radio" name="title_status" value="N" onchange="titleStatus(this);" checked="checked">
+			                            <label for="title_n">사용안함</label>
+                           			</li>
+                           			<li class="textbox">
+                           				<label for="mmsSubject" class="label"></label>
+										<input type="text" size="20" id="mmsSubject" name="mmsSubject" class="w100" maxlength="20" placeholder=""  onfocus="this.placeholder=''" >
+                           			</li>
+                           		</ul>
+                            </td>
+                        </tr>
+						<!-- 문자 내용 영역 -->
+						<tr>
+                            <th scope="row" class="vTop">내용</th>
+                            <td class="putText">
+                                <div class="clearfix">
+                                    <div class="put_left short">
+                    					<!-- 업로드한 이미지의 썸네일 영역 -->
+                                    	<ul class="thumb_wrap liOnImg"></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">
+                                        <div class="btn_popup_wrap spc_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>주소록, 엑셀에 입력된 내용을 이용해 수신자마다 다른 내용의<br> 메시지를 발송하는 기능</p>
+													</div>
+													<div class="convers_middle"><a href="javascript:void(0)" class="changeWord" value="[*이름*]">[*이름*]</a></div>
+													<div class="convers_bottom">
+														<a href="javascript:void(0)" class="changeWord" value="[*1*]">[*1*]</a>
+														<a href="javascript:void(0)" class="changeWord" value="[*2*]">[*2*]</a>
+														<a href="javascript:void(0)" class="changeWord" value="[*3*]">[*3*]</a>
+														<a href="javascript:void(0)" class="changeWord" value="[*4*]">[*4*]</a>
+													</div>
+												</div>
+												<button type="button" class="btn_close" onclick="miniPopup(this);">닫기</button>
+											</div>
+										</div>
+                                        <button type="button" class="btnType btnType7" onclick="javascript:fnGoMyMsg(); return false;">내문자함</button>
+                                        <%-- <button type="button" data-tooltip="popupImg"  class="btnType btnType7">이미지 첨부</button> --%>
+                                        <button type="button" class="btnType btnType8" onclick="openPhotoEditor();">이미지 불러오기</button>
+	                                    <div class="send_btnWrap">
+	                                        <button type="button" class="btnType btnType9" onclick="javascript:fn_saveMyMsg(); return false;">문자저장</button>
+	                                        <button type="button" class="btnType btnType9 btnReset">초기화</button>
+	                                    </div>
+                                	</div>
+                            	</div>
+                            	<p>* 현재 [<span id="nowMsgType">단문</span>] <span class="c_e40000 fwBold nowMsgCnt">0</span>건 발송 가능합니다.</p>
+                         	</td>
+                        </tr>
+	                    <tr>
+                            <th scope="row" class="vTop">받는사람</th>
+                            <td class="putText">
+                                <div class="clearfix receipt_num">
+<!-- 									<div class="receipt_num_top"> -->
+<!-- 										<label for="callTo" class="label">받는 번호입력</label> -->
+
+<!-- 										<input type="text" id="callTo" name="callTo" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"  placeholder="번호를 입력하세요" 
+											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_top">
+										<label for="" class="label">받는 번호입력</label>
+										<!-- <input type="text" placeholder="번호를 입력하세요" onfocus="this.placeholder=''" onblur="this.placeholder='번호를 입력하세요'" style="width:340px;"> -->
+<!-- 												oninput="this.value = this.value.replace(/[^0-9.\n]/g, '').replace(/(\..*)\./g, '$1');" -->
+										<textarea name="callTo" id="callTo" cols="30" rows="10" class="receipt_num" 
+												placeholder="번호를 입력하세요" 
+												onfocus="this.placeholder=''" 
+												onblur="this.placeholder='번호를 입력하세요'" 
+												style="width:340px;"></textarea>
+										<!-- <button type="button" class="btnType btnType6">번호추가</button> -->
+										<div class="btn_popup_wrap">
+											<button type="button" class="btnType btnType6 btn_add_number addCallToF">번호추가<i class="qmMark"></i></button>
+											<span style="display:block;margin:10px 0 0 0;"><span class="vMiddle">*</span> 중복번호는 한번만 추가됩니다.</span>
+											<div class="error_hover_cont send_hover_cont">
+												<p>휴대폰 번호 입력 시 해당 휴대폰 번호에 대한 형식이 어긋나거나 휴대폰 번호에 오류가 있는지 등을 검사하는 기능</p>
+												<span>(예시) 010-1234-0001(O) / 010-12345-0001(X)</span>
+											</div>
+										</div>
+									</div>
+                                    <div class="receipt_num_midde">
+                                        <div class="listType list01 callList_box">
+                                        <!-- 
+											<div class="list_table list_head">
+												<div class="cb_wrap">
+													<label for="" class="label"></label>
+													<input type="checkbox">
+												</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>
+										<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">
+												<button type="button" data-tooltip="popup05" class="btnType btnType7 tab2" onclick="getMjMsgSentListAll('1');">재전송</button>
+											</div>
+											<div class="btn_popup_wrap check_validity_wrap">
+												<button type="button" class="btnType btnType7 check_validity">오류 검사 <i class="qmMark"></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 registAddr">주소록에 등록</button>--%>
+											<button type="button" class="address_reg2 addressregi_btn">주소록에 등록</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">
+	                                    		단문 : <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>
+	                                <c:if test="${eventRemainCash > 0  && eventMberInfo.eventStatus eq 'Y'}">
+	                                	<p style="text-align: right; font-size: 14px; color: #666; margin: -10px 0 15px 0; font-weight: 300;">* 이벤트회원의 발송금액은 이벤트단가를 적용하여 계산된 금액이므로 실제 발송금액과 다를 수 있습니다.</p>
+	                                </c:if>
+	                                <div class="pay_type clearfix">
+	                                	<fmt:formatNumber type="number" maxFractionDigits="3" value="${userMoney}" var="commaPrice" />
+										<div>
+											<input type="radio" id="radio_bill_1" name="radio_bill" checked="checked">
+											<label for="radio_bill_1">보유잔액</label>
+											<%-- <label for="radio_bill_1">내 충전금 (<span id="spUserMoney">
+												<c:choose>
+													<c:when test="${not empty userMoney}">
+														<c:out value="${commaPrice}"/>
+													</c:when>
+													<c:otherwise>
+														0
+													</c:otherwise>
+												</c:choose>
+											</span>원)</label> --%>
+											<label for="userMoney" class="label">보유잔액</label>
+											<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>
+										<c:if test="${eventRemainCash > 0  && eventMberInfo.eventStatus eq 'Y'}">
+												<div><button type="button" data-tooltip="popup07" class="btnType btnType3 btn_event_cash">이벤트 잔액</button></div>
+										</c:if>
+									</div>
+									
+									<!--발송금액 아래 등급별 가격안내 추가-->
+									<div class="my_price_wrap" id="myPriceWrap" style="display: none;">
+										<div class="center-line"></div>
+										<ul>
+											<li class="title">
+												<img src="/publish/images/content/icon_mypage_message.png" alt="">나의 단가 &nbsp;<span>:</span> &nbsp;
+											</li>
+											<li class="price_line">
+												<span class="type">단문</span>
+												<span class="price"><fmt:formatNumber value="${shortPrice}" pattern="###.#" /></span>원
+												<span class="line">/ &nbsp;</span>
+											</li>
+											<li class="price_line">
+												<span class="type">장문</span>
+												<span class="price"><fmt:formatNumber value="${longPrice}" pattern="###.#" /></span>원
+												<span class="line">/ &nbsp;</span>
+											</li>
+											<li class="price_line">
+												<span class="type">그림</span>
+												<span class="price"><fmt:formatNumber value="${picturePrice}" pattern="###.#" /></span>원 
+												(2장 : <fmt:formatNumber value="${picture2Price}" pattern="###.#" />원 / 3장 : <fmt:formatNumber value="${picture3Price}" pattern="###.#" />원)
+											</li>
+										</ul>
+									</div>	
+									<!-- End -->								
+									
+                                </div>
+                            </th>
+                        </tr>
+                        <%-- <tr>
+                            <th scope="row">추천인 ID</th>
+                            <td class="check_num">
+                                <input id="radio5" type="radio"name="recom" checked="checked">
+                                <label for="radio5">없음</label>
+                                <input id="radio6" type="radio" name="recom">
+                                <label for="radio6">있음</label>
+                                <div>
+                                    <label for="recommId" class="label"></label>
+                                    <input type="text" size="20" id="recommId" name="recommId" value="" placeholder="추천인 아이디 입력" onfocus="this.placeholder=''" onblur="this.placeholder='추천인 아이디 입력'">
+                                    <button type="button" class="btnType btnType9" id="recommBtn">추천인 확인</button>
+                                </div>
+                            </td>
+                        </tr> --%>            
+                    </tbody>
+                </table>
+            </div>
+            <div class="send_right">
+                <div class="phone">
+                   	<div class="phoneIn">
+						<div>
+							<p><img src="/publish/images/search.png">미리보기</p>
+							<div class="text_length2 clearfix preShort">
+								<span class="msg_com msg_short">단문</span>
+								<div>
+									<span>글자크기</span>
+									<button type="button" class="fontPlus"><img src="/publish/images/content/font_plus.png"></button>
+									<button type="button" class="fontMinus"><img src="/publish/images/content/font_minus.png"></button>
+								</div>
+							</div>
+							<div class="text_length2 clearfix prePhoto">
+								<span class="msg_com msg_photo">포토</span>
+								<ul class="photo_msg_num">
+									<li class="photo_num_01" onclick="imgClick(0);"><a href="#none">1</a></li>
+									<li class="photo_num_02" onclick="imgClick(1);"><a href="#none">2</a></li>
+									<li class="photo_num_03" onclick="imgClick(2);"><a href="#none">3</a></li>
+								</ul>
+								<div>
+									<span>글자크기</span>
+									<button type="button" class="fontPlus"><img src="/publish/images/content/font_plus.png"></button>
+									<button type="button" class="fontMinus"><img src="/publish/images/content/font_minus.png"></button>
+								</div>
+							</div>
+							<!-- 텍스트 미리보기 -->
+							<div class="text_preview">
+								<div class="preiew_img preViewShort"></div>
+								<div class="preview_auto">
+									<p class="none_txt">내용을 입력해주세요.</p>
+									<pre class="realtime"></pre>
+								</div>
+							</div>
+							<!-- //텍스트 미리보기 -->
+						</div>
+					</div>
+					<p class="addText">※ 단말기 설정에 따라 다르게 보일 수 있습니다</p>
+					<div class="preview_util">
+						<button type="button" id="btnFirst"><img src="/publish/images/content/page_first.png"></button>
+						<button type="button" id="btnPrev" data-index="0"><img src="/publish/images/content/page_prev.png"></button>
+						<p>미리보기</p>
+						<button type="button" id="btnNext" data-index="1"><img src="/publish/images/content/page_next.png"></button>
+						<button type="button" id="btnLast"><img src="/publish/images/content/page_last.png"></button>
+					</div>
+				</div>
+				<div class="phone_bottom">
+                    <div class="send_rev">
+                    	<div class="send_content">
+	                        <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">
+		                        <button type="button" class="btnType btnType11" onclick="javascript:fn_sendMsgData(); return false;">발송하기</button>
+		                        <button type="button" class="btnType btnType10" onclick="javascript:fnTestSend(); 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 calendar02" title="검색 시작일" id="startDate2" name="startDate2" value="" data-datecontrol="true">
+								</div>
+               		            <label for="msgResHour" class="label">시 선택</label>
+								<div class="selBox">
+		       		            	<select class="selType1" id="msgResHour" name="msgResHour">
+		       		            		<c:forEach  var="hour"  begin="0" end="23" 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">
+		       		            		<c:forEach var="min" begin="0" end="55" step="5">
+		       		            			<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="divideChk" name="divideChk">
+             		            <label for="divideChk">분할전송</label>
+             		            <input type="text" class="dividType1" id="divideCnt" name="divideCnt" value="20" onkeypress='return checkNumber(event)' maxlength="4"/>
+             		            <label for="divideCnt">건씩</label> <!-- 2023 11 17 수정 --> 
+             		            <select class="selType1" id="divideTime" name="divideTime">
+             		                <option value="1">01분</option>
+             		                <option value="2">02분</option>
+             		                <option value="3">03분</option>
+             		                <option value="4">04분</option>
+             		                <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>
+    <!-- </div> --><!--// tab content1 -->
+</form>
+<form id="latestMsgForm" name="latestMsgForm" method="post">
+	<input type="hidden" id="userId" name="userId" value="${LoginVO.id}"/>
+</form>
+<form id="addMyMsgForm" name="addMyMsgForm" method="post">
+	<input type="hidden" id="msgId" name="msgId" value=""/>
+	<input type="hidden" id="pageType1" name="pageType" value=""/>
+</form>
+<form name="popForm" id="popForm" method="post">
+	<input type="hidden" id="pageType2" name="pageType" value=""/> 
+</form>
+<form name="testSendForm" id="testSendForm" method="post">
+	<input type="hidden" name="msgKind" value=""/> 
+	<input type="hidden" name="msgpreview" value=""/> 
+	<input type="hidden" name="mmsSubject" value=""/>
+	<input type="hidden" name="callFrom" value=""/>
+	<input type="hidden" name="imgFilePath" value=""/>
+	<input type="hidden" name="eachPrice" value=""/>
+	<input type="hidden" name="msgType" value=""/>
+	<input type="hidden" name="smsTxt" value=""/>
+</form>
+
 
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView_back.jsp (deleted)
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView_back.jsp
@@ -1,1107 +0,0 @@
-<%@ 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="ui" uri="http://egovframework.gov/ctl/ui"%>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
-<!DOCTYPE html>
-<html lang="ko">
-<head>
-<link rel="stylesheet" href="/publish/css/jquery.mCustomScrollbar.css">
-<script src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script>
-<script src="/publish/js/content.js"></script>
-
-
-<script type="text/javascript">
-
-
-$(document).ready(function (){
-	
-	$('.preiew_img').hide();
-	$('.prePhoto').hide();
-	
-	//최초 화면 문자열 길이 체크해주기
-	var strCon = $('#smsTxt').val();
-	fnByteString(strCon);
-	
-	
-	// 발신자 전화번호 입력시 '-' 문자 입력해주기
-	/* $('#callFrom').keyup(function(e){
-		
-		var callFrom = addDash($('#callFrom').val());
-		$('#callFrom').val(callFrom);
-		
-	}); */
-	
-	// 수신자 전화번호 입력시 '-' 문자 입력해주기
-	/* $('#callTo').keyup(function(e){
-		
-		var callTo = addDash($('#callTo').val());
-		$('#callTo').val(callTo);
-		
-	}); */
-	
-	//일반문자, 광고문자 텍스트 내용 추가해주기
-	$('input[name=send_adYn]').change(function(){
-	
-		advMsgInsert();
-		
-	});
-	
-	function advMsgInsert(){
-		
-		var advStr = '<div class="ad_txt"><p>(광고)</p></div>';
-		var advDenyStr = '<div class="deny_txt"> <p>무료 거부 080-0000-0000</p> </div>';
-		
-		var preAdvStr = '<p class="ad_tit">(광고)</p>';
-		var preAdvDenyStr = '<p class="deny_receipt">무료 거부 080-0000-0000</p>';
-		
-		//광고 및 무료수신거부 텍스트 추가
-		if ($('input[name=send_adYn]:checked').val() == 'Y'){
-			
-			//문자 내용에 광고 문자 추가해주기
-			$(advStr).insertBefore('textarea[name=smsTxt]'); 
-			$(advDenyStr).insertBefore('div[name=afterDeny]');
-			
-			//미리보기에 광고 문자 추가해주기
-			$(preAdvStr).insertBefore('.none_txt');
-			$(preAdvDenyStr).insertAfter('.realtime');
-			
-			//$('#smsTxt').val(advStr + "\r\n" + contents + "\r\n" + advDenyStr);
-			
-			
-		}else{ //광고 및 무료수신거부 텍스트 삭제
-			
-			//문자내용 광고문자 삭제하기
-			$('.ad_txt').remove();
-			$('.deny_txt').remove();
-			
-			//미리보기 광고 문자 삭제하기
-			$('.ad_tit').remove();
-			$('.deny_receipt').remove();
-			
-			/* contents = contents.replace(advStr + "\n","")
-								.replace("\n" + advDenyStr, "");
-			
-			$('#smsTxt').val(contents); */
-			
-		}
-		
-		//문자 바이트수 계산하기
-		fnByteString($('#smsTxt').val());
-		
-	}
-	
-	
-	
-	//문자 내용 입력시 바이트수 계산하기
-	$('#smsTxt').keyup(function(e){
-		
-		var contents = $(this).val();
-		fnByteString(contents);
-		
-	});//문자 바이트수 계산하기 끝
-	
-	//최초 문자샘플 탭 리스트 데이터 불러오기
-	fnLetterListAjax();
-	
-	//문자 바이트수 계산하기 함수
-	function fnByteString(contents){
-		var totalByte = 0; 
-		var content = contents;
-		$('#msgLeng').html("");
-		$('#limitLeng').html("");
-		var conLeng = conByteLeng(content);
-		
-		var photoSts = $('.delLi').length;
-		if(photoSts > 0){
-			
-			$('#msgLeng').html(conLeng + " / ");
-			$('#limitLeng').html("2000");
-			$('.msg_com').html("그림");
-			$('#msgType').val("6"); // 메세지 타입 설정
-			
-			$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
-			$('.put_left').removeClass("short"); //내용 입력 박스 클래스 삭제
-			$('.msg_com').removeClass("msg_long"); //장문 클래스 삭제하고
-			$('.put_left').removeClass("long"); //내용 입력 박스 클래스 삭제
-			$('.msg_com').addClass("msg_photo"); // 그림 클래스 삽입
-			$('.put_left').addClass("photo");  // 내용 입력 박스에 클래스 삽입
-			$('.put_left').css("display","block");  // 내용 입력 박스에 클래스 삽입
-			
-			
-			document.getElementById("mmsSubject").disabled = false;
-			
-		}else{
-			
-			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"); // 장문 클래스 삽입
-				$('.put_left').addClass("long");  // 내용 입력 박스에 클래스 삽입
-				
-				document.getElementById("mmsSubject").disabled = false;
-				
-			}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"); // 장문 클래스 삽입
-				$('.put_left').addClass("short");  // 내용 입력 박스에 클래스 삽입
-				
-				//제목 비활성화로 내용 지워주기
-				$('#mmsSubject').val("");
-				document.getElementById("mmsSubject").disabled = true;
-				
-			}
-			
-		}
-		
-		
-		// 미리보기 데이터 입력해 주기 , 줄바꿈 문자 변환해주기
-		var repContent = "";
-		repContetnt = content.replace(/(?:\r\n|\r|\n)/g, '<br/>');
-		$('.none_txt').text(content);
-		
-		// 2000byte 초과시 메세지 알림
-		if(conLeng > 2000){
-			
-			alert("문자 내용은 2000byte를 넘을 수 없습니다.");
-			return false;
-			
-		}
-		
-		//결제 금액 계산해보기
-		var totalPrice  = totalPriceSum();
-		$('#totalPrice').text(totalPrice);
-		
-		$('#smsLen').val(conLeng);
-		
-	}
-	
-	
-
-	//문자입력창의 첨부된 이미지 순서를 바꿀 때
-	$(document).on('mouseup', '.thumb_wrap img', function (){
-		//미리보기 창의 이미지 순서를 변경한다
-		setTimeout(function() { 
-			var previewHtml = "";
-			
-			//이미지 갯수만큼 for문 돌림
-
-			for(var i=0; i<imgCnt-1; i++) {
-				var imgTag = $(".thumb_wrap li:eq("+i+") div").html(); // 썸네일에 있는 이미지 태그 가져오기
-				previewHtml += '<div class="img_box preBoxF on_scroll_img" id="preBoxF'+(i+1)+'">'
-				previewHtml += imgTag;
-				previewHtml += '</div>'
-			}
-			$('.preViewShort div').remove(); //미리보기 영역에 있던 이미지 다 지우고
-			$('.preViewShort').append(previewHtml);  //새로 sorting된 이미지 그려주기
-		}, 100);
-		
-	});
-	
-	//문자 샘플 탭, 그림문자 샘플 탭 선택시 옵션 초기화
-	$('.tab').click(function(){
-
-		var index = $(this).index();
-		var form = document.letterForm;
-		
-		if($(this).hasClass("active") === true){
-			
-			if(index == 0){
-				
-				form.pageIndex.value = 1;
-				form.letterType.value = "S";
-				form.categoryCode.value = "";
-				form.hashTag.value = "";
-			
-			}else if(index == 1){
-				
-				form.pageIndex.value = 1;
-				form.letterType.value = "P";
-				form.categoryCode.value = "";
-				form.hashTag.value = "";
-				
-			}else if(index == 2){
-				
-				setTimeout(function(){ 
-			    	map.relayout();
-			    	map.setCenter(testcoords);
-			    }, 0);
-				
-			}
-		
-		}
-		
-	});
-	
-	
-	//이미지 선택시 그림문자 처리
-	var imgCnt = 1;
-	$(document).on('click', '.photoOnImg', function(){ 
-	/* $('.photoOnImg').click(function(){ */
-		
-		$('.preShort').hide();
-		$('.prePhoto').show();
-		
-		if($('.msg_com').hasClass("msg_short") === true){
-			
-			$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
-			$('.msg_com').addClass("msg_photo"); // 그림문자용 클래스 삽입
-			$('.put_left').removeClass("short");
-			$('.put_left').addClass("photo");
-			$('.msg_com').html("그림");
-			$('#msgType').val("6"); // 메세지 타입 설정
-			
-			//제목 입력 항목 활성화
-			document.getElementById("mmsSubject").disabled = false;
-			
-		}else{
-			
-			$('.msg_com').removeClass("msg_long"); //장문 클래스 삭제하고
-			$('.msg_com').addClass("msg_photo"); // 그림문자용 클래스 삽입
-			$('.put_left').removeClass("long");
-			$('.put_left').addClass("photo");
-			$('.msg_com').html("그림");
-			$('#msgType').val("6"); // 메세지 타입 설정
-			
-			//제목 입력 항목 활성화
-			document.getElementById("mmsSubject").disabled = false;
-			
-		}
-		
-		var imgSrc = $(this).attr("src");
-		var imgId = $('#photoOnImg_'+imgCnt).val();
-		
-		if(imgCnt > 3){
-			
-			alert("이미지는 3장만 선택할 수 있습니다.");
-			return false;
-			
-		}else{
-			
-			//문자 내용 상단에 이미지 이름 영역 객체 추가해주기
-			var imgPath = "<img src=\"" + imgSrc + "\" alt=\"thumb1\"/>";
-			var liPath = '<li class="delLi" id="delLi'+ imgCnt +'">'
-						+ '<div>'
-						+ imgPath
-						+ '</div>'
-						+ '<button type="button" class="file_close"><img src="/publish/images/content/thumb_del.png" alt="첨부파일 삭제"></button>'
-						+ '<button type="button" class="file_close_on"><img src="/publish/images/content/thumb_del_on.png" alt="첨부파일 삭제"></button>'
-						+ '</li>';
-						
-						
-				/* "<li class=\"delLi\"><p>" + imgPath + "</p><button type=\"button\" class=\"file_close\"><img class=\"delImg\" src=\"/publish/images/content/file_close.png\" alt=\"첨부파일 삭제\"></button></li>" */
-			$('.liOnImg').append(liPath);	
-				
-			//미리보기 보여주기
-			$('.preiew_img').show();
-			
-			var imgHtml = "";
-			var imgPath = "<div class=\"img_box preBoxF\" id=preBoxF"+ imgCnt +"><img src=\"" + imgSrc + "\" /></div>";
-
-			if(imgCnt == 1){
-				$('.preViewShort').append(imgPath);
-				$('.photo_num_01').show();
-				$('.photo_num_02').hide();
-				$('.photo_num_03').hide();
-				//$(".thumb_wrap li:eq(0)").addClass("on");
-				
-			}else if(imgCnt == 2){
-				$('.preViewShort').append(imgPath);
-				$('.photo_num_02').show();
-				$(".thumb_wrap li").removeClass("on");
-				//$(".thumb_wrap li:eq(1)").addClass("on");
-				
-			}else if(imgCnt == 3){
-				$('.preViewShort').append(imgPath);
-				$('.photo_num_03').show();
-				$(".thumb_wrap li").removeClass("on");
-				//$(".thumb_wrap li:eq(2)").addClass("on");
-				
-			}
-			
-			// 배열에 선택한 이미지 경로 저장해주기
-			imgFilePath.push(imgSrc);
-			
-			// 배열에 선택한 이미지 아이디 저장해주기 - 내 문자 보관함 저장용으로 사용
-			imgFileId.push(imgId);
-			//문자 길이 및 타입 변경해주기
-			var contents = $('#smsTxt').val();
-			fnByteString(contents);
-			
-			//이미지 카운트 증가시키기
-			imgCnt ++;
-			
-		}
-		
-		var scrollHei = $(".mCustomScrollBox").height();
-		if(scrollHei > 488) {
-			$(".img_box").addClass("on_scroll_img");
-		}
-		
-		
-	});
-	
-	
-	//그림문자 이미지 삭제 처리 - 동적으로 추가한 객체는 on 함수로 불러올 수 있다.
-	$(document).on('click', '.file_close', function(){ 
-	  
-		var delImgPath = ""; //삭제하려는 이미지 경로 받아오기 
-		var index = $(this).index(); // 현재 선택 된 객체 인덱스 번호 받아오기
-		
-		//선택한 태그의 부모 이미지 li 객체 삭제
-		$(this).parent(".delLi").remove();
-		
-		//미리보기 화면에서의 이미지 객체 삭제
-		//삭제하려는 이미지 경로 받아오기
-		delImgPath = $('.preBoxF').eq(index).find("img").attr("src");
-		
-		$('.preBoxF').eq(index).remove();
-		
-		// 삭제한 이미지 경로 배열에서 삭제해 주기
-		for(var i=0; i < imgFilePath.length; i++){
-			
-			if(imgFilePath[i] === delImgPath){
-				
-				imgFilePath.splice(i, 1); //이미지 경로 삭제
-				imgFileId.splice(i, 1);   //이미지 아이디 삭제 - 내 문자 보관함 저장용으로 사용
-				i--;
-			}
-			
-		}
-		
-		imgCnt--;
-		
-		//미리보기 포토 1,2,3 번 번호 표시 변경
-		$('.photo_num_02').hide();
-		$('.photo_num_03').hide();
-		if(imgCnt > 2){
-			
-			$('.photo_num_01').show();
-			$('.photo_num_02').show();
-			
-		}else if(imgCnt > 1){
-			
-			$('.photo_num_01').show();
-			
-		}else{
-			
-			//그림을 모두 삭제 했을때 단문으로 변경
-			$('.preShort').show();
-			$('.prePhoto').hide();
-			
-			$('.msg_com').removeClass("msg_photo");
-			$('.msg_com').addClass("msg_short");
-			$('.put_left').removeClass("photo");
-			$('#msgType').val("4"); // 메세지 타입 설정
-			
-			var contents = $('#smsTxt').val();
-			fnByteString(contents);
-			
-		}
-		
-		var scrollHei = $(".mCustomScrollBox").height();
-		if(scrollHei > 488) {
-			$(".img_box").removeClass("on_scroll_img");
-		}
-		
-	}); 
-	
-	// 초기화 버튼 처리
-	$('.btnReset').click(function(){
-		
-		//일반문자 라이오 선택해 주기
-		$("#send_adYnN").prop("checked", true);
-		
-		$('.delLi').each(function(){
-			
-			$(this).remove();
-			
-		});
-		
-		$('.preBoxF').each(function(){
-			
-			$(this).remove();
-			
-		});
-		
-		//그림을 모두 삭제 했을때 단문으로 변경
-		$('.preShort').show();
-		$('.prePhoto').hide();
-		
-		$('.msg_com').removeClass("msg_photo");
-		$('.msg_com').addClass("msg_short");
-		$('#msgType').val("4"); // 메세지 타입 설정
-		
-		//메세지 내용 초기화
-		$('#smsTxt').val("");
-		fnByteString("");
-		
-	});
-	
-	// 동적으로 추가해주기 때문에 on 사용
-	$(document).on('click', '.letterMsg', function(){ //문자 템플릿 선택시 상단 문자 내용에 입력해주기 
-		
-		/* var smsTxt = $(this).find('.msg_text').text(); */
-		var smsTxtArea = $(this).find('.msg_text').html();
-				
-		smsTxtArea = smsTxtArea.replace(/(<br>|<br\/>|<br \/>)/g, '\r\n');
-		$('#smsTxt').val("");
-		$('#smsTxt').val(smsTxt);
-		fnByteString(smsTxt);
-
-		var sendOfT=$('.send_top').offset().top;
-		$('html,body').stop().animate({'scrollTop':sendOfT-60},250);
-		
-	});
-	
-	// 동적으로 추가해주기 때문에 on 사용
-	$(document).on('click', '.btnSearchF', function(){ // 검색 기능 실행 
-		
-		var form = document.letterForm;
-	
-		if(form.searchKeyword.value == ""){
-			
-			alert("검색어를 입력해 주세요.");
-			return false;
-			
-		}
-		//문자 리스트 불러오기
-		fnLetterListAjax();
-		
-	});
-	
-	/*
-	
-		단문 / 장문 탭 옵션 선택시 실행 
-	
-	**/
-	
-	$('.tDep1_mType').click(function(){ // 전체,기업, 개인 선택 옵션 처리
-		
-		var mType = $(this).find('.on_active').text();
-		var form = document.letterForm;
-		
-		
-		if(mType == "전체"){
-			
-			form.memberType.value = "";
-			
-		}else if(mType == "기업"){
-			
-			form.memberType.value = "B";
-			
-		}else{
-			
-			form.memberType.value = "P";
-			
-		}
-		
-		//문자 리스트 불러오기
-		form.letterType.value = "S";
-		form.categoryCode.value = "";
-		form.hashTag.value = "";
-		form.pageIndex.value = 1;
-		
-		//문자 리스트 불러오기
-		fnLetterListAjax();
-		
-	});
-	
-	$('.tDep1_letType').click(function(){ // 단문, 장문 선택 시 옵션처리
-		
-		var letterType = $(this).find('.on').attr("value");
-		var form = document.letterForm;
-		
-		form.letterType.value = letterType;
-		
-		//문자 리스트 불러오기
-		fnLetterListAjax();
-		
-	});
-	
-	$('.tDep1_cateCode').click(function(){ // 카테고리 선택 시 옵션 처리
-		
-		var cateCode = $(this).find('.on').attr("value");
-		var form = document.letterForm;
-		
-		if(cateCode == "all"){ //전체 선택시
-			
-			cateCode = "";	
-		
-		}
-		
-		form.categoryCode.value = cateCode;
-		form.pageIndex.value = 1;
-		
-		//문자 리스트 불러오기
-		fnLetterListAjax();
-		
-	});
-	
-	$('.tDep1_hashTag').click(function(){ // 해시 태그 선택 시 옵션 처리
-		
-		var hashTag = $(this).find('.on').attr("value");
-		var form = document.letterForm;
-		
-		form.hashTag.value = hashTag;
-		form.pageIndex.value = 1;
-		
-		//문자 리스트 불러오기
-		fnLetterListAjax();
-		
-	});
-	
-	
-	/*
-		
-		그림문자 탭 옵션 선택시 사용
-	
-	*/
-	
-	$('.tDep2_mType').click(function(){ // 전체,기업, 개인 선택 옵션 처리
-		
-		var mType = $(this).find('.on_active').text();
-		var form = document.letterForm;
-		
-		
-		if(mType == "전체"){
-			
-			form.memberType.value = "";
-			
-		}else if(mType == "기업"){
-			
-			form.memberType.value = "B";
-			
-		}else{
-			
-			form.memberType.value = "P";
-			
-		}
-		
-		//문자 리스트 불러오기
-		form.letterType.value = "P";
-		form.categoryCode.value = "";
-		form.hashTag.value = "";
-		form.pageIndex.value = 1;
-		
-		fnPhotoListAjax();
-		
-	});
-	
-	$('.tDep2_letType').click(function(){ // 그림문자 선택 
-		
-		var letterType = $(this).find('.on').attr("value");
-		var form = document.letterForm;
-		form.letterType.value = 'P';
-		
-		//문자 리스트 불러오기
-		fnPhotoListAjax();
-		
-	});
-	
-	$('.tDep2_cateCode').click(function(){ // 그림 문자 카테고리 선택 시 옵션 처리
-		
-		var cateCode = $(this).find('.on').attr("value");
-		var form = document.letterForm;
-		
-		if(cateCode == "all"){ //전체 선택시
-			
-			cateCode = "";	
-		
-		}
-		
-		form.categoryCode.value = cateCode;
-		form.pageIndex.value = 1;
-		
-		//문자 리스트 불러오기
-		fnPhotoListAjax();
-		
-	});
-	
-	$('.tDep2_hashTag').click(function(){ // 그림문자 해시 태그 선택 시 옵션 처리
-		
-		var hashTag = $(this).find('.on').attr("value");
-		var form = document.letterForm;
-		
-		form.hashTag.value = hashTag;
-		form.pageIndex.value = 1;
-		
-		//문자 리스트 불러오기
-		fnPhotoListAjax();
-		
-	});
-	
-	
-	//받는사람 번호추가 버튼 처리
-	$('.addCallToF').click(function(){
-		
-		var callTo = addDash($('#callTo').val());
-		
-		if(callTo == ""){
-			
-			alert("받는사람 번호를 입력해 주세요.");
-			return false;
-			
-		}else if(!_regExp1.test(callTo)){
-			
-			alert("올바른 받는사람 번호를 입력해 주세요.");
-			$('#callTo').val("");
-			return false;
-			
-		}
-		
-		var isExist = false;
-		$('.callNum_list').each(function(){
-			
-			if($(this).text() == callTo){
-				
-				isExist = true;
-				return false;
-				 			
-			}
-			
-		});
-		
-		if(!isExist){
-			
-			var addCallHtml = '<div class="list_table list_body">'
-				+ '<div class="cb_wrap">'
-				+ '<label for="" class="label"></label>'
-				+ '<input type="checkbox">'
-				+ '</div>'
-				+ '<div class="list_table_num callNum_list">'
-				+ '<p>' + callTo + '</p>'
-				+ '</div>'
-				+ '<div class="list_table_name">'
-				+ '<p>홍길동</p>'
-				+ '</div>'
-				+ '</div>';
-				
-			$('.callList_box').append(addCallHtml);
-			$('#callTo').val("");
-			
-		}else{
-			
-			alert("이미 추가된 전화번호 입니다.");
-			$('#callTo').val("");
-			return false;
-			
-		}
-		
-		//결제 금액 계산해보기
-		var totalPrice  = totalPriceSum();
-		$('#totalPrice').text(totalPrice);
-		
-	});
-	
-	
-	
-	$(".fontPlus").click(function () {
-		var currentSize = $(".preview_auto").css("fontSize");
-		var size = parseInt(currentSize, 10) * 1.2;
-		var unit = currentSize.slice(-2);
-		$(".preview_auto").css("fontSize", size+unit);
-	});
-	
-	$(".fontMinus").click(function () {
-		var currentSize = $(".preview_auto").css("fontSize");
-		var size = parseInt(currentSize, 10) / 1.2;
-		var unit = currentSize.slice(-2);
-		$(".preview_auto").css("fontSize", size+unit);
-	});
-	
-});
-
-function openPhotoEditor() {
-    //만들려는 팝업의 크기
-    var popup_wid = '950';
-    var popup_ht = '760';
-
-    //중앙 정렬을 위해 윈도우 스크린의 width,height 구하는 변수 만듦
-    var popup_left = (window.screen.width / 2) - (popup_wid / 2);
-    var popup_top =(window.screen.height / 2) - (popup_ht / 2);
-
-    window.open('<c:url value='/web/mjon/msgdata/openImageEditorPopup.do'/>', 'a', 'width=' + popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top + ', scrollbar=no' );
-
-}
-	
-</script>
-</head>
-<body>
-    <form id="msgForm" name="msgForm" method="post">
-				<input type="hidden" id="msgType" name="msgType" value="4" /><!-- 문자 종류 : 단문 - 4, 장문/그림 - 6 -->
-				<input type="hidden" id="imgFilePath" name="imgFilePath" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 -->
-				<input type="hidden" id="imgFileId" name="imgFileId" value="" /><!-- 선택 이미지 파일 아이디 정보 , 로 구분 최대 3장까지 -->
-				<input type="hidden" id="fileCnt" name="fileCnt" value="0" /><!-- 첨부파일 추가 갯수 -->
-				<input type="hidden" id="callToList" name="callToList" value=""/><!-- 수신자 전화번호 리스트 -->
-				<input type="hidden" id="eachPrice" name="eachPrice" value="0"/> <!-- 문자 개별 단가 금액 -->
-				<input type="hidden" id="totPrice" name="totPrice" value="0"/> <!-- 총 결제 금액 -->
-				<input type="hidden" id="smsLen" name="smsLen" value="0"/> <!-- 문자 길이 정보 -->
-				
-				
-	            <div class="top_content current hascont" id="tab1_1">
-	                <div class="heading">
-	                    <h2>문자전송</h2>
-	                    <ul class="send_price">
-	                        <li><span class="type">단문</span><span class="price sPrice">8.2</span>원</li>
-	                        <li class="price_line"><span class="type">장문</span><span class="price  mPrice">24.6</span>원</li>
-	                        <li class="price_line"><span class="type">그림</span><span class="price  pPrice">57.3</span>원</li>
-	                    </ul>
-	                </div>
-	                <div class="titBox">
-	                    <p>- 90byte 초과 시, 장문으로 전환됩니다. 장문 문자는 최대 2,000byte까지 작성할 수  있습니다.</p>
-						<p>- 포토문자 1건에 포토 최대 3장 첨부가능  [권장 사이즈 : 640 x 960픽셀 / 최대용량 : 10MB]</p>
-	                    <p>- 광고성 메시지는 반드시 유의사항 확인 후 발송해 주시기 바랍니다. <span> [광고문자 유의사항 보기]</span></p>
-	                    <button type="button"><i></i>사용안내</button>
-	                </div>
-	                <div class="send_general">
-	                    <div class="send_left">
-	                        <table class="tType1">
-	                            <caption>일반 문자보내기 분류 번호 내용 등을 입력하는 표</caption>
-	                            <colgroup>
-	                                <col style="width: 100px;">
-	                                <col style="width: auto;">
-	                            </colgroup>
-	                            <tbody>
-	                                <tr>
-	                                    <th scope="row">문자분류</th>
-	                                    <td class="send_cf">
-	                                        <input id="send_adYnN" type="radio"name="send_adYn" value="N" checked="checked">
-	                                        <label for="send_adYnN">일반</label>
-	                                        <input id="send_adYnY" type="radio" name="send_adYn" value="Y">
-	                                        <label for="send_adYnY">광고</label>
-	                                    </td>
-	                                </tr>
-	                                <tr>
-	                                    <th scope="row">발신번호</th>
-	                                    <td class="put_num">
-	                                        <label for="callFrom" class="label"></label>
-	                                        <!-- <input type="text" size="35" id="callFrom" name="callFrom" value="010-6317-0383" placeholder="010-1234-5678" onfocus="this.placeholder=''" onblur="this.placeholder='010-1234-5678'" readonly> -->
-	                                        <select id="callFrom" class="sel_number">
-												<option value="010-1234-5678">010-1234-5678</option>
-												<option value="010-1234-5678">010-1234-5678</option>
-												<option value="010-1234-5678">010-1234-5678</option>
-												<option value="010-1234-5678">010-1234-5678</option>
-											</select>
-	                                        <button type="button" class="btnType btnType6">번호변경</button>
-	                                    </td>
-	                                </tr>
-						<tr>
-	                                    <th scope="row">제목</th>
-	                                    <td>
-	                                        <!-- 단문일 때 -->
-											<label for="mmsSubject" class="label"></label>
-											<input type="text" size="20" id="mmsSubject" name="mmsSubject" class="w100" placeholder=""  onfocus="this.placeholder=''" >
-											<!-- 장문일 때 -->
-											<!-- <input type="text" size="20" id="mmsSubject" name="mmsSubject" class="w100" placeholder="제목을 입력해주세요 (최대30byte, 발송관리용)" onfocus="this.placeholder=''" onblur="this.placeholder='제목을 입력해주세요 (최대30byte, 발송관리용)'"> -->
-	                                    </td>
-	                                </tr>
-									<!-- 단문 -->
-									<tr>
-                                        <th scope="row">내용</th>
-                                        <td class="putText">
-                                            <div class="clearfix">
-                                                <div class="put_left short">
-                                <!-- 업로드한 이미지의 썸네일 영역 -->
-                                                	<ul class="thumb_wrap liOnImg"></ul>
-                               	<!-- //업로드한 이미지의 썸네일 영역 -->
-                                                	<!-- <div class="ad_txt"><p>(광고)</p></div> -->
-                                                    <label for="smsTxt" class="label"></label>
-                                                    <textarea id="smsTxt" name="smsTxt" class="put_text">
-
-                                                    </textarea>
-                                                    <div class="text_length">
-                                                    	<!-- <div>
-															<p>무료 거부 080-0000-0000</p>
-														</div> -->
-														<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 btnType7">특수문자</button>
-                                                    <button type="button" class="btnType btnType7">특정문구 일괄변환</button>
-                                                    <button type="button" class="btnType btnType7" onclick="javascript:fnGoMyMsg(); return false;">내문자함</button>
-                                                    <button type="button" class="btnType btnType8" onclick="openPhotoEditor();">이미지 불러오기</button>
-	                                                <div class="send_btnWrap">
-	                                                    <button type="button" class="btnType btnType9" onclick="javascript:fn_saveMyMsg(); return false;">문자저장</button>
-	                                                    <button type="button" class="btnType btnType9 btnReset">초기화</button>
-	                                                </div>
-                                            	</div>
-	                                        </div>
-	                                        <p>* 현재 [단문] <span class="c_e40000 fwBold">120,000</span>건 발송 가능합니다.</p>
-	                                    </td>
-	                                </tr>
-                                <tr>
-                                    <th scope="row">받는사람</th>
-                                    <td class="send_list">
-                                        <div class="list_left">
-                                            <div class="add_num">
-                                                <label for="callTo" class="label"></label>
-                                                <input type="text" id="callTo" name="callTo" placeholder="번호를 입력하세요." onfocus="this.placeholder=''" onblur="this.placeholder='번호를 입력하세요.'">
-                                                <button type="button" class="btnType btnType6 addCallToF">번호추가</button>
-                                                <span>* 중복번호는 한번만 발송됩니다.</span>
-                                            </div>
-											<div class="numOfCase">
-												<p>총 <span>120</span>건 /</p>
-												<p>중복 <span>9</span>건</p>
-											</div>
-                                            <div>
-                                                <div class="listType list01 callList_box">
-													<div class="list_table list_head">
-														<div class="cb_wrap">
-															<label for="" class="label"></label>
-															<input type="checkbox">
-														</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>
-                                                <div class="list_bottom">
-                                                    <div class="remove_btnWrap">
-                                                        <button type="button" class="btnType15"><i class="remove_img"></i>전체삭제</button>
-                                                        <button type="button" class="btnType15"><i class="remove_img"></i>선택삭제</button>
-                                                        <button type="button" class="btnType15"><i class="remove_img"></i>중복삭제</button>
-                                                        <button type="button" class="address_reg2">주소록에 등록</button>
-                                                    </div>
-													<!--
-													<div class="add_btn">
-														<button type="button" class="btnType btnType9">주소록에 저장</button>
-													</div> -->
-                                                </div>
-                                            </div>
-                                        </div>
-                                        <div class="add_remove">
-                                            <button type="button" class="add"><i></i>추가</button>
-                                            <button type="button" class="remove"><i></i>삭제</button>
-                                        </div>
-                                        <div class="list_right">
-											<div style="height: 90px;">
-                                            	<div class="list_btnWrap">
-                                            	    <button type="button" class="btnType 	btnType12">최근 전송내역</button>
-                                            	    <button type="button" class="btnType 	btnType12">자주보내는 번호</button>
-                                            	    <button type="button" class="btnType 	btnType12">그룹 보내기</button>
-                                            	    <button type="button" class="btnType btnType13 	c1">주소록 불러오기</button>
-                                            	    <button type="button" class="btnType btnType13 	c2">Txt파일 불러오기</button>
-                                            	    <button type="button" class="btnType btnType13 	c3">액셀 불러오기</button>
-                                            	</div>
-											</div>
-                                            <div>
-                                                <div class="listType list02">
-													<div class="list_table list_head">
-														<div class="cb_wrap">
-															<label for="" class="label"></label>
-															<input type="checkbox">
-														</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="drag_drop">
-														<div class="drag_drop_in">
-															<div class="drag_top">
-																<i></i>
-																<p>Drag and Drop</p>
-																<span>파일을 여기에 끌어 놓으세요</span>
-															</div>
-															<div class="drag_txt">
-																<span>or</span>
-															</div>
-															<div class="drag_bottom">
-																<p>Ctrl+C → Ctrl+V</p>
-																<span>복사해서 붙여넣으세요</span>
-															</div>
-														</div>
-													</div>
-												</div>
-                                                <div class="list_bottom">
-                                                    <div class="remove_btnWrap">
-                                                        <button type="button" class="btnType15"><i class="remove_img"></i>선택삭제</button>
-                                                        <button type="button" class="btnType15"><i class="remove_img"></i>전체삭제</button>
-														<button type="button" class="check_validity">유효성 검사<i></i></button>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </td>
-                                </tr>
-                                <tr>
-                                    <th colspan="2" class="billingAmount">
-                                    	<div>
-	                                        <div class="final_pay clearfix">
-	                                            <p>결제금액 :</p>
-	                                            <p class="price" ><span id="totalPrice">0</span>원<span>(부가세 포함)</span></p>
-	                                            <button type="button"><i></i>계산하기</button>
-	                                        </div>
-	                                        <div class="pay_type clearfix">
-												<div>
-													<label for="" class="label">충전 금액</label>
-													<input id="radio_bill_1" type="radio" name="radio_bill" checked="checked">
-													<label for="radio_bill_1">내 충전금 (<span>3,000</span>원)</label>
-												</div>
-												<div>
-													<label for="" class="label">포인트 금액</label>
-													<input type="text" placeholder="199,700" readonly>
-													<button type="button" class="btnType btnType3">충전</button>
-												</div>
-											</div>
-											<div class="pay_type clearfix">
-												<div>
-													<input id="radio_bill_1" type="radio" name="radio_bill" checked="checked">
-													<label for="radio_bill_1">내 포인트 (<span>300</span>p)</label>
-												</div>
-												<div>
-													<input type="text" placeholder="300" readonly>
-													<button type="button" class="btnType btnType3">전체사용</button>
-												</div>
-											</div>
-                                        </div>
-                                    </th>
-                                </tr>
-                                <tr>
-                                    <th scope="row">추천인 ID</th>
-                                    <td class="check_num">
-                                        <input id="radio5" type="radio"name="recom" checked="checked">
-                                        <label for="radio5">없음</label>
-                                        <input id="radio6" type="radio" name="recom">
-                                        <label for="radio6">있음</label>
-                                        <div>
-                                            <label for="id" class="label"></label>
-                                            <input type="text" size="20" id="id" placeholder="추천인 아이디 입력" onfocus="this.placeholder=''" onblur="this.placeholder='추천인 아이디 입력'">
-                                            <button type="button" class="btnType btnType9">확인</button>
-                                        </div>
-                                    </td>
-                                </tr>            
-                            </tbody>
-                        </table>
-                    </div>
-	                <div class="send_right">
-                        <div class="phone">
-                        	<div class="phoneIn">
-								<div>
-									<p><img src="/publish/images/search.png">미리보기</p>
-									<div class="text_length2 clearfix preShort">
-										<span class="msg_com msg_short">단문</span>
-										<div>
-											<span>글자크기</span>
-											<button type="button" class="fontPlus"><img src="/publish/images/content/font_plus.png"></button>
-											<button type="button" class="fontMinus"><img src="/publish/images/content/font_minus.png"></button>
-										</div>
-									</div>
-									<div class="text_length2 clearfix prePhoto">
-										<span class="msg_com msg_photo">포토</span>
-										<ul class="photo_msg_num">
-											<li class="photo_num_01" onclick="imgClick(0);"><a href="#none">1</a></li>
-											<li class="photo_num_02" onclick="imgClick(1);"><a href="#none">2</a></li>
-											<li class="photo_num_03" onclick="imgClick(2);"><a href="#none">3</a></li>
-										</ul>
-										<div>
-											<span>글자크기</span>
-											<button type="button" class="fontPlus"><img src="/publish/images/content/font_plus.png"></button>
-											<button type="button" class="fontMinus"><img src="/publish/images/content/font_minus.png"></button>
-										</div>
-									</div>
-									<!-- 텍스트 미리보기 -->
-									<div class="text_preview">
-										<div class="preiew_img preViewShort"></div>
-										<div class="preview_auto">
-											<!-- <p class="ad_tit">(광고)</p> -->
-											<p class="none_txt"></p>
-											<p class="realtime"></p>
-											<!-- <p class="deny_receipt">무료 거부 080-0000-0000</p> -->
-										</div>
-									</div>
-									<!-- //텍스트 미리보기 -->
-								</div>
-							</div>
-                            <p class="addText">※ 단말기 설정에 따라 다르게 보일 수 있습니다</p>
-						</div>
-						<div class="phone_bottom">
-                            <div class="send_rev">
-                                <div class="rev_radio">
-                                    <input id="radio7" type="radio"name="reser" checked="checked">
-                                    <label for="radio7">즉시</label>
-                                    <input id="radio8" type="radio" name="reser">
-                                    <label for="radio8">예약</label>
-                                </div>
-                                <div>
-                                    <div class="rev_top">
-                       		            <span>날짜 :</span>
-                       		            <div class="calendar">
-                       		                <input type="text" title="예약 전송 시 날짜 선택"><button id="txtDate1" value="" title="캘린더 팝업 열기" onclick="fnPopUpCalendar(txtDate1,txtDate1,'yyyy/mm/dd')" class="text_box1 calInput"><img src="/publish/images/calendar/calendarIcon2.png"></button>
-                       		            </div>
-                       		            <label for="" class="label">시 선택</label>
-										<div class="selBox">
-                       		            	<select class="selType1">
-                       		            	    <option>00시</option>
-                       		            	    <option>10시</option>
-                       		            	    <option>20시</option>
-                       		            	</select>
-                       		            	<label for="" class="label">분 선택</label>
-                       		            	<select class="selType1">
-                       		            	    <option>00분</option>
-                       		            	    <option>25분</option>
-                       		            	    <option>50분</option>
-                       		            	</select>
-										</div>
-                       		        </div>
-                                    <div class="rev_bottom">
-                      		            <input type="checkbox">
-                      		            <label for="">분할전송</label>
-                      		            <select class="selType1">
-                      		                <option>00시</option>
-                      		                <option>10시</option>
-                      		                <option>20시</option>
-                      		            </select>
-                      		            <label for="">건</label>
-                      		            <select class="selType1">
-                      		                <option>00분</option>
-                      		                <option>25분</option>
-                      		                <option>50분</option>
-                      		            </select>
-                      		            <label>간격</label>
-                      		        </div>
-                                </div>
-                            </div>
-                            <div class="send_btn">
-                                <button type="button" class="btnType btnType10">테스트 발송<img src="/publish/images/content/qmIcon.png"></button>
-                                <button type="button" class="btnType btnType11" onclick="javascript:fn_sendMsgData(); return false;">발송하기</button>
-                            </div>
-                            </div>
-		                </div>
-		            </div>
-		        </div><!--// tab content1 -->
-	        </form>
-</body>
-</html>(No newline at end of file)
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
@@ -1055,10 +1055,13 @@
 	var totPriceOnly = stringReplaceAll(form.totPrice.value, ",", "");
 	var userMoneyOnly = stringReplaceAll(form.myPrice.value, ",", "");
 
+	// test 주석
+	/* 
 	if(parseFloat(userMoneyOnly) < parseFloat(totPriceOnly)){
 		alert("문자 발송에 필요한 회원님의 보유 잔액이 부족 합니다.");
 		return false;
-	}
+	} 
+	*/
 
 	// 폼 유효성 검사
 	if (!validateForm(form)) return false;
@@ -1075,607 +1078,223 @@
 		}
 	}
 	
-	//MJ_MSG_GROUP_DATA 누락데이터 체크
-	//if (getMsgGroupDataErrorCheck() == false) {
-	//	alert("고객님께서 발송한 최근문자가 발송결과에 표시되지않아, 문자발송이 임시로 차단되었습니다.\n문자온 고객센터에 문의해주세요.");
-	//	return false;	 	
-	//}
+	
+	if(!confirm("문자를 전송하시겠습니까?")){
+		return false;
+	}
+
+	//총 결제금액 천단위 콤마 삭제 후 전송
+	var totPrice = form.totPrice.value;
+	form.totPrice.value = totPrice.replace(",","");
 	
 	
+	//이벤트 진행중 회원의 경우 이벤트 잔여금액 비교 처리 필요.
+	//이벤트 캐시가 부족한 경우 이벤트 캐시로 발송 가능한 만큼만 이벤트 금액으로 발송 처리해줌.
+	//이 후 나머지 발송 건수는 이벤트 캐시가 아닌 일반 단가로 발송 처리를 진행 함.
+	var eventStatus = form.eventStatus.value;
 	
-	//광고 문자 내용 합쳐주기
+	if(eventStatus == 'Y'){ //이벤트 진행 대상자이면 문자종류에 이벤트로 구분
+		
+		form.eventYn.value = "Y"; //이벤트문자 종류 설정
+		
+	}
+	
+	var eventRemainCash = parseFloat(form.eventRemainCash.value);
+	console.log('eventStatus : ', eventStatus);
+	
+	if(eventStatus == 'Y' 
+				&& parseFloat(eventRemainCash) < parseFloat(totPriceOnly))
+	{
+		if(!confirm("고객님의 이벤트 캐시 잔액(" + eventRemainCash + "원) 부족으로 요청하신 문자("+numberWithCommas($selectedData.length)+"건)를 모두 발송할 수 없습니다. 이벤트 캐시 초과 건에 대해서는 일반 단가를 적용하여 발송하시겠습니까?")){
+			return false;
+		}
+	}
+
+	console.log(' !!! imgFilePath : ', imgFilePath);
+		
+	// img 처리 영역
+	imgFilePath = [];
+	$('.thumb_wrap').find('.thumb_img').each(function(idx, el) {
+		if($("#delLi"+idx).hasClass("Template")){
+			templateYn.push("Y");
+		} else {
+			templateYn.push("N");
+		}
+		
+		if($(el).hasClass("edit_y")) {
+			//이미지 변환
+			const imgBase64 = $(el).attr("src");
+			const decodImg = atob(imgBase64.split(',')[1]);  // base64~ 부분을 제외하고 데이터 디코딩
+			
+	
+			let array = [];
+			for (let i = 0; i < decodImg.length; i++) {
+			  array.push(decodImg.charCodeAt(i));
+			}
+
+			const file = new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
+			const fileName = 'canvas_img_' + new Date().getMilliseconds() + '.jpg';
+			let formData = new FormData();
+			formData.append('file', file, fileName);
+
+			$.ajax({
+				type: 'post',
+				url: '/web/mjon/msgdata/insertEditImageAjax.do',
+				cache: false,
+				data: formData,
+				dataType:'json',
+				processData: false,
+				contentType: false,
+				async: false,
+				success: function (returnData, status) {
+					if(status == 'success'){
+						console.log('returnData : ',returnData)
+						// imgFilePath 에 배열로 담아주기(이미지 순서대로)
+						//console.log(imgFilePath);
+						imgFilePath.push(returnData.filefullPath);
+						imgFileId.push(returnData.atchFileId);
+						
+					} else if(status== 'fail'){
+						alert(returnData.message);
+					}
+				},
+				error: function (e) { alert("이미지 업로드에 실패하였습니다."); console.log("ERROR : ", e); }
+			});
+
+		} else {
+			if(imgFilePath.length != imgFileId.length){
+				//에디터 안거친 템플릿 이미지면 바로 src 때림
+				imgFilePath.push($(el).attr("src"));
+			}
+		}	
+	});
+		
+
+	//form.reserveYn.value = reserYn; // 즉시 / 예약 문자 선택 여부 
+	form.templateYnAdvc.value = templateYn;
+	console.log('imgFilePath : ', imgFilePath);
+	console.log('imgFilePath : ', JSON.stringify(imgFilePath));
+	console.log('imgFileId : ', imgFileId);
+	console.log('imgFileId : ', JSON.stringify(imgFileId));
+	form.imgFilePathAdvc.value = imgFilePath;
+	form.imgFileIdAdvc.value =  imgFileId;
+// 	form.imgFilePath.value = JSON.stringify(imgFilePath).replace(/\\/g, '');
+// 	form.imgFileId.value =  JSON.stringify(imgFileId).replace(/\\/g, '');
+	form.callFrom.value = removeDash($('#callFromList').val()); // 발신번호 대쉬(-) 문자 없애주기
+
+	//광고 종류 설정
 	var adverYn = $("input[name='send_adYn']:checked").val();
 	if(adverYn == 'Y'){
 		form.msgKind.value = "A"; //광고문자 종류 설정
 	}else{
 		form.msgKind.value = "N"; //일반문자 종류 설정
 	}
-	
-	//수신번호 리스트 체크하기
-	var numCnt = 0;
-	var nameList = [];		//치환문자 이름
-	var phoneNum = [];		//받는사람
-	var rep1List = [];		//치환문자1
-	var rep2List = [];		//치환문자2
-	var rep3List = [];		//치환문자3
-	var rep4List = [];		//치환문자4
-	
-	var selectedData = tableL.getRows();
-	
-/* 	
-	var reserYn = $("input[name=reserYn]:checked").val(); // 예약 발송 여부 확인
-	
-	if(reserYn == 'Y'){
-		
-		var date = $(".resDate").val();//form.msgResDate.value;
-		var hour = form.msgResHour.value;
-		var min = form.msgResMin.value;
-		
-		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{
-				form.reqDate.value = reqDate;	//예약일자 파라미터 저장
-			}
-		}
 
-	}else{
-		
-		form.reqDate.value = "";
-		
-	} */
-	
-/* 	
-	var conLeng = conByteLeng($('#smsTxt').val()); // 내용 문자 입력 바이트 수 계산하기
-	
-	if(conLeng > 2000){
-		
-		alert("문자 내용은 2000byte를 넘을 수 없습니다.");
-		return false;
-		
-	}
-
- */
-
-	console.log(' : 전송하시겠습니까 : ')
-	if(confirm("문자를 전송하시겠습니까?")){
-		imgFilePath = [];
-		$('.thumb_wrap').find('.thumb_img').each(function(idx, el) {
-			if($("#delLi"+idx).hasClass("Template")){
-				templateYn.push("Y");
-			} else {
-				templateYn.push("N");
-			}
-			
-			if($(el).hasClass("edit_y")) {
-				//이미지 변환
-				const imgBase64 = $(el).attr("src");
-				const decodImg = atob(imgBase64.split(',')[1]);  // base64~ 부분을 제외하고 데이터 디코딩
-				
-		
-				let array = [];
-				for (let i = 0; i < decodImg.length; i++) {
-				  array.push(decodImg.charCodeAt(i));
-				}
-
-				const file = new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
-				const fileName = 'canvas_img_' + new Date().getMilliseconds() + '.jpg';
-				let formData = new FormData();
-				formData.append('file', file, fileName);
-
-				$.ajax({
-					type: 'post',
-					url: '/web/mjon/msgdata/insertEditImageAjax.do',
-					cache: false,
-					data: formData,
-					dataType:'json',
-					processData: false,
-					contentType: false,
-					async: false,
-					success: function (returnData, status) {
-						if(status == 'success'){
-							// imgFilePath 에 배열로 담아주기(이미지 순서대로)
-							//console.log(imgFilePath);
-							imgFilePath.push(returnData.filefullPath);
-							imgFileId.push(returnData.atchFileId);
-							
-						} else if(status== 'fail'){
-							alert(returnData.message);
-						}
-					},
-					error: function (e) { alert("이미지 업로드에 실패하였습니다."); console.log("ERROR : ", e); }
-				});
-
-			} else {
-
-				if(imgFilePath.length != imgFileId.length){
-					//에디터 안거친 템플릿 이미지면 바로 src 때림
-					imgFilePath.push($(el).attr("src"));
-				}
-				
-			}	
-		});
-		
-		form.imgFilePath.value = imgFilePath; // 저장한 이미지 경로 담아주기
-		form.callToList.value = phoneNum; //수신자번호 리스트 저장해주기
-		form.callFrom.value = removeDash(form.callFromList.value); // 발신번호 대쉬(-) 문자 없애주기
-		form.reserveYn.value = reserYn; // 즉시 / 예약 문자 선택 여부 
-		form.templateYn.value = templateYn;
-		form.imgFileId.value = imgFileId;
-// 		form.nameList.value = nameList;
-// 		form.rep1List.value = rep1List;
-// 		form.rep2List.value = rep2List;
-// 		form.rep3List.value = rep3List;
-// 		form.rep4List.value = rep4List;
-		
-		//총 결제금액 천단위 콤마 삭제 후 전송
-		var totPrice = form.totPrice.value;
-		totPrice = totPrice.replace(",","");
-		form.totPrice.value = totPrice;
-		
-		//문자내용이 입력된 경우 스팸 필터링 실행
-		if(!form.smsTxtArea.value == "" && exceptSpamYn == "N"){
-			console.log(' : selectSpamTxtChkAjax : ')
-			var spmData = new FormData(form);
-			url = "/web/mjon/msgdata/selectSpamTxtChkAjax.do";
-			
-			$.ajax({
-		        type: "POST",
-		        url: url,
-		        data: spmData,
-		        
-		        dataType:'json',
-		        async: false,
-		        processData: false,
-		        contentType: false,
-		        cache: false,
-		        success: function (returnData, status) {
-		        	return false;
-		        	
-					if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
-						
-						if("fail" == returnData.result){
-							
-							alert(returnData.message);
-							return false;
-							
-						}else if("loginFail" == returnData.result){
-							
-							alert(returnData.message);
-							return false;
-								
-						}else if("spams" == returnData.result){
-							
-// 							var spmFilterTxt = returnData.spmFilterTxt;
-							spamStatus = true;
-							
-// 							form.spamKeyword.value = spmFilterTxt;
-							form.spamStatus.value='Y';
-						}else{
-							form.spamKeyword.value = '';
-							form.spamStatus.value='N';
-							
-						}
-						
-					} else if(status== 'fail'){
-						alert(returnData.message);
-						return false;
-					}
-				},
-		        error: function (e) { alert("문자 발송에 실패하였습니다."); console.log("ERROR : ", e); return false;}
-		    });
-			
-		}
-		
-		
-		//이벤트 진행중 회원의 경우 이벤트 잔여금액 비교 처리 필요.
-		//이벤트 캐시가 부족한 경우 이벤트 캐시로 발송 가능한 만큼만 이벤트 금액으로 발송 처리해줌.
-		//이 후 나머지 발송 건수는 이벤트 캐시가 아닌 일반 단가로 발송 처리를 진행 함.
-		var eventStatus = form.eventStatus.value;
-		
-		if(eventStatus == 'Y'){ //이벤트 진행 대상자이면 문자종류에 이벤트로 구분
-			
-			form.eventYn.value = "Y"; //이벤트문자 종류 설정
-			
-		}
-		
-		var eventRemainCash = parseFloat(form.eventRemainCash.value);
-		console.log('eventStatus : ', eventStatus);
-		
-		if(eventStatus == 'Y'){
-			
-			if(parseFloat(eventRemainCash) < parseFloat(totPriceOnly)){
-				
-				if(confirm("고객님의 이벤트 캐시 잔액(" + eventRemainCash + "원) 부족으로 요청하신 문자("+numberWithCommas(phoneNum.length)+"건)를 모두 발송할 수 없습니다. 이벤트 캐시 초과 건에 대해서는 일반 단가를 적용하여 발송하시겠습니까?")){
-					
-					var smsTxtArea = $('#smsTxtArea').val();
-					var evnMsgType = $("#msgType").val();
-					var evnEachPrice = $("#eachPrice").val();	//form 에 저장된 이벤트 개별 단가 불러오기
-					var evnSendCnt = Math.floor(eventRemainCash / evnEachPrice);
-					var norEachPrice = 0;
-					var imgCnt = $("#imgCnt").val();	//그림 이미지 갯수
-					var txtReplYn = $("#txtReplYn").val();	//치환문자 포함 여부 
-					var evnPhoneNumCnt = Number($("#evnPhoneNumCnt").val());	//치환문자 체크하면서 단/장문 건수 카운팅하면서 이벤트 금액으로 발송가능한 수신자 갯수 정보
-					var myPrice = parseFloat($("#myPrice").val());	//회원보유 잔여 캐시 금액
-
-					//수신목록 저장 배열 변수 
-					var evnPhoneNum = [];	//이벤트 단가 받는사람
-					var norPhoneNum = [];	//일반 단가 받는 사람
-					
-					//치환문자 포함 문자 저장 배열 변수(이벤트 문자 저장)
-					var evnName = [];
-					var evnRep1 = [];
-					var evnRep2 = [];
-					var evnRep3 = [];
-					var evnRep4 = [];
-					
-					//치환문자 포함 문자 저장 배열 변수(일반 문자 저장)
-					var norName = [];
-					var norRep1 = [];
-					var norRep2 = [];
-					var norRep3 = [];
-					var norRep4 = [];
-					
-					
-					/**
-					Desc:	1. 그림, 치환, 일반 문자에 대해서 각각 이벤트 단가로 전송할 리스트 와 일반단가로 전송할 리스트를 분리 하는 로직
-							2. 그림 및 일반 문자는 단순 이벤트 금액으로 보낼수 있는 건수를 계산하여 리스트[0] 부터 발송 건수만큼 추출하여 evnPhoneNum 배열에 입력 후 이벤트 금액으로 발송 진행
-							3. 이벤트 발송이 완료되면, 이벤트 건수를 제외한 나머지 건수를 norPhoneNum 배열에 입력 후 일반 금액으로 발송 진행
-							4. 일반 발송시에 전송 단가(eachPrice), 전체금액(totPrice) 등 변수 정보 변경
-							=====
-							5. 그림문자가 아닌 치환문자인 경우 치환 처리를 진행하면서 단문, 장문을 구분하고 이때 이벤트 금액에서 단문, 장문 가격을 차감하여 보낼 수량을 카운팅 함.
-							6. 치환 체크가 완료되면 치환시 나온 카운트 갯수만큼 이벤트 배열과 일반 배열에 분리처리 후 전송함.
-							7. 이벤트 발송 처리후 일반 단가 문자 발송시 보유 캐시 부족시 팝업으로 현재까지 발송된 이벤트 건수와 발송하지 못하는 일반단가 건수 정보를 표시해줌. 문자 발송은 중단 된다.
-					Param Array : evnPhoneNum, norPhoneNum
-					function :  getNorEachPrice - 메세지 타입(msgType)에 따른 단문, 장문, 그림문자 개별 단가 금액 확인
-								sendMsgAjax 	- 문자 발송 요청 Ajax 처리
-					*/
-
-					//그림문자인 경우
-					if(imgCnt > 0){
-						
-						//이벤트 가격으로 전송 할 받는 사람 리스트 저장처리
-						for(var i=0; i< evnSendCnt; i++){
-							evnPhoneNum[i]= phoneNum[i];
-							
-							//그림문자에 치환문자가 포함된 경우
-							if(txtReplYn == 'Y'){
-								
-								evnPhoneNum[i] = phoneNum[i];
-								evnName[i] = nameList[i];
-								evnRep1[i] = rep1List[i];
-								evnRep2[i] = rep2List[i];
-								evnRep3[i] = rep3List[i];
-								evnRep4[i] = rep4List[i];
-								
-							}
-						}
-						
-						//일반 가격으로 전송 할 받는 사람 리스트 저장처리
-						for(var j=0; j < phoneNum.length - evnSendCnt; j++){
-							norPhoneNum[j]= phoneNum[j + evnSendCnt];
-							
-							//그림문자에 치환문자가 포함된 경우
-							if(txtReplYn == 'Y'){
-								
-								norPhoneNum[j]= phoneNum[j + evnSendCnt];
-								norName[j] = nameList[j + evnSendCnt];
-								norRep1[j] = rep1List[j + evnSendCnt];
-								norRep2[j] = rep2List[j + evnSendCnt];
-								norRep3[j] = rep3List[j + evnSendCnt];
-								norRep4[j] = rep4List[j + evnSendCnt];
-								
-							}
-							
-						};
-						
-						
-					}else if(txtReplYn == 'Y'){//치환 문자가 있는 경우 , 그림문자에 치환이 있는 경우 그림문자 가격으로 발송
-						
-						//이벤트 가격으로 전송 할 받는 사람 리스트 저장처리
-						for(var i=0; i< evnPhoneNumCnt; i++){
-							evnPhoneNum[i] = phoneNum[i];
-							evnName[i] = nameList[i];
-							evnRep1[i] = rep1List[i];
-							evnRep2[i] = rep2List[i];
-							evnRep3[i] = rep3List[i];
-							evnRep4[i] = rep4List[i];
-						}
-						
-						//일반 가격으로 전송 할 받는 사람 리스트 저장처리
-						for(var j=0; j < phoneNum.length - evnPhoneNumCnt; j++){
-							norPhoneNum[j]= phoneNum[j + evnPhoneNumCnt];
-							norName[j] = nameList[j + evnPhoneNumCnt];
-							norRep1[j] = rep1List[j + evnPhoneNumCnt];
-							norRep2[j] = rep2List[j + evnPhoneNumCnt];
-							norRep3[j] = rep3List[j + evnPhoneNumCnt];
-							norRep4[j] = rep4List[j + evnPhoneNumCnt];
-							
-						};
-						
-					}else{//치환문자 없는 경우 처리
-						
-						//이벤트 가격으로 전송 할 받는 사람 리스트 저장처리
-						for(var i=0; i< evnSendCnt; i++){
-							evnPhoneNum[i]= phoneNum[i];
-						}
-						
-						//일반 가격으로 전송 할 받는 사람 리스트 저장처리
-						for(var j=0; j < phoneNum.length - evnSendCnt; j++){
-							norPhoneNum[j]= phoneNum[j + evnSendCnt];
-						};
-					}
-						
-					var orgShortMsgCnt = $("#shortMsgCnt").val();	//단문 총 건수 백업
-					var orgLongMsgCnt = $("#longMsgCnt").val();		//장문 총 건수 백업
-					//이벤트 단가 문자 전송 처리 시작
-					if(evnPhoneNum.length > 0){
-						
-						form.callToList.value = evnPhoneNum; //수신자번호 리스트 저장해주기
-						form.totPrice.value = evnEachPrice * evnSendCnt;	//이벤트 단가 총 결제금액 셋팅해주기
-						form.eventStatus.value = 'Y';
-						form.eventYn.value = 'Y';
-						
-						
-						var evnTotPrice = parseFloat(form.totPrice.value); 
-						
-						if(myPrice < evnTotPrice){
-						
-							alert("문자 발송에 필요한 회원님의 보유 잔액이 부족 합니다.evn");
-							return false;
-							
-						}else{
-							
-							myPrice = myPrice - evnTotPrice;
-							
-						}
-						
-						//치환문자가 있는 경우 변수 정보 담아주기(그림문자 아닌경우)
-						if(txtReplYn == 'Y' &&  imgCnt < 1){
-							
-							var evnShortMsgCnt = $("#evnShortMsgCnt").val();
-							var evnLongMsgCnt = $("#evnLongMsgCnt").val();
-							
-							form.shortMsgCnt.value = evnShortMsgCnt;
-							form.longMsgCnt.value = evnLongMsgCnt;
-							form.nameList.value = evnName;
-							form.rep1List.value = evnRep1;
-							form.rep2List.value = evnRep2;
-							form.rep3List.value = evnRep3;
-							form.rep4List.value = evnRep4;
-							
-						}else if(txtReplYn == 'Y' &&  imgCnt > 0){//치환문자가 있는 경우 변수 정보 담아주기(그림문자인 경우)
-							
-							form.nameList.value = evnName;
-							form.rep1List.value = evnRep1;
-							form.rep2List.value = evnRep2;
-							form.rep3List.value = evnRep3;
-							form.rep4List.value = evnRep4;
-							
-						}
-						
-						//이벤트 발송 실행 해주기
-						var form = document.msgForm;
-						
-						var data = new FormData(form);
-// 						url = "/web/mjon/msgdata/sendMsgDataAjax.do";
-						url = "/web/mjon/msgdata/sendMsgDataAjax_advc.do";
-						console.log('url :: ', url);
-						$.ajax({
-					        type: "POST",
-					        url: url,
-					        data: data,
-					        dataType:'json',
-					        async: true,
-					        processData: false,
-					        contentType: false,
-					        cache: false,
-					        success: function (returnData, status) {
-					        	console.log('returnData : ', returnData);
-								if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
-									if("fail" == returnData.result){
-										
-										alert(returnData.message);
-										return false;
-										
-									}else if("loginFail" == returnData.result){
-										
-										alert(returnData.message);
-										return false;
-											
-									}else if("smsLengFail" == returnData.result){
-										
-										alert(returnData.message);
-										return false;
-											
-									}else if("imgSourceFail" == returnData.result){
-										
-										$('.pop_msg_fails').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
-										$('.pop_msg_fails .msg_text').html(returnData.message);
-										$('.mask').addClass('on');
-										
-									}else if("spamKeyWordFail" == returnData.result){//스팸 및 스미싱 단어가 들어간 문자 발송시 회원 이용정지 처리
-										
-										$('.pop_msg_spam').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
-										$('.pop_msg_spam .msg_text').html(returnData.message);
-										$('.mask').addClass('on');
-										
-									}else if("statusFail" == returnData.result){
-										
-										alert(returnData.message);
-										//문자발송 URL Move
-										goMsgUrlMove();
-										return false;
-										
-									}else{
-										
-										var smsCnt = returnData.resultSts;
-										var blockCnt = returnData.resultBlockSts;
-										
-										//이벤트 발송 처리가 완료 되면 나머지 일반 캐시로 발송할 문자 처리를 진행해 준다.
-										var norPhoneNumCnt = norPhoneNum.length; 
-										if(norPhoneNumCnt > 0){
-											
-											var norEachPrice = getNorEachPrice(evnMsgType); //일반 개별 단가 금액 셋팅해주기
-											
-											form.callToList.value = norPhoneNum;	//수신자번호 리스트 저장해주기
-											form.eachPrice.value =  norEachPrice;	//일반 개별 단가 금액 셋팅해주기
-											form.totPrice.value = norEachPrice * norPhoneNumCnt;	//일반 단가 총 결제 금액 셋팅해주기
-											form.sPrice.value = $("#norsPrice").val();
-											form.mPrice.value = $("#normPrice").val();
-											form.pPrice.value = $("#norpPrice").val();
-											form.p2Price.value = $("#norp2Price").val();
-											form.p3Price.value = $("#norp3Price").val();
-											form.eventStatus.value = 'N';
-											form.eventYn.value = 'N';
-											
-											var norTotPrice = parseFloat(form.totPrice.value); 
-											
-											if(myPrice < norTotPrice){//보유캐시 부족시 알림 레이어 팝업 보여주기, 발송된 이벤트 건수 및 미발송 일반 방송 건수 정보 표시해줌
-											
-												var failMsg = "이벤트 캐시 잔액으로 발송한 문자("+smsCnt+"건)의 발송이 완료되었으나 일반 문자 발송("+norPhoneNumCnt+"건)에 필요한 회원님의 보유 잔액이 부족 합니다.";
-												
-												$('.loading_layer').removeClass('active');
-
-												$('.pop_msg_fails').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
-												$('.pop_msg_fails .msg_text').html(failMsg);
-												$('.mask').addClass('on');
-												
-												return false;
-												
-											}
-											
-											//치환문자가 있는 경우 변수 정보 담아주기(그림문자가 아닌경우)
-											if(txtReplYn == 'Y' &&  imgCnt < 1){
-												
-												//치환문자 단/장문 혼용된 경우 각 타입별 건수를 재 계산해준다.
-												//총 단/장문 각각 건수에서 이벤트로 발송한 건수를 빼준다.
-												var evnShortMsgCnt = $("#evnShortMsgCnt").val();
-												var evnLongMsgCnt = $("#evnLongMsgCnt").val();
-												
-												//일반 장문/단문 발송 건수 계산해주기 총 건수에서 이벤트로 발송해준 건수를 빼준다.
-												var shortMsgCnt = Number(orgShortMsgCnt) - Number(evnShortMsgCnt);
-												var longMsgCnt = Number(orgLongMsgCnt) - Number(evnLongMsgCnt);
-												
-												
-												//계산 값이 음수로 나오는 경우 0건으로 간주한다.
-												if(shortMsgCnt <= 0){
-													
-													shortMsgCnt = 0;
-													
-												}
-												
-												if(longMsgCnt <= 0){
-													
-													longMsgCnt = 0;
-													
-												}
-												
-												form.shortMsgCnt.value = shortMsgCnt;
-												form.longMsgCnt.value = longMsgCnt;
-												
-												form.nameList.value = norName;
-												form.rep1List.value = norRep1;
-												form.rep2List.value = norRep2;
-												form.rep3List.value = norRep3;
-												form.rep4List.value = norRep4;
-												
-											}else if(txtReplYn == 'Y' &&  imgCnt > 0){//치환문자가 있는 경우 변수 정보 담아주기(그림문자인 경우)
-												
-												form.nameList.value = norName;
-												form.rep1List.value = norRep1;
-												form.rep2List.value = norRep2;
-												form.rep3List.value = norRep3;
-												form.rep4List.value = norRep4;
-												
-											}
-											
-											sendMsgAjax(smsCnt, blockCnt);
-										}
-										
-									}
-									
-								} else if(status== 'fail'){
-									alert(returnData.message);
-								}
-							},
-							beforeSend : function(xmlHttpRequest) {
-					        	//로딩창 show
-					        	$('.loading_layer').addClass('active');				
-							},	        	        
-					        complete : function(xhr, textStatus) {
-					        	//로딩창 hide
-					        	//$('.loading_layer').removeClass('active');
-							},	      			
-					        error: function (e) { alert("문자 발송에 실패하였습니다."); console.log("ERROR : ", e); }
-					    });
-						
-					}else{
-						
-						//이벤트 건수로 발송 할 수 없는 경우 일반 캐시 단가로 발송처리하기
-						if(norPhoneNum.length > 0){
-							
-							form.callToList.value = norPhoneNum; //수신자번호 리스트 저장해주기
-							form.eachPrice.value = getNorEachPrice(evnMsgType); //일반 개별 단가 금액 셋팅해주기
-							form.sPrice.value = $("#norsPrice").val();
-							form.mPrice.value = $("#normPrice").val();
-							form.pPrice.value = $("#norpPrice").val();
-							form.p2Price.value = $("#norp2Price").val();
-							form.p3Price.value = $("#norp3Price").val();
-							form.eventStatus.value = 'N';
-							form.eventYn.value = 'N';
-							
-							sendMsgAjax_advc(0,0);
-// 							sendMsgAjax(0,0);
-							
-						}else{
-							
-							alert("문자 전송 중 오류가 발생하였습니다.!!");
-							return false;
-							
-						}
-						
-					}
-					
-					return false;
-				}else{
-					
-					return false;
-					
-				}
-				
-			}else{
-				
-				//발송 Ajax 호출해주기
-				sendMsgAjax_advc(0,0);
-// 				sendMsgAjax(0,0);
-				
-			}
-			
-		}else{
-			
-			//발송 Ajax 호출해주기
-			sendMsgAjax_advc(0,0);
-// 			sendMsgAjax(0,0);
-			
-		}		
-		
-	}
-	
+	//발송 Ajax 호출해주기
+	sendMsgAjax_advc();
 }
 
 
+function sendMsgAjax_advc(){
+    // 타블레이터 호출
+    var $selectedData = tableL.getData(); // 데이터 가져오기
+
+	 // 폼 데이터를 배열로 직렬화
+	 var form = $('#msgForm');
+	 var formDataArray = form.serializeArray();
+	
+	 // 배열을 객체로 변환
+	 var formData = {};
+	 $.each(formDataArray, function(index, field) {
+	     formData[field.name] = field.value;
+	 });
+	
+	 // 빈 값 제거
+	 removeEmptyValues(formData);
+
+	// 선택된 데이터 추가
+	formData["mjonMsgTabulListVO"] = $selectedData;
+	
+	// JSON 데이터 확인
+	console.log("최종 formData:", JSON.stringify(formData));
+	
+	
+	var url = "/web/mjon/msgdata/sendMsgDataAjax_advc.do";
+	
+	$.ajax({
+		type: "POST",
+		url: url,
+		data: JSON.stringify(formData),
+		contentType: 'application/json',
+		dataType: 'json',
+		success: function (data) {
+			console.log('data : ', data);
+			/*  message:"특정문구 일괄변환 치환문자 데이터가 없습니다."
+				status:"BAD_REQUEST" */
+			
+			var status = data.status;
+			if("OK" == status){
+				
+				var smsCnt = Number(data.object.resultSts);
+				var blockCnt = Number(data.object.resultBlockSts);
+				
+				smsCnt = Number(smsCnt) + Number(paramSmsCnt);
+				blockCnt = Number(blockCnt) + Number(paramBlockCnt);
+				
+				if((smsCnt + blockCnt) == 0){
+					
+					$('.pop_msg_spam').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
+					$('.pop_msg_spam .msg_text').html("문자 발송(예약)에 실패하였습니다.<br/> 다시 시도해주세요. <br/>* 정상적으로 발송 시도하였으나 실패하신 경우 혹시 문자내용에 사용불가 이모지 <br/>또는 복사-붙여넣기로 인한 보이지 않는 특수문자가 포함되었는지 확인 후 다시 시도해주세요.");
+					$('.mask').addClass('on');
+					
+				}else{
+					
+					$('.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>"+ smsCnt + "</strong>건,수신거부 : <span>" + blockCnt + "</span>건의<br>문자가 예약 되었습니다.");
+					}else{
+						$('.pop_msg_success .msg_text').html("발송 성공 : <strong>"+ smsCnt + "</strong>건,수신거부 : <span>" + blockCnt + "</span>건의<br>문자가 발송 되었습니다.");
+					}
+					
+					$('.mask').addClass('on');
+					
+				}
+				
+				
+			}else if("BAD_REQUEST" == status){
+
+				alert(data.message);
+				return false;
+					
+			}else if("UNAUTHORIZED" == status){
+				
+				alert(data.message);
+				//문자발송 URL Move
+				goMsgUrlMove();
+				return false;
+				
+			}else if("NO_CONTENT" == status){
+				
+				$('.pop_msg_fails').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
+				$('.pop_msg_fails .msg_text').html(returnData.message);
+				$('.mask').addClass('on');
+				
+			}
+				
+		},
+		beforeSend : function(xmlHttpRequest) {
+			//로딩창 show
+			$('.loading_layer').addClass('active');
+		},
+		complete : function(xhr, textStatus) {
+			//로딩창 hide
+			$('.loading_layer').removeClass('active');
+		},
+		error: function (e) { alert("문자 발송에 실패하였습니다."); console.log("ERROR : ", e); }
+	});
+	
+}
 
 //폼 유효성 검사 함수
 function validateForm(form) {
@@ -1757,98 +1376,16 @@
 	return norEachPrice;
 }
 
-
-function sendMsgAjax_advc(paramSmsCnt, paramBlockCnt){
-	console.log('sendMsgAjax : ');
-	var form = document.msgForm;
-	var reserYn = $("#reserveYn").val();
-	
-	var data = new FormData(form);
-// 	url = "/web/mjon/msgdata/sendMsgDataAjax.do";
-	url = "/web/mjon/msgdata/sendMsgDataAjax_advc.do";
-	
-	$.ajax({
-        type: "POST",
-        url: url,
-        data: data,
-        dataType:'json',
-        async: true,
-        processData: false,
-        contentType: false,
-        cache: false,
-        success: function (data) {
-        	console.log('data : ', data);
-        	/*  message:"특정문구 일괄변환 치환문자 데이터가 없습니다."
-				status:"BAD_REQUEST" */
-        	
-			var status = data.status;
-// 			if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
-			if("OK" == status){
-				
-				var smsCnt = Number(data.object.resultSts);
-				var blockCnt = Number(data.object.resultBlockSts);
-				
-				smsCnt = Number(smsCnt) + Number(paramSmsCnt);
-				blockCnt = Number(blockCnt) + Number(paramBlockCnt);
-				
-				if((smsCnt + blockCnt) == 0){
-					
-					$('.pop_msg_spam').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
-					$('.pop_msg_spam .msg_text').html("문자 발송(예약)에 실패하였습니다.<br/> 다시 시도해주세요. <br/>* 정상적으로 발송 시도하였으나 실패하신 경우 혹시 문자내용에 사용불가 이모지 <br/>또는 복사-붙여넣기로 인한 보이지 않는 특수문자가 포함되었는지 확인 후 다시 시도해주세요.");
-					$('.mask').addClass('on');
-					
-				}else{
-					
-					$('.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>"+ smsCnt + "</strong>건,수신거부 : <span>" + blockCnt + "</span>건의<br>문자가 예약 되었습니다.");
-					}else{
-						$('.pop_msg_success .msg_text').html("발송 성공 : <strong>"+ smsCnt + "</strong>건,수신거부 : <span>" + blockCnt + "</span>건의<br>문자가 발송 되었습니다.");
-					}
-					
-					$('.mask').addClass('on');
-					
-				}
-				
-				
-			}else if("BAD_REQUEST" == status){
-
-				alert(data.message);
-				return false;
-					
-			}else if("UNAUTHORIZED" == status){
-				
-				alert(data.message);
-				//문자발송 URL Move
-				goMsgUrlMove();
-				return false;
-				
-			}else if("NO_CONTENT" == status){
-				
-				$('.pop_msg_fails').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
-				$('.pop_msg_fails .msg_text').html(returnData.message);
-				$('.mask').addClass('on');
-				
-			}
-				
-// 			} else if(status== 'fail'){
-// 				alert(returnData.message);
-// 			}
-		},
-		beforeSend : function(xmlHttpRequest) {
-        	//로딩창 show
-        	$('.loading_layer').addClass('active');				
-		},	        	        
-        complete : function(xhr, textStatus) {
-        	//로딩창 hide
-        	$('.loading_layer').removeClass('active');
-		},	      			
-        error: function (e) { alert("문자 발송에 실패하였습니다."); console.log("ERROR : ", e); }
+//빈 값이나 null 값을 제거하는 함수
+function removeEmptyValues(obj) {
+    Object.keys(obj).forEach(function(key) {
+        if (obj[key] === null || obj[key] === '') {
+            delete obj[key];
+        }
     });
-	
 }
 
+
 function sendMsgAjax(paramSmsCnt, paramBlockCnt){
 	var form = document.msgForm;
 	var reserYn = $("#reserveYn").val();
 
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView_Back.jsp (deleted)
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView_Back.jsp
@@ -1,1361 +0,0 @@
-<%@ 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="ui" uri="http://egovframework.gov/ctl/ui"%>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
-<!DOCTYPE html>
-<html lang="ko">
-<head>
-<link rel="stylesheet" href="/publish/css/jquery.mCustomScrollbar.css">
-<script src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script>
-<script src="/publish/js/content.js"></script>
-<script src="/publish/js/calendar.js"></script>
-<script src="/publish/js/popup.js"></script>
-<script src="/js/txtByteChk.js"></script>
-
-<script type="text/javascript">
-function fn_egov_inqire_notice(bbsId, nttId) {
-	document.frm.nttId.value = nttId;
-	document.frm.bbsId.value = bbsId;
-	document.frm.method = "get";
-	document.frm.action = "<c:url value='/web/cop/bbsWeb/selectBoardDetail.do'/>";
-	document.frm.submit();
-}
-
-function fn_egov_inqire_news_notice(bbsId, nttId) {
-	document.frm.nttId.value = nttId;
-	document.frm.bbsId.value = bbsId;
-	document.frm.method = "get";
-	document.frm.action = "<c:url value='/web/cop/bbs/NewsDetail.do'/>";
-	document.frm.submit();
-}
-
-function footerSiteLinkPageGo (){
-	var site = $('#footerSite').val();
-    if(site == ""){
-		alert("사이트를 선택해 주세요")	    	
-    }else{
-    	window.open(site);	
-    }
-}   
-
-function footerSiteLinkPageTwoGo (){
-	var site = $('#footerSiteTwo').val();
-    if(site == ""){
-		alert("사이트를 선택해 주세요")	    	
-    }else{
-    	window.open(site);	
-    }
-} 
-
-function fn_egov_list_tab(){
-	if("block"==$('#sec2_01').css('display')){
-		location.href='/web/cop/bbsWeb/selectBoardList.do?bbsId=BBSMSTR_000000000431'; //공지사항	
-	}else{
-		location.href='/web/cop/bbsWeb/selectBoardList.do?bbsId=BBSMSTR_000000000441'; //채용공고	
-	}
-} 
-
-var imgFilePath = []; // 최종 선택한 이미지 경로 저장 변수
-$(document).ready(function (){
-	
-	$('.preiew_img').hide();
-	$('.prePhoto').hide();
-	
-	//최초 화면 문자열 길이 체크해주기
-	var strCon = $('#smsTxt').val();
-	fnByteString(strCon);
-	
-	//문자 내용 입력시 바이트수 계산하기
-	$('#smsTxt').keyup(function(e){
-		
-		var contents = $(this).val();
-		fnByteString(contents);
-		
-	});//문자 바이트수 계산하기 끝
-	
-	
-	//문자 바이트수 계산하기 함수
-	function fnByteString(contents){
-		
-		var totalByte = 0; 
-		var content = contents;
-		$('#msgLeng').html("");
-		$('#limitLeng').html("");
-		var conLeng = conByteLeng(content);
-		
-		var photoSts = $('.delLi').length;
-		if(photoSts > 0){
-			
-			$('#msgLeng').html(conLeng + " / ");
-			$('#limitLeng').html("2000");
-			$('.msg_com').html("그림");
-			$('#msgType').val("6"); // 메세지 타입 설정
-			document.getElementById("mmsSubject").disabled = false;
-			
-		}else{
-			
-			if(conLeng > 90){
-				
-				$('#msgLeng').html(conLeng + " / ");
-				$('#limitLeng').html("2000");
-				$('.msg_com').html("장문");
-				$('#msgType').val("6"); // 메세지 타입 설정
-				document.getElementById("mmsSubject").disabled = false;
-				
-			}else{
-				
-				$('#msgLeng').html(conLeng + " / ");
-				$('#limitLeng').html("90");
-				$('.msg_com').html("단문");
-				$('#msgType').val("4"); // 메세지 타입 설정
-				document.getElementById("mmsSubject").disabled = true;
-				
-			}
-			
-		}
-		
-		
-		// 미리보기 데이터 입력해 주기 , 줄바꿈 문자 변환해주기
-		var repContent = "";
-		repContetnt = content.replace(/(?:\r\n|\r|\n)/g, '<br/>');
-		$('.preview_auto').html(repContetnt);
-		
-		// 2000byte 초과시 메세지 알림
-		if(conLeng > 2000){
-			
-			alert("문자 내용은 2000byte를 넘을 수 없습니다.");
-			return false;
-			
-		}
-		
-	}
-	
-	
-	//이미지 선택시 그림문자 처리
-	var imgCnt = 1;
-	$('.photoOnImg').click(function(){
-		
-		$('.preShort').hide();
-		$('.prePhoto').show();
-		
-		if($('.msg_com').hasClass("msg_short") === true){
-			
-			$('.msg_com').removeClass("msg_short"); //단문/장문 클래스 삭제하고
-			$('.msg_com').addClass("msg_photo"); // 그림문자용 클래스 삽입
-			var contents = $('#smsTxt').val();
-			fnByteString(contents);
-			$('.msg_com').html("그림");
-			$('#msgType').val("6"); // 메세지 타입 설정
-			
-			//제목 입력 항목 활성화
-			document.getElementById("mmsSubject").disabled = false;
-			
-		}
-		
-		var imgSrc = $(this).attr("src");
-		
-		if(imgCnt > 3){
-			
-			alert("이미지는 3장만 선택할 수 있습니다.");
-			return false;
-			
-		}else{
-			
-			//문자 내용 상단에 이미지 이름 영역 객체 추가해주기
-			var imgPath = "Img0" + imgCnt + ".jpg";//"<img src=\"" + imgSrc + "\" />";
-			var liPath = "<li class=\"delLi\"><p>" + imgPath + "</p><button type=\"button\" class=\"file_close\"><img class=\"delImg\" src=\"/publish/images/content/file_close.png\" alt=\"첨부파일 삭제\"></button></li>"
-			$('.liOnImg').append(liPath);	
-				
-			//미리보기 보여주기
-			$('.preiew_img').show();
-			
-			if(imgCnt == 1){
-				
-				var imgPath = "<div class=\"img_box preBoxF\"><img src=\"" + imgSrc + "\" /></div>";
-				$('.preViewShort').append(imgPath);
-				$('.photo_num_01').show();
-				$('.photo_num_02').hide();
-				$('.photo_num_03').hide();
-				
-			}else if(imgCnt == 2){
-				
-				var imgPath = "<div class=\"img_box preBoxF\"><img src=\"" + imgSrc + "\" /></div>";
-				$('.preViewShort').append(imgPath);
-				$('.photo_num_02').show();
-					
-			}else if(imgCnt == 3){
-				
-				var imgPath = "<div class=\"img_box preBoxF\"><img src=\"" + imgSrc + "\" /></div>";
-				$('.preViewShort').append(imgPath);
-				$('.photo_num_03').show();
-				
-			}
-			
-			//이미지 카운트 증가시키기
-			imgCnt ++;
-			
-			// 배열에 선택한 이미지 경로 저장해주기
-			imgFilePath.push(imgSrc);
-			
-		}
-		
-	});
-	
-	
-	//그림문자 이미지 삭제 처리 - 동적으로 추가한 객체는 on 함수로 불러올 수 있다.
-	$(document).on('click', '.delLi', function(){ 
-	  
-		var delImgPath = ""; //삭제하려는 이미지 경로 받아오기 
-		var index = $(this).index(); // 현재 선택 된 객체 인덱스 번호 받아오기
-		//선택한 내용의 이미지 li 객체 삭제
-		$(this).remove();
-		
-		//미리보기 화면에서의 이미지 객체 삭제
-		if(index == 0){
-			
-			//삭제하려는 이미지 경로 받아오기
-			delImgPath = $('.preBoxF').eq(0).find("img").attr("src");
-			
-			//미리보기 이미지 객체 삭제
-			$('.preBoxF').eq(0).remove();
-			
-		}else if(index == 1){
-			
-			//삭제하려는 이미지 경로 받아오기
-			delImgPath = $('.preBoxF').eq(1).find("img").attr("src");
-			
-			$('.preBoxF').eq(1).remove();
-			
-		}else if(index == 2){
-			
-			//삭제하려는 이미지 경로 받아오기
-			delImgPath = $('.preBoxF').eq(2).find("img").attr("src");
-			
-			$('.preBoxF').eq(2).remove();
-			
-		}
-		
-		// 삭제한 이미지 경로 배열에서 삭제해 주기
-		for(var i=0; i < imgFilePath.length; i++){
-			
-			if(imgFilePath[i] === delImgPath){
-				
-				imgFilePath.splice(i, 1);
-				i--;
-			}
-			
-		}
-		
-		imgCnt--;
-		
-		//미리보기 포토 1,2,3 번 번호 표시 변경
-		$('.photo_num_02').hide();
-		$('.photo_num_03').hide();
-		if(imgCnt > 2){
-			
-			$('.photo_num_01').show();
-			$('.photo_num_02').show();
-			
-		}else if(imgCnt > 1){
-			
-			$('.photo_num_01').show();
-			
-		}else{
-			
-			//그림을 모두 삭제 했을때 단문으로 변경
-			$('.preShort').show();
-			$('.prePhoto').hide();
-			
-			$('.msg_com').removeClass("msg_photo");
-			$('.msg_com').addClass("msg_short");
-			$('#msgType').val("4"); // 메세지 타입 설정
-			
-			var contents = $('#smsTxt').val();
-			fnByteString(contents);
-			
-		}
-	}); 
-	
-	// 초기화 버튼 처리
-	$('.btnReset').click(function(){
-		
-		$('.delLi').each(function(){
-			
-			$(this).remove();
-			
-		});
-		
-		$('.preBoxF').each(function(){
-			
-			$(this).remove();
-			
-		});
-		
-		//그림을 모두 삭제 했을때 단문으로 변경
-		$('.preShort').show();
-		$('.prePhoto').hide();
-		
-		$('.msg_com').removeClass("msg_photo");
-		$('.msg_com').addClass("msg_short");
-		$('#msgType').val("4"); // 메세지 타입 설정
-		
-		//메세지 내용 초기화
-		$('#smsTxt').val("");
-		fnByteString("");
-		
-	});
-	
-	$('.letterMsg').click(function(){
-		
-		var smsTxt = $(this).find('.msg_text').text();
-		$('#smsTxt').val("");
-		$('#smsTxt').val(smsTxt);
-		fnByteString(smsTxt);
-		
-		
-	});
-	
-	$('.tDep1_mType').click(function(){
-		
-		var mType = $(this).find('.on_active').text();
-		var form = document.letterForm;
-		
-		
-		if(mType == "전체"){
-			
-			form.memberType.value = "";
-			
-		}else if(mType == "기업"){
-			
-			form.memberType.value = "B";
-			
-		}else{
-			
-			form.memberType.value = "P";
-			
-		}
-		
-		//문자 리스트 불러오기
-		fnLetterListAjax();
-		
-	});
-	
-	$('.tDep2_letType').click(function(){
-		
-		var letterType = $(this).find('.on').attr("value");
-		var form = document.letterForm;
-		
-		form.letterType.value = letterType;
-		
-		//문자 리스트 불러오기
-		fnLetterListAjax();
-		
-	});
-	
-	$('.tDep3_cateCode').click(function(){
-		
-		var cateCode = $(this).find('.on').attr("value");
-		var form = document.letterForm;
-		
-		form.categoryCode.value = cateCode;
-		
-		//문자 리스트 불러오기
-		fnLetterListAjax();
-		
-	});
-	
-	$('.tDep4_hashTag').click(function(){
-		
-		var hashTag = $(this).find('.on').attr("value");
-		var form = document.letterForm;
-		
-		form.hashTag.value = hashTag;
-		
-		//문자 리스트 불러오기
-		fnLetterListAjax();
-		
-	});
-	
-	
-	
-});
-
-
-function fnLetterListAjax(){
-	
-	var sendData = $(document.letterForm).serializeArray();
-	$("#letterLoad").load("/web/mjon/msgdata/selectLetterDataListAjax.do", sendData ,function(response, status, xhr){
-		if(document.letterForm.searchKeyword.value == ''){
-			$('.bottom_content .area_total_count').hide();
-		}
-	});
-	
-	
-}
-
-function fnSetCookiePopup( name, value, expiredays ) { // 쿠키설정
-	  var todayDate = new Date();
-	  todayDate.setDate( todayDate.getDate() + expiredays );
-	  document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
-}
-
-function fnGetCookie(name) { //쿠키정보 가져오기
-	  var prefix = name + "=";
-	  var cookieStartIndex = document.cookie.indexOf(prefix);
-	  if (cookieStartIndex == -1) return null;
-	  var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
-	  if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
-	  return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
-}
-
-function fn_sendMsgData(){
-	
-	var form = document.msgForm;
-	
-	
-	if(form.callFrom.value == ""){
-		
-		alert("발신번호를 입력해 주세요.");
-		return false;
-		
-	}
-	
-	if(form.msgType.value == "6" && form.mmsSubject.value == ""){
-		
-		alert("제목을 입력해주세요.");
-		return false;
-		
-	}
-	
-	if(imgFilePath.length == 0){ // 그림문자일 경우 내용이 없어도 됨 , 장문 문자일 경우만 문자내용 체크함
-		
-		if(form.smsTxt.value == ""){
-			
-			alert("문자 내용을 입력해 주세요.");
-			return false;
-			
-		}
-		
-	}
-	
-	if(form.callTo.value == ""){
-		
-		alert("수신번호를 입력해 주세요.");
-		return false;
-		
-	}
-	
-	
-	if(confirm("문자를 전송하시겠습니까?")){
-		
-		form.imgFilePath.value = imgFilePath; // 저장한 이미지 경로 담아주기
-		form.action="<c:url value='/web/mjon/msgdata/sendMsgData.do'/>";
-		form.submit();
-		
-	}
-	
-}
-
-</script>
-</head>
-<body>
-    <div class="inner">
-        <!-- send top -->
-        <div class="send_top">
-            <!-- tab button -->
-            <ul class="tabType1">
-                <li class="tab active"><button type="button" onclick="TabType1(this,'1');">단문 · 장문 · 그림 문자</button></li>
-                <li class="tab"><button type="button" onclick="TabType1(this,'2');">대량 문자(엑셀·TXT)</button></li>
-            </ul><!--// tab button -->
-			<!-- tab content1 -->
-			<form id="msgForm" name="msgForm" method="post">
-				<input type="hidden" id="msgType" name="msgType" value="4" /><!-- 문자 종류 : 단문 - 4, 장문/그림 - 6 -->
-				<input type="hidden" id="imgFilePath" name="imgFilePath" value="" /><!-- 선택 이미지 파일 경로 정보 , 로 구분 최대 3장까지 -->
-	            <div class="top_content current" id="tab1_1">
-	                <div class="heading">
-	                    <h2>문자전송</h2>
-	                    <ul class="send_price">
-	                        <li><span class="type">단문</span><span class="price">8.2</span>원</li>
-	                        <li class="price_line"><span class="type">장문</span><span class="price">24.6</span>원</li>
-	                        <li class="price_line"><span class="type">그림</span><span class="price">57.3</span>원</li>
-	                    </ul>
-	                </div>
-	                <div class="titBox">
-	                    <p>- 90byte 초과 시, 장문으로 전환됩니다. 장문 문자는 최대 2,000byte까지 작성할 수  있습니다.</p>
-						<p>- 포토문자 1건에 포토 최대 3장 첨부가능  [권장 사이즈 : 640 x 960픽셀 / 최대용량 : 10MB]</p>
-	                    <p>- 광고성 메시지는 반드시 유의사항 확인 후 발송해 주시기 바랍니다. <span> [광고문자 유의사항 보기]</span></p>
-	                    <button type="button"><i></i>사용안내</button>
-	                </div>
-	                <div class="send_general">
-	                    <div class="send_left">
-	                        <table class="tType1">
-	                            <caption>일반 문자보내기 분류 번호 내용 등을 입력하는 표</caption>
-	                            <colgroup>
-	                                <col style="width: 100px;">
-	                                <col style="width: auto;">
-	                            </colgroup>
-	                            <tbody>
-	                                <tr>
-	                                    <th scope="row">문자분류</th>
-	                                    <td class="send_cf">
-	                                        <input id="radio1" type="radio"name="send_clas" checked="checked">
-	                                        <label for="radio1">일반</label>
-	                                        <input id="radio2" type="radio" name="send_clas">
-	                                        <label for="radio2">광고</label>
-	                                    </td>
-	                                </tr>
-	                                <tr>
-	                                    <th scope="row">발신번호</th>
-	                                    <td class="put_num">
-	                                        <label for="num" class="label"></label>
-	                                        <input type="text" size="35" id="callFrom" name="callFrom" placeholder="010-1234-5678" onfocus="this.placeholder=''" onblur="this.placeholder='010-1234-5678'">
-	                                        <button type="button" class="btnType btnType6">번호변경</button>
-	                                    </td>
-	                                </tr>
-						<tr>
-	                                    <th scope="row">제목</th>
-	                                    <td>
-	                                        <!-- 단문일 때 -->
-								<label for="mmsSubject" class="label"></label>
-								<input type="text" size="20" id="mmsSubject" name="mmsSubject" class="w100" placeholder=""  onfocus="this.placeholder=''" >
-								<!-- 장문일 때 -->
-								<!-- <input type="text" size="20" id="mmsSubject" name="mmsSubject" class="w100" placeholder="제목을 입력해주세요 (최대30byte, 발송관리용)" onfocus="this.placeholder=''" onblur="this.placeholder='제목을 입력해주세요 (최대30byte, 발송관리용)'"> -->
-	                                    </td>
-	                                </tr>
-						<!-- 단문 -->
-										<tr>
-	                                        <th scope="row">내용</th>
-	                                        <td class="putText">
-	                                            <div class="clearfix">
-	                                                <div class="put_left short">
-	                                                	<ul class="liOnImg">
-															<!-- <li id="onImg01"><p></p><button type="button" class="file_close"><img class="delImg" src="/publish/images/content/file_close.png" alt="첨부파일 삭제"></button></li>
-															<li id="onImg02"><p></p><button type="button" class="file_close"><img class="delImg" src="/publish/images/content/file_close.png" alt="첨부파일 삭제"></button></li>
-															<li id="onImg03"><p></p><button type="button" class="file_close"><img class="delImg" src="/publish/images/content/file_close.png" alt="첨부파일 삭제"></button></li> -->
-														</ul>
-	                                                    <label for="smsTxt" class="label"></label>
-	                                                    <textarea id="smsTxt" name="smsTxt" class="put_text">
-	해마다 찾아오는 봄이지만
-	봄맞이 대청소라는 말처럼,
-	새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-	    
-	"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을 
-	깨끗이 비워보는 겁니다.
-	    
-	새봄에 새마음으로 새롭게 시작해 보는 겁니다.
-	
-	해마다 찾아오는 봄이지만
-	봄맞이 대청소라는 말처럼,
-	새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-	    
-	"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을 
-	깨끗이 비워보는 겁니다.
-	    
-	새봄에 새마음으로 새롭게 시작해 보는 겁니다.
-	
-	해마다 찾아오는 봄이지만
-	봄맞이 대청소라는 말처럼,
-	새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-	    
-	"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을 
-	깨끗이 비워보는 겁니다.
-	    
-	새봄에 새마음으로 새롭게 시작해 보는 겁니다.
-	                                                    </textarea>
-	                                                    <div class="text_length">
-															<div>
-	                                                        	<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>
-	                                                        	<!-- <span class="msg_com msg_photo">그림</span> -->
-															</div>
-	                                                    </div>
-	                                                </div>
-	                                                <div class="put_right">
-	                                                    <button type="button" class="btnType btnType7">특수문자</button>
-	                                                    <button type="button" class="btnType btnType7">특정문구 일괄변환</button>
-	                                                    <button type="button" class="btnType btnType7">내문자함</button>
-	                                                    <button type="button" class="btnType btnType8" onclick="showPotoediter();">이미지 불러오기</button>
-	                                                <div class="send_btnWrap">
-	                                                    <button type="button" class="btnType btnType9">문자저장</button>
-	                                                    <button type="button" class="btnType btnType9 btnReset">초기화</button>
-	                                                </div>
-	                                            </div>
-	                                        </div>
-	                                    </td>
-	                                </tr>
-                                <tr>
-                                    <th scope="row">받는사람</th>
-                                    <td class="send_list">
-                                        <div class="list_left">
-                                            <div class="add_num">
-                                                <label for="" class="label"></label>
-                                                <input type="text" id="callTo" name="callTo" placeholder="번호를 입력하세요." onfocus="this.placeholder=''" onblur="this.placeholder='번호를 입력하세요.'">
-                                                <button type="button" class="btnType btnType6 addCallToF">번호추가</button>
-                                                <span>* 중복번호는 한번만 발송됩니다.</span>
-                                            </div>
-								<div class="numOfCase">
-									<p>총 <span>120</span>건 /</p>
-									<p>중복 <span>9</span>건</p>
-								</div>
-                                            <div>
-                                                <div class="listType list01">
-													<div class="list_table list_head">
-														<div class="cb_wrap">
-															<label for="" class="label"></label>
-															<input type="checkbox">
-														</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_table list_body">
-														<div class="cb_wrap">
-															<label for="" class="label"></label>
-															<input type="checkbox">
-														</div>
-														<div class="list_table_num">
-															<p>010-1234-5678</p>
-														</div>
-														<div class="list_table_name">
-															<p>홍길동</p>
-														</div>
-													</div>
-													<div class="list_table list_body">
-														<div class="cb_wrap">
-															<label for="" class="label"></label>
-															<input type="checkbox">
-														</div>
-														<div class="list_table_num">
-															<p>010-1234-5678</p>
-														</div>
-														<div class="list_table_name">
-															<p>홍길동</p>
-														</div>
-													</div>
-												</div>
-                                                <div class="list_bottom">
-                                                    <div class="remove_btnWrap">
-                                                        <button type="button"><i></i>선택삭제</button>
-                                                        <button type="button"><i></i>전체삭제</button>
-                                                    </div>
-													<!--
-													<div class="add_btn">
-														<button type="button" class="btnType btnType9">주소록에 저장</button>
-													</div> -->
-                                                </div>
-                                            </div>
-                                        </div>
-                                        <div class="add_remove">
-                                            <button type="button" class="add"><i></i>추가</button>
-                                            <button type="button" class="remove"><i></i>삭제</button>
-                                        </div>
-                                        <div class="list_right">
-								<div style="height: 90px;">
-                                            	<div class="list_btnWrap">
-                                            	    <button type="button" class="btnType 	btnType12">최근 전송내역</button>
-                                            	    <button type="button" class="btnType 	btnType12">자주보내는 번호</button>
-                                            	    <button type="button" class="btnType 	btnType12">그룹 보내기</button>
-                                            	    <button type="button" class="btnType btnType13 	c1">주소록 불러오기</button>
-                                            	    <button type="button" class="btnType btnType13 	c2">Txt파일 불러오기</button>
-                                            	    <button type="button" class="btnType btnType13 	c3">액셀 불러오기</button>
-                                            	</div>
-								</div>
-                                            <div>
-                                                <div class="listType list02">
-										<div class="list_table list_head">
-											<div class="cb_wrap">
-												<label for="" class="label"></label>
-												<input type="checkbox">
-											</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_table list_body">
-											<div class="cb_wrap">
-												<label for="" class="label"></label>
-												<input type="checkbox">
-											</div>
-											<div class="list_table_num">
-												<p>010-1234-5678</p>
-											</div>
-											<div class="list_table_name">
-												<p>홍길동</p>
-											</div>
-										</div>
-										<div class="list_table list_body">
-											<div class="cb_wrap">
-												<label for="" class="label"></label>
-												<input type="checkbox">
-											</div>
-											<div class="list_table_num">
-												<p>010-1234-5678</p>
-											</div>
-											<div class="list_table_name">
-												<p>홍길동</p>
-											</div>
-										</div>
-										<div class="list_table list_body">
-											<div class="cb_wrap">
-												<label for="" class="label"></label>
-												<input type="checkbox">
-											</div>
-											<div class="list_table_num">
-												<p>010-1234-5678</p>
-											</div>
-											<div class="list_table_name">
-												<p>홍길동</p>
-											</div>
-										</div>
-										<div class="list_table list_body">
-											<div class="cb_wrap">
-												<label for="" class="label"></label>
-												<input type="checkbox">
-											</div>
-											<div class="list_table_num">
-												<p>010-1234-5678</p>
-											</div>
-											<div class="list_table_name">
-												<p>홍길동</p>
-											</div>
-										</div>
-										<div class="list_table list_body">
-											<div class="cb_wrap">
-												<label for="" class="label"></label>
-												<input type="checkbox">
-											</div>
-											<div class="list_table_num">
-												<p>010-1234-5678</p>
-											</div>
-											<div class="list_table_name">
-												<p>홍길동</p>
-											</div>
-										</div>
-										<div class="list_table list_body">
-											<div class="cb_wrap">
-												<label for="" class="label"></label>
-												<input type="checkbox">
-											</div>
-											<div class="list_table_num">
-												<p>010-1234-5678</p>
-											</div>
-											<div class="list_table_name">
-												<p>홍길동</p>
-											</div>
-										</div>
-										<div class="list_table list_body">
-											<div class="cb_wrap">
-												<label for="" class="label"></label>
-												<input type="checkbox">
-											</div>
-											<div class="list_table_num">
-												<p>010-1234-5678</p>
-											</div>
-											<div class="list_table_name">
-												<p>홍길동</p>
-											</div>
-										</div>
-									</div>
-                                                <div class="list_bottom">
-                                                    <div class="remove_btnWrap">
-                                                        <button type="button"><i></i>선택삭제</button>
-                                                        <button type="button"><i></i>전체삭제</button>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </td>
-                                </tr>
-                                <tr>
-                                    <th colspan="2" class="billingAmount">
-                                        <div class="clearfix">
-                                            <p>결제금액 :</p>
-                                            <p class="price"><span>200,000</span>원<span>(부가세 포함)</span></p>
-                                        </div>
-                                        <button type="button"><i></i>계산하기</button>
-                                    </th>
-                                </tr>
-                                <tr>
-                                    <th scope="row">추천인 ID</th>
-                                    <td class="check_num">
-                                        <input id="radio5" type="radio"name="recom" checked="checked">
-                                        <label for="radio5">없음</label>
-                                        <input id="radio6" type="radio" name="recom">
-                                        <label for="radio6">있음</label>
-                                        <div>
-                                            <label for="id" class="label"></label>
-                                            <input type="text" size="20" id="id" placeholder="추천인 아이디 입력" onfocus="this.placeholder=''" onblur="this.placeholder='추천인 아이디 입력'">
-                                            <button type="button" class="btnType btnType9">확인</button>
-                                        </div>
-                                    </td>
-                                </tr>            
-                            </tbody>
-                        </table>
-                    </div>
-	                <div class="send_right">
-                        <div class="phone">
-							<div>
-								<p><img src="/publish/images/search.png">미리보기</p>
-								<div class="text_length2 clearfix preShort">
-									<span class="msg_com msg_short">단문</span>
-									<div>
-										<span>글자크기</span>
-										<button type="button"><img src="/publish/images/content/font_plus.png"></button>
-										<button type="button"><img src="/publish/images/content/font_minus.png"></button>
-									</div>
-								</div>
-								<div class="text_length2 clearfix prePhoto">
-									<span class="msg_com msg_photo">포토</span>
-									<ul class="photo_msg_num">
-										<li class="photo_num_01" onclick="imgClick(0);"><a href="#none">1</a></li>
-										<li class="photo_num_02" onclick="imgClick(1);"><a href="#none">2</a></li>
-										<li class="photo_num_03" onclick="imgClick(2);"><a href="#none">3</a></li>
-									</ul>
-									<div>
-										<span>글자크기</span>
-										<button type="button"><img src="/publish/images/content/font_plus.png"></button>
-										<button type="button"><img src="/publish/images/content/font_minus.png"></button>
-									</div>
-								</div>
-								<!-- 텍스트 미리보기 -->
-								<div class="text_preview">
-									<div class="preiew_img preViewShort">
-										<!-- <div class="img_box preBox01">
-											<img src="/publish/images/content/photo_sample01.jpg">
-										</div>
-										<div class="img_box preBox02">
-											<img src="/publish/images/content/photo_sample01.jpg">
-										</div>
-										<div class="img_box preBox03">
-											<img src="/publish/images/content/excel.jpg">
-										</div> -->
-									</div>
-									<div class="preview_auto">
-										해마다 찾아오는 봄이지만
-										봄맞이 대청소라는 말처럼,
-										새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-										<br><br>
-										"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을
-										깨끗이 비워보는 겁니다.
-										해마다 찾아오는 봄이지만
-										봄맞이 대청소라는 말처럼,
-										새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-										<br><br>
-										"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을
-										깨끗이 비워보는 겁니다.
-										해마다 찾아오는 봄이지만
-										봄맞이 대청소라는 말처럼,
-										새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-										<br><br>
-										"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을
-										깨끗이 비워보는 겁니다.
-										해마다 찾아오는 봄이지만
-										봄맞이 대청소라는 말처럼,
-										새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-										<br><br>
-										"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을
-										깨끗이 비워보는 겁니다.
-									</div>
-								</div>
-								<!-- //텍스트 미리보기 -->
-							</div>
-						</div>
-                            <p class="addText">※ 단말기 설정에 따라 다르게 보일 수 있습니다</p>
-                            <div class="send_rev">
-                                <div class="rev_radio">
-                                    <input id="radio7" type="radio"name="reser" checked="checked">
-                                    <label for="radio7">즉시</label>
-                                    <input id="radio8" type="radio" name="reser">
-                                    <label for="radio8">예약</label>
-                                </div>
-                                <div>
-                                    <div class="rev_top">
-                                        <span>날짜 :</span>
-                                        <div class="calendar">
-                                            <input type="text" title="예약 전송 시 날짜 선택" id="day"><button id="txtDate1" value="" title="캘린더 팝업 열기" onclick="fnPopUpCalendar(txtDate1,txtDate1,'yyyy/mm/dd')" class="text_box1 calInput"><img src="/publish/images/calendar/calendarIcon.png"></button>
-                                        </div>
-                                        <label for="" class="label">시 선택</label>
-										<div class="selBox">
-	                                       	<select class="selType1">
-	                                       	    <option>00시</option>
-	                                       	    <option>10시</option>
-	                                       	    <option>20시</option>
-	                                       	</select>
-	                                       	<label for="" class="label">분 선택</label>
-	                                       	<select class="selType1">
-	                                       	    <option>00분</option>
-	                                       	    <option>25분</option>
-	                                       	    <option>50분</option>
-	                                       	</select>
-										</div>
-                                    </div>
-                                    <div class="rev_bottom">
-                                        <input type="checkbox">
-                                        <label for="">분할전송</label>
-                                        <select class="selType1">
-                                            <option>00시</option>
-                                            <option>10시</option>
-                                            <option>20시</option>
-                                        </select>
-                                        <label for="">건</label>
-                                        <select class="selType1">
-                                            <option>00분</option>
-                                            <option>25분</option>
-                                            <option>50분</option>
-                                        </select>
-                                        <label>간격</label>
-                                    </div>
-                                </div>
-                            </div>
-                            <div class="send_btn">
-                                <button type="button" class="btnType btnType10">테스트 발송<img src="/publish/images/content/qmIcon.png"></button>
-                                <button type="button" class="btnType btnType11" onclick="javascript:fn_sendMsgData(); return false;">발송하기</button>
-                            </div>
-		                </div>
-		            </div>
-		        </div><!--// tab content1 -->
-	        </form>
-			<!-- tab content2 -->
-            <div class="top_content get_excel" id="tab1_2">
-				<div class="heading">
-                    <h2>엑셀문자</h2>
-                    <ul class="send_price">
-                        <li><span class="type">단문</span><span class="price">8.2</span>원</li>
-                        <li class="price_line"><span class="type">장문</span><span class="price">24.6</span>원</li>
-                        <li class="price_line"><span class="type">그림</span><span class="price">57.3</span>원</li>
-                    </ul>
-                </div>
-                <div class="titBox">
-                    <p>- 각각 다른 사람에게 다른 내용의 메시지를 한번에 보낼 수 있습니다. (최대 1만 건)</p>
-                    <p>- 광고성 메시지는 반드시 유의사항 확인 후 발송해 주시기 바랍니다. <span> [광고문자 유의사항 보기]</span></p>
-					<p>- 엑셀영역은 복사, 붙여넣기가 가능합니다.</p>
-                    <button type="button"><i></i>사용안내</button>
-                </div>
-                <div class="send_general">
-                    <div class="send_left">
-                        <table class="tType1">
-                            <caption>일반 문자보내기 분류 번호 내용 등을 입력하는 표</caption>
-                            <colgroup>
-                                <col style="width: 100px;">
-                                <col style="width: auto;">
-                            </colgroup>
-                            <tbody>
-                                <tr>
-                                    <th scope="row">문자분류</th>
-                                    <td class="send_cf">
-                                        <input id="radio1" type="radio"name="send_clas" checked="checked">
-                                        <label for="radio1">일반</label>
-                                        <input id="radio2" type="radio" name="send_clas">
-                                        <label for="radio2">광고</label>
-                                    </td>
-                                </tr>
-                                <tr>
-                                    <th scope="row">발신번호</th>
-                                    <td class="put_num">
-                                        <label for="num" class="label"></label>
-                                        <input type="text" size="35" id="num" placeholder="010-1234-5678" onfocus="this.placeholder=''" onblur="this.placeholder='010-1234-5678'">
-                                        <button type="button" class="btnType btnType6">번호변경</button>
-                                    </td>
-                                </tr>
-								<tr>
-                                    <th scope="row">제목</th>
-                                    <td>
-                                        <!-- 단문일 때 -->
-										<!-- <label for="text" class="label"></label>
-										<input type="text" size="20" id="text" class="w100" placeholder=""  onfocus="this.placeholder=''" disabled> -->
-										<!-- 장문일 때 -->
-										<input type="text" size="20" id="text" class="w100" placeholder="제목을 입력해주세요 (최대30byte, 발송관리용)" onfocus="this.placeholder=''" onblur="this.placeholder='제목을 입력해주세요 (최대30byte, 발송관리용)'">
-                                        </td>
-                                    </tr>
-                                    <tr>
-                                        <th scope="row">내용</th>
-                                        <td class="putText">
-                                            <div class="clearfix">
-                                                <div class="put_left long">
-                                                    <label for="textarea" class="label"></label>
-                                                    <textarea id="textarea" class="put_text">
-해마다 찾아오는 봄이지만
-봄맞이 대청소라는 말처럼,
-새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-    
-"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을 
-깨끗이 비워보는 겁니다.
-    
-새봄에 새마음으로 새롭게 시작해 보는 겁니다.
-
-해마다 찾아오는 봄이지만
-봄맞이 대청소라는 말처럼,
-새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-    
-"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을 
-깨끗이 비워보는 겁니다.
-    
-새봄에 새마음으로 새롭게 시작해 보는 겁니다.
-
-해마다 찾아오는 봄이지만
-봄맞이 대청소라는 말처럼,
-새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-    
-"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을 
-깨끗이 비워보는 겁니다.
-    
-새봄에 새마음으로 새롭게 시작해 보는 겁니다.
-                                                    </textarea>
-                                                    <div class="text_length">
-														<div>
-                                                        	<p><span class="fwMd">15 /<span><span class="c_002c9a fwMd"> 2000</span>byte</p>
-                                                        	<span class="msg_com msg_long">장문</span>
-														</div>
-                                                    </div>
-                                                </div>
-                                                <div class="put_right">
-                                                    <button type="button" class="btnType btnType7">특수문자</button>
-                                                    <button type="button" class="btnType btnType7">특정문구 일괄변환</button>
-                                                    <button type="button" class="btnType btnType7">내문자함</button>
-                                                    <button type="button" class="btnType btnType8" onclick="showPotoediter();">이미지 불러오기</button>
-                                                <div class="send_btnWrap">
-                                                    <button type="button" class="btnType btnType9">문자저장</button>
-                                                    <button type="button" class="btnType btnType9">초기화</button>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </td>
-                                </tr>     
-                            </tbody>
-                        </table>
-                    </div>
-                    <div class="send_right">
-                        <div class="phone">
-					<div>
-					<p><img src="/publish/images/search.png">미리보기</p>
-					<div class="text_length2 clearfix">
-						<span class="msg_com msg_long">장문</span>
-						<div>
-							<span>글자크기</span>
-							<button type="button"><img src="/publish/images/content/font_plus.png"></button>
-							<button type="button"><img src="/publish/images/content/font_minus.png"></button>
-						</div>
-					</div>
-					<!-- 텍스트 미리보기 -->
-					<div class="text_preview">
-						<div class="preview_auto">
-							해마다 찾아오는 봄이지만
-							봄맞이 대청소라는 말처럼,
-							새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-							<br><br>
-							"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을
-							깨끗이 비워보는 겁니다.
-							해마다 찾아오는 봄이지만
-							봄맞이 대청소라는 말처럼,
-							새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-							<br><br>
-							"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을
-							깨끗이 비워보는 겁니다.
-							해마다 찾아오는 봄이지만
-							봄맞이 대청소라는 말처럼,
-							새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-							<br><br>
-							"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을
-							깨끗이 비워보는 겁니다.
-							해마다 찾아오는 봄이지만
-							봄맞이 대청소라는 말처럼,
-							새 봄을 맞아 봄맞이 마음청소 한번하고 가실께요~ㅎㅎ
-							<br><br>
-							"새술은 새부대에"라는 말처럼 버리고 싶은 기억들을
-							깨끗이 비워보는 겁니다.
-						</div>
-					</div>
-					<!-- //텍스트 미리보기 -->
-				</div>
-			</div>
-            <p class="addText">※ 단말기 설정에 따라 다르게 보일 수 있습니다</p>
-        </div>
-    </div>
-	<!-- excel 대량 불러오기 -->
-	<div class="excelWrap">
-		<div>
-			<div class="excel_selBox clearfix">
-				<select class="selType1">
-					<option>그룹선택</option>
-					<option>그룹선택</option>
-					<option>그룹선택</option>
-				</select>
-				<label for="" class="label">그룹 선택</label>
-				<span>* 보내실 주소록 그룹을 선택하세요.</span>
-				<button type="button" class="btnType btnType14"><i></i>번호입력형식안내</button>
-			</div>
-			<div class="excel_middle">
-				<div class="select_btnWrap clearfix">
-					<div>
-						<button type="button"><i></i>전체선택(ctrl+A)</button>
-						<button type="button"><i></i>삭제(Del)</button>
-						<button type="button">복사(ctrl+C)</button>
-						<button type="button">붙여넣기(ctrl+V)</button>
-					</div>
-					<div>
-						<button type="button">주소록에 등록</button>
-						<button type="button"><i></i>엑셀 업로드</button>
-						<button type="button"><i></i>엑셀 다운로드</button>
-					</div>
-				</div>
-			</div>
-			<img src="/publish/images/content/excel.jpg" style="width: 100%;">
-		</div>
-	</div>
-	<div class="send_general sec">
-        <div class="send_left">
-            <table class="tType1">
-                <caption>일반 문자보내기 분류 번호 내용 등을 입력하는 표</caption>
-                <colgroup>
-                    <col style="width: 100px;">
-                    <col style="width: auto;">
-                </colgroup>
-                <tbody>
-                    <tr>
-                        <th colspan="2" class="billingAmount">
-                            <div class="clearfix">
-                                <p>결제금액 :</p>
-                                <p class="price"><span>200,000</span>원<span>(부가세 포함)</span></p>
-                            </div>
-                            <button type="button"><i></i>계산하기</button>
-                        </th>
-                    </tr>
-                    <tr>
-                        <th scope="row">추천인 ID</th>
-                        <td class="check_num">
-                            <input id="radio5" type="radio"name="recom" checked="checked">
-                            <label for="radio5">없음</label>
-                            <input id="radio6" type="radio" name="recom">
-                            <label for="radio6">있음</label>
-                            <div>
-                                <label for="id" class="label"></label>
-                                <input type="text" size="20" id="id" placeholder="추천인 아이디 입력" onfocus="this.placeholder=''" onblur="this.placeholder='추천인 아이디 입력'">
-                                <button type="button" class="btnType btnType9">확인</button>
-                            </div>
-                        </td>
-                    </tr>            
-                </tbody>
-            </table>
-        </div>
-        <div class="send_right">
-            <div class="send_rev">
-                <div class="rev_radio">
-                    <input id="radio7" type="radio"name="reser" checked="checked">
-                    <label for="radio7">즉시</label>
-                    <input id="radio8" type="radio" name="reser">
-                    <label for="radio8">예약</label>
-                </div>
-                <div>
-                    <div class="rev_top">
-                        <span>날짜 :</span>
-                        <div class="calendar">
-                            <input type="text" title="예약 전송 시 날짜 선택"id="day"><button id="txtDate1" value="" title="캘린더 팝업열기" onclick="fnPopUpCalendar(txtDate1,txtDate1,'yyyy/mm/dd'" class="text_box1 calInput"><img src="/publish/images/calendar/calendarIcon.png"></button>
-                        </div>
-                            <label for="" class="label">시 선택</label>
-							<div class="selBox">
-                               	<select class="selType1">
-                               	    <option>00시</option>
-                               	    <option>10시</option>
-                               	    <option>20시</option>
-                               	</select>
-                               	<label for="" class="label">분 선택</label>
-                               	<select class="selType1">
-                               	    <option>00분</option>
-                               	    <option>25분</option>
-                               	    <option>50분</option>
-                               	</select>
-							</div>
-                            </div>
-                            <div class="rev_bottom">
-                                <input type="checkbox">
-                                <label for="">분할전송</label>
-                                <select class="selType1">
-                                    <option>00시</option>
-                                    <option>10시</option>
-                                    <option>20시</option>
-                                </select>
-                                <label for="">건</label>
-                                <select class="selType1">
-                                    <option>00분</option>
-                                    <option>25분</option>
-                                    <option>50분</option>
-                                </select>
-                                <label>간격</label>
-                            </div>
-                        </div>
-                   	</div>
-                    <div class="send_btn">
-                        <button type="button" class="btnType btnType10">테스트 발송<img src="/publish/images/content/qmIcon.png"></button>
-                        <button type="button" class="btnType btnType11">발송하기</button>
-                    </div>
-                </div>
-           	</div>
-		</div><!--// tab content2 -->
-	</div><!--// send top -->
-<!-- send bottom -->
-<div class="send_bottom">
-	<!-- tab button -->
-<ul class="tabType2">
-	<li class="tab active"><button type="button" onclick="TabType2(this,'1');">문자 샘플</button></li>
-	<li class="tab"><button type="button" onclick="TabType2(this,'2');">그림문자 샘플</button></li>
-	<li class="tab"><button type="button" onclick="TabType2(this,'3');">지도/약도 추가</button></li>
-	<li class="tab"><button type="button" onclick="TabType2(this,'4');">내 문자함</button></li>
-</ul>
-<!--// tab button -->
-<form id="letterForm" name="letterForm" method="post">
-	<input type="hidden" id="letterType" name="letterType" value="<c:out value='${letterVO.letterType}'/>"/>
-	<input type="hidden" id="memberType" name="memberType" value="<c:out value='${letterVO.memberType}'/>"/>
-	<input type="hidden" id="categoryCode" name="categoryCode" value="<c:out value='${letterVO.categoryCode}'/>"/>
-	<input type="hidden" id="hashTag" name="hashTag" value="<c:out value='${letterVO.hashTag}'/>"/>
-	<input name="pageIndex" type="hidden" value="<c:out value='${letterVO.pageIndex}' default='1' /> "/>
-
-	<div class="search_sample">
-		<input type="text" id="searchKeyword" name="searchKeyword" value="<c:out value='${letterVO.searchKeyword}'/>" placeholder="문자샘플 검색하기" onfocus="this.placeholder=''" onblur="this.placeholder='문자샘플 검색하기'">
-		<button><img src="/publish/images/search02.png" alt=""></button>
-	</div>
-	<!-- tab content1 -->
-	<div class="bottom_content current" id="tab2_1">
-		<div class="area_tabs">
-			<div class="top_tab">
-				<!-- <div class="tab_depth1 tDep1_mType">
-					<a href="#none" class="on" value="">전체</a>
-					<a href="#none" value="B">기업</a>
-					<a href="#none" value="P">개인</a>
-					<div class="on_active">전체</div>
-				</div> -->
-				<div class="tab_depth2 tDep2_letType">
-					<a href="#none" class="on" value="S">단문문자</a>
-					<a href="#none" value="L">장문문자</a>
-				</div>
-				<select name="pageUnit" id="pageUnit">
-					<option value="10">2줄보기</option>
-					<option value="20">4줄보기</option>
-					<option value="30">6줄보기</option>
-				</select>
-			</div>
-			<div class="bottom_tab">
-				<div class="tab_depth3 tDep3_cateCode">
-					<a href="#none" class="on" value="all">All</a>
-					<c:forEach var="cateList" items="${cateCodeList}" varStatus="status">
-						<c:if test="${cateList.cateDepth eq '2'}">
-							<a href="#none" value="<c:out value='${cateList.cateNo}'/>"><c:out value="${cateList.cateNm}"/></a>
-						</c:if>
-					</c:forEach>
-				</div>
-				<div class="tab_depth4 tDep4_hashTag">
-					<a href="#none" class="on" value="봄인사">#봄인사</a>
-					<a href="#none" value="좋은글">#좋은글</a>
-					<a href="#none" value="초대/답례">#초대/답례</a>
-				</div>
-				<div class="customReq">
-					<button type="button"><i></i>맞춤제작 요청</button>
-				</div>
-			</div>
-		</div>
-		<div id="letterLoad">
-			<%-- <ul class="area_tabcontent msg_sample ">
-				<c:forEach var="letterList" items="${resultLetterList}" varStatus="status">
-					<li class="letterMsg">
-						<p class="tit_text"><c:out value="${letterList.letterSj}"/>화이트데이</p>
-						<div class="msg_cont">
-							<div class="msg_text"><c:out value="${letterList.letterCn}"/></div>
-						</div>
-						<p class="info_text">0 / <span class="limit_text">90</span>byte</p>
-					</li>
-				</c:forEach>
-			</ul> --%>
-			<!-- pagination -->
-			<!-- 페이지 네비게이션 시작 -->
-			<%-- <c:if test="${!empty resultLetterList}">
-			   <ul class="pagination">
-			       <ui:pagination paginationInfo = "${paginationInfo}"  type="imageWeb" jsFunction="linkPage" />
-			   </ul>
-		    </c:if> --%>
-			<!-- pagination -->
-		</div>
-	</div><!--// tab content1 -->
-</form>
-<!--// tab content2 -->
-<div class="bottom_content" id="tab2_2">
-	<div class="area_tabs">
-		<div class="top_tab">
-			<div class="tab_depth1">
-				<a href="#none" class="on">전체</a>
-				<a href="#none">기업</a>
-				<a href="#none">개인</a>
-				<div class="on_active">전체</div>
-			</div>
-			<div class="tab_depth2">
-					<a href="#none" class="on">그림문자</a>
-			</div>
-			<select name="" id="">
-				<option value="">2줄보기</option>
-				<option value="">4줄보기</option>
-				<option value="">6줄보기</option>
-			</select>
-		</div>
-		<div class="bottom_tab">
-			<div class="tab_depth3">
-				<a href="#none" class="on">All</a>
-				<c:forEach var="cateList" items="${cateCodeList}" varStatus="status">
-					<c:if test="${cateList.cateDepth eq '2'}">
-						<a href="#none"><c:out value="${cateList.cateNm}"/></a>
-					</c:if>
-					<!-- <a href="#none">요일</a>-->
-				</c:forEach>
-			</div>
-			<div class="tab_depth4">
-				<a href="#none" class="on">#봄인사</a>
-				<a href="#none">#좋은글</a>
-				<a href="#none">#초대/답례</a>
-			</div>
-		</div>
-	</div>
-	<ul class="area_tabcontent photo_sample">
-	
-		<c:forEach var="photoList" items="${resultPhoList}" varStatus="status">
-			<li class="hover_photo">
-				<c:set var="strImgPath" value="${photoList.fileStreCours}/${photoList.streFileNm}.${photoList.fileExtsn}"/>
-				<div class="hover_cont"><img src="${strImgPath}" alt=""></div>
-				<p class="tit_text"><%-- <c:out value="${photoList.letterSj}"/> --%>제목</p>
-				<div class="photo_cont">
-					<img class="photoOnImg" src="<c:url value='${strImgPath}'/>" alt="">
-				</div>
-			</li>	
-		</c:forEach>
-	</ul>
-	<!-- pagination -->
-	<!-- 페이지 네비게이션 시작 -->
-	<c:if test="${!empty resultPhoList}">
-	   <ul class="pagination">
-	       <ui:pagination paginationInfo = "${paginationInfo}"  type="imageWeb" jsFunction="linkPage" />
-	   </ul>
-    </c:if>
-	<!-- pagination -->
-</div><!--// tab content2 -->
-<!--tab content3 -->
-<div style="background-color: wheat;" class="bottom_content" id="tab2_3"></div><!--// tab content3 -->
-<!-- tab content4 -->
-<div style="background-color: blueviolet;" class="bottom_content" id="tab2_4"></div><!--// tab content4 -->
-
-	</div>
-</div>
-</body>
-</html>(No newline at end of file)
Add a comment
List