<%@ 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=202304250001'/>"></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">


var tableErrorData = [];
var totRows = 0; // 좌측 받는사람 총 갯수

/* 파일등록 */
var _fileIdx = 0;
var _fileForm2 = new Array();
var fileExt = ""; // 첨부파일 확장자
var excelAddr = []; //엑셀 불러오기에서 내용 저장하는 배열 변수

$(document).ready(function (){
	// 발송금액 단가표시
	SetPriceWrapOpen();	
	
	//미리보기 이미지 영역 숨김 처리
	$('.preiew_img').hide();
	$('.prePhoto').hide();
	
	//최초 화면 문자열 길이 체크해주기
	var strCon = $('#smsTxtArea').val();
	fnByteString(strCon);
	
	//선거문자 텍스트 내용 추가해주기
	advMsgInsert();
		
	
	//문자 내용 입력시 바이트수 계산하기
	$('#smsTxtArea').keyup(function(e){
		
		var contents = $(this).val();
		 
		fnByteString(contents);
		
	});//문자 바이트수 계산하기 끝
	
	
	//받는사람 연락처  Tabulator 처리
	//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", 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();
	 			}
	 		}
	 		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", 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", width: 60},
	        {title: "그룹명", hozAlign: "center", field: "groupNm", 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;
	    },
	});
	
	
	//핸드폰 번호 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) {
		
		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});
				}
			}
				
			//중복 연락처 1개만 남기고 삭제하기
			var removeDuplPhone = dupliPhoneData(tableData);
			  
			//수신자 리스트에 전화번호 추가해주기
			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;
			
		}else if(!checkHpNum(callToNum)){	
			
			alert("올바른 전화번호를 입력해 주세요.");
			$('#callTo').val("");
			return false;
		}
		
		//핸드폰 번호에 '-' 문자 제거하기
		callToNum = removeDash(callToNum);
	    
	    //기존 받는사람 연락처 모두 불러오기
	    var data = tableL.getRows();
	    var tableData = [];
	    var dpCnt = 0;
	    for(var i=0; i < tableL.getRows().length; i++){
	    	if(callToNum == data[i].getData().phone){
	    		dpCnt++;
	    	}
	    }
	    
	    if(dpCnt > 0){
	    	alert("받는사람 리스트에 동일한 연락처가 있습니다.");
	    	$('#callTo').val("");
	    	return false;
	    }else{
	    	
	    	tabledata = [{phone: callToNum},];
	    	
	    	//빈 row 데이터 삭제하기
	    	var befData = tableL.getRows();
	    	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});
		    }
			
	    	//연락처 추가해 주기
			addPhoneInfo(tabledata);
		    $('#callTo').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("선택하신 받는 사람을 삭제하시겠습니까?")){
				
				for(var i=0; i < selectedData.length; i++){
					selectedData[i].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);
				}
			}
		}
	});
	
	//주소록 불러오기 버튼 클릭시
	$('.popupAddr').click(function(){
		
		var login = '${LoginVO.id}';
		
		if(login == null || login == ''){
			alert("로그인 후 이용이 가능합니다.");
			return false;
		}
		
		$("#addrGroupLoad").load("/web/mjon/msgcampain/selectAddrGroupListAjax.do", "" ,function(response, status, xhr){
			//리스트 스크롤 처리해주기
			$(".adr_pop_list").mCustomScrollbar({
				axis: 'y',
				scrollbarPosition: "outside",
				theme: "dark",
				autoHideScrollbar: false
			});
		});
		
	});
	
	//엑섹불러오기 버튼 클릭시 파일 첨부 실행
	$('.c3').click(function(){ // 엑셀파일 불러오기 선택 시
		$("#excelFile").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();
	});
	
	
	//오류 검사 버튼 처리
	$('.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);
	});
	
	
	//그림문자 이미지 삭제 처리 - 동적으로 추가한 객체는 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").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);
		
		$('.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 = ""; //해시태그 검색 시 카테고리 제거
		
		var tabIndex = $(".selectedTab").children(".active").index();

		//문자 리스트 불러오기 
		if(tabIndex == 0) {
			formL.letterType.value="S";
			fnLetterListAjax();
		}
		//그림 문자 리스트 불러오기
		if(tabIndex == 1) {
			formL.letterType.value="P";
			fnPhotoListAjax();
		}
		//내문자함 리스트 불러오기
		if(tabIndex == 3) {
			formM.searchKeyword.value = formL.searchKeyword.value; //letterForm의 검색어를 문자함 검색어 부분에 입력해줌
			fnMyMsgListAjax();
		}
		$('.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) {
			formL.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.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(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();
	});
	
	$('.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 updateTotCnt(data){
	var rowTotCnt = data;
	$("#rowTotCnt").text(numberWithCommas(rowTotCnt));
}

//주소록 불러오기에서 수신자 리스트 tabulator에 데이터 추가해주기
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 SetPriceWrapOpen() {
	var loginVO = '${LoginVO}';
	//로그인 체크
	if(loginVO == "" || loginVO == null){
	}
	else {
		// 발송금액 가격안내
		$("#myPriceWrap").show();		
	}
}

//선거 후보자 등록 알림 메세지 처리
function fn_candidateChk(){
	alert("선거 후보자를 등록이 되어야 문자 발송이 가능합니다. 후보자 등록을 해주세요.");
	return false;
	
}
	
//문자 바이트수 계산하기 함수
function fnByteString(contents){
	
	var totalByte = 0; 
	var adverYn = $("input[name='send_adYn']:checked").val();
	var adTxtLeng = conByteLeng($('.ad_txt').text());
	var denyTxtLeng = 0;
	var denyTxt = $('.deny_txt').html();
	
	//선거문자 하단 문구 줄바꿈 처리하기
	if(typeof denyTxt !='undefined' && denyTxt != null){
		denyTxt = denyTxt.replaceAll("<br>","\n");
		denyTxt = denyTxt.replaceAll("<br/>","\n");
		denyTxtLeng = conByteLeng(denyTxt);
	}
	
	
	$('#msgLeng').html("");
	$('#limitLeng').html("");
	var conLeng = conByteLeng(contents); // 내용 문자 입력 바이트 수 계산하기
	
	console.log(contents);
	
	//일반문자, 광고문자에 따른 문자 길이 변경해주기
	if(adverYn == "N"){
		
		$('#msgLeng').text(conLeng);
		
		//문자 길이 변수에 저장해주기
		$('#smsLen').val(conLeng);
		
	}else{
		
		conLeng = adTxtLeng + conLeng + denyTxtLeng +2; // 상단 광고 텍스트 , 하단 080 문자내용 길이 더해주기 , +2는 엔터 적용
		$('#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');
		
	}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');
			
		}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);
		}
	}
	
	// 미리보기 데이터 입력해 주기 , 줄바꿈 문자 변환해주기
	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/msgcampain/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>';
				
	$('.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();
	}else if($("#imgCnt").val() == 2){
		$('.preViewShort').append(imgPath);
		$('.photo_num_02').show();
		$(".thumb_wrap li").removeClass("on");
	}else if($("#imgCnt").val() == 3){
		$('.preViewShort').append(imgPath);
		$('.photo_num_03').show();
		$(".thumb_wrap li").removeClass("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 (){
	// 커서 위치에 삽입
	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/msgcampain/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); }
    });
});

