// File Name : formcontrol.js

/*

¸®½ºÆ®¹Ú½º(selectbox) ÄÁÆ®·Ñ ÇÔ¼ö
==========================
	int				setSelectBox(obj, txtArray, valArray, defaultVal) : ¸®½ºÆ®¹Ú½º ¼¼ÆÃÇÑ ÈÄ ¼±ÅÃµÈ index¸¦ return ÇÑ´Ù.
	int				setSelectBoxForOptions(obj, optionObjs, defaultVal) : ¸®½ºÆ®¹Ú½º ¼¼ÆÃÇÑ ÈÄ ¼±ÅÃµÈ index¸¦ return ÇÑ´Ù.
	void			setListBox(field, id, name) : ¸®½ºÆ®¹Ú½º¿¡ °ªÀ» Ãß°¡
	void			clearListBox(field) : ¸®½ºÆ®¹Ú½º¸¦ Å¬¸®¾î
	void			removeItemFromListBox(field, index) : ¸®½ºÆ®¹Ú½ºÀÇ ÇÏ³ªÀÇ item ¸¦ Áö¿î´Ù.


Ã¼Å©¹Ú½º(checkbox) ÄÁÆ®·Ñ ÇÔ¼ö 
==========================
	void			revcheck(field, field_name) : Ã¼Å©¹Ú½ºÀÇ »óÅÂ¸¦ ¹ÝÀü
	boolean	isCheckCheckbox(field, msg) : Ã¼Å©¹Ú½º°¡ ¼±ÅÃµÇ¾î ÀÖ´ÂÁö »óÅÂ¸¦ Ã¼Å©
	void			SelectAll(field, checkValue) : Ã¼Å©¹Ú½º ÀüÃ¼¸¦ Ã¼Å© ¶Ç´Â ÇØÁ¦ÇÑ´Ù.
	void			onlyOneChecked(field, obj) : Ã¼Å©¹Ú½º¸¦ ÇÏ³ª¸¸ ¼±ÅÃµÇµµ·Ï ÇÑ´Ù.


Æ÷Ä¿½º ÄÁÆ®·Ñ ÇÔ¼ö
==========================
	void			setFocus(field) : Æ÷Ä¿½º¸¦ ÁØ´Ù.
	void			continueFocusForLength(obj, maxLen) : focus¸¦ ÃÖ´ë±æÀÌº¸´Ù ÀÛÀ»°æ¿ì À¯ÁöÇÑ´Ù.


¹®ÀÚ¿­°ü·Ã(text, textarea, file) ÄÁÆ®·Ñ ÇÔ¼ö 
==========================
	int				getLength(str) : ¹®ÀÚ¿­ÀÇ Á¤È®ÇÑ ±æÀÌ Ã¼Å© (byte±æÀÌ:ÇÑ±Û2byte)
	boolean	isFieldCheck(theField, msg) : ÀÔ·Â°ªÀÌ µé¾î °¬´ÂÁö Ã¼Å©
	boolean	isLimitCheck(theField, minLength, maxLength, msg) : ÀÔ·Â ¹®ÀÚ °¹¼ö Á¦ÇÑ
	boolean	isLimitByteCheck(theField, minLength, maxLength, msg) : ÀÔ·Â ¹®ÀÚ °¹¼ö Á¦ÇÑ


µ¥ÀÌÅÍ °ËÁõ ÇÔ¼ö
==========================
	boolean	isDigitCheck(theField, msg) : ¼ýÀÚ °ªÀÎÁö Ã¼Å©
	boolean	isDigitCheck2(theField, theLen, msg1, msg2) : ¼ýÀÚ °ªÀÎÁö Ã¼Å©
	boolean	isDigitAndCommaCheck(theField, msg) : ¼ýÀÚ¿Í ','  °ªÀÎÁö Ã¼Å©
	boolean	alphanum(name) : ¿µ¹®¼ýÀÚÃ¼Å©
	boolean	isIdChar(name) : id ¿ë char ÀÎÁö ¾Ë¾Æ³½´Ù. ¼ýÀÚ , ¿µ¹®, _ ¸¸ Çã¿ë
	booelan	isFloatCheck(theField, theLen) : float°ªÀÎÁö Ã¼Å©
	boolean	specialCharCheck(theField, msg, special_char) : special_char°ªÀÌ µé¾ú´ÂÁö Ã¼Å©
	boolean	validCheck(theField, msg) : Æ¯¼ö¹®ÀÚ Ã¼Å©°¡ µé¾ú´ÂÁö Ã¼Å©
	boolean	isFirstSpaceCheck(theField, msg) : Ã¹ ¹®ÀÚ°¡ °ø¹éÀÎÁö Ã¼Å©
	boolean	isSpaceCheck(theField, strFieldName) : °ø¹é¹®ÀÚ°¡ µé¾ú´ÂÁö Ã¼Å©
	boolean	isCheckEmail(theField, msg) : emailÀÎÁö Ã¼Å©
	boolean	isTelCheck(theField, theLen) : ÀüÈ­¹øÈ£ÀÎÁö Ã¼Å©
	boolean	isDayCheck(theField) : ³¯Â¥°ªÀÎÁö Ã¼Å©yyyy-mm-dd
	boolean	isCheckResno(theField1, theField2)	 	ÁÖ¹Îµî·Ï¹øÈ£Ã¼Å©


ºñ±³,¿¬»ê ÇÔ¼ö 
==========================
	boolean	isCompareCheck(theField1, theField2, msg) : µÎ ÇÊµå °ªÀ» ºñ±³
	boolean	checkDateObj(dateObj1, dateObj2, operation, msg) : ³¯Â¥ Ã¼Å©ÇÏ±â..obj1°ú obj2¸¦ operation(ºñ±³¿¬»êÀÚ <,>,<=,>=)À¸·Î ¿¬»êÇÏ¿´À»°æ¿ì ÂüÀÏ¶§ msg¸¦ ¶ç¿î´Ù
	boolean	checkDateObj(str1, str2, operation) : ³¯Â¥ Ã¼Å©ÇÏ±â..str1°ú str2¸¦ operation(ºñ±³¿¬»êÀÚ <,>,<=,>=)À¸·Î ¿¬»êÇÏ¿´À»°æ¿ì Âü,°ÅÁþ¿©ºÎ¸¦ ¸®ÅÏÇÑ´Ù.
	boolean	checkStartEndDate(startDateObj, endDateObj, msg) : ³¯Â¥ Ã¼Å©ÇÏ±â..½ÃÀÛÀÏÀÌ Á¾·áÀÏ º¸´Ù ÀÛÀºÁö Ã¼Å©
	float			sumItem(sumSrcObjs, sumResultObj, isCashFormat) : ÇÊµå(sumSrcObjs)ÀÇ ÇÕÀ» ±¸ÇÏ¿© ÇÕ°èÇÊµå(sumResultObj)¿¡ ÀÔ·ÂµÇµµ·Ï ÇÑ´Ù. (isCashFormatÀº ±Ý¾×Ç¥±âÇüÅÂ¿©ºÎ)
	float			calcRatio(ratioObj, srcObj, ratioResultObj, roundPosOfPoint, isNaNDefaultValue) : ¿øº»ÇÊµå(srcObj)¿¡ ´ëÇÑ ´ë»óÇÊµå(ratioObj)ÀÇ ºñÀ²À» ±¸ÇÏ¿© °á°úÇÊµå(ratioResultObj)¿¡ °ªÀ» ¼¼ÆÃÇÑ´Ù. (roundPosOfPoint:¼Ò¼öÁ¡ÀÌÇÏ Ç¥±âÀÚ¸®¼ö, isNaNDefaultValue:NaNÀÏ°æ¿ì ±âº»°ª)
	float			calcRound(value, roundPosOfPoint) : ¼öÄ¡°ª(value)¸¦ ¿øÇÏ´Â ¼Ò¼öÁ¡ÀÚ¸®¼ö(roundPosOfPoint)±îÁö Ç¥±âÇÑ´Ù. ¼Ò¼öÁ¡ (roundPosOfPoint+1) ÀÚ¸®¿¡¼­ ¹Ý¿Ã¸²ÇÑ´Ù.
	int				numSort(arg1, arg2) : µÎ ¼ýÀÚ°£¿¡ Å©±â ºñ±³ arg1ÀÌ arg2º¸´Ù Å¬°æ¿ì 1, ÀÛÀ»°æ¿ì -1, °°À»°æ¿ì 0   ¹è¿­À» sortÇÒ °æ¿ì »ç¿ë [ex, arr.sort(numSort); ]


*/



