// JavaScript Document
//=========================================================================================================
// vrEnter.js ÆÄÀÏ³»¿¡
// ÃÖ»óÀ§ °³Ã¼ vrEnter ¿¡ µî·Ï ÇÔ.
//=========================================================================================================
vrEnter_Utility = function() {

		this.CallBack = new vrEnter_Utility_CallBack();
		
		/// --------------------------------------------------------------------
		/// 2008-09-11 ÀÌÈÄ »ç¿ë ÇÏÁö ¾Ê½À´Ï´Ù.
		/// --------------------------------------------------------------------
		this.Layer = new vrEnter_Utility_Layer();
		this.Popup = new vrEnter_Utility_Popup();
		/// --------------------------------------------------------------------
		/// ±îÁö
		/// --------------------------------------------------------------------
		
		///
		/// ÇÚµåÆù °¡ÀÔÀÚ ¹øÈ£
		///
		this.MobileDDD = new Array("010", "011", "016", "017", "018", "019");


		// document.body;
		this._docBody = null;
}

/// --------------------------------------------------------------------------------------------
vrEnter_Utility.prototype = {
	
	///
	/// ±âº» ºñµ¿±â È£ÃâÀÌ¸ç
	/// µ¿±âÈ£Ãâ½Ã µÎ¹øÂ° ÀÎÀÚ¿¡ false ¸¦ ´ëÀÔÇÑ´Ù.
	///
	DoCallBack : function(url) {
		//½ÃÀÛ
		var xmlHttp = false;
	
		if(window.XMLHttpRequest)
			xmlHttp = new XMLHttpRequest();
		else
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		
		///
		/// ºñµ¿±â
		///
		var asynchronous = true;
		if(arguments.length > 1)
			asynchronous = arguments[1];
		
		xmlHttp.open("POST",url,asynchronous);
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		
		xmlHttp.send(null);
		return xmlHttp;
	},

	///
	/// ¹®ÀÚ¿­ ³»¿ëÀ» ¹ÙÀÌÆ®´ÜÀ§ÀÇ ±æÀÌ¸¦ °è»êÇÑ ÈÄ Á¦ÇÑµÈ ¹ÙÀÌÆ® ±æÀÌ¸¦ ³Ñ±âÁö ¸øÇÏ°Ô ÇÏ°Å³ª,
	/// °í°´ÀÇ ÀÇ»ç¿¡ µû¶ó ³ÑÀ» ¶§ ¸¶´Ù (Á¦ÇÑµÈ Byte ¼ö¸¸Å­¾¿ ÇÑ°ÇÀ¸·ÎÇÏ´Â) °Ç ¼ö°¡ Áõ°¡ÇÕ´Ï´Ù.
	///
	/// 1. oContent : °Ë»ç´ë»óÀÎ ³»¿ëÀ» Æ÷ÇÔÇÏ°í ÀÖ´Â jQuery °³Ã¼
	/// 2. limitedBytes : (int) ¹ÙÀÌÆ® Á¦ÇÑ °ª
	/// 3. isCutByForce : (bool) ¹«Á¶°Ç ¹ÙÀÌÆ® Á¦ÇÑ °ªÀ» ÁöÅ³Áö ¿©ºÎ
	/// 4. isAlert : (bool) ¹ÙÀÌÆ® Á¦ÇÑ °ªÀ» ³ÑÀ» ¶§ °æ°í¸Þ½ÃÁö Ãâ·Â¿©ºÎ¸¦ ³ªÅ¸³»´Â ÇÃ·¹±×
	/// 5. alertMessage : (string) ¹ÙÀÌÆ® Á¦ÇÑ °ª ³ÑÀ» ¶§ °æ°í¸Þ½ÃÁö, ¹Ýµå½Ã ÁøÇà(±àÁ¤)¹®À¸·Î ¹°¾î¾ß ÇÔ.
	/// 6. odBytes : ÇöÀç ÃÑ ¹ÙÀÌÆ® ¼ö¸¦ Ç¥ÇöÇÒ jQuery °³Ã¼
	/// 7. odGuns : ÇöÀç ÃÑ °Ç¼ö¸¦ Ç¥ÇöÇÒ jQuery °³Ã¼
	///
	/// ¸®ÅÏ°ª : Á¦ÇÑ±Û ¼ö ÀÌ»ó ÀÔ·Â¿©ºÎ¸¦ ¹°¾úÀ»¶§ Client ÀÇ ¹ÝÀÀ°ª.
	///          ¸Þ½ÃÁö ¹ß¼Û½Ã reAction ¿ëÀ¸·Î »ç¿ëÇÑ´Ù.
	///
	CheckByteLength : function (oContent, limitedBytes, isCutByForce, isAlert, alertMessage, odBytes, odGuns) {
		var content = new String(oContent.val());/* ¿øº» (¸Þ½ÃÁö) ³»¿ë */
		var bytesOfContent = 0;/* ³»¿ë ÃÑ ±æÀÌ(¹ÙÀÌÆ® ´ÜÀ§) */
		var bytesOfLast = 0;   /* Á¦ÇÑµÈ ±æÀÌ¸¦ ³Ñ±â Àü±îÁöÀÇ ¹ÙÀÌÆ® ¼ö (¿¹, limitedBytes = 80 ÀÌ¸é bytesOfLast ÀÇ ÃÖ´ë°ªÀº 79 ¶Ç´Â 80 ÀÌ µË´Ï´Ù.) */
		var gunsOfContent = 0; /* ÃÑ °Ç ¼ö (bytesOfContent ¸¦ limitedBytes ·Î ³ª´©¾î ¹«Á¶°Ç ¿Ã¸²ÇÑ ¼ö) */
		var isEscape = false; /* Á¦ÇÑµÈ ±æÀÌ ³ÑÀ¸¸é °­Á¦ Å»Ãâ¿©ºÎ¼³Á¤ */
		var msg = "ÀÔ·Â °¡´ÉÇÑ ÃÖ´ë¹®ÀÚ ¼ö´Â " + limitedBytes + " Byte ÀÔ´Ï´Ù.";
		var msg2 = "Á¦ÇÑµÈ ÃÖ´ë¹®ÀÚ ¼öÀÎ " + limitedBytes + " Byte ¸¦ ÃÊ°ú ÇÏ¿´½À´Ï´Ù.\r\n°è¼Ó ÇÏ½Ã°Ú½À´Ï±î?";
						
		if(alertMessage!=null && alertMessage.length>0) msg = alertMessage;
		
		for(var i = 0; i < content.length; i++) {
			var theChar = content.charAt(i); /* 0 ¿¡¼­ ½ÃÀÛÇØ¼­ n ¹øÂ°ÀÇ ¹®ÀÚÀ» ¹ÝÈ¯ */
			
			/*		
				¹®ÀÚ¼ÂÀ» ¾Æ½ºÅ°(ASCII) °ªÀ¸·Î ¹ÝÈ¯
				¿µ¾î ¾ËÆÄºª°ú ¼ýÀÚ, ±×¸®°í *@-_+./¸¦ Á¦¿ÜÇÑ ¹®ÀÚ´Â ¸ðµÎ escape() ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é 16Áø¼ö ¹®ÀÚ¿­·Î º¯È¯µÉ ¼ö ÀÖ°í
				º¯È¯µÈ ¹®ÀÚ¿­À» unescape() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ ´Ù½Ã ¿ø»óÅÂ·Î º¹±¸ ½ÃÅ³ ¼ö ÀÖ½À´Ï´Ù
				escape('¾¾¿£Á¦ÀÌ') ===>%uC528%uC5D4%uC81C%uC774
				unescape('%21%23%24%25%5E%26') ===>!#$%^&
			*/
			var escChar = escape(theChar);
	
			/* ¹ÙÀÌÆ® °è»ê                   middle dot(U00B7)     degree sign(U00B0) Æ¯¼ö¹®ÀÚ, ÇÑ±ÛÀÎ °æ¿ì 2 Byte ·Î Ä«¿îÆ® */
			if (escChar.length > 4 || theChar == '¡¤' || theChar == '¡Æ') bytesOfContent += 2;
			else if(theChar != '\r') bytesOfContent += 1; /* Ä³¸®Áö¸®ÅÏ(\r) Ä«¿îÆ®¿¡¼­ Á¦¿Ü ³ª¸Ó´ÏÀÇ °æ¿ì 1 Byte ·Î Ä«¿îÆ®  */
			
			if(bytesOfContent > limitedBytes) { /* ³»¿ëÀÌ Á¦ÇÑµÈ ±æÀÌ¸¦ ³ÑÀ¸¸é, (ÇÑ¹øÀÇ) ¾Ë¸²Ã¢À¸·Î °í°´ÀÇ ÀÇ»ç¿¡ ¸º±æÁö ¿©ºÎ¸¦ ÆÇº°ÇÏ¿© */
				if(isCutByForce) {
					isEscape = true;
					if(isAlert) alert(msg);
				}
				else if(isAlert) isAlert = isEscape = !confirm(((alertMessage!=null && alertMessage.length>0)?alertMessage:msg2));
			}			
			
			if(isEscape) { /* Á¦ÇÑµÈ ±æÀÌ±îÁöÀÇ ¹ÙÀÌÆ® ¼ö ¹× ÅØ½ºÆ® ÀúÀå ÈÄ Á¾·á. */
				bytesOfContent = bytesOfLast;
				content = content.substring(0, i);
				break;
			}			
			
			bytesOfLast = bytesOfContent; /* Á¦ÇÑµÈ ±æÀÌ¸¦ ³Ñ±â ¹Ù·ÎÁ÷Àü±îÁöÀÇ ¹ÙÀÌÆ® ¼ö, °í°´ÀÌ Á¦ÇÑµÈ ¹ÙÀÌÆ®¸¦ ³Ñ°Ü »ç¿ëÇÏ°íÀÚÇÏ¸é ÀÇ¹Ì¾ø´Â ÀúÀå¼Ò°¡ µË´Ï´Ù. */
		}
		
		if(isEscape) oContent.val(content); /* Á¦ÇÑµÈ Byte ´ÜÀ§ ±æÀÌ¸¸Å­ ÀÚ¸¥ ¹®ÀÚ¿­ÀÌ°Å³ª ¿ÂÀüÇÑ Ã³À½ÀÇ ¹®ÀÚ¿­·Î ¾÷µ¥ÀÌÆ®. */		
		
		gunsOfContent = Math.ceil(bytesOfContent/limitedBytes); /* Math.ceil(x)  x °¡ ¼Ò¼öÀÏ °æ¿ì ¹«Á¶°Ç ¹Ý¿Ã¸² ¶Ç´Â Á¤¼öÀÌ¸é x °ª ¿¹) 5.3  => 6 */	
		
		if(odGuns != null) {  /* °Ç ¼ö¸¦ Ãâ·ÂÇÒ TextBox °³Ã¼ */	
			if(document.getElementById(odGuns.attr('id')).tagName.toLowerCase() == "input" || document.getElementById(odGuns.attr('id')).tagName.toLowerCase() == "textarea")
				odGuns.val(gunsOfContent);
			else
				odGuns.text(gunsOfContent);
		}
		
		if(odBytes != null) { /* ¸Þ½ÃÁö ³»¿ëÀÇ ÀüÃ¼ ¹ÙÀÌÆ® ¼ö¸¦ Ãâ·ÂÇÒ TextBox °³Ã¼ */	
			if(document.getElementById(odBytes.attr('id')).tagName.toLowerCase() == "input" || document.getElementById(odBytes.attr('id')).tagName.toLowerCase() == "textarea")
				odBytes.val(bytesOfContent);
			else
				odBytes.text(bytesOfContent);
		}
		
		return (isAlert); /* Á¦ÇÑ±Û ¼ö ÀÌ»ó ÀÔ·Â¿©ºÎ¸¦ ¹°¾úÀ»¶§ Client ÀÇ ¹ÝÀÀ°ª. reAction ¿ëÀ¸·Î »ç¿ëÇÑ´Ù. */
	},
	
	GetString : function(strValue, limitedBytes) {
		if(limitedBytes <= 0) return "";
		if(this.GetByteLength(strValue) <= limitedBytes) return strValue;		
		
		for(var i = 0, cnt = 0; i < strValue.length; i++) {
			var theChar = strValue.charAt(i);
			var escChar = escape(theChar);
			
			if (escChar.length > 4 || theChar == '¡¤' || theChar == '¡Æ') cnt += 2;
			else if(theChar != '\r') cnt += 1;
			
			if(cnt > limitedBytes) {
				return strValue.substring(0, i);
			}
		}
	},
	
	/* ¹ÙÀÌÆ® ´ÜÀ§·Î ¹®ÀÚ¿­ ±æÀÌ¸¦ °è»êÇÏ¿© ¹ÝÈ¯ÇÕ´Ï´Ù. Ä³¸®Áö¸®ÅÏ¹®ÀÚ´Â °è»êÇÏÁö ¾Ê½À´Ï´Ù. */
	GetByteLength : function(strValue) {
		var content = new String(strValue);		
		var bytesOfContent = 0;
		
		for(var i = 0; i < content.length; i++) {
			var theChar = content.charAt(i);
			var escChar = escape(theChar);
			
			if (escChar.length > 4 || theChar == '¡¤' || theChar == '¡Æ')  bytesOfContent += 2;
			else if(theChar != '\r')bytesOfContent += 1;
		}
		
		return bytesOfContent;
	},
	
	/* ¹ÙÀÌÆ® ´ÜÀ§·Î ¹®ÀÚ¿­ ±æÀÌ¸¦ °è»êÇÑ ÈÄ('\r' Á¦¿Ü). Á¦¼ö(divisor)·Î ³ª´« ¸ò, ³ª¸ÓÁö°¡ ÀÖÀ¸¸é (¸ò+1) ÇÑ °á°ú */
	GetByteGuns : function(strValue, divisor) {
		var guns = 0;		
		var contentByteLength = vrEnterJS.Utility.GetByteLength(strValue);
		
		if(divisor > 0) guns = Math.ceil(contentByteLength/divisor);
		else alert("0 ÀÌÇÏÀÇ ¼ö·Î´Â ³ª´­ ¼ö ¾ø½À´Ï´Ù.");
		
		return guns;
	},
	
	/* Ä³¸®Áö¸®ÅÏ¹®ÀÚÆ÷ÇÔ ¹ÙÀÌÆ® ´ÜÀ§·Î ¹®ÀÚ¿­ ±æÀÌ¸¦ °è»ê */
	GetByteCount: function(strValue) {
		var bytesOfContent = 0;
		var content = new String(strValue);
		
		for(var i = 0; i < content.length; i++) {
			var theChar = content.charAt(i);
			var escChar = escape(theChar);
			
			if (escChar.length > 4 || theChar == '¡¤' || theChar == '¡Æ') bytesOfContent += 2; /* Æ¯¼ö¹®ÀÚ, ÇÑ±ÛÀÎ °æ¿ì 2 Byte ·Î Ä«¿îÆ®ÇÕ´Ï´Ù. */
			else bytesOfContent += 1;
		}
		
		return bytesOfContent;
	},

	///----------------------------------------------------------------------------------------------------
	/// ½ºÅÃ¿¡ °ªÀ» ÀúÀå ¶Ç´Â Á¦°Å ÇÕ´Ï´Ù.
	///
	/// oStack       : ½ºÅÃ¿ë TextBox ¶Ç´Â HiddenField
	/// isStore      : ÀúÀå(true) ¶Ç´Â Á¦°Å(false)¿ë ºÒ°ª
	/// strValue     : ÀúÀå(¶Ç´Â Á¦°Å)ÇÒ °ª
	/// strSeparator : ½ºÅÃ¿¡ °ª°ú °ªÀ» ±¸ºÐÇÏ´Â ¹®ÀÚ¿­
	///----------------------------------------------------------------------------------------------------
	PushPop : function(oStack, isStore, strValue, strSeparator) {
		var values = oStack.value.split(strSeparator);
		
		///
		/// ½ºÅÃ¿¡¼­ strValue °ªÀÌ Á¸ÀçÇÏ´ÂÁö °Ë»ç
		///
		var exists = false;
		for(var i = 0; i < values.length; i++)
		{
			if(values[i] == strValue)
			{
				exists = true;
				break;
			}
		}
		
		///
		/// ÀúÀå(Push)
		if(isStore)
		{
			if(!exists)
			{
				if(oStack.value != '') 
					oStack.value += jsm_Separator;
				
				oStack.value += strValue;
			}
		}
		///
		/// Á¦°Å(Pop)
		///
		else
		{
			if(exists)
			{
				var str = "";
				
				for(var i = 0; i < values.length; i++)
				{
					if(values[i] == strValue)
						continue;
					
					if(str != "") 
						str += jsm_Separator;
					
					str += values[i];
				}
				
				oStack.value = str;
			}
		}
	},

	///
	/// ¼¿·ºÆ® ¹Ú½º¿¡¼­ ¼±ÅÃµÈ Ç×¸ñÀÇ Value°¡ ¾Æ´Ñ Text¸¦ ´ë»ó°³Ã¼¿¡ ÀüÇÑ´Ù.
	/// --------------------------------------------------------------------------------------------
	PutSelectedText : function(selObj, strTargetID) {
		obj = document.getElementById(strTargetID);
		
		if(selObj.selectedIndex <= 0)
		{
			obj.value = "";
		}
		else
		{
			obj.value = selObj.options[selObj.selectedIndex].text;
		}
	},

	///
	/// ¼¿·ºÆ® ¹Ú½º¿¡¼­ ¼±ÅÃµÈ Ç×¸ñÀÇ °ªÀ» ´ë»ó°³Ã¼(ÅØ½ºÆ®¹Ú½º)¿¡ ÀüÇÑ´Ù.
	/// --------------------------------------------------------------------------------------------
	PutSelectedValue : function(selObj, strTargetID) {
		obj = document.getElementById(strTargetID);
		
		if(selObj.selectedIndex <= 0)
		{
			obj.value = "";
		}
		else
		{
			obj.value = selObj.options[selObj.selectedIndex].value;
		}
	},
	
	SendNews : function (media, title) {
		/*
		
			http://twitter.com/home?status=±ÛÁ¦¸ñ+±ÛÀÇURL
			
			±ÛÁ¦¸ñ°ú urlÀº urlencode·Î ÀÎÄÚµùÈÄ ³Ñ°ÜÁÖ½Ã¸é µË´Ï´Ù.
			Âü°í·Î Æ®À§ÅÍ´Â UTF8 ¹®ÀÚ¼Â¸¸ Àü¼Û¹Þ½À´Ï´Ù.
	
		*/
		var url;
		var winName = "newWin";
		var feature = "width=1024, height=800, scrollbars=yes";
	
		switch(media)
		{
			case "twitter" :
				url = "http://twitter.com/home?status=" + title + "+" + escape(window.location.href);
				window.open(url, winName, feature);
				break;
			case "facebook":
				url = "http://www.facebook.com/sharer.php?u=" + escape(window.location.href) + "&t=" + title + "&src=sp";
				window.open(url, winName, feature);
				break;
		}
	},
	
	/// Enter KeyÀÌ¸é ÆÄ¶ó¸ÞÅÍ·Î ÁöÁ¤µÈ °³Ã¼·Î Æ÷Ä¿½º¸¦ ¿Å±ä´Ù.
	/// »ç¿ë¹ý ¿¹)
	/// onKeyPress="SetFocus(document.getElementById('<%=this.btnSearch.ClientID%>'))"
	///
	SetFocus : function(obj)
	{
		//alert(event.keyCode);
		if(event.keyCode==13)
			obj.focus();
	},
	
	/// ÁöÁ¤µÈ ±æÀÌÀÌ¸é ÆÄ¶ó¸ÞÅÍ·Î ÁöÁ¤µÈ °³Ã¼·Î Æ÷Ä¿½º¸¦ ¿Å±ä´Ù.
	/// »ç¿ë¹ý ¿¹)
	/// onKeyUp="SetFocusByLength(this, document.getElementById('<%=this.btnSearch.ClientID%>'), Len)"
	///
	SetFocusByLength : function(oH, oT, Len)
	{
		if ( oH.type && (oH.type == "text" || oH.type == "textarea"))
		{
			if ( oH.value.length >= Len )
			{
				oH.blur();
				oT.focus();
			}
		}
	},
	
	/// --------------------------------------------------------------------------------------------
	/// ÆäÀÌÁö³»¿¡¼­ Á¢µÎ¾îÀÌ¸§¿¡ ¼ø¹ø(¹Ýµå½Ã 0 ºÎÅÍ)À» ºÙ¿© Ã¼Å©¼Ó¼ºÀ» °®´Â °³Ã¼¸¦ ±×·ìÈ­ÇÏ¿©
	/// ·¹µð¿À¹öÆ° Ã³·³ »ç¿ëÇÏ°íÀÚ ÇÒ¶§.
	/// ¿¹, Type0, Type1, Type2 µî 3°³ÀÇ Ã¼Å©¹Ú½º°¡ÀÖÀ»¶§(Á¢µÎ¾î Type, Á¢¹Ì¼ø¹ø 0,1,2)
	/// ÆäÀÌÁö³»¿¡¼­ ¸î°³°¡ÀÖ´ÂÁö ÀÚµ¿ Ä«¿îÆ®ÈÄ ÇÏ³ª¸¦ Å¬¸¯Ã¼Å©ÇÏ¸é ³ª¸ÓÁö´Â
	/// Ã¼Å©ÇØÁ¦ ½ÃÅ²´Ù.
	/// --------------------------------------------------------------------------------------------
	ToggleChecked : function(prefixName, onSuffixNum)
	{
		var itemCount = 0;
		for(i = 0; document.getElementById(prefixName + i); i++)
			itemCount++;
	
		for(i = 0; i < itemCount; i++)
		{
			if(i == onSuffixNum)
				document.getElementById(prefixName + i).checked = true;
			else
				document.getElementById(prefixName + i).checked = false;
		}
	},

	/// --------------------------------------------------------------------------------------------
	/// ÆäÀÌÁö³»¿¡¼­ Á¢µÎ¾îÀÌ¸§¿¡ ¼ø¹ø(¹Ýµå½Ã 0 ºÎÅÍ)À» ºÙ¿© °³Ã¼¸¦ ±×·ìÈ­ÇÏ¿©
	/// ÁöÁ¤ÇÑ ¼ø¹øÀÇ °³Ã¼¸¦ »ç¿ëºÒ´ÉÀ¸·Î ³ª¸ÓÁö´Â »ç¿ë°¡´ÉÀ¸·Î ¼³Á¤ÇÑ´Ù.
	/// --------------------------------------------------------------------------------------------
	ToggleDisabled : function(prefixName, offSuffixNum)
	{
		var itemCount = 0;
		for(i = 0; document.getElementById(prefixName + i); i++)
			itemCount++;
	
		for(i = 0; i < itemCount; i++)
		{
			if(i == offSuffixNum)
				document.getElementById(prefixName + i).disabled = true;
			else
				document.getElementById(prefixName + i).disabled = false;
		}
	},

	/// ----------------------------------------------------------------------------------------------------------------
	///		¿ìÆí¹øÈ£ ¹× ÁÖ¼Ò °Ë»ö Ã¢
	///
	///     »ç¿ëÀÚ·ÎºÎÅÍ µ¿ ÀÔ·Â ¿ä±¸
	/// ----------------------------------------------------------------------------------------------------------------
	CheckDong : function(oTBox) {
		if(this.IsSpace(oTBox.value))
		{
			alert('°Ë»öÇÏ°íÀÚ ÇÏ´Â "(À¾/¸é)µ¿" ÀÌ¸§À» ÀÔ·ÂÇÏ¼¼¿ä.');
			oTBox.focus();
			return false;
		}
	},
	
	///
	/// ¿ÀÇÁ³Ê¿¡°Ô °á°ú ¼Û½Å
	/// ----------------------------------------------------------------------------------------------------------------

	ZipCodeSend : function(strZipCode, strAddr, zipCodeControlID, addrControlID, focusControID) {
		top.opener.vrEnterJS.Utility.ZipCodeReceiver(strZipCode, strAddr, zipCodeControlID, addrControlID, focusControID);
		top.self.close();
	},
	
	///
	/// ÆË¾÷Ã¢À¸·Î ºÎÅÍ ¼ö½Å
	/// ----------------------------------------------------------------------------------------------------------------
	ZipCodeReceiver : function(strZipCode, strAddr, zipCodeControlID, addrControlID, focusControID) {
		document.getElementById(zipCodeControlID).value = strZipCode;
		document.getElementById(addrControlID).value = strAddr;
		document.getElementById(focusControID).focus();
	},
	
	///
	/// ¿ìÆí¹øÈ£ ÆË¾÷À¸·Î ¿­±â
	/// ----------------------------------------------------------------------------------------------------------------
	ZipCodeOpen : function(zipCodeControlID, addrControlID, focusControlID, features) {
		// IsOpener = 0 or 1
		// zipCodeControlID = °Ë»öÈÄ ¿ìÆí¹øÈ£¸¦ ¹ÞÀ» ÄÁÆ®·Ñ
		// addrControlID = °Ë»öÈÄ ÁÖ¼Ò¸¦ ¹ÞÀ» ÄÁÆ®·Ñ
		// focusControlID = °Ë»öÈÄ Æ÷Ä¿½º¸¦ ¹ÞÀ» ÄÁÆ®·Ñ
		// features = ÆË¾÷Ã¢ Å©±â ¹× Á¦¾î
		
		var objWin = null;
		var strUrl = "/vrEnter/Zipcode?ZId=" + zipCodeControlID + "&AId=" + addrControlID + "&FId=" + focusControlID;
		
		objWin = window.open(strUrl, "Zipcode", features);
		objWin.focus();
	},


	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	/////////               ////////////
	/////////   °ËÁõ ·çÆ¾   ////////////
	/////////               ////////////
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	IsNumKey : function() {
		k = event.keyCode;
		if((k >= 48 && k <= 57) || (k >= 96 && k <= 105))
		{
			event.returnValue = false;
			return true;
		}
	},
	
	// ÁÖ¾îÁø ¹®ÀÚ¿­ÀÌ ¼ýÀÚ·Î¸¸ ÀÌ·ç¾îÁ®ÀÖ´ÂÁö °Ë»çÇÑ´Ù. ¼ýÀÚ·Î¸¸ µÇ¾îÀÖÀ¸¸é true ±×·¸Áö¾ÊÀ¸¸é false
	/// ------------------------------------------------------------------------------------------------------
	IsInteger : function(st) {
		if (!this.IsSpace(st))
		{
			for (j = 0; j < st.length; j++)
				if (((st.substring(j, j+1) < "0") || (st.substring(j, j+1) > "9")))
					return false;
		}
		else
		{
			return false;
		}
	
		return true;
	},
				
	// ÁÖ¾îÁø ¹®ÀÚ¿­ÀÌ ¾ËÆÄºªÀ¸·Î¸¸ ÀÌ·ç¾îÁ®ÀÖ´ÂÁö °Ë»çÇÑ´Ù. ¾ËÆÄºªÀ¸·Î¸¸ µÇ¾îÀÖÀ¸¸é true ±×·¸Áö¾ÊÀ¸¸é false
	/// ------------------------------------------------------------------------------------------------------
	IsAlpha : function(str) {
		for(var i = 0; i < str.length; i++)
		{
			var k = str.substr(i,1).charCodeAt();
			if(!((65 <= k && k <= 90) || (97 <= k && k <= 122)))
			{
				return false;
			}
		}
		
		return true;
	},
				
	// ÁÖ¾îÁø ¹®ÀÚ¿­ÀÌ ¾ËÆÄºª°ú ¼ýÀÚ·Î¸¸ ÀÌ·ç¾îÁ®ÀÖ´ÂÁö °Ë»çÇÑ´Ù.
	/// ------------------------------------------------------------------------------------------------------
	IsAlphaNumeric : function(str) {
		for(var i = 0; i < str.length; i++)
		{
			var k = str.substr(i,1).charCodeAt();
			if((k < 48 || k > 122) || (k > 57 && k < 65) || (k > 90 && k < 97))
			{
				return false;
			}
		}
		
		return true;
	},						
	
	// ÁÖ¾îÁø ¹®ÀÚ¿­ÀÌ ÇÑ±Û·Î¸¸ ÀÌ·ç¾îÁ®ÀÖ´ÂÁö °Ë»çÇÑ´Ù.
	/// ------------------------------------------------------------------------------------------------------
	IsHangeul : function(str) {
		var theOne =  new String();
		var theCode = 0;
		
		for(i = 0; i < str.length; i++)
		{
			theOne = str.substr(i, 1);
			theOne = theOne.toUpperCase();
	
			theCode = theOne.charCodeAt(0);
			
			if(("0" <= theOne && theOne <= "9") || ("A" <= theOne && theOne <= "Z") || (0 <= theCode && theCode <= 255))
			{
				return false;			
			}
		}
		
		return true;
	},
	
	// ÁÖ¾îÁø ¹®ÀÚ¿­ÀÌ ºñ¾îÀÖ´ÂÁö °Ë»çÇÑ´Ù. ºñ¾îÀÖ°Å³ª °ø¹é¹®ÀÚ(" ")·Î¸¸ µÇ¾îÀÖÀ¸¸é true
	/// ------------------------------------------------------------------------------------------------------
	IsSpace : function(strCheck) {
		var chkstr = strCheck + "";
		var is_Space = true;
			
		if (( chkstr == "") || (chkstr == null))	return is_Space;
			
		for (j = 0; is_Space && j < chkstr.length; j++)
		{
			if (chkstr.substring(j, j+1) != " ")	is_Space = false ;
		}
			
		return is_Space;
	},
				
	// ÁÖ¾îÁø ¹®ÀÚ¿­ÀÌ ºñ¾îÀÖÁöµµ ¾Ê°í ÇÑ°³¶óµµ °ø¹é¹®ÀÚ(" ")¸¦ Æ÷ÇÔÇÏ°í ÀÖÁö¾ÊÀ¸¸é true
	/// ------------------------------------------------------------------------------------------------------
	IsNoneSpace : function(strCheck) {
		var chkstr = strCheck + "";
			
		if (( chkstr == "") || (chkstr == null))	return false;
			
		for (j = 0;  j < chkstr.length; j++)
		{
			if (chkstr.substring(j, j+1) == " ")	return false ;
		}
			
		return true;
	},
				
	// Ã¹ ±ÛÀÚ°¡ " "ÀÌ¸é true
	/// ------------------------------------------------------------------------------------------------------
	IsFirstSpace : function(str)
	{
		if((str == "") || (str == null))
			return true;
				
		if(str.substring(0,1) != " ")
			return false;
						
		return true;
	},
				
	// ¸¶Áö¸· ±ÛÀÚ°¡ " "ÀÌ¸é true
	/// ------------------------------------------------------------------------------------------------------
	IsLastSpace : function(str)
	{
		if((str == "") || (str == null))
			return true;
				
		if(str.substring(str.length - 1,str.length) != " ")
			return false;
					
		return true;
	},
	
	// ÁÖ¾îÁø ¹®ÀÚ¿­(first argument(s))ÀÇ ±ÛÀÚ¼ö°¡ 
	// ÁÖ¾îÁø ÇÑ°èÄ¡(second argument(s)) ¹þ¾î³ª¸é true
	/// ------------------------------------------------------------------------------------------------------
	IsOverLength : function(str, maxLen)
	{
		if(str.length > maxLen)
			return true;
		else
			return false;
	},
	
	
	// Email ÁÖ¼Ò Ã¼Å©¿ë ÇÔ¼ö
	/// ------------------------------------------------------------------------------------------------------
	IsEmail : function(str)
	{
		// regular expression Áö¿ø ¿©ºÎ Á¡°Ë
		var supported = 0;
				
		if (window.RegExp)
		{
			var tempStr = "a";
			var tempReg = new RegExp(tempStr);
			if (tempReg.test(tempStr)) supported = 1;
		}
					
		if (!supported) 
			return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
					
		var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
		var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
					
		return (!r1.test(str) && r2.test(str));
	},
	
	// À±³â Ã¼Å©
	/// ------------------------------------------------------------------------------------------------------
	IsLeapYear : function (Year) {
	
		if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
			return (true);
		}
		else {
			return (false);
		}
	},
	
	// ¿ùº° ³¯Â¥ ±¸ÇÏ±â
	/// ------------------------------------------------------------------------------------------------------
	GetDaysInMonth : function(yyyy, mm)  {GetMaxDay(yyyy, mm);},//ÀÌÀü¹öÀü È£È¯¿ë. ÀÌÈÄ(2008-08-19) »ç¿ëÇÏÁö ¾ÊÀ½. ÀÏÁ¤½Ã°£ °æ°ú ÈÄ »èÁ¦ÇÒ °Í. 
	GetMaxDay : function(yyyy, mm)  {
	
		var days = null;
		var month = parseFloat(mm);
		var year  = parseFloat(yyyy);
	
		if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) 
		{
			days=31;
		}
		else if (month==4 || month==6 || month==9 || month==11)
		{
			days=30;
		}
		else if (month==2)
		{
			if (this.IsLeapYear(year))
			{
				days=29;
			}
			else
			{
				days=28;
			}
		}
		return (days);
	},
	
	///
	/// ÁöÁ¤ ³â, ¿ù¿¡ ÇØ´çÇÏ´Â °¡ÀåÅ« 
	/// ³¯Â¥¸¦ ¹ÝÈ¯ÇÕ´Ï´Ù. ¿À·ù -1 ¹ÝÈ¯
	/// ¿É¼ÇÀÎ 3¹øÂ° ÀÎÀÚ´Â ³¯Â¥¸¦ Ã¤¿ï ÄÞº¸¹Ú½ºÀÔ´Ï´Ù.
	///
	FillDays : function(yyyy, mm, oTargetSelect)
	{
		if(yyyy < 1 || yyyy > 9999 || mm < 1 || mm > 31)
			return -1;
		
		var days = this.GetMaxDay(yyyy, mm);
		
		if(arguments.length == 2)
			return days;
		
		oTargetSelect.options.length = 0;
		
		var newElement = document.createElement("option");
		newElement.text = "¼±ÅÃ";
		newElement.value = "0";
		
		oTargetSelect.options.add(newElement);
		
		for(var i = 1; i <= days; i++)
		{
			newElement = document.createElement("option");
			
			var strDay = (i<10)?"0" + i: i;
			newElement.text = strDay;
			newElement.value = strDay;
			
			oTargetSelect.options.add(newElement);
		}
		
		return days;
	},	
	
	// ³¯Â¥ Çü½Ä Ã¼Å©
	/// ------------------------------------------------------------------------------------------------------
	IsDate : function(strDate)
	{
		var errMsg = new Array(//
								"³¯Â¥Çü½Ä ¿À·ù !",
								"³â ¹üÀ§°¡ ¹þ¾î³­ ¿À·ù !\n\n1753 ~ 9999 »çÀÌÀÇ ³â¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä",
								"¿ù ¹üÀ§°¡ ¹þ¾î³­ ¿À·ù !\n\n1 ~ 12 »çÀÌÀÇ ¿ùÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä.",
								"³¯Â¥ ¹üÀ§°¡ ¹þ¾î³­ ¿À·ù");
								
		var arr = strDate.split('-');
		var returnValue = "ok";	
		try
		{
			if(arr.length != 3)
				throw errMsg[0];
			
			var yyyy = parseFloat(arr[0]);
			var mm = parseFloat(arr[1]);
			var dd = parseFloat(arr[2]);
			
			if(yyyy < 1753 || yyyy > 9999)
				throw errMsg[1];
			
			if(mm < 1 || mm > 12)
				throw errMsg[2];
			
			var maxDay = this.GetMaxDay(arr[0], arr[1]);
			
			if(dd < 1 || dd > maxDay)
				throw errMsg[3] + "\r\n1 ~ " + maxDay + " »çÀÌÀÇ ÀÏÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä.";
		}			
		catch(e)
		{
			returnValue = e.description + "\n\n\n\n³¯Â¥ÀÔ·ÂÇü½Ä : yyyy-mm-dd";
		}
	
		return (returnValue);
	},
	
	// ÁÖ¾îÁø ¹®ÀÚ¿­ÀÌ ³¯Â¥Çü½ÄÀÌ ¾Æ´Ï¸é false, ³¯Â¥Çü½ÄÀÌ¸é Date °´Ã¼¸¦ ¸®ÅÏ.
	/// ------------------------------------------------------------------------------------------------------
	CheckDateFormat : function(strDate)
	{
		if(this.IsSpace(strDate))
			return false;
		
		var aStr = null, startDt = null;
		
		if(strDate.indexOf("-") >= 0)
			aStr = strDate.split("-");
		else if(strDate.indexOf(".") >= 0)
			aStr = strDate.split(".");
		else if(strDate.indexOf("/") >= 0)
			aStr = strDate.split("/");
		
		if(aStr == null || aStr.length != 3)
			return false;
		
		var dt = new Date(parseFloat(aStr[0]), parseFloat(aStr[1])-1, parseFloat(aStr[2]));
		if(dt == "NaN")
			return false;
		
		return dt;
	},
	
	
	// ÁÖ¾îÁø ³ªÀÌ ¹Ì¸¸Ã¼Å© 
	/// ------------------------------------------------------------------------------------------------------
	IsUnderAge : function(juminNo, baseValue)
	{
		//¼ýÀÚ±¸¼ºÀÎÁö È®ÀÎ
		if (!this.IsInteger(juminNo))	return false;
	
		var oldYear;
		var gender = juminNo.substring(6, 7);
		
		if(gender == "1" || gender == "2")
			oldYear = "19";
		else if(gender == "3" || gender == "4")
			oldYear = "20";
		else
			return false;
			
		oldYear += juminNo.substring(0, 2) + juminNo.substring(2, 4) + juminNo.substring(4, 6);
		
		var currentDate = new String();
		d = new Date();
	
		currentDate = currentDate + d.getYear() + (((d.getMonth() + 1) < 10) ? ("0" + (d.getMonth() + 1)) : (d.getMonth() + 1)) +
			(d.getDate() < 10 ? ("0" + d.getDate()) : d.getDate());	//¿ùÀÏÀº µÎÀÚ¸®·Î ¸ÂÃá´Ù. 2004³â1¿ù5ÀÏ => 20040105
		
		baseValue += "0000"; //14¼¼ ¹Ì¸¸À» Ã¼Å©ÇÏ±âÀ§ÇØ baseValue´Â 14°¡ ³Ñ¾î¿Ã°ÍÀÌ´Ù. °Å±â¿¡ ¿ùÀÏ(0000)À» ºÙÀÎ´Ù.
		
		//Å×½ºÆ®¿ë..alert(parseFloat(currentDate) + " - " + parseFloat(oldYear) + " = " + (parseFloat(currentDate) - parseFloat(oldYear)) + " : " + parseFloat(baseValue));
		if(parseFloat(currentDate) - parseFloat(oldYear) < parseFloat(baseValue))	return true;
	
		return false;
	},
	
	///
	/// ¸ðµç °ø¹é¹®ÀÚ Á¦°Å
	///	Àü´ÞÀÎÀÚ:TextBox ¶Ç´Â TextArea °³Ã¼
	/// ¸®ÅÏ°ª:ÁÙ¹Ù²Þ¹®ÀÚ¸¦Á¦¿ÜÇÑ ¸ðµç°ø¹éÀ» Á¦°ÅÇÑ °³Ã¼
	///
	RemoveAllSpace : function(obj)
	{
		var result = "";
		
		if(obj.type == "textarea" || obj.type == "text")
		{
			var values = obj.value.split("\r\n");
			for(var i = 0; i < values.length; i++)
			{
				var value = values[i];
				
				if(value.length == 0)
					continue;
				
				if(result.length > 0)
					result += "\r\n";
				
				for(var j = 0; j < value.length; j++)
				{
					var str = value.substr(j, 1);
					if(str == " " || str == "\t")
						continue;
					else
						result += str;
				}
			}
			
			obj.value = result;
		}
	}
}