//주소록 불러오기 그룹명 검색 기능처리
function fnAddrGrpSearch(){
	
	var form = document.searchAddrGrpForm;
	form.searchKeyword.value = form.searchGrpKeyword.value;
	form.searchCondition.value = "";
	
	var sendData = $(document.searchAddrGrpForm).serializeArray();
	
	$("#addrGroupLoad").load("/web/mjon/msgcampain/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).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 를 사용할때는 processData, contentType 옵션 제가할것 */
	var data = $("#searchAddrGrpForm").serialize();
	var url = "/web/mjon/msgcampain/selectMsgAddrListAjaxQ.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"){
				
				var addrList = data.object;
					
				if(addrList.length == 0){
					alert("주소록 정보가 없습니다.");
					return false;
				}
				
				//우측 주소록 리스트 Tabulator에 입력해주기
				tableAddr.setData(addrList);
				
			} 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');
		}
    });
}

//주소록 불러오기에서 수신자 리스트 추가해 주기
function addrToList_advc(type){
	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/msgcampain/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); }
    });
}

// 후보자 이메일 등록 시 도메인 선택 이벤트(1: 직접입력, 2: 도메인 선택 시)
function emailChange(email){
	var emailTxt =  $("input[name=emailDomain]");
	
	if(email.value == '1'){
		$("input[name=emailDomain]").attr('readonly', false);
		emailTxt.val('');
	}else{
		emailTxt.val(email.value);
		$("input[name=emailDomain]").attr('readonly', true);
	}
}

