/*
     File Name : dateFormat.js
     Description : ³¯Â¥ Æ÷¸Ë¿¡ °ü·ÃµÈ ÀÛ¾÷À» Ã³¸®ÇÑ´Ù..
     History : 
             -2004/05/14    - Byung Chul  Kim      Created
             -2004/08/14    - Byung Chul, Kim      langCd [ANSI] Ãß°¡
                             ¡¦              ¡¦
*/

// getLastday »ç¿ë
var dayOfMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

/**
* @Function ¸í		: checkValidDate
* @Function ¼³¸í	: ÀÔ·ÂÀÏÀÚÀÇ °ªÀÌ Á¤È®ÇÑ ÀÏÀÚÀÎÁö Check
* @Param 			: 1. inputDate : (String) "YYYYMMDD" ÇüÅÂÀÇ ÀÔ·ÂDate °ªÀ» °¡Áø Object
*                            2. langCd : ¾ð¾îCode
* @return°ª			: Boolean	
* @»ç¿ë Event 		: onBlur
* @see 				: 
*/

function checkValidDate(inputDate, langCd) {
	var dateValue = new String(inputDate.value);
	
	var yearValue, monthValue, dayValue;
	
	if((dateValue.length==0)){
		return true;
	} else {
		if(langCd == 'EN') {
			monthValue = parseInt(dateValue.substring(0,2),10);
			if (dateValue.length == 8 ) {
				yearValue  = parseInt(dateValue.substring(4,8),10);
				dayValue   = parseInt(dateValue.substring(2,4),10);		
			} else if (dateValue.length == 10 ) {
				yearValue  = parseInt(dateValue.substring(6,10),10);
				dayValue   = parseInt(dateValue.substring(3,5),10);
			} else {
				alert('³¯Â¥Çü½ÄÀÌ ¸Â´ÂÁö È®ÀÎÇÏ¼¼¿ä.');
				inputDate.value='';
				inputDate.focus();
				return false;
			}
		} else if (langCd == 'ANSI') {
			if(dateValue.length == 4) {
				monthValue = parseInt(dateValue.substring(0,2), 10);
				dayValue = parseInt(dateValue.substring(2,4), 10);
			} else if(dateValue.length == 5) {
				monthValue = parseInt(dateValue.substring(0,2), 10);
				dayValue = parseInt(dateValue.substring(3,5), 10);
			} else if (dateValue.length == 6) {
				yearValue = parseInt(dateValue.substring(0,4), 10);
				monthValue = parseInt(dateValue.substring(4,6), 10);
			} else if (dateValue.length == 7) {
				yearValue = parseInt(dateValue.substring(0,4), 10);
				monthValue = parseInt(dateValue.substring(5,7), 10);
			} else if( dateValue.length == 8) {
				yearValue = parseInt(dateValue.substring(0,4), 10);
				monthValue = parseInt(dateValue.substring(4,6), 10);
				dayValue = parseInt(dateValue.substring(6,8), 10);
			} else if( dateValue.length == 10) {
				yearValue = parseInt(dateValue.substring(0,4), 10);
				monthValue = parseInt(dateValue.substring(5,7), 10);
				dayValue = parseInt(dateValue.substring(8,10), 10);
			} else {
				alert('³¯Â¥Çü½ÄÀÌ ¸Â´ÂÁö È®ÀÎÇÏ¼¼¿ä.');
				inputDate.value='';
				inputDate.focus();
				return false;
			}	
		} else { 
			yearValue  = parseInt(dateValue.substring(0,4),10);
			if (dateValue.length == 8 ) {
				monthValue = parseInt(dateValue.substring(4,6),10);
				dayValue   = parseInt(dateValue.substring(6,8),10);		
			} else if (dateValue.length == 10 ) {
				monthValue = parseInt(dateValue.substring(5,7),10);
				dayValue   = parseInt(dateValue.substring(8,10),10);
			} else {
				alert('³¯Â¥Çü½ÄÀÌ ¸Â´ÂÁö È®ÀÎÇÏ¼¼¿ä.');
				inputDate.value='';
				inputDate.focus();
				return false;
			}
		}
		if(yearValue == null || yearValue =="") yearValue = 2000;  // langCd°¡ ANSIÀÏ °æ¿ì ¾Æ·¡  check¿¡ °É¸®Áö ¾Ê±â À§ÇØ ÁØ dummy °ª 
		if(dayValue  == null || dayValue == "") dayValue = 11;
		
		if(!checkDigit(yearValue) || !checkDigit(monthValue) || !checkDigit(dayValue)) {
			alert('³¯Â¥´Â ¼ýÀÚ¸¸ °¡´ÉÇÕ´Ï´Ù.');
			inputDate.value='';
			inputDate.focus();
			return false;
		}
	
		if (yearValue < 1900 || yearValue >2100) {
			alert('³¯Â¥°¡ Æ²·È½À´Ï´Ù. ³âµµ´Â 1900³â¿¡¼­ 2100³â±îÁö ÀÔ´Ï´Ù.');
			inputDate.value='';
			inputDate.focus();
			return false;
		}
	
		if (monthValue <1 || monthValue > 12) {
			alert('³¯Â¥°¡ Æ²·È½À´Ï´Ù. ´ÞÀº 1¿ù¿¡¼­ 12¿ù±îÁö ÀÔ´Ï´Ù.');
			inputDate.value='';
			inputDate.focus();
			return false;
		}
	
		if (dayValue <1 || dayValue > getLastday(yearValue, monthValue)) {
			alert('³¯Â¥°¡ Æ²·È½À´Ï´Ù.'+monthValue+'¿ù¿¡´Â '+dayValue+'ÀÏÀÌ ¾ø½À´Ï´Ù.');
			inputDate.value='';
			inputDate.focus();
			return false;
		}
	
		if(monthValue.toString().length==1) monthValue='0'+monthValue;	
		if(dayValue.toString().length==1) dayValue='0'+dayValue;

		if(langCd == 'EN') {
			inputDate.value = monthValue + "/" + dayValue + "/" + yearValue;
		} else if(langCd == 'JA') {
			inputDate.value = yearValue + "/" + monthValue + "/" + dayValue;
		} else if(langCd == 'ANSI') {
			if(dateValue.length == 4) {
				inputDate.value = monthValue + "."+dayValue;
			} else if (dateValue.length == 6) {
				inputDate.value = yearValue + "." + monthValue;
			} else if (dateValue.length == 8) {
				inputDate.value = yearValue + "." + monthValue + "." + dayValue;
			}
		} else {
			inputDate.value = yearValue + "-" + monthValue + "-" + dayValue;
		}
		return true;
	}
}

