function newCvlc05010Control(page, doctx = ""){
	
	page.ctrl = new AnswerBodyControl({
		dataGetter : obj => obj["levyCaseList"], 
		urls : {}, 
		formats : {},
	    keys : ["VLTN_CASE_ID"]
	},
	{
	    dataGetter : obj => obj["warningCaseList"], 
		urls : {}, 
		formats : {},
	    keys : ["LEVY_EXCL_RSN_CD"]
	},
	{
	    dataGetter : obj => obj["nonlevyCaseList"], 
		urls : {}, 
		formats : {},
	    keys : ["LEVY_EXCL_RSN_CD"]
	});
	return page.ctrl;
}

class AnswerBodyControl {
	constructor(levyCaseConf, warningCaseConf, nonlevyCaseConf) {
		this.levy = new DatasetControl(levyCaseConf);
		this.warning = new DatasetControl(warningCaseConf);
		this.nonlevy = new DatasetControl(nonlevyCaseConf);
	}
}

const MACRO_STRING = {
	MACRO_SEQ : "[@일련번호]",
	MACRO_TELNO : "[@전화번호]",
	MACRO_PIC_NM : "[@담당자성명]"
};

function fnMacroStringInsert(objId, addText) {
	var insertObj = document.getElementById(objId);
    var textVal = insertObj.value;
    var setPosition = insertObj.selectionStart;
   	var beforeTxt = textVal.substring(0, setPosition);
    var afterTxt = textVal.substring(insertObj.selectionEnd, textVal.length);
    insertObj.value = beforeTxt + addText + afterTxt;
    setPosition = setPosition + addText.length;
    insertObj.selectionStart = setPosition;
   	insertObj.selectionEnd = setPosition;
   	insertObj.focus();
}

function fnMacroWordsReplace(header, footer, body, telno, picNm) {
	var result = header + "\n\n" + body + "\n\n" + footer;
	result = result.replaceAll("＠", "@");
	
	var seq = 1;
	var splited = result.split(MACRO_STRING.MACRO_SEQ);
	var seqCount = splited.length - 1;
	if(seqCount > 0){
		for(; seq <= seqCount; seq++){
			result = result.replace(MACRO_STRING.MACRO_SEQ, seq);
		}
	}
	
	result = result.replaceAll(MACRO_STRING.MACRO_TELNO, telno);
	result = result.replaceAll(MACRO_STRING.MACRO_PIC_NM, picNm);
	
	return result;
}