// 후보자 등록 / 수정 이벤트
function fnCandidateUpt(dataType){
	
	var form = document.candiForm;
	form.dataType.value = dataType;
	
	if(form.candidateNm.value == ""){
		alert("후보자 이름을 입력해 주세요.");
		return false;
	}
	
	if(form.regidentNo1.value == ""){
		alert("후보자 주민등록번호 앞자리를 입력해 주세요.");
		return false;
	}else if(!Number(form.regidentNo1.value)){
		alert("후보자 주민등록번호 앞자리를 정확히 입력해 주세요.");
		return false;
	}
	
	if(form.regidentNo2.value == ""){
		alert("후보자 주민등록번호 뒷자리를 입력해 주세요.");
		return false;
	}else if(!Number(form.regidentNo2.value)){
		alert("후보자 주민등록번호 뒷자리를 정확히 입력해 주세요.");
		return false;
	}
	
	if(form.candidateAddr.value == ""){
		alert("후보자 주소를 입력해 주세요.");
		return false;
	}
	
	if(form.managerNm.value == ""){
		alert("담당자 이름을 입력해 주세요.");
		return false;
	}
	
	if(form.phoneNo.value == ""){
		alert("담당자 휴대폰 번호를 입력해 주세요.");
		return false;
	}else if(!checkHpNum(removeDash(form.phoneNo.value))){
		alert("정확한 휴대폰 번호를 입력해 주세요.");
		return false;
	}
	
	var emailChk = form.email.value + "@" + form.emailDomain.value;
	
	if(emailChk == ""){
		alert("이메일을 입력해 주세요.");
		return false;
	}else if(!checkEmail(emailChk)){
		alert("정확한 이메일을 입력해 주세요.");
		return false;
	}
	
	var msg = "";
	
	if(dataType == 'Upt'){
		msg="후보자 정보를 수정하시겠습니까?";
	}else{
		msg="후보자를 등록 하시겠습니까?";
	}
	
	if(confirm(msg)){
		
		//XSS 취약점 제거
		form.candidateNm.value = XSSCheck(form.candidateNm.value);
		form.regidentNo1.value = XSSCheck(form.regidentNo1.value);
		form.regidentNo2.value = XSSCheck(form.regidentNo2.value);
		form.candidateAddr.value = XSSCheck(form.candidateAddr.value);
		form.managerNm.value = XSSCheck(form.managerNm.value);
		form.phoneNo.value = XSSCheck(form.phoneNo.value);
		form.email.value = XSSCheck(form.email.value);
		form.emailDomain.value = XSSCheck(form.emailDomain.value);
		
		var url = "/web/mjon/msgcampain/insertCandidateDataInfoAjax.do";
		var data = new FormData(document.candiForm);
		
		$.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 == "loginFail"){
						alert(returnData.message);
						return false;
					}else if(returnData.result == "success"){
						alert(returnData.message);
						location.reload();
					}else{
						alert(returnData.message);
						return false;
					}
					
				} else if(status== 'fail'){
					alert("후보자 등록에 실패하였습니다. !!");
				}
			},
	        error: function (e) { alert("후보자 등록에 실패하였습니다."); console.log("ERROR : ", e); }
	    });
	}
}

//후보자 등록 시 로그인 여부 체크
function fn_candidateLoginChk(){
	alert("후보자 등록은 로그인 후 이용 가능합니다.");
	return false;
}

