/*-----------------------------------------------------------------------------------------------
                         ÀÔ·Â°ª Ã¼Å© JavaScript  2003-12-05
-------------------------------------------------------------------------------------------------
CheckValid  : ½ºÆäÀÌ½º(space)ÀÔ·Â¿©ºÎ ¹®ÀÚ¿­ Valid °Ë»çÃ³¸®
isEmpty  : Empty ¹× °ø¹é Ã³¸® (ÇÊ¿äÇÔ¼ö CheckValid)
isNotSet : °ø¹éÀÎÁö Ã¼Å©
haveSpace : ½ºÆäÀÌ½º(space)ÀÔ·Â¿©ºÎ (ÇÊ¿äÇÔ¼ö CheckValid)
isNotNumber : ¼ýÀÚÀÎÁö ÀÔ·Â Ã¼Å©
isNotNumberOrEmpty : NumberCheck And Empty Check
alertAndFocus 
isNotAlphaNumeric  : String ¾ËÆÄºª°ú ¼ýÀÚ¸¸~ Check 
strLength  :  ÇÊµå(String) ±æÀÌ 
isOutOfRange : min¿¡¼­ max±îÁö ¹®ÀÚ¿­ ±æÀÌÁ¦ÇÑ (ÇÊ¿äÇÔ¼ö strLength)
isNotExactLength : ±æÀÌ¸¸Å­ ÀÔ·Â ¿ä±¸  (ÇÊ¿äÇÔ¼ö strLength)
isOutOfNumericRange :  ¼ýÀÚ¹üÀ§ 

isNotSelected : Select Box ¼±ÅÃ¿©ºÎ °Ë»ç   
isNotCheckedRadio  :  Radio Button Check
uncheckRadio : Radio ButtonÀ» ¼±ÅÃÇØÁ¦ÇÑ´Ù
getRadioVal : Radio ButtonÀÇ ¼±ÅÃµÈ °ªÀ» °¡Á®¿Â´Ù

isNotValidChar : Çã¿ë°¡´ÉÇÑ ¹®ÀÚ Ã¼Å©
isNotValidChar2 Çã¿ëµÇ¾î¼­´Â ¾ÈµÇ´Â ¹®ÀÚµéÃ¼Å©

checkNumber : ¼ýÀÚ ¼Ò¼ýÁ¡ Ã¼Å©
editStop : Æ¯Á¤ ÇÊµå¿¡ ´ëÇÑ ¼öÁ¤À» ¸·´Â ÇàÀ§
formatCurrency : ¼ýÀÚ³ª ¹®ÀÚ¿­À» ÅëÈ­(Money) Çü½ÄÀ¸·Î ¸¸µç´Ù.( ½°Ç¥(,) Âï´Â´Ù´Â ¼Ò¸®.. )
doInit : °Ë»ö¾î°¡ ÀÔ·ÂµÇ´Â FORM element¸¦ ÃÊ±âÈ­ ÇÑ´Ù

isNotPositiveNumber : Positive NumberCheck  
enterKeyDown : ENTERÅ° ´Ù¿î µÇ¾úÀ»¶§ ³Ñ°Ü¹ÞÀº Function½ÇÇà
keyDown : Æ¯Á¤Å° ´Ù¿î µÇ¾úÀ»¶§ ³Ñ°Ü¹ÞÀº Function½ÇÇà
toValidStr	: ¹®ÀÚ¿­³»¿¡ ÀÖ´Â ', "¸¦ \', \" ·Îº¯È¯ÇÑ´Ù.
encChar : ±ÛÀÚÀ» ´ëÃ¼ÇÏ´Â ÇÔ¼ö
decChar
round : ÁÖ¾îÁø °ª(val)À» ¼Ò¼öÁ¡ÀÌÇÏ numÀÚ¸®¼ö¿¡¼­ ¹Ý¿Ã¸²ÇÑ°ªÀ» ¸®ÅÏÇÑ´Ù
roundValue : Æ¯Á¤ ÇÊµå°ª¿¡ ´ëÇØ¼­ ³¡ÀÚ¸®¸¦ 10´ÜÀ§·Î  ÀüÈ¯
-------------------------------------------------------------------------------------------------*/

/******************************
*  ±â´É :  ¹®ÀÚ¿­ Valid °Ë»çÃ³¸® *
*  parameter : string, space  *
*******************************/