/**
* @Function ¸í		: checkDetailDate
* @Function ¼³¸í	: Detail¿¡¼­ ÀÔ·ÂÇÑ ÀÏÀÚÀÇ °ªÀÌ Á¤È®ÇÑ ÀÏÀÚÀÎÁö Check
* @Param 			:  1. langCd : ¾ð¾îCode
*							   2. ±×¸®µå Column
*                             3. ±×¸®µå Row
* @see 				: 
*/

	function checkDetailDate(langCd, Col, Row) {
		var dateValue = document.all.ggoSpread.cellValue(Col, Row);
		if(!checkValidDateStrVal(dateValue, langCd)){
			var colId = document.all.ggoSpread.colId(Col);
			document.all.ggoSpread.setCellValue(colId, Row, currentDate);
			document.all.ggoSpread.setFocusByColID(colId,  Row);
			document.all.ggoSpread.setFocusByColID(colId,  Row);
		}
	}		


/**
* @Function ¸í		: checkValidDateStrVal
* @Function ¼³¸í	: ÀÔ·ÂÀÏÀÚÀÇ °ªÀÌ Á¤È®ÇÑ ÀÏÀÚÀÎÁö Check
* @Param 			: 1. inputDate : (String) "YYYYMMDD" ÇüÅÂÀÇ ÀÔ·ÂDate °ª
*                            2. langCd : ¾ð¾îCode
* @return°ª			: Boolean	
* @»ç¿ë Event 		: onBlur
* @see 				: 
*/

