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 = -100;
start_date.offsetY = +10;
start_date.setReturnFunction("checkInputObj");
start_date.setCssPrefix("calendar");

var end_date = new CalendarPopup('calendar_popup');
end_date.offsetX = -100;
end_date.offsetY = +10;
end_date.setCssPrefix("calendar");


function selectsDisplay(display) {
    var selects = document.getElementsByTagName("select");
    for (var i = 0; i < selects.length; i++) {
        selects[i].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;
}