The author and Lithic.com assume no liability for the use of the Lithic Calendar applet.  It is distributed without any warrantee of any type.

This applet and the accompanying images and documentation may not be distributed for profit or on CD without the express written consent of the copyright holder. The applet, images, and documentation are Copyright 1998-2002 John Keogh, all rights reserved.

For updates go to:
http://www.lithic.com/pages/lithiccalendar.html

This readme covers the following topics:
The Applet Tag
Parameters
License
Help/Consulting


The Lithic Calendar Applet tag:

The easiest way to start to work with this applet is to take all the files associated with this distribution (all the zipped up files), unzip them, then upload them to a server and point your browser at the calendar.html file you just uploaded to your server.  If you have any problems, one common reason is that the class files weren't uploaded as binary files (a lot of FTP (file upload) software takes care of this automatically, so don't worry about it unless you have a problem, if you do, look for binary mode in the FTP software help file).

If you are already pretty comfortable with applets, you can copy the applet tag and parameters below into your html files. You can modify the parameters (see parameters), but if you are new to HTML and Java, you may want to just leave them as they are. The most likely thing that you are going to change will be the width and height.  You should read the parameters documentation prior to doing this, to see how the width and height of the calendar is related to the insets, imagewidth, imageheight, calendarwidth, and calendarheight (or you can do it without reading it, it's pretty easy to figure out).

An example HTML file, calendar.html, is included for demonstration.

<APPLET CODE="lithiccalendar20.class" ARCHIVE="lithiccalendar20.jar" width=324 height=388>

<PARAM NAME=insets VALUE="2">

<PARAM NAME=Sun VALUE="Sun">
<PARAM NAME=Mon VALUE="Mon">
<PARAM NAME=Tue VALUE="Tue">
<PARAM NAME=Wed VALUE="Wed">
<PARAM NAME=Thu VALUE="Thu">
<PARAM NAME=Fri VALUE="Fri">
<PARAM NAME=Sat VALUE="Sat">

<PARAM NAME=January VALUE="January">
<PARAM NAME=February VALUE="February">
<PARAM NAME=March VALUE="March">
<PARAM NAME=April VALUE="April">
<PARAM NAME=May VALUE="May">
<PARAM NAME=June VALUE="June">
<PARAM NAME=July VALUE="July">
<PARAM NAME=August VALUE="August">
<PARAM NAME=September VALUE="September">
<PARAM NAME=October VALUE="October">
<PARAM NAME=November VALUE="November">
<PARAM NAME=December VALUE="December">

<PARAM NAME=JanuaryImage VALUE="january.jpg">
<PARAM NAME=FebruaryImage VALUE="february.jpg">
<PARAM NAME=MarchImage VALUE="march.jpg">
<PARAM NAME=AprilImage VALUE="april.jpg">
<PARAM NAME=MayImage VALUE="may.jpg">
<PARAM NAME=JuneImage VALUE="june.jpg">
<PARAM NAME=JulyImage VALUE="july.jpg">
<PARAM NAME=AugustImage VALUE="august.jpg">
<PARAM NAME=SeptemberImage VALUE="september.jpg">
<PARAM NAME=OctoberImage VALUE="october.jpg">
<PARAM NAME=NovemberImage VALUE="november.jpg">
<PARAM NAME=DecemberImage VALUE="december.jpg">

<PARAM NAME=About VALUE="About Calendar">
<PARAM NAME=Next VALUE="Next Month">
<PARAM NAME=Previous VALUE="Previous Month">
<PARAM NAME=DrawCalendar VALUE="Draw Calendar">
<PARAM NAME=loading VALUE="Loading Image...">

<PARAM NAME=weekstartsonmonday VALUE="no">
<PARAM NAME=wrapyear VALUE=".">

<PARAM NAME=calendarfont VALUE="TimesRoman">
<PARAM NAME=calendarpoint VALUE="12">
<PARAM NAME=calendarstyle VALUE="plain">

<PARAM NAME=headerfont VALUE="Arial">
<PARAM NAME=headerpoint VALUE="14">
<PARAM NAME=headerstyle VALUE="italic">

<PARAM NAME=imagewidth VALUE="320">
<PARAM NAME=imageheight VALUE="180">
<PARAM NAME=calendarwidth VALUE="320">
<PARAM NAME=calendarheight VALUE="180">

<PARAM NAME=calendarimage VALUE="back.jpg">
<PARAM NAME=tilecalendarbackground VALUE="no">
<PARAM NAME=backcolor VALUE="0337EC">
<PARAM NAME=calendarback VALUE="A0A0A0">
<PARAM NAME=text VALUE="000000">
<PARAM NAME=today VALUE="FF0000">
<PARAM NAME=lines VALUE="909090">
<PARAM NAME=bright VALUE="EEEEEE">
<PARAM NAME=dark VALUE="505050">

<PARAM NAME=buttonheight VALUE="20">
<PARAM NAME=buttonside VALUE="bottom">
<PARAM NAME=buttoncolor VALUE="CFCFBF">

</APPLET>

When you upload this or any applet, you need to use binary mode rather than ASCII mode.  Binary mode is the default mode for a lot of FTP clients, so generally just upload as normal.  The parameters are discussed below.


Parameters:

There are twelve types of parameters, each of which is discussed separately below:  insets, days of the week, months, images, button text, loading images text, week start day, wrapping, font, size, colors and images for rendering the calendar, and size of buttons. The applet tag itself, though not a parameter, is also discussed here.
The only reason to read this section is if you intend to customize the applet.  If you are using it as you downloaded it, you can skip this section.

applet tag
<APPLET CODE="lithiccalendar20.class" ARCHIVE="lithiccalendar20.jar" width=324 height=388>
This indicates that the main class file for this applet is lithiccalendar20.class (all class files need to be uploaded to the same directory).  The archive indicates to the browser that there is a compressed version of the applet available.  The jar file should be uploaded to the same directory as all the class files.  The width and height are the amount of space in pixels that the applet will take up on the page.  If you change the insets, imagewidth, imageheight, calendarwidth, or calendarheight, you will need to change the width and/or height.  The way to figure out the proper width and height to use (other than just trying values until it looks right) follows.

The height of the applet is the imageheight, plus the calendarheight, plus the buttonsheight (discussed below), plus 4 times the insets (the insets appear above the image, between the image and the calendar, and above and below the buttons).  The width of the applet is the calendarwidth plus 2 times the insets (the insets are on each side of the calendar).

Two common problems people have
1. If you store the class files in a separate directory from the html file that you want the applet to appear in, you need to use a codebase modifier.  For example, if you store the class files in a directory called applets and you have the html in another directory, you need to add the following attribute to the applet tag:
CODEBASE="/applets".  You should always put the jar file in the same directory as the class files.
2. If you get some weird error when the applet loads, if often means that the class files or jar files were uploaded using ascii mode.  Check you FTP programs documentation about binary mode and make sure that you are uploading the class files and jar file in binary mode.  You need not worry about this unless you have a problem, as many FTP clients will automatically select the correct mode in which to upload class files.

insets
<PARAM NAME=insets VALUE="2">
This indicates the amount of space around the calendar, image, and buttons.  If you change this, you should read the discussion above of how this impacts the width and height of the applet.

days of the week
<PARAM NAME=Sun VALUE="Sun">
<PARAM NAME=Mon VALUE="Mon">
<PARAM NAME=Tue VALUE="Tue">
<PARAM NAME=Wed VALUE="Wed">
<PARAM NAME=Thu VALUE="Thu">
<PARAM NAME=Fri VALUE="Fri">
<PARAM NAME=Sat VALUE="Sat">
These parameters are included for internationalization.  If you are making a non-English calendar, abbreviate the week day names for your language and substitute them for the abbreviations in the values of the above parameters. The space available is generally enough for three or four letters.

months
<PARAM NAME=January VALUE="January">
<PARAM NAME=February VALUE="February">
<PARAM NAME=March VALUE="March">
<PARAM NAME=April VALUE="April">
<PARAM NAME=May VALUE="May">
<PARAM NAME=June VALUE="June">
<PARAM NAME=July VALUE="July">
<PARAM NAME=August VALUE="August">
<PARAM NAME=September VALUE="September">
<PARAM NAME=October VALUE="October">
<PARAM NAME=November VALUE="November">
<PARAM NAME=December VALUE="December">
These parameters are included for internationalization.  If you are making a non-English calendar, substitute names of the months for your language for the values for these parameters.

images
<PARAM NAME=JanuaryImage VALUE="january.jpg">
<PARAM NAME=FebruaryImage VALUE="february.jpg">
<PARAM NAME=MarchImage VALUE="march.jpg">
<PARAM NAME=AprilImage VALUE="april.jpg">
<PARAM NAME=MayImage VALUE="may.jpg">
<PARAM NAME=JuneImage VALUE="june.jpg">
<PARAM NAME=JulyImage VALUE="july.jpg">
<PARAM NAME=AugustImage VALUE="august.jpg">
<PARAM NAME=SeptemberImage VALUE="september.jpg">
<PARAM NAME=OctoberImage VALUE="october.jpg">
<PARAM NAME=NovemberImage VALUE="november.jpg">
<PARAM NAME=DecemberImage VALUE="december.jpg">
These are the names of the images that will be loaded for the corresponding month.  The images must be in the codebase (if you upload everything to the same directory, and do not change the applet tag, that is the codebase).  You can change them, but they should be a file name, do not use a URL.  To ensure reliable loading, the file sizes of these images should be as small as possible.

button text
<PARAM NAME=About VALUE="About">
<PARAM NAME=Next VALUE="Next">
<PARAM NAME=Previous VALUE="Previous">
<PARAM NAME=DrawCalendar VALUE="Draw Calendar">
This is what the buttons will display.  If you make a mistake in these parameters, the button will display the default settings.  The About and DrawCalendar are alternate values for the About button.

loading images text
<PARAM NAME=loading VALUE="Loading Image...">
This is the text that will be displayed when an image is loading.

week start day
<PARAM NAME=weekstartsonmonday VALUE="no">
Most Europeans start the week on Monday, so they would set this to yes.  Americans start the week on Sunday, so leave it no.  Everybody else, set appropriately.

wrapping
<PARAM NAME=wrapyear VALUE=".">
If you want to have the calendar show a given year, set this parameter to that year.  For example, to show a calendar of 1999, set this to 1999.  The initial month will be the current month, but the year will be the year indicated in wrap.  When the user goes forward from December or back from January, the calendar will wrap to December or January of the year indicated in the wrap parameter. If you use wrapping, you should rename the current button to indicate that it is the initial month, rather than the current month.

fonts
<PARAM NAME=calendarfont VALUE="TimesRoman">
<PARAM NAME=calendarpoint VALUE="12">
<PARAM NAME=calendarstyle VALUE="plain">
<PARAM NAME=headerfont VALUE="Arial">
<PARAM NAME=headerpoint VALUE="14">
<PARAM NAME=headerstyle VALUE="italic">
These let you set the font for the header (month and year), and calendar (days).  The permissible values for style are plain, bold, italic, and bolditalic (case sensitive).  If the font you refer to is not available on the viewing system, it will substitute TimesRoman 12 point plain. You should try to use common fonts, for example:
Arial
TimesRoman
Dialog

sizes
<PARAM NAME=imagewidth VALUE="320">
<PARAM NAME=imageheight VALUE="180">
<PARAM NAME=calendarwidth VALUE="320">
<PARAM NAME=calendarheight VALUE="180">
These are the size of the image that appears above the calendar and the size of the calendar. All of the images used should be the same size, and they should match the calendar in terms of width.  One common problem that people have is to specify the image width and height, then use images that are a different width and/or height.  Be sure that the imagewidth and imageheight match the actual height and width of you image.

These two values plus the insets are the size of the applet.  To see the relationship:
The height of the applet is the imageheight, plus the calendarheight, plus the buttonsheight (discussed below), plus 4 times the insets (the insets appear above the image, between the image and the calendar, and above and below the buttons).
The width of the applet is the calendarwidth plus 2 times the insets (the insets are on each side of the calendar).

colors and image for rendering the calendar
<PARAM NAME=calendarimage VALUE="back.jpg">
<PARAM NAME=tilecalendarbackground VALUE="no">
<PARAM NAME=backcolor VALUE="0337EC">
<PARAM NAME=calendarback VALUE="A0A0A0">
<PARAM NAME=text VALUE="000000">
<PARAM NAME=today VALUE="FF0000">
<PARAM NAME=lines VALUE="909090">
<PARAM NAME=bright VALUE="EEEEEE">
<PARAM NAME=dark VALUE="505050">
The calendarimage is used if there is a background image.  If there is no background image, use a "." as the value.  If there is an image, you can tile it (if the image is too small, it will repeat itself to fill up the available space), by setting the tilecalendarbackground value to "yes", otherwise set it to "no".  If you use a background image, the file size of the background image should be as small as possible, as the calendar will not render completely until it is downloaded.  The backcolor is the color of the applet background.   The calendarback is the color of the calendar background.  The text parameter is  used to set the text color.  The today parameter draws the current day in the indicated color.  The lines, bright, and dark parameters are used to draw the lines on the calendar.

The colors must be in hex format, as shown.  If you need some help with this format, try the hex color calculator (for Windows 3.1/95) located at (direct link):
http://www.lithic.com/software/color.zip

size of buttons
<PARAM NAME=buttonheight VALUE="20">
This indicates the size of the buttons that appear towards the bottom of the applet.  To arrive at the correct height for the applet, this needs to be added to the size of the calendar, the images and the insets.  The formula is discussed above under the sizes topic of the parameters section (this section), and it is also discussed under the applet tag part of this section.
 


License:

Lithic Calendar is copyright (C) 1998-2002, by John Keogh

The author, John Keogh is willing to license the software to you only under the following conditions.  Please read them carefully prior to installing or using the software.

Use

This calendar can be used freely on both personal and commercial websites.  The original unmodified zip file (containing the documentation, images, and binaries) can be redistributed if it is not modified.  You may use the images distributed with the calendar for your calendar, or you can use the your own images.  The images cannot be used for any other purposes without express permission from the copyright holder.  You can change the parameters as shown in the parameters section of this documentation, but you cannot modify or create derivative works with the binaries (class files and/or jar files) distributed in this distribution.

Intellectual Property

Lithic Calendar is the intellectual property of the author.  You may not reverse engineer, decompile, modify, or translate the software in whole or in part.  You also may not modify any portion of the distribution package in whole or in part.

No Warranty

Lithic Calendar software is provided "as is". In no event shall I, the author, nor my associates or company be liable for any consequential, special, incidental or indirect damages of any kind arising out of the delivery, installation, performance or use of this software. This software has been tested but there is no warranty that the software is error free.  If this is not acceptable, do not use the software.

No Support

I, the author, my company and associates are under no obligation to support this software, or to provide updates or error corrections. The user of the software shall have the sole responsibility of adequately protecting and backing up his/her data and systems.

Entire Agreement

This license is the entire agreement between the author and the end user of the software.  No modification shall be binding unless made in writing and signed by an authorized representative of both parties.
 

Help/Consulting

For General questions, contact John Keogh at keo@lithic.com.  Consulting, help with the parameters, customizing, and programming are available for a fee.  If you are interested in purchasing services, email consulting@lithic.com.