/*-------------------------------------------------------------------------
 Function  : StrToDate()
 Definition: ³¯Â¥ ¾ç½ÄÀ» ¼ýÀÚ·Î º¯È¯
 Last Date : 2001.5.2 / Rachel Jung
 Arguments : document.form_name.input_name.value,String ³¯Â¥±¸ºÐÀÚ
 Return    : String
 Example   : var dateint = StrToDate(this.form.startday.value ,"/");
-------------------------------------------------------------------------*/
function StrToDate(Objval,DateType) {
	var tmpval,Out="";

	Str = Objval.split(DateType);

	for(var i=0;i<Str.length;i++){
		tmpval = parseInt(Str[i]);
		if(tmpval > 0  && tmpval <= 9 ) Str[i] = "0" + tmpval;
		Out += Str[i];
	}
	//		Out= Out.substr(4,4) + Out.substr(0,4); 
	return Out;
}

/*-------------------------------------------------------------------------
 Function  : GetCurDate()
 Definition: ¿À´Ã ³¯Â¥ ±¸ÇÏ±â
 Last Date : 2001.5.2 / Rachel Jung
 Arguments : String ³¯Â¥±¸ºÐÀÚ(ex:".","/" µî)
 Return    : String
 Example   : var currentdate = CurDate("/");
-------------------------------------------------------------------------*/
function GetCurDate(DateType){
	today = new Date();
	var CurYear = today.getYear();
	var CurMonth = today.getMonth();
	var CurDate = today.getDate();

	CurDate = CurYear + DateType + CurMonth + DateType + CurDate ;
	return CurDate;
}

/*-------------------------------------------------------------------------
 Function  : CompToday()
 Definition: ÀÔ·ÂÀÏÀÚ°¡ ¿À´ÃÀÏÀÚº¸´Ù Å«Áö Ã¼Å©(obj Ãß°¡)
 Last Date : 2001.5.3 / Rachel Jung
 Arguments : Object document.form_name.input_name,String ³¯Â¥±¸ºÐÀÚ,
			 String "°æ°í¸Þ½ÃÁö";
 Return    : String ( 0 : °°´Ù, 1:Å©´Ù, -1:ÀÛ´Ù, -100:Error)
 Example   : if(CompToday(this.form.startday,"/","½ÃÀÛÀÏ") < 1)
			 alert("The beginning date should predate today.");
-------------------------------------------------------------------------*/
function CompToday(Obj,DateType,ArgMsg) {
	var todayval = GetCurDate();

	if( IsValidDate(Obj,DateType,ArgMsg) == false ) return -100;
	else {
		Objval = StrToDate(Obj.value,DateType);
		if ( parseInt(Objval) > parseInt(todayval)) return 1;
		else if ( parseInt(Objval) == parseInt(todayval)) return 0;
		else return -1;
	}
}

/*-------------------------------------------------------------------------
 Function  : CheckDateDiff()
 Definition: ½ÃÀÛ,³¡³¯Â¥ ºñ±³ Check
 Last Date : 2001.5.2 / Rachel Jung
 Arguments : Object document.form_name.input_name,
             Object document.form_name.input_name,String ³¯Â¥±¸ºÐÀÚ,
             String °æ°í¸Þ½ÃÁö1,String °æ°í¸Þ½ÃÁö2,
			 boolean false : focus»ç¿ë¾ÈÇÔ
 Return    : Boolean
 Example   : if(CheckDateDiff(this.form.startday,this.form.endday,"/","°æ¸Å½ÃÀÛÀÏ","°æ¸ÅÁ¾·áÀÏ") == false) return;
-------------------------------------------------------------------------*/
function CheckDateDiff(ObjA,ObjB,DateType,ArgMsgA,ArgMsgB,UseFocus) {
    var ret=true,Msg;

	if( IsValidDate(ObjA,DateType,ArgMsgA,UseFocus)  == false &&
                IsValidDate(ObjB,DateType,ArgMsgB,UseFocus)  == false ) {
                ArgMsgA = ArgMsgB = "";
                ret = false;
	} else {
		ObjAval = StrToDate(ObjA.value,DateType)
		ObjBval = StrToDate(ObjB.value,DateType)

		if ( parseInt(ObjAval) > parseInt(ObjBval) ) {
            Msg= "Input Error : " + ArgMsgA + " cannot be larger than " + ArgMsgB.toLowerCase() + ".";
			ret = false;
		}
	}	

	if ( ret == false ) {
		if (ArgMsgA!=null && ArgMsgA!="" && ArgMsgB!=null && ArgMsgB!="")
			alert(Msg);
		if ( UseFocus != false ) {
			Obj.focus();
			Obj.select();
		}
	}
	return ret;
}