// 후보자 등록 시 회원여부 체크
function fn_mberDeptChk(){
	alert("선거문자는 개인 회원만 이용 가능합니다.");
	return false;
}

// 선거문자 맞춤제작 팝업 열기
function goToCustom(){
	var form = document.goToCustomForm;
	form.submit();
}

// 발송규정 윈도우 팝업 열기
function infoPop(pageUrl){
	document.popForm.pageType.value = pageUrl;
	document.popForm.action = "/web/pop/infoPop.do";
	document.popForm.method = "post"; 
	window.open("about:blank", 'infoPop', 'width=790, height=1500, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=yes');
	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) {
		// 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;
				}
			} 
		},
		error: function (e) {
			//alert("주소록 중복체크에 실패했습니다.");
		}
	});
	
	return isReturn;	
}

//문자발송 받는사람 목록 주소록에 등록하기 기능 처리
$('.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(",","§");
			}
		}
		
		//주소록 정보를 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 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();
	
	//로그인 체크
	if(loginVO == "" || loginVO == null){
		alert("문자발송 서비스는 로그인 후 이용 가능합니다.");
		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;
	
	//발신번호 세팅
	form.callFrom.value = callFrom;
	
	//이미지 path 보내기
	form.imgFilePath.value = imgFilePath;
	
	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();
}

//발신번호 선택
function setCandidatePhone() {
	advMsgInsert();
}

//선택 발신번호를 이용한 문자내용 설정
function advMsgInsert(){
	var callFrom = $("#callFromList option:selected").val();
	
	var advStr = '<div class="ad_txt"><p>(선거운동정보)</p></div>';
	var advDenyStr = '<div class="deny_txt">후보자전화번호 ' + callFrom + '<br/>불법수집정보 신고번호 : 선거관리위원회 ☎1390<br/>무료거부 0808800858</div>';
	
	var preAdvStr = '<p class="ad_tit">(선거운동정보)</p>';
	var preAdvDenyStr = '<p class="deny_receipt">후보자전화번호 ' + callFrom + '<br>불법수집정보 신고번호 : 선거관리위원회 ☎1390<br>무료거부 0808800858</p>';
	
	//광고 및 무료수신거부 텍스트 추가
	if ($("#send_adYnY").val() == 'Y'){

		//문자내용 광고문자 삭제하기
		$(".ad_txt").remove();
		$(".deny_txt").remove();
		//미리보기 광고 문자 삭제하기
		$('.ad_tit').remove();
		$('.deny_receipt').remove();
		
		//문자 내용에 광고 문자 추가해주기
		$(advStr).insertBefore('textarea[name=smsTxtArea]'); 
		$(advDenyStr).insertBefore('div[name=afterDeny]');
		
		//미리보기에 광고 문자 추가해주기
		$(preAdvStr).insertBefore('.none_txt');
		$(preAdvDenyStr).insertAfter('.realtime');
		
	}else{ //광고 및 무료수신거부 텍스트 삭제
		
		//문자내용 광고문자 삭제하기
		$('.ad_txt').remove();
		$('.deny_txt').remove();
		
		//미리보기 광고 문자 삭제하기
		$('.ad_tit').remove();
		$('.deny_receipt').remove();
		
	}
	
	//문자 바이트수 계산하기
	fnByteString($('#smsTxtArea').val());
	
}

//이벤트 잔액 로그인 체크
$(".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 = "02";		// 01:문자전송, 02:선거문자
	
	var sendData= $(document.sentListForm).serializeArray();
	$("#mjMsgSentListAllLoad").load("/web/mjon/msgdata/selectMjMsgSentListAjax.do", sendData ,function(response, status, xhr){

	});
}

$(document).on('click', '#hdnLink', function() {
	location.href="/web/mjon/msgcampain/huge/selectMsgHGDataView.do";
})

</script>
<div class="loading_layer">
	<div class="loading_container">
		<div class="bar"></div>
		<div class="text">Loading</div>
	</div>
</div>
	
<!-- 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  재전송 팝업 -->
	