/*=======================
  ¸®½ºÆ®¹Ú½º(selectbox) ÄÁÆ®·Ñ ÇÔ¼ö 
========================*/

function isSelectBoxCheck(formName, fieldName, msg, excludeValues)
{
  var returnVal = false;
  var vals = $("form[name='" + formName + "'] select[name='" + fieldName + "']").val() || [];
	if(excludeValues != null)
	{
		for(var i=0; !returnVal && i<vals.length; i++)
		{
			for (var j = 0; !returnVal && j < excludeValues.length; j++)
			{
		  	if (vals[i] == excludeValues[j])
				{
		  		msgAlert(msg);
		  		returnVal = true;
		  		break;
		  	}
	    }
		}
	}
  return returnVal;
}

//¸®½ºÆ®¹Ú½º  ¼¼ÆÃÇÏ±â.........
function setSelectBox(fieldId, txtArray, valArray, defaultVal)
{
	var obj = $("#"+fieldId).empty();
	for(i=0;i<txtArray.length;i++)
  {
		obj.append("<option value='" + valArray[i] + "'>" + txtArray[i] + "</option>");
	}
	obj.val(defaultVal);
}

//¸®½ºÆ®¹Ú½º  ¼¼ÆÃÇÏ±â.........
function setSelectBoxForOptions(fieldId, optionStrs, defaultVal)
{
  var obj = $("#"+fieldId).empty();
  for(i=0;i<optionStrs.length;i++)
  {
    obj.append(optionStrs[i]);
  }
  obj.val(defaultVal);
}


