/**********************************
    nStartYear : 往前推幾年  (-2)
    nEndYear : 往後推幾年.
    sDate : 傳入 default Date
    sFieldName : 欄位名稱
***********************************/
function CreateDateSelect( nStartYear, nEndYear, sDate, sFieldName ) {
	if ( sDate.length != 10 ) {
		alert( sFieldName + " 預設日期格式錯誤 [" + sDate + "]");
		return;
	}
	var nYear = Number( sDate.substring( 0, 4 ) );
	var nMonth = Number( sDate.substring( 5, 7 ) );
	var nDay = Number( sDate.substring( 8, 10 ) );
	document.write("<select class='bk-12' id='f_" + sFieldName +"_YEAR' name='f_" + sFieldName +"_YEAR'>");
	for ( var i = (nYear - nStartYear); i <= (nYear + nEndYear); i++ ) {
		var selStr = "";
		if( nYear == i ) selStr = " selected";
		document.write("<option value='"+i+"'"+  selStr + ">"+i+"</option>");
	}
	document.write("</select>");
	document.write("年");
	document.write("<select class='bk-12' id='f_" + sFieldName + "_MONTH' name='f_" + sFieldName + "_MONTH'>");
	for( var i = 1; i <= 12; i++ ) {
		var selStr = "";
		if( nMonth == i ) selStr = " selected";
		if ( i < 10 )
			document.write("<option value='0"+i+"'" + selStr + ">0"+i+"</option>");
		else
			document.write("<option value='"+i+"'" + selStr + ">"+i+"</option>");
	}

	document.write("</select>");
	document.write("月");
	document.write("<select  class='bk-12' id='f_" + sFieldName + "_DAY' name='f_" + sFieldName + "_DAY'>");
	for ( var i = 1; i <= 31; i++ ) {
		var selStr = "";
		if( nDay == i ) selStr = " selected";
		if ( i < 10 )
			document.write("<option value='0"+i+"'" + selStr + ">0"+i+"</option>");
		else
			document.write("<option value='"+i+"'" + selStr + ">"+i+"</option>");
	}
	document.write("</select>");
	document.write("日");
}

// 產生時間欄位的函數.
function CreateTimeSelect( sTime, sTimeName ) {
	var sHour = sTime.substring( 0, 2 );
	var sMin = sTime.substring( 3, 5 );
	var nHour = Number( sHour );
	var nMin = Number( sMin );

	document.write("<select class='bk-12' id='f_" + sTimeName + "_H' name='f_" + sTimeName + "_H'>");
	for( var i = 0; i < 24; i++ ) {
		if( nHour == i ) {
			if ( i < 10 )
				document.write("<option value='0"+i+"' selected >0"+i+"</option>");
			else
				document.write("<option value='"+i+"' selected >"+i+"</option>");
		}
		else {
			if ( i < 10 )
				document.write("<option value='0"+i+"' >0"+i+"</option>");
			else
				document.write("<option value='"+i+"' >"+i+"</option>");
		}
	}

	document.write("</select>");
	document.write("時");
	document.write("<select class='bk-12' id='f_" + sTimeName + "_M' name='f_" + sTimeName + "_M'>");
	for( var i = 0; i <= 59; i++ ) {
		if( nMin == i ) {
			if ( i < 10 )
				document.write("<option value='0"+i+"' selected >0"+i+"</option>");
			else
				document.write("<option value='"+i+"' selected >"+i+"</option>");
		}
		else {
			if ( i < 10 )
				document.write("<option value='0"+i+"'>0"+i+"</option>");
			else
				document.write("<option value='"+i+"'>"+i+"</option>");
		}
	}
	document.write("</select>");
	document.write("分");
}

// 設定日期欄位的值.
function setDate( dateObj, selName ) {
	var yearObj = document.getElementById("f_" + selName + "_YEAR" );
	var year = yearObj.options[yearObj.selectedIndex].value;
	var monthObj = document.getElementById("f_" + selName + "_MONTH" );
	var month = monthObj.options[monthObj.selectedIndex].value;
	var dayObj = document.getElementById("f_" + selName + "_DAY" );
	var day = dayObj.options[dayObj.selectedIndex].value;
	dateObj.value = year + "/" + month + "/" + day;
	if ( isDate( dateObj.value ) != true ) {
		yearObj.focus();
		return false;
	}
	return true;
}

// 設定日期欄位的值.
function setTime( timeObj, selName ) {
	var hourObj = document.getElementById("f_" + selName + "_H" );
	var sHour = hourObj.options[hourObj.selectedIndex].value;
	var minObj = document.getElementById("f_" + selName + "_M" );
	var sMin = minObj.options[minObj.selectedIndex].value;
	timeObj.value = sHour + ":" + sMin + ":00";
	return true;
}

// check date.
function isDate(dateStr) {
	var datePat = /^(\d{4})(\/|-)(\d{2})(\/|-)(\d{2})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null) {
		alert("日期格式錯誤.");
		return false;
	}

	year = matchArray[1];
	month = matchArray[3]; // parse date into variables
	day = matchArray[5];
	

	if (month < 1 || month > 12) { // check month range
		alert("月只能是  1 至 12.");
		return false;
	}

	if (day < 1 || day > 31) {
		alert("日只能 1 至 31.");
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert(" "+ month + "月 只有  30 天 !")
		return false;
	}

	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap)) {
			var fdays = "28";
			if ( isleap ) fdays = "29";
			alert(" " + year + "年的 2 月 只有  " + fdays + " 天 !");
			return false;
		}
	}
	return true; // date is valid
}