<!-- 후보자등록 팝업 data-tooltip:candidate_popup01 -->
<div class="tooltip-wrap">
	<div class="popup-com candidate_layer candidate_popup01" tabindex="0" data-tooltip-con="candidate_popup01" data-focus="candidate_popup01" data-focus-prev="candidate_popup01-close" style="width: 620px;">
		<div class="popup_heading">
			<p>후보자 등록</p>
			<button type="button" class="tooltip-close" data-focus="candidate_popup01-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
		</div>
		
		<form id="candiForm" name="candiForm" method="post">
			<input type="hidden" id="dataType" name="dataType" value="Reg"/>
		
			<div class="layer_in">
                <p class="adr_pop_title">선거문자는 반드시 <span class="c_002c9a">후보자 등록</span>을 하셔야만 이용 가능합니다. <br/>입력하신 내용은 세금계산서 발행을 위한 정보로만 사용됩니다.</p>
				<div class="candidate_table">
                    <p>후보자</p>
                    <table>
                        <caption>후보자 등록을 위한 성명, 주민등록번호, 주소를 입력하는 표</caption>
                        <colgroup>
                            <col style="width: 125px;">
                            <col style="width: auto;">
                        </colgroup>
                        <tbody>
                            <tr>
                                <th scope="row">성명</th>
                                <td>
                                    <label for="candidateNm" class="label"></label>
                                    <input type="text" id="candidateNm" name="candidateNm" value="<c:out value='${mjonCandidateVO.candidateNm}'/>" placeholder="후보자 성명 입력" onfocus="this.placeholder=''" onblur="this.placeholder='후보자 성명 입력'" class="inputLight">
                                </td>
                            </tr>
                            <tr class="residentNum">
                                <th scope="row">주민등록번호</th>
                                <td>
                                    <label for="regidentNo1" class="label"></label>
                                    <input type="text" id="regidentNo1" name="regidentNo1" value="<c:out value='${mjonCandidateVO.regidentNo1}'/>" maxlength="6" placeholder="주민등록번호 앞 6자리" onfocus="this.placeholder=''" onblur="this.placeholder='주민등록번호 앞 6자리'" class="inputLight">
                                    <span>-</span>
                                    <label for="regidentNo2" class="label"></label>
                                    <input type="password" id="regidentNo2" name="regidentNo2" value="<c:out value='${mjonCandidateVO.regidentNo2}'/>" maxlength="7" placeholder="주민등록번호 뒤 7자리" onfocus="this.placeholder=''" onblur="this.placeholder='주민등록번호 뒤 7자리'" class="inputLight">
                                </td>
                            </tr>
                            <tr>
                                <th scope="row">주소</th>
                                <td>
                                    <label for="candidateAddr" class="label"></label>
                                    <input type="text" id="candidateAddr" name="candidateAddr" value="<c:out value='${mjonCandidateVO.candidateAddr}'/>">
                                </td>
                            </tr>
                        </tbody>
                    </table>
                </div>
                <div class="candidate_table" style="margin-top: 40px;">
                    <p>담당자</p>
                    <table>
                        <caption>후보자 등록을 위한 성명, 주민등록번호, 주소를 입력하는 표</caption>
                        <colgroup>
                            <col style="width: 125px;">
                            <col style="width: auto;">
                        </colgroup>
                        <tbody>
                            <tr>
                                <th scope="row">성명</th>
                                <td>
                                    <label for="managerNm" class="label"></label>
                                    <input type="text" id="managerNm" name="managerNm" value="<c:out value='${mjonCandidateVO.managerNm}'/>" placeholder="담당자 성명 입력" onfocus="this.placeholder=''" onblur="this.placeholder='담당자 성명 입력'" class="inputLight">
                                </td>
                            </tr>
                            <tr>
                                <th scope="row">휴대폰</th>
                                <td>
                                    <label for="phoneNo" class="label"></label>
                                    <input type="text" id="phoneNo" name="phoneNo" value="<c:out value='${mjonCandidateVO.phoneNo}'/>" placeholder="‘-’ 없이 숫자만 입력" onfocus="this.placeholder=''" onblur="this.placeholder='‘-’ 없이 숫자만 입력'" class="inputLight">
                                </td>
                            </tr>
                            <tr class="emailWrap3">
                                <th scope="row">이메일</th>
                                <td>
                                    <label for="email" class="label"></label>
                                    <input type="text" id="email" name="email" value="<c:out value='${mjonCandidateVO.email}'/>">
                                    <span>@</span>
                                    <label for="emailDomain" class="label"></label>
                                    <input type="text" id="emailDomain" name="emailDomain" value="<c:out value='${mjonCandidateVO.emailDomain}'/>">
                                    <label for="" class="label">이메일 선택</label>
                                    <select class="list_selType1" id="taxEmailSelect" onchange="emailChange(this)">
                                        <c:forEach var="result" items="${emailCode}" varStatus="status">
											<c:if test="${status.index eq 0 }">
												<option value="1">${result.codeNm}</option>
											</c:if>
											<c:if test="${status.index ne 0 }">
												<option value="${result.codeDc}">${result.codeNm}</option>
											</c:if>
										</c:forEach>
                                    </select>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                </div>
                <div class="popup_btn_wrap2">
                	<c:choose>
                		<c:when test="${not empty mjonCandidateVO.candidateNm}">
		                    <button type="button" onclick="javascript:fnCandidateUpt('Upt'); return false;">수정</button>
                		</c:when>
                		<c:otherwise>
                			<button type="button" onclick="javascript:fnCandidateUpt('Reg'); return false;">등록</button>
                		</c:otherwise>
                	</c:choose>
                    <button type="button" class="tooltip-close" data-focus="candidate_popup01-close" data-focus-next="candidate_popup01">닫기</button>                      
                </div>
			</div>
			
		 	<!-- Workaround to avoid corrupted XHR2 request body in IE10 / IE11 -->
		 	<input type="hidden" name="_dontcare">				
		</form>
	</div>
