	var _v_XecureOBJ = new Object();
	var _v_XecureVAR = new Object();

	function fn_loadXecureVAR()
	{
		var url			= "http://" + location.host + '/common/include/XecureVAR.js';
		var jsSource	= "";
		var xmlHttp = null;
		if ( window.ActiveXObject )
		{
			try	{ xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.6.0");
			} catch(e1)
			{
				try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.4.0");
				} catch(e2)
				{
					try	{ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
					} catch(e3)
					{
					}
				}
			}
		}
		if( xmlHttp )
		{
			xmlHttp.open('get', url, false);
			xmlHttp.send(null);
			jsSource	= xmlHttp.responseText;
			eval ( jsSource );
		}
	}
/*================================================================================================*/
/*
	¸®ÅÏ ¹Þ´Â ¼ø¼ö XML µ¥ÀÌÅ¸ ¸®ÅÏ
	ksgate.js ÀÌÀü include ÇÊ¼ö (Dataset »ç¿ë)
*/

	function InteractionXML()
	{


		function processTr(url, params, output, func)
		{
			var xmlHttp = null;

			if( typeof(window.XMLHttpRequest) != 'undefined' ) xmlHttp = new window.XMLHttpRequest();
			else xmlHttp = new window.ActiveXObject('Microsoft.XMLHTTP');

			if( func == null ) xmlHttp.open ( "POST", url , false );
			else xmlHttp.open ( "POST", url , true );

			xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
			xmlHttp.setRequestHeader("Content-length", params.length);
			xmlHttp.send(params);

			if ( func == null )
			{
				return xmlHttp.responseXML;
			}
			else
			{
				xmlHttp.onreadystatechange = function()
				{
					if ( xmlHttp.readyState == 4 )
					{
						var	doc	= xmlHttp.responseXML;
						eval ( func + '(doc)' );
						return;
					}
				}
			}

		}//processTr



		function execute(tr, input, output, func)
		{
			var	param	= input.getParam();

			var	xmlhttp;
			var	url = "http://" + window.location.host + "/ksgate/run/"+tr+".xml?"+Math.random();

			try
			{
				var rtn = this.processTr ( url, param, output, func);

				if(func == null)
				{
					return rtn;
				}


			}
			catch ( e )
			{
				errMsg = e.message+' InteractionXML execute error.'+'\n* TR:'+tr;
				if ( xmlhttp!=null )
					errMsg = errMsg+"\n\n* HTTP RESPONSE\n"+xmlhttp.ResponseText;
				window.setTimeout( "alertMsg();", 500);
			}

			window.status='communication complete.';

		}//execute


		function execute2(tr, input, output, func)
		{
			var param = "";
			if(input != null) param = input.getParam();

			var	xmlhttp;
			var	url = "http://" + window.location.host + tr;

			try
			{
				var rtn = this.processTr ( url, param, output, func);

				if(func == null)
				{
					return rtn;
				}


			}
			catch ( e )
			{
				errMsg = e.message+' InteractionXML execute error.'+'\n* TR:'+tr;
				if ( xmlhttp!=null )
					errMsg = errMsg+"\n\n* HTTP RESPONSE\n"+xmlhttp.ResponseText;
				window.setTimeout( "alertMsg();", 500);
			}

			window.status='communication complete.';

		}//execute


		this.processTr = processTr;
		this.execute = execute;
		this.execute2 = execute2;
	}