function checkValidDateStrVal(dateValue, langCd) {
	
	var yearValue, monthValue, dayValue;
	
	if((dateValue.length==0)){
		return true;
	} else {
		if(langCd == 'EN') {
			monthValue = parseInt(dateValue.substring(0,2),10);
			if (dateValue.length == 8 ) {
				yearValue  = parseInt(dateValue.substring(4,8),10);
				dayValue   = parseInt(dateValue.substring(2,4),10);		
			} else if (dateValue.length == 10 ) {
				yearValue  = parseInt(dateValue.substring(6,10),10);
				dayValue   = parseInt(dateValue.substring(3,5),10);
			} else {
				alert('³¯Â¥Çü½ÄÀÌ ¸Â´ÂÁö È®ÀÎÇÏ¼¼¿ä.');
				return false;
			}
		} else { 
			yearValue  = parseInt(dateValue.substring(0,4),10);
			if (dateValue.length == 8 ) {
				monthValue = parseInt(dateValue.substring(4,6),10);
				dayValue   = parseInt(dateValue.substring(6,8),10);		
			} else if (dateValue.length == 10 ) {
				monthValue = parseInt(dateValue.substring(5,7),10);
				dayValue   = parseInt(dateValue.substring(8,10),10);
			} else {
				alert('³¯Â¥Çü½ÄÀÌ ¸Â´ÂÁö È®ÀÎÇÏ¼¼¿ä.');
				return false;
			}
		}
		
		if(!checkDigit(yearValue) || !checkDigit(monthValue) || !checkDigit(dayValue)) {
			alert('³¯Â¥´Â ¼ýÀÚ¸¸ °¡´ÉÇÕ´Ï´Ù.');
			return false;
		}
	
		if (yearValue < 1900 || yearValue >2100) {
			alert('³¯Â¥°¡ Æ²·È½À´Ï´Ù. ³âµµ´Â 1900³â¿¡¼­ 2100³â±îÁö ÀÔ´Ï´Ù.');
			return false;
		}
	
		if (monthValue <1 || monthValue > 12) {
			alert('³¯Â¥°¡ Æ²·È½À´Ï´Ù. ´ÞÀº 1¿ù¿¡¼­ 12¿ù±îÁö ÀÔ´Ï´Ù.');
			return false;
		}
	
		if (dayValue <1 || dayValue > getLastday(yearValue, monthValue)) {
			alert('³¯Â¥°¡ Æ²·È½À´Ï´Ù.'+monthValue+'¿ù¿¡´Â '+dayValue+'ÀÏÀÌ ¾ø½À´Ï´Ù.');
			return false;
		}
	
		if(monthValue.toString().length==1) monthValue='0'+monthValue;	
		if(dayValue.toString().length==1) dayValue='0'+dayValue;

		return true;
	}
}


/**
* @Function ¸í		: doNumberCheck
* @Function ¼³¸í	: ÇØ´ç input type="text"ÀÇ ÀÔ·Â°ªÀ» ¼ýÀÚ¿Ü ÀÔ·ÂºÒ°¡ Function
* @Param 			: none
* @return°ª			: boolean
* @»ç¿ë Event 		: onKeypress
* @see 				: asc(46)=".", asc(47)="/"Æ÷ÇÔ
*/
function doNumberCheck() {
	if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
}

/**
* @Function ¸í		: checkDigit
* @Function ¼³¸í	: ÀÔ·Â°ªÀÌ ¼ýÀÚÀÎÁö ¾Æ´ÑÁö¸¸ Check
* @Param 			: 1. str : (Object)Form¸íÀ» Æ÷ÇÔÇÑ input 
* @return°ª			: boolean
* @»ç¿ë Event 		: 
* @see 				:
*/
function checkDigit(str)  {

	var str = str.toString();
	var ch = '\0';
	var flag = true;
	for (var i = 0, ch = str.charAt(i); (i < str.length) && (flag); ch = str.charAt(++i)) {
		if ((ch >= '0') && (ch <= '9')) flag = true;
		else flag = false;
	}
	return flag;
}

/**
* @Function ¸í		: getLastday
* @Function ¼³¸í	: ÀÔ·ÂÇÑ ³â,¿ùÀÇ ¸¶Áö¸· ÀÏÀÚÀ» ±¸ÇÏ´Â Function
* @Param 			: 1. year (String) 'YYYY'ÇüÅÂÀÇ ³âµµ
*				        	  2. month (String) 'MM'ÇüÅÂÀÇ ¿ù
* @return°ª			: (String)ÇöÀç´ÞÀÇ ¸¶Áö¸· ÀÏÀÚ
* @»ç¿ë Event 		: onBlur
* @see 				: 
*/
function getLastday(year, month) {
	
	if (((year % 4 == 0) && (year % 100 != 0))||(year % 400 == 0)) {
		dayOfMonth[1] = 29;
	}
	var lastDays = dayOfMonth[month-1];
	return lastDays;
}