</div>
<!--// 후보자등록 팝업 -->
	
<!-- 주소록 불러오기 -->
<div class="tooltip-wrap">
	<div class="popup-com import_layer popup06" tabindex="0" data-tooltip-con="popup06" data-focus="popup06" data-focus-prev="popup06-close" style="width: 1000px">
		<div class="popup_heading">
			<p><span>주소록 불러오기</p>
			<button type="button" onClick="javascript:addrClose(); return false;">
			<img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
		</div>
		<div class="layer_in">
			<div class="titBox titBox_pad">
				<p>- 주소록 수정 및 변경은 <span>[주소록 관리]</span>에서만 가능합니다.</p>
				<button type="button" class="adr_admin" onClick="location.href='/web/mjon/addr/selectAddrList.do'">주소록 관리</button>
			</div>
			<div class="adr_wrap">
				<form id="searchAddrGrpForm" name="searchAddrGrpForm" method="post" style="display: flex; justify-content: space-between;">
					<input type="hidden" id="searchAddrGrpId" name="searchAddrGrpId" value=""/>
					<input type="hidden" id="type" name="type" value="all"/>
					<input type="hidden" id="searchKeyword" name="searchKeyword" value=""/>
					<input type="hidden" name="searchCondition" id="searchCondition" value="0" />
					<div class="adr_pop_left">
						<div class="adr_left_search">
							<label for="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_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>
<!--// 주소록 불러오기 -->
	
<!-- 엑셀 불러오기 -->
<form id="excelForm" name="excelForm" method="post">
	<div class="tooltip-wrap">
		<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/msgcampain/include/msgDataIncludeExcel.jsp" %>
		</div>
	</div>
</form>
<!--// 엑셀 불러오기 -->
	
<!-- 전송내역 팝업 -->
<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>
<!--// 전송내역 팝업 -->
	
