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(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(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(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= "入力エラー : " + ArgMsgA + "が、" + ArgMsgB + "より大きく出来ません。";
			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(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 = "入力エラー : " + ArgMsg + "の年度を正しく入力して下さい。";
			ret = false;
		} else if (Yearval < 1901) {
			Msg = "入力エラー : " + ArgMsg + "の年度を正しく入力して下さい。";
			ret = false;
		} else if ((Monval < 1) || (Monval > 12)) {
			Msg = "入力エラー : " + ArgMsg + "の月は、1月から12月までです。";
			ret = false;
		} else {
			Yearval = parseInt(Yearval);
			if (Monval == 2) {
				if (Yearval%4 == 0) {
					if ((Dayval < 0) || (Dayval > 29)) {
	                    Msg = "入力エラー : " + ArgMsg + "1日から29日までです。";
						ret = false;
					}
				} else {
					if ((Dayval < 0) || (Dayval > 28)) {
	                    Msg = "入力エラー : " + ArgMsg + "1日から28日までです。";
						ret = false;
					}
				}
			}
	
			if ((Monval%2 == 0 && Monval<8 ) || (Monval%2 != 0 && Monval>8 )) {
				if ((Dayval < 1) || (Dayval > 30)) {
	                Msg = "入力エラー : " + ArgMsg + "1日から30日までです。";
					ret = false;
				}
			} else {
				if ((Dayval < 1) || (Dayval > 31)) {
	                Msg = "入力エラー : " + ArgMsg + "1日から31日までです。";
					ret = false;
				}
			}
		}
		
	    if ( ret == false ) {
	        if ( ArgMsg != null && ArgMsg != "") alert(Msg);
	        if ( UseFocus != false ) {
	            Obj.focus();
	            Obj.select();
	        }
	     }
  }
  return ret;
}

function FormatDate(Obj) {
	PressNum();				

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

    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(Obj) {
		Objval = Obj.value;
		Objval = Objval.replace(/\//g,"");
		return Objval;
}