/**
* @Function ¸í		: removeSeparator
* @Function ¼³¸í	: Separator°¡ Àû¿ëµÈ TextÀ» Á¦°ÅÇÏ´Â function
* @Param 			: 1. string	: (String)Form¸íÀ» Æ÷ÇÔÇÑ input
*                            2. langCd : ¾ð¾îCode
* @return°ª			: (String) Separator°¡ Á¦°ÅµÈ 'YYYYMMDD' String
* @»ç¿ë Event 		: onBlur
* @see 				: 
*/
function removeSeparator(str, langCd) {
	var returnVal;
	if(langCd == 'EN' || langCd == 'JA') {
		var temp = str.split('/');
		if(langCd == 'EN') {
			returnVal = temp[2] + temp[0] + temp[1];
		} else if(langCd == 'JA') {
			returnVal = temp[0] + temp[1] + temp[2];
		}
	} else if (langCd == 'ANSI') {
		var temp = str.split('.');
		if(str.length == 8) {
			returnVal = temp[0] + temp[1] + temp[2];
		} else if (str.length == 4 || str.length == 6) {
			returnVal = temp[0] + temp[1];
		}		
	} else {
		returnVal = str.replace(/-/gi, "");
	}
	return returnVal;
}

/**
* @Function ¸í		: removeDelimiter
* @Function ¼³¸í	: Separator°¡ Àû¿ëµÈ TextÀ» Á¦°ÅÇÏ´Â function
* @Param 			: 1. string	: (Object)Form¸íÀ» Æ÷ÇÔÇÑ input
*                            2. langCd : ¾ð¾îCode
* @return°ª			: (String) Delimiter°¡ Á¦°ÅµÈ String
* @»ç¿ë Event 		: onClick
* @see 				: 
*/
function removeDelimiter(inputDate, langCd) {
	var returnVal;
	var str = inputDate.value;

	if(str=='') {
    		inputDate.value = '';
    } else if(str.length==10){
  		if(langCd == "EN" || langCd == "JA") {
			var temp = str.split('/');
				returnVal = temp[0] + temp[1] + temp[2];
		} else if(langCd =="ANSI") {
			var temp = str.split('.');
				returnVal = temp[0] + temp[1] + temp[2];
		} else if(langCd == "KO" || langCd == "ZH") {
			returnVal = str.replace(/-/gi, "");
		}
		inputDate.value = returnVal;
	} else if (str.length == 5 || str.length == 7) {
		if(langCd == 'ANSI') {
			var temp = str.split('.');
				returnVal = temp[0] + temp[1];
		}
		inputDate.value = returnVal;
	}
}


/**
* @Function ¸í		: isCompareDate
* @Function ¼³¸í	: µÎ ÀÔ·Â°ªÀÇ ³¯Â¥ºñ±³, Ã¹¹øÂ° ÀÎÀÚ´Â µÎ¹øÀÎÀÚº¸´Ù ÀÌÀü ½Ã°£ÀÌ¿©¾ß ÇÑ´Ù.
* @Param 			: 1. previousDate	: (String) 'YYYYMMDD'ÇüÅÂÀÇ ÀÔ·ÂDate °ª
*					          2. nextDate	: (String) ºñ±³ÇÒ 'YYYYMMDD'ÇüÅÂÀÇ ÀÔ·ÂDate °ª
*					          3. langCd
* @return°ª			: boolean
* @»ç¿ë Event 		: onBlur
* @see 				: 
*/
function isCompareDate(previousDate, nextDate, flag, langCd) {
	var beforeDate, afterDate;
	checkValidDate(previousDate, langCd);
	checkValidDate(nextDate, langCd);

	var previousTemp = previousDate.value.toString();
	var nextTemp = nextDate.value.toString();

	if (previousTemp.length==0 || nextTemp.length==0) {
		return true;
	} else {
		beforeDate = removeSeparator(previousTemp, langCd);
		afterDate = removeSeparator(nextTemp, langCd);
	
		if (parseInt((beforeDate),10) > parseInt((afterDate), 10) ) {
			if(flag =="PRE"){
				alert('½ÃÀÛÀÏÀÌ Á¾·áÀÏ º¸´Ù ´ÊÀº ³¯Â¥ ÀÔ´Ï´Ù.');
				previousDate.value='';
				previousDate.focus();
			} else {
				alert('Á¾·áÀÏÀÌ ½ÃÀÛÀÏ º¸´Ù ¾Õ¼± ³¯Â¥ ÀÔ´Ï´Ù.');
				nextDate.value='';
				nextDate.focus();
			}
		 	return false;
		}
		return true;
	}
}