<!-- 주소록에 등록 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 ad_layer candidate_popup03" tabindex="0" data-tooltip-con="candidate_popup03" data-focus="candidate_popup03" data-focus-prev="candidate_popup03-close" style="width: 795px">
		<div class="popup_heading">
			<p>선거문자 안내</p>
			<button type="button" class="tooltip-close" data-focus="candidate_popup03-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
		</div>
		<div class="layer_in">
			<img src="/publish/images/content/candidatePop_banner.png" alt="선거문자 이용안내 배너" class="candidate_banner">
			<ul class="info_list">
	    		<li>- 90byte 초과 시, 자동으로 장문으로 전환됩니다.  장문 문자는 최대 2,000byte까지만 작성할 수 있습니다.</li>
	    		<li>- 그림문자 1건당 최대 3장까지 이미지 첨부 가능  [권장 사이즈 : <strong>640 x 960</strong>픽셀 / 최대용량 : <strong>10MB</strong> 이내]</li>
	    		<li>- 선거문자는 반드시 발송규정을 사전 확인 후 발송해 주시기 바랍니다.</li>
	    	</ul>
			<!-- 이용방법/혜택 -->
			<div class="cdpop_cont current" id="listTab2_1">
				<div>
					<p class="cdpop_title">
						<i class="cdpop_title_icon1"></i>선거문자 이용방법
						<span class="customReq">
							<button type="button" onclick="goToCustom();"><i></i>선거문자 맞춤제작</button>
						</span>
					</p>
					<ul class="cdpop_info">
						<li>
							<i class="info_step1"></i>
							<div>
								<p>회원가입</p>
							</div>
						</li>
						<li>
							<i class="info_step2"></i>
							<div>
								<p>후보자등록</p>
							</div>
						</li>
						<li>
							<i class="info_step3"></i>
							<div>
								<p>전용계좌</p>
							</div>
						</li>
						<li>
							<i class="info_step4"></i>
							<div>
								<p>발신번호 인증</p>
							</div>
						</li>
						<li>
							<i class="info_step5"></i>
							<div>
								<p>문자전송</p>
							</div>
						</li>
						<li>
							<i class="info_step6"></i>
							<div>
								<p>세금계산서</p>
							</div>
						</li>
					</ul>
				</div>
				<div>
					<p class="cdpop_title"><i class="cdpop_title_icon2"></i>문자온 선거문자만의 장점 및 혜택</p>
					<ul class="cdpop_benefit">
						<li>
							<div>
								<i class="benefit1"></i>
								<p>한 번에 대량으로 보내야 한다면?<span>10만건까지 동시 전송 가능</span></p>
							</div>
							<p>문자온의 대량전송(엑셀·TXT) 모듈을 통해
								10만건의 대량문자도 쉽고 빠르게 전송 가능합니다.</p>
						</li>
						<li>
							<div>
								<i class="benefit2"></i>
								<p>수신거부 번호가 필요하세요?<span>080 수신거부 번호 무료제공</span></p>
							</div>
							<p>선거문자 발송규정 준수를 위해
								080 수신거부 번호를 무료로 제공해 드립니다.</p>
						</li>
						<li>
							<div>
								<i class="benefit3"></i>
								<p>주소록 등록이 번거로우신가요?<span>주소록 등록 무료대행</span></p>
							</div>
							<p>주소록 등록파일(엑셀·TXT)을 문자온에 제공해
								주시면 무료로 빠르고 신속하게 등록해 드립니다.</p>
						</li>
						<li>
							<div>
								<i class="benefit4"></i>
								<p>홍보효과를 높이고 싶다면?<span>후보자만의 그림문자 맞춤제작</span></p>
							</div>
							<p>선거공약, 인사말, 후보자 사진 등을 넣어 그림문자를
								맞춤 제작하여 홍보효과를 극대화할 수 있습니다.</p>
						</li>
						<li>
							<div>
								<i class="benefit5"></i>
								<p>오류·실패건의 문자를 보상받고 싶다면?<span>오류·실패건 문자 100% 환불</span></p>
							</div>
							<p>번호오류, 수신거부, 수신실패 등으로 인해 문자전송이
								실패한 경우 100% 환불(자동충전)해 드립니다.</p>
						</li>
						<li>
							<div>
								<i class="benefit6 "></i>
								<p>전송결과가 궁금하다면?<span>실시간 전송결과 확인 가능</span></p>
							</div>
							<p>전송결과 및 실패사유를 실시간으로 제공해드립니다.</p>
						</li>
						<li>
							<div>
								<i class="benefit7"></i>
								<p>20건씩 나눠서 보내야한다면?<span>20건씩 분할 예약 전송 가능</span></p>
							</div>
							<p>누구나 쉽고 편리하게 20건씩 나눠서 분할 전송이 가능합니다.</p>
						</li>
						<li>
							<div>
								<i class="benefit8"></i>
								<p>필요한 서류가 있다면?<span>문자온에서 간편하게 신청 가능</span></p>
							</div>
							<p>문자온에서 발송내역서 출력이 가능하며,
								세금계산서는 메일로 자동으로 발행됩니다.</p>
						</li>
					</ul>
				</div>
			</div><!--// 이용방법/혜택 -->
		</div>
		<div class="popup_btn_wrap2" style="margin: 0 auto 30px auto;">
			<button type="button" class="tooltip-close" data-focus="candidate_popup03-close"  data-focus-next="candidate_popup03">닫기</button>                      
		</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 name="msgKind" type="hidden" value="C"/><!-- 문자종류 일반: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"/><!-- 치환 이벤트 장문 건수 -->

    <div class="heading">
        <h2>선거 문자전송</h2>
        <div class="election_btnWrap">
        	<button type="button" class="button2 info" onclick="infoPop('selectMsgDataView2');">발송규정</button>
        	<button type="button" class="button2 info" data-tooltip="candidate_popup03">사용안내</button>
        	<c:choose>
        		<c:when test="${empty LoginVO}">
					<button type="button" class="btnType" onclick="javascript:fn_candidateLoginChk(); return false;"><i class="election_btn1"></i>후보자 등록</button>	        		
        		</c:when>
        		<c:when test="${not empty mberManageVO && mberManageVO.dept eq 'c'}">
        			<button type="button" class="btnType" onclick="javascript:fn_mberDeptChk(); return false;"><i class="election_btn1"></i>후보자 등록</button>
        		</c:when>
        		<c:otherwise>
        			<button type="button" class="btnType" data-tooltip="candidate_popup01"><i class="election_btn1"></i>후보자 등록</button>	
        		</c:otherwise>
        	</c:choose>
               <button type="button" class="btnType" onclick="location.href='/web/member/pay/BillPub.do'"><i class="election_btn2"></i>세금계산서</button>
               <button type="button" class="btnType" onclick="location.href='/web/mjon/msgsent/selectMsgSentView.do'"><i class="election_btn3"></i>발송결과 출력하기</button>
           </div>
    </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>
						<input type="hidden" id="send_adYnY" name="send_adYn" value="Y">
	                    <td colspan="2" class="ele_te">※ 자동동보문자를 <span>한번에 20,000건 이상 보내실 경우에는 꼭 고객센터(1551-8011)</span>로 연락주시어 발송 요청 후 진행해 주시길 바랍니다<span id="hdnLink">.</span></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" onchange="setCandidatePhone();">
								<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" placeholder="내용을 입력해주세요.
-90btye 초과 시 LMS 자동전환
-파일첨부 시 MMS 자동전환">
</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" 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"  placeholder="번호를 입력하세요" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');" onfocus="this.placeholder=''" onblur="this.placeholder='번호를 입력하세요'" style="width:340px;">
									<button type="button" class="btnType btnType6 addCallToF">번호추가</button>
									<span><span class="vMiddle">*</span> 중복번호는 한번만 발송됩니다.</span>
								</div>
								<div class="receipt_num_midde">
									<div class="listType list01 callList_box" id="callList_box">
										<div class="list_table list_head">
											<div class="cb_wrap">
												<label for="" 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 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="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="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>
				</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>
			<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>
							<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>
</form>

<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>
	
<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="goToCustomForm" id="goToCustomForm" method="post" action="/web/mjon/custom/selectMsgCustomView.do">
	<input type="hidden" id="pageType3" name="pageType" value="msgcampain"/> 
</form>

<form name="testSendForm" id="testSendForm" method="post">
	<input type="hidden" name="msgKind" value="C"/> 
	<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>
