document.write(getCalendarStyles());
document.write('<div id="calendar_popup" style="z-index:900; position:absolute; visibility:hidden; background-color:#FFFFFF; layer-background-color:#FFFFFF;"></div>');
var start_date = new CalendarPopup('calendar_popup');
start_date.offsetX = 20;
start_date.offsetY = 20;
start_date.setReturnFunction("checkInputObj");
start_date.setCssPrefix("calendar");

var end_date = new CalendarPopup('calendar_popup');
end_date.offsetX = 20;
end_date.offsetY = 20;
end_date.setCssPrefix("calendar");


function selectsDisplay(display) {
	var forms = document.getElementsByTagName("form");
	for (var j = 0; j < forms.length; j++) {
		if (forms[j].name) {
			var selects = eval("document." + forms[j].name).getElementsByTagName("select");
			
			for (var i = 0; i < selects.length; i++)
				eval("document." + forms[j].name + "." + selects[i].name).style.visibility = display;
		}
	}
}


// checks to see which input object has been changed
// sends to other function if the start date is what was changed
function checkInputObj(y,m,d) {
	var startObj = document.getElementById(start_date.s_date);
	var days_ahead = start_date.days_ahead;
	
	startObj.value = m + "/" + d + "/" + y;
	
	setDate(startObj.value, start_date.e_date, days_ahead);
}


function setDate(thisDate, e_date, days_ahead) {
	var endObj = document.getElementById(e_date);
	var date_array = new Array();
	var newDate = new Object();
	
	date_array = thisDate.split('/');
	
	// get the julian day of 'days_ahead' days later
	var month = date_array[0];
	var day = parseInt(date_array[1]) + parseInt(days_ahead);
	var year = date_array[2];
	var j_date = julianDay(parseInt(year), parseInt(month), parseInt(day),0,0,0);
	
	// if the number entered is a date, create the end date
	if (!isNaN(j_date)) {
		var newDate = new calendarDate(j_date);
		endObj.value = newDate.month + "/" + newDate.day + "/" + newDate.year;
	}
	return false;
}


// year, month, day, hour, minute, second
function julianDay(YY,MM,DD,HR,MN,SC) {
	with (Math) {
		HR = HR + (MN / 60) + (SC/3600);
		GGG = 1;
		if (YY <= 1585) GGG = 0;
		JD = -1 * floor(7 * (floor((MM + 9) / 12) + YY) / 4);
		S = 1;
		if ((MM - 9)<0) S=-1;
		A = abs(MM - 9);
		J1 = floor(YY + S * floor(A / 7));
		J1 = -1 * floor((floor(J1 / 100) + 1) * 3 / 4);
		JD = JD + floor(275 * MM / 9) + DD + (GGG * J1);
		JD = JD + 1721027 + 2 * GGG + 367 * YY - 0.5;
		JD = JD + (HR / 24);
	}
	return JD;
}


function calendarDate(jd) {
    var j1, j2, j3, j4, j5;         //scratch

    //
    // get the date from the Julian day number
    //
    var intgr   = Math.floor(jd);
    var frac    = jd - intgr;
    var gregjd  = 2299160.5;
    if( jd >= gregjd ) {                //Gregorian calendar correction
        var tmp = Math.floor( ( (intgr - 1867216.0) - 0.25 ) / 36524.25 );
        j1 = intgr + 1 + tmp - Math.floor(0.25*tmp);
    } else
        j1 = intgr;

    //correction for half day offset
    var df = frac + 0.5;
    if( df >= 1.0 ) {
        df -= 1.0;
        ++j1;
    }

    j2 = j1 + 1524.0;
    j3 = Math.floor( 6680.0 + ( (j2 - 2439870.0) - 122.1 )/365.25 );
    j4 = Math.floor(j3*365.25);
    j5 = Math.floor( (j2 - j4)/30.6001 );

    var d = Math.floor(j2 - j4 - Math.floor(j5*30.6001));
    var m = Math.floor(j5 - 1.0);
    if( m > 12 ) m -= 12;
    var y = Math.floor(j3 - 4715.0);
    if( m > 2 )   --y;
    if( y <= 0 )  --y;

    //
    // fix a "feb 29" bug in the algorithm that occurs on century years not
    // divisible by 400 (e.g. 1900)
    //
//    if( d > numdays[m-1] ) {
//        d = 1;
//        ++m;
//        if( m > 12 ) {
//            m -= 12;
//            ++y;
//        }
//    }

    //
    // get time of day from day fraction
    //
    var hr  = Math.floor(df * 24.0);
    var mn  = Math.floor((df*24.0 - hr)*60.0);
         f  = ((df*24.0 - hr)*60.0 - mn)*60.0;
    var sc  = Math.floor(f);
         f -= sc;
    if( f > 0.5 ) ++sc;
    if( sc == 60 ) {
        sc = 0;
        ++mn;
    }
    if( mn == 60 )  {
        mn = 0;
        ++hr;
    }
    if( hr == 24 )  {
        hr = 0;
        ++d;
        if( d > numdays[m-1] ) {
            d = 1;
            ++m;
            if( m > 12 ) {
                m -= 12;
                ++y;
            }
        }
    }

    this.year	= y;
    this.month	= m;
    this.day	= d;
    this.hour	= hr;
    this.minute	= mn;
    this.second	= sc;
}