Home Articles FAQs XREF Games Software Instant Books BBS About FOLDOC RFCs Feedback Sitemap
irt.Org

Related items

JavaScript Y2K Issues

And now...The Weekly Update Script

The 24 Hour World

Extending "Born of the 4th of July"

Easter

The 3rd Saturday in November

Born on the 4th of July

The Chinese New Year

What sign are you?

Monday's child is full of grace

Today's The Day- source

You are here: irt.org | Articles | JavaScript | Date and Time | Today's The Day [ previous next ]

Published on: Thursday 1st January 1998 By: Martin Webb

Return

frame.htm

<HTML><HEAD>

<SCRIPT LANGUAGE="JavaScript"><!--
function y2k(number)    { return (number < 1000) ? number + 1900 : number; }

var today = new Date();
var year = y2k(today.getYear());
//--></SCRIPT>

<FRAMESET ROWS="50%,50%">
    <FRAME SCROLLING=NO  FRAMEBORDER=0 BORDER=0 NORESIZE SRC="input.htm">
    <FRAME SCROLLING=YES FRAMEBORDER=0 BORDER=0 NORESIZE SRC="blank.htm" NAME="outputFrame">
</FRAMESET>

</HEAD></HTML>

Return

blank.htm

<BODY></BODY>

Return

input.htm

<HTML><HEAD>

<LINK REL=STYLESHEET HREF="../../utility/main.css" TYPE="text/css">

<SCRIPT LANGUAGE="JavaScript"><!--
function ChosenDate(object) {
    year = object.year.value;

    if (parent.location.href != window.location.href) {
        parent.year = year;
        parent.outputFrame.location.href = 'output.htm';
    }
    else {
        return true;
    }

    return false;
}

function y2k(number)    { return (number < 1000) ? number + 1900 : number; }

var today = new Date();
var thisYear = y2k(today.getYear());

var yearOutput = '<INPUT TYPE="TEXT" NAME="year" SIZE="4" VALUE="' + thisYear + '">';
//--></SCRIPT>

</HEAD>

<BODY><FONT FACE="ARIAL,HELVETICA"><CENTER>

<H2>Select year:</H2>

<FORM NAME="inputDateForm" ACTION="output.htm" onSubmit="return ChosenDate(document.inputDateForm);">

Year:
<SCRIPT LANGUAGE="JavaScript"><!--
document.write(yearOutput);
//--></SCRIPT>

<INPUT TYPE="SUBMIT" VALUE="Show">
</FORM>

<A HREF="index.htm" TARGET="_parent">Return</A>

</CENTER></FONT></BODY>

</HTML>

Return

output.htm

<HTML><HEAD>

<SCRIPT LANGUAGE="JavaScript"><!--
var today = new Date();
var thisYear = y2k(today.getYear());
var thisMonth = today.getMonth()+1;
var thisDay = today.getDate();

if (parent.location.href != window.location.href)
    var year = parent.year - 0, month = parent.month - 0, day = parent.day - 0;
else if (location.search.length != 0)
    var year = location.search.substring(22) - 0, month = location.search.substring(14,16) - 0, day = location.search.substring(5,7) - 0;
else
    var year = thisYear, month = thisMonth, day = thisDay;

function makeArray()    {
    this[0] = makeArray.arguments.length;
    for (i = 0; i<makeArray.arguments.length; i++)
        this[i+1] = makeArray.arguments[i];
}