//¸®½ºÆ®¹Ú½º¿¡ °ªÀ» Ãß°¡
function setListBox(fieldId, text, value) 
{
	$("#"+fieldId).append("<option value='" + value + "'>" + text + "</option>");
}


//¸®½ºÆ®¹Ú½º¸¦ Å¬¸®¾î
function clearListBox(fieldId) 
{
	$("#" + fieldId).empty();
}


//¸®½ºÆ®¹Ú½ºÀÇ ÇÏ³ªÀÇ item ¸¦ Áö¿î´Ù.
function removeIndexItem(fieldId, index) 
{
	$("#" + fieldId + " option:nth-child(" + index + ")").remove();
}

//¸®½ºÆ®¹Ú½ºÀÇ °ªÀÌ µ¿ÀÏÇÑ itemÀ» Áö¿î´Ù.
function removeValueItem(fieldId, value) 
{
	$("#" + fieldId + " option[value='" + value + "']").remove();
}





/*=======================
  Ã¼Å©¹Ú½º(checkbox) ÄÁÆ®·Ñ ÇÔ¼ö 
========================*/

//Ã¼Å©¹Ú½ºÀÇ »óÅÂ¸¦ ¹ÝÀü
function revcheck(fieldName) 
{
	var checkObjs = $("input[name='" + fieldName + "']:checked");
	var unCheckObjs = $("input[name='" + fieldName + "']:not(:checked)");
	
	checkObjs.attr("checked", "");
	unCheckObjs.attr("checked", "checked");
}


//Ã¼Å©¹Ú½º°¡ ¼±ÅÃµÇ¾î ÀÖ´ÂÁö »óÅÂ¸¦ Ã¼Å©
function isCheckboxCheck(formName, fieldName, msg, excludeValues) 
{
	var returnVal = false;
	var checkedObj = $("form[name='" + formName + "'] input[name='" + fieldName + "']:checked");
	if(checkedObj.length == 0)
	{
    returnVal = true;		
	}
	else if(excludeValues != null)
	{
		checkedObj.each(function(){
      for (var i = 0; !returnVal && i < excludeValues.length; i++)
      {
        if ($(this).val() == excludeValues[i])
        {
          returnVal = true;
          break;
        }
      }
		});
	}
	if(returnVal) msgAlert(msg);
	return returnVal;
}



//Ã¼Å©¹Ú½º ÀüÃ¼¸¦ Ã¼Å© ¶Ç´Â ÇØÁ¦ÇÑ´Ù.
function selectAll(fieldName, isChecked)
{
	if(isChecked)
	{
		$("input[name='" + fieldName + "']:not(:checked)").attr("checked", "checked");
	}
	else
	{
		$("input[name='" + fieldName + "']:checked").attr("checked", "");
	}
}


//Ã¼Å©¹Ú½º¸¦ ÇÏ³ª¸¸ ¼±ÅÃµÇµµ·Ï ÇÑ´Ù.
function onlyOneChecked(fieldName, obj)
{
	$("input[name=" + fieldName + "]:checked").each(function(){
		if(this != obj){ this.checked = false; }
	});
}




/*=======================
  Æ÷Ä¿½º ÄÁÆ®·Ñ ÇÔ¼ö 
========================*/

//Æ÷Ä¿½º¸¦ ÁØ´Ù.
function setFocus(fieldId) 
{
	$("#" + fieldId).focus().select();
}