vrEnter_Utility.prototype.AddFavorite = function(url, title) {
	
	if(document.all)
	{
		if(arguments.length == 2 && !vrEnterJS.Utility.IsSpace(url) && !vrEnterJS.Utility.IsSpace(title))
			window.external.AddFavorite(url, title);	
		else
			window.external.AddFavorite(top.location.href, document.title);	
	}

}


	
vrEnter_Utility.prototype.CreateNumber = function (preFix) {
        var toDay = new Date();
        var year = toDay.getFullYear();
        var month = toDay.getMonth()+1;
        var date = toDay.getDate();
        var hour = toDay.getHours();
        var min = toDay.getMinutes();
        var sec = toDay.getSeconds();
		var mis = toDay.getMilliseconds();

        if(month<10) month = "0" + String(month);
        if(date<10) date = "0" + String(date);
        if(hour<10) hour = "0" + String(hour);
        if(min<10) min = "0" + String(min);
        if(sec<10) sec = "0" + String(sec);
		if(mis<10) mis = "00" + String(mis);
		else if(mis < 100) mis = "0" + String(mis);

		//¿¹, preFix = vrEODN (means vrEnter Order Number ÃÑ23ÀÚ¸®, vreODN_20090101_143020145)
        return ((preFix)?preFix:"vrEODN") + "_" + year.toString().substr(2) + month + date + "_" + hour + min + sec + mis;
}