/**
* @Function ¸í		: isAfterToday
* @Function ¼³¸í	: ¿À´Ã ³¯ÀÚ¿Í ºñ±³ÇÏ¿© ¾Õ¼± ÀÏÀÚ´Â false ¸¦ returnÇÑ´Ù.
* @Param 			: 1. inputDate: (String) 'YYYYMMDD'ÇüÅÂÀÇ ÀÔ·ÂDate °ª
*					  2. langCd
* @return°ª			: boolean
* @»ç¿ë Event 		: onBlur
* @see 				: 
*/
function isAfterToday(inputDate, langCd) {
	var dateValue = inputDate.value.toString();

	if(checkValidDateStrVal(dateValue, langCd)){
		if (dateValue.length==0) {
			return true;
		} else {
			if (parseInt((removeSeparator(dateValue, langCd)),10) < parseInt((getToday()), 10) ) {
			 	return false;
			}
			return true;
		}
	} else {
		return false;
	}
}

function getRelativeDate(tempDate,interval) {
   var d, s="";
   var year,month,date;
   year=tempDate.substr(0, 4);
   month=tempDate.substr(4, 2);
   month=month-1;
   date=(tempDate.substr(6, 2));
   if(date<10) {
        date=date.substr(1,1);
   }
   date=parseInt(date)+parseInt(interval);
   d = new Date(year,month,date);

   s += d.getYear();
   if((d.getMonth() + 1)>9) {
        s += (d.getMonth() + 1);
   }else{
       s += "0"+(d.getMonth() + 1);
   }
   if((d.getDate())>9){
       s += d.getDate() ;
   }else{
       s += "0"+d.getDate() ;
   }
   return s;
}


/**
* @Function ¸í		: getCurrentDate
* @Function ¼³¸í	: ¿À´Ã ³¯Â¥¸¦ »ý¼ºÇÏ¾ß ¸®ÅÏÇÑ´Ù..
* @Param 			: langCd
* @return°ª			: date
* @see 				: 
*/
function getCurrentDate(langCd) {
	var now_date=new Date();
	
	var s_year=now_date.getYear();
	if( s_year<1900) s_year=s_year+1900;
	var s_month = return0(now_date.getMonth()+1);
	var s_day = return0(now_date.getDate());
	
	if (langCd == "EN") {
		return s_month + "/" + s_day + "/" + s_year;
	} else if (langCd == "JA") {
		return s_year + "/" + s_month + "/" + s_day;
	} else if (langCd == 'ANSI') {
		return s_year + "." + s_month + "." + s_day;
	} else {
		return s_year + "-" + s_month + "-" + s_day;
	}
}

/**
* @Function ¸í		: getANSICurrentDate
* @Function ¼³¸í	: ¿À´Ã ³¯Â¥¸¦ »ý¼ºÇÏ¾ß ¸®ÅÏÇÑ´Ù..
* @Param 			: 1. langCd
* @Param 			: 2. type (MD:'MM.DD', YM: ' YYYY.MM', YMD: 'YYYY.MM.DD')
* @return°ª			: date
* @see 				: 
*/
function getANSICurrentDate(langCd, type) {
 	var today = getCurrentDate(langCd);
 	if (type=="MD") {
 		return today.substring(5, 10);
 	} else if (type == "YM") {
 		return today.substring(0,7);
 	} else if(type == "YMD") {
 		return today;
 	}
}