function CheckValid(String, space)
{

   var retvalue = false;

   for (var i=0; i<String.length; i++)
   {		//StringÀÌ 0("" ÀÌ³ª null)ÀÌ¸é ¹«Á¶°Ç false
      if (space == true)
      {
         if (String.charAt(i) == ' ')
         {			//StringÀÌ 0ÀÌ ¾Æ´Ò¶§ space°¡ ÀÖ¾î¾ß¸¸ true(valid)
            retvalue = true;
            break;
         }
      } else {
         if (String.charAt(i) != ' ')
         {			//stringÀÌ 0ÀÌ ¾Æ´Ò¶§ space°¡ ¾Æ´Ñ ±ÛÀÚ°¡ ÀÖ¾î¾ß¸¸ true(valid)
            retvalue = true;
            break;
         }
      }
   }

   return retvalue;
}

/******************************
*  ±â´É :  Empty ¹× °ø¹é Ã³¸®    *
*  parameter : field, error_msg  *
*******************************/

function isEmpty(field, error_msg)
{
	// error_msg°¡ ""ÀÌ¸é alert¿Í focusingÀ» ÇÏÁö ¾Ê´Â´Ù
	if(error_msg == "") {
		if(!CheckValid(field.value, false)) 	{
			return true;
		} else {
			return false;
		}
	} else {
		if(!CheckValid(field.value, false)) {
			alert(error_msg);
			field.focus() ;
			return true;
		} else {
			return false;
		}
	}
}

function isNotSet(field, error_msg)
{ 
	//for hidden field....
	if(field.value == "")
	{
		alert(error_msg);
		return true;
	} else
	{
		return false;
	}
}

function haveSpace(field, error_msg)
{
	if(CheckValid(field.value, true))
	{
		alert(error_msg);
		field.focus();
		field.select();
		return true;
	}
	return false;
}


/******************************
*  ±â´É :  NumberCheck           *
*  parameter : field, error_msg  *
*******************************/
function isNotNumber(field, error_msg)
{
	var val = field.value;

	if(isNaN(val) ) {
		if(error_msg.length > 0) {
			alert(error_msg);
			field.focus();
			field.select();
		}
		return true;
	} else {
		return false;
	}
}

/******************************
*  ±â´É :  NumberCheck And Empty Check
*  parameter : field, error_msg
*******************************/
function isNotNumberOrEmpty(field, error_msg)
{
	var val = field.value;

	if(val.length == 0 || isNaN(val) ) {
		if(error_msg.length > 0) {
			alert(error_msg);
			field.focus();
			field.select();
		}
		return true;
	} else {
		return false;
	}
}

function alertAndFocus(field, error_msg)
{
	alert(error_msg);
	field.focus();
	field.select();
}

/***************************************
*  ±â´É : String ¾ËÆÄºª°ú ¼ýÀÚ¸¸~ Check  *
*  parameter : Form                              *
****************************************/
function isNotAlphaNumeric(field,error_msg)
{

   for (var i=0; i < field.value.length; i++)
   {
      if ( ( (field.value.charAt(i) < "0") || (field.value.charAt(i) > "9") ) &&
           ( ( (field.value.charAt(i) < "A") || (field.value.charAt(i) > "Z") ) &&
             ( (field.value.charAt(i) < "a") || (field.value.charAt(i) > "z") ) ) )
	  {
         alert(error_msg);
		 field.focus();
		 field.select();
		 return true;
	   }
   }

   return false;
}

// ÇÊµå(String) ±æÀÌ °ü·Ã
function strLength(field)
{

   var Length = 0;

   var Nav = navigator.appName;
   var Ver = navigator.appVersion;

   var IsExplorer = false;

   var ch;

   if ( (Nav == 'Microsoft Internet Explorer') && (Ver.charAt(0) >= 4) )
   {
      IsExplorer = true;
   }

   if(IsExplorer)
   {

      for(var i = 0 ; i < field.value.length; i++)
      {

         ch = field.value.charAt(i);

         if ((ch == "\n") || ((ch >= "¤¿") && (ch <= "È÷")) ||
             ((ch >="¤¡") && (ch <="¤¾")))
		{
	    	Length += 2;
		} else
		{
	    	Length += 1;
       	}

	  }

   }else {
      Length = field.value.length ;
   }

   return Length;
}

/****************************************
*  ±â´É : ¹®ÀÚ¿­ ±æÀÌÁ¦ÇÑ                          *
*  parameter : field, min, max, error_msg  *
*****************************************/
function isOutOfRange(field, min, max, error_msg)
{
	if(strLength(field) < min || strLength(field) > max)
	{
		alert(error_msg);
		field.focus();
		field.select();
		return true;
	}
	return false;
}

function isNotExactLength(field, len, error_msg) {
	if(strLength(field) != len) {
		alert(error_msg);
		field.focus();
		field.select();
		return true;
	}
	return false;
}

function isOutOfNumericRange(field, min, max, error_msg) {
	if(field.value < min || field.value > max) {
		alert(error_msg);
		field.focus();
		field.select();
		return true;
	}
	return false;
}
//---------------//

