function isDate ( tInput ) {
	var i, bReturn=true;

	tInput=trim ( tInput );
	if ( tInput == '' )
		bReturn=false;
	else {
		nMonth=date_parse ( tInput, 'm' );
		nDay=date_parse ( tInput, 'd' );
		nYear=date_parse ( tInput, 'y' );
		if ( nMonth == 0 || nDay == 0 || nYear == 0 )
			bReturn=false;
    }

    return bReturn;
}

function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function isLeapYear (year) {
	return ( year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0));
}

function date_parse ( dDate, tGet ) {
	var nMonth=0, nDay=0, nYear=0, nReturn=0;
	var nMonthDays = new Array ( 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
	
	if ( dDate.length > 0 ) {
		if ( dDate.charAt(1) == '/' ) {
			nMonth=dDate.charAt(0)-0;
			dDate=dDate.substring(2);
		} else if ( dDate.charAt(2) == '/' ) {
			nMonth=dDate.substr(0,2)-0;
			dDate=dDate.substring(3);
		}

		if ( nMonth < 1 || nMonth > 12 )
			nMonth=0;
		else {
			if ( dDate.charAt(1) == '/' ) {
				nDay=dDate.charAt(0)-0;
				dDate=dDate.substring(2);
			} else if ( dDate.charAt(2) == '/' ) {
				nDay=dDate.substring(0,2)-0;
				dDate=dDate.substring(3);
			}
			nYear=dDate-0;
			if ( nYear < 1800 )
				nYear=0;
			else {
				if ( !isLeapYear(nYear))
					nMonthDays[1]=28;
				if ( nDay < 1 || nDay > nMonthDays[nMonth-1] )
					nDay=0;
			}
		}

		switch ( tGet ) {
			case 'M': case 'm': nReturn=nMonth; break;
			case 'D': case 'd': nReturn=nDay; break;
			case 'Y': case 'y': nReturn=nYear; break;
		}
	}
	
	return nReturn;
}
 
function date_day_difference ( dDate1, dDate2 ) {
    var nDifference =
        Date.UTC ( y2k ( dDate1.getYear()), dDate1.getMonth(), dDate1.getDate(), 0, 0, 0 )
      - Date.UTC ( y2k ( dDate2.getYear()), dDate2.getMonth(), dDate2.getDate(), 0, 0, 0 );
    return nDifference/1000/60/60/24;
}

function format_date_yyyymmdd ( dDate ) {
	var nMonth=dDate.getMonth()+1, nDay=dDate.getDate();

	if ( nMonth < 10 )
		tMonth='0' + nMonth;
	else
		tMonth=nMonth+'';
	
	if ( nDay < 10 )
		tDay='0' + nDay;
	else
		tDay=nDay + '';

	return dDate.getFullYear() + tMonth + tDay;
}