/**
* @Function ¸í		: getMakeDate
* @Function ¼³¸í	: ½ºÆ®¸µÀ» ³¯Â¥ ÇüÅÂ·Î º¯È¯ ½ÃÄÑÁØ´Ù.
* @Param 			: 1. strDate	: (String) 'YYYYMMDD'ÇüÅÂÀÇ ÀÔ·ÂDate °ª
* @Param 			: 2. langCd
* @return°ª			: date
* @see 				: 
*/
function getMakeDate(strDate, langCd) {
	var s_year;
	var s_month;
	var s_day;
	
	
	if (langCd == "EN") {
		s_month = strDate.substring(0, 2);
		s_day = strDate.substring(2, 4);
		s_year = strDate.substring(4, 8); 
		return s_month + "/" + s_day + "/" + s_year;
	} else if (langCd == "ANSI") {
		if(strDate.length == 4) {
			s_month = strDate.substring(0,2);
			s_day = strDate.substring(2,4);
			return s_month + "." + s_day;
		} else if (strDate.length == 6) {
			s_year = strDate.substring(0, 4);
			s_month = strDate.substring(4, 6);
			return s_year + "." + s_month;
		} else if (strDate.length == 8) {
			s_year = strDate.substring(0, 4);
			s_month = strDate.substring(4, 6);
			s_day = strDate.substring(6, 8); 
			return s_year + "." + s_month + "." + s_day;
		}	
	}else {
		s_year = strDate.substring(0, 4);
		s_month = strDate.substring(4, 6);
		s_day = strDate.substring(6, 8); 
	
		if (langCd == "JA") {
			return s_year + "/" + s_month + "/" + s_day;
		} else {
			return s_year + "-" + s_month + "-" + s_day;
		}
	}

}


function return0(str)
{
	str=""+str;
	if (str.length==1) str="0"+str;
	return str;
}

/**
* @Function ¸í		: getToday
* @Function ¼³¸í	: ¿À´Ã ³¯Â¥¸¦ returnÇÑ´Ù.
* @Param 			: 
* @Param 			: 
* @return°ª			: YYYYMMDD
* @see 				: 
*/
function getToday() {
    today = new Date();
    var year = today.getYear()+'';
    var month = today.getMonth()+1;
    var date = today.getDate();
    if(month<10){
        month = "0" + month;
    }
    if(date<10){
        date = "0" + date;
    }
    return year+month+date;
}

/**
* @Function ¸í		: getTodayNoDay
* @Function ¼³¸í	: ¿À´Ã ³¯Â¥¸¦ returnÇÑ´Ù.
* @Param 			: 
* @Param 			: 
* @return°ª			: YYYYMM
* @see 				: 
*/
function getTodayNoDay() {
    today = new Date();
    var year = today.getYear()+'';
    var month = today.getMonth()+1;
    if(month<10){
        month = "0" + month;
    }
    return year+month;
}

/**
* @Function ¸í		: getAssignmentYear
* @Function ¼³¸í	: ¹èÁ¤ÀÇ ³âµµ¸¦ return ÇÑ´Ù.
* @Param 			: date(YYYYMMDD)
* @Param 			: 
* @return°ª			: YYYY
* @see 				: 
*/
function getAssignmentYear(date) {
    var year = '';

    if (eval(date.substring(4,6)) >= 7) {
        year = date.substring(0,4);
    } else {
        year = (eval(date.substring(0,4)) - 1) + "";
    }
            
    return year;
}


/**
* @Function ¸í		: isCompareDate
* @Function ¼³¸í	: µÎ ÀÔ·Â°ªÀÇ ³¯Â¥ºñ±³, Ã¹¹øÂ° ÀÎÀÚ´Â µÎ¹øÀÎÀÚº¸´Ù ÀÌÀü ½Ã°£ÀÌ¿©¾ß ÇÑ´Ù.
* @Param 			: 1. previousDate	: (String) 'YYYYMMDD'ÇüÅÂÀÇ ÀÔ·ÂDate °ª
*					          2. nextDate	: (String) ºñ±³ÇÒ 'YYYYMMDD'ÇüÅÂÀÇ ÀÔ·ÂDate °ª
*					          3. langCd
* @return°ª			: boolean
* @»ç¿ë Event 		: onBlur
* @see 				: 
*/
function isCompareCheckDate(previousDate, nextDate, langCd) {
	var beforeDate, afterDate;
	checkValidDate(nextDate, langCd);

	if(	checkValidDateWithMessage(previousDate, langCd, 'NO') ) {
		var previousTemp = previousDate.value.toString();
		var nextTemp = nextDate.value.toString();
	
		beforeDate = removeSeparator(previousTemp, langCd);
		afterDate = removeSeparator(nextTemp, langCd);
		
		if (parseInt((beforeDate),10) > parseInt((afterDate), 10)) {
			 return false;
		}else{
			return true;
		}
		
	}else{
		return true;
	}
}