//------------------------------------- SELECT, CHECK BOX °ü·Ã ÇÔ¼ö -------------------------------
/****************************************
*  ±â´É :  Select Box ¼±ÅÃ¿©ºÎ °Ë»ç            *
*  parameter : field, error_msg                  *
*****************************************/

function isNotSelected(field, error_msg) {
	if(field.selectedIndex == 0) {
		alert(error_msg);
		field.focus() ;
		return true;
	} else {
		return false;
	}
}

/******************************
*  ±â´É :  Radio Button Check    *
*  parameter : field, error_msg  *
*******************************/
function isNotCheckedRadio(field, error_msg) {
	if ( field == null ) {
		alert(error_msg);
		return true;
	}

	if ( field.length == null ) {
		if ( field.checked == true ) {
			return false;
		} else {
			alert(error_msg);
			return true;
		}
	}

	for(i = 0; i < field.length; i++) {
		if(field[i].checked == true) {
			return false;
		}
	}
	alert(error_msg);
	return true;
}
//---------------//

/**
 * Radio ButtonÀ» ¼±ÅÃÇØÁ¦ÇÑ´Ù
 */
function uncheckRadio(field) {
	for(i = 0; i < field.length; i++) {
		field[i].checked = false;
	}
}

/**
 * Radio ButtonÀÇ ¼±ÅÃµÈ °ªÀ» °¡Á®¿Â´Ù
 */
function getRadioVal(field) {
	for(i = 0; i < field.length; i++) {
		if(field[i].checked == true)
			return field[i].value;
	}
	return "";
}



function isNotValidChar(field,error_msg) {

   var Count;
   var PermitChar = "0123456789-";  // Çã¿ë°¡´ÉÇÑ ¹®ÀÚµéÀ» ¸ðµÎ ±â·ÏÇÑ´Ù.

   for (var i = 0; i < field.value.length; i++) {
      Count = 0;
      for (var j = 0; j < PermitChar.length; j++) {
         if(field.value.charAt(i) == PermitChar.charAt(j)) {
            Count++;
            break;
         }
      }

      if (Count == 0) {
         alert(error_msg);
		 field.focus();
		 field.select();
		 return true;
         break;
      }
   }
   return false;
}

function isNotValidChar2(field,error_msg) {

 //  var NotPermitChar = "\"'";  //Çã¿ëµÇ¾î¼­´Â ¾ÈµÇ´Â ¹®ÀÚµéÀ» ¸ðµÎ ±â·ÏÇÑ´Ù.
   var NotPermitChar = "<>\"^&|'\\ ";  //Çã¿ëµÇ¾î¼­´Â ¾ÈµÇ´Â ¹®ÀÚµéÀ» ¸ðµÎ ±â·ÏÇÑ´Ù.

   if(field.value == "") return false;
   for (var i = 0; i < field.value.length; i++) {
      for (var j = 0; j < NotPermitChar.length; j++) {
         if(field.value.charAt(i) == NotPermitChar.charAt(j)) {
            ans = confirm(error_msg);
			if(ans == true) {
				return false;
			} else {
				field.focus();
				field.select();
				return true;
			}
         }
      }
   }
   return false;
}


function checkNumber(objname)
{
	var intErr = 1;
	var strValue = objname.value;
	var retCode = 0;

	for(i = 0; i < strValue.length; i++)
	{
		var retCode = strValue.charCodeAt(i);
		var retChar = strValue.substr(i, 1).toUpperCase();

		retCode = parseInt(retCode);

		// "3.4"µµ ¼ýÀÚÀÌ´Ù.
		if(!((retChar >= "0" && retChar <= "9") || retChar == "."))
		{
			intErr = 0; // break;
		}
	}

	var periodCnt = 0;

	while(strValue.indexOf(".") != -1)
	{
		periodCnt++;

		strValue = strValue.substr(strValue.indexOf(".") + 1, strValue.length - (strValue.indexOf(".") + 1));
	}

	// "3..4"´Â ¼ýÀÚ°¡ ¾Æ´Ï´Ù.
	if(periodCnt > 1)
		intErr = 0;

	if (intErr!=1)
	{
		return true;
	}
	else return false;
}


/**
 * Æ¯Á¤ ÇÊµå¿¡ ´ëÇÑ ¼öÁ¤À» ¸·´Â ÇàÀ§
 * @param   objectName : ¼öÁ¤À» ÁßÁö½ÃÅ³ ÇÊµå°´Ã¼.(ÁÖ·Î input type)
 */
function editStop(objectName) {
	objectName.blur();
}