//focus¸¦ ÃÖ´ë±æÀÌº¸´Ù ÀÛÀ»°æ¿ì À¯ÁöÇÑ´Ù.
function continueFocusForLength(objId, maxLen)
{
	var value = $("#" + objId).val();
	if(value == "")
	{
		return;
	}
	
	if(value.length < maxLen)
	{
		$("#" + objId).focus();
	}
}










/*=======================
  ¹®ÀÚ¿­°ü·Ã(text, textarea, file) ÄÁÆ®·Ñ ÇÔ¼ö 
========================*/
//¹®ÀÚ¿­ÀÇ Á¤È®ÇÑ ±æÀÌ Ã¼Å© (byte±æÀÌ:ÇÑ±Û2byte)
function getLength(str)
{
	return(str.length+(escape(str)+"%u").match(/%u/g).length-1);
}


//ÀÔ·Â°ªÀÌ µé¾î °¬´ÂÁö Ã¼Å©
function isFieldCheck(formName, fieldName, msg, isAllMandatory) 
{
  var obj = $("form[name='" + formName + "'] *[name='" + fieldName + "']");
  if(obj == null || obj.length == 0) return true;
  
  var returnVal = false;
	var nullCount = 0;
  obj.each(function(){
    if(!returnVal && $(this).val().length == 0)
    {
			nullCount++;
			if (isAllMandatory == true)
			{
				msgAlert(msg);
				$(this).focus();
				returnVal = true;
      }
    }
  });
	if(isAllMandatory == false && nullCount == obj.length)
	{
		msgAlert(msg);
		returnVal = true;
	}
  return returnVal;
}


function getInputType(jQueryObj)
{
  var returnVal;
  if(jQueryObj == null || jQueryObj.length == 0) return returnVal;
  
  returnVal = "";
  if(jQueryObj.is("input"))
  {
    returnVal = jQueryObj.attr("type");
  }
  else if(jQueryObj.is("select"))
  {
    returnVal = "select";
  }
  else if(jQueryObj.is("textarea"))
  {
    returnVal = "textarea";
  }

  return returnVal;
}

function existValue(elementObj)
{
  var result = false;
  var type = getInputType($(elementObj));
  if(type == "text" || type == "file" || type == "textarea" || type=="select" || type=="password" || type=="hidden")
  {
    result = $(elementObj).val().length > 0;
  }
  else if(type == "checkbox" || type == "radio")
  {
    result = $(elementObj).is(":checked");
  }
  return result;
}


//¿¬°üÆÄ¶ó¹ÌÅÍÀÇ °ªÀÌ Á¸ÀçÇÒ °æ¿ì ÀÔ·Â°ªÀÌ µé¾î °¬´ÂÁö Ã¼Å©
function isRelationFieldCheck(formName, fieldName, relationFieldName, msg) 
{
  var relationObj = $("form[name='" + formName + "'] *[name='" + relationFieldName + "']");
  if(relationObj == null || relationObj.length == 0) return true;
  
//  var relationObjType = getInputType(relationObj);

  var obj = $("form[name='" + formName + "'] *[name='" + fieldName + "']");
  if(obj == null || obj.length == 0) return true;
  
  var returnVal = false;
  obj.each(function(){
    var idx = obj.index(this);
    if(!returnVal && existValue(relationObj.get(idx)))
    {
      if($(this).val().length == 0)
      {
        msgAlert(msg);
        $(this).focus();
        returnVal = true;
      }
    }
  });
  return returnVal;
} 



function isCompareFieldCheck(formName, fieldName, compareFieldName, msg) 
{
  var obj = $("form[name='" + formName + "'] *[name='" + fieldName + "']");
  var compareObj = $("form[name='" + formName + "'] *[name='" + compareFieldName + "']");

  if(obj == null)
  {
    if(compareObj == null) return false;
    else return true;
  }
  else
  {
    if(compareObj == null || obj.length != compareObj.length) return true;
    
    var returnVal = false;
    obj.each(function(){
      var idx = obj.index(this);
      if(!returnVal && $(this).val() != $(compareObj.get(idx)).val())
      {
        msgAlert(msg);
        $(this).focus();
        returnVal = true;
      }
    });
    return returnVal;
  }
} 


//ÀÔ·Â ¹®ÀÚ °¹¼ö Á¦ÇÑ
function isLimitCheck(fieldId, minLength, maxLength, msg) 
{
	var len = $("#" + fieldId).val().length;
	if (len > maxLength || len < minLength)
	{
		msgAlert(msg);
		setFocus(fieldId);
		return true;
	}
	return false;
}