function checkValidDate(inputDate, langCd) {
	var returnValue = checkValidDateWithMessage(inputDate, langCd, 'YES');
	if(returnValue == false) {
		inputDate.value='';
	}
	return returnValue;
}

function checkValidDateWithMessage(inputDate, langCd, needMsg) {
	var dateValue = new String(inputDate.value);
	var yearValue, monthValue, dayValue;

	if(langCd == 'EN') {
		monthValue = parseInt(dateValue.substring(0,2),10);
		if (dateValue.length == 8 ) {
			yearValue  = parseInt(dateValue.substring(4,8),10);
			dayValue   = parseInt(dateValue.substring(2,4),10);		
		} else if (dateValue.length == 10 ) {
			yearValue  = parseInt(dateValue.substring(6,10),10);
			dayValue   = parseInt(dateValue.substring(3,5),10);
		} else if(dateValue.length ==0) {
		} else {
			if (needMsg == 'YES') {
				alert('³¯Â¥Çü½ÄÀÌ ¸Â´ÂÁö È®ÀÎÇÏ¼¼¿ä.');
			}
			return false;
		}
	} else { 
		yearValue  = parseInt(dateValue.substring(0,4),10);
		if (dateValue.length == 8 ) {
			monthValue = parseInt(dateValue.substring(4,6),10);
			dayValue   = parseInt(dateValue.substring(6,8),10);		
		} else if (dateValue.length == 10 ) {
			monthValue = parseInt(dateValue.substring(5,7),10);
			dayValue   = parseInt(dateValue.substring(8,10),10);
		} else if(dateValue.length == 0) {
		} else {
			if (needMsg == 'YES') {
				alert('³¯Â¥Çü½ÄÀÌ ¸Â´ÂÁö È®ÀÎÇÏ¼¼¿ä.');
			}
			return false;
		}
	}
	
	if(inputDate.value == null || inputDate.value.length == 0 ) {
		return false;
	}
		
	if(!checkDigit(yearValue) || !checkDigit(monthValue) || !checkDigit(dayValue)) {
		if (needMsg == 'YES') {
			alert('³¯Â¥´Â ¼ýÀÚ¸¸ °¡´ÉÇÕ´Ï´Ù.');
		}
		return false;
	}
	
	if (yearValue < 1900 || yearValue >2100) {
		if (needMsg == 'YES') {
			alert('³¯Â¥°¡ Æ²·È½À´Ï´Ù. ³âµµ´Â 1900³â¿¡¼­ 2100³â±îÁö ÀÔ´Ï´Ù.');
		}
		return false;
	}
	
	if (monthValue <1 || monthValue > 12) {
		if (needMsg == 'YES') {
			alert('³¯Â¥°¡ Æ²·È½À´Ï´Ù. ´ÞÀº 1¿ù¿¡¼­ 12¿ù±îÁö ÀÔ´Ï´Ù.');
		}
		return false;
	}
	
	if (dayValue <1 || dayValue > getLastday(yearValue, monthValue)) {
		if (needMsg == 'YES') {
			alert('³¯Â¥°¡ Æ²·È½À´Ï´Ù.'+monthValue+'¿ù¿¡´Â '+dayValue+'ÀÏÀÌ ¾ø½À´Ï´Ù.');
		}
		return false;
	}
	
	if(monthValue.toString().length==1) monthValue='0'+monthValue;	
	if(dayValue.toString().length==1) dayValue='0'+dayValue;

	if(langCd == 'EN') {
		inputDate.value = monthValue + "/" + dayValue + "/" + yearValue;
	} else if(langCd == 'JA') {
		inputDate.value = yearValue + "/" + monthValue + "/" + dayValue;
	} else {
		inputDate.value = yearValue + "-" + monthValue + "-" + dayValue;
	}
	return true;
}