/**
 * ¼ýÀÚ³ª ¹®ÀÚ¿­À» ÅëÈ­(Money) Çü½ÄÀ¸·Î ¸¸µç´Ù.( ½°Ç¥(,) Âï´Â´Ù´Â ¼Ò¸®.. )
 * @param	amount	"1234567"
 * @return	currencyString "1,234,567"
 */
function formatCurrency(amount)
{
	amount = new String(amount);
	var amountLength = amount.length;
	var modulus = amountLength % 3;
	var currencyString = amount.substr(0,modulus);
	for(i=modulus; i<amountLength; i=i+3) {
		if(currencyString != "") 
			currencyString += ",";
		currencyString += amount.substr(i, 3);
	}
	return currencyString;
}

/**
 * °Ë»ö¾î°¡ ÀÔ·ÂµÇ´Â FORM element¸¦ ÃÊ±âÈ­ ÇÑ´Ù.
 * 
 * @param	°Ë»ö¾î ÀÔ·Â FORM
 */
function doInit(frm)
{
	for (i = 0; i < frm.elements.length; i++)
	{
		frm.elements[i].value = "";
	}
}


/******************************
*  ±â´É :  Positive NumberCheck           *
*  parameter : field, error_msg  *
*******************************/
function isNotPositiveNumber(field, error_msg)
{
   for (var i=0; i < field.value.length; i++)
   {
      if ( field.value.charAt(i) < "1" || field.value.charAt(i) > "9" )
	  {
         alert(error_msg);
		 field.focus();
		 field.select();
		 return true;
	   }
   }
}


/**
 * ENTERÅ° ´Ù¿î µÇ¾úÀ»¶§ ³Ñ°Ü¹ÞÀº Function½ÇÇà
 *
 * @param	func	½ÇÇàÇÒ Function¸í
 */
function enterKeyDown(func)
{
	enter = event.keyCode;
	if(enter == 13)
	{
		eval(func);
	}

}

/**
 * Æ¯Á¤Å° ´Ù¿î µÇ¾úÀ»¶§ ³Ñ°Ü¹ÞÀº Function½ÇÇà
 *
 * @param	func	½ÇÇàÇÒ Function¸í
*/
function keyDown(func)
{
	enter = event.keyCode;
	if(enter == 13)
	{
		eval(func);
	}

}


/**
 * ¹®ÀÚ¿­³»¿¡ ÀÖ´Â ', "¸¦ \', \" ·Îº¯È¯ÇÑ´Ù.
 *
 * @param	str	º¯È¯ÇÒ ¹®ÀÚ¿­
 **/
function toValidStr(str)
{
	/*
	alert(str);
	var ret = "";
	for (i = 0; i < str.length; i++)
	{
		if (str.charAt(i) == '\'')
			ret += '\\\'';
		else if (str.charAt(i) == '"')
			ret += '\\\"';
		else
			ret += str.charAt(i);
	}
	*/

	re1 = /\'/gi;
	re2 = /\"/gi;
	str = str.replace(re1, "\\\'");
	str = str.replace(re2, "\\\""); 
	return str;	
	
}

function encChar(str)
{
	var temp1 = "@@@@@";
	re1 = /\'/g;
	re2 = /\"/g;
	str = str.replace(re1, temp1);
	return str;
}	

function decChar(str)
{
	re3 = /@@@@@/g;
	str = str.replace(re3, "'");
	return str;
}
//ÁÖ¾îÁø °ª(val)À» ¼Ò¼öÁ¡ÀÌÇÏ numÀÚ¸®¼ö¿¡¼­ ¹Ý¿Ã¸²ÇÑ°ªÀ» ¸®ÅÏÇÑ´Ù.
function round(val, num)
{
	val = val * Math.pow(10, num - 1);
	val = Math.round(val);
	val = val / Math.pow(10, num - 1);
	return val;
}

//Æ¯Á¤ ÇÊµå°ª¿¡ ´ëÇØ¼­ ³¡ÀÚ¸®¸¦ 10´ÜÀ§·Î  ÀüÈ¯
function roundValue(field) {

  field.value = Math.round(eval(field.value)/10) * 10

}

//---»ïºÎÇØ¿î ³¯Â¥Ã³¸®
function zeroplus(field) {
		var val = field.value;
		if (!isNaN(val)) {
			if (0 < val && val < 10 ) {
					var temp = "0" + eval(val);
					field.value = temp;
			}	    
		}
}
function forNumber(field) {
	var val = field.value;
	if (val != "") {
   
		if (!isNaN(val)) {
				if(field.value < 1900 || field.value > 3000) {
					alert('³¯Â¥¹üÀ§°¡ ¸ÂÁö ¾Ê½À´Ï´Ù');
					field.focus();
					field.select();
				}
		}
	}
}