// ÀÔ·Â ¹®ÀÚ °¹¼ö Á¦ÇÑ
function isLimitByteCheck(fieldId, minLength, maxLength, msg) 
{
	var value = $("#" + fieldId).val();
	var len = getLength(value);
	if (len > maxLength || len < minLength ){
		msgAlert(message);
		setFocus(fieldId);
		return true;
	}
	return false;
}







/*=======================
  µ¥ÀÌÅÍÄÁÆ®·Ñ ÇÔ¼ö 
========================*/


//ÀÔ·Â°ªÀÌ ÆÐÅÏ¿¡ ¸Â´ÂÁö Ã¼Å©
function isPatternCheck(formName, fieldName, regExpStr, msg)
{
  var obj = $("form[name='" + formName + "'] input[name='" + fieldName + "']");
  if(obj == null || obj.length == 0) return true;
  
  var reg = new RegExp(regExpStr, "g");
  
  var returnVal = false;
  var inStr = "";
  obj.each(function(){
    inStr = $(this).val();
    if(!returnVal && inStr.length > 0)
    {
      if(inStr.search(reg) < 0)
      {
        returnVal = true;
        msgAlert(msg);
        $(this).focus().select();
      }
    }
  });
  
  return returnVal;
} 


//Çã¿ëµÇ´Â È®ÀåÀÚ°¡ ¸Â´ÂÁö Ã¼Å©
function isExtensionCheck(formName, fieldName, allowExtArr, msg)
{
  var obj = $("form[name='" + formName + "'] input[name='" + fieldName + "']");
  if(obj == null || obj.length == 0) return true;
  
  var returnVal = false;
  if(allowExtArr != null && allowExtArr.length > 0)
  {
    var inStr = "";
    var ext;
    var isAllowExt = false;
    obj.each(function(){
      inStr = $(this).val();
      if(!returnVal && inStr.length > 0 )
      {
        isAllowExt = false;
        if(inStr.lastIndexOf(".") > -1)
        {
          ext = inStr.substring(inStr.lastIndexOf(".") + 1).toLowerCase();
          for(var i=0; i<allowExtArr.length; i++)
          {
            if(ext == allowExtArr[i].toLowerCase())
            {
              isAllowExt = true;
              break;
            }
          }
        }
        
        if(!isAllowExt)
        {
          returnVal = true;
          msgAlert(msg);
          $(this).focus().select();
          return;
        }
      }
    });
  }
  
  return returnVal;
} 




//¼ýÀÚ °ªÀÎÁö Ã¼Å©
function isDigitCheck(fieldId, msg) 
{
	var inStr = $("#" + fieldId).val();
  if(inStr.search(/[^0-9]+/g) > -1)
	{
		msgAlert(msg);
    setFocus(fieldId);
    return true;
	}
	return false;
}

//¼ýÀÚ °ªÀÎÁö Ã¼Å©
function isDigitCheck2(fieldId, theLen, msg1, msg2) 
{
	if(isDigitCheck(fieldId, msg1))
	{
		return true;
	}

	var inLen = $("#" + filedId).val().length;
	if ( inLen < theLen ) 
	{
		msgAlert(msg2); //¼ýÀÚ  theLen ÀÚ ÀÌ»óÀ» ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù.
		setFocus(fieldId);
		return true;
	}
	return false;
}



//¼ýÀÚ¿Í ','  °ªÀÎÁö Ã¼Å©
function isDigitAndCommaCheck(fieldId, msg)
{
	var inStr = $("#" + fieldId).val();
	if(inStr.search(/[^0-9,]+/g) > -1)
	{
    msgAlert(msg);
    setFocus(fieldId);
    return true;
	}
	return false;
}


//¿µ¹®¼ýÀÚÃ¼Å©
function alphanum(value)
{
	if(value.search(/[^0-9a-zA-Z]+/g) > -1)
	{
	  return false;	
	}
	return true;
}


//id ¿ë char ÀÎÁö ¾Ë¾Æ³½´Ù. ¼ýÀÚ , ¿µ¹®, _ ¸¸ Çã¿ë
function isIdChar(value) 
{
  if(value.search(/[^0-9a-zA-Z_]+/g) > -1)
  {
    return false; 
  }
  return true;
}