//=========================================================================================================
//
// vrEnter_Utility_CallBack
//
//=========================================================================================================
vrEnter_Utility_CallBack = function() {

}

vrEnter_Utility_CallBack.prototype = {
	Alert : function(queryUrl, returnUrl, successMsg, errorMsg) {
		var xmlHttp = vrEnterJS.Utility.DoCallBack(queryUrl);
	
		xmlHttp.onreadystatechange = function()
		{
			switch(xmlHttp.readyState)
			{
				//(Uninitialized) The object has been created, but not initialized (the open method has not been called). 
				case 0 :
					break;
	
				//(Open) The object has been created, but the send method has not been called. 
				case 1 :
					break;
				
				//(Sent) The send method has been called, but the status and headers are not yet available. 
				case 2 :
					break;
				
				//(Receiving) Some data has been received.  
				case 3 :
					break;
				
				//(Loaded) All the data has been received, and is available. 
				case 4 :
					switch(xmlHttp.status)
					{
						case 200 :
							var msg = xmlHttp.responseText;
							
							if(parseInt(msg.substr(0, 1)) > 0)
							{
								if(returnUrl != null && returnUrl != '')
									document.location = returnUrl;
								
								if(successMsg != null && successMsg != '')
									alert(successMsg);
								else
									alert(msg.substr(1));						
							}
							else
							{
								if(errorMsg != null && errorMsg != '')
									alert(errorMsg);
								else
									alert(msg.substr(1));
							}
							break;
						
						default:
							alert(xmlHttp.status + " Error");
							break;
					}
					break;
			}
		}
	},
	
	Write : function(queryUrl, outputElement) {
		var xmlHttp = vrEnterJS.Utility.DoCallBack(queryUrl);
		
		xmlHttp.onreadystatechange = function()
		{
			if(xmlHttp.readyState == 4)
			{
				if(xmlHttp.status == 200)//200 = Á¤»óÃ³¸®
				{
					var msg = xmlHttp.responseText;
					var msgs = new Array(2);
					msgs[0] = msg.substr(0, 1);
					msgs[1] = msg.substring(1);
					
					if(msgs[0]  == "1")
					{
						if(arguments.length == 2 && outputElement != null)
						outputElement.innerHTML = msgs[1];
					}	
					else if(msgs[0]  == "0")
					{
						alert(msgs[1]);
					}
				}
				else
				{
					alert(xmlHttp.status + " ¿À·ù");
				}			
			}
		}
	},
	
	CategoryNavigation : function(queryUrl, outputElement, codeSeparator, outputSeparator) {
		var xmlHttp = vrEnterJS.Utility.DoCallBack(queryUrl);
		
		xmlHttp.onreadystatechange = function()
		{
			if(xmlHttp.readyState == 4)
			{
				if(xmlHttp.status == 200)//200 = Á¤»óÃ³¸®
				{
					var msg = xmlHttp.responseText;
					var msgs = new Array(2);
					msgs[0] = msg.substr(0, 1);
					msgs[1] = msg.substring(1);
					
					if(msgs[0]  == "1")
					{	
						outputElement.innerHTML = "";
						var seps = msgs[1].split(codeSeparator);
						
						for(var i = 0; i < seps.length; i++)
						{
							if(outputElement.innerHTML != '')
								outputElement.innerHTML += outputSeparator;
								
							outputElement.innerHTML += seps[i];
						}
					}	
					else if(msgs[0]  == "0")
					{
						alert(msgs[1]);
					}
				}
				else
				{
					alert(xmlHttp.status + " ¿À·ù");
				}			
			}
		}
	}
	
}


