	/**
	 * <select></select> 의 <option> 작성
 	 */
	function getComboList(obj, defaultValue, defaultCnt, url, param, async) {
		ClearCombo(obj,defaultCnt);

		if( url != "" )
		{ 
			sendRequest(setCodeList, getComboList.arguments, param, "POST", "euc-kr", url, async, true);
		}
	}  

	/**
	 * <select></select> 의 <option> 작성
 	 */
	function getCodeList(obj, defaultValue, codegrp, likeid) {
		ClearCombo(obj,1);

		if( codegrp != "" )
		{
			var param = "codegrp="+codegrp;
			if( likeid ) param += "&likeid="+likeid;
			sendRequest(setCodeList, getCodeList.arguments, param, "POST", "euc-kr", "/GetCodeList.do", false, true);
		}
	}
	
	
	
	
	
	
	
	
	/**
	 * <select></select> 의 <option> 작성
 	 */
	function getDocReceiverList(obj, defaultValue,index,gubun,key) {
		
		if(key != "" )
		{
			var param = "searchGubun="+gubun+"&searchKey="+key;
			sendRequest(setDocReceiverList, getDocReceiverList.arguments, param, "POST", "euc-kr", "/ComAjaxList.do", false, true);
		} 
	}	
	
	
	function getDlvyList(obj, defaultValue,compnum,site) {
		ClearCombo(obj,1);

		if( compnum != "" )
		{
			var param = "searchGubun=DLVY&compnum="+compnum+"&site="+site;
			sendRequest(setCodeList, getDlvyList.arguments, param, "POST", "euc-kr","/ComAjaxList.do", false, true);
		}
	}
	
	
	function getUserList(obj, defaultValue,compnum,dept) {
		ClearCombo(obj,1);

		if( compnum != "" )
		{
			var param = "searchGubun=USER2&compnum="+compnum+"&dept="+dept;
			sendRequest(setCodeList, getUserList.arguments, param, "POST", "euc-kr","/ComAjaxList.do", false, true);
		}
	}
	

	function getDeptList(obj, defaultValue,compnum) {
		ClearCombo(obj,1);

		if( compnum != "" )
		{
			var param = "searchGubun=DEPT2&compnum="+compnum;
			sendRequest(setCodeList, getDeptList.arguments, param, "POST", "euc-kr","/ComAjaxList.do", false, true);
		}
	}		
	
	// 승인번호
	var nts_issueid = "";
	/*
	function getIssueId_grid(obj, rowcount) {
		nts_issueid = "";
		var url = "http://"+location.hostname+"/ComDti.do";
        var param = "submitType=issueid&rowcount="+rowcount;

		var xml = TaxGrid.GetUrlValue(url, param, "euc-kr", 3000);
		
		var result = ParseXmlData(xml, "ISSUEID");

		if( result.length != 24 ){
		    message = ParseXmlData(xml, "MESSAGE");
			if( message != "" ){
			    alert(message);
			}else{
				alert("승인번호 생성 실패!");
			}
		}
		else{
			nts_issueid = result;
			if( obj != null ){
				obj.value = nts_issueid;
			}
		}
		return nts_issueid;
	}
	*/
 
	function getIssueId(obj, rowcount, list_publicdate) {
		nts_issueid = "";
		
		var arr_param = new Array();
		arr_param[arr_param.length] = new Array("submitType","issueid");
		arr_param[arr_param.length] = new Array("rowcount",rowcount);
		arr_param[arr_param.length] = new Array("list_publicdate",list_publicdate);

		try{
			sendRequest(setText, getIssueId.arguments, arr_param, "POST", "euc-kr","/ComDti.do", false, true);
		}catch(e){
			alert("승인번호 생성오류 : "+e.message);
			return "";
		}
		return nts_issueid;
    }

	function setText(req, arg){
		var obj = arg[0];
		
		var xml = req.responseText; 
		var result = ParseXmlData(xml, "ISSUEID");

		if( result.length < 24 ){
		    message = ParseXmlData(xml, "MESSAGE");
			if( message != "" ){
			    alert(message);
			}
		}
		else{
			nts_issueid = result;
			if( obj != null ){
				obj.value = result;
			}
		}
    }

	/*
	 *  역발행승인, 저장->발행
	 */
	function MakeNtsDocXml(taxid, issueid_obj, hash_obj, xml_obj, org_xml, iss_compnum, publicdate, creat_dtm_obj) {
		nts_issueid = "";
		var arr_param = new Array();
		arr_param[arr_param.length] = new Array("submitType","MakeNtsDocXml");
		arr_param[arr_param.length] = new Array("taxid",taxid);
		arr_param[arr_param.length] = new Array("xmlvalue",org_xml);
        arr_param[arr_param.length] = new Array("compnum",iss_compnum);
        arr_param[arr_param.length] = new Array("publicdate",publicdate);
        try{
			sendRequest(setNtsDocXml, MakeNtsDocXml.arguments, arr_param, "POST", "euc-kr","/Dti210100.do", false, true);
		}catch(e){
			alert("XML 생성오류 : "+e.message);
			return "";
		}
		return nts_issueid;
    }

    /*function MakeNtsDocXml(obj, taxid) {
		//nts_issueid = "";
        alert('1');
        var param = "submitType=MakeNtsDocXml&taxid="+taxid;
		try{
			sendRequest(setNtsDocXml, MakeNtsDocXml.arguments, param, "POST", "euc-kr","/Dti210100.do", false, true);
		}catch(e){
			alert("XML 생성오류 : "+e.message);
			return "";
		}
		//return nts_issueid;
    }*/
    function setNtsDocXml(req, arg){

        var issueid_obj = arg[1];
        var hash_obj = arg[2];
        var tax_xml_obj = arg[3];
        var creat_dtm_obj = arg[7];
        /*
			<ISSUEID>000000000000000000000000</ISSUEID>
			<HASH_VALUE>derasdgtse=</HASH_VALUE>
			<TAX_DOCUMENT_XML><TaxInvoiceDocument><IssueID>000000000000000000000000</IssueID></TaxInvoiceDocument></TAX_DOCUMENT_XML>
		*/
		var xml = req.responseText;
        nts_issueid				= ParseXmlData(xml, "ISSUEID");
		var hash_value			= ParseXmlData(xml, "HASH_VALUE");
		var tax_document_xml	= ParseXmlData(xml, "TAX_DOCUMENT_XML");
        var creat_dtm       	= ParseXmlData(xml, "CREAT_DTM");

        if( nts_issueid.length != 24 ){
			nts_issueid = "";
		    message = ParseXmlData(xml, "MESSAGE");
			if( message != "" ){
			    alert(message);
			}
		}
		else if( hash_value.length < 5 ){
		    message = ParseXmlData(xml, "MESSAGE");
			if( message != "" ){
			    alert(message);
			}
		}
		else if( tax_document_xml.indexOf("<TaxInvoiceDocument>") == -1 ){
		    message = ParseXmlData(xml, "MESSAGE");
			if( message != "" ){
			    alert(message);
			}
		}
		else{
			issueid_obj.value	= nts_issueid;
			hash_obj.value		= hash_value;
			tax_xml_obj.value	= tax_document_xml;
            creat_dtm_obj.value	= creat_dtm;
        }
    }

	function setCodeList(req, arg) {
		var obj = arg[0];
		var defaultValue = arg[1];
		var xml = req.responseText;
		xml = replace(xml,"\r","");
		var rows = xml.split('\n');
		var cnt = 1;
		var line = "";

		for (var i = 0; i < rows.length; i++) {
			line = trim(rows[i]);
			if( line == "" || line == "\t" ){
				continue;
			}
			obj[cnt] = new Option();
			obj[cnt].value = rows[i].split('\t')[0];
			obj[cnt].text = rows[i].split('\t')[1];
			cnt++;
		}
		obj.value = defaultValue;
	}
	
	
	
	function setDocReceiverList(req, arg) {
		var obj = arg[0];
		var defaultValue = arg[1];
		var index = arg[2];
		var gubun = arg[3];
		
		var xml = req.responseText;
		xml = replace(xml,"\r\n","");
		
		if(xml=="") return;

		var rows = xml.split('\n');
		
		
		var cnt = 0;
		var title = "";
	  var str = "";
		var srcRow = obj.options.length;

		//그룹멤버를 조회할 때



    
		if(gubun == 'GROUP'){
			for(var i=srcRow-1 ; i > 0 ; i--){
				obj[i]=null;
			}
			for(var i=1; i <= rows.length ; i++){
				o = new Option(rows[i-1].split('\t')[1],rows[i-1].split('\t')[0]);
				obj[i] = o;
			}		
			    	
 		}else{
			title = replace(obj[index].text,"+","-");
			obj[index].text = title;
		
		
		for(var i=srcRow ; i > index ; i--){
			o = new Option(obj[i-1].text,obj[i-1].value);
			obj[i+rows.length-1]=o;
		}
		
		cnt = 0;
		
		if(arg[3]=="DEPT"){
			str ="     + ";
		}else if(arg[3]=="USER"){
			str ="          - ";
		}
		
		for(var i=index; i< index+rows.length ; i++){
	
			o = new Option(str+rows[cnt].split('\t')[1],rows[cnt].split('\t')[0]);
			obj[i+1] = o;
			cnt++;			
		}
		}
		
		
		
		
		
		
	}
	
 
	////
	// 동작가능한 브라우저 판정
	//
	// @sample        if(chkAjaBrowser()){ location.href='nonajax.htm' }
	// @sample        oj = new chkAjaBrowser();if(oj.bw.safari){ /* Safari 코드 */ }
	// @return        라이브러리가 동작가능한 브라우저만 true  true|false
	//
	//  Enable list (v038현재)
	//   WinIE 5.5+ 
	//   Konqueror 3.3+
	//   AppleWebKit계(Safari,OmniWeb,Shiira) 124+ 
	//   Mozilla계(Firefox,Netscape,Galeon,Epiphany,K-Meleon,Sylera) 20011128+ 
	//   Opera 8+ 
	//
	function chkAjaBrowser()
	{
		var a,ua = navigator.userAgent;
		this.bw= { 
		  safari    : ((a=ua.split('AppleWebKit/')[1])?a.split('(')[0]:0)>=124 ,
		  konqueror : ((a=ua.split('Konqueror/')[1])?a.split(';')[0]:0)>=3.3 ,
		  mozes     : ((a=ua.split('Gecko/')[1])?a.split(" ")[0]:0) >= 20011128 ,
		  opera     : (!!window.opera) && ((typeof XMLHttpRequest)=='function') ,
		  msie      : (!!window.ActiveXObject)?(!!newXMLHttpRequest()):false 
		}
		return (this.bw.safari||this.bw.konqueror||this.bw.mozes||this.bw.opera||this.bw.msie)
	}
	

	////
	// XMLHttpRequest 오브젝트 생성
	//
	// @sample        oj = newXMLHttpRequest()
	// @return        XMLHttpRequest 오브젝트(인스턴스)
	//
	function newXMLHttpRequest()
	{
		if(window.ActiveXObject){
			 //Win e4,e5,e6용



			try {
				return new ActiveXObject("Msxml2.XMLHTTP") ;
			} catch (e) {
				try {
					return new ActiveXObject("Microsoft.XMLHTTP") ;
				} catch (e2) {
					return null ;
	 			}
	 		}
		} else if(window.XMLHttpRequest){
			 //Win Mac Linux m1,f1,o8 Mac s1 Linux k3용



			return new XMLHttpRequest() ;
		} else {
			return null ;
		}
	}
	 
	////
	// 송수신 함수
	//
	// @sample         sendRequest(onloaded,'&prog=1','POST','./about2.php',true,true)
	// @param callback 송수신시에 기동하는 함수 이름
	// @param data	   송신하는 데이터 (&이름1=값1&이름2=값2...)
	// @param method   "POST" 또는 "GET"
	// @param url      요청하는 파일의 URL
	// @param async	   비동기라면 true 동기라면 false
	// @param sload	   수퍼 로드 true로 강제、생략또는 false는 기본
	// @param user	   인증 페이지용 사용자 이름
	// @param password 인증 페이지용 암호
	//
	function sendRequest(callback, arg, data, method, charset, url, async, sload, user,password)
	{
		var GET = method.toUpperCase() == 'GET',
		oj = newXMLHttpRequest();
		if( oj == null ) return null;
		if( charset == "" ){
		    charset = "euc-kr";
		}
			
		//강제 로드의 설정
		if((sload)?sload:false)url +=((url.indexOf('?')==-1)?'?':'&')+'t='+(new Date()).getTime();

		//브라우저 판정
		var bwoj = new chkAjaBrowser(),
		o  = bwoj.bw.opera,
		s  = bwoj.bw.safari,
		k = bwoj.bw.konqueror,
		m  = bwoj.bw.mozes ;
			 
		if(typeof callback=='object'){
			var callback_onload = callback.onload;
			var callback_onbeforsetheader = callback.onbeforsetheader;
		} else {
			var callback_onload = callback;
			var callback_onbeforsetheader = null;
		}

		//송신 처리
		//opera는 onreadystatechange에 중복 응답이 있을 수 있어 onload가 안전
		//Moz,FireFox는 oj.readyState==3에서도 수신하므로 보통은 onload가 안전
		//Win ie에서는 onload가 동작하지 않는다



		//Konqueror은 onload가 불안정



		//참고 http://jsgt.org/ajax/ref/test/response/responsetext/try1.php
		if(o || s || m){
			oj.onload = function () { 
				callback_onload(oj,arg);
				oj.abort(); 
			}
		} else {
			oj.onreadystatechange =function () 
			{
				if ( oj.readyState == 4 ){ 
					callback_onload(oj,arg);
					oj.abort();
				}
			}
		}

		//URL 인코딩



		data = uriEncode(data,url);
		if(GET) {
			url += ((url.indexOf('?')==-1)?'?':'')+data;
		}

		//open 메소드



		oj.open(method,url,async,user,password);
		
		
		//リクエストヘッダカスタマイズ用コールバック



		//使う場合は、呼び出しHTML側のwindow直下へグローバルな関数setHeadersを



		//記述し、その中でsetRequestHeader()をセットしてください
		//@sample function setHeaders(oj){oj.setRequestHeader('Content-Type',contentTypeUrlenc)}
		//
		if(!!callback_onbeforsetheader)callback_onbeforsetheader(oj);

		//헤더 application/x-www-form-urlencoded 설정
		setEncHeader(oj);
		
		
		//디버그



		//alert('////jslb_ajaxxx.js//// \n data:'+data+' \n method:'+method+' \n url:'+url+' \n async:'+async);
		
		//send 메소드



		oj.send(data);


		//URI 인코딩 헤더 설정
		function setEncHeader(oj){
	
			//헤더 application/x-www-form-urlencoded 설정
			// @see  http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#h-17.13.3
			// @see  #h-17.3
			//   ( enctype의 기본값은 "application/x-www-form-urlencoded")
			//   h-17.3에 의해、POST/GET 상관없이 설정
			//   POST에서 "multipart/form-data"을 설정할 필요가 있는 경우에는 커스터마이즈 해주세요.
			//
			//  이 메소드가 Win Opera8.0에서 에러가 나므로 분기(8.01은 OK)
			if(!o||typeof oj.setRequestHeader == 'function'){
				oj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset='+charset);
			}
			return oj
		}
 
		//URL 인코딩



		function uriEncode(data,url){
			var d = [];
			if(typeof data=='object'){
				var val = null;
				for(var i in data){
					val = data[i];
					if( typeof val == 'object' ){
						p(val[0],val[1]);
					}
					else{
						p(i,data[i]);
					}
				}
			} else if(typeof data=='string'){
				if(data=='')return '';
				//&와=로 일단 분해해서 encode
				if(data.charAt(0)=='&')data=data.substring(1,data.length)
				var datas = data.split('&');
				for(var i=0;i<datas.length;i++)
				{
					var dataq = datas[i].split('=');
					p(dataq[0],dataq[1]);
				}
			} 
			function p(k,v){d.push( encodeURIComponent(k) + "=" + encodeURIComponent(v))};
			return d.join("&");
		}

		return oj
	}