var a_months = new Array() function month_struct( start, days ) { var start_day var no_of_days this.start_day = start this.no_of_days = days } function populate_day_list( obj_day, obj_month, int_save_index ) { int_index = obj_month.selectedIndex var int_start_day_at = 1 obj_day.options.length = 0 if ( int_index == 0 ) { int_start_day_at = 9 } k=0 for( j=int_start_day_at; j<=a_months[int_index].no_of_days; j++ ) { str_day = make_day( j, a_months[int_index].start_day ) obj_day[ obj_day.length ] = new Option( str_day, j ) if( j == int_save_index ) { int_save_index = k } k++; } obj_day.selectedIndex = Math.min( int_save_index, obj_day.length-1 ) } function make_day( date, offset ) { var str_return int_week_day = ( date - 1 ) + offset while( int_week_day > 6 ) { int_week_day = int_week_day - 7 } switch( int_week_day ) { case 0 : str_return = 'Sun' break; case 1 : str_return = 'Mon' break; case 2 : str_return = 'Tue' break; case 3 : str_return = 'Wed' break; case 4 : str_return = 'Thur' break; case 5 : str_return = 'Fri' break; case 6 : str_return = 'Sat' break; } switch( date ) { case 1 : case 21 : case 31 : return str_return + ' ' + j + 'st' break; case 2 : case 22 : return str_return + ' ' + j + 'nd' break; case 3 : case 23 : return str_return + ' ' + j + 'rd' break; default : return str_return + ' ' + j + 'th' break; } } a_months[0] = new month_struct( 3, 29 ) a_months[1] = new month_struct( 4, 31 ) a_months[2] = new month_struct( 0, 30 ) a_months[3] = new month_struct( 2, 31 ) a_months[4] = new month_struct( 5, 30 ) a_months[5] = new month_struct( 0, 31 ) a_months[6] = new month_struct( 3, 31 ) a_months[7] = new month_struct( 6, 30 ) a_months[8] = new month_struct( 1, 31 ) a_months[9] = new month_struct( 4, 30 ) a_months[10] = new month_struct( 6, 31 ) a_months[11] = new month_struct( 2, 31 )