// float°ªÀÎÁö Ã¼Å©
function isFloatCheck(fieldId, theLen) 
{
	var inStr = $("#"+fieldId).val();
	if(inStr.search(/[^0-9.]+/g) > -1)
	{
    msgAlert("ÇØ´ç ÇÊµå´Â ¼ýÀÚ ÀÔ·ÂÇÊµåÀÌ¹Ç·Î 0 ~ 9, '.' ¸¸ ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù.");
    setFocus(fieldId);
    return true;
	}
	
	if(inStr.length < theLen)
	{
    msgAlert("¼ýÀÚ " + theLen + " ÀÚ ÀÌ»óÀ» ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù.");
    setFocus(fieldId);
    return true;
	}
	
	if(inStr.split(".") > 2)
	{
    msgAlert("°ªÀ» Á¤È®ÇÏ°Ô ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù.\n'.'ÀÇ °¹¼ö´Â 1°³¸¸ »ç¿ëÇÒ¼ö ÀÖ½À´Ï´Ù.");
    setFocus(fieldId);
    return true;
	}
	
	return false;
}


//special_char°ªÀÌ µé¾ú´ÂÁö Ã¼Å©
function specialCharCheck(fieldId, msg, special_char) 
{
	var inStr = $("#" + fieldId).val();
	var reg = new RegExp("[" + special_char + "]+", "g");
	if(inStr.search(reg) > -1)
	{
    msgAlert(msg);
    setFocus(fieldId);
    return true;
	}
	return false;
}


//Æ¯¼ö¹®ÀÚ Ã¼Å©°¡ µé¾ú´ÂÁö Ã¼Å©
function validCheck(fieldId, msg) 
{
	var strRegulation = "\!\~\`\@\#\$\%\^\&\*\(\)\-\+\=\|\{\}\[\]\'\:\;\\\"\?\/\<\>\,\.";
	return specialCharCheck(fieldId, msg, strRegulation);
}


//Ã¹ ¹®ÀÚ°¡ °ø¹éÀÎÁö Ã¼Å©
function isFirstSpaceCheck(fieldId, msg)
{
	var inStr = $("#" + fieldId).val();
	if(inStr.search(/^[ ]+/g) > -1)
	{
    msgAlert(msg);
    setFocus(fieldId);
    return true;
	}
	else
	{
		return false;
	}
}


//°ø¹é¹®ÀÚ°¡ µé¾ú´ÂÁö Ã¼Å©
function isSpaceCheck(fieldId, msg)
{
  var inStr = $("#" + fieldId).val();
  if(inStr.search(/[ ]+/g) > -1)
  {
    msgAlert(msg);
    setFocus(fieldId);
    return true;
  }
  else
  {
    return false;
  }
}


//emailÀÎÁö Ã¼Å©
function isCheckEmail(fieldId, msg)
{
	var inStr = $("#" + fieldId).val();
	if(inStr.length > 0 && inStr.search(/^[^.@ ]+(@)([^.@ &?,|$^!*]+.)+([a-z])+/g) < 0)
	{
		msgAlert(msg);
		setFocus(fieldId);
		return true;
	}
	return false;
}


//ÀüÈ­¹øÈ£ÀÎÁö Ã¼Å©
function isTelCheck(fieldId, theLen ) 
{
	var inStr = $("#" + fieldId).val();
  if(inStr.search(/[^0-9-]+/g) > -1)
  {
		msgAlert("ÀüÈ­¹øÈ£ ÀÔ·ÂÀº 0 ~ 9,  '-' ¸¸ ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù.");
    setFocus(fieldId);
    return true;
  }
  
	if(inStr.length < theLen)
	{
    msgAlert("¼ýÀÚ " + theLen + " ÀÚ ÀÌ»óÀ» ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù.");
    setFocus(fieldId);
    return true;
  }

  return false;
}