var daysofweek     = new makeArray('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
var child          = new makeArray('is bonny and blithe and good and gay','is full of grace','is fair of face','is full of woe','has far to go','is loving and giving','works hard for a living');
var monthsofyear   = new makeArray('January','February','March','April','May','June','July','August','September','October','November','December');
var daysofmonth    = new makeArray( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var daysofmonthLY  = new makeArray( 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var months         = new makeArray('jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec');
var horroscopes    = new makeArray( 20, 19, 21, 21, 21, 21, 22, 22, 22, 23, 22, 21);
var starsigns      = new makeArray('Capricorn','Aquarius','Pisces','Aries','Taurus','Gemini','Cancer','Leo','Virgo','Libra','Scorpio','Sagittarius');
var starsymbols    = new makeArray('Goat','Water Bearer','Fishes','Ram','Bull','Twins','Crab','Lion','Virgin','Balance','Scorpion','Archer');
var birthstones    = new makeArray('Garnet','Amethyst','Aquamarine, bloodstone','Diamond','Emerald','Pearl, alexandrite, moonstone','Ruby','Peridot, sardonyx','Sapphire','Opal, tourmaline','Topaz','Turquoise, zircon');
var qualities      = new makeArray('Constancy','Sincerity','Courage','Innocence','Love, success','Health, longevity','Contentment','Married happiness','Clear thinking','Hope','Fidelity','Prosperity');
var chinesenewyear = new makeArray(1.31,2.19,2.08,1.29,2.16,2.04,1.25,2.13,2.02,1.22,2.10,1.30,2.18,2.06,1.26,2.14,2.03,1.23,2.11,2.01,2.20,2.08,1.28,2.16,2.05,1.25,2.13,2.02,1.23,2.10,1.30,2.17,2.06,1.26,2.14,2.04,1.24,2.11,1.31,2.19,2.08,1.27,2.15,2.05,1.25,2.13,2.02,1.22,2.10,1.29,2.17,2.06,1.27,2.14,2.03,1.24,2.12,1.31,2.18,2.08,1.28,2.15,2.05,1.25,2.13,2.02,1.21,2.09,1.30,2.17,2.06,1.27,2.15,2.03,1.23,2.11,1.31,2.18,2.07,1.28,2.16,2.05,1.25,2.13,2.02,2.20,2.09,1.29,2.17,2.06,1.27,2.15,2.04,1.23,2.10,1.31,2.19,2.07,1.28,2.16);
var chinese        = new makeArray('Rat','Ox','Tiger','Hare','Dragon','Snake','Horse','Sheep','Monkey','Fowl','Dog','Pig');
var branches       = new makeArray('Zi','Chou','Yin','Mao','Chen','Si','Wu','Wei','Shen','You','Xu','Hai');
var stems          = new makeArray('Jia','Yi','bing','Ding','Wu','Ji','Geng','Xin','Ren','Gui');
var colors         = new makeArray('aliceblue','antiquewhite','aqua','aquamarine','azure','beige','blanchedalmond','blue','blueviolet','brown','burlywood','cadetblue','chartreuse','chocolate','coral','cornflowerblue','cornsilk','crimson','cyan','darkblue','darkcyan','darkgoldenrod','darkgray','darkgreen','darkkhaki','darkmagenta','darkolivegreen','darkorange','darkorchid','darkred','darksalmon','darkseagreen','darkslateblue','darkslategray','darkturquoise','darkviolet','deeppink','deepskyblue','dimgray','dodgerblue','floralwhite','forestgreen','fuchsia','gainsboro','ghostwhite','gold','goldenrod','gray','green','greenyellow','honeydew','hotpink','indianred','ivory','khaki','lavender','lavenderblush','lawngreen','lemonchiffon','lightblue','lightblue','lightcoral','lightcyan','lightgoldenrodyellow','lightgreen','lightgrey','lightpink','lightsalmon','lightseagreen','lightskyblue','lightslategray','lightsteelblue','lightyellow','lime','limegreen','linen','magenta','maroon','mediumaquamarine','mediumblue','mediumorchid','mediumpurple','mediumseagreen','mediumslateblue','mediumspringgreen','mediumturquoise','mediumvioletred','midnightblue','mintcream','mistyrose','moccasin','navajowhite','navy','oldlace','olive','olivedrab','orange','orangered','orchid','palegoldenrod','palegreen','paleturquoise','palevioletred','papayawhip','peachpuff','peru','pink','plum','powderblue','purple','red','rosybrown','royalblue','saddlebrown','salmon','sandybrown','seagreen','seashell','sienna','silver','skyblue','slateblue','slategray','snow','springgreen','steelblue','tan','teal','thistle','tomato','turquoise','violet','wheat','white','whitesmoke','yellow','yellowgreen');
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);

var sun=1,mon=2,tue=3,wed=4,thu=5,fri=6,sat=7;
var jan=1,feb=2,mar=3,apr=4,may=5,jun=6,jul=7,aug=8,sep=9,oct=10,nov=11,dec=12;
var first=1,second=2,third=3,fourth=4,fifth=5,last=-1;

function y2k(number)    { return (number < 1000) ? number + 1900 : number; }
function padout(number) { return (number < 10) ? '0' + number : number; }

function 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 HowOld(day,month,year,thisDay,thisMonth,thisYear) {
    var yearsold = thisYear - year, monthsold = 0, daysold = 0, string = '';

    if (thisMonth >= month) monthsold = thisMonth - month;
    else { yearsold--; monthsold = thisMonth + 12 - month; }

    if (thisDay >= day) daysold = thisDay - day;
    else { 
        if (monthsold > 0) monthsold--;
        else { yearsold--; monthsold+=11; }
        daysold = thisDay + 31 - day;
    }

    if (yearsold < 0) return '';

    if ((yearsold == 0) && (monthsold == 0) && (daysold == 0))
        return '';

    if (yearsold > 0) {
        string = yearsold + ' year';
        if (yearsold > 1) string += 's';
        string += ' ';
    }

    if (monthsold > 0) {
        string += monthsold + ' month';
        if (monthsold > 1) string += 's';
        string += ' ';
    }

    if (daysold > 0) {
        string += daysold + ' day';
        if (daysold > 1) string += 's';
        string += ' ';
    }

    return '<H3>Age - ' + string + '<\/H3>';
}

function DayOfWeek(day,month,year) {
    var a = Math.floor((14 - month)/12);
    var y = year - a;
    var m = month + 12*a - 2;
    var d = (day + y + Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400) + Math.floor((31*m)/12)) % 7;
    return d+1;
}

function Nths(day) { 
    if (day == 1 || day == 21 || day == 31) return 'st';
    if (day == 2 || day == 22) return 'nd';
    if (day == 3 || day == 23) return 'rd';
    return 'th';
}

function FullDate(day,month,year) {
    return daysofweek[DayOfWeek(day,month,year)] +' '+ day + Nths(day) +' '+ monthsofyear[month] +' '+ year;
}

function Child(dayofweek) {
    return daysofweek[dayofweek] + '\'s child ' + child[dayofweek];
}

function StarSign(day,month) {
    if (day < horroscopes[month])
        return month;
    else if (month == 12)
        return 1;
    else
        return month + 1;
}

function StarDate(day,month,year) {
    var beginYear = year;
    var endYear = year;
    var beginMonth = month;
    var endMonth = month;

    if (day < horroscopes[month])
        beginMonth--;
    else 
        endMonth++;
    
    if (beginMonth == 0) {
        beginMonth = 12;
        beginYear--;
    }
    else if (endMonth == 13) {
        endMonth = 1;
        endYear++;
    }

    beginDay = horroscopes[beginMonth];
    endDay = horroscopes[endMonth] - 1;

    return '[ ' + FullDate(beginDay,beginMonth,beginYear) + '<BR>' + FullDate(endDay,endMonth,endYear) + ' ]';
}

//**** Chinese routines

function Chinese(day,month,year) {
    if ((year > 1900) && (year < 1999)) {
        var newYear = chinesenewyear[year - 1899];
        var newMonth = Math.floor(newYear);
        var newDay = Math.round((newYear*100)-(newMonth*100));

        if ((month > newMonth) || ((month == newMonth) && (day >= newDay))) {
            // this year
            var chineseBranch = (year-3)%12;
            var chineseStem = (year-3)%10;

            var nextYear = chinesenewyear[year - 1899 + 1];
            var nextMonth = Math.floor(nextYear);
            var nextDay = Math.round((nextYear*100)-(nextMonth*100));

            var lastDay = nextDay - 1;
            if (lastDay == 0) {
                lastMonth = nextMonth - 1;
                lastDay = 31;
            }
            else lastMonth = nextMonth;
            
            chineseyearrange = '[ ' +
                daysofweek[DayOfWeek(newDay,newMonth,year)] +' '+
                newDay  + Nths(newDay)  +' '+ monthsofyear[newMonth]  +' '+ year +'<BR>'+
                daysofweek[DayOfWeek(lastDay,lastMonth,year+1)] +' '+
                lastDay + Nths(lastDay) +' '+ monthsofyear[lastMonth] +' '+ (year+1) + ' ]';
        }
        else {
            // last year
            var chineseBranch = (year-4)%12;
            var chineseStem = (year-4)%10;

            var oldYear = chinesenewyear[year - 1899 - 1];
            var oldMonth = Math.floor(oldYear);
            var oldDay = Math.round((oldYear*100)-(oldMonth*100));

            var lastDay = newDay - 1;
            if (lastDay == 0) {
                lastMonth = newMonth - 1;
                lastDay = 31;
            }
            else lastMonth = newMonth;
            
            chineseyearrange = '[ ' +
                daysofweek[DayOfWeek(oldDay,oldMonth,year-1)] +' '+
                oldDay  + Nths(oldDay)  +' '+ monthsofyear[oldMonth]  +' '+ (year-1) +'<BR>'+
                daysofweek[DayOfWeek(lastDay,lastMonth,year)] +' '+
                lastDay + Nths(lastDay) +' '+ monthsofyear[lastMonth] +' '+ year + ' ]';
        }
    }
    else {
        var chineseBranch = (year-3)%12;
        var chineseStem = (year-3)%10;
    }

    if (chineseBranch == 0)
        chineseBranch = 12;

    if (chineseStem == 0)
        chineseStem = 10;

    chineseyearname = ' (' + stems[chineseStem] + '-' + branches[chineseBranch] + ')';

    return chinese[chineseBranch];
}

//**** Random routines

// start - The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)
// See:  http://www.msc.cornell.edu/~houle/javascript/randomizer.html
rnd.today=new Date();rnd.seed=rnd.today.getTime();
function rnd() { rnd.seed = (rnd.seed*9301+49297) % 233280; return rnd.seed/(233280.0); }
function rand(number) { return Math.ceil(rnd()*number); }
// end   - The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)

//**** Lottery routines

function MakeEmptyArray(size) {
    this[0] = size;
    for (i = 1; i <= size; i++)
        this[i] = '';
}

function ResetLotteryBalls() {
    for (var i = 1; i <= lotterynumbers[0]; i++)
        lotterynumbers[i] = '';
}
 
function SelectLotteryBalls(number) {
    while (number > 0) {
        random = rand(lotterynumbers[0]);
        if (lotterynumbers[random] == '') {
            lotterynumbers[random] = 'X';
            number--;
        }
    }
}

function ShowLotteryBalls() {
    document.write('<P>');
    for (var i=1; i <= lotterynumbers[0]; i++) {
        if (lotterynumbers[i] != '')
            document.write('<P><IMG SRC="data/balls/'+i+'.gif" HEIGHT=50 WIDTH=50 ALT="' + i +'">');
    }
}

var lotteryballs = 49, ballstoselect = 6;

var lotterynumbers = new MakeEmptyArray(lotteryballs);

var color = colors[rand(colors[0])];

//**** Birthday routines

function Birthday(day,month,year,who) {
    this.day = day;
    this.month = month;
    this.year = year;
    this.who = who;
}

function setBirthday(day,month,year,who) {
    myBirthday[birthdayIndex++] = new Birthday(day,month,year,who);
}

var birthdayIndex = 0;
var myBirthday = new Array();

function showBirthday(day) {
    var output = '';
    for(var i=0; i < birthdayIndex; i++) {
        var birthDay = myBirthday[i].day;

        if (day == birthDay) {
            var birthMonth = myBirthday[i].month;
            var birthYear = myBirthday[i].year;
            var who = myBirthday[i].who;
            output += '<BR>' + who + ' (' + FullDate(birthDay,birthMonth,birthYear) + ')';
        }
    }

    return output;
}

//**** Event routines

function Easter(Y) {
    var C = Math.floor(Y/100);
    var N = Y - 19*Math.floor(Y/19);
    var K = Math.floor((C - 17)/25);
    var I = C - Math.floor(C/4) - Math.floor((C - K)/3) + 19*N + 15;
    I = I - 30*Math.floor((I/30));
    I = I - Math.floor(I/28)*(1 - Math.floor(I/28)*Math.floor(29/(I + 1))*Math.floor((21 - N)/11));
    var J = Y + Math.floor(Y/4) + I + 2 - C + Math.floor(C/4);
    J = J - 7*Math.floor(J/7);
    var L = I - J;
    var M = 3 + Math.floor((L + 40)/44);
    var D = L + 28 - 31*Math.floor(M/4);

    return padout(M) + '.' + padout(D);
}

function getMM(string)    { return eval(string.substring(0,2)); }
function getDD(string)    { return eval(string.substring(3,5)); }
function getYYYY(string)  { return eval(string.substring(0,string.indexOf('.'))); }
function getMMDD(string)  { return string.substring(string.indexOf('.')+1,string.length); }
function daysinyear(year) { if (LeapYear(year)) return 366; else return 365; }

function addDays(day,month,year,addition) {
    if (LeapYear(year)) var number = day + accumulateLY[month] + addition;
    else                var number = day + accumulate[month]   + addition;

    var days = daysinyear(year);
   
    while (number > days) {
        number -= days;
        days = daysinyear(++year);
    }

    while (number < 1) {
        days = daysinyear(--year);
        number += days;
    }

    month = 1;

    if (LeapYear(year)) {
        while (number > accumulateLY[month]) { month++; }
        day = number - accumulateLY[--month];
    }
    else {
        while (number > accumulate[month]) { month++; }
        day = number - accumulate[--month];
    }
    return year + '.' + padout(month) + '.' + padout(day);
}

function NthDay(nth,weekday,month,year) {
    if (nth > 0) return (nth-1)*7 + 1 + (7 + weekday - DayOfWeek((nth-1)*7 + 1,month,year))%7;
    if (LeapYear(year)) var days = daysofmonthLY[month];
    else                var days = daysofmonth[month];
    return days - (DayOfWeek(days,month,year) - weekday + 7)%7;
}

function Event(day,month,what) {
    this.value = '' + padout(month) + '/' + padout(day);
    this.day = day;
    this.month = month;
    this.what = what;
}

function setEvent(day,month,what) { myEvent[eventIndex++] = new Event(day,month,what); }

var eventIndex = 0, myEvent = new Array();

setEvent( 1, 1,"New Year's Day");
setEvent( 6, 1,"Epiphany");
setEvent( 2, 2,"Groundhog Day");
setEvent(12, 2,"Lincoln's Birthday");
setEvent(14, 2,"Valentine's Day");
setEvent(22, 2,"Washington's Birthday");
setEvent(29, 2,"Leap Year's Day");
setEvent(17, 3,"St. Patrick's Day");
setEvent(19, 3,"St. Joseph");
setEvent( 1, 4,"April Fools's Day");
setEvent(15, 4,"Tax Day");
setEvent(14, 6,"Flag Day");
setEvent(29, 6,"St. Peter & St. Paul");
setEvent( 4, 7,"Independence Day");
setEvent(12, 7,"Battle of the Boyne (N. Ireland)");
setEvent(15, 8,"Assumption");
setEvent(12,10,"Columbus Day");
setEvent(24,10,"United Nations Day");
setEvent(31,10,"Halloween");
setEvent( 1,11,"All Saint's Day");
setEvent( 5,11,"Guy Fawkes Night");
setEvent(11,11,"Veteran's Day");
setEvent( 8,12,"Immaculate Conception");
setEvent(24,12,"Christmas Eve");
setEvent(25,12,"Christmas Day");
setEvent(26,12,"Boxing Day - St Stephen's Day");
setEvent(31,12,"New Year's Eve");

var easter = Easter(year);
var easterDay = getDD(easter);
var easterMonth = getMM(easter);

setEvent(easterDay,easterMonth,year,"Easter Sunday");

var when = addDays(easterDay,easterMonth,year,-63);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Septuagesima Sunday");

var when = addDays(easterDay,easterMonth,year,-56);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Sexagesima Sunday");

var when = addDays(easterDay,easterMonth,year,-49);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Shrove Sunday");

var when = addDays(easterDay,easterMonth,year,-47);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Shrove Tuesday");

var when = addDays(easterDay,easterMonth,year,-46);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Ash Wednesday");

var when = addDays(easterDay,easterMonth,year,-14);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Passion Sunday");

var when = addDays(easterDay,easterMonth,year,-7);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Palm Sunday");

var when = addDays(easterDay,easterMonth,year,-3);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Holy or Maundy Thursday");

var when = addDays(easterDay,easterMonth,year,-2);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Good Friday");

var when = addDays(easterDay,easterMonth,year,35);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Rogation Sunday");

var when = addDays(easterDay,easterMonth,year,39);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Ascension Day");

var when = addDays(easterDay,easterMonth,year,49);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Pentecost or Whitsunday");

var when = addDays(easterDay,easterMonth,year,50);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Whitmundy");

var when = addDays(easterDay,easterMonth,year,56);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Trinity Sunday");

var when = addDays(easterDay,easterMonth,year,60);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Corpus Christi");

var when = addDays(easterDay,easterMonth,year,63);
setEvent(getDD(getMMDD(when)),getMM(getMMDD(when)),"Corpus Christi (Catholic Church in the United States)");

setEvent(NthDay(third,mon,jan,year),jan,"Martin Luther King Day");
setEvent(NthDay(third,mon,feb,year),feb,"President's Day");
setEvent(NthDay(first,sun,apr,year),apr,"Daylight Savings time begins");
setEvent(NthDay(first,mon,may,year),may,"May Day Bank Holiday (United Kingdom)");
setEvent(NthDay(third,sat,may,year),may,"Armed Forces Day");
setEvent(NthDay(second,sun,may,year),may,"Mother's Day");
setEvent(NthDay(last,mon,may,year),may,"Spring Bank Holiday (United Kingdom)");
setEvent(NthDay(last,mon,may,year),may,"Memorial Day");
setEvent(NthDay(third,sun,jun,year),jun,"Father's Day");
setEvent(NthDay(last,mon,aug,year),aug,"Late Summer Holiday (United Kingdom)");
setEvent(NthDay(first,mon,sep,year),sep,"Labor Day");
setEvent(NthDay(second,mon,oct,year),oct,"Columbus Day");
setEvent(NthDay(last,sun,oct,year),oct,"Daylight Savings Time ends");
setEvent(NthDay(fourth,thu,nov,year),nov,"Thanksgiving Day");

function showEvent(day,month) {
    var output = '';
    for(var i=0; i < eventIndex; i++) {
        if ((day == myEvent[i].day) && (month == myEvent[i].month))
            output += '[ ' + myEvent[i].what+' ] ';
    }
    return output;
}

function myObjectBubbleSort(arrayName,length) {
    for (var i=0; i<(length-1); i++)
        for (var j=i+1; j<length; j++)
            if (arrayName[j].value < arrayName[i].value) {
                var dummy = arrayName[i];
                arrayName[i] = arrayName[j];
                arrayName[j] = dummy;
            }
}

myObjectBubbleSort(myEvent,eventIndex);

function showAllEvents(year) {
    var output = '';
    for(var i=0; i < eventIndex; i++) {
        output += FullDate(myEvent[i].day,myEvent[i].month,year) + ' ' + myEvent[i].what+'<BR>';
    }
    return output;
}
function ValidDate(day,month,year) {
    if ( (LeapYear(year) && (day > daysofmonthLY[month])) ||
         (!LeapYear(year) && (day > daysofmonth[month])) )
        return false;
    else
        return true;
}

function ChosenDate(object) {
    year = object.year.value;
    month = object.month.options[object.month.selectedIndex].value;
    day = object.day.options[object.day.selectedIndex].value;

    if (!ValidDate(day-0,month-0,year-0)) {
        alert('You must enter a valid date');
        return false;
    }

    return true;
}
//--></SCRIPT>

<SCRIPT LANGUAGE="JavaScript"><!--
document.write('<SCRIPT SRC="data/who/birth' + months[month] + '.js"></SCRIPT>');
//--></SCRIPT>

</HEAD>

<BODY><FONT FACE="ARIAL,HELVETICA"><CENTER>

<SCRIPT LANGUAGE="JavaScript"><!--
document.write('<TABLE WIDTH=595 BORDER=0 CELLSPACING=0><TR><TD ALIGN="CENTER"><FONT FACE="ARIAL,HELVETICA">');

document.write('<H1>' + FullDate(day,month,year) + '<\/H1>');
document.write('<P>' + showEvent(day,month));
document.write('<BR>' + Child(DayOfWeek(day,month,year)) + '<P>');

document.write(HowOld(day,month,year,thisDay,thisMonth,thisYear));

var birthstone = birthstones[month];

document.write('<IMG SRC="data/birth/' + months[month] + '.gif" NAME="birthImage" WIDTH="100" HEIGHT="75" ALT="' + birthstone + '" ALIGN="LEFT">');
document.write(showBirthday(day));
document.write('<BR>Birthstone ' + birthstone + ' symbolizes ' + qualities[month]);

var starsign = StarSign(day,month), zodiac = starsigns[starsign], stardate = StarDate(day,month,year);
document.write('<BR CLEAR="ALL"><P><IMG SRC="data/zodiac/' + months[starsign] + '.gif" NAME="zodiacImage" WIDTH="83" HEIGHT="61" ALT="' + zodiac + '" ALIGN="RIGHT">');
document.write('<P>Zodiac star sign ' + zodiac + ' the ' + starsymbols[starsign] + '<BR>' + stardate);

var chineseyearrange = '', chineseyearname = '', chineseyear = Chinese(day,month,year);
document.write('<BR CLEAR="ALL"><P><IMG SRC="data/chinese/' + chineseyear.toLowerCase() + '.gif" NAME="chineseImage" WIDTH="94" HEIGHT="94" ALT="' + chineseyear + '" ALIGN="LEFT">');
document.write('<P><BR>Chinese year of the ' + chineseyear + chineseyearname + '<BR>' + chineseyearrange);

if (parent.location.href == window.location.href) {
    var dayOutput = '';
    for (var Days=1; Days <= 31; Days++) {
        if (Days == day) dayOutput += '<OPTION VALUE="' + padout(Days) + '" SELECTED>' + Days;
        else             dayOutput += '<OPTION VALUE="' + padout(Days) + '">' + Days;
    }

    var monthOutput = '';
    for (var Months=1; Months <=12; Months++) {
        if (Months == month) monthOutput += '<OPTION VALUE="' + padout(Months) + '" SELECTED>' + monthsofyear[Months];
        else                 monthOutput += '<OPTION VALUE="' + padout(Months) + '">' + monthsofyear[Months];
    }

    document.write('<BR CLEAR="ALL"><H2>Select your date of birth:<\/H2>');
    document.write('<FORM NAME="inputDateForm" ACTION="output.htm" onSubmit="return ChosenDate(document.inputDateForm);">');
    document.write(' Day: <SELECT NAME="day">' + dayOutput + '<\/SELECT>');
    document.write(' Month: <SELECT NAME="month">' + monthOutput + '<\/SELECT>');
    document.write(' Year: <INPUT TYPE="TEXT" NAME="year" SIZE="4" VALUE="' + year + '">');
    document.write(' <INPUT TYPE="SUBMIT" VALUE="Show"><\/FORM>');
}

document.write('<\/TD><TD ALIGN="CENTER" BGCOLOR="' + color + '"><FONT FACE="ARIAL,HELVETICA"><CENTER>');
ResetLotteryBalls();SelectLotteryBalls(ballstoselect);ShowLotteryBalls();
document.write('<\/TD><\/TR><\/TABLE>');
//--></SCRIPT>

</CENTER></FONT></BODY>
</HTML>

Return

Related items

JavaScript Y2K Issues

And now...The Weekly Update Script

The 24 Hour World

Extending "Born of the 4th of July"

Easter

The 3rd Saturday in November

Born on the 4th of July

The Chinese New Year

What sign are you?

Monday's child is full of grace

©2018 Martin Webb