File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<%@ 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="https://oss.sheetjs.com/sheetjs/xlsx.full.min.js"></script>
<script type="text/javascript" src="<c:url value='/js/txtSpecialReplace.js?date=202304250003'/>"></script>
<script type="text/javascript">
var tableErrorData = [];
var totRows = 0; // 좌측 받는사람 총 갯수
/* 파일등록 */
var _fileIdx = 0;
var _fileForm2 = new Array();
var fileExt = ""; // 첨부파일 확장자
var excelAddr = []; //엑셀 불러오기에서 내용 저장하는 배열 변수
function handleFileUpload(files,obj) //업로드 function
{
_fileForm2 = []; //form file data 초기화
var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB)
var limitcount = 1;//$("input[name=limitcount]").val()*1 ;
var fileNece = true; //첨부파일필수
if($('#fileNece').length > 0){
if('N'==$('#fileNece').val()){
fileNece = false;
}
}
//엑셀 및 TXT 파일만 업로드 할수 있도록 체크하기
var fileNm = files[0].name;
fileExt = fileNm.split('.').pop().toLowerCase();
if($.inArray(fileExt, ['txt','xls','xlsx']) == -1) {
alert('txt, xls, xlsx 파일만 업로드 할수 있습니다.');
return;
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
//드래그앤 드롭 엑셀 및 텍스트 파일 서버 전송 함수
function sendFileToServer(formData, obj , fileObj, _fileIdx)
{
var msg;
msg = "해당 첨부파일을 수정하시겠습니까?";
var data = new FormData(document.msgForm);
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file0", obj.fileObj);
});
var url = "";
if(fileExt == "xls" || fileExt == "xlsx"){
url = "/web/mjon/msgdata/sendExelFilePhoneNumAjax.do";
}else if(fileExt = "txt"){
url = "/web/mjon/msgdata/sendTxtFilePhoneNumAjax.do";
}else{
alert('txt, xls, xlsx 파일만 업로드 할수 있습니다.');
return;
}
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: true,
processData: false,
contentType: false,
cache: false,
//timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
if(returnData.success){
var data = returnData.data;
var message = returnData.message;
if(data != null){
var arr = []; // 넘어온 데이터를 받은 배열 변수
$.each(data, function(i, item){
arr.push({phone: item.phone, name: item.name, rep1: item.replace1, rep2: item.replace2, rep3: item.replace3, rep4: item.replace4});
});
addPhoneInfo(arr); // 연락처를 처리해줄 함수 호출
}
//메세지가 있는 경우 알려주기
if(message != '' && message != null) {
alert(returnData.message);
}
}else{
//첨부파일 오류시 배열 초기화
_fileForm2=[];
_fileIdx = 0; //form file idx 초기화
alert(returnData.message);
return;
}
} 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 updateTotCnt(data){
var rowTotCnt = data;
$("#rowTotCnt").text(rowTotCnt);
}
function addPhoneInfo(data){
if(data == null){
alert("연락처 정보가 없습니다.");
return;
}else{
var idx = 0;
var newData = data;//중복 연락처는 하나만 남기고 모두 제거
var recTableData = tableR.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});
}
}
//받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다.
for(var i=0; i < newData.length; i++){
tableData.push({phone: removeDash(newData[i].phone.trim()) , name: newData[i].name, rep1: newData[i].rep1, rep2: newData[i].rep2, rep3: newData[i].rep3, rep4: newData[i].rep4});
}
var temp = tableData.length;
//기존 수신 리스트를 지워준 후 신규 전체 리스트를 추가해준다.
tableR.clearData(); //기존 받는사람 목록을 삭제.
tableR.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
_fileForm2 = []; //form file data 초기화
_fileIdx = 0; //form file idx 초기화
totRows = tableR.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){
fnReplCellExcel();
}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;
}
//seetJs 엑셀 파일 불러오기
function excelExport(event){
var data = new FormData(document.excelForm);
data.append("file0", $('#excelFile').prop('files')[0]);
var fileValue = $("#excelFile").val().split("\\");
var fileName = fileValue[fileValue.length-1];
var fileExt = fileName.split('.').pop().toLowerCase();
if(fileExt.length > 0){//파일 정보가 넘어오는 경우만 처리
if($.inArray(fileExt, ['txt','xls','xlsx']) == -1) {
alert('txt, xls, xlsx 파일만 업로드 할수 있습니다.');
return false;
}
var url = "";
if(fileExt == "xls" || fileExt == "xlsx"){
url = "/web/mjon/msgdata/sendExelFilePhoneNumAjax.do";
}else if(fileExt = "txt"){
url = "/web/mjon/msgdata/sendTxtFilePhoneNumAjax.do";
}else{
alert('txt, xls, xlsx 파일만 업로드 할수 있습니다.');
return;
}
//엑셀 데이터 변수에 자료가 있으면 지워준다.
if(excelAddr.length > 0){
excelAddr = [];
}
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: true,
processData: false,
contentType: false,
cache: false,
//timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
if(returnData.success){
var data = returnData.data;
var message = returnData.message;
if(message != '' ){
alert(returnData.message);
}
if(data != null){
$.each(data, function(i, item){
if(checkHpNum(item.phone)){
excelAddr.push({phone: item.phone, name: item.name, rep1: item.replace1, rep2: item.replace2, rep3: item.replace3, rep4: item.replace4});
}/* else{
alert("엑셀 파일 데이터의 형식이 맞지 않는 부분이 있습니다.");
excelAddr = []; //엑셀 데이터 저장 변수 초기화
$("#excelFile").val(""); //첨부파일 input 초기화
$("#excelNm").val(""); // 첨부파일 명 초기화
fileName = "";
return false;
} */
});
}
}else{
alert(returnData.message);
// alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
excelAddr = []; //엑셀 데이터 저장 변수 초기화
$("#excelFile").val(""); //첨부파일 input 초기화
$("#excelNm").val(""); // 첨부파일 명 초기화
fileName = "";
return;
}
} else if(status== 'fail'){
alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
console.log("status : fail ~");
}
},
error: function (e) {
alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
console.log("ERROR : ", e);
},
beforeSend : function(xmlHttpRequest) {
//로딩창 show
$('.loading_layer').addClass('active');
},
complete : function(xhr, textStatus) {
//로딩창 hide
$('.loading_layer').removeClass('active');
}
});
$("#excelFile").val("");
$("#excelNm").val(fileName);
}
}
//엑셀 불러오기 팝업의 추가 버튼 처리
$("#excelAdd").click(function(){
if(excelAddr.length > 0){
//첨부파일로 불러온 데이터를 받는사람 목록에 추가해 준다.
addPhoneInfo(excelAddr);
//첨부파일 초기화 시켜주기
$("#excelFile").val("");
$("#excelNm").val("");
}else{
alert("추가 엑셀 데이터가 없습니다.");
return false;
}
});
//첨부 이미지 정보 확인 처리 해주기(이미지 리사이징 전단계)
function imgResizeInfo(event){
var fileValue = $("#imgFile").val().split("\\");
var fileName = fileValue[fileValue.length-1];
var fileExt = fileName.split('.').pop().toLowerCase();
if(fileExt.length > 0){
if($.inArray(fileExt, ['jpg','jpeg']) == -1) {
alert('jpg, jpeg 파일만 업로드 할수 있습니다.');
return false;
}
$("#imgNm").val(fileName);
}
}
//첨부 이미지 파일 리사이징 처리 해주기
function imgExport(event){
var loginVO = '${LoginVO}';
if(loginVO == "" || loginVO == null){
alert("문자전송 그림 이미지 등록은 로그인 후 이용 가능합니다.");
return false;
}
var data = new FormData(document.imgForm);
data.append("file0", $('#imgFile').prop('files')[0]);
var fileValue = $("#imgFile").val().split("\\");
var fileName = fileValue[fileValue.length-1];
var fileExt = fileName.split('.').pop().toLowerCase();
if(fileExt.length > 0){
if($.inArray(fileExt, ['jpg','jpeg']) == -1) {
alert('jpg, jpeg 파일만 업로드 할수 있습니다.');
return false;
}
var url = "";
if(fileExt == "jpg" || fileExt == "jpeg"){
url = "/web/mjon/msgdata/insertAtchImageResizeAjax.do";
}else{
alert('jpg, jpeg 파일만 업로드 할수 있습니다.');
return;
}
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: true,
processData: false,
contentType: false,
cache: false,
//timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
var data = returnData.data;
var message = returnData.message;
var result = returnData.result;
if(result == "success"){
var fullPath = returnData.filefullPath;
var fileName = returnData.fileName;
var atchFileId = returnData.atchFileId;
var imgSrc = returnData.imgSrc;
var imgCnt = $("#imgCnt").val();
//현재 문자내용에 첨부된 이미지 갯수 체크
if(imgCnt >= 3){
alert("이미지는 3장만 선택할 수 있습니다.");
return false;
}
//내문서함 이미지 불러오는 방식과 동일하여 함수 호출 처리함.
myMsgImageControl(imgSrc, "edit_n", fileName, atchFileId);
var contents = $('#smsTxtArea').val();
//(contents);
totRows = tableR.getRows().length;
updateTotCnt(totRows); //전체 데이터 갯수 구하기
//일괄변환 문구 결제금액 처리
if(contents.indexOf("[*이름*]") > -1
|| contents.indexOf("[*1*]") > -1
|| contents.indexOf("[*2*]") > -1
|| contents.indexOf("[*3*]") > -1
|| contents.indexOf("[*4*]") > -1){
fnReplCell();
}else{
//결제금액 표시해주기
var totalPrice = totalPriceSum(totRows);
$('#totalPrice').text(totalPrice);
$('#txtReplYn').val("N");
}
alert(message);
}else if(result == "fail"){
alert(message);
return false;
}
} else if(status== 'fail'){
alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
console.log("status : fail ~");
}
},
error: function (e) {
alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
console.log("ERROR : ", e);
},
beforeSend : function(xmlHttpRequest) {
//로딩창 show
$('.loading_layer').addClass('active');
},
complete : function(xhr, textStatus) {
//로딩창 hide
$('.loading_layer').removeClass('active');
}
});
//첨부파일 이름 및 데이터 지워주기 - 완료 후 팝업이 자동으로 닫힘.
$("#imgFile").val("");
$("#imgNm").val("");
}
}
function txtExport(event){
var input = event.target;
var reader = new FileReader();
var file = input.files[0];
var txtAddr = [];
var fileNm = input.files[0].name;
var fileExt = fileNm.split('.').pop().toLowerCase();
if(fileExt != "txt"){
alert("TXT 파일만 등록 할 수 있습니다.");
return false;
}
if (!file) {
alert("첨부파일이 없습니다.");
return;
}
//txt 파일 읽어 오기
var arrSplitData = [];
reader.onload = function(e) {
fileData = e.target.result;
arrSplitData = fileData.split("\n");
for(var i=0; i < arrSplitData.length; i++){
var arrTemp = arrSplitData[i].split("\t");
txtAddr.push({phone: arrTemp[1].trim(), name: arrTemp[0].trim()});
}
//Tabulator에 데이터 입력해주기
addPhoneInfo(txtAddr);
};
reader.readAsText(file, 'UTF-8');
//첨부파일 초기화 시켜주기
$("#txtFile").val("");
}
$(document).ready(function (){
// Bline 확연 및 라디오 버튼 클릭 이벤트 추가
var blineCodeYn = $("#blineCode").val();
if(blineCodeYn != 'N' && blineCodeYn != ''){
$('input[name="send_adYn"]').val(['Y']);
$(".send_adYnN").css('display', 'none');
advMsgInsert();
}
$('.bottom_content .area_total_count').hide();
//미리보기 이미지 영역 숨김 처리
$('.preiew_img').hide();
$('.prePhoto').hide();
//최초 화면 문자열 길이 체크해주기
var strCon = $('#smsTxtArea').val();
fnByteString(strCon);
//일반문자, 광고문자 텍스트 내용 추가해주기
$('input[name=send_adYn]').change(function(){
advMsgInsert();
});
function advMsgInsert(){
var advStr = '<div class="ad_txt"><p>(광고)</p></div>';
var advDenyStr = '<div class="deny_txt"><p>무료거부 0808800858</p> </div>';
var preAdvStr = '<p class="ad_tit">(광고)</p>';
var preAdvDenyStr = '<p class="deny_receipt">무료거부 0808800858</p>';
//광고 및 무료수신거부 텍스트 추가
if ($('input[name=send_adYn]:checked').val() == 'Y'){
//문자 내용에 광고 문자 추가해주기
$(advStr).insertBefore('textarea[name=smsTxtArea]');
$(advDenyStr).insertBefore('div[name=afterDeny]');
//미리보기에 광고 문자 추가해주기
$(preAdvStr).insertBefore('.none_txt');
$(preAdvDenyStr).insertAfter('.realtime');
//$('#smsTxtArea').val(advStr + "\r\n" + contents + "\r\n" + advDenyStr);
}else{ //광고 및 무료수신거부 텍스트 삭제
//문자내용 광고문자 삭제하기
$('.ad_txt').remove();
$('.deny_txt').remove();
//미리보기 광고 문자 삭제하기
$('.ad_tit').remove();
$('.deny_receipt').remove();
}
//문자 바이트수 계산하기
fnByteString($('#smsTxtArea').val());
}
//문자 내용 입력시 바이트수 계산하기
$('#smsTxtArea').keyup(function(e){
var contents = $(this).val();
var adrYn = $("input[name=send_adYn]:checked").val();
if(adrYn == 'N'){
if((contents.indexOf("(광고)") > -1 && (contents.indexOf("무료거부") > -1 || contents.indexOf("무료 거부") > -1))
|| contents.indexOf("(광고)") > -1){
alert("광고 내용이 인식되어 광고 문자로 전환됩니다.");
$('#smsTxtArea').val(""); //입력 내용 지워주기
$('#send_adYnY').prop('checked', true);
//광고 상하단 내용 넣어주기
advMsgInsert();
}
fnByteString(contents);
}else{
fnByteString(contents);
}
});//문자 바이트수 계산하기 끝
//스프레드 시트 Tabulator 초기 셋팅
var tabledata = [];
//var selectRow;
//Tabulator AJAX Data Loading
tableR = new Tabulator(".callList_box", {
height:"255px",
width:"100%",
layout:"fitColumns",
//data:tabledata,
//autoColumns:true,
headerHozAlign:"center",
validationMode:"highlight",
//clipboard:false,
//clipboardCopySelector:"table",
//clipboardPasteAction:"insert", // insert, update, replace
placeholder:"복사(Ctrl+C)한 내용을 여기에 붙여넣기(Ctrl+V) 해주세요.", //fit columns to width of table (optional)
columns:[ //Define Table Columns
{formatter:"rowSelection", titleFormatter:"rowSelection",clipboard:false, hozAlign:"center", headerSort:false, cellClick:function(e, cell){
cell.getRow().toggleSelect();
}
},
{title:"이름", hozAlign:"center", field:"name", editor:"input", validator:["maxLength:12", "string"], cellEdited:function(cell){
//cell - cell component
fnReplCellExcel();
}},
{title:"휴대폰", hozAlign:"center", field:"phone", editor:"input", validator:["required","minLength:10", "maxLength:12"], cellEdited:function(cell){
//cell - cell component
fnDuplPhone();
}},
{title:"[*1*]", hozAlign:"center", field:"rep1", editor:"input", validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component
fnReplCellExcel();
}},
{title:"[*2*]", hozAlign:"center", field:"rep2", editor:"input", validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component
fnReplCellExcel();
}},
{title:"[*3*]", hozAlign:"center", field:"rep3", editor:"input", validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component
fnReplCellExcel();
}},
{title:"[*4*]", hozAlign:"center", field:"rep4", editor:"input", validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component
fnReplCellExcel();
}},
],
validationFailed:function(cell, value, parameters){ // 유효성 체크 함수
var valid = cell.isValid();
var fieldNm = cell.getField();
var cellVal = cell.getValue();
var returnVal = "";
if(!valid){
if(fieldNm == "name"){
alert("받는사람 이름은 최대 12글자까지만 입력 가능합니다.");
cell.setValue(strMaxLengthSubstring(cellVal, 11)); //스크립트 함수가 0부터 시작이므로 원하는 글자수 -1을 해줘야한다.
cell.clearValidation();
}else if(fieldNm == "phone"){
alert("휴대폰번호는 하이픈(-)을 제외한 숫자만 정확히 입력해 주세요.");
}else{
alert("치환문자를 정확히 입력해 주세요. 40글자 이내로 입력 가능합니다.");
cell.setValue(strMaxLengthSubstring(cellVal, 39));
cell.clearValidation();
}
//해당 셀 데이터 삭제
//cell.setValue("");
}
return value % parameters.phone;
},
});
//핸드폰 번호 Tabulator에서 수정시 중복 체크
function fnDuplPhone(){
var recTableData = tableR.getRows(); // 받는사람 리스트의 전체 목록을 저장
var tableData = [];
//기존 받는사람 리스트를 배열에 미리 담아둔다.
if(recTableData.length > 0){
for(var j=0; j < recTableData.length; j++){
var tmpPhone = recTableData[j].getData().phone.trim();
if(tmpPhone.length > 0){
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("동일한 휴대폰 번호가 받는사람 목록에 등록되어 있습니다. 중복 번호를 삭제하시겠습니까?")){
//수신목록에서 중복 휴대폰 번호 삭제해주기
tableR.clearData(); //기존 받는사람 목록을 삭제.
tableR.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
_fileForm2 = []; //form file data 초기화
_fileIdx = 0; //form file idx 초기화
}
}
totRows = tableR.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 = tableR.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});
}
}
if(realPhone.length > 0){
for(var j=0; j < realPhone.length; j++){
tableData.push({phone: removeDash(realPhone[j].phone) , name: realPhone[j].name, rep1: realPhone[j].rep1, rep2: realPhone[j].rep2, rep3: realPhone[j].rep3, rep4: realPhone[j].rep4});
}
}
//tableData.push(realPhone);
//중복 연락처 1개만 남기고 삭제하기
var removeDuplPhone = dupliPhoneData(tableData);
//수신자 리스트에 전화번호 추가해주기
//tableR.addData(removeDuplPhone);
tableR.setData(removeDuplPhone);
totRows = tableR.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){
fnReplCellExcel();
}else{
//결제 금액 구하기
totalPriceSum(totRows);
}
if (tableErrorData.length > 0) {
alert("올바르지 않은 휴대폰 번호가 "+ tableErrorData.length +" 건 있습니다.");
}
}
});
//tableR.setData(tabledata);
//받는사람 번호 버튼 클릭시 Tabulator에 데이터 넣어주기
$('.addCallToF').click(function(){
var recTableData = tableR.getRows(); // 받는사람 리스트의 전체 목록을 저장
var tableData = [];
//빈 Row 한줄을 상단에 먼저 추가해준다.
tableData.push({phone: ""});
//기존 받는사람 리스트를 배열에 미리 담아둔다.
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});
}
}
//연락처 추가해 주기
//addPhoneInfo(tabledata);
tableR.setData(tableData);
//전체 데이터 갯수 구하기
totRows = tableR.getRows().length;
updateTotCnt(totRows);
//결제 금액 구하기
totalPriceSum(totRows);
});
//받는사람 전체삭제 버튼 처리
$('.all_del').click(function(){
var data = tableR.getRows();
if(data == null || data == ""){
alert("받는사람을 추가해 주세요.");
return false;
}else{
if(confirm("받는사람 목록을 모두 삭제하시겠습니까?")){
tableR.clearData();
$("#rowTotCnt").text(0); //총건수 수정
$("#rowDupCnt").text(0); //중복건수 수정
totalPriceSum(0); //결제 금액 수정
}
}
});
// 받는사람 선택삭제 버튼 처리해주기
$('.select_del').click(function(){
if(tableR == null || tableR == ""){
alert("받는사람을 추가해 주세요.");
return false;
}
var selectedData = tableR.getSelectedRows();
if(selectedData == "" || selectedData == null){
alert("삭제할 연락처를 선택해주세요.");
return false;
}else{ // 선택한 Row 데이터 삭제하기
if(confirm("선택하신 받는 사람을 삭제하시겠습니까?")){
for(var i=0; i < selectedData.length; i++){
selectedData[i].delete();
}
totRows = tableR.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){
//변환단문 건수 Hidden 폼에 넣어주기//변환단문 건수 Hidden 폼에 넣어주기//변환단문 건수 Hidden 폼에 넣어주기//변환단문 건수 Hidden 폼에 넣어주기
fnReplCellExcel();
}else{
//결제 금액 구하기
totalPriceSum(totRows);
}
}
}
});
//받는사람 오류번호 삭제 처리해주기
$('.chkVali_del').click(function(){
//기존 연락처 모두 불러오기
var data = tableR.getRows();
var tableData = [];
var totLen = tableR.getRows().length;
var errCnt = 0;
if(totLen > 0){
if(confirm("올바르지 않은 연락처 정보를 삭제 하시겠습니까?")){
for(var i=0; i < totLen; i++){
var phone = data[i].getData().phone;
var valiCheck = checkHpNum(phone);
if(valiCheck){
tableData.push({phone: data[i].getData().phone.trim(), name: data[i].getData().name, rep1:data[i].getData().rep1, rep2:data[i].getData().rep2, rep3:data[i].getData().rep3, rep4:data[i].getData().rep4 });
}else{
errCnt++;
}
}
var removeDuplData = dupliPhoneData(tableData);
tableR.setData(removeDuplData);
//총 받는사람 수 계산
totRows = tableR.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){
fnReplCellExcel();
}else{
//결제 금액 구하기
totalPriceSum(totRows);
}
if(errCnt > 0){
alert(errCnt + " 건의 연락처를 삭제하였습니다.");
return false;
}else{
alert("오류가 있는 연락처가 없습니다.");
}
}
}else{
alert("연락처 정보를 입력해 주세요.");
return false;
}
});
$('.check_validity').click(function(){
var invalid = tableR.getInvalidCells(); //오류 데이터 체크
var dataLen = tableR.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;
}
}
alert(errMsg + "의 내용에 오류가 있습니다.");
return false;
}else{
alert("오류 데이터가 없습니다.");
return false;
}
}else{
alert("연락처를 입력해 주세요.");
return false;
}
});
//대량문자 발송 수신목록 엑셀 다운로드
$('.addExcelDw').click(function(){
var data = tableR.getRows();
if(data.length > 0){
//인터넷 익스플로러를 이용하는 경우 Tabulator의 엑셀다운로드가 지원되지 않아서 별도로 처리함.
var agent = navigator.userAgent.toLowerCase();
if ((navigator.appName == 'Netscape' && navigator.userAgent.search('Trident') != -1) || (agent.indexOf("msie") != -1)) {
//수신번호 리스트 체크하기
var numCnt = 0;
var nameList = []; //치환문자 이름
var phoneNum = []; //받는사람
var rep1List = []; //치환문자1
var rep2List = []; //치환문자2
var rep3List = []; //치환문자3
var rep4List = []; //치환문자4
var selectedData = tableR.getRows();
if(selectedData == "" || selectedData == null){
alert("받는사람 주소를 한 건 이상 입력해주세요.");
return false;
}else{ // 수신목록 엑셀 다운로드 하기
if(confirm("수신목록을 다운로드 하시겠습니까?")){
for(var i=0; i < selectedData.length; i++){
//일괄변환 문자에 콤마(,)가 들어가있으면 배열로 넘길때 문제가 발생하여 특수문자(§)로 치환하여 넘겨주도록 한다.
var name = tableR.getRows()[i].getData().name;
var phone = removeDash(tableR.getRows()[i].getData().phone);
var rep1 = tableR.getRows()[i].getData().rep1;
var rep2 = tableR.getRows()[i].getData().rep2;
var rep3 = tableR.getRows()[i].getData().rep3;
var rep4 = tableR.getRows()[i].getData().rep4;
if(phone == ""){
alert("수신 목록에 핸드폰 번호가 없는 항목이 있습니다.");
return false;
}else if(!checkHpNum(phone)){
alert("수신 목록에 잘 못된 핸드폰 번호가 있습니다. 핸드폰 번호 : " + phone + " 입니다.");
return false;
}else{
if(typeof(name) != 'undefined' && name != null){
nameList[i] = name.replaceAll(",","§");
}else{
nameList[i] = " ";
}
phoneNum[i] = phone;
if(typeof(rep1) != 'undefined' && rep1 != null){
rep1List[i] = rep1.replaceAll(",","§");
}else{
rep1List[i] = " ";
}
if(typeof(rep2) != 'undefined' && rep2 != null){
rep2List[i] = rep2.replaceAll(",","§");
}else{
rep2List[i] = " ";
}
if(typeof(rep3) != 'undefined' && rep3 != null){
rep3List[i] = rep3.replaceAll(",","§");
}else{
rep3List[i] = " ";
}
if(typeof(rep4) != 'undefined' && rep4 != null){
rep4List[i] = rep4.replaceAll(",","§");
}else{
rep4List[i] = " ";
}
}
}
}
var form = document.excelDownForm;
form.callToList.value = phoneNum; //수신자번호 리스트 저장해주기
form.nameList.value = nameList; //수신자 이름 리스트
form.rep1List.value = rep1List; //치환문자 1 리스트
form.rep2List.value = rep2List; //치환문자 2 리스트
form.rep3List.value = rep3List; //치환문자 3 리스트
form.rep4List.value = rep4List; //치환문자 4 리스트
form.action="/web/mjon/msgdata/recieveCallToListExcelDownAjax.do";
form.submit();
}
}else{
//Tabulator 엑셀 다운로드 실행
if(confirm("수신목록을 다운로드 하시겠습니까?")){
tableR.download("xlsx", "recieveAddr.xlsx", {sheetName:"recieveAddr"});
}
}
}else{
alert("입력된 연락처 정보가 없습니다.");
return false;
}
});
//받는사람 중복 삭제
$('.duple_del').click(function(){
//기존 연락처 모두 불러오기
var data = tableR.getRows();
var tableData = [];
var dpCnt = 0;
var totLen = tableR.getRows().length;
for(var i=0; i < totLen; i++){
tableData.push({phone: data[i].getData().phone.trim(), name: data[i].getData().name});
}
var removeDuplData = dupliPhoneData(tableData);
tableR.setData(removeDuplData);
//총 받는사람 수 계산
totRows = tableR.getRows().length;
updateTotCnt(totRows);
//결제 금액 구하기
totalPriceSum(totRows);
});
//파일업로드 드래그앤 드롭
var objDragAndDrop = $(".upload_area");
$(document).on("dragenter",".upload_area",function(e){
e.stopPropagation();
e.preventDefault();
//$(this).css('border', '2px solid #0B85A1');
});
$(document).on("dragover",".upload_area",function(e){
e.stopPropagation();
e.preventDefault();
});
$(document).on("drop",".upload_area",function(e){
//$(this).css('border', '2px dotted #0B85A1');
e.preventDefault();
var files = e.originalEvent.dataTransfer.files;
handleFileUpload(files,objDragAndDrop); //파일업로드
});
$(document).on('dragenter', function (e){
e.stopPropagation();
e.preventDefault();
});
$(document).on('dragover', function (e){
e.stopPropagation();
e.preventDefault();
//objDragAndDrop.css('border', '2px dotted #0B85A1');
});
$(document).on('drop', function (e){
e.stopPropagation();
e.preventDefault();
});
//파일 드래그앤드롭 종료
//엑섹불러오기 버튼 클릭시 파일 첨부 실행
$('.c3').click(function(){ // 엑셀파일 불러오기 선택 시
$("#excelFile").click();
});
//리사이즈 이미지 첨부 버튼 실행
$('.upImg').click(function(){ // 사용자 이미지 리사이징 불러오기
$("#imgFile").click();
});
//최근 전송내역 불러오기
$(document).on('click', '#latestMsgList', function (){
var login = '${LoginVO.id}';
if(login == "" || login == null){
alert("로그인 후 이용이 가능합니다");
return false;
}
var sendData = $(document.latestMsgForm).serializeArray();
$("#latestMsgArea").load("/web/mjon/msgdata/selectLatestMsgListAjax.do", sendData, function(response, status, xhr){
/* 주소록 대량등록, 주소롟 불러오기 팝업에 있는 테이블 스크롤바 꾸미기 */
$("#latestMsgArea").mCustomScrollbar({
axis: 'y',
scrollbarPosition: "outside",
theme: "dark",
autoHideScrollbar: false
});
});
});
//최근전송내역 팝업 선택추가 버튼 처리(체크내역 받는사람 리스트로 추가해주기)
$(document).on('click', '#latestAddPhone', function (){
var addPhoneList = []; //신규로 추가할 전화번호 저장변수
$("input:checkbox[name='latAddrChk']:checked").each(function(index){
var chkPhone = $(this).val();
addPhoneList.push({phone: removeDash(chkPhone.trim())});
});
//연락처 추가해 주기
addPhoneInfo(addPhoneList);
//중복연락처 제거
//var removeDuplData = dupliPhoneData(addPhoneList);
//받는사람 목록에 추가
//tableR.addData(removeDuplData);
//총 받는사람 수 계산
//totRows = tableR.getRows().length;
//updateTotCnt(totRows);
//결제 금액 구하기
//totalPriceSum(totRows);
});
//최근전송내역 팝업 선택 취소 버튼 처리
$(document).on('click', '#latestDelPhone', function (){
$("input[name=latAddrChk]").prop("checked", false);
});
//최근전송내역 팝업 삭제 버튼 처리
$(document).on('click', '#latestAddrDel', function (){
$(this).parent("#latestLi").remove();
});
//문자입력창의 첨부된 이미지 순서를 바꿀 때
$(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 = tableR.getRows().length;
updateTotCnt(totRows); //전체 데이터 갯수 구하기
//일괄변환 문구 결제금액 처리
if(contents.indexOf("[*이름*]") > -1
|| contents.indexOf("[*1*]") > -1
|| contents.indexOf("[*2*]") > -1
|| contents.indexOf("[*3*]") > -1
|| contents.indexOf("[*4*]") > -1){
fnReplCellExcel();
}else{
//결제금액 표시해주기
var totalPrice = totalPriceSum(totRows);
$('#totalPrice').text(totalPrice);
$('#txtReplYn').val("N");
}
var sendOfT=$('.send_top').offset().top;
$('html,body').stop().animate({'scrollTop':sendOfT-60},250);
/* //결제 금액 구하기
totalPriceSum(totRows); */
});
//그림문자 이미지 삭제 처리 - 동적으로 추가한 객체는 on 함수로 불러올 수 있다.
$(document).on('click', '.file_close', function(){
var delImgPath = ""; //삭제하려는 이미지 경로 받아오기
var index = $(this).parent().index(); // 현재 선택 된 객체 인덱스 번호 받아오기
var imgCnt = $("#imgCnt").val(); // 현재 첨부된 이미지의 갯수
//선택한 태그의 부모 이미지 li 객체 삭제
$(this).parent(".delLi").remove();
//미리보기 화면에서의 이미지 객체 삭제
//삭제하려는 이미지 경로 받아오기
delImgPath = $('.preBoxF').eq(index).find("img").attr("src");
$('.preBoxF').eq(index).remove();
// 삭제한 이미지 경로 배열에서 삭제해 주기
for(var i=0; i < imgFilePath.length; i++){
if(imgFilePath[i] == delImgPath){
imgFilePath.splice(i, 1); //이미지 경로 삭제
imgFileId.splice(i, 1); //이미지 아이디 삭제 - 내 문자 보관함 저장용으로 사용
i--;
}
}
//imgCnt--;
$("#imgCnt").val(Number(imgCnt) - 1);
//미리보기 포토 1,2,3 번 번호 표시 변경
$('.photo_num_02').hide();
$('.photo_num_03').hide();
if(imgCnt > 2){
$('.photo_num_01').show();
$('.photo_num_02').show();
}else if(imgCnt > 1){
$('.photo_num_01').show();
}else{
//그림을 모두 삭제 했을때 단문으로 변경
$('.preShort').show();
$('.prePhoto').hide();
$('.msg_com').removeClass("msg_photo");
$('.msg_com').addClass("msg_short");
$('.put_left').removeClass("photo");
$('#msgType').val("4"); // 메세지 타입 설정
var contents = $('#smsTxtArea').val();
fnByteString(contents);
}
//수신목록 전체 데이터 갯수 구하기
updateTotCnt(totRows);
//일괄변환 문구 결제금액 처리
if(content.indexOf("[*이름*]") > -1
|| content.indexOf("[*1*]") > -1
|| content.indexOf("[*2*]") > -1
|| content.indexOf("[*3*]") > -1
|| content.indexOf("[*4*]") > -1){
fnReplCell();
}else{
//결제금액 표시해주기
var totalPrice = totalPriceSum(totRows);
$('#totalPrice').text(totalPrice);
$('#txtReplYn').val("N");
}
var scrollHei = $(".mCustomScrollBox").height();
if(scrollHei > 488) {
$(".img_box").removeClass("on_scroll_img");
}
});
// 초기화 버튼 처리
$('.btnReset').click(function(){
//일반문자 라이오 선택해 주기
$("#send_adYnN").prop("checked", true);
// Bline 확연 및 라디오 버튼 클릭 이벤트 추가
var blineCodeYn = $("#blineCode").val();
if(blineCodeYn != 'N' && blineCodeYn != ''){
$('input[name="send_adYn"]').val(['Y']);
$(".send_adYnN").css('display', 'none');
}
$('.delLi').each(function(){
$(this).remove();
});
$('.preBoxF').each(function(){
$(this).remove();
});
//그림 카운트 초기화
$('#imgCnt').val(0);
//그림을 모두 삭제 했을때 단문으로 변경
$('.preShort').show();
$('.prePhoto').hide();
$('.msg_com').removeClass("msg_photo");
$('.msg_com').addClass("msg_short");
$('#msgType').val("4"); // 메세지 타입 설정
//메세지 내용 초기화
$('#smsTxtArea').val("");
fnByteString("");
});
// 동적으로 추가해주기 때문에 on 사용
$(document).on('click', '.letterMsg', function(){ //문자 템플릿 선택시 상단 문자 내용에 입력해주기
// 클릭 시 조회수 증가 로직
var letterId = $(this).attr('id');
var url = "/web/mjon/msgdata/updateSmsTemplateCntAjax.do";
$.ajax({
type: "POST",
url: url,
data: {'letterId':letterId},
dataType:'json',
async: false,
cache: false,
success: function (returnData, status) {
console.log("status : ", status);
},
error: function (e) {console.log("ERROR : ", e); }
});
// 클릭 시 조회수 증가 로직 끝
/* var smsTxtArea = $(this).find('.msg_text').text(); */
var smsTxtArea = $(this).find('.msg_text').html();
smsTxtArea = smsTxtArea.replace(/(<br>|<br\/>|<br \/>)/g, '\n');
$('#smsTxtArea').val("");
$('#smsTxtArea').val(smsTxtArea);
fnByteString(smsTxtArea);
var sendOfT=$('.send_top').offset().top;
$('html,body').stop().animate({'scrollTop':sendOfT-60},250);
});
// 동적으로 추가해주기 때문에 on 사용
$(document).on('click', '.btnSearchF', function(){ // 검색 기능 실행
var formL = document.letterForm;
var formM = document.myMsgForm;
formL.categoryCode.value = ""; //해시태그 검색 시 카테고리 제거
formL.upperCateNo.value = ""; //해시태그 검색 시 카테고리 제거
/* if(form.searchKeyword.value == ""){
alert("검색어를 입력해 주세요.");
return false;
} */
var tabIndex = $(".selectedTab").children(".active").index();
//문자 리스트 불러오기
if(tabIndex == 0) {
formL.letterType.value="S";
fnLetterListAjax(1);
}
//그림 문자 리스트 불러오기
if(tabIndex == 1) {
formL.letterType.value="P";
fnPhotoListAjax(1);
}
//내문자함 리스트 불러오기
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.letterType.value = "S";
form.categoryCode.value = "";
form.hashTag.value = "";
form.pageIndex.value = 1;
//문자 리스트 불러오기
fnLetterListAjax(1);
});
$('.tDep1_letType').click(function(){ // 단문, 장문 선택 시 옵션처리
var letterType = $(this).find('.on').attr("value");
var form = document.letterForm;
form.letterType.value = letterType;
//문자 리스트 불러오기
fnLetterListAjax(1);
});
$('.tDep1_cateCode').click(function(){ // 카테고리 선택 시 옵션 처리
var cateCode = $(this).find('.on').attr("value");
var form = document.letterForm;
if(cateCode == "all"){ //전체 선택시
cateCode = "";
} else {
//카테고리 코드 클릭 시 해쉬태그 초기화 후 전체 선택
form.hashTag.value="";
$('.tDep1_hashTag').find('.on').removeClass('on');
$('.tDep1_hashTag').find('.hashAll').addClass('on');
}
form.upperCateNo.value = "";
form.categoryCode.value = cateCode;
form.pageIndex.value = 1;
//카테고리 클릭 시 검색자 초기화
form.searchKeyword.value = "";
//문자 리스트 불러오기
fnLetterListAjax(1);
});
$('.tDep1_threeCateCode').click(function(){ // 하위 카테고리 선택 시 문자샘플 조회
var cateCode = $(this).find('.on').attr("value");
var form = document.letterForm;
var upperCateNo = $(this).siblings('div').find('.on').attr('value');
form.upperCateNo.value = upperCateNo;
form.categoryCode.value=cateCode;
//해쉬태그 검색자 초기화
form.searchKeyword.value = "";
form.pageIndex.value = 1;
//문자 리스트 불러오기
fnLetterListAjax(1);
});
$('.tDep1_hashTag').click(function(){ // 해시 태그 선택 시 옵션 처리
var hashTag = $(this).find('.on').attr("value");
var form = document.letterForm;
//해쉬태그 클릭 시 카테고리코드 초기화 후 전체 선택
form.categoryCode.value="";
$('.tDep1_cateCode').find('.on').removeClass('on');
$('.tDep1_cateCode').find('.cateAll').addClass('on');
//해쉬태그 클릭 시 검색자 초기화
form.searchKeyword.value = "";
form.hashTag.value = hashTag;
form.pageIndex.value = 1;
//문자 리스트 불러오기
fnLetterListAjax(1);
});
/*
그림문자 탭 옵션 선택시 사용
*/
$('.tDep2_mType').click(function(){ // 전체,기업, 개인 선택 옵션 처리
var mType = $(this).find('.on').text();
var form = document.letterForm;
if(mType == "전체"){
form.memberType.value = "";
}else if(mType == "기업"){
form.memberType.value = "B";
}else{
form.memberType.value = "P";
}
//문자 리스트 불러오기
form.letterType.value = "P";
form.categoryCode.value = "";
form.hashTag.value = "";
form.pageIndex.value = 1;
fnPhotoListAjax(1);
});
$('.tDep2_letType').click(function(){ // 그림문자 선택
var letterType = $(this).find('.on').attr("value");
var form = document.letterForm;
form.letterType.value = 'P';
//문자 리스트 불러오기
fnPhotoListAjax(1);
});
$('.tDep2_cateCode').click(function(){ // 그림 문자 카테고리 선택 시 옵션 처리
var cateCode = $(this).find('.on').attr("value");
var form = document.letterForm;
if(cateCode == "all"){ //전체 선택시
cateCode = "";
} else {
//카테고리 코드 클릭 시 해쉬태그 초기화 후 전체 선택
form.hashTag.value="";
$('.tDep2_hashTag').find('.on').removeClass('on');
$('.tDep2_hashTag').find('.hashAll').addClass('on');
}
form.upperCateNo.value = "";
form.categoryCode.value = cateCode;
form.pageIndex.value = 1;
//카테고리 클릭 시 검색자 초기화
form.searchKeyword.value = "";
//문자 리스트 불러오기
fnPhotoListAjax(1);
});
$('.tDep2_threeCateCode').click(function(){ // 하위 카테고리 선택 시 문자샘플 조회
var cateCode = $(this).find('.on').attr("value");
var form = document.letterForm;
var upperCateNo = $(this).siblings('div').find('.on').attr('value');
form.upperCateNo.value = upperCateNo;
form.categoryCode.value=cateCode;
//해쉬태그 검색자 초기화
form.searchKeyword.value = "";
form.pageIndex.value = 1;
//그림문자 리스트 불러오기
fnPhotoListAjax(1);
});
$('.tDep2_hashTag').click(function(){ // 그림문자 해시 태그 선택 시 옵션 처리
var hashTag = $(this).find('.on').attr("value");
var form = document.letterForm;
//해쉬태그 클릭 시 카테고리코드 초기화 후 전체 선택
form.categoryCode.value="";
$('.tDep2_cateCode').find('.on').removeClass('on');
$('.tDep2_cateCode').find('.cateAll').addClass('on');
//해쉬태그 클릭 시 검색자 초기화
form.searchKeyword.value = "";
form.hashTag.value = hashTag;
form.pageIndex.value = 1;
//문자 리스트 불러오기
fnPhotoListAjax(1);
});
$(".fontPlus").click(function () {
var currentSize = $(".preview_auto").css("fontSize");
var size = parseInt(currentSize, 10) * 1.2;
var unit = currentSize.slice(-2);
if(size > 65){
return false;
}
$(".preview_auto").css("fontSize", size+unit);
});
$(".fontMinus").click(function () {
var currentSize = $(".preview_auto").css("fontSize");
var size = parseInt(currentSize, 10) / 1.2;
var unit = currentSize.slice(-2);
if(size < 10){
return false;
}
$(".preview_auto").css("fontSize", size+unit);
});
//즉시, 예약 선택시 날짜 영역 초기 표시
var reYn = $("input[name=reserYn]:checked").val();
if(reYn == "N"){
$('.rev_selected').hide();
}else{
$('.rev_selected').show();
}
//즉시 발송 라디오 버튼 선택시 숨김처리
$("#reserYnN").on('click', function(){
$('.rev_selected').hide();
$('.send_rev .send_content').css('padding-bottom','108px');
$('.send_btn .btnType:first-child').html('발송하기');
});
//예약 발송 라디오 버튼 선택시 숨김 해제처리
$("#reserYnY").on('click', function(){
$('.rev_selected').show();
$('.send_rev .send_content').css('padding-bottom','0');
$('.send_btn .btnType:first-child').html('예약하기');
});
});
//문자 바이트수 계산하기 함수
function fnByteString(contents){
var totalByte = 0;
//var content = contents;
var adverYn = $("input[name='send_adYn']:checked").val();
var adTxtLeng = 0;
var denyTxtLeng = 0;
var adverTxt = $('.ad_txt').html();
var denyTxt = $('.deny_txt').html();
//광고문자 상단 문구 줄바꿈 처리하기(문자길이 바이트수 계산을 위해서)
if(typeof adverTxt !='undefined' && adverTxt != null){
adverTxt = adverTxt.replaceAll("<p>","");
adverTxt = adverTxt.replaceAll("</p>","");
adTxtLeng = conByteLeng(adverTxt);
}
//광고문자 하단 문구 줄바꿈 처리하기(문자길이 바이트수 계산을 위해서)
if(typeof denyTxt !='undefined' && denyTxt != null){
denyTxt = denyTxt.replaceAll("<p>","\n");
denyTxt = denyTxt.replaceAll("</p>","");
denyTxtLeng = conByteLeng(denyTxt);
}
$('#msgLeng').html("");
$('#limitLeng').html("");
var conLeng = conByteLeng(contents); // 내용 문자 입력 바이트 수 계산하기
//일반문자, 광고문자에 따른 문자 길이 변경해주기
if(adverYn == "N"){
$('#msgLeng').text(conLeng);
//문자 길이 변수에 저장해주기
$('#smsLen').val(conLeng);
}else{
conLeng = adTxtLeng + conLeng + denyTxtLeng; // 상단 광고 텍스트 , 하단 080 문자내용 길이 더해주기
$('#msgLeng').text(conLeng);
//문자 길이 변수에 저장해주기
$('#smsLen').val(conLeng);
}
var photoSts = $('.delLi').length;
if(photoSts > 0){
$('#msgLeng').html(conLeng + " / ");
$('#limitLeng').html("2000");
$('.msg_com').html("그림");
$('#msgType').val("6"); // 메세지 타입 설정
$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
$('.put_left').removeClass("short"); //내용 입력 박스 클래스 삭제
$('.msg_com').removeClass("msg_long"); //장문 클래스 삭제하고
$('.put_left').removeClass("long"); //내용 입력 박스 클래스 삭제
$('.msg_com').addClass("msg_photo"); // 그림 클래스 삽입
$('.put_left').addClass("photo"); // 내용 입력 박스에 클래스 삽입
$('.put_left').css("display","block"); // 내용 입력 박스에 클래스 삽입
$('.msg_title').addClass('active');
//document.getElementById("mmsSubject").disabled = false;
}else{
if(conLeng > 90){
$('#msgLeng').html(conLeng + " / ");
$('#limitLeng').html("2000");
$('.msg_com').html("장문");
$('#msgType').val("6"); // 메세지 타입 설정
$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
$('.put_left').removeClass("short"); //내용 입력 박스 클래스 삭제
$('.msg_com').addClass("msg_long"); // 장문 클래스 삽입
$('.put_left').addClass("long"); // 내용 입력 박스에 클래스 삽입
$('.msg_title').addClass('active');
//document.getElementById("mmsSubject").disabled = false;
}else{
$('#msgLeng').html(conLeng + " / ");
$('#limitLeng').html("90");
$('.msg_com').html("단문");
$('#msgType').val("4"); // 메세지 타입 설정
$('.msg_com').removeClass("msg_long"); //단문 클래스 삭제하고
$('.put_left').removeClass("long"); //내용 입력 박스 클래스 삭제
$('.msg_com').addClass("msg_short"); // 장문 클래스 삽입
$('.put_left').addClass("short"); // 내용 입력 박스에 클래스 삽입
$('.msg_title, .title_wrap .textbox').removeClass('active');
$('#mmsSubject').val("");
$('#title_y').prop('checked',false);
$('#title_n').prop('checked',true);
//제목 비활성화로 내용 지워주기
/* $('#mmsSubject').val("");
document.getElementById("mmsSubject").disabled = true; */
}
}
// 미리보기 데이터 입력해 주기 , 줄바꿈 문자 변환해주기
//var repContent = "";
//repContent = content.replace(/(?:\r\n|\r|\n)/g, '<br/>');
if(conLeng > 0){
$('.none_txt').text("");
}else{
$('.none_txt').text("내용을 입력해주세요.");
}
$('.realtime').text(contents);
// 2000byte 초과시 메세지 알림
if(conLeng > 2000){
//2000바이트 초과시 문자열 잘라서 보여주기
var subUnderStr = strUnderLineSubstring(contents, 2000);
$('#smsTxtArea').val(subUnderStr);
//문자 바이트수 수정해주기
$('#msgLeng').text(conByteLeng(subUnderStr));
//문자 길이 변수에 저장해주기
$('#smsLen').val(conByteLeng(subUnderStr));
alert("문자 내용은 2000byte를 넘을 수 없습니다.");
return false;
}
//전체 데이터 갯수 구하기
updateTotCnt(totRows);
//일괄변환 문구 결제금액 처리
if(contents.indexOf("[*이름*]") > -1
|| contents.indexOf("[*1*]") > -1
|| contents.indexOf("[*2*]") > -1
|| contents.indexOf("[*3*]") > -1
|| contents.indexOf("[*4*]") > -1){
fnReplCellExcel();
}else{
var totalPrice = totalPriceSum(totRows);
$('#totalPrice').text(totalPrice);
}
}
function openPhotoEditor() {
var imgCnt = $("#imgCnt").val();
if(imgCnt >= 3) {
alert("메시지에 첨부할 수 있는 이미지는 최대 3장입니다.");
return;
}
//만들려는 팝업의 크기
var popup_wid = '1100';
var popup_ht = '851';
//중앙 정렬을 위해 윈도우 스크린의 width,height 구하는 변수 만듦
var popup_left = (window.screen.width / 2) - (popup_wid / 2);
var popup_top =(window.screen.height / 2) - (popup_ht / 2);
window.open('<c:url value='/web/mjon/msgdata/openImageEditorPopup.do'/>', 'a', 'width=' + popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top + ', scrollbar=no' );
}
function imageControl(obj, editYn, imageName, imgId) {
var imgCnt = $("#imgCnt").val(); // 현재 페이지에 첨부된 이미지 갯수
var imgSrc = obj.attr("src");
if(imgCnt >= 3){
alert("이미지는 3장만 선택할 수 있습니다.");
return false;
}
$('.preShort').hide();
$('.prePhoto').show();
if($('.msg_com').hasClass("msg_short") === true){
$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
$('.msg_com').addClass("msg_photo"); // 그림문자용 클래스 삽입
$('.put_left').removeClass("short");
$('.put_left').addClass("photo");
$('.msg_com').html("그림");
$('#msgType').val("6"); // 메세지 타입 설정
//제목 입력 항목 활성화
//document.getElementById("mmsSubject").disabled = false;
}else{
$('.msg_com').removeClass("msg_long"); //장문 클래스 삭제하고
$('.msg_com').addClass("msg_photo"); // 그림문자용 클래스 삽입
$('.put_left').removeClass("long");
$('.put_left').addClass("photo");
$('.msg_com').html("그림");
$('#msgType').val("6"); // 메세지 타입 설정
//제목 입력 항목 활성화
//document.getElementById("mmsSubject").disabled = false;
}
//이미지 카운트 증가시키기
//imgCnt ++;
$("#imgCnt").val(Number(imgCnt)+1);
//문자 내용 상단에 이미지 이름 영역 객체 추가해주기
var imgPath = '<img src="' + imgSrc + '" class="thumb_img '+ editYn +'" alt="thumb1"/>';
var liPath = '<li class="delLi '+imageName+'" id="delLi'+ imgCnt +'">'
+ '<div>'+ imgPath+ '</div>'
+ '<button type="button" class="file_close"><img src="/publish/images/content/thumb_del.png" alt="첨부파일 삭제"></button>'
+ '<button type="button" class="file_close_on"><img src="/publish/images/content/thumb_del_on.png" alt="첨부파일 삭제"></button>'
+ '</li>';
/* "<li class=\"delLi\"><p>" + imgPath + "</p><button type=\"button\" class=\"file_close\"><img class=\"delImg\" src=\"/publish/images/content/file_close.png\" alt=\"첨부파일 삭제\"></button></li>" */
$('.liOnImg').append(liPath);
//미리보기 보여주기
$('.preiew_img').show();
var imgHtml = "";
var imgPath = "<div class=\"img_box preBoxF\" id=preBoxF"+ imgCnt +"><img src=\"" + imgSrc + "\" /></div>";
if($("#imgCnt").val() == 1){
$('.preViewShort').append(imgPath);
$('.photo_num_01').show();
$('.photo_num_02').hide();
$('.photo_num_03').hide();
//$(".thumb_wrap li:eq(0)").addClass("on");
}else if($("#imgCnt").val() == 2){
$('.preViewShort').append(imgPath);
$('.photo_num_02').show();
$(".thumb_wrap li").removeClass("on");
//$(".thumb_wrap li:eq(1)").addClass("on");
}else if($("#imgCnt").val() == 3){
$('.preViewShort').append(imgPath);
$('.photo_num_03').show();
$(".thumb_wrap li").removeClass("on");
//$(".thumb_wrap li:eq(2)").addClass("on");
}
// 배열에 선택한 이미지 경로 저장해주기
imgFilePath.push(imgSrc);
// 배열에 선택한 이미지 아이디 저장해주기 - 내 문자 보관함 저장용으로 사용
if(typeof(imgId) != 'undefined' && imgId != null && editYn != 'edit_y'){
imgFileId.push(imgId);
}
//문자 길이 및 타입 변경해주기
var contents = $('#smsTxtArea').val();
fnByteString(contents);
var scrollHei = $(".mCustomScrollBox").height();
if(scrollHei > 488) {
$(".img_box").addClass("on_scroll_img");
}
}
//그림샘플 이미지 선택시 문자 내용에 입력 처리
function myMsgImageControl(imgSrc, editYn, imageName, imgId) {
var imgCnt = $("#imgCnt").val(); // 현재 페이지에 첨부된 이미지 갯수
var imgSrc = imgSrc;
if(imgCnt >= 3){
alert("이미지는 3장만 선택할 수 있습니다.");
return false;
}
$('.preShort').hide();
$('.prePhoto').show();
if($('.msg_com').hasClass("msg_short") === true){
$('.msg_com').removeClass("msg_short"); //단문 클래스 삭제하고
$('.msg_com').addClass("msg_photo"); // 그림문자용 클래스 삽입
$('.put_left').removeClass("short");
$('.put_left').addClass("photo");
$('.msg_com').html("그림");
$('#msgType').val("6"); // 메세지 타입 설정
//제목 입력 항목 활성화
//document.getElementById("mmsSubject").disabled = false;
}else{
$('.msg_com').removeClass("msg_long"); //장문 클래스 삭제하고
$('.msg_com').addClass("msg_photo"); // 그림문자용 클래스 삽입
$('.put_left').removeClass("long");
$('.put_left').addClass("photo");
$('.msg_com').html("그림");
$('#msgType').val("6"); // 메세지 타입 설정
//제목 입력 항목 활성화
//document.getElementById("mmsSubject").disabled = false;
}
//이미지 카운트 증가시키기
//imgCnt ++;
$("#imgCnt").val(Number(imgCnt)+1);
//문자 내용 상단에 이미지 이름 영역 객체 추가해주기
var imgPath = '<img src="' + imgSrc + '" class="thumb_img '+ editYn +'" alt="thumb1"/>';
var liPath = '<li class="delLi '+imageName+'" id="delLi'+ imgCnt +'">'
+ '<div>'+ imgPath+ '</div>'
+ '<button type="button" class="file_close"><img src="/publish/images/content/thumb_del.png" alt="첨부파일 삭제"></button>'
+ '<button type="button" class="file_close_on"><img src="/publish/images/content/thumb_del_on.png" alt="첨부파일 삭제"></button>'
+ '</li>';
/* "<li class=\"delLi\"><p>" + imgPath + "</p><button type=\"button\" class=\"file_close\"><img class=\"delImg\" src=\"/publish/images/content/file_close.png\" alt=\"첨부파일 삭제\"></button></li>" */
$('.liOnImg').append(liPath);
//미리보기 보여주기
$('.preiew_img').show();
var imgHtml = "";
var imgPath = "<div class=\"img_box preBoxF\" id=preBoxF"+ imgCnt +"><img src=\"" + imgSrc + "\" /></div>";
if($("#imgCnt").val() == 1){
$('.preViewShort').append(imgPath);
$('.photo_num_01').show();
$('.photo_num_02').hide();
$('.photo_num_03').hide();
//$(".thumb_wrap li:eq(0)").addClass("on");
}else if($("#imgCnt").val() == 2){
$('.preViewShort').append(imgPath);
$('.photo_num_02').show();
$(".thumb_wrap li").removeClass("on");
//$(".thumb_wrap li:eq(1)").addClass("on");
}else if($("#imgCnt").val() == 3){
$('.preViewShort').append(imgPath);
$('.photo_num_03').show();
$(".thumb_wrap li").removeClass("on");
//$(".thumb_wrap li:eq(2)").addClass("on");
}
// 배열에 선택한 이미지 경로 저장해주기
imgFilePath.push(imgSrc);
// 배열에 선택한 이미지 아이디 저장해주기 - 내 문자 보관함 저장용으로 사용
if(typeof(imgId) != 'undefined' && imgId != null){
imgFileId.push(imgId);
}
//문자 길이 및 타입 변경해주기
var contents = $('#smsTxtArea').val();
fnByteString(contents);
var scrollHei = $(".mCustomScrollBox").height();
if(scrollHei > 488) {
$(".img_box").addClass("on_scroll_img");
}
}
$(document).on('click', '.symbolButton, .changeWord', function (){
//var smsTxtArea = $('#smsTxtArea').val();
//$('#smsTxtArea').val(smsTxtArea + $(this).attr("value"));
// 커서 위치에 삽입
setCursorInsertText("smsTxtArea", $(this).attr("value"));
fnByteString($('#smsTxtArea').val());
});
//최초 문자샘플 탭 리스트 데이터 불러오기
//fnLetterListAjax();
$(document).on('click', '#recommBtn', function(){
var recommId = $('#recommId').val();
if(recommId == ''){
alert("추천인 ID를 입력해 주세요.");
return false;
}
var data = new FormData(document.msgForm);
var url = "/web/mjon/msgdata/selectRecommIdCheckAjax.do";
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
//timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
if(returnData.status == "success"){
alert("추천인 아이디가 확인 되었습니다.");
return false;
}else{
alert("존재하지 않는 추천인 아이디 입니다.");
return false;
}
} else if(status== 'fail'){
alert("추천인 확인에 실패하였습니다. !!");
}
},
error: function (e) { alert("추천인 확인에 실패하였습니다."); console.log("ERROR : ", e); }
});
});
//내문자함 선택시 저장된 내용 문자 입력영역에 처리해주기
function fnMyMsgAdd(msgId){
var form = document.addMyMsgForm;
form.msgId.value = msgId;
form.pageType.value = "myMsg";
var url = "/web/mjon/msgdata/selectMsgAddInfoAjax.do";
var data = new FormData(document.addMyMsgForm);
$.ajax({
type: "POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
if(returnData.result == "success"){
var msgData = returnData.resultMsgInfo;
var fileData = returnData.resultMsgAddPhotoInfo;
var smsTxt = msgData.smsTxt;
var subject = msgData.subject;
var fileId = "";
var filePath = "";
var len = fileData.length;
//기존 내용 지워주기
//$(".btnReset").trigger("click");
$('.delLi').each(function(){
$(this).remove();
});
$('.preBoxF').each(function(){
$(this).remove();
});
$('#imgCnt').val(0);
//기존 imgFileId, imgFilePath 배열에 있는 내용 초기화 해주기
imgFilePath = [];
imgFileId = [];
//내문자함 텍스트 내용 입력해주기
$('#smsTxtArea').text(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);
}
//내 문자함 가져오기에서 글자길이 계산을 다시한다.
//alert("1");
$("#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); }
});
}
/* 윈도우팝업 열기 */
function infoPop(pageUrl){
document.popForm.pageType.value = pageUrl;
document.popForm.action = "/web/pop/infoPop.do";
document.popForm.method = "post";
if(pageUrl == "adrvertisement1"){
window.open("about:blank", 'infoPop', 'width=790, height=800, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
}else{
window.open("about:blank", 'infoPop', 'width=790, height=280, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
}
document.popForm.target = "infoPop";
document.popForm.submit();
}
/* 테스트발송 열기 */
function fnTestSend(){
if(!checkConf()){ //문자온 conf-check
alert("현재 문자 발송하기 기능 점검 중입니다.\n\n1분 후 다시 시도해주세요.");
return false;
}
var msgForm = document.msgForm;
var form = document.testSendForm;
var loginVO = '${LoginVO}';
var spamStatus = false;
var callFrom = $("#callFromList option:selected").val();
var adverYn = $("input[name='send_adYn']:checked").val(); //광고 체크여부
//로그인 체크
if(loginVO == "" || loginVO == null){
alert("문자발송 서비스는 로그인 후 이용 가능합니다.");
return false;
}
var blineCodeYn = $("#blineCode").val();
if(blineCodeYn != 'N'){
if(!blineSendCheck(blineCodeYn)){ //문자온 conf-check
alert("현재 문자 발송하기 기능 점검 중입니다.\n\n잠시 후 다시 시도해주세요.");
return false;
}
}
//MJ_MSG_GROUP_DATA 누락데이터 체크
//if (getMsgGroupDataErrorCheck() == false) {
// alert("고객님께서 발송한 최근문자가 발송결과에 표시되지않아, 문자발송이 임시로 차단되었습니다.\n문자온 고객센터에 문의해주세요.");
// return false;
//}
//문자내용에 이모지가 있는지 체크
var strCont = msgForm.smsTxtArea.value;
if(!emojiCheck(strCont)) return false;
// 발신번호 체크
if(callFrom == ""){
alert("발신번호를 입력해 주세요.");
return false;
}
//그림문자가 아닌데 본문 비어있는지 확인
if(imgFilePath.length == 0) {
if(msgForm.smsTxtArea.value == "") {
alert("문자 내용을 입력해 주세요.");
return false;
}
}else{//문자내용에 스팸 단어 포함여부 체크
var spmData = new FormData(msgForm);
url = "/web/mjon/msgdata/selectSpamTxtChkAjax.do";
$.ajax({
type: "POST",
url: url,
data: spmData,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
if("fail" == returnData.result){
alert(returnData.message);
return false;
}else if("loginFail" == returnData.result){
alert(returnData.message);
return false;
}else if("spams" == returnData.result){
// var spmFilterTxt = returnData.spmFilterTxt;
spamStatus = true;
//alert("문자 내용에 \"" + spmFilterTxt + "\"의 스팸문자가 포함되어 있습니다.");
alert("전송 문자내용 중 스팸문구로 의심되는 단어가 포함되어 있어 문자발송이 불가합니다.\n자세한 사항은 문자온 고객센터를 통해 문의주시기 바랍니다.");
return false;
}
} else if(status== 'fail'){
alert(returnData.message);
return false;
}
},
error: function (e) { alert("시스템 오류가 발생하였습니다."); console.log("ERROR : ", e); return false;}
});
}
//단문 장문 그림(몇장인지) 판별하기 - 발송금액 계산
if($('#nowMsgType').text() == "그림"){
msgType = 'P';
if(imgFilePath.length == 1) {
form.eachPrice.value = '<c:out value="${picturePrice}" />';
} else if(imgFilePath.length == 2) {
form.eachPrice.value = '<c:out value="${picture2Price}" />';
} else if(imgFilePath.length == 3) {
form.eachPrice.value = '<c:out value="${picture3Price}" />';
}
//제목 사용한 경우
if($("input[name=title_status]:checked").val() == 'Y') {
form.mmsSubject.value = msgForm.mmsSubject.value;
} else {
form.mmsSubject.value = ""; //초기화
}
}else if($('#nowMsgType').text() == "장문"){
msgType = 'L';
form.eachPrice.value = '<c:out value="${longPrice}" />';
//제목 사용한 경우
if($("input[name=title_status]:checked").val() == 'Y') {
form.mmsSubject.value = msgForm.mmsSubject.value;
} else {
form.mmsSubject.value = ""; //초기화
}
}else{
msgType = 'S';
form.eachPrice.value = '<c:out value="${shortPrice}" />';
form.mmsSubject.value = ""; // 장문/그림 제목 초기화
}
form.msgType.value = msgType;
/*
var phoneIn = $(".send_right .phone").html();
//팝업으로 보내기 전에 realtime class 삭제 - 스크립트 제외
phoneIn = phoneIn.replace(' class="realtime"',"");
form.msgpreview.value = phoneIn;
*/
//발신번호 세팅
form.callFrom.value = callFrom;
//이미지 path 보내기
form.imgFilePath.value = imgFilePath;
//광고
if(adverYn == 'Y'){
form.msgKind.value = "A";
}else{
form.msgKind.value = "N";
}
form.action = "/web/pop/testSendPop.do";
form.method = "post";
window.open("about:blank", 'testSendPop', 'width=770, height=850, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
form.target = "testSendPop";
form.submit();
}
//이벤트 잔액 로그인 체크
$(".btn_event_cash").off().on("click", function(){
var loginVO = '${LoginVO}';
if(loginVO == "" || loginVO == null){
alert("로그인 후 이용이 가능합니다.");
return false;
}
});
</script>
<div class="loading_layer">
<div class="loading_container">
<div class="bar"></div>
<div class="text">Loading</div>
</div>
</div>
<!-- 엑셀 불러오기 -->
<div class="tooltip-wrap">
<div class="popup-com import_layer popup02" tabindex="0" data-tooltip-con="popup02" data-focus="popup02" data-focus-prev="popup02-close">
<div class="popup_heading">
<p><span>엑셀</span> 불러오기</p>
<button type="button" class="tooltip-close" data-focus="popup02-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
</div>
<div class="layer_in">
<!-- 엑셀파일 불러오기 -->
<div class="hascont">
<div class="titBox">
<p>- 최대 2만 건까지 등록할 수 있습니다.</p>
<p>- [엑셀 불러오기]시 문서의 A, B, C, D열을 불러옵니다.(지원하는 파일 형식 : xls, xlsx)</p>
<p>- 이름 : 20byte, [*1*] [*2*] : 40byte까지 입력 가능합니다.</p>
<p>- 휴대폰 항목은 숫자, 하이픈(-)만 인식하며, 번호 앞에 0이 생략되어도 정상 등록됩니다.
</p>
<%-- <button type="button" class="excel_btn" onclick="location.href='/cmm/fms/FileDown.do?atchFileId=FILE_000000000011651&fileSn=1'"><i></i>샘플파일 다운로드</button> --%>
<button type="button" class="excel_btn" onclick="location.href='/download/msg/엑셀주소록_등록양식.xlsx'"><i></i>샘플파일 다운로드</button>
</div>
<div class="attachedFile">
<label for="" class="attachedFile_label">첨부파일</label>
<input type="text" id="excelNm" readonly>
<input type="file" id="excelFile" accept=".xls, .xlsx" onchange="excelExport(event); return false;" style="display:none"/>
<button type="button" class="btnType btnType6 c3">찾아보기</button>
<p><span class="vMiddle">*</span> 첨부된 파일은 <span class="c_e40000">[추가]버튼을 클릭</span>하셔야 받는 사람에 등록됩니다.</p>
</div>
</div><!--// 엑셀파일 불러오기 -->
<div class="popup_btn_wrap2">
<button type="button" class="tooltip-close" data-focus="popup02-close" data-focus-next="popup02" id="excelAdd">추가</button>
<button type="button" class="tooltip-close" data-focus="popup02-close" data-focus-next="popup02">닫기</button>
</div>
</div>
</div>
</div><!--// 엑셀 불러오기 -->
<!-- 이미지첨부 불러오기 시작-->
<form id="imgForm" name="imgForm" method="post">
<div class="tooltip-wrap">
<div class="popup-com import_layer popupImg" tabindex="0" data-tooltip-con="popupImg" data-focus="popupImg" data-focus-prev="popupImg-close">
<div class="popup_heading">
<p><span>이미지</span> 불러오기</p>
<button type="button" class="tooltip-close" data-focus="popupImg-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
</div>
<div class="layer_in">
<!-- 첨부파일 불러오기 -->
<div class="hascont">
<div class="titBox">
<p>- 첨부할 이미지를 불러옵니다.(지원하는 파일 형식 : jpg, jpeg)</p>
<p>- 이미지 권장 사이즈 : 640 X 960픽셀</p>
<p>- 이미지가 권장 사이즈보다 큰 경우 자동 리사이징 처리되어 첨부됩니다.</p>
<p>- 이미지 용량 : 300KB 이하</p>
<p>- 이미지에 텍스트가 많은 경우 내용이 잘 보이지 않을 수 있습니다.</p>
<p>- 문자발송 시 사전 테스트 발송 후 대량발송을 권장드립니다.</p>
<p>- <span class="c_e40000">해상도 저하에 따른 캐시 환불 불가</span></p>
</div>
<div class="attachedFile">
<label for="" class="attachedFile_label">첨부파일</label>
<input type="text" id="imgNm" readonly>
<input type="file" id="imgFile" accept=".jpg, .jpeg" onchange="imgResizeInfo(event); return false;" style="display:none"/>
<button type="button" class="btnType btnType6 upImg">찾아보기</button>
<p><span class="vMiddle">*</span> 첨부된 파일은 <span class="c_e40000">[추가]버튼을 클릭</span>하셔야 내용에 이미지가 등록됩니다.</p>
</div>
</div><!--// 첨부파일 불러오기 -->
<div class="popup_btn_wrap2">
<button type="button" class="tooltip-close" data-focus="popupImg-close" data-focus-next="popupImg" id="imgAdd" onclick="imgExport(event); return false;">이미지 등록</button>
<button type="button" class="tooltip-close closeResizeImg" data-focus="popupImg-close" data-focus-next="popupImg">닫기</button>
</div>
</div>
</div>
</div>
</form>
<!--// 이미지 첨부 불러오기 끝 -->
<!-- 이벤트 잔여 캐시 정보 표시 팝업 -->
<div class="tooltip-wrap">
<div class="popup-com 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="N"/><!-- 문자종류 일반:N , 광고:A , 선거:C -->
<input type="hidden" id="txtReplYn" name="txtReplYn" value="N"/><!-- 변환문자 유무 -->
<input type="hidden" id="shortMsgCnt" name="shortMsgCnt" value="0"/><!-- 단문 변환문자 건수 -->
<input type="hidden" id="longMsgCnt" name="longMsgCnt" value="0"/><!-- 장문 변환문자 건수 -->
<!-- 이벤트 관련 변수 -->
<input type="hidden" id="eventStatus" name="eventStatus" value="<c:out value='${eventMberInfo.eventStatus}'/>"/>
<input type="hidden" id="eventRemainCash" name="eventRemainCash" value="<c:out value='${eventRemainCash}'/>"/>
<input type="hidden" id="eventYn" name="eventYn" value="N"/>
<!-- 스팸문자 관련 변수 -->
<input type="hidden" id="spamKeyword" name="spamKeyword"/>
<input type="hidden" id="spamStatus" name="spamStatus"/>
<input type="hidden" id="exceptSpamYn" name="exceptSpamYn" value="<c:out value='${exceptSpamYn}'/>"/>
<!-- 이벤트 캐시 부족시 일반캐시로 계산을 위해 저장, 우영두 2023.03.28 -->
<input type="hidden" id="norsPrice" name="norsPrice" value="<c:out value="${norShortPrice}"/>"/><!-- 단문문자 단가(이벤트 단가 제외) -->
<input type="hidden" id="normPrice" name="normPrice" value="<c:out value="${norLongPrice}"/>"/><!-- 장문문자 단가(이벤트 단가 제외) -->
<input type="hidden" id="norpPrice" name="norpPrice" value="<c:out value="${norPicturePrice}"/>"/><!-- 그림문자 단가(이벤트 단가 제외) -->
<input type="hidden" id="norp2Price" name="norp2Price" value="<c:out value="${norPicture2Price}"/>"/><!-- 그림2장문자 단가(이벤트 단가 제외) -->
<input type="hidden" id="norp3Price" name="norp3Price" value="<c:out value="${norPicture3Price}"/>"/><!-- 그림3장문자 단가(이벤트 단가 제외) -->
<input type="hidden" id="evnPhoneNumCnt" name="evnPhoneNumCnt" value="0"/><!-- 치환 이벤트 발송 수신자 갯수 -->
<input type="hidden" id="evnShortMsgCnt" name="evnShortMsgCnt" value="0"/><!-- 치환 이벤트 단문 건수 -->
<input type="hidden" id="evnLongMsgCnt" name="evnLongMsgCnt" value="0"/><!-- 치환 이벤트 장문 건수 -->
<input type="hidden" id="blineCode" name="blineCode" value="<c:out value="${blineCode}"/>"/>
<!-- <div class="top_content get_excel" id="tab1_2"> -->
<div class="heading">
<h2>대량문자/단체문자 전송</h2>
<button type="button" class="button info" onclick="infoPop('adrvertisement1');" style="right: 128px;">광고규정</button>
<button type="button" class="button info" onclick="infoPop('MsgExcelDataSMLView1');">사용안내</button>
</div>
<div class="send_general">
<!-- send left 문자 보내기 입력 -->
<div class="send_left">
<%-- <dl class="myprice_view">
<dt>나의 요금제</dt>
<dd>
<ul>
<li><span class="type">단문</span><span class="price"><c:out value="${shortPrice}"/></span>원</li>
<li><span class="type">장문</span><span class="price"><c:out value="${longPrice}"/></span>원</li>
<li><span class="type">그림</span><span class="price"><c:out value="${picturePrice}"/></span>원 <span class="count">(2장 : <c:out value="${picture2Price}"/>원 / 3장 : <c:out value="${picture3Price}"/>원)</span></li>
</ul>
</dd>
</dl> --%>
<table class="tType1">
<caption>일반 문자보내기 분류 번호 내용 등을 입력하는 표</caption>
<colgroup>
<col style="width: 120px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">문자분류</th>
<td class="send_cf">
<input class="send_adYnN" id="send_adYnN" type="radio"name="send_adYn" value="N" checked="checked">
<label class="send_adYnN" for="send_adYnN">일반</label>
<input id="send_adYnY" type="radio" name="send_adYn" value="Y">
<label for="send_adYnY">광고</label>
</td>
</tr>
<tr>
<th scope="row">발신번호</th>
<td class="put_num">
<label for="callFrom" class="label"></label>
<select id="callFromList" name="callFromList" class="sel_number">
<c:choose>
<c:when test="${not empty resultPhonList}">
<c:forEach var="phonList" items="${resultPhonList}" varStatus="status">
<option value="${phonList}">${phonList}</option>
</c:forEach>
</c:when>
<c:otherwise>
<option value="">등록된 발신 번호가 없습니다.</option>
</c:otherwise>
</c:choose>
</select>
<button type="button" class="btnType btnType6" onclick="location.href='/web/user/sendNumberManage.do'">번호등록</button>
</td>
</tr>
<tr class="msg_title">
<th scope="row">제목</th>
<td>
<ul class="title_wrap">
<li>
<input id="title_y" type="radio"name="title_status" value="Y" onchange="titleStatus(this);">
<label for="title_y">사용</label>
<input id="title_n" type="radio" name="title_status" value="N" onchange="titleStatus(this);" checked="checked">
<label for="title_n">사용안함</label>
</li>
<li class="textbox">
<label for="mmsSubject" class="label"></label>
<input type="text" size="20" id="mmsSubject" name="mmsSubject" class="w100" maxlength="20" placeholder="" onfocus="this.placeholder=''" >
</li>
</ul>
</td>
</tr>
<!-- 단문 문자 내용 영여-->
<tr>
<th scope="row" class="vTop">내용</th>
<td class="putText">
<div class="clearfix">
<div class="put_left short">
<!-- 업로드한 이미지의 썸네일 영역 -->
<ul class="thumb_wrap liOnImg"></ul>
<!-- //업로드한 이미지의 썸네일 영역 -->
<label for="smsTxtArea" class="label"></label>
<textarea id="smsTxtArea" name="smsTxtArea" class="put_text"></textarea>
<div class="text_length">
<div name="afterDeny">
<p>
<span class="fwMd" id="msgLeng">0 /</span>
<span class="c_002c9a fwMd" id="limitLeng"> 90</span>byte
</p>
<span class="msg_com msg_short">단문</span>
</div>
</div>
</div>
<div class="put_right">
<div class="btn_popup_wrap spc_wrap">
<button type="button" class="btnType btnType7" onclick="miniPopup(this);">특수문자</button>
<div class="send_miniPop spc_character">
<div class="tab_character">
<a href="#none" class="on">특수문자</a>
<a href="#none">웃음</a>
<a href="#none">슬픔</a>
<a href="#none">분노</a>
<a href="#none">사랑</a>
<a href="#none">그외</a>
</div>
<!-- 특수문자 부분 -->
<div class="cnt_character on">
<div class="box_character">
<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
<c:if test="${symbolList.symbolType == 'D'}">
<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}"><c:out value="${symbolList.symbol}"/></a>
</c:if>
</c:forEach>
</div>
</div>
<!-- 웃음 -->
<div class="cnt_character emt_character">
<div class="box_character">
<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
<c:if test="${symbolList.symbolType == 'S'}">
<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
</c:if>
</c:forEach>
</div>
</div>
<!-- //웃음 -->
<!-- 슬픔 -->
<div class="cnt_character emt_character">
<div class="box_character">
<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
<c:if test="${symbolList.symbolType == 'C'}">
<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
</c:if>
</c:forEach>
</div>
</div>
<!-- //슬픔 -->
<!-- 분노 -->
<div class="cnt_character emt_character">
<div class="box_character">
<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
<c:if test="${symbolList.symbolType == 'A'}">
<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
</c:if>
</c:forEach>
</div>
</div>
<!-- //분노 -->
<!-- 사랑 -->
<div class="cnt_character emt_character">
<div class="box_character">
<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
<c:if test="${symbolList.symbolType == 'L'}">
<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
</c:if>
</c:forEach>
</div>
</div>
<!-- //사랑 -->
<!-- 그외 -->
<div class="cnt_character emt_character emt_etc ">
<div class="box_character">
<c:forEach var="symbolList" items="${symbolList}" varStatus="status">
<c:if test="${symbolList.symbolType == 'E'}">
<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
</c:if>
</c:forEach>
</div>
</div>
<!-- //그외 -->
<button type="button" class="btn_close" onclick="miniPopup(this);">닫기</button>
</div>
</div>
<div class="btn_popup_wrap convers_wrap">
<button type="button" class="btnType btnType7" onclick="miniPopup(this)">특정문구 일괄변환<i class="qmMark"></i></button>
<div class="send_miniPop convers">
<div>
<div class="convers_top">
<span>특정문구 일괄변환이란?</span>
<p>주소록, 엑셀에 입력된 내용을 이용해 수신자마다 다른 내용의<br> 메시지를 발송하는 기능</p>
</div>
<div class="convers_middle"><a href="javascript:void(0)" class="changeWord" value="[*이름*]">[*이름*]</a></div>
<div class="convers_bottom">
<a href="javascript:void(0)" class="changeWord" value="[*1*]">[*1*]</a>
<a href="javascript:void(0)" class="changeWord" value="[*2*]">[*2*]</a>
<a href="javascript:void(0)" class="changeWord" value="[*3*]">[*3*]</a>
<a href="javascript:void(0)" class="changeWord" value="[*4*]">[*4*]</a>
</div>
</div>
<button type="button" class="btn_close" onclick="miniPopup(this);">닫기</button>
</div>
</div>
<button type="button" class="btnType btnType7" onclick="javascript:fnGoMyMsg(); return false;">내문자함</button>
<%-- <button type="button" data-tooltip="popupImg" class="btnType btnType7">이미지 첨부</button> --%>
<button type="button" class="btnType btnType8" onclick="openPhotoEditor();">이미지 불러오기</button>
<div class="send_btnWrap">
<button type="button" class="btnType btnType9" onclick="javascript:fn_saveMyMsg(); return false;">문자저장</button>
<button type="button" class="btnType btnType9 btnReset">초기화</button>
</div>
</div>
</div>
<p>* 현재 [<span id="nowMsgType">단문</span>] <span class="c_e40000 fwBold nowMsgCnt">0</span>건 발송 가능합니다.</p>
</td>
</tr>
</tbody>
</table>
</div><!-- send left 문자 보내기 입력 -->
<!-- send right 문자 보내기 미리보기 -->
<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><!--// send right 문자 보내기 미리보기 -->
</div>
<!-- excel 대량 불러오기 -->
<div class="excelWrap">
<div>
<div class="excel_selBox">
<div>
<button type="button" data-tooltip="popup02" class="excel_btn btnType"><i class="uproad"></i>엑셀 불러오기</button>
</div>
<div>
<%-- <button type="button" class="excel_btn" onclick="location.href='/cmm/fms/FileDown.do?atchFileId=FILE_000000000011960&fileSn=1'"><i class="downroad"></i>엑셀 샘플 다운로드</button> --%>
<button type="button" class="excel_btn" onclick="location.href='/download/msg/엑셀주소록_등록양식.xlsx'"><i class="downroad"></i>엑셀 샘플 다운로드</button>
</div>
</div>
<div class="file_add upload_area">
<p><img src="/publish/images/content/file_add.png" alt="파일 붙여넣기">마우스로 엑셀 파일을 여기에 끌어다 놓으세요</p>
</div>
<div class="excel_middle2">
<p>총 <span class="c_e40000 fwBold" id="rowTotCnt">0</span>건 / 중복 <span class="c_002c9a fwBold" id="rowDupCnt">0</span>건</p>
<button type="button" class="btnType btnType6 addCallToF">번호추가</button>
</div>
<div class="drag_drop_wrap callList_box">
<img src="/publish/images/content/excel.jpg" style="width: 100%;">
</div>
<div class="excel_middle">
<div class="select_btnWrap clearfix">
<div>
<button type="button" class="all_del"><i class="remove_img"></i>전체삭제</button>
<button type="button" class="select_del"><i class="remove_img"></i>선택삭제</button>
<button type="button" class="chkVali_del"><i class="remove_img"></i>오류번호삭제</button>
<button type="button" class="check_validity">오류 검사 <i></i></button>
<div class="error_hover_cont send_hover_cont">
<p>휴대폰 번호 입력 시 해당 휴대폰 번호에 대한 형식이 어긋나거나 휴대폰 번호에 오류가 있는지 등을 검사하는 기능</p>
<span>(예시) 010-1234-0001(O) / 010-123-0001(X)</span>
</div>
</div>
<div>
<button type="button" class="excel_btn addExcelDw"><i class="downroad"></i>엑셀 다운로드</button>
</div>
</div>
</div>
</div>
</div>
<div class="send_general sec">
<div class="send_left">
<table class="tType1">
<caption>일반 문자보내기 분류 번호 내용 등을 입력하는 표</caption>
<colgroup>
<col style="width: 100px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th colspan="2" class="billingAmount">
<div>
<div class="final_pay">
<div class="pay_info_list">
<p>발송금액 :</p>
<div class="info" id="repPriceTxt">
단문 : <strong>20</strong>건<span>/</span>장문 : <strong>150</strong>건<span>/</span>그림문자 : <strong>30</strong>건
</div>
</div>
<p class="price" ><span id="repPriceTxt"></span><span id="totalPriceTxt">0</span> 원<span></span></p>
</div>
<c:if test="${eventRemainCash > 0 && eventMberInfo.eventStatus eq 'Y'}">
<p style="text-align: right; font-size: 14px; color: #666; margin: -10px 0 15px 0; font-weight: 300;">* 이벤트회원의 발송금액은 이벤트단가를 적용하여 계산된 금액이므로 실제 발송금액과 다를 수 있습니다.</p>
</c:if>
<div class="pay_type clearfix">
<fmt:formatNumber type="number" maxFractionDigits="3" value="${userMoney}" var="commaPrice" />
<div>
<label for="radio_bill_1" class="label">충전 금액</label>
<input type="radio" id="radio_bill_1" name="radio_bill" checked="checked">
<label for="radio_bill_1">보유잔액</label>
<%-- <label for="radio_bill_1">보유잔액 (<span id="spUserMoney">
<c:choose>
<c:when test="${not empty userMoney}">
<c:out value="${commaPrice}"/>
</c:when>
<c:otherwise>
0
</c:otherwise>
</c:choose>
</span>원)</label> --%>
<label for="userMoney" class="label">충전 금액</label>
<input type="text" id="userMoney" name="userMoney" value="<c:out value='${commaPrice}'/>" readonly>
<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>
</th>
</tr>
<%-- <tr>
<th scope="row">추천인 ID</th>
<td class="check_num">
<input id="radio5" type="radio"name="recom" checked="checked">
<label for="radio5">없음</label>
<input id="radio6" type="radio" name="recom">
<label for="radio6">있음</label>
<div>
<label for="id" class="label"></label>
<input type="text" size="20" id="recommId" name="recommId" placeholder="추천인 아이디 입력" onfocus="this.placeholder=''" onblur="this.placeholder='추천인 아이디 입력'">
<button type="button" class="btnType btnType9" id="recommBtn">추천인 확인</button>
</div>
</td>
</tr> --%>
</tbody>
</table>
</div>
<div class="send_right">
<div class="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>
<select class="selType1" id="divideCnt" name="divideCnt">
<option value="2">2</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<label for="divideCnt">건</label>
<select class="selType1" id="divideTime" name="divideTime">
<option value="5">05분</option>
<option value="10">10분</option>
<option value="15">15분</option>
<option value="20">20분</option>
<option value="30">30분</option>
</select>
<label for="divideTime">간격</label>
</div>
</div>
</div>
</div>
</div>
<!-- </div> --><!--// tab content2 -->
</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="excelDownForm" id="excelDownForm" method="post">
<input type="hidden" name="callToList" id="exdCallToList" value=""/>
<input type="hidden" name="nameList" id="exdNameList" value=""/>
<input type="hidden" name="rep1List" id="exdRep1List" value=""/>
<input type="hidden" name="rep2List" id="exdRep2List" value=""/>
<input type="hidden" name="rep3List" id="exdRep3List" value=""/>
<input type="hidden" name="rep4List" id="exdRep4List" value=""/>
<input type="hidden" name="rep5List" id="exdRep5List" value=""/>
</form>
<form name="testSendForm" id="testSendForm" method="post">
<input type="hidden" name="msgKind" value=""/>
<input type="hidden" name="msgpreview" value=""/>
<input type="hidden" name="mmsSubject" value=""/>
<input type="hidden" name="callFrom" value=""/>
<input type="hidden" name="imgFilePath" value=""/>
<input type="hidden" name="eachPrice" value=""/>
<input type="hidden" name="msgType" value=""/>
<input type="hidden" name="smsTxt" value=""/>
</form>