//³¯Â¥°ªÀÎÁö Ã¼Å©yyyy-mm-dd
function isDayCheck(fieldId)
{
	var inStr = $("#" + fieldId).val();
	if(inStr.length != 10)
	{
    msgAlert("³¯Â¥ ÀÔ·ÂÇü½Ä¿¡ ¸Â°Ô ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù. \n¿¹)2009-01-01");
    setFocus(fieldId);
    return true;
	}
	
	if(inStr.search(/^(19|20)[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/g) < 0)
	{
    msgAlert("³¯Â¥ ÀÔ·ÂÇü½Ä¿¡ ¸Â°Ô ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù. \n¿¹)2009-01-01");
    setFocus(fieldId);
    return true;
	}
	
  return false;
}


//ÀÔ·Â°ªÀÌ µé¾î °¬´ÂÁö Ã¼Å©
function isDateCheck(formName, fieldName, msg)
{
  var obj = $("form[name='" + formName + "'] input[name='" + fieldName + "']");
  if(obj == null || obj.length == 0) return true;
  
  var returnVal = false;
	var inStr = "";
  obj.each(function(){
		inStr = $(this).val();
    if(!returnVal && inStr.length != 0)
    {
		  if(inStr.search(/^(19|20)[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/g) < 0)
		  {
		    msgAlert(msg.format);
				$(this).focus().select();
		    returnVal = true;
		  }
			
			if(!returnVal)
			{
				if(inStr != getCorrectDate(inStr))
				{
	        msgAlert(msg.correct);
	        $(this).focus().select();
	        returnVal = true;
				}
			}
    }
  });

  return returnVal;
} 




//ÁÖ¹Îµî·Ï¹øÈ£Ã¼Å©
function isCheckResno(fieldId1, fieldId2)
{
	var resno_f, resno_b;
	var checkNum;
	var f_len, b_ren;
	no=new Array(13);

	resno_f = $("#" + fieldId1).val();
	resno_b = $("#" + fieldId2).val();
	f_len = resno_f.length;
	b_len = resno_b.length;

	if (f_len != 6 || b_len != 7)
	{
		msgAlert("ÁÖ¹Îµî·Ï¹øÈ£°¡ Á¦´ë·Î ÀÔ·ÂµÇ¾ú´ÂÁö È®ÀÎÇÏ½Ê½Ã¿À.!");
		setFocus(fieldId1);
		return true;
	}
	
	for(i=0; i<=5; i++)
		no[i] = resno_f.charAt(i);
	for(i=6; i<=12; i++)
		no[i] = resno_b.charAt(i-6);

	//°Ë»ç·çÆ¾
	checkNum=11-(no[0]*2+no[1]*3+no[2]*4+no[3]*5+no[4]*6+no[5]*7+no[6]*8+no[7]*9+no[8]*2+no[9]*3+no[10]*4+no[11]*5)%11;

	if((checkNum>=10)&&(checkNum<=11))
	{
		checkNum=checkNum-10;
	}

	if(no[12]!=checkNum)
	{
		msgAlert("ÁÖ¹Îµî·Ï¹øÈ£°¡ Á¦´ë·Î ÀÔ·ÂµÇ¾ú´ÂÁö È®ÀÎÇÏ½Ê½Ã¿À.!");
		setFocus(fieldId1);
		return true;
	}
	else
	{
		return false;
	}
}




/*=======================
  ºñ±³,¿¬»ê ÇÔ¼ö 
========================*/
//Á¤È®ÇÑ ³¯Â¥°ª ±¸ÇÏ±â
function getCorrectDate(date)
{
  var dt = new Date(date.replace("-", "/"));
  var m = "0" + (dt.getMonth() + 1);
  var d = "0" + dt.getDate();
  return dt.getFullYear() + "-" + m.substr(m.length -2) + "-" + d.substr(d.length-2);
}

//µÎ ÇÊµå °ªÀ» ºñ±³
function isCompareCheck(fieldId1, fieldId2, msg) 
{
	if ($("#" + fieldId1).val() != $("#"+fieldId2).val())
	{
		msgAlert(msg);
		setFocus(fieldId1);
		return true;
	}
	else return false;
}


//³¯Â¥ Ã¼Å©ÇÏ±â..
//obj1°ú obj2¸¦ operation(ºñ±³¿¬»êÀÚ <,>,<=,>=)À¸·Î ¿¬»êÇÏ¿´À»°æ¿ì °ÅÁþ ÀÏ ¶§ msg¸¦ ¶ç¿î´Ù
function isDateOperationCheck(formName, dateFieldName1, dateFieldName2, operation, msg)
{
  var dateArr1 = $("form[name='" + formName + "'] input[name='" + dateFieldName1 + "']").get();
  if(dateArr1 == null || dateArr1.length == 0) return true;
      
  var dateArr2 = $("form[name='" + formName + "'] input[name='" + dateFieldName2 + "']").get();
  if(dateArr2 == null || dateArr2.length == 0) return true;

  var result = false;
  var startd, endd;
  for(var i=0; i<dateArr1.length; i++)
  {
    startd = $(dateArr1[i]).val().split("-").join('');
    endd   = $(dateArr2[i]).val().split("-").join('');

    if(operation == ">")
    {
      if( !(startd > endd) )
      {
        result = true;
      }
    }
    else if(operation == "<")
    {
      if( !(startd < endd) ) 
      {
        result = true;
      }		
    }
    else if(operation == ">=")
    {
      if( !(startd >= endd) )
      {
        result = true;
      }
    }
    else if(operation == "<=")
    {
      if( !(startd <= endd) )
      {
        result = true;
      }
    }
    
    if(result)
    {
      msgAlert(msg);
      $(dateArr1[i]).focus().select();
      break;
    }
  }

  return result;
}


//³¯Â¥ Ã¼Å©ÇÏ±â..½ÃÀÛÀÏÀÌ Á¾·áÀÏ º¸´Ù ÀÛÀºÁö Ã¼Å©
function checkStartEndDate(formName, startDateFieldName, endDateFieldName, errorMsg)
{
	return isDateOperationCheck(formName, startDateFieldName, endDateFieldName, "<=", errorMsg);
}


function checkDateObjByValue(str1, str2, operation)
{
	var sdArray=str1.split("-");
	var edArray=str2.split("-");
	var startd=sdArray.join('');
	var endd=edArray.join('');
	var result = false;
	if(operation==">"){
		if(startd>endd) {
			result = true;
		}else{
			result = false;
		}
	}else if(operation=="<"){
		if(startd<endd) {
			result = true;
		}else{
			result = false;
		}		
	}else if(operation==">="){
		if(startd>=endd) {
			result = true;
		}else{
			result = false;
		}		
	}else if(operation=="<="){
		if(startd<=endd) {
			result = true;
		}else{
			result = false;
		}		
	}
	return result;
}


//filedÀÇ ÇÕÀ» ÇÑ´Ù.
function sumItem(srcFieldName, resultFiledId, isCashFormat)
{
	var sum = 0;
	var cashEscStr = "";
	$("input[name=" + srcFieldName + "]").each(function(){
		cashEscStr = cashEscape($(this).val());
		sum += isNaN(parseFloat(cashEscStr))?0:parseFloat(cashEscStr);
	});
	var sumStr = isCashFormat?getDelimCashString(new String(sum)):sum;
	$("#" + resultFieldId).val(sumStr);
}


//filedÀÇ ºñÀ²À» ±¸ÇÑ´Ù.
function calcRatio(ratioFieldId, baseFieldId, resultFieldId, roundPosOfPoint, isNaNDefaultValue)
{
	var ratio = 0;
	var p1 = parseFloat(cashEscape($("#" + ratioFieldId).val()));
	var p2 = parseFloat(cashEscape($("#" + baseFieldId).val()));
	if(isNaN(p1) || isNaN(p2))
	{
		ratio = isNaNDefaultValue;
	}
	else
	{
		if(p2 == 0)
		{
			ratio = 0;
		}
		else
		{
			ratio = calcRound(p1/p2*100, roundPosOfPoint);
		}
	}
	$("#" + resultFieldId).val(ratio);
	return ratio;
}



//¹Ý¿Ã¸²ÇÑ´Ù.
function calcRound(value, roundPosOfPoint)
{
	return Math.round(value*Math.pow(10, roundPosOfPoint))/Math.pow(10,roundPosOfPoint);
}


/**
 * ¼Ò¼öÁ¡ ÀÌÇÏ Zero ¸¶Å·
 * @return String 
 * @param {Object} value °ª
 * @param {Object} roundPosOfPoint ¼Ò¼öÁ¡ ÀÌÇÏ ÀÚ¸´¼ö
 */
function markZero(value, roundPosOfPoint)
{
	var strValue = "" + value;
	var idx = strValue.indexOf(".");
	
	if(roundPosOfPoint > 0)
	{
		if(idx < 0)
		{
			strValue = strValue +"."+ getZeroCnt(roundPosOfPoint);
		}
		else
		{
			var attatchZeroCount = roundePosOfPoint - strValue.length - (idx + 1);
			strValue = strValue + getZeroCnt(attatchZeroCount);
		}
	}
	return strValue;
}

/**
 * cnt ¼ö ¸¸Å­ '0'À» ¸¸µé¾î ¸®ÅÏÇÑ´Ù.
 * @return String 
 * @param {Object} cnt
 */
function getZeroCnt(cnt)
{
	rtn = "";
	if(cnt > 0){
		for(var i=0; i<cnt; i++){
			rtn += "0";
		}
	}
	return rtn;
}

//µÎ ¼ýÀÚ°£¿¡ Å©±â ºñ±³ arg1ÀÌ arg2º¸´Ù Å¬°æ¿ì 1, ÀÛÀ»°æ¿ì -1, °°À»°æ¿ì 0   ¹è¿­À» sortÇÒ °æ¿ì »ç¿ë
function numSort(arg1, arg2)
{
	var n1 = parseFloat(arg1);
	var n2 = parseFloat(arg2);
	if(n1 > n2) return 1;
	else if(n1==n2) return 0;
	else if(n1<n2) return -1;
}


