PageSourceSearch

https://www.foodsafetykorea.go.kr/GPKISecureWebHTML/gpkisecureweb/client/GPKISecureWebNP2.js

js foodsafetykorea.go.kr collected 2026-09-24 17:58:58 UTC 90,729 bytes, 1,941 lines download raw bytes

1document.writeln('<form name=gpkiForm METHOD=POST>');
2document.writeln('      <input name=encryptedData type=hidden>');
3document.writeln('      <input name=pwCheckCode type=hidden>');
4document.writeln('      <input name=userDN type=hidden>');
5document.writeln('      <input name=signedData type=hidden>');
6document.writeln('</form>');
7var GPKISecureWebUi = {};
8var GPKISecureWeb = {};
9var GPKIMessage = {};
10var vidCheck = 0;
11var installCheckCount = 0;
12var downCheckCount = 0;
13GPKISecureWeb.DownloadCount = 10;			//다운로드버튼 횟수 제한
14GPKISecureWeb.AjaxLocal = false;
15GPKISecureWeb.initFlag; 					// 0 : CS 실행중  , 그 밖의 코드 : CS 실행되지 않음
16GPKISecureWeb.installCheckFlag = "";
17GPKISecureWeb.InstallCheckCount = 10;		
18GPKISecureWeb.isInstall = "download"; 		//설치페이지 사용 여부  true: 사용 , false : 미사용 , download : 바로 다운로드
19GPKISecureWeb.DownloadWinFileName = "GPKISecureWebSetup"+".exe";
20GPKISecureWeb.InstallPageURL = location.protocol +'//'+ location.host+ "/GPKISecureWebHTML/gpkisecureweb/install.html";
21GPKISecureWeb.popupCallback = "";
22GPKISecureWeb.closeCallback = "";
23GPKISecureWeb.successCallback = "";
24GPKISecureWeb.setupCheckCallback = "";
25GPKISecureWeb.runningCheckCallback = "";
26GPKISecureWeb.failedCallback = "";
27GPKISecureWeb.DownloadURL = location.protocol +'//'+ location.host+ "/GPKISecureWebHTML/gpkisecureweb/client/setup/";
28GPKISecureWeb.DownloadWinFileName ="GPKISecureWebSetup"+".exe";
29GPKISecureWeb.UrlSchemeServerURL = location.protocol +'//'+ location.host+ "/GPKISecureWebHTML/gpkisecureweb/client/";
30var isEmbedded = false;
31var sessionid="";
32var returnIndexPage = '/GPKISecureWebHTML/gpkisecureweb/index.html';
33GPKISecureWebUi.dialogWidth = 480;
34//GPKISecureWebUi.dialogButton = 80;
35GPKISecureWebUi.installCheckMessage = "GPKISecureWeb 설치를 확인 중 입니다.";
36GPKISecureWebUi.popupCheckMessage = "팝업이 차단된 경우 정상적으로 동작하지 않습니다.\n 팝업을 허용해 주세요";
37GPKISecureWebUi.setupCertFailed = "프로그램이 정상적으로 설치되어 있지 않습니다.\n 브라우저 재구동후 다시 설치하여 주세요";
38GPKISecureWebUi.downloadCheckMessage ="다운로드가 되지 않는 경우 '다운로드' 버튼을 눌러주세요";
39GPKISecureWebUi.setupConfirmMessage = "GPKISecureWeb 설치 확인에 실패하였습니다<br/>GPKISecureWeb 이 설치되어 있지 않은 경우에는 <br/>'설치' 버튼을 눌러주세요";//로그인을위해 보안프로그램을 설치해야합니다 설치하시겠습니까
40GPKISecureWebUi.setupConfirmMessageMAC = "GPKISecureWeb 설치 확인에 실패하였습니다.<br/>보안프로그램이 설치되어 있지 않은 경우에는 '설치' 버튼을<br/> 눌러주세요";
41GPKISecureWebUi.upgradeConfirmMessage = "설치된 GPKISecureWeb이 최신버전이 아닙니다.<br/>최신버전을 다운로드하여 설치하세요";
42GPKISecureWebUi.downloadPopMessge = "OS에 맞는 GPKISecureWeb을 설치하세요";
43GPKISecureWebUi.setupMessage = "설치";
44GPKISecureWebUi.startMessage = "실행";
45GPKISecureWebUi.cancelMessage = "취소";
46GPKISecureWebUi.restartDownLoadMessage = "다운로드";
47
48var GPKIClientJS = new GPKISecureWebJS();
49
50/*********************************************************************/
51//					GPKISubmit(form)						 		 //
52/*********************************************************************/
53function GPKISubmit(form){
54	return GPKISecureWebUi.GPKISubmit(form);
55}
56
57/*********************************************************************/
58//					Init()		                   			 		 //
59/*********************************************************************/
60function Init(){
61	return GPKISecureWebUi.Init();
62}
63
64/*********************************************************************/
65//					Login(target, form, isEmbedded)					 //
66/*********************************************************************/
67function Login(target, form, isEmbedded){
68	GPKISecureWebUi.Login(target, form, isEmbedded);
69}
70
71/*********************************************************************/
72//					LoginEmbedded(form)				 				 //
73/*********************************************************************/
74function LoginEmbedded(form){
75	return GPKISecureWebUi.LoginEmbedded(form);
76}
77
78/*********************************************************************/
79//					LoginLink(link)		     			 			 //
80/*********************************************************************/
81function LoginLink(link){
82	return GPKISecureWebUi.LoginLink(link, sessionid);
83}
84
85/*********************************************************************/
86//					Logout()					 		     		 //
87/*********************************************************************/
88function Logout(){
89	return GPKISecureWebUi.Logout();
90}
91
92/*********************************************************************/
93//					EnvelopedSignData(target,form)   		 		 //
94/*********************************************************************/
95function EnvelopedSignData(target, form){
96	GPKISecureWebUi.EnvelopedSignData(target, form);
97}
98
99/*********************************************************************/
100//					EnvelopData(form)		         		 		 //
101/*********************************************************************/
102function EnvelopedData(form, callback){
103	GPKISecureWebUi.EnvelopedData(form);
104}
105
106/*********************************************************************/
107//					SignedDataForm(target, form)           			 //
108/*********************************************************************/
109function SignedDataForm(target, form){
110	GPKISecureWebUi.SignedDataForm(target, form);
111}
112
113/*********************************************************************/
114//					SignedData(target, form)               			 //
115/*********************************************************************/
116function SignedData(target, data){
117	GPKISecureWebUi.SignedData(target, data);
118}
119
120/*********************************************************************/
121//					EncryptedSignData(target,form)		 			 //
122/*********************************************************************/
123function EncryptedSignData(target,form){
124	return GPKISecureWebUi.EncryptedSignData(target,form);
125}
126
127/*********************************************************************/
128//					Encrypt(form)    		 				 		 //
129/*********************************************************************/
130function Encrypt(form, callback){
131	GPKISecureWebUi.Encrypt(form);
132}
133
134/*********************************************************************/
135//					Decrypt(encData)    		 			 		 //
136/*********************************************************************/
137function Decrypt(encData){
138	return GPKISecureWebUi.Decrypt(encData);
139}
140
141/*********************************************************************/
142//					EncryptLink()									 //
143/*********************************************************************/
144function EncryptLink(link,isSubmit,sessionid, callback){
145	GPKISecureWebUi.EncryptLink(link,isSubmit,sessionid);
146}
147
148//================================================================================================================================
149var GPKISecureWebFormString = "";
150
151// GPKISecureWeb InstallCheck Popup Message
152GPKISecureWebFormString += '<div id="layerPop" class="GWSdialog-div"><br/>';
153GPKISecureWebFormString += decodeURI(GPKISecureWebUi.setupConfirmMessage);
154GPKISecureWebFormString += '<br/><br/><span class="GWSdialog-button-set2" >';
155GPKISecureWebFormString += '<a id="WinInstallButton" tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){GPKISecureWebUi.goInstall(\'layerPop\');}" href="javascript:GPKISecureWebUi.goInstall(\'layerPop\');" class="GWSdialog-blue-button">'+decodeURI(GPKISecureWebUi.setupMessage)+'</a>';
156/*GPKISecureWebFormString += '<a tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){GPKISecureWebUi.restartInstallCheck();}" href="javascript:GPKISecureWebUi.restartInstallCheck();" class="GWSdialog-grey-button">'+decodeURI(GPKISecureWebUi.startMessage)+'</a>';*/
157GPKISecureWebFormString += '<a tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){GPKISecureWebUi.closeLayer(\'true\');}" href="javascript:GPKISecureWebUi.closeLayer(\'true\');" class=\'GWSdialog-grey-button\'>'+decodeURI(GPKISecureWebUi.cancelMessage)+'</a></div>';
158
159GPKISecureWebFormString += '<div id="layerPopMac" class="GWSdialog-div"><br/><br/><br/>';
160GPKISecureWebFormString += decodeURI(GPKISecureWebUi.setupConfirmMessageMAC);
161GPKISecureWebFormString += '<div class="GWSdialog-MacPath-img"></div><br/><br/><span class="GWSdialog-button-set">';
162GPKISecureWebFormString += '<a id="MacInstallButton" tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){GPKISecureWebUi.goInstallMAC(\'layerPop\');}" href="javascript:GPKISecureWebUi.goInstallMAC(\'layerPop\');" class="GWSdialog-blue-button">'+decodeURI(GPKISecureWebUi.setupMessage)+'</a>';
163GPKISecureWebFormString += '<a tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){GPKISecureWebUi.closeLayerMAC(\'true\');}" href="javascript:GPKISecureWebUi.closeLayerMAC(\'true\');" class=\'GWSdialog-grey-button\'>'+decodeURI(GPKISecureWebUi.cancelMessage)+'</a></span></div>';
164
165GPKISecureWebFormString += '<div id="ML_linux_downloadPop" class="GWSdialog-div"><br/><br/><br/>';
166GPKISecureWebFormString += decodeURI(GPKISecureWebUi.downloadPopMessge);
167GPKISecureWebFormString += '<br/><br/><span class="GWSdialog-button-set">';
168GPKISecureWebFormString += '<a tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadUbuntuFileName32;GPKISecureWebUi.ML_linux_downloadPopClose();}" href="javascript:document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadUbuntuFileName32;GPKISecureWebUi.ML_linux_downloadPopClose();" class="GWSdialog-blue-button3">UBUNTU 32BIT</a>';
169GPKISecureWebFormString += '<a tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadUbuntuFileName64;GPKISecureWebUi.ML_linux_downloadPopClose();}" href="javascript:document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadUbuntuFileName64;GPKISecureWebUi.ML_linux_downloadPopClose();" class="GWSdialog-blue-button3">UBUNTU 64BIT</a>';
170GPKISecureWebFormString += '<a tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadFedoraFileName32;GPKISecureWebUi.ML_linux_downloadPopClose();}" href="javascript:document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadFedoraFileName32;GPKISecureWebUi.ML_linux_downloadPopClose();" class="GWSdialog-blue-button3">FEDORA 32BIT</a>';
171GPKISecureWebFormString += '<a tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadFedoraFileName64;GPKISecureWebUi.ML_linux_downloadPopClose();}" href="javascript:document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadFedoraFileName64;GPKISecureWebUi.ML_linux_downloadPopClose();" class="GWSdialog-blue-button3">FEDORA 64BIT</a>';
172GPKISecureWebFormString += '<a tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){GPKISecureWebUi.ML_linux_downloadPopClose();}" href="javascript:GPKISecureWebUi.ML_linux_downloadPopClose();" class=\'GWSdialog-grey-button3\'>
172'+decodeURI(GPKISecureWebUi.cancelMessage)+'</a></span></div>';
173
174GPKISecureWebFormString += '<iframe title="내용없음" id="GPKISecureWebIframe" style="display:none"></iframe>';
175
176GPKISecureWebFormString += '<div id="mask" class="GWSdialog-mask"></div>';
177
178GPKISecureWebFormString += '<div id="progress" class="GWSdialog-progress"><div class="GWSdialog-progress-set"><div class="GWSdialog-load-progress"/></div></div><span class="GWSdialog-progress-font">'+decodeURI(GPKISecureWebUi.installCheckMessage)+'</span></div>';
179
180GPKISecureWebFormString += '<div id="downloadChecker" class="GWSdialog-downloadChecker"><br/>';
181GPKISecureWebFormString += '<div class="GWSdialog-downloadChecker-icon"><div class="GWSdialog-load-progress"/></div></div>';
182GPKISecureWebFormString += '<span class="GWSdialog-downloadChecker-font">'+decodeURI(GPKISecureWebUi.downloadCheckMessage)+'</span>';
183GPKISecureWebFormString += '<span style="display:block; padding-left:50px;">';
184GPKISecureWebFormString += '<a id="GPKISecureWebInstallButton" tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){GPKISecureWebUi.goInstall(\'layerPop\');}" href="javascript:GPKISecureWebUi.goInstall(\'layerPop\');" class="GWSdialog-blue-button">'+decodeURI(GPKISecureWebUi.restartDownLoadMessage)+'</a>';
185GPKISecureWebFormString += '<a tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){GPKISecureWebUi.downloadCheckerClose(true);}" href="javascript:GPKISecureWebUi.downloadCheckerClose(true);" class=\'GWSdialog-grey-button\'>'+decodeURI(GPKISecureWebUi.cancelMessage)+'</a></span></div>';
186
187GPKISecureWebFormString += '<div id="layerPopUpgrade" class="GWSdialog-div"><br/>';
188GPKISecureWebFormString += decodeURI(GPKISecureWebUi.upgradeConfirmMessage);
189GPKISecureWebFormString += '<br/><br/><span class="GWSdialog-button-set">';
190GPKISecureWebFormString += '<a id="GPKISecureWebUpgradeButton" tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){GPKISecureWebUi.goUpgrade(\'layerPop\');}" href="javascript:GPKISecureWebUi.goUpgrade(\'layerPop\');" class="GWSdialog-blue-button">'+decodeURI(GPKISecureWebUi.restartDownLoadMessage)+'</a>';
191GPKISecureWebFormString += '<a tabindex="0" onKeyPress="javascript:if(event.keyCode == 13){GPKISecureWebUi.upgradeConfirmClose(\'layerPop\');}" href="javascript:GPKISecureWebUi.upgradeConfirmClose(\'layerPop\');" class=\'GWSdialog-grey-button\'>'+decodeURI(GPKISecureWebUi.cancelMessage)+'</a></span></div>';
192
193/* GPKISecureWeb default Version */
194if( false ){
195	document.writeln(GPKISecureWebFormString);
196}else{
197	$(document ).ready(function(){
198		var GPKISecureWebElementCheck = document.getElementById("GPKISecureWebDiv");
199		if( GPKISecureWebElementCheck === null || GPKISecureWebElementCheck === "" ){
200			var newDiv = document.createElement("div");
201			newDiv.id = "GPKISecureWebDiv";
202			newDiv.style.display = "none";
203			newDiv.innerHTML += GPKISecureWebFormString;			
204			document.body.appendChild(newDiv);
205		}
206	});
207}
208//================================================================================================================================
209//인스톨 확인 Dialog
210GPKISecureWebUi.installCheckdialog = function(){
211	try{
212		$("#progress").dialog({
213			width:GPKISecureWebUi.dialogWidth,
214			modal: true,
215			Position:"center",
216			dialogClass:"GPKIDialogClass",
217			closeOnEscape:false,
218			resizable: false,
219			create: function(event, ui){ $(".ui-dialog-titlebar-close").hide();$(".ui-dialog-title").hide();$(".ui-dialog-titlebar").hide();$(".ui-dialog-content").hide();$(this).removeClass("ui-dialog-content");$(this).removeClass("ui-widget-content");}
220		});
221	}catch( e ){
222		GPKISecureWebLog.log( " dialogError [ GPKISecureWebLog.installCheckDialog ]    :  "+ e.message);
223	}
224};
225
226GPKISecureWebUi.installCheckdialogClose = function(){
227	try{
228		$("#progress").dialog("close");
229	}catch( e ){
230		GPKISecureWebLog.log( " dialogError [ GPKISecureWebUi.installCheckdialogClose ]    :  "+ e.message);
231	}
232};
233
234GPKISecureWebUi.goInstall = function(IdName){
235	try{
236		GPKISecureWeb.popupCallback(true);
237	}catch( e ){
238		GPKISecureWebLog.log( " dialogError [ GPKISecureWebUi.goInstall ]    :  "+ e.message);
239	}
240};
241
242//설치 실행 취소 버튼 팝업
243GPKISecureWebUi.installPageConfirm = function(callback){
244	try{
245		$("#layerPop").dialog({
246			width:GPKISecureWebUi.dialogWidth,
247			Position:"center",
248			dialogClass:"GPKIDialogClass",
249			closeOnEscape:false,
250			modal: true,
251			resizable: false,
252			create: function(event, ui){ $(".ui-dialog-titlebar-close").hide();$(".ui-dialog-title").hide();$(".ui-dialog-titlebar").hide();$(".ui-dialog-content").hide();$(this).removeClass("ui-dialog-content");$(this).removeClass("ui-widget-content");}
253		});
254		GPKISecureWeb.popupCallback = "";
255		GPKISecureWeb.popupCallback = callback;
256	}catch( e ){
257		GPKISecureWebLog.log( " dialogError [ GPKISecureWebUi.installPageConfirm ]    :  "+ e.message);
258	}
259};
260
261//설치가이드 Dialog 닫기 ( 설치 안 할 경우 )
262GPKISecureWebUi.closeLayer = function(callbackFlag){
263	try{
264		$("#layerPop").dialog("close");
265		if( typeof GPKISecureWeb.GPKIpopup === "object" && GPKISecureWeb.GPKIpopup !== null ){
266			GPKISecureWeb.GPKIpopup.close();
267		}
268		if( callbackFlag ){
269			GPKISecureWeb.popupCallback(false);
270		}
271	}catch( e ){
272		GPKISecureWebLog.log( " dialogError [ GPKISecureWebUi.closeLayer ]    :  "+ e.message);
273	}
274};
275//직접다운로드 dialog
276GPKISecureWebUi.downloadChecker = function(){
277	try{
278		$("#downloadChecker").dialog({
279			width:GPKISecureWebUi.dialogWidth,
280			Position:"center",
281			dialogClass:"GPKIDialogClass",
282			closeOnEscape:false,
283			modal: true,
284			resizable: false,
285			create: function(event, ui){ $(".ui-dialog-titlebar-close").hide();$(".ui-dialog-title").hide();$(".ui-dialog-titlebar").hide();$(".ui-dialog-content").hide();$(this).removeClass("ui-dialog-content");$(this).removeClass("ui-widget-content");}
286		});
287	}catch( e ){
288		GPKISecureWebLog.log( " dialogError [ GPKISecureWebUi.downloadChecker ]    :  "+ e.message);
289	}
290};
291
292//직접다운로드 dialog close
293GPKISecureWebUi.downloadCheckerClose = function( closeCallbackFlag ){
294	try{
295		$("#downloadChecker").dialog("close");
296		if( closeCallbackFlag === true ){
297			GPKISecureWeb.popupCallback(false);
298		}
299	}catch( e ){
300		GPKISecureWebLog.log( " dialogError [ GPKISecureWebUi.downloadCheckerClose ]    :  "+ e.message);
301	}
302};
303
304//설치가이드 Dialog 닫기 ( 설치 안 할 경우 )
305GPKISecureWebUi.upgradeConfirmClose = function(IdName){
306	try{
307		$("#layerPopUpgrade").dialog("close");
308		GPKISecureWeb.popupCallback(false);
309	}catch( e ){
310		GPKISecureWebLog.log( " dialogError [ GPKISecureWebUi.upgradeConfirmClose ]    :  "+ e.message);
311	}
312};
313// 업그레이드 확인 팝업
314GPKISecureWebUi.upgradeConfirm = function(callback){
315	try{
316		$("#layerPopUpgrade").dialog({
317			width:GPKISecureWebUi.dialogWidth,
318			Position:"center",
319			dialogClass:"GPKIDialogClass",
320			closeOnEscape:false,
321			modal: true,
322			create: function(event, ui){ $(".ui-dialog-titlebar-close").hide();$(".ui-dialog-title").hide();$(".ui-dialog-titlebar").hide();$(".ui-dialog-content").hide();$(this).removeClass("ui-dialog-content");$(this).removeClass("ui-widget-content");}
323		});
324		GPKISecureWeb.popupCallback = "";
325		GPKISecureWeb.popupCallback = callback;
326	}catch( e ){
327		GPKISecureWebLog.log( " dialogError [ GPKISecureWebUi.upgradeConfirm ]    :  "+ e.message);
328	}
329};
330
331GPKISecureWebUi.goUpgrade = function(){
332	try{
333		$("#layerPopUpgrade").dialog("close");
334		GPKISecureWeb.popupCallback(true);
335	}catch( e ){
336		GPKISecureWebLog.log( " dialogError [ GPKISecureWebUi.goUpgrade ]    :  "+ e.message);
337	}
338};
339
340//설치파일 다운로드후 설치확인이 될때까지 풀링한다.
341GPKISecureWebUi.setupCheck = function(){
342	try{
343		var resultObj = GPKISecureWeb.InstallCheck();
344		var result = resultObj.ResultCode;
345		if( result === 0){
346			setTimeout(function(){
347				GPKISecureWeb.clientVersion = GPKISecureWeb.getAPIVersion();
348				var resultVersion = GPKISecureWeb.clientVersion.split(".");
349				var version = clientVersion.split(".");
350				for(i=0; i<=resultVersion.length; i++){
351					if(version[i] < resultVersion[i] ){
352						GPKISecureWebUi.downloadCheckerClose();
353						GPKISecureWebUi.successSetupCheck();
354						GPKISecureWeb.installCheckFlag = "ok";
355						break;
356					}else if(version[i] == resultVersion[i]){
357						if(i == 3){
358							GPKISecureWebUi.downloadCheckerClose();
359							GPKISecureWebUi.successSetupCheck();
360							GPKISecureWeb.installCheckFlag = "ok";
361						}
362					}else{
363						setTimeout("GPKISecureWebUi.setupCheck()",300);
364						break;
365					}
366				}
367			}, 300);
368		} else {
369			setTimeout("GPKISecureWebUi.setupCheck()",300);
370		}
371	}catch( e ){
372			setTimeout("GPKISecureWebUi.setupCheck()",300);
373	}	
374};
375
376GPKISecureWebUi.downLoadFile = function() {
377	try{
378		
379		if( downCheckCount < GPKISecureWeb.DownloadCount ){
380			downCheckCount++;
381			var os = GPKISecureWeb.getOS();
382			if( os.indexOf("MAC")> -1 ){	
383				document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadMacFileName;
384			}else if( os.indexOf("UBUNTU64")> -1 ){	
385				document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadUbuntuFileName64;
386			}else if( os.indexOf("UBUNTU32")> -1 ){
387				document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadUbuntuFileName32;
388			}else if( os.indexOf("FEDORA64")> -1 ){	
389				document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadFedoraFileName64;
390			}else if( os.indexOf("FEDORA32")> -1 ){	
391				document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadFedoraFileName32;
392			}else {
393				document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadWinFileName;
394				//document.location.href = "/gpkisecureweb/index.html";
395			}
396		}else{
397			return;
398		}
399	}catch(e){
400		document.location.href = GPKISecureWeb.DownloadURL + GPKISecureWeb.DownloadWinFileName;
401	}
402};
403
404GPKISecureWebUi.WinPopup = function( modeString ){
405	var WinFunc = function( isInstall ){
406		if( downCheckCount < GPKISecureWeb.DownloadCount ){
407			if( isInstall ){
408				if( GPKISecureWeb.isInstall == "download" ){
409					if( downCheckCount < GPKISecureWeb.DownloadCount ){
410						if( modeString === "install" ){
411							GPKISecureWebUi.closeLayer(false);
412						}
413						GPKISecureWebUi.downloadChecker();
414						GPKISecureWebUi.setupCheck();
415						GPKISecureWebUi.downLoadFile();
416					}else{
417						GPKISecureWebUi.downLoadFile();
418					}
419				} else {
420					GPKISecureWebUi.goInstallPage();
421				}
422			} else {
423				if(returnPageUse){
424					GPKISecureWebUi.goIndexPage();
425				}else{
426					return;
427				}
428			}
429		}else{
430			if(! isInstall ){
431				if(returnPageUse){
432					GPKISecureWebUi.goIndexPage();
433				}else{
434					return;
435				}
436			}
437		}
438	}
439	if( modeString === "install" ){
440		GPKISecureWebUi.installPageConfirm(WinFunc);
441	}else if( modeString ==="upgrade" ){
442		GPKISecureWebUi.upgradeConfirm(WinFunc);
443	}
444}
445//================================================================================================================
446//URLScheme
447//URL Scheme 으로 CS실행후 상호검증 진행
448GPKISecureWeb.StartCS = function( port )
449{
450	if (GPKISecureWebUi.documentWrite === true){
451		GPKISecureWeb.sendURLScheme( port );
452	}else{
453		ML$( document ).ready(function(){
454			GPKISecureWeb.sendURLScheme( port );
455		});
456	}
457};
458// 브라우저별 분기후 팝업이나 iframe을 이용해  URL Scheme으로 CS 실행 
459GPKISecureWeb.sendURLScheme = function( port ){
460	var os = GPKISecureWeb.getOS();
461	var GPKISecureWebBrowser = GPKISecureWeb.getBrowser();
462	var GPKIpopup = "";
463	if( GPKISecureWebBrowser.toUpperCase().indexOf( "MSIE" ) > -1 ){
464		GPKISecureWeb.openPopup();
465	}else if( GPKISecureWebBrowser.toUpperCase().indexOf( "FIREFOX" ) > -1 || GPKISecureWebBrowser.toUpperCase().indexOf( "OPERA" ) > -1 ||GPKISecureWebBrowser.toUpperCase().indexOf( "SAFARI" ) > -1 || GPKISecureWebBrowser.toUpperCase().indexOf( "CHROME" ) > -1 ){
466		window.document.getElementById("GPKISecureWebIframe").src="GPKISecureWebNP://";
467	}else if( ( GPKISecureWebBrowser.toUpperCase().indexOf( "TRIDENT" ) > -1 ) || GPKISecureWebBrowser.toUpperCase().indexOf( "MSIE 7" ) > -1  ){
468		GPKISecureWeb.openPopup();
469	}else if(  GPKISecureWebBrowser.toUpperCase().indexOf( "EDGE" ) > -1 && os.toUpperCase().indexOf("WINDOWS 10") > -1 ){
470		window.document.getElementById("GPKISecureWebIframe").src="GPKISecureWebNP://";
471	} else {
472		GPKISecureWeb.openPopup();
473	}	
474};
475GPKISecureWeb.openPopup = function(){
476	try{
477		GPKISecureWeb.GPKIpopup = window.open( GPKISecureWeb.UrlSchemeServerURL  + "call.html", "GPKISecureWeb", "width=315,height=115,left=5000,top=5000,resizable=no,toolbar=no,location=no,status=no" );
478		if( GPKISecureWeb.GPKIpopup === null ){
479				alert( decodeURI(GPKISecureWebUi.popupCheckMessage) );
480		}
481	}catch(e){
482		GPKISecureWebLog.log( " [GPKISecureWebUi.openPopup]"+ e.message);
483	}
484};
485GPKISecureWeb.GPKIpopupClose = function(){
486	var GPKISecureWebBrowser = GPKISecureWeb.getBrowser();
487	
488	try{
489		if( typeof GPKISecureWeb.GPKIpopup === "object" && GPKISecureWeb.GPKIpopup !== null ){
490			GPKISecureWeb.GPKIpopup.close();
491		}else if( GPKISecureWeb.GPKIpopup !== null ) {
492			if( GPKISecureWeb.GPKIpopup !== "" ){
493			if( ( GPKISecureWebBrowser.indexOf( "MSIE" ) > -1 ) || GPKISecureWebBrowser.indexOf( "Trident" ) > -1){
494				GPKISecureWeb.GPKIpopup.close();
495			}
496			setTimeout(GPKISecureWeb.GPKIpopupClose1,1000);
497		}
498		}
499	}catch(e){
500		if( GPKISecureWeb.GPKIpopup !== null ) {
501			GPKISecureWeb.GPKIpopup = window.open("about:blank", "GPKISecureWebNP","width=315,height=115,left=50000,top=5000,resizable=no,toolbar=no,location=no,status=no");
502			if( GPKISecureWeb.GPKIpopup !== null ) {
503				if( GPKISecureWeb.GPKIpopup !== "" ){
504					if( ( GPKISecureWebBrowser.indexOf( "MSIE" ) > -1 ) || GPKISecureWebBrowser.indexOf( "Trident" ) > -1){
505						GPKISecureWeb.GPKIpopup.close();
506					}
507					setTimeout(GPKISecureWeb.GPKIpopupClose1,1000);
508				}
509			}
510		}
511	}
512}
513GPKISecureWeb.GPKIpopupClose1 = function(){
514	try{ 
515		if( typeof GPKISecureWeb.GPKIpopup === "object" && GPKISecureWeb.GPKIpopup !== null ){
516			GPKISecureWeb.GPKIpopup.close();
517		}else if( GPKISecureWeb.GPKIpopup !== null ) {
518			if( GPKISecureWeb.GPKIpopup !== "" ){
519				if( ( GPKISecureWebBrowser.indexOf( "MSIE" ) > -1 ) || GPKISecureWebBrowser.indexOf( "Trident" ) > -1){
520					GPKISecureWeb.GPKIpopup.close(); 
521				}
522				setTimeout(GPKISecureWeb.GPKIpopupClose1,1000);
523			}
524		}
525	}catch(e){
526		GPKISecureWebLog.log( " [GPKISecureWebUi.GPKIpopupClose1]"+ e.message);
527	}
528};
529//====================================================================
530//GPKISecureWebNP 설치 관련 기능
531//====================================================================
532
533//설치페이지 이동
534GPKISecureWebUi.goInstallPage = function(){
535	GPKISecureWeb.setCookie( "GPKISecureWebReuturnURL", window.location.href, 0 );
536	window.location.href = GPKISecureWeb.InstallPageURL;
537};
538
539GPKISecureWebUi.restartInstallCheck = function(){
540	var os = GPKISecureWeb.getOS();
541	var GPKISecureWebBrowser = GPKISecureWeb.getBrowser();
542	installCheckCount = 0;
543	try{
544		GPKISecureWebUi.closeLayer();
545		GPKISecureWebUi.installCheckdialog();
546		GPKISecureWebUi.secureWebNPRunningCheck();
547	}catch(e){
548		GPKISecureWebLog.log( " [GPKISecureWebUi.restartInstallCheck]"+ e.message);
549	}
550	GPKISecureWeb.sendURLScheme();
551}
552
553GPKISecureWebUi.goIndexPage = function(){	
554	GPKISecureWeb.GPKIpopupClose(GPKISecureWeb.GPKIpopup);
555	if( typeof GPKISecureWeb.closeCallback !== 'function'){
556		document.location.href = returnIndexPage;
557	}else{
558		GPKISecureWeb.closeCallback();
559	}
560}
561
562GPKISecureWebUi.successInstallCheck = function(){
563	try{
564		
565		var os = GPKISecureWeb.getOS();
566		if( os.indexOf("win") >= 0){
567			GPKISecureWebUi.closeLayer();
568		}else{
569			GPKISecureWebUi.closeLayerMAC();
570		}
571	}catch( e ){	
572		GPKISecureWebLog.log( " [GPKISecureWebUi.successInstallCheck] [closeLayer]"+ e.message);
573	}
574	try{
575		GPKISecureWebUi.installCheckdialogClose();
576	}catch(e){
577		GPKISecureWebLog.log( " [GPKISecureWebUi.successInstallCheck] [installCheckdialogClose] "+ e.message);
578	};
579	GPKISecureWeb.GPKIpopupClose(GPKISecureWebUi.GPKIpopup);
580	if( typeof GPKISecureWeb.successCallback !== 'function'){	
581	}else{
582		GPKISecureWeb.successCallback();
583	}
584}
585
586GPKISecureWebUi.successSetupCheck = function(){
587	try{
588		
589		var os = GPKISecureWeb.getOS();
590		if( os.indexOf("win") >= 0){
591			GPKISecureWebUi.closeLayer();
592		}else{
593			GPKISecureWebUi.closeLayerMAC();
594		}
595	}catch( e ){	
596		GPKISecureWebLog.log( " [GPKISecureWebUi.successInstallCheck] [closeLayer]"+ e.message);
597	}
598	try{
599		GPKISecureWebUi.installCheckdialogClose();
600	}catch(e){
601		GPKISecureWebLog.log( " [GPKISecureWebUi.successInstallCheck] [installCheckdialogClose] "+ e.message);
602	};
603	GPKISecureWeb.GPKIpopupClose(GPKISecureWebUi.GPKIpopup);
604	if( typeof GPKISecureWeb.setupCheckCallback !== 'function'){	
605	}else{
606		GPKISecureWeb.setupCheckCallback();
607	}
608}
609GPKISecureWebUi.successRunningCheck = function(){
610	try{
611		
612		var os = GPKISecureWeb.getOS();
613		if( os.indexOf("win") >= 0){
614			GPKISecureWebUi.closeLayer();
615		}else{
616			GPKISecureWebUi.closeLayerMAC();
617		}
618	}catch( e ){	
619		GPKISecureWebLog.log( " [GPKISecureWebUi.successInstallCheck] [closeLayer]"+ e.message);
620	}
621	try{
622		GPKISecureWebUi.installCheckdialogClose();
623	}catch(e){
624		GPKISecureWebLog.log( " [GPKISecureWebUi.successInstallCheck] [installCheckdialogClose] "+ e.message);
625	};
626	GPKISecureWeb.GPKIpopupClose(GPKISecureWebUi.GPKIpopup);
627	if( typeof GPKISecureWeb.runningCheckCallback !== 'function'){	
628	}else{
629		GPKISecureWeb.runningCheckCallback();
630	}
631}
632GPKISecureWebUi.failedInstallCheck = function( dialogType, errorCode ){
633	//팝업창 닫기
634	try{
635		GPKISecureWeb.GPKIpopupClose(GPKISecureWeb.GPKIpopup);
636	}catch( e ){
637		GPKISecureWebLog.log( " [GPKISecureWebUi.failedInstallCheck] [ GPKISecureWebUi.GPKIpopupClose ]    :  "+ e.message);
638	}
639	//dialog 닫기
640	try{
641		if( dialogType === "installCheck"){
642			GPKISecureWebUi.installCheckdialogClose();
643		}else if( dialogType === "setupCheck" ){
644			GPKISecureWebUi.downloadCheckerClose();
645		}
646	}catch( e ){
647		GPKISecureWebLog.log( " [GPKISecureWebUi.failedInstallCheck] [ dialog close ]    :  "+ e.message);
648	}
649	if( typeof GPKISecureWeb.failedCallback !== 'function'){
650		if( errorCode === -3000 ){
651			alert( "쿠키를 사용하지 않는 경우 정상적으로 동작하지 않습니다.\n쿠키를 허용해주세요");
652		}else if( errorCode === -5000 ){
653			alert( "통신중 오류가 발생하였습니다.(E"+errorCode+")");
654		}else if( errorCode >= 12000 && errorCode <= 13000 ){
655			alert( "통신중 오류가 발생하였습니다.(E"+errorCode+")");
656		}else if( errorCode == 150 ){
657			//비밀번호 틀림 횟수 초과
658			return;
659		}else if( errorCode == -1000 ){
660			//alert( "클라이언트와 통신할수 없습니다.\n error : "+ errorCode );
661			installCheck.count = GPKISecureWeb.InstallCheckCount - 1;
662			try{
663				GPKISecureWebUi.closeMask();
664			}catch(e){
665				GPKISecureWebLog.log( " [GPKISecureWebUi.closeMask] :  "+ e.message);
666			}
667			GPKISecureWebUi.InstallCheck();
668		}else{
669			GPKISecureWebLog.log("GPKISecureWeb_MessageError","start GPKI Error : [ GPKISecureWeb "+decodeURI("%EA%B2%80%EC%A6%9D%EC%8B%A4%ED%8C%A8")+" ] "+"\n ErrorCode : "+errorCode, errorCode );
670			alert( decodeURI(GPKISecureWebUi.setupCertFailed) +"(E"+errorCode+")" ) ;
671			//GPKISecureWeb.TerminateCS();
672			document.location.href = returnIndexPage;
673		}
674	}else{
675		GPKISecureWeb.failedCallback( errorCode );
676	}
677}
678//================================================================================================================================
679GPKISecureWebUi.GPKISubmit = function( form, isEmbedded ){
680	
681	var queryString = "";
682	var qs_index = "";
683	var action = "";
684	var noenc_qs = "";
685	if ( form.action.indexOf('?') != -1 ){
686		alert(action);
687		action = form.action;
688		document.gpkiForm.action = action.substring( 0, form.action.lastIndexOf('?') );
689		queryString = action.substring( action.lastIndexOf('?') + 1, action.length) + '&';
690	}else{
691		document.gpkiForm.action = form.action;
692	}
693	
694	queryString += makeQueryString(form, isEmbedded);
695	return queryString;
696
697}
698
699GPKISecureWebUi.Init = function(){
700	var ret;
701	/*GPKISecureWeb.SetProperty(1,WorkDir);
702	GPKISecureWeb.SetProperty(2,ServerCert);
703	GPKISecureWeb.SetProperty(3,AlgoMode);
704	GPKISecureWeb.SetProperty(4,HashAlg);
705	GPKISecureWeb.SetProperty(5,GNCertType);
706	GPKISecureWeb.SetProperty(6,ValidCertInfo); 
707	GPKISecureWeb.SetProperty(7,'');						
708	GPKISecureWeb.SetProperty(8,'');					
709	GPKISecureWeb.SetProperty(9,smartCardOpt);	
710	GPKISecureWeb.SetProperty(10,phoneOpt);			
711	
712	GPKISecureWeb.SetProperty(11,langOpt);			
713	GPKISecureWeb.SetProperty(12,secureApiOpt);
714	
715	GPKISecureWeb.SetProperty(13,UbikeyWParam);
716	GPKISecureWeb.SetProperty(14,UbikeyCompany);
717	GPKISecureWeb.SetProperty(15,UbikeyKeyboardSec);
718	GPKISecureWeb.SetProperty(16,keysecOpt);
719	if(	typeof(UbikeyVersion)!='undefined' && UbikeyVersion != null){
720		GPKISecureWeb.SetProperty(17,UbikeyVersion);  
721	}
722	GPKISecureWeb.SetProperty(19, "행정자치부:행정안전부");
723	if(keysecOpt != null && keysecOpt == 2){
724		GPKISecureWeb.SetProperty(26,keyboardSecOpt);
725	}
726	
727	//인증기관 추가에 따른 변수 추가
728	GPKISecureWeb.SetProperty(27,encodeURIComponent(JSON.stringify(DS_PKI_CERT_PATH)));
729	GPKISecureWeb.SetProperty(28,encodeURIComponent(JSON.stringify(DS_PKI_POLICY_OID)));*/
730	
731	//20230810 sbj 사설망접근(PNA, Private Network Access) 정책 적용
732	// 기존 설정 값들을 JSON Object로 만든다
733	var prop = {}; // JSON객체생성
734
735	// 기존 SetProperty 함수에 설정되는 Key, Value 값을 JSON Key, Value로 설정한다.
736	prop[1] = WorkDir;
737	prop[2] = ServerCert;
738	prop[3] = AlgoMode;
739	prop[4] = HashAlg;
740	prop[5] = GNCertType;
741	prop[6] = ValidCertInfo;
742	prop[7] = '';
743	prop[8] = '';
744	prop[9] = smartCardOpt;
745	prop[10] = phoneOpt;
746	prop[11] = langOpt;
747	prop[12] = secureApiOpt;
748
749	prop[13] = UbikeyWParam;
750	prop[14] = UbikeyCompany;
751	prop[15] = UbikeyKeyboardSec;
752	prop[16] = keysecOpt;
753	if( typeof(UbikeyVersion)!='undefined' && UbikeyVersion != null){
754		prop[17] = UbikeyVersion;
755	}
756	prop[19] = "행정자치부:행정안전부";
757	if(keysecOpt != null && keysecOpt == 2){
758		prop[26] = keyboardSecOpt;
759	}
760	prop[27] = JSON.stringify(DS_PKI_CERT_PATH);
761	prop[28] = JSON.stringify(DS_PKI_POLICY_OID);
762
763	// JSON 타입의 설정 Key값은 0 이고, encodeURIComponent 로 인코딩하여 설정해야 한다.
764	GPKISecureWeb.SetProperty(0,  encodeURIComponent(JSON.stringify(prop)));
765	var ret = GPKISecureWeb.Init();
766	if(keysecOpt==2 && ret == 30003){
767		alert(ErrorMessage.code70018);
768	}else if( ret != 0 ){ 
769		alert(ErrorMessage.code30001 + ret);
770		return -1;		
771	}	
772
773	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
774	GPKISecureWeb.setServerEncoding(serverCharEnc);      // 서버 인코딩 지정 
775	GPKISecureWeb.setClientEncoding(clientCharEnc);      // 클라이언트 인코딩 지정
776			
777	return ret;
778	
779}
780
781GPKISecureWebUi.EmbInit = function(form){
782	return 0;
783}
784
785GPKISecureWebUi.LoginEmbedded = function(form){
786	var strSendData; 
787	strData=  encodeURIComponent(GPKISecureWebUi.GPKISubmit(form));
788	 
789	gfNextParameters = strData+'$'+form.method+'$'+form.action+'$'+form.sessionid.value;
790	embededWin.startAction();
791	return false;
792}
793
794GPKISecureWebUi.Login = function(target,form,isEmbeded){
795
796	var nResult;
797	var strReturnData;
798	var strData;
799	strData = GPKISecureWebUi.GPKISubmit(form, isEmbeded); 
800	
801	var certbag = {};
802	var cookieSession = GPKISecureWeb.getCookie("GPKISecureWebSession");
803	var sSiteID = SiteID+cookieSession;
804	
805	var initResult = GPKIClientJS.Init();
806	if(initResult != 0){
807		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
808		return false;
809	}
810
811	GPKIClientJS.SetProperty(2, ServerCert);
812	GPKIClientJS.SetProperty(3, 3);
813	GPKIClientJS.SetProperty(4, 4);
814
815	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
816	GPKIClientJS.setServerEncoding(2); // 서버 인코딩 지정 
817	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
818	
819	GPKIClientJS.Login(sSiteID, strData, certbag, function(result){
820		
821		if(isEmbeded){
822			form = document.getElementById("popForm");
823			strData = GPKISecureWebUi.GPKISubmit(form, true); 
824		}
825		
826		nResult = result.code;
827		strReturnData = result.message;
828
829        if ( typeof(target) == "undefined" || target == "" || target == null ) {
830            document.gpkiForm.target = "_self";
831        }else{
832            document.gpkiForm.target = target;
833        }
834
835		if(passwordCount!=0 && checkCount == passwordCount){
836			document.gpkiForm.pwCheckCode.value="77777";
837			document.gpkiForm.userDN.value= encodeURIComponent(userDN); 
838			document.gpkiForm.action = form.action;
839			document.gpkiForm.submit();
840		}else if( nResult == 0 ){
841			document.gpkiForm.encryptedData.value = replaceLtRt(strReturnData);
842			document.gpkiForm.pwCheckCode.value="0";
843			document.gpkiForm.method = form.method;
844			document.gpkiForm.action = form.action;
845			document.gpkiForm.submit();
846		}else{
847			alert(strReturnData); 
848		}
849	}, isEmbeded);
850}
851
852GPKISecureWebUi.LoginLink = function(link,cookieSession){	
853	var strData;
854	var nResult;
855	var strReturnData;
856	var strSendData;
857	
858	var cookieSession = GPKISecureWeb.getCookie("GPKISecureWebSession");
859	strData =  GPKISecureWeb.GPKILink( link );
860	
861	var certbag = {};
862	var sSiteID = SiteID+cookieSession;
863	
864	var initResult = GPKIClientJS.Init();
865	if(initResult != 0){
866		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
867		return false;
868	}
869
870	GPKIClientJS.SetProperty(2, ServerCert);
871	GPKIClientJS.SetProperty(3, 3);
872	GPKIClientJS.SetProperty(4, 4);
873
874	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
875	GPKIClientJS.setServerEncoding(2); // 서버 인코딩 지정 
876	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
877	
878	GPKIClientJS.Login(sSiteID, strData, certbag, function(result){
879		nResult = result.code;
880		strReturnData = result.message;
881		
882		if(passwordCount!=0 && checkCount == passwordCount){
883			document.gpkiForm.pwCheckCode.value="77777";
884			document.gpkiForm.userDN.value= encodeURIComponent(userDN); 
885			document.gpkiForm.action = link;
886			document.gpkiForm.submit();
887		}else if( nResult == 0){
888			document.gpkiForm.encryptedData.value = replaceLtRt(strReturnData);
889			document.gpkiForm.pwCheckCode.value="0";
890			document.gpkiForm.action = link;
891			
892			if ( typeof(link.target) == "undefined" || link.target == "" || link.target == null ) {
893				document.gpkiForm.target = "_self";
894			}else{
895				document.gpkiForm.target = link.target;
896			}
897			document.gpkiForm.submit();
898		}else{
899			alert(strReturnData); 
900		}
901	});
902}
903
904
905GPKISecureWebUi.Logout = function(){
906	var strData;
907	var nResult;
908	var strReturnData;
909	var strSendData; 
910	
911	var cookieSession = GPKISecureWeb.getCookie("GPKISecureWebSession");
912	var sSiteID = SiteID+cookieSession;
913	
914	var initResult = GPKIClientJS.Init();
915	if(initResult != 0){
916		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
917		return false;
918	}
919
920	GPKIClientJS.SetProperty(2, ServerCert);
921	GPKIClientJS.SetProperty(3, 3);
922	GPKIClientJS.SetProperty(4, 4);
923
924	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
925	GPKIClientJS.setServerEncoding(2); // 서버 인코딩 지정 
926	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
927	
928	nResult = GPKIClientJS.Logout(sSiteID);
929	if( nResult == 0 ){
930		top.location.href = ServiceStartPageURL;
931	}
932}
933
934GPKISecureWebUi.EnvelopedSignData = function(target,form){
935	var strData;
936	var nResult;
937	var strReturnData;
938		
939	strData=  GPKISecureWebUi.GPKISubmit(form);
940	var cookieSession = GPKISecureWeb.getCookie("GPKISecureWebSession");
941	
942	var certbag = {};
943	var sSiteID = SiteID+cookieSession;
944	
945	var initResult = GPKIClientJS.Init();
946	if(initResult != 0){
947		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
948		return false;
949	}
950
951	GPKIClientJS.SetProperty(2, ServerCert);
952	GPKIClientJS.SetProperty(3, 3);
953	GPKIClientJS.SetProperty(4, 4);
954
955	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
956	GPKIClientJS.setServerEncoding(2); // 서버 인코딩 지정 
957	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
958	
959	GPKIClientJS.EnvelopedSignData(sSiteID, strData, certbag, function(result){
960		nResult = result.code;
961		strReturnData = result.message;
962		
963		if(passwordCount!=0 && checkCount == passwordCount){
964			document.gpkiForm.pwCheckCode.value="77777";
965			document.gpkiForm.userDN.value= encodeURIComponent(userDN); 
966			document.gpkiForm.action = form.action;
967			document.gpkiForm.submit();
968		}else if( nResult == 0 ){
969			document.gpkiForm.encryptedData.value = replaceLtRt(strReturnData);
970			document.gpkiForm.pwCheckCode.value="0";
971			document.gpkiForm.method = form.method;
972			document.gpkiForm.action = form.action;
973			document.gpkiForm.submit();
974		}else{
975			if( nResult != 106)
976				alert(strReturnData); 
977		}
978	});
979	
980}
981
982GPKISecureWebUi.EnvelopedData = function(form){
983	var strData;
984	var nResult;
985	var strReturnData;
986	strData = GPKISecureWebUi.GPKISubmit(form); 
987	
988	var cookieSession = GPKISecureWeb.getCookie("GPKISecureWebSession");
989	var sSiteID = SiteID+cookieSession;
990	
991	var initResult = GPKIClientJS.Init();
992	if(initResult != 0){
993		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
994		return false;
995	}
996
997	GPKIClientJS.SetProperty(2, ServerCert);
998	GPKIClientJS.SetProperty(3, 3);
999	GPKIClientJS.SetProperty(4, 4);
1000
1001	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
1002	GPKIClientJS.setServerEncoding(2); // 서버 인코딩 지정 
1003	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
1004	
1005	GPKIClientJS.EnvelopData(sSiteID, strData, function(result){
1006		nResult = result.code;
1007		strReturnData = result.message;
1008		
1009		if( nResult == 0 ){
1010			document.gpkiForm.encryptedData.value = replaceLtRt(strReturnData);
1011			document.gpkiForm.pwCheckCode.value="0";
1012			document.gpkiForm.method = form.method;
1013			document.gpkiForm.action = form.action;
1014			document.gpkiForm.submit();
1015		}else{
1016			if( nResult != 106){
1017				alert(strReturnData); 
1018			}
1019		}
1020	});
1021}
1022
1023
1024GPKISecureWebUi.SignedDataForm = function(target,form){
1025	var nResult;
1026	var strData;
1027	strData = GPKISecureWebUi.GPKISubmit(form);
1028	
1029	var certbag = {};
1030	var cookieSession = GPKISecureWeb.getCookie("GPKISecureWebSession");
1031	var sSiteID = SiteID+cookieSession;
1032	
1033	var initResult = GPKIClientJS.Init();
1034	if(initResult != 0){
1035		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
1036		return false;
1037	}
1038
1039	GPKIClientJS.SetProperty(2, ServerCert);
1040	GPKIClientJS.SetProperty(3, 3);
1041	GPKIClientJS.SetProperty(4, 4);
1042
1043	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
1044	GPKIClientJS.setServerEncoding(2); // 서버 인코딩 지정 
1045	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
1046	
1047	GPKIClientJS.SignedData(sSiteID, strData, certbag, function(result){
1048		nResult = result.code;
1049		if(passwordCount!=0 && checkCount == passwordCount){
1050			document.gpkiForm.pwCheckCode.value="77777";
1051			document.gpkiForm.userDN.value= encodeURIComponent(userDN); 
1052			document.gpkiForm.action = form.action;
1053			document.gpkiForm.submit();
1054		}else if( nResult == 0 ){
1055			document.gpkiForm.encryptedData.value = replaceLtRt(result.message);
1056			document.gpkiForm.pwCheckCode.value="0";
1057			document.gpkiForm.method = form.method;
1058			document.gpkiForm.action = form.action;
1059			document.gpkiForm.submit();
1060		}else{
1061			if( nResult == 30053 )
1062				result.message = ErrorTest.code30053;
1063				alert(result.message); 
1064		}
1065	});
1066}
1067
1068GPKISecureWebUi.SignedData = function(target,data){
1069	var nResult;
1070	var strReturnData;
1071	
1072	var dataOrg = data.split('_')[0];
1073	if(dataOrg == null || dataOrg == ""){
1074		alert(ErrorMessage.code70003);
1075		return false;
1076	}
1077	
1078	var certbag = {};
1079	var cookieSession = GPKISecureWeb.getCookie("GPKISecureWebSession");
1080	var sSiteID = SiteID+cookieSession;
1081	
1082	var initResult = GPKIClientJS.Init();
1083	if(initResult != 0){
1084		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
1085		return false;
1086	}
1087
1088	GPKIClientJS.SetProperty(2, ServerCert);
1089	GPKIClientJS.SetProperty(3, 3);
1090	GPKIClientJS.SetProperty(4, 4);
1091
1092	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
1093	GPKIClientJS.setServerEncoding(2); // 서버 인코딩 지정 
1094	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
1095	
1096	var idn = document.getElementById('ssn');
1097	if(idn !=null && typeof(idn)!='undefined' && idn.value.length > 0) {
1098		GPKIClientJS.SignedDataWithVIDCheck(sSiteID, dataOrg, idn.value, certbag, function(result){
1099			nResult = result.code;
1100			strReturnData = result.message;
1101			
1102			if(passwordCount!=0 && checkCount == passwordCount){
1103				document.gpkiForm.pwCheckCode.value="77777";
1104				document.gpkiForm.userDN.value= encodeURIComponent(userDN);
1105			}else if( nResult == 0 ){
1106				var signedDataField = document.getElementById('signedDataValue');
1107				if (signedDataField != null && typeof(signedDataField) != 'undefined') {
1108					signedDataField.value = strReturnData;
1109					document.gpkiForm.pwCheckCode.value="0";
1110				} else{
1111					alert(ErrorMessage.code70003);
1112				}
1113				return strReturnData;
1114				
1115			}else{
1116				if( nResult == 30053){
1117					alert(ErrorMessage.code30053);
1118				}else if(nResult == 30063){
1119					alert(ErrorMessage.code30063);
1120				}
1121				else {
1122					makeError("code" + nResult);	
1123				}			
1124				return "";
1125			}
1126		});
1127	}else{
1128		GPKIClientJS.SignedData(sSiteID, dataOrg, certbag, function(result){
1129			nResult = result.code;
1130			strReturnData = result.message;
1131			
1132			if(passwordCount!=0 && checkCount == passwordCount){
1133				document.gpkiForm.pwCheckCode.value="77777";
1134				document.gpkiForm.userDN.value= encodeURIComponent(userDN);
1135			}else if( nResult == 0 ){
1136				var signedDataField = document.getElementById('signedDataValue');
1137				if (signedDataField != null && typeof(signedDataField) != 'undefined') {
1138					signedDataField.value = strReturnData;
1139					document.gpkiForm.pwCheckCode.value="0";
1140				} else{
1141					alert(ErrorMessage.code70003);
1142				}
1143				return strReturnData;
1144				
1145			}else{
1146				if( nResult == 30053){
1147					alert(ErrorMessage.code30053);
1148				}else if(nResult == 30063){
1149					alert(ErrorMessage.code30063);
1150				}
1151				else {
1152					makeError("code" + nResult);	
1153				}			
1154				return "";
1155			}
1156		});
1157	}
1158}	
1159
1160GPKISecureWebUi.EncryptedSignData = function(target,form){
1161	var strData;
1162	var nResult;
1163	var strReturnData;
1164	strData = GPKISecureWebUi.GPKISubmit(form);
1165	
1166	var certbag = {};
1167	var cookieSession = GPKISecureWeb.getCookie("GPKISecureWebSession");
1168	var sSiteID = SiteID+cookieSession;
1169	
1170	var initResult = GPKIClientJS.Init();
1171	if(initResult != 0){
1172		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
1173		return false;
1174	}
1175
1176	GPKIClientJS.SetProperty(2, ServerCert);
1177	GPKIClientJS.SetProperty(3, 3);
1178	GPKIClientJS.SetProperty(4, 4);
1179
1180	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
1181	GPKIClientJS.
1181setServerEncoding(2); // 서버 인코딩 지정 
1182	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
1183	
1184	GPKIClientJS.EncryptedSignData(sSiteID, strData, function(result){
1185		nResult = result.code;
1186		strReturnData = result.message;
1187		
1188		if(passwordCount!=0 && checkCount == passwordCount){
1189			document.gpkiForm.pwCheckCode.value="77777";
1190			document.gpkiForm.userDN.value= encodeURIComponent(userDN); 
1191			document.gpkiForm.action = form.action;
1192			document.gpkiForm.submit();
1193		}else if( nResult == 0 ){
1194			document.gpkiForm.encryptedData.value = replaceLtRt(strReturnData);
1195			document.gpkiForm.pwCheckCode.value="0";
1196			document.gpkiForm.method = form.method;
1197			document.gpkiForm.action = form.action;
1198			document.gpkiForm.submit();
1199		}else{
1200			if( nResult == 30053){
1201				//obj.ResultMessage = 'Not Exist SecureSession. \n Please retry after you create Securesession';
1202				strReturnData = ErrorMessage.code30053;
1203				alert(strReturnData);
1204			}
1205			location.href = ServiceStartPageURL;
1206		}
1207	});
1208	
1209}
1210
1211GPKISecureWebUi.Encrypt = function(form){
1212	var nResult;
1213	var strReturnData;
1214	var strData;
1215	strData = GPKISecureWebUi.GPKISubmit(form);
1216	
1217	var cookieSession = GPKISecureWeb.getCookie("GPKISecureWebSession");
1218	var sSiteID = SiteID+cookieSession;
1219	
1220	var initResult = GPKIClientJS.Init();
1221	if(initResult != 0){
1222		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
1223		return false;
1224	}
1225
1226	GPKIClientJS.SetProperty(2, ServerCert);
1227	GPKIClientJS.SetProperty(3, 3);
1228	GPKIClientJS.SetProperty(4, 4);
1229
1230	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
1231	GPKIClientJS.setServerEncoding(2); // 서버 인코딩 지정 
1232	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
1233	
1234	GPKIClientJS.Encrypt(sSiteID, strData, function(result){
1235		nResult = result.code;
1236		strReturnData = result.message;
1237		
1238		if( nResult == 0 ){
1239			document.gpkiForm.encryptedData.value = replaceLtRt(strReturnData);
1240			document.gpkiForm.pwCheckCode.value="0";
1241			document.gpkiForm.method = form.method;
1242			document.gpkiForm.action = form.action;
1243			document.gpkiForm.submit();
1244		}else{
1245			if( nResult == 30053){
1246				alert(ErrorMessage.code30053);
1247				return false;
1248			}else{
1249				alert(strReturnData);
1250				return false;
1251			}
1252			location.href = ServiceStartPageURL;
1253			return false;
1254		}
1255	});
1256}
1257
1258GPKISecureWebUi.EncryptLink = function(link,isSubmit,sessionid){
1259	var strData;
1260	strData = GPKISecureWeb.GPKILink(link); 
1261	var cookieSession = GPKISecureWeb.getCookie("GPKISecureWebSession");
1262	link.href += "encryptedData=";	
1263	
1264	var sSiteID = SiteID+cookieSession;
1265	
1266	var initResult = GPKIClientJS.Init();
1267	if(initResult != 0){
1268		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
1269		return false;
1270	}
1271
1272	GPKIClientJS.SetProperty(2, ServerCert);
1273	GPKIClientJS.SetProperty(3, 3);
1274	GPKIClientJS.SetProperty(4, 4);
1275
1276	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
1277	GPKIClientJS.setServerEncoding(2); // 서버 인코딩 지정 
1278	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
1279	
1280	GPKIClientJS.Encrypt(sSiteID, strData, function(result){
1281		nResult = result.code;
1282		strReturnData = result.message;
1283		
1284		if(nResult == 0){
1285			if(isSubmit==null || typeof(isSubmit)=='undefined' || isSubmit){
1286				document.gpkiForm.encryptedData.value = replaceLtRt(strReturnData);
1287				document.gpkiForm.pwCheckCode.value="0";
1288				document.gpkiForm.action = link.href.substring(link.href.lastIndexOf('\/')+1,link.href.lastIndexOf('\?'));
1289				document.gpkiForm.target="_self";
1290				document.gpkiForm.submit();
1291			}else{
1292				strData = replaceEscapeString(replaceLtRt(strReturnData));
1293				link.href += replaceLtRt(strData);
1294			}
1295		}else{
1296			if(nResult == 30053){
1297				strReturnData = ErrorMessage.code30053;
1298			}
1299			alert(strReturnData);
1300			return false;
1301		}
1302	});
1303}
1304
1305GPKISecureWebUi.Decrypt = function(encData){
1306	var strReturnData;
1307	var strData = encData;
1308	
1309	var cookieSession = GPKISecureWeb.getCookie("GPKISecureWebSession");
1310	var sSiteID = SiteID+cookieSession;
1311	
1312	var initResult = GPKIClientJS.Init();
1313	if(initResult != 0){
1314		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
1315		return false;
1316	}
1317
1318	GPKIClientJS.SetProperty(2, ServerCert);
1319	GPKIClientJS.SetProperty(3, 3);
1320	GPKIClientJS.SetProperty(4, 4);
1321
1322	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
1323	GPKIClientJS.setServerEncoding(2); // 서버 인코딩 지정 
1324	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
1325	
1326	nResult = GPKIClientJS.Decrypt(sSiteID, strData);
1327	strReturnData = GPKIClientJS.GetReturnData();
1328	var obj = JSON.parse(strReturnData);
1329	
1330	if( nResult == 0 ){
1331		return obj.ResultMessage;
1332	}else{
1333		if(nResult == 30053){
1334			alert(ErrorMessage.code30053);
1335			
1336		}else{
1337			alert(ErrorMessage.code70004 + obj.ResultMessage);
1338		}
1339		return false;
1340		location.href = ServiceStartPageURL;
1341	}
1342}
1343GPKISecureWebUi.KeyboardSecurityLoad = function(){
1344	if(keyboardSecOpt == 2){
1345		npPfsCtrl.RescanField();
1346		$(".nppfs-elements").attr("style","display:none");
1347	}
1348	
1349}
1350//===========================================================================================================================================================
1351/* 2019-04-03  function createStandardXHR(){try{return new window.XMLHttpRequest}catch(a){GPKISecureWebLog.log("GPKISecureWeb.createStandardXHR :  [ "+a.message+" ]["+a.code+" ]")}}function createActiveXHR(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(a){GPKISecureWebLog.log("GPKISecureWeb.createActiveXHR :  [ "+a.message+" ]["+a.code+" ]")}}function makeQueryString(a){var b=new Array(a.elements.length),c=new Array(a.elements.length),d=!1,e=0,f="";for(len=a.elements.length,i=0;i<len;i++)if("button"!=a.elements[i].type&&"reset"!=a.elements[i].type&&"submit"!=a.elements[i].type)if("radio"==a.elements[i].type||"checkbox"==a.elements[i].type)1==a.elements[i].checked&&(b[e]=a.elements[i].name,c[e]=encodeURIComponent(a.elements[i].value),e++);else{if(b[e]=a.elements[i].name,"select-one"==a.elements[i].type){var g=a.elements[i].selectedIndex;""!=a.elements[i].options[g].value?c[e]=a.elements[i].options[g].value:c[e]=encodeURIComponent(a.elements[i].options[g].text)}else c[e]=a.elements[i].value;e++}for(i=0;i<e;i++)d?f+="&":d=!0,f+=b[i],f+="=",f+="challenge"!=b[i]?encodeURIComponent(c[i]):c[i];return f}function replaceEscapeString(a){var b,c,d="",e="";for(e=String(a),b=0;b<e.length;b++)c=e.charAt(b),d+=" "==c?"%20":"%"==c?"%25":"&"==c?"%26":"+"==c?"%2B":"="==c?"%3D":"?"==c?"%3F":c;return d}function embeddedEnterEvent(a){return 13==a.keyCode?(LoginEmbedded(document.getElementById("popForm")),!1):void 0}function loadJavascript(URL,callback,event,charet){var xmlhttp=null;xmlhttp=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),URL=null!=charet&&"undefined"!=typeof charet&&0!=charet.length?URL+"_"+charet:URL,xmlhttp.open("GET",URL,!1),xmlhttp.onreadystatechange=function(){4==xmlhttp.readyState&&200==xmlhttp.status&&"OK"==xmlhttp.statusText&&eval(xmlhttp.responseText)},xmlhttp.send("");var userAgent=navigator.userAgent;return userAgent.indexOf("Firefox")>-1&&userAgent.indexOf("3.6.")>-1&&4==xmlhttp.readyState&&200==xmlhttp.status&&"OK"==xmlhttp.statusText&&eval(xmlhttp.responseText),null!=event&&"undefined"!=typeof event?callback(event):callback()}function cipherAction(){gfNextFunc(gfNextParameters)}function vKSetPointInit(a,b,c){var d=b.indexOf("<gpki"),e="</gpki:ENCRYPTED DATA>",f=b.indexOf(e)+e.length,g=b.substring(d,f),h=new Array;h=g.split("+ "),g="";for(var i=0;i<h.length;i++){var j=h[i].replace("'","");j=j.replace(/(^\s*)|(\s*$)/gi,""),g+=j.replace("\n","")}GPKISecureWeb.SetPointInit(a,g,c)}function vKSetPoint(a){GPKISecureWeb.SetPoint(a)}function displayEmbedWindow(a){displayWindow(a,!0)}function displayWindow(a,b,c){var d;null!=c&&"undefined"!=typeof c&&(gpSessionId=c);try{b?(d=new CertSelect(!0,gpSessionId),embededWin=d):d=new CertSelect(!1,gpSessionId)}catch(e){d=new CertSelect(!1,gpSessionId)}var f=new Array;f[0]=RequestSKeyboard,f[1]=EncryptLink,f[2]=vKSetPointInit,f[3]=vKSetPoint,d.setKeyboardSec(keysecOpt,f),GPKISecureWeb.SetProperty(16,keysecOpt),d.show(a)}function RequestSKeyboard(a,b){var c,d,e;if(d=Init(),117!=d){if(1==b.length)c="func="+b[0];else{if(4!=b.length)return;c="func="+b[0]+"&change="+b[1]+"&dummy="+b[2]}null!=sessionid&&"undefined"!=typeof sessionid&&(GPKISecureWeb.SetSessionID(sessionid),gpSessionId=sessionid),d=GPKISecureWeb.Encrypt(SiteID+gpSessionId,c),e=GPKISecureWeb.GetReturnData();var f=JSON.parse(e);if(0==d){var g="./makeDSKeySecure";g+="."+addPageExt(),g+="?encryptedData="+encodeURIComponent(f.ResultMessage)+"&mkdummy="+b[2],"php"!=addPageExt()?a.src=g:loadJavascript(g,showPHPVKeyboard,a)}else 106!=d&&alert(f.ResultMessage)}}function showPHPVKeyboard(a){var b=decodeURIComponent(urlBase64Image);a.src="data:image/jpeg;base64,"+b}function initSecureSession(){if(0!=GPKISecureWeb.initFlag&&(GPKISecureWebUi.InitCheck(),0!=GPKISecureWeb.initFlag))return!1;var a=GPKISecureWeb.SetSessionID(sessionid),b=GPKISecureWeb.Encrypt(SiteID+se
1351ssionid,"111");0==a&&30053==b&&(location.href="./requestSecureSession."+serverLangExt+"?rnd="+sessionid)}function addPageExt(){var a,b=window.location.href;return a=b.indexOf(".aspx")>-1?"aspx":b.indexOf(".asp")>-1?"asp":b.indexOf(".php")>-1?"php":"jsp"}function replaceServerScriptExt(){$("#gpkilink").find("a").each(function(){if($(this).attr("href").indexOf(".html")<0){var a=$(this).attr("href");$(this).attr("href",serverLangExt+"/"+a+"."+serverLangExt)}})}function replaceLtRt(a){return aspxXSSvalidate&&null!=a&&"jsp"==serverLangExt&&(a=a.replace(/</gi,"_"),a=a.replace(/>/gi,"_")),$.trim(a)}function postSignedDataToServer(a){return 0!=vidCheck||null==a||""==a?!1:(document.gpkiForm.encryptedData.value=a,document.gpkiForm.method="post",document.gpkiForm.action="./createSecureSession_1_1_response."+serverLangExt,void document.gpkiForm.submit())}GPKISecureWebLog=new Object,GPKISecureWebLog.logType="",GPKISecureWebLog.log=function(a){"console"==GPKISecureWebLog.logType?console.log(a):"alert"==GPKISecureWebLog.logType&&alert(a)};var GPKISecureWebAjax={};GPKISecureWebAjax.xhr=void 0!==window.ActiveXObject?function(){return GPKISecureWeb.AjaxLocal&&createStandardXHR()||createActiveXHR()}:createStandardXHR,GPKISecureWebAjax.request=function(a,b,c,d){try{var e=GPKISecureWebAjax.xhr(),f=!b;if(e.open("POST",a,f),e.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),e.send(c),b===!1)e.onreadystatechange=function(){4==e.readyState&&(200==e.status?d(e.responseText,0):d(e.statusText,e.status))};else if(b===!0)if(4==e.readyState){if(200==e.status)return e.responseText;GPKISecureWebLog.log("GPKISecureWebAjaxError","AJAX Failed : [ xmlHttpRequest.statusText ][ "+e.statusText+" ][xmlHttpRequest.readyState][ "+e.readyState+" ]")}else GPKISecureWebLog.log("GPKISecureWebAjaxError","AJAX Failed : [ xmlHttpRequest.statusText ][ "+e.statusText+" ][xmlHttpRequest.readyState][ "+e.readyState+" ]")}catch(g){GPKISecureWebLog.log("GPKISecureWebAjaxError","AJAX Failed : [ xmlHttpRequest.statusText ][ "+e.statusText+" ][xmlHttpRequest.readyState][ "+e.readyState+" ]",e.status)}},GPKISecureWeb.encodeUtf8andBase64=function(a){var b,c,d,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",f="",g="",h=0;for(a=unescape(encodeURIComponent(a)),maxline=(a.length+2-(a.length+2)%3)/3*4;h<a.length;)b=a.charCodeAt(h++),c=a.charCodeAt(h++),d=a.charCodeAt(h++),f+=e.charAt(b>>2),f+=e.charAt((3&b)<<4|c>>4),isNaN(c)?f+="==":(f+=e.charAt((15&c)<<2|d>>6),f+=isNaN(d)?"=":e.charAt(63&d)),maxline&&f.length>maxline&&(g+=f.substr(0,maxline)+"\r\n",f=f.substr(maxline));return g+=f},GPKISecureWeb.InitCheck=function(){var a=GPKISecureWeb.makeJsonMessage("InitCheck");try{var b=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,a),c="";return c=JSON.parse(b),c.ResultCode}catch(d){return d.code}},GPKISecureWeb.SetProperty=function(a,b){var c=GPKISecureWeb.makeJsonMessage("SetProperty",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c),e=JSON.parse(d);return e.ResultCode}catch(f){return GPKISecureWebLog.log("GPKISecureWeb.SetPropertyError :  [ "+f.message+" ]["+f.code+" ]"),f.code}},GPKISecureWeb.Init=function(){var a=GPKISecureWeb.makeJsonMessage("Init");try{var b=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,a),c=JSON.parse(b);return c.ResultCode}catch(d){return GPKISecureWebLog.log("GPKISecureWeb.InitError :  [ "+d.message+" ]["+d.code+" ]"),d.code}},GPKISecureWeb.UnInit=function(){var a=GPKISecureWeb.makeJsonMessage("UnInit");try{var b=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,a),c=JSON.parse(b);return c.ResultCode}catch(d){return GPKISecureWebLog.log("GPKISecureWeb.UnInitError :  [ "+d.message+" ]["+d.code+" ]"),d.code}},GPKISecureWeb.GetReturnData=function(){var a=GPKISecureWeb.makeJsonMessage("GetReturnData");try{var b=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,a);return b}catch(c){return GPKISecureWebLog.log("GPKISecureWeb.GetReturnDataError :  [ "+c.message+" ]["+c.code+" ]"),c.code}},GPKISecureWeb.Logout=function(a){var b=GPKISecureWeb.makeJsonMessage("Logout",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return d.ResultCode}catch(e){return GPKISecureWebLog.log("GPKISecureWeb.LogoutError :  [ "+e.message+" ]["+e.code+" ]"),e.code}},GPKISecureWeb.setCookie=function(a,b,c){var d=new Date;d.setTime(d.getTime()+24*c*60*60*1e3);var e="expires="+d.toUTCString();0===c?document.cookie=a+"="+b+"; path=/; ":document.cookie=a+"="+b+"; "+e+"; path=/;"}
1351,GPKISecureWeb.getCookie=function(a){if("true"===isCookie){for(var b=a+"=",c=document.cookie.split(";"),d=0;d<c.length;d++){for(var e=c[d];" "===e.charAt(0);)e=e.substring(1);if(0===e.indexOf(b))return e.substring(b.length,e.length)}return""}return"GPKISecureWebSession"===a?session:""},GPKISecureWeb.trim=function(a){return a+="",a=a.replace(/^\s+|\s+$/gm,""),a=a.replace(/[\r][\n]/g,""),a=a.replace(/[\x10][\x13]/g,"")},GPKISecureWeb.createGPKISecureWebSessionID=function(){"true"===isCookie?(sessionid=GPKISecureWeb.getCookie("GPKISecureWebSession"),""===sessionid&&GPKISecureWeb.setCookie("GPKISecureWebSession",GPKISecureWeb.makeSessionString(),0)):""==sessionid&&(sessionid=GPKISecureWeb.makeSessionString())},GPKISecureWeb.makeSessionString=function(){for(var a="",b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",c=0;20>c;c++)a+=b.charAt(Math.floor(Math.random()*b.length));return a},GPKISecureWeb.getOS=function(){try{var a=navigator.userAgent;return a=a.toUpperCase(),-1!=a.indexOf("NT 5.1")?"windows XP":-1!=a.indexOf("NT 6.0")?"windows vista":-1!=a.indexOf("NT 6.1")?"windows 7":-1!=a.indexOf("NT 6.2")?"windows 8":-1!=a.indexOf("NT 6.3")?"windows 8.1":-1!=a.indexOf("NT 10.0")?"windows 10":-1!=a.indexOf("IPAD")?"IOS":-1!=a.indexOf("ANDROID")?"Android":-1!=a.indexOf("BLACKBERRY")?"BlackBerry":-1!=a.indexOf("MAC")?"MAC":-1!=a.indexOf("SYMBIAN")?"Symbian":-1!=a.indexOf("UBUNTU")?-1!=a.indexOf("86_64")?"UBUNTU64":"UBUNTU32":-1!=a.indexOf("FEDORA")?-1!=a.indexOf("86_64")?"FEDORA64":"FEDORA32":-1!=a.indexOf("LINUX")?-1!=a.indexOf("86_64")?"LINUX64":"LINUX32":"Unknown"}catch(b){return"Unknown"}},GPKISecureWeb.InstallCheck=function(){var a=(GPKISecureWeb.setSessionTimeout,GPKISecureWeb.makeJsonMessage("InitCheck"));try{var b=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,a),c=JSON.parse(b);return 0===c.ResultCode&&GPKISecureWeb.setCookie("GPKISecureWebSetupStatus","1",1),c}catch(d){return GPKISecureWebLog.log("GPKISecureWeb.InstallCheckError : [ "+d.message+" ]["+d.code+" ]"),{ResultCode:-1666,ResultMessage:d.name}}},GPKISecureWeb.Login=function(a,b){var c=GPKISecureWeb.makeJsonMessage("Login",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c),e=JSON.parse(d);return e.ResultCode}catch(f){return GPKISecureWebLog.log("GPKISecureWebLog.LoginError :  [ "+f.message+" ]["+f.code+" ]"),f.code}},GPKISecureWeb.EnvelopedSignData=function(a,b){var c=GPKISecureWeb.makeJsonMessage("EnvelopedSignData",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c),e=JSON.parse(d);return e.ResultCode}catch(f){return GPKISecureWebLog.log("GPKISecureWeb.EnvelopedSignDataError :  [ "+f.message+" ]["+f.code+" ]"),f.code}},GPKISecureWeb.EnvelopData=function(a,b){var c=GPKISecureWeb.makeJsonMessage("EnvelopData",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c),e=JSON.parse(d);return e.ResultCode}catch(f){return GPKISecureWebLog.log("GPKISecureWeb.EnvelopDataError :  [ "+f.message+" ]["+f.code+" ]"),f.code}},GPKISecureWeb.EncryptedSignData=function(a,b,c){var d=GPKISecureWeb.makeJsonMessage("EncryptedSignData",a,b,c);try{var e=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,d),f=JSON.parse(e);return f.ResultCode}catch(g){return GPKISecureWebLog.log("GPKISecureWeb.EncryptedSignDataError :  [ "+g.message+" ]["+g.code+" ]"),g.code}},GPKISecureWeb.SignedData=function(a,b){var c=GPKISecureWeb.makeJsonMessage("SignedData",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c),e=JSON.parse(d);return e.ResultCode}catch(f){return GPKISecureWebLog.log("GPKISecureWebLog.SignedDataError :  [ "+f.message+" ]["+f.code+" ]"),f.code}},GPKISecureWeb.SignedDataWithVIDCheck=function(a,b,c,d){var e=GPKISecureWeb.makeJsonMessage("SignedDataWithVIDCheck",a,c,d);try{var f=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,e),g=JSON.parse(f);return g.ResultCode}catch(h){return GPKISecureWebLog.log("GPKISecureWebLog.SignedDataWithVIDCheckError :  [ "+h.message+" ]["+h.code+" ]"),h.code}},GPKISecureWeb.Encrypt=function(a,b){var c=GPKISecureWeb.makeJsonMessage("Encrypt",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c),e=JSON.parse(d);return e.ResultCode}catch(f){return GPKISecureWebLog.log("GPKISecureWeb.EncryptError :  [ "+f.message+" ]["+f.code+" ]"),f.code}}
1351,GPKISecureWeb.Decrypt=function(a,b){var c=GPKISecureWeb.makeJsonMessage("Decrypt",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c),e=JSON.parse(d);return e.ResultCode}catch(f){return GPKISecureWebLog.log("GPKISecureWeb.DecryptError :  [ "+f.message+" ]["+f.code+" ]"),f.code}},GPKISecureWeb.SetSessionID=function(a){var b=GPKISecureWeb.makeJsonMessage("SetSessionID",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return d.ResultCode}catch(e){return e.code}},GPKISecureWeb.GPKILink=function(a){if(0!=GPKISecureWeb.initFlag&&(GPKISecureWebUi.InitCheck(),0!=GPKISecureWeb.initFlag))return!1;var b="",c="";return a.protocol.indexOf("http:")<-1?(alert(ErrorMessage.code70005),!0):a.search.length<1?(alert(ErrorMessage.code70006),!1):(b="http://"+a.hostname+":"+a.port+"/"+a.pathname,c=a.search.substring(a.search.lastIndexOf("?")+1,a.search.length))},GPKISecureWeb.SetSearchFile=function(a,b){var a=GPKISecureWeb.encodeUtf8andBase64(a),c=GPKISecureWeb.makeJsonMessage("SetSearchFile",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c),e=JSON.parse(d);return e.ResultCode}catch(f){return f.code}},GPKISecureWeb.GetFileCount=function(a){var b=GPKISecureWeb.makeJsonMessage("GetFileCount",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return 0==d.ResultCode?d.ResultValue:d.ResultCode}catch(e){return e.code}},GPKISecureWeb.GetFileList=function(a,b){var c=GPKISecureWeb.makeJsonMessage("GetFileList",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c);return d}catch(e){return e.code}},GPKISecureWeb.getAPIVersion=function(){var a=GPKISecureWeb.makeJsonMessage("GetAPIVersion");try{var b=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,a),c=JSON.parse(b);return c.ResultMessage}catch(d){return d.code}},GPKISecureWeb.SetMediaType=function(a){var b=GPKISecureWeb.makeJsonMessage("SetMediaType",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return d.ResultCode}catch(e){return e.code}},GPKISecureWeb.GetMediaSubCount=function(){var a=GPKISecureWeb.makeJsonMessage("GetMediaSubCount");try{var b=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,a),c=JSON.parse(b);return 0==c.ResultCode?c.ResultValue:c.ResultCode}catch(d){return d.code}},GPKISecureWeb.GetMediaSubInfo=function(a){var b=GPKISecureWeb.makeJsonMessage("GetMediaSubInfo",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b);return c}catch(d){return d.code}},GPKISecureWeb.SetPFXPath=function(a,b){var c=GPKISecureWeb.makeJsonMessage("SetPFXPath",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c),e=JSON.parse(d);return e.ResultCode}catch(f){return f.code}},GPKISecureWeb.GetCertCount=function(a){var b=GPKISecureWeb.makeJsonMessage("GetCertCount",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return 0==d.ResultCode?d.ResultValue:d.ResultCode}catch(e){return e.code}},GPKISecureWeb.GetCertListInfo=function(a){var b=GPKISecureWeb.makeJsonMessage("GetCertListInfo",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b);return c}catch(d){return d.code}},GPKISecureWeb.SetPINNumber=function(a){var b=GPKISecureWeb.makeJsonMessage("SetPINNumber",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return d.ResultCode}catch(e){return e.code}},GPKISecureWeb.LoadCertList=function(a){var b=GPKISecureWeb.makeJsonMessage("LoadCertList",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return d.ResultCode}catch(e){return e.code}},GPKISecureWeb.SelectCert=function(a,b){var c=GPKISecureWeb.makeJsonMessage("SelectCert",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c),e=JSON.parse(d);return e.ResultCode}catch(f){return f.code}},GPKISecureWeb.SelectCertKeyboard=function(a,b,c){var d=GPKISecureWeb.makeJsonMessage("SelectCert",a,b,c);try{var e=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,d),f=JSON.parse(e);return f.ResultCode}catch(g){return g.code}},GPKISecureWeb.GetCertNormalInfo=function(a){var b=GPKISecureWeb.makeJsonMessage("GetCertNormalInfo",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b);return c}catch(d){return d.code}}
1351,GPKISecureWeb.GetCertDetailField=function(a,b){var c=GPKISecureWeb.makeJsonMessage("GetCertDetailField",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c);return d}catch(e){return e.code}},GPKISecureWeb.GetCertDetailInfo=function(a,b){var c=GPKISecureWeb.makeJsonMessage("GetCertDetailInfo",a,b);try{var d=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,c);return d}catch(e){return e.code}},GPKISecureWeb.GetMediaType=function(){var a=GPKISecureWeb.makeJsonMessage("GetMediaType");try{var b=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,a);return b}catch(c){return c.code}},GPKISecureWeb.GetCertDN=function(){var a=GPKISecureWeb.makeJsonMessage("GetCertDN");try{var b=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,a);return b}catch(c){return c.code}},GPKISecureWeb.GetCertSerialNum=function(){var a=GPKISecureWeb.makeJsonMessage("GetCertSerialNum");try{var b=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,a);return b}catch(c){return c.code}},GPKISecureWeb.SetPointInit=function(a,b,c){var d=GPKISecureWeb.makeJsonMessage("SetPointInit",a,b,c);try{var e=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,d),f=JSON.parse(e);return f.ResultCode}catch(g){return g.code}},GPKISecureWeb.SetPoint=function(a){var b=GPKISecureWeb.makeJsonMessage("SetPoint",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return d.ResultCode}catch(e){return e.code}},GPKISecureWeb.setServerEncoding=function(a){var b=GPKISecureWeb.makeJsonMessage("setServerEncoding",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return d.ResultCode}catch(e){return e.code}},GPKISecureWeb.setClientEncoding=function(a){var b=GPKISecureWeb.makeJsonMessage("setClientEncoding",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return d.ResultCode}catch(e){return e.code}},GPKISecureWeb.SetServerEncoding=function(a){var b=GPKISecureWeb.makeJsonMessage("SetServerEncoding",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return d.ResultCode}catch(e){return e.code}},GPKISecureWeb.SetClientEncoding=function(a){var b=GPKISecureWeb.makeJsonMessage("SetServerEncoding",a);try{var c=GPKISecureWebAjax.request(CsUrl+CsPort+"/",!0,b),d=JSON.parse(c);return d.ResultCode}catch(e){return e.code}};var gfNextFunc,gfNextParameters=new Array,mkdummy=0;GPKISecureWeb.makeJsonMessage=function(a){var b="",c=arguments.length-1;if(!(0>c)){for(b+="{",b+='"Version":"'+Version+'",',b+='"ServiceID":"'+ServiceID+'",',b+='"SessionTimeout":"'+setSessionTimeout+'",',b+=""===GPKISecureWeb.getCookie("GPKISecureWebSession")?'"SessionID":"'+GPKISecureWeb.getCookie("NONEID")+'",':'"SessionID":"'+GPKISecureWeb.getCookie("GPKISecureWebSession")+'",',b+=0===c?'"MessageID":"'+a+'"':'"MessageID":"'+a+'",',i=0;i<c;i++)b+=i+1==c?'"'+i+'":"'+arguments[i+1]+'"':'"'+i+'":"'+arguments[i+1]+'",';return b+="}"}},GPKISecureWeb.createJsonMessage=function(a,b){var c="",d="";return d=""===GPKISecureWeb.getCookie("GPKISecureWebSession")?GPKISecureWeb.getCookie("NONEID"):GPKISecureWeb.getCookie("GPKISecureWebSession"),"CrossCertification"==a?(c={Version:Version,ServiceID:"GPKISecureWeb",SessionID:sessionid,MessageID:a},JSON.stringify(c)):"isValidCertVID"==a?(c={Version:Version,ServiceID:"GPKISecureWeb",SessionID:sessionid,binyIDN:b.binyIDN,MessageID:a},JSON.stringify(c)):void 0},GPKISecureWeb.getBrowser=function(){var a="";try{var b,c=navigator.userAgent,d=c.toLowerCase();return d.indexOf("edge")>-1?(a="Edge"+d.substr(d.indexOf("edge")+4,3),a=a.replace("/"," ")):(M=c.match(/(OPR|edge|opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[],/trident/i.test(M[1])&&(b=/\brv[ :]+(\d+)/g.exec(c)||[],a="IE "+(b[1]||"")),"Chrome"===M[1]&&(b=c.match(/\bOPR\/(\d+)/),null!==b)?a="Opera "+b[1]:(M=M[2]?[M[1],M[2]]:[navigator.appName,navigator.appVersion,"-?"],null!==(b=c.match(/version\/(\d+)/i))&&M.splice(1,1,b[1]),a=M.join(" "),a.toLowerCase()))}catch(e){return GPKISecureWebpLog.log("[ getBrowser ][ error ][ "+e.message+" ]"),""}},GPKISecureWeb.createGPKISecureWebSessionID();*/
1352GPKISecureWebLog = new Object();
1353GPKISecureWebLog.logType = "";
1354GPKISecureWebLog.log = function( text ){
1355	if( GPKISecureWebLog.logType == "console" ){
1356		console.log( text );
1357	}else if( GPKISecureWebLog.logType == "alert" ){
1358		alert( text );
1359	}
1360};
1361
1362function createStandardXHR() {
1363	try {
1364		return new window.XMLHttpRequest();
1365	} catch( e ) {
1366		GPKISecureWebLog.log("GPKISecureWeb.createStandardXHR :  [ " + e.message + " ][" + e.code +" ]" );
1367	}
1368}
1369
1370function createActiveXHR() {
1371	try {
1372		return new window.ActiveXObject( "Microsoft.XMLHTTP" );
1373	} catch( e ) {
1374		GPKISecureWebLog.log("GPKISecureWeb.createActiveXHR :  [ " + e.message + " ][" + e.code +" ]" );
1375	}
1376}
1377var GPKISecureWebAjax = {};
1378GPKISecureWebAjax.xhr = window.ActiveXObject !== undefined ?function() {return GPKISecureWeb.AjaxLocal && createStandardXHR() || createActiveXHR(); } : createStandardXHR;
1379GPKISecureWebAjax.request = function( url, sync, data, callbackFunction ){
1380	try{
1381		var xmlHttpRequest = GPKISecureWebAjax.xhr();
1382		var syncType = !sync;		
1383		xmlHttpRequest.open("POST", url, syncType);
1384		xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
1385		xmlHttpRequest.send(data);
1386		
1387		if( sync === false){
1388			xmlHttpRequest.onreadystatechange = function(){
1389				if( xmlHttpRequest.readyState == 4){
1390					if( xmlHttpRequest.status == 200){
1391						callbackFunction( xmlHttpRequest.responseText, 0 );
1392					} else {
1393						callbackFunction( xmlHttpRequest.statusText, xmlHttpRequest.status );
1394					} 
1395				}
1396			};
1397		}else if( sync === true){
1398			if( xmlHttpRequest.readyState == 4){
1399				if( xmlHttpRequest.status == 200 ){
1400					return xmlHttpRequest.responseText;
1401				} else {
1402					GPKISecureWebLog.log( "GPKISecureWebAjaxError", "AJAX Failed : [ xmlHttpRequest.statusText ][ " + xmlHttpRequest.statusText + " ][xmlHttpRequest.readyState][ "+xmlHttpRequest.readyState + " ]" );
1403				}
1404			} else {
1405				GPKISecureWebLog.log( "GPKISecureWebAjaxError", "AJAX Failed : [ xmlHttpRequest.statusText ][ " + xmlHttpRequest.statusText + " ][xmlHttpRequest.readyState][ "+xmlHttpRequest.readyState + " ]" );
1406			}
1407		}
1408	}catch( e ){
1409		GPKISecureWebLog.log( "GPKISecureWebAjaxError", "AJAX Failed : [ xmlHttpRequest.statusText ][ " + xmlHttpRequest.statusText + " ][xmlHttpRequest.readyState][ "+xmlHttpRequest.readyState + " ]", xmlHttpRequest.status );
1410	}
1411}
1412
1413GPKISecureWeb.encodeUtf8andBase64 = function (input) {
1414	var _base64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
1415	var line = '';
1416	var output = '';
1417	var chr1, chr2, chr3;
1418	var i = 0;
1419
1420	input = unescape(encodeURIComponent(input));
1421	//R = (n + 2 - ((n + 2) % 3)) / 3 * 4
1422	maxline = (input.length + 2 - ((input.length + 2) % 3)) / 3 * 4;
1423
1424	while(i < input.length) {
1425		chr1 = input.charCodeAt(i++);
1426		chr2 = input.charCodeAt(i++);
1427	    chr3 = input.charCodeAt(i++);
1428	    
1429	    // encode 4 character group
1430	    line += _base64.charAt(chr1 >> 2);
1431	    line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4));
1432	    
1433	    if(isNaN(chr2)) {
1434	    	line += '==';
1435	    }else {
1436	    	line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6));
1437	    	line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63);
1438	    }
1439
1440	    if(maxline && line.length > maxline) {
1441	    	output += line.substr(0, maxline) + '\r\n';
1442	    	line = line.substr(maxline);
1443	    }
1444	}
1445	
1446	output += line;
1447	
1448	return output;
1449};
1450GPKISecureWeb.InitCheck = function(){
1451	var message = GPKISecureWeb.makeJsonMessage("InitCheck");	
1452	try{
1453		var data = GPKISecureWebAjax.request( CsUrl + CsPort+"/", true, message );
1454		var obj =""; 
1455		obj = 	JSON.parse(data);
1456		return obj.ResultCode;
1457	}catch( e ){
1458		return e.code;
1459	}
1460}
1461GPKISecureWeb.SetProperty = function(binyOptional, binyValue){
1462	var message = GPKISecureWeb.makeJsonMessage("SetProperty", binyOptional, binyValue);	
1463	try{
1464		var data = GPKISecureWebAjax.request( CsUrl + CsPort+"/", true, message );
1465		var obj = JSON.parse(data);
1466		return obj.ResultCode;
1467	}catch( e ){
1468		GPKISecureWebLog.log("GPKISecureWeb.SetPropertyError :  [ " + e.message + " ][" + e.code +" ]" );
1469		return e.code;
1470	}
1471}
1472
1473GPKISecureWeb.Init = function() {
1474	var message = GPKISecureWeb.makeJsonMessage("Init");		
1475	try{
1476		var data = GPKISecureWebAjax.request( CsUrl + CsPort+"/", true, message );
1477		var obj = JSON.parse(data);
1478		return obj.ResultCode;
1479	}catch( e ){
1480		GPKISecureWebLog.log("GPKISecureWeb.InitError :  [ " + e.message + " ][" + e.code +" ]" );
1481		return e.code;
1482	}
1483}
1484
1485GPKISecureWeb.UnInit = function() {
1486	var message = GPKISecureWeb.makeJsonMessage("UnInit");		
1487	try{
1488		var data = GPKISecureWebAjax.request( CsUrl + CsPort+"/", true, message );
1489		var obj = JSON.parse(data);
1490		return obj.ResultCode;
1491	}catch( e ){
1492		GPKISecureWebLog.log("GPKISecureWeb.UnInitError :  [ " + e.message + " ][" + e.code +" ]" );
1493		return e.code;
1494	}
1495}
1496
1497GPKISecureWeb.GetReturnData = function(){
1498	var message = GPKISecureWeb.makeJsonMessage("GetReturnData");
1499	try{
1500		var data = GPKISecureWebAjax.request( CsUrl + CsPort+"/", true, message );
1501		//var obj = JSON.parse(data);
1502		return data;
1503	}catch( e ){
1504		GPKISecureWebLog.log("GPKISecureWeb.GetReturnDataError :  [ " + e.message + " ][" + e.code +" ]" );
1505		return e.code;
1506	}
1507}
1508
1509GPKISecureWeb.setCookie = function(cname, cvalue, exdays) {
1510	var d = new Date();
1511	d.setTime ( d.getTime() + ( exdays * 24 * 60 * 60 * 1000) );
1512	var expires = "expires="+d.toUTCString();
1513	if( exdays === 0 ){
1514		document.cookie = cname + "=" + cvalue + "; path=/; ";
1515	} else {
1516		document.cookie = cname + "=" + cvalue + "; " + expires+"; path=/;";
1517	}
1518}
1519
1520GPKISecureWeb.getCookie = function(cname) {
1521	if( isCookie === "true"){
1522		var name = cname + "=";
1523		var ca = document.cookie.split(';');
1524		for(var i=0; i<ca.length; i++) {
1525			var c = ca[i];
1526		   while (c.charAt(0)===' ') c = c.substring(1);
1527			if (c.indexOf(name) === 0) return c.substring(name.length,c.length);
1528		}
1529		return "";
1530	}else{
1531		if( cname === "GPKISecureWebSession"){
1532			return session;
1533		}else{
1534			return "";
1535		}
1536	}
1537}
1538
1539GPKISecureWeb.trim = function(x) {
1540	x = x + "";
1541	x = x.replace(/^\s+|\s+$/gm, '');
1542	x = x.replace(/[\r][\n]/g, '');
1543	x = x.replace(/[\x10][\x13]/g, '');
1544    return x;
1545}
1546
1547GPKISecureWeb.createGPKISecureWebSessionID = function(){
1548	if( isCookie === "true"){
1549		sessionid = GPKISecureWeb.getCookie("GPKISecureWebSession");
1550		if( sessionid === ""){
1551			GPKISecureWeb.setCookie("GPKISecureWebSession", GPKISecureWeb.makeSessionString() , 0 );
1552		}
1553	}else{
1554		if( sessionid == "" ){
1555			sessionid = GPKISecureWeb.makeSessionString();
1556		}
1557	}
1558}
1559
1560GPKISecureWeb.makeSessionString = function(){
1561	var text = "";
1562	var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
1563	for( var i=0; i < 20; i++ ){
1564		text += possible.charAt(Math.floor(Math.random() * possible.length));
1565	}
1566	return text;
1567}
1568
1569GPKISecureWeb.getOS = function(){
1570	try{
1571		var OsVersion = navigator.userAgent;
1572		OsVersion = OsVersion.toUpperCase();
1573		if( OsVersion.indexOf("NT 5.1") != -1 )	     {return "windows XP";}
1574		else if( OsVersion.indexOf("NT 6.0") != -1 ) {return "windows vista";}
1575		else if( OsVersion.indexOf("NT 6.1") != -1 ) {return "windows 7";}
1576		else if( OsVersion.indexOf("NT 6.2") != -1 ) {return "windows 8";}
1577		else if( OsVersion.indexOf("NT 6.3") != -1 ) {return "windows 8.1";}
1578		else if( OsVersion.indexOf("NT 10.0") != -1 ){return "windows 10";}
1579		else if( OsVersion.indexOf("MAC") != -1 ) 	 {return "MAC";}
1580		else if( OsVersion.indexOf("SYMBIAN") != -1 ){return "Symbian";}
1581		else if( OsVersion.indexOf("UBUNTU") != -1 ) {
1582			if( OsVersion.indexOf("86_64") != -1 ){
1583				return "UBUNTU64";
1584			}else{
1585				return "UBUNTU32";
1586			}
1587		}else if( OsVersion.indexOf("FEDORA") != -1 ){
1588			if( OsVersion.indexOf("86_64") != -1 ){
1589				return "FEDORA64";
1590			}else{
1591				return "FEDORA32";
1592			}
1593		}
1594		else if( OsVersion.indexOf("LINUX") != -1 ){
1595			if( OsVersion.indexOf("86_64") != -1 ){
1596				return "LINUX64";
1597			}else{
1598				return "LINUX32";
1599			}
1600		}
1601		else return "Unknown";
1602	}catch( ex ) {
1603		return "Unknown";
1604	}
1605}
1606//=========================================================================================================================================
1607//=========================================================================================================================================
1608
1609GPKISecureWeb.GPKILink = function( link ){	
1610	/*if(GPKISecureWeb.initFlag != 0){
1611		GPKISecureWebUi.InitCheck();
1612		if(GPKISecureWeb.initFlag != 0){
1613			return false;
1614		}
1615	}*/
1616	var action = "";
1617	var queryString = "";
1618	var noenc_qs = "";
1619	var strResult ="";
1620	var strCode = ""
1621	var strMsg = ""
1622	
1623	if ( link.protocol.indexOf("http:") <-1 ){
1624		//alert("http 프로토콜이 아닙니다.");
1625		alert(ErrorMessage.code70005);
1626		return true;
1627	}
1628	if (link.search.length < 1){
1629		//alert("링크 정보가 없습니다.");
1630		alert(ErrorMessage.code70006);
1631		return false;
1632	}
1633	action = "http://" + link.hostname + ":" + link.port + "/" + link.pathname;
1634	queryString = link.search.substring( link.search.lastIndexOf('?') + 1, link.search.length);
1635	//link.href = action + "?";	
1636	return queryString;
1637}
1638
1639//=========================================================================================================================================================
1640function makeQueryString( form, isEmbedded ){
1641
1642	if(isEmbedded){
1643		form = document.getElementById("popForm");
1644	}
1645	
1646	var name  =  new Array(form.elements.length); 
1647	var value =  new Array(form.elements.length); 
1648	var flag  = false;
1649	var j     = 0;
1650	var plain_text ="";
1651
1652	len = form.elements.length; 
1653	
1654	for (i = 0; i < len; i++){
1655
1656		if( (form.elements[i].type != "button") && (form.elements[i].type != "reset") && (form.elements[i].type != "submit") ){
1657			if (form.elements[i].type == "radio" || form.elements[i].type == "checkbox"){ 
1658				if (form.elements[i].checked == true){
1659					name[j] = form.elements[i].name; 
1660					value[j] = encodeURIComponent(form.elements[i].value);
1661					j++;
1662				}
1663			}else {
1664				name[j] = form.elements[i].name; 
1665				if (form.elements[i].type == "select-one"){
1666					var ind = form.elements[i].selectedIndex;
1667					if (form.elements[i].options[ind].value != ''){
1668						value[j] = form.elements[i].options[ind].value;
1669					}else{
1670						value[j] = encodeURIComponent(form.elements[i].options[ind].text);
1671					}
1672				}else{
1673					value[j] = form.elements[i].value;
1674				}
1675				j++;
1676			}
1677		}
1678	}
1679
1680	for (i = 0; i < j; i++){
1681		if (flag){
1682			plain_text += "&";
1683		}else{
1684			flag = true;
1685		}
1686		plain_text += name[i] ;
1687		plain_text += "=";
1688		plain_text += (name[i]!='challenge')?encodeURIComponent(value[i]):value[i];
1689	}
1690	return plain_text;
1691}
1692
1693function replaceEscapeString( qureyString ){
1694	var i;
1695	var ch;
1696	var rstring = '';
1697	var qstring = '';
1698
1699	qstring = String(qureyString);
1700	for (i = 0; i < qstring.length; i++){
1701		ch = qstring.charAt(i);
1702
1703		if (ch == ' ')  rstring += '%20';
1704		else 
1705		if (ch == '%')  rstring += '%25';
1706		else 
1707		if (ch == '&')  rstring += '%26';
1708		else 
1709		if (ch == '+')  rstring += '%2B';
1710		else 
1711		if (ch == '=')  rstring += '%3D';
1712		else 
1713		if (ch == '?')  rstring += '%3F';
1714		else rstring += ch;
1715	}
1716
1717	return rstring;
1718}
1719
1720function embeddedEnterEvent(event){
1721	if (event.keyCode == 13){
1722		LoginEmbedded(document.getElementById("popForm"));
1723		return false;
1724	}
1725	
1726}
1727function vKSetPointInit(session,params,isInit){
1728	var start = params.indexOf('<gpki');
1729	var endTag = '</gpki:ENCRYPTED DATA>';
1730	var end = params.indexOf(endTag)+endTag.length;
1731	
1732	var orgEncData = params.substring(start,end);
1733	
1734	var orgEncDatas = new Array();
1735	orgEncDatas = orgEncData.split("+ ");
1736	orgEncData="";
1737	for(var i=0; i<orgEncDatas.length;i++){
1738		var tmp= orgEncDatas[i].replace("'","");
1739		tmp=tmp.replace(/(^\s*)|(\s*$)/gi, "");
1740		orgEncData += tmp.replace("\n","");			
1741	}	
1742	
1743	GPKISecureWeb.SetPointInit(session,orgEncData,isInit);
1744}
1745
1746function vKSetPoint(params){
1747	GPKISecureWeb.SetPoint(params);
1748}
1749
1750var mkdummy = 0;
1751
1752
1753function showPHPVKeyboard(target){
1754    var base64Img = decodeURIComponent(urlBase64Image);
1755    target.src = "data:image/jpeg;base64,"+base64Img ;
1756}
1757
1758function initSecureSession(){
1759	var initResult = GPKIClientJS.Init();
1760	if(initResult != 0){
1761		alert(GPKIClientJS.ErrCode.AXERR_FAILINITALIZE.message);
1762		return false;
1763	}
1764
1765	GPKIClientJS.SetProperty(2, ServerCert);
1766	GPKIClientJS.SetProperty(3, 3);
1767	GPKIClientJS.SetProperty(4, 4);
1768
1769	//0:system default, 1:KSC5601,MS949,EUC-KR, 2: UTF8
1770	GPKIClientJS.setServerEncoding(2); // 서버 인코딩 지정 
1771	GPKIClientJS.setClientEncoding(2); // 클라이언트 인코딩 지정
1772	
1773	var setSID = GPKIClientJS.SetSessionID(sessionid);
1774	var resEnc = GPKIClientJS.Encrypt(SiteID+sessionid, '111');
1775    if( (setSID == 0) && (resEnc == 30053) ) {
1776        // document.frames["hiddenFrame"].location = "/GPKISecureWebHTML/gpkisecureweb/jsp/requestSecureSession." + serverLangExt + "?rnd=" + sessionid;
1777        // location.href = "/GPKISecureWebHTML/gpkisecureweb/jsp/requestSecureSession." + serverLangExt + "?rnd=" + sessionid;
1778
1779		var hiddenFrame = document.getElementById("hiddenFrame");
1780        if (hiddenFrame != null && typeof(hiddenFrame) != "undefined") {
1781            hiddenFrame.location = "/GPKISecureWebHTML/gpkisecureweb/jsp/requestSecureSession." + serverLangExt + "?rnd=" + sessionid;
1782        } else {
1783            location.href = "/GPKISecureWebHTML/gpkisecureweb/jsp/requestSecureSession." + serverLangExt + "?rnd=" + sessionid;
1784        }
1785    }
1786}
1787
1788function addPageExt(){
1789	var currentUrl = window.location.href;
1790	var target ;
1791	
1792	if(currentUrl.indexOf('\.aspx')>-1){
1793		target = 'aspx';
1794	}else if(currentUrl.indexOf('\.asp')>-1){
1795		target = 'asp';		
1796	}else if(currentUrl.indexOf('\.php')>-1){
1797		target = 'php';	
1798	}else{
1799		target = 'jsp';
1800	}
1801	
1802	return target;
1803}
1804
1805function replaceServerScriptExt(){
1806
1807	$("#gpkilink").find("a").each( function() {
1808
1809		if ($(this).attr("href").indexOf(".html") < 0) {
1810			var linkrul = $(this).attr("href");
1811			$(this).attr("href", serverLangExt + "/" + linkrul + "." + serverLangExt);
1812		}
1813	} );
1814}
1815
1816GPKISecureWeb.makeJsonMessage = function(FuncName){	
1817	var message = '';
1818	var args = arguments.length - 1;
1819	
1820	if( args<0) return;
1821	
1822	message += '{';
1823	message += '"Version":"'	+ Version + '",';
1824	message += '"ServiceID":"'	+ ServiceID + '",';
1825	message += '"SessionTimeout":"' + setSessionTimeout + '",';
1826	if( GPKISecureWeb.getCookie( "GPKISecureWebSession" ) === ""){
1827		message += '"SessionID":"'	+ GPKISecureWeb.getCookie( "NONEID" ) + '",';
1828	}else{
1829		message += '"SessionID":"'	+ GPKISecureWeb.getCookie("GPKISecureWebSession") + '",';
1830	}
1831	
1832	
1833	if( args === 0){
1834		message += '"MessageID":"'	+ FuncName 	+ '"';
1835	}else{
1836		message += '"MessageID":"'	+ FuncName 	+ '",';
1837	}
1838	
1839	for (i=0; i<args; i++){
1840		if( i+1 == (args)){
1841			message += '"' + i + '":"' + arguments[i+1] + '"';
1842		}else{
1843			message += '"' + i + '":"' + arguments[i+1] + '",';
1844		}
1845	}
1846	message += '}';
1847	
1848	return message;
1849}
1850
1851GPKISecureWeb.createJsonMessage = function( code, data ){
1852	var message = "";
1853	var sid = ""
1854	if( GPKISecureWeb.getCookie( "GPKISecureWebSession" ) === ""){
1855		sid = GPKISecureWeb.getCookie( "NONEID" );
1856	}else{
1857		sid = GPKISecureWeb.getCookie("GPKISecureWebSession");
1858	}
1859	if( code == "CrossCertification" ){
1860		message = {
1861			Version		:	Version,
1862			ServiceID	:	"GPKISecureWeb",
1863			SessionID	:	sessionid,
1864			MessageID : code
1865		};
1866		return JSON.stringify( message );
1867	}else if( code == "isValidCertVID" ){
1868		message = {
1869			Version		:	Version,
1870			ServiceID	:	"GPKISecureWeb",
1871			SessionID	:	sessionid,
1872			binyIDN : data.binyIDN,
1873			MessageID : code
1874		};
1875		return JSON.stringify( message );
1876	}
1877};
1878
1879function replaceLtRt(data){
1880	if (aspxXSSvalidate && data != null && serverLangExt == "jsp") {
1881		data = data.replace(/</gi, '_');
1882		data = data.replace(/>/gi, '_');
1883	}
1884	return $.trim(data);
1885}
1886
1887function postSignedDataToServer(data) {
1888	if(vidCheck !=0 || data == null || data ==""){
1889		return false;
1890	}
1891	document.gpkiForm.encryptedData.value=data;
1892	document.gpkiForm.method="post";
1893	document.gpkiForm.action="./createSecureSession_1_1_response." + serverLangExt;
1894	document.gpkiForm.submit();
1895}
1896
1897GPKISecureWeb.getBrowser = function(){
1898	var GPKISecureWebBrowser="";
1899	try{
1900		var ua= navigator.userAgent, tem;
1901		var ualow = ua.toLowerCase(); 
1902		
1903		if( ualow.indexOf("edge")>-1){
1904			GPKISecureWebBrowser = "Edge"+ualow.substr(ualow.indexOf("edge")+4,3);
1905			GPKISecureWebBrowser = GPKISecureWebBrowser.replace("/"," ");
1906			return GPKISecureWebBrowser;
1907		}else{
1908			M= ua.match(/(OPR|edge|opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
1909			
1910			if( /trident/i.test(M[1])){
1911				tem=  /\brv[ :]+(\d+)/g.exec(ua) || [];
1912				GPKISecureWebBrowser = 'IE '+(tem[1] || '');
1913			}
1914			if( M[1]=== 'Chrome'){
1915				tem= ua.match(/\bOPR\/(\d+)/);
1916				if( tem!== null){
1917					GPKISecureWebBrowser = 'Opera '+tem[1];
1918					 return GPKISecureWebBrowser;
1919				}
1920			}
1921			M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
1922			if( (tem= ua.match(/version\/(\d+)/i))!== null){
1923				M.splice(1, 1, tem[1]);
1924			} 
1925			GPKISecureWebBrowser =  M.join(' ');
1926			return GPKISecureWebBrowser.toLowerCase();
1927		}
1928	}catch( ex ){
1929		GPKISecureWebpLog.log("[ getBrowser ][ error ][ "+ex.message+" ]");
1930		return "";
1931	}
1932}
1933
1934
1935
1936
1937function gpkiReload(){
1938	GPKIClientJS.gpkiReload();
1939}
1940;
1941GPKISecureWeb.createGPKISecureWebSessionID();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.