/*-------------------------------------------------------------------------
 Function  : IsValidDate()
 Definition: ³¯Â¥ Check, ´Ü null,"" Çã¿ëÇÔ
  ast Date : 2001.5.3 / Rachel Jung
 Arguments : Object document.form_name.input_name,String ³¯Â¥±¸ºÐÀÚ,
			 String "°æ°í¸Þ½ÃÁö"
			 boolean false : focus»ç¿ë¾ÈÇÔ
 Return    : Boolean
 Example   : if(IsValidDate(this.form.birth,"/","»ýÀÏ") == false) return;
-------------------------------------------------------------------------*/
function IsValidDate(Obj,DateType,ArgMsg,UseFocus) {
	var ret=true,Msg;
	var tmpstr = Obj.value.replace(/\//g,"");

	if ( tmpstr != "" && Obj.value != null ) {
		var tmpdate = new String;
		tmpdate.value = StrToDate(Obj.value,DateType);
	
		var Yearval = tmpdate.value.substr(0,4);
		var Monval = tmpdate.value.substr(4,2);
		var Dayval = tmpdate.value.substr(6,2);
	
		if (Monval.charAt(0) == "0") Monval = Monval.charAt(1);
		if (Dayval.charAt(0) == "0") Dayval = Dayval.charAt(1);
	
		Monval = parseInt(Monval);
		Dayval = parseInt(Dayval);
	
		if ( CheckLen(tmpdate,ArgMsg,8,false)  == false) {
			ArgMsg = "";
			ret = false;
		} else if ( OnlyNum(tmpdate,ArgMsg,"",false)  == false) {
			ArgMsg = "";
			ret = false;
		} else if ( (Yearval.charAt(0) < "1") || (Yearval.charAt(0) > "2")) {
			Msg = "Input Error : Please, enter the correct year of " + ArgMsg.toLowerCase() + ".";
			ret = false;
		} else if (Yearval < 1901) {
			Msg = "Input Error : Please, enter the correct year of " + ArgMsg.toLowerCase() + ".";
			ret = false;
		} else if ((Monval < 1) || (Monval > 12)) {
			Msg = "Input Error : The month of " + ArgMsg.toLowerCase() + " is between January and Decemer.";
			ret = false;
		} else {
			Yearval = parseInt(Yearval);
			if (Monval == 2) {
				if (Yearval%4 == 0) {
					if ((Dayval < 0) || (Dayval > 29)) {
	                    Msg = "Input Error : The date of " + ArgMsg.toLowerCase() + " is between 1st and 29th.";
						ret = false;
					}
				} else {
					if ((Dayval < 0) || (Dayval > 28)) {
	                    Msg = "Input Error : The date of " + ArgMsg.toLowerCase() + " is between 1st and 28th.";
						ret = false;
					}
				}
			}
	
			if ((Monval%2 == 0 && Monval<8 ) || (Monval%2 != 0 && Monval>8 )) {
				if ((Dayval < 1) || (Dayval > 30)) {
	                Msg = "Input Error : The date of " + ArgMsg.toLowerCase() + " is between 1st and 30th.";
					ret = false;
				}
			} else {
				if ((Dayval < 1) || (Dayval > 31)) {
	                Msg = "Input Error : The date of " + ArgMsg.toLowerCase() + " is between 1st and 31th.";
					ret = false;
				}
			}
		}
		
	    if ( ret == false ) {
	        if ( ArgMsg != null && ArgMsg != "") alert(Msg);
	        if ( UseFocus != false ) {
	            Obj.focus();
	            Obj.select();
	        }
	     }
  }
  return ret;
}

/*------------------------------------------------------------------------------
 Function  : FormatDate()
 Definition: ³¯Â¥ Å¸ÀÔ¿¡ /Ç¥½Ã
 Last Date : 2001.5.3 / Rachel Jung
 Arguments : Object document.form_name.input_name
 Return    : void
 Example   : ONKEYPRESS="FormatDate(this);"
------------------------------------------------------------------------------*/
function FormatDate(Obj) {
	PressNum();				

	Objval = Obj.value.replace(/\//g,"");
	Objval = Objval.replace(/\D/g,"");
	len =  Objval.length;

/*
	if ( len >= 4 )
		Objval = Objval.substr(0,4) + "/" + Objval.substring(4);
	if ( len >= 2 )
		Objval = Objval.substr(0,2) + "/" + Objval.substring(2);
*/
    if ( len >= 6 )
        Objval = Objval.substr(0,6) + "/" + Objval.substring(6);
    if ( len >= 4 )
        Objval = Objval.substr(0,4) + "/" + Objval.substring(4);

	Obj.value = Objval;
}

/*------------------------------------------------------------------------------
 Function  : RemoveFormatDate()
 Definition: /Ç¥½Ã Á¦°Å
 Last Date : 2001.5.3 / Rachel Jung
 Arguments : Object document.form_name.input_name
 Return    : String
 Example   : tmpstr = RemoveFormatDate(document.form.price);
------------------------------------------------------------------------------*/
function RemoveFormatDate(Obj) {
		Objval = Obj.value;
		Objval = Objval.replace(/\//g,"");
		return Objval;
}