	function FNC_IsDate(objYear, objMonth, objDay, strDateName)
	{
		var arrdays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

        /* うるう年チェック */
		if( (objYear.value%4 == 0)   && 
		    (objYear.value%100 != 0) || 
		    (objYear.value%400 == 0) ) 
		{
			arrdays[1] = 29;
		}

		/* 年 未入力 */
		if ( objYear.value == "" )
		{
			alert(strDateName + " [年] を入力して下さい。") ;
			objYear.focus() ;
			return false ;
		}
		/* 年 数値 */
		if ( isNaN(objYear.value) == true )
		{
			alert(strDateName + " [年］が不正です。") ;
			objYear.focus() ;
			return false ;
		}

		/* 月 未入力 */
		if ( objMonth.value == "" )
		{
			alert(strDateName + " [月] を入力して下さい。") ;
			objMonth.focus() ;
			return false ;
		}
		/* 月 数値 */
		if ( isNaN(objMonth.value) == true )
		{
			alert(strDateName + " [月］が不正です。") ;
			objMonth.focus() ;
			return false ;
		}
		/* 月 範囲 */
		if ( objMonth.value < 1 ||
			 objMonth.value > 12 )
		{
			alert(strDateName + " [月］が不正です。") ;
			objMonth.focus() ;
			return false ;
		}

		/* 日 未入力 */
		if ( objDay.value == "" )
		{
			alert(strDateName + " [日] を入力して下さい。") ;
			objDay.focus() ;
			return false ;
		}
		/* 日 数値 */
		if ( isNaN(objDay.value) == true )
		{
			alert(strDateName + " [日］が不正です。") ;
			objDay.focus() ;
			return false ;
		}

		/* 日 範囲 */
		if ( objDay.value < 1 ||
		     objDay.value > arrdays[(objMonth.value - 1)] )
		{
			alert(strDateName + " [日］が不正です。") ;
			objDay.focus() ;
			return false ;
		}
		
		return true ;
	}

