function __NgbAOS() 
{
    this.isWriteObject = false;      // ActiveX Object »ý¼º¿©ºÎ --> ½ÇÇà ¹× ¼³Ä¡¿¡ ´ëÇÑ WriteObject¸¦ µÎ¹øÈ£ÃâÇÏÁö ¾Ê±â À§ÇÔ
	this.isAutoRunning = false;      // ÀÚµ¿½ÇÇà --> º°µµÀÇ ¼³Ä¡ÆäÀÌÁö ¾øÀÌ Á¢¼ÓÇÏÀÚ¸¶ÀÚ, º¸¾ÈÁ¦Ç°À» ¼³Ä¡ ¹× ½ÇÇà
	this.isKeyDefenseUse = false;    // Anti-KeyLogger »ç¿ë¿©ºÎ
	this.isFireWallUse = false;      // ¹æÈ­º® »ç¿ë¿©ºÎ
	
	this.isAOSKeydefenceSetPopUp = true;    // Anti-KeyLogger ¼³Ä¡¸¦ ÆË¾÷ÇüÅÂ·Î ÇÒÁö ¿©ºÎ
	this.isAOSFireWallSetPopUp = true;      // FireWall ¼³Ä¡¸¦ ÆË¾÷ÇüÅÂ·Î ÇÒÁö ¿©ºÎ

    // Anti-KeyLogger ¼³Ä¡ ¹× WindowType
	this.strKeyDefenseURL = "security/setup_keydefense.html";
	this.strKeyDefenseWindowType = "width=488,height=460,toolbar=no,status=no,directories=no,scrollbars=no,location=no,resizable=no,menubar=no";

    // ¹æÈ­º® ¼³Ä¡ ÆË¾÷URL ¹× WindowType
	this.strFireWallURL = "security/setup_firewall.html";
	this.strFireWallWindowType = "width=488,height=445,toolbar=no,status=no,directories=no,scrollbars=no,location=no,resizable=no,menubar=no";
	
	// ¼³Ä¡°¡ ¿Ï·áµÉ°æ¿ì ÀÌµ¿ÇØ¾ß ÇÏ´Â ÆäÀÌÁö °æ·Î
	this.strSetUpCompleteURL = "http://www.nexon.com";
	
	// AOS Á¾·á½Ã Tray¿¡ ³²¾Æ ÀÖ´Â ¾ÆÀÌÄÜ¿¡ ´ëÇØ¼­ ½ÇÁ¦ ½ÇÇàÀº ¾ÈÇÏ±â ¶§¹®¿¡ ¾È³» ÆäÀÌÁö¸¦ ÆË¾÷ÇüÅÂ·Î ¸¸µéÁö ¿©ºÎ
	this.isUseCloseAOSPopup = false;
	
	// ½ÇÇàÁ¾·á ÆË¾÷ URL ¹× WindowType
	this.strCloseInfoURL = "";
	this.strCLoseInfoWindowType = "";

	// *.nexon.com À» »ç¿ëÇÏÁö ¾Ê´Â ½ÎÀÌÆ®¿¡¼­ document.domain ¼ÂÆÃÀ» À§ÇØ »ç¿ë (¸¶ºñ³ë±â)
	this.strDomain = "nexon.com";
	
	// AOS Á¦Ç°ÄÚµå
	this.ProductCode = 
	{
	    KEYDEFENDER : "40"
    ,   FIREWALL    : "e5"	    
	},
	// ½ÇÇà°¡´É ºê¶ó¿ìÀúÀÎÁö ÆÄ´ÜÇØÁÖ´Â Function ¸ðÀ½ ( UTIL )
    this.AOSBrowser =
    {
        agt: navigator.userAgent.toLowerCase(),
        check: function( browserName ) { return NgbAOS.AOSBrowser.agt.indexOf( browserName.toLowerCase() ) != -1 },
        isUseNgbAOS: function() 
        {
            try 
            {
                // OS´Â Windows¸¸ Áö¿ø.
                if ( navigator.platform.indexOf( "Win" ) > -1 )
                {
                    if ( this.msie() ) 
                        return true;
                    else
                        return false;
                }
                else
                    return false;
            }
            catch (e) { return false; }
        },

        //Browser Name
        msie        : function() { return NgbAOS.AOSBrowser.check("msie") },
        msie5       : function() { return NgbAOS.AOSBrowser.check("msie 5") },
        msie55      : function() { return NgbAOS.AOSBrowser.check("msie 5.5") },
        msie6       : function() { return NgbAOS.AOSBrowser.check("msie 6") },
        msie7       : function() { return NgbAOS.AOSBrowser.check("msie 7") },
        msie8       : function() { return NgbAOS.AOSBrowser.check("msie 8") },

        firefox     : function() { return NgbAOS.AOSBrowser.check("firefox") },
        firefox15   : function() { return NgbAOS.AOSBrowser.check("firefox/1.5") },
        firefox2    : function() { return NgbAOS.AOSBrowser.check("firefox/2") },
        firefox3    : function() { return NgbAOS.AOSBrowser.check("firefox/3") },
        firefox35   : function() { return NgbAOS.AOSBrowser.check("firefox/3.5") },

        netscape    : function() { return NgbAOS.AOSBrowser.check("netscape") },

        safari      : function() { return NgbAOS.AOSBrowser.check("safari") },
        opera       : function() { return NgbAOS.AOSBrowser.check("opera") },
        chrome      : function() { return NgbAOS.AOSBrowser.check("chrome") },

        //Browser Engine
        gecko       : function() { return NgbAOS.AOSBrowser.check("gecko") },
        khtml       : function() { return NgbAOS.AOSBrowser.check("khtml") },

        //OS
        windows     : function() { return NgbAOS.AOSBrowser.check("windows") },
        mac         : function() { return NgbAOS.AOSBrowser.check("mac") },
        linux       : function() { return NgbAOS.AOSBrowser.check("linux") }
    },
    // ¿¡·¯°¡ ¹ß»ýÇÏ¿´À» °æ¿ì »ç¿ëÁ¦ÇÑ
	this.RaiseError = function()
	{
	    NgbAOS.Util.SetKeyDefenseSetUp( false );
	    NgbAOS.Util.SetFireWallSetUp( false );
	},
	// ÇöÀç URLÀ» ºñ±³ÇÏ¿©, ¼³Ä¡ÆäÀÌÁöÀÎÁö ¿©ºÎ ÆÇ´Ü.
	this.isSetupPage =
	{
	    KeySetupPage : function()
	    {
	        var strKeyDefenseURL = NgbAOS.strKeyDefenseURL.toLowerCase();
	        
	        if( strKeyDefenseURL.indexOf( "../../" ) != -1 )
		        strKeyDefenseURL = strKeyDefenseURL.replace("../../","/");
		    	
		    if( location.href.toLowerCase().indexOf( strKeyDefenseURL ) != -1 )
		        return true;
		    else
		        return false;
	    },
	    FirewallSetupPage : function()
	    {
	        var strFireWallURL = NgbAOS.strFireWallURL.toLowerCase();
	        
	        if( strFireWallURL.indexOf( "../../" ) != -1 )
		        strFireWallURL = strFireWallURL.replace("../../","/");
		        
		    if( location.href.toLowerCase().indexOf( strFireWallURL ) != -1 )
		        return true;
		    else
		        return false;
	    }
	},
	// ¿ÜºÎ¿¡¼­ Ngb_AOS.js¸¦ ÀÌ¿ëÇÏ¿© AOS¸¦ ±¸µ¿ÇÔ¼ö
	this.Execute = function()
	{
	    if( NgbAOS.AOSBrowser.isUseNgbAOS() )
	    {
	        var isWriteObject = false;
	        
	        // KeySetup ÆäÀÌÁö ÀÌ°í, Å°º¸¾ÈÀ» »ç¿ëÇÑ´Ù¸é, object»ý¼º
	        if( NgbAOS.isSetupPage.KeySetupPage() && NgbAOS.Util.GetKeyDefense() == "1" )
			{
				NgbAOS.Util.SetKeyDefense( true );
		        isWriteObject = true;
			}
			// FirewallSetup ÆäÀÌÁö ÀÌ°í, ¹æÈ­º®À» »ç¿ëÇÑ´Ù¸é, object»ý¼º
	        else if( NgbAOS.isSetupPage.FirewallSetupPage() && NgbAOS.Util.GetFireWall() == "1" )
			{
				NgbAOS.Util.SetFireWall( true );
		        isWriteObject = true;
			}
			// ÀÚµ¿¼³Ä¡ ¹× ÀÚµ¿½ÇÇàÀÏ°æ¿ì
		    else if( NgbAOS.isAutoRunning )
		    {
		        if( !NgbAOS.CheckInstalled() )
		            isWriteObject = true;
		            
		        NgbAOS.Util.SetKeyDefense( true );
                NgbAOS.Util.SetFireWall( true );
		    }
        	
        	// object¸¦ ½á¾ß ÇÏ°í, AOS°¡ »ç¿ë°¡´ÉÇÑ ºê¶ó¿ìÁ®¿©¾ß ÇÏ°í, ActiveX°¡ ÀÎ½ºÅçÀÌ ¾ÈµÇ¾î ÀÖ´Ù¸é ActiveX ÀÎ½ºÅç
	        if( isWriteObject && NgbAOS.AOSBrowser.isUseNgbAOS() && !NgbAOS.CheckInstalled() )
	        {
	            // SSL
	            if( location.href.toLowerCase().indexOf( "https://" ) == 0 )
	            {
	                if (NgbAOS.AOSBrowser.msie())
	                    aos_set_ssl_codebase( _g_aos_ssl_codebase );                // IE : ActiveX
	                else
	                    aos_set_ssl_xpi_installer( _g_aos_ff_ssl_installer_row );   // FF : Installer
	            }
		        else
		        {
		            if ( NgbAOS.AOSBrowser.msie() )
                        aos_set_codebase( _g_aos_codebase );                        // IE : ActiveX
                    else
                        aos_set_xpi_installer( _g_aos_ff_installer_row );           // FF : Installer
		        }
		        
		        // Object »ý¼º
		        aos_set_option( "obj_style", "hideout" );                           // Object¸¦ ¾µ¶§ ÇÑÄ­ ¹Ð¸®´Â°É ¹æÁö ÇÏ±â À§ÇÑ ¿É¼Ç
		        aos_write_object();
		        
		        // object »ý¼º¿©ºÎ ¸¶Å·
		        NgbAOS.isWriteObject = true;
		    
		        if( NgbAOS.isAutoRunning || NgbAOS.isSetupPage.KeySetupPage() || NgbAOS.isSetupPage.FirewallSetupPage() )
				{
				    // °ÅÀÇ ½Ç½Ã°£ÀûÀ¸·Î LodingCheck --> ÀÚ¼¼ÇÑ ³»¿ªÀº LoadingCheck ÁÖ¼® ÂüÁ¶
			        window.setTimeout( NgbAOS.LoadingCheck, 500 );
				}
			}
            else
                NgbAOS.LoadingCheck();
        }
        else
        {
            NgbAOS.Util.SetKeyDefenseSetUp( false );
	        NgbAOS.Util.SetFireWallSetUp( false );
        }
	},
	// Á¦Ç° ÀÎ½ºÅç ¿©ºÎ ÆÇ´Ü ( pd == null or String.Empty or "undefiend" ÀÏ°æ¿ì ActiveX¼³Ä¡¿©ºÎ È®ÀÎ )
	this.CheckInstalled = function( pd )
	{
	    var pd = String( pd ).toLowerCase();
        var isInstalled = false;

        if( pd == null || pd == "" || pd == "undefined" )
        {
            isInstalled = aos_is_new();
            isInstalled = ( isInstalled || isInstalled == 1 ) ? true : false;
        }
        else if( pd == NgbAOS.ProductCode.KEYDEFENDER || pd == NgbAOS.ProductCode.FIREWALL )
        {
            isInstalled = aos_isinstalled( pd );
            isInstalled = ( isInstalled || isInstalled == 1 ) ? true : false;
        }
        return isInstalled;
	},
	// Á¦Ç°ÀÌ ÇöÀç ½ÇÇàÁßÀÎÁö ¿©ºÎ ÆÇ´Ü
	this.isRunning = function(pd) 
	{
	    var pd = String( pd ).toLowerCase();
	    if( ( pd != null && pd != "undefined" ) && ( pd == NgbAOS.ProductCode.FIREWALL || pd == NgbAOS.ProductCode.KEYDEFENDER ) )
	    {
	        var isRunning = aos_isrunning( pd );
	        if( isRunning || isRunning == 1 )
	            return true;
	    }
	    return false;
	},
	this.LoadingCheck = function()
	{
	    /*
	     Execute½Ã¿¡ ActiveX°¡ ¼³Ä¡°¡ µÇ¾î ÀÖ°Ç ¾ÈµÇ¾î ÀÖ°Ç, 
	     »ç¿ëÀÚ°¡ AOS¸¦ ¾´´Ù°í ÇÑ´Ù¸é Execute¿¡¼­ ¹Ù·Î LoadingCheck() ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
	     ¸¸¾à ActiveX°¡ ¼³Ä¡°¡ ¾ÈµÇ¾îÀÖÀ» °æ¿ì Áö¼ÓÀûÀ¸·Î LoadingCheck() ÇÔ¼ö¸¦ È£ÃâÇÏ¿© È®ÀÎÀ» ÇÒ°ÍÀÌ°í.
	     Å°º¸¾È, ¹æÈ­º® ¼³Ä¡ÆäÀÌÁö°¡ ¾Æ´Ò°æ¿ì´Â Run ¼³Ä¡ ÆäÀÌÁö ÀÏ°æ¿ì MKD20Event¿¡ update_compete ÀÌº¥Æ®·Î È£ÃâÇÏ¿©, ÆË¾÷À» ´Ý´Â´Ù.
	     ÃÖÃÊ ¼³Ä¡½Ã °¢ ¼³Ä¡ÆäÀÌÁö ( ÀÚµ¿½ÇÇàÁ¦¿Ü )¿¡¼­´Â ActiveX¸¸ ¼³Ä¡¸¦ ÇÏ°Ô µÇ°í.
	     °¢ Á¦Ç°±ºÀº strComplteURL·Î ÀÌµ¿ÇÏ¿© ¼³Ä¡¸¦ ÇÏ°Å³ª, ¾Æ´Ï¸é, ÆË¾÷À» ´Ý°í opener°¡ ReloadµÇ¸é¼­ ¼³Ä¡¸¦ ÇÏ°Ô µÈ´Ù.
	     FireWall Áßº¹½ÇÇà Á¦¾î¸¦ À§ÇÔ
	    */
		if( !NgbAOS.isAutoRunning && NgbAOS.isSetupPage.KeySetupPage() && NgbAOS.Util.GetKeyDefense() == "1"  )
		{
			if( NgbAOS.CheckInstalled() )
			{
				NgbAOS.isKeyDefenseUse = true;
				NgbAOS.Util.SetKeyDefense( true );
				NgbAOS.MKD20Event( "update_complete", NgbAOS.ProductCode.KEYDEFENDER, "" );
				return;
			}
			else
	            window.setTimeout( NgbAOS.LoadingCheck, 500 ); 
	    }
		else if( !NgbAOS.isAutoRunning && NgbAOS.isSetupPage.FirewallSetupPage() && NgbAOS.Util.GetFireWall() == "1" )
		{
			if( NgbAOS.CheckInstalled() )
			{
				NgbAOS.isFireWallUse = true;
				NgbAOS.Util.SetFireWall( true );
				NgbAOS.MKD20Event( "update_complete", NgbAOS.ProductCode.FIREWALL, "" );
				return;
			}
			else
	            window.setTimeout( NgbAOS.LoadingCheck, 500 ); 
		}
	    else
	    {
			NgbAOS.Run();	
	    }
	},
	// ³»ºÎÀû Running ÇÔ¼ö
	this.Run = function()
	{
	    // »ç¿ë°¡´ÉÇÑ ºê¶ó¿ìÀú ÀÌ°í, ActiveX°¡ ÀÖ´Ù°í ÇÑ´Ù¸é..
	    if( NgbAOS.AOSBrowser.isUseNgbAOS() && NgbAOS.CheckInstalled() )
        {
            // AOS Option
			aos_set_subclsid( "40","59B0298B-A7B5-4045-A34E-377EDF7BCB8E" );    // CAB Class ID
	        aos_set_authinfo( "aosmgr_nexon.html" );                            // ³Ø½¼ ÀÎÁõÆÄÀÏ
			aos_set_option( "uimode", true );
			aos_set_option( "asyncmode", false );                               // ºñµ¿±â
			//aos_set_option("obj_position","beforeEnd");
			aos_set_option( "obj_style", "hideout" );                           // ActiveX¿¡ ´ëÇØ¼­ 1px¹Ð¸®´Â ºÎºÐ Á¦ÇÑ.
            aos_set_submimetype( "40","application/ahnlab/asp/npmkd25aos" );    // ActiveX MimeType --> KeyLogger Àü¿ë
            aos_set_option( "mkd_protect_level", "default" );                   // Anti-KeyLogger º¸È£lv --> Defalue : Password ¿µ¿ª¸¸ º¸È£
            aos_set_option( "aos_event_handler", NgbAOS.MKD20Event );           // AOS Event Handler 
            aos_set_option( "mkd_inertinit", true );
            
	        // ÀÌ¹Ì ¼³Ä¡°¡ µÇ¾î object°¡ ¾È¾²¿©Á® ÀÖ´Ù°í ÇÑ´Ù¸é ´Ù½Ã ½á¾ßÇÔ.    
	        if( !NgbAOS.isWriteObject )
	        {
	            aos_write_object();
	            NgbAOS.isWriteObject = true;
	        }
	        
	        // µÑ´Ù »ç¿ëÇÑ´Ù°í ÇÏ¸éÀº ±×³É ÇÑ¹ø¿¡ µÑ´Ù ½ÇÇàÀ» ÇÑ´Ù.
	        if( NgbAOS.isAutoRunning || ( NgbAOS.Util.GetKeyDefense() == "1" && NgbAOS.Util.GetFireWall() == "1" ) )
	        {
		        NgbAOS.isKeyDefenseUse = true;
		        NgbAOS.isFireWallUse = true;
		        aos_start( '40|e5' );
	        }
	        else
	        {
	            // Å°º¸¾È °³º°½ÇÇà
				if( NgbAOS.Util.GetKeyDefense() == "1" )//&& ) //!NgbAOS.isRunning( NgbAOS.ProductCode.KEYDEFENDER ) )
	            {
					NgbAOS.isKeyDefenseUse = true;
					aos_start( NgbAOS.ProductCode.KEYDEFENDER );
	            }
	            // ¹æÈ­º® °³º°½ÇÇà
	            else if( NgbAOS.Util.GetFireWall() == "1" ) //&& !NgbAOS.isRunning( NgbAOS.ProductCode.FIREWALL ) )
	            {
					NgbAOS.isFireWallUse = true;
					aos_start( NgbAOS.ProductCode.FIREWALL );
	            }
	        }
	        
	        /*
			    FireFox¿¡¼­´Â FireFox°¡ µ¿ÀûÀ¸·Î Object¸¦ »ý¼ºÇÒ¶§, ÆûÀ» ÀÏºÎÃÊ±âÈ­ ÇÑ´Ù. ( By AhnLab )
			    ¿ø·¡´Â aos_start( pd ) ÀÌÈÄ ¹Ù·Î Ã¼Å©¸¦ ÇÏ¿© Ã³¸®¸¦ ÇØ¾ß ÇÏÁö¸¸,
			    FirefoxÀÇ Æ¯¼ö¼ºÀ¸·Î ÀÎÇÏ¿©, Á¦Ç°ÀÌ MKD20EventÀÇ update_complete ÀÌÈÄ¿¡ Ã¼Å©¸¦ ÇÑ´Ù.
			    IE´Â ±âÁ¸¹æ½Ä´ë·Î ÇÑ´Ù.
			*/
			NgbAOS.SetCheckBox();   
        }
		else
		{
			 // ActiveX°¡ ¾ø´Ù¸é, »ç¿ë¾ÈÇÔÀ¸·Î µ¹¸²
	        if( ( NgbAOS.Util.GetKeyDefense() == "1" || NgbAOS.Util.GetFireWall() == "1" ) && !NgbAOS.isSetupPage.KeySetupPage() && !NgbAOS.isSetupPage.FirewallSetupPage() )
	        {
		        NgbAOS.Util.SetKeyDefense( false );
		        NgbAOS.Util.SetFireWall( false );
	        }
		}
	},
	// ±¸µ¿ÆäÀÌÁö¿¡¼­ Å°º¸¾È»ç¿ë¿©ºÎ ÆÄ¶ó¹ÌÅÍ ÀÔ·ÂÇÏ¿© È£Ãâ
	this.SetUseKeyDefense = function( isUse )
	{
	    NgbAOS.Util.SetKeyDefense( isUse );
	    location.reload();
	},
	// ±¸µ¿ÆäÀÌÁö¿¡¼­ ¹æÈ­º®»ç¿ë¿©ºÎ ÆÄ¶ó¹ÌÅÍ ÀÔ·ÂÇÏ¿© È£Ãâ
	this.SetUseFireWall = function( isUse )
	{
	    NgbAOS.Util.SetFireWall( isUse );
	    location.reload();
	},
	// ¼³Ä¡ÆäÀÌÁö¸¦ È£Ãâ
	this.SetUpKeyDefense = function( isCheckBox, strWiseLogParam )
	{
	    if( typeof( strWiseLogParam ) == 'undefined' )
		    strWiseLogParam = "";

		if( NgbAOS.AOSBrowser.isUseNgbAOS() )
	    {
		    if( typeof( document.forms == "object" ) && ( document.forms.length > 0 ) && typeof( document.forms[0].NxCheckKeyDefense ) == "object" )
		    {
		        var isChecked = isCheckBox ? document.forms[0].NxCheckKeyDefense.checked : !document.forms[0].NxCheckKeyDefense.checked;
			    if( isChecked )
			    {
				    if( !NgbAOS.CheckInstalled( NgbAOS.ProductCode.KEYDEFENDER ) || NgbAOS.Util.GetKeyDefenseSetUp() != "1" )
				    {
				        if( NgbAOS.isAOSKeydefenceSetPopUp )
					        window.open( NgbAOS.strKeyDefenseURL + strWiseLogParam, 'SetupKeyDefense', NgbAOS.strKeyDefenseWindowType );
					    else
					        document.location.href = NgbAOS.strKeyDefenseURL + strWiseLogParam;
					}
				    else
					    NgbAOS.SetUseKeyDefense( true );
			    }
			    else
				    NgbAOS.SetUseKeyDefense( false );
		    }
	    }
	    else
	    {
		    alert( 'Å°º¸µåº¸¾ÈÀ» »ç¿ëÇÒ ¼ö ¾ø´Â ºê¶ó¿ìÀú ÀÔ´Ï´Ù.' );
		    return false;
	    }
	    return false;
	},
	// ¼³Ä¡ÆäÀÌÁö È£Ãâ
	this.SetUpFireWall = function( isCheckBox, strWiseLogParam )
	{
	    if( typeof( strWiseLogParam ) == 'undefined' )
		    strWiseLogParam = "";

		if ( NgbAOS.AOSBrowser.isUseNgbAOS() )
	    {
		    if( typeof( document.forms == "object" ) && ( document.forms.length > 0 ) && typeof( document.forms[0].NxCheckFireWall ) == "object" )
		    {
			    var isChecked = isCheckBox ? document.forms[0].NxCheckFireWall.checked : !document.forms[0].NxCheckFireWall.checked;
			    if( isChecked )
			    {
				    if( !NgbAOS.CheckInstalled( NgbAOS.ProductCode.FIREWALL ) || NgbAOS.Util.GetFireWallSetUp() != "1" )
				    {
				        if( NgbAOS.isAOSFireWallSetPopUp )
					        window.open( NgbAOS.strFireWallURL + strWiseLogParam, 'SetupFireWall', NgbAOS.strFireWallWindowType ); 
					    else
					        document.location.href = NgbAOS.strFireWallURL + strWiseLogParam;
				    }
				    else
					    NgbAOS.SetUseFireWall( true );
			    }
			    else
				    NgbAOS.SetUseFireWall( false );
		    }
	    }
	    else
	    {
		    alert( '°³ÀÎ¹æÈ­º®À» »ç¿ëÇÒ ¼ö ¾ø´Â ºê¶ó¿ìÀú ÀÔ´Ï´Ù.' );
		    return false;
	    }
    	
	    return false;
	},
	// ÄíÅ°Á¶ÀÛ Util
	this.Util =
	{
	    GetKeyDefense : function()
	    {
	        var _use_KeyDefense = NgbCookie.GetCookie( "isUseMKDPlus" );
	        return _use_KeyDefense.substring( 0, 1 );
	    },
	    GetKeyDefenseSetUp : function()
	    {
	        var _use_KeyDefense = NgbCookie.GetCookie( "isUseMKDPlus" );
	        return _use_KeyDefense.substring( 2, 3 );
	    },
	    GetFireWall : function()
	    {
	        var _use_myfirewall = NgbCookie.GetCookie( "isUseMKDPlus" );
	        return _use_myfirewall.substring( 4, 5 );
	    },
	    GetFireWallSetUp : function()
	    {
	        var _use_myfirewall = NgbCookie.GetCookie( "isUseMKDPlus" );
	        return _use_myfirewall.substring( 6, 7 );
	    },
	    SetKeyDefense : function( isUse )
	    {
	        if( !isUse && NgbAOS.isRunning( NgbAOS.ProductCode.KEYDEFENDER ) )
	        {
	            if( NgbAOS.isAutoRunning )
	            {
	                alert( 'Å°º¸µåº¸¾È ÇØÁ¦¸¦ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.' );
	            }
	            else
	            {
	                if( !NgbAOS.isUseCloseAOSPopup )
			            alert( 'º¸¾È¼³Á¤À» ÇØÁ¦ÇÏ½Ã±â À§ÇØ¼­´Â\rÀÎÅÍ³Ý Ã¢À» ¸ðµÎ ´Ý°í ´Ù½Ã Á¢¼ÓÇØÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.' );
		            else
		            {
			            var windowOpen = window.open( NgbAOS.strCloseInfoURL + strWiseLogParam, 'CloseInfo', NgbAOS.strCLoseInfoWindowType );
			            windowOpen.focus();
			        }
			    }
	        }
	        
	        var _use_KeyDefense = NgbCookie.GetCookie( "isUseMKDPlus" );
	        if( _use_KeyDefense.length != 7 )
		        _use_KeyDefense = "0_0_0_0";
        		
	        _use_KeyDefense = ( isUse ? "1_" : "0_" ) + _use_KeyDefense.substring( 2, 7 );
	        NgbCookie.setCookie_Permanent( "isUseMKDPlus", _use_KeyDefense, NgbAOS.strDomain);
	    },
	    SetKeyDefenseSetUp : function( isUse )
	    {
	        var _use_KeyDefense = NgbCookie.GetCookie( "isUseMKDPlus" );
	        if( _use_KeyDefense.length != 7 )
		        _use_KeyDefense = "0_0_0_0";
        		
	        _use_KeyDefense = _use_KeyDefense.substring( 0, 1 ) + ( isUse ? "_1" : "_0" ) + _use_KeyDefense.substring( 3, 7 );
	        NgbCookie.setCookie_Permanent( "isUseMKDPlus", _use_KeyDefense, NgbAOS.strDomain );
	    },
	    SetFireWall : function( isUse )
	    {
	        if ( !isUse && NgbAOS.isRunning( NgbAOS.ProductCode.FIREWALL ) )
	        {
	            if( NgbAOS.isAutoRunning )
	            {
	                alert( '°³ÀÎ¹æÈ­º® ÇØÁ¦¸¦ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.' );
	                return;
	            }
	            else
	            {
	                if( !NgbAOS.isUseCloseAOSPopup )
			            alert( 'º¸¾È¼³Á¤À» ÇØÁ¦ÇÏ½Ã±â À§ÇØ¼­´Â\rÀÎÅÍ³Ý Ã¢À» ¸ðµÎ ´Ý°í ´Ù½Ã Á¢¼ÓÇØÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.' );
		            else
		            {
			            var windowOpen = window.open( NgbAOS.strCloseInfoURL + strWiseLogParam, 'CloseInfo', NgbAOS.strCLoseInfoWindowType );
			            windowOpen.focus();
			        }
			    }
	        }
	        
	        var _use_myfirewall = NgbCookie.GetCookie( "isUseMKDPlus" );
	        if( _use_myfirewall.length != 7 )
		        _use_myfirewall = "0_0_0_0";
        		
	        _use_myfirewall = _use_myfirewall.substring( 0, 4 ) + ( isUse ? "1_" : "0_" ) + _use_myfirewall.substring( 6, 7 );
	        NgbCookie.setCookie_Permanent( "isUseMKDPlus", _use_myfirewall, NgbAOS.strDomain );
	    },
	    SetFireWallSetUp : function( isUse )
	    {
	        var _use_myfirewall = NgbCookie.GetCookie( "isUseMKDPlus" );
	        if( _use_myfirewall.length != 7 )
		        _use_myfirewall = "0_0_0_0";
        		
	        _use_myfirewall = _use_myfirewall.substring( 0, 5 ) + ( isUse ? "_1" : "_0" );
	        NgbCookie.setCookie_Permanent( "isUseMKDPlus", _use_myfirewall, NgbAOS.strDomain );
	    }
	},
	// AOS EventHandler¿¡ µî·ÏµÈ ÇÔ¼ö
	this.MKD20Event = function( event, param1, param2 )
	{
		if( event == "update_complete" )
	    {
		    if( NgbAOS.isKeyDefenseUse )
			    NgbAOS.Util.SetKeyDefenseSetUp( true );
    		
		    if( NgbAOS.isFireWallUse )
			    NgbAOS.Util.SetFireWallSetUp( true );
			
			if( NgbAOS.AOSBrowser.firefox() )
			    NgbAOS.SetCheckBox();
			
		    if( NgbAOS.isSetupPage.KeySetupPage() )
		    {
		        if( NgbAOS.isKeyDefenseUse )
		        {
		            if( typeof( opener ) == 'object' )
		            {
			            opener.location.href = opener.location.href;
			            NgbAOS.CloseWindow();
			        }
			        else
			            document.location.href = NgbAOS.strSetUpCompleteURL;    
		        }
		    }
		    else if( NgbAOS.isSetupPage.FirewallSetupPage() )
		    {
		        if( NgbAOS.isFireWallUse )
		        {
		            if( typeof( opener ) == 'object' )
		            {
			            opener.location.href = opener.location.href;
			            NgbAOS.CloseWindow();
			        }
			        else
			            document.location.href = NgbAOS.strSetUpCompleteURL;    
		        }
		    }
			
			return;
	    }
	},
	// Windows Vista ¿¡¼­ UAC ¸ðµå°¡ µ¿ÀÛµÉ¶§ window.close() ÇÔ¼ö°¡ ½ÇÇàµÇ±äÇÏ³ª Å¸ÀÌ¹Ö»ó ³õÃÄ ÆË¾÷À» ¸ø´ÝÀ»°æ¿ì°¡ ÀÖ¾î Ãß°¡
	this.CloseWindow = function()
	{
		window.close();
		if( !window.closed )
		{
			window.setTimeout( NgbAOS.CloseWindow, 500 );
		}
	},
	// CheckBox Checked ¼³Á¤ --> ÀÚ¼¼ÇÑ ³»¿ªÀº È£ÃâÇÏ´Â ºÎºÐÀÇ ÁÖ¼®Âü°í
	this.SetCheckBox = function()
	{
	    // Å°º¸¾È CheckBox.checked = true;
        if( NgbAOS.Util.GetKeyDefense() == "1" && typeof( document.forms == "object" ) && ( document.forms.length > 0 ) && typeof( document.forms[0].NxCheckKeyDefense ) == "object" )
		{
            document.forms[0].NxCheckKeyDefense.checked = true;
		}
    	
        // ¹æÈ­º® CheckBox.checked = true;	
        if( NgbAOS.Util.GetFireWall() == "1" && typeof( document.forms == "object" ) && ( document.forms.length > 0 ) && typeof( document.forms[0].NxCheckFireWall ) == "object" )
		{
            document.forms[0].NxCheckFireWall.checked = true;
		}
	}
	// Anti-KeyLogger --> ¾ÏÈ£È­µÈ ¹®ÀÚ¿­À» º¹È£È­
	this.GetText = function( inputObject )
	{
		try
		{
			if( NgbAOS.isKeyDefenseUse )
			{
				if( inputObject.value.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
					return inputObject.value
				else	
					return aos_get_text2( inputObject );
			}
			else
				return inputObject.value;
		}
		catch( e )
		{
			return inputObject.value;
		}
	}
}
// Singleton object »ý¼º
var NgbAOS = new __NgbAOS();