//=========================================================================================================
//
// vrEnter_Utility_Layer
//
//=========================================================================================================
vrEnter_Utility_Layer = function() {

}
vrEnter_Utility_Layer.prototype = {

	///
	/// Ã¹ ¹øÂ° ÀÎ¼öÀÇ ·¹ÀÌ¾î´Â ¹«Á¶°Ç ON ÀÌµÇ°í
	/// µÚ¿¡¿À´Â ÀÎ¼öÀÇ ·¹ÀÌ¾î´Â ¸ðµÎ OFF ÇÑ´Ù.
	///
	Switching : function(showID)
	{
		if(arguments.length == 0)
		{
			alert("·¹ÀÌ¾î¸¦ ÁöÁ¤ÇØ ÁÖ¼¼¿ä.");
			return;
		}
		
		var obj = $get(showID);
		
		if(obj != null && obj.style)
			obj.style.display = "block";
		
		if(arguments.length >= 2)
		{
			var args = arguments;
			
			for(var i = 1; i < args.length; i++)
			{
				obj = $get(args[i]);
				
				if(obj != null && obj.style)
					obj.style.display = "none";
			}
		}
	},
	
	///
	/// ÁöÁ¤ÇÑ ·¹ÀÌ¾îÀÇ Display »óÅÂ¸¦ ¹ÝÀüÇÑ´Ù.
	///
	Toggle : function(targetID)
	{
		if(arguments.length == 0)
		{
			alert("·¹ÀÌ¾î¸¦ ÁöÁ¤ÇØ ÁÖ¼¼¿ä.");
			return;
		}
		
		var obj = $get(targetID);
		
		if(obj != null && obj.style)
		{
			if(obj.style.display != "block")
				obj.style.display = "block";
			else
				obj.style.display = "none";
		}
	},
	
	///
	/// ÁöÁ¤ÇÑ ·¹ÀÌ¾î¸¦ ¹«Á¶°Ç ÄÔ´Ï´Ù.
	///
	On : function(showID)
	{
		if(arguments.length == 0)
		{
			alert("·¹ÀÌ¾î¸¦ ÁöÁ¤ÇØ ÁÖ¼¼¿ä.");
			return;
		}
		
		var obj = $get(showID);
		
		if(obj != null && obj.style)
			obj.style.display = "block";
	},
	
	///
	/// ÁöÁ¤ÇÑ ·¹ÀÌ¾î¸¦ ¹«Á¶°Ç ²û´Ï´Ù.
	Off : function(hideID)
	{
		if(arguments.length == 0)
		{
			alert("·¹ÀÌ¾î¸¦ ÁöÁ¤ÇØ ÁÖ¼¼¿ä.");
			return;
		}
		
		var obj = $get(hideID);
		
		if(obj != null && obj.style)
			obj.style.display = "none";
	}

}


//=========================================================================================================
//
// vrEnter_Utility_Popup
//
//=========================================================================================================
vrEnter_Utility_Popup = function() {

}
vrEnter_Utility_Popup.prototype = {

	///
	/// ½ºÅ©·Ñ¹Ù ¾øÀ½.
	///
	Open : function(url, w, h)
	{	
		switch(arguments.length)
		{
			case 3:
				nwObj = window.open(url, "nw", "width=" + w + ", height=" + h);		
				break;
			default:
				nwObj = window.open(url, "nw", "menubar=0");		
				break;
		}
		
		var sw = screen.width, sh = screen.height;
		var x = (sw - w) / 2, y = (sh - h) / 2;
		
		if(nwObj != null)
		{
			nwObj.moveTo(x, y);
			nwObj.focus();
		}
	}

}


/*
The long integer status value is a standard HTTP status code as described in the following table:

Number  Description  
100 Continue
 
101 Switching protocols
 
200 OK
 
201 Created
 
202 Accepted
 
203 Non-Authoritative Information
 
204 No Content
 
205 Reset Content
 
206 Partial Content
 
300 Multiple Choices
 
301 Moved Permanently
 
302 Found
 
303 See Other
 
304 Not Modified
 
305 Use Proxy
 
307 Temporary Redirect
 
400 Bad Request
 
401 Unauthorized
 
402 Payment Required
 
403 Forbidden
 
404 Not Found
 
405 Method Not Allowed
 
406 Not Acceptable
 
407 Proxy Authentication Required
 
408 Request Timeout
 

409 Conflict
 
410 Gone
 
411 Length Required
 
412 Precondition Failed
 
413 Request Entity Too Large
 
414 Request-URI Too Long
 
415 Unsupported Media Type
 
416 Requested Range Not Suitable
 
417 Expectation Failed
 
500 Internal Server Error
 
501 Not Implemented
 
502 Bad Gateway
 
503 Service Unavailable
 
504 Gateway Timeout
 
505 HTTP Version Not Supported
*/

/*/
/// Å°º¸µå ·çÆ¾
=================================================================
Å°                | ÄÚµå(¼ýÀÚ)
=================================================================
¡ç(¹é½ºÆÐÀÌ½º) = 8
TAB = 9
ENTER = 13
SHIFT = 16
CTRL = 17
ALT = 18
PAUSEBREAK = 19
CAPSLOOK = 20
ÇÑ/¿µ = 21
ÇÑÀÚ = 25
ESC = 27

½ºÆÐÀÌ½º = 32
PAGEUP = 33
PAGEDN = 34
END = 35
HOME =36

¡ç(Áß°£) = 37
¡è(Áß°£) = 38
¡æ(Áß°£) = 39
¡é(Áß°£) = 40

INSERT = 45
DELETE = 46

0 = 48
1 = 49
2 = 50
3 = 51
4 = 52
5 = 53
6 = 54
7 = 55
8 = 56
9 = 57

A = 65
B = 66
C = 67
D = 68
E = 69
F = 70
G = 71
H = 72
I = 73
J = 74
K = 75
L = 76
M = 77
N = 78
O = 79
P = 80
Q = 81
R = 82
S = 83
T = 84
U = 85
V = 86
W = 87
X = 88
Y = 89
Z = 90

À©µµ¿ì(¿ÞÂÊ) = 91
À©µµ¿ì(¿À¸¥ÂÊ) = 92
±â´ÉÅ° = 93

0(¿À¸¥ÂÊ) = 96
1(¿À¸¥ÂÊ) = 97
2(¿À¸¥ÂÊ) = 98
3(¿À¸¥ÂÊ) = 99
4(¿À¸¥ÂÊ) = 100
5(¿À¸¥ÂÊ) = 101
6(¿À¸¥ÂÊ) = 102
7(¿À¸¥ÂÊ) = 103
8(¿À¸¥ÂÊ) = 104
9(¿À¸¥ÂÊ) = 105


.(¿À¸¥ÂÊ) = 110
/(¿À¸¥ÂÊ) = 111
*(¿À¸¥ÂÊ) = 106
+(¿À¸¥ÂÊ) = 107
-(¿À¸¥ÂÊ) = 109

F1 = 112
F2 = 113
F3 = 114
F4 = 115
F5 = 116
F6 = 117
F7 = 118
F8 = 119
F9 = 120
F10 = 121
F11 = 122
F12 = 123

NUMLOCK = 144
SCROLLLOCK = 145
=(Áß°£) = 187
-(Áß°£) = 189
`(¿ÞÂÊÄÞ¸¶) = 192
\(Áß°£) = 220 

/*/