/*================================================================================================*/
	function XInteractionXML()
	{
		// ÃÊ±âÈ­ ¾ÏÈ£È­, ÀüÀÚ¼­¸í °´Ã¼»ý¼º
		if ( typeof ( document.all.XecureWeb ) == 'undefined' )
		{
			fn_loadXecureVAR();

			var	v_agent		= navigator.userAgent.toString().toLowerCase();
			var v_appName	= navigator.appName;

			var v_tagstr	= '';

			if ( v_appName == 'Netscape')
			{
			} else
			{
				if ( ( v_appName == 'Microsoft Internet Explorer')
				  && ( v_agent.indexOf("trident/4.0") != -1 ) )
				{
					v_tagstr = _v_XecureOBJ['IE8'];
				} else
				{
					if ( v_agent.indexOf('nt 6.') > 0 )
					{
						v_tagstr = _v_XecureOBJ['VISTA'];
					} else
					{
						v_tagstr = _v_XecureOBJ['default'];
					}
				}
			}
			try
			{
				var v_oOBJ				= document.createElement(v_tagstr);
				var v_pOBJ				= document.createElement('<input type=hidden name=p>');
				var v_fOBJ				= document.createElement('<form name=xecure>');
					v_fOBJ.appendChild(v_pOBJ);
				var v_scrOBJ			= document.createElement('script');
					v_scrOBJ.language	= 'javascript';
					v_scrOBJ.src		= '/XecureObject/xecureweb.js';

				var v_OBJ				= document.createElement('div');
					v_OBJ.style.display = 'none';
					v_OBJ.appendChild(v_oOBJ);
					v_OBJ.appendChild(v_fOBJ);
					v_OBJ.appendChild(v_scrOBJ);

					document.write(v_OBJ.outerHTML);
			} catch ( PE ) { }
		}
		if ( typeof(document.all.CertManX) == 'undefined' )
		{
			document.write ( "<object	id='CertManX' "
					 + "	classid='CLSID:EC5D5118-9FDE-4A3E-84F3-C2B711740E70'"
					 + "	codeBase='/center/download/down/sign/SKCommAX.cab#version=9,8,0,2'>"
					 + "</object>" );

		}



		function processTr(url, params, output, func)
		{
			var xmlHttp = null;

			if( typeof(window.XMLHttpRequest) != 'undefined' ) xmlHttp = new window.XMLHttpRequest();
			else xmlHttp = new window.ActiveXObject('Microsoft.XMLHTTP');

			xmlHttp.open ( "POST", url , false );

			xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
			xmlHttp.setRequestHeader("Content-length", params.length);
			xmlHttp.send(params);


			var doc = xmlHttp.responseXML;
			this.xecureDecode(doc.documentElement);

			if(func == null)
			{
				return doc;
			}
			else
			{
				eval ( func + '(doc)' );
				return;
			}

		}//processTr




		function execute(tr, input, output, func)
		{
			document.body.style.cursor = 'wait';
			var urlPath = "http://" + window.location.host + "/ksgate/xrun/"+tr+".xml";

			var	param	= input.getParam();

			var	pText	= param.replace ( /&/g, "#" ).replace(/=/g, "" ).replace(/ /g, "");

			if ( pText.length < 150 )
			{
				var pLen = 150 - pText.length;
				for ( idx=0 ; idx < pLen ; idx++)	pText += ' ';
			}
			else
			{
				pText = pText.substring(0,150);
			}

			var sText	= sign( pText );

			if( sText != '' )
			{
				param += '&orgdata=' +  escape_url( encodeURL( '' + pText) ) + '&signdata=' + escape_url( encodeURL( '' + sText) );
			}
			var cipher	= document.all.XecureWeb.BlockEnc( xgate_addr, urlPath, XecureEscape(param), "GET" );

			var	xmlhttp;
			var	url		= urlPath + '?' + Math.random();
			var ppm		= 'q=' + escape_url(cipher);


			try
			{
				var doc = this.processTr(url, ppm, output, func);
				if(func == null)
				{
					return doc;
				}
			}
			catch ( e )
			{
				errMsg = e.message+' Interaction execute error.'+'\n* TR:'+tr;
				if ( xmlhttp!=null )
					errMsg = errMsg+"\n\n* HTTP RESPONSE\n"+xmlhttp.ResponseText;
				window.setTimeout( "alertMsg();", 500);
			}
			window.status='communication complete.';

			document.body.style.cursor = '';

			return null;
		}




		function sign(data)
		{
			var signdata = '';
			if ( typeof(userDN) != 'undefined' && userDN != '' && typeof(document.all.CertManX) != 'undefined' )
			{
				
				//Å°º¸µåº¸¾È°ú ¿¬µ¿ÇÏ±â(°øÀÎÀÎÁõºñ¹Ð¹øÈ£ ÀÔ·ÂÇÏ´Â°÷¿¡ ÀÚµ¿À¸·Î Å°º¸µåº¸¾ÈÀÌ Àû¿ëµÊ) Å°º¸µåº¸¾È ¾÷Ã¼ ¹Ù²î¸é ¼öÁ¤ÇÏ¿©¾ß ÇÔ.
				if(document.all.CertManX.SetKeySaferMode(1) == false)
				{
					//alert('Å°º¸µåº¸¾ÈÀû¿ë Fail_LOGIN');
				}
				
				if (document.all.CertManX.SetServiceMode('ÇÑÈ­Áõ±Ç', userDN) == false) {
					alert('[KA1]'+document.all.CertManX.GetLastErrorMsg());
				}
				// DN¿¡ ÇØ´çÇÏ´Â ÀÎÁõ¼­¸¸ ¼±ÅÃÃ¢¿¡ Ç¥½Ã, ¼¼¼Ç°ü¸®ÀÚ¿¡¼­ ¼±ÅÃÇÑ ÀÎÁõ¼­ Á¤º¸À¯Áö
				if (document.all.CertManX.SetMatchedContextExt(userDN, '' , '', 0) == '') {
					alert('[KA2]'+document.all.CertManX.GetLastErrorMsg());
				}
				document.all.CertManX.SetWrongPasswordLimit(1);
				signdata = document.all.CertManX.SignData_ne_B64('', data, 0);
				var tmp_signdata = '';
				var ch;
				var slen = signdata.length;
				for ( _i=0 ; _i < slen ; _i++ )
				{
					ch = signdata.charCodeAt(_i);
					if (ch != 13 && ch != 10) tmp_signdata += signdata.charAt(_i);
				}
				signdata = tmp_signdata;
			}
			return signdata;
		}//sign




		function xecureDecode(doc)
		{
			var tmp = doc.childNodes;

			for(var i=0 ; i<tmp.length ; i++)
			{
				if(tmp[i].nodeType != "1") tmp[i].text = BlockDec(tmp[i].text);
				else this.xecureDecode(tmp[i]);
			}

		}//xecureDecode

		this.processTr		= processTr;
		this.execute		= execute;
		this.sign			= sign;
		this.xecureDecode	= xecureDecode;
	}
/*================================================================================================*/
