// Javascript to convert between YYYYDDD and MMDDYYYY formats
// Adapted from various PD sources.
function makeArray()    {
    this[0] = makeArray.arguments.length;
    for (i = 0; i<makeArray.arguments.length; i++)
        this[i+1] = makeArray.arguments[i];
}
var accumulate    = new makeArray(  0, 31, 59, 90,120,151,181,212,243,273,304,334);
var accumulateLY  = new makeArray(  0, 31, 60, 91,121,152,182,213,244,274,305,335);
function is_LeapYear(year) {
    if ((year/4)   != Math.floor(year/4))   return false;
    if ((year/100) != Math.floor(year/100)) return true;
    if ((year/400) != Math.floor(year/400)) return false;
    return true;
}
function getJulian(day,month,year) {
    if (is_LeapYear(year))
        return (day + accumulateLY[month]);
    else
        return (day + accumulate[month]);
}
function getDate(jday,year) {
	if (jday <= 0 || (is_LeapYear(year) && (jday > 366)) || (!is_LeapYear(year) && (jday > 365))) {
		return "Illegal day";
	}
	if (year <= 0) {
		return "Illegal year";
	}

	// calculate the month
	var mm = 1;
	var dd = 0;
	if (is_LeapYear(year)) {
		while (accumulateLY[mm] < jday) {
			mm++;
		}
		dd = jday - accumulateLY[mm-1];
	} else {
		while (accumulate[mm] < jday) {
			mm++;
		}
		dd = jday - accumulate[mm-1];
	}
	mm--;
	return mm + "/" + dd + "/" + year;
}
function gettodayandnow(form) {
	var now = new Date();
	var hours = now.getUTCHours();
	var minutes = now.getUTCMinutes();
	var seconds = now.getUTCSeconds()
	var month = now.getUTCMonth() + 1;
	var day = now.getUTCDate();
	var year = now.getUTCFullYear();
    form.nmonth.value=month;
    form.nday.value=day;
    form.nyear.value=year;
    form.nhour.value=hours;
    form.nminute.value=minutes;
    form.nsecond.value=seconds;
}
function date_to_jday (form) {
	mm=eval(form.nmonth.value);
    dd=eval(form.nday.value);
    yy=eval(form.nyear.value);	
    form.result.value = getJulian(dd,mm,yy);
}
function jday_to_date (form) {
	jday=eval(form.jday.value);
    yy=eval(form.nyear.value);
    form.result.value = getDate(jday,yy);
}
