Applet: UltraMenu v1.0
Author: Copyright (c) 1998, Robert Rugge
WWW   : http://www.infocalyptika.com/um_index.html
E-Mail: info@infocalyptika.com

---------------

Registration: UltraMenu is pseudo-freeware... That is, you can use it all you want,
	except that there will always be that little nag-link in the upper right 
	corner. So, how do you get rid of the nag-link you ask? EASY!!! You can 
	obtain a registration code which will take away the nag-link, simply by 
	E-Mailing me the address of the page you are using UltraMenu on. That's it.
	Its COMPLETELY FREE!! If you would like a copy sent to you on a diskette
	with printed documentation, you may do so by E-Mailing me and then sending
	a check for $5 for postage and the diskette.

Why Free?: Simple.  UltraMenu is provided to the public for 3 reasons, free of
	charge.
		a) I enjoyed programming it, and feel it is useful.
		b) To bring awareness of the Web Programming and Design services
		   of Infocalyptika (http://www.infocalyptika.com)
		c) In case you might want to contract Robert Rugge to write a 
		   custom version of UltraMenu, or any other software.

Disclaimer: UltraMenu has no warranty or guarantee of fitness of purpose, expressed
	or implied.  UltraMenu is provided as is, and any harm that may arise in
	your software or hardware because of it is NOT the responsibility of Robert
	Rugge (the author of UltraMenu).  If anything happens to your systems,
	someone else's, or the nuclear reactor that you somehow jury-rigged UM to
	blows up, its NOT MY PROBLEM.

Distribution: You can freely distribute UltraMenu under the following conditions -
		You don't charge any money for it.
		You don't alter the contents of the archive.
		All contents of the original archive (available at the WWW site)
			are present.
		You don't take credit for my work.
		You don't disassemble the Java byteCode or utilize any part of
			UltraMenu in another program.

How it works: If you don't understand how Java applets work within the context of web pages,
	it is unfortunately beyond me within this space to transfer that knowledge.  However, I
	have included a sample HTML file (UltraMenu.html) that provides a working example of
	UltraMenu in action, sans button icons.  (Note:  The sample HTML file also contains
	references to links which are not included in the archive.  These are merely there to
	illustrate their use, and your browser will most likely give you a 'not found' error
	when you click on the buttons created by the sample HTML.)

	Basically, to get UltraMenu up and running, you have to:
		a) Have an HTML source file that includes the appropriate applet tag (the class name
			of UltraMenu is TabMenu.class; see the sample HTML file for implimentation)
		b) Have a copy of TabMenu.class (the UltraMenu Java byteCode) in the appropriately
			directory (as referenced in the HTML file)
		c) Have any icons you wish to use for display on the buttons (GIFs or JPEGs)
		d) Have all the correct parameters present (see the section entitled Parameters)

Parameters:
	name			value
	----			-----
	numTabs			Number of Tabs present

	tabLabels		Comma delimited list of Tab names

	fontSize		Arial point size for text displayed

	buttonWidth		Width (in pixels) of the buttons

	numButtonsX		The number of buttons present for Tab X (where X is a number)

	labelButtonsX	Comma delimited list of Button names for Tab X (where X is a number)

					Note: In this list, the items refer to their respective buttons, GIFs,
					and Links.

					ie: The first item in the list will label the first button on Tab X

	gifButtonsX		Comma delimited list of GIF images for Tab X (where X is a number)

					Note: In this list, the items refer to their respective buttons, GIFs,
					and Links.

					Note2: The image doesn't necessarily have to be of GIF format, it
					could theoretically be of JPEG format, etc.  However, because most
					people will use the Transparency feature of GIF89a so overlay the
					image on the button, it is assumed you will be using GIFs.

					ie: The first item in the list will display the GIF (centered with
					transparency if available) over the first button on Tab X

	linkButtonsX	Comma delimited list of Links for Tab X (where X is a number)

					Note: In this list, the items refer to their respective buttons, GIFs,
					and Links.

					Note2: How these Links should be formed depends on the setting of the
					docRelative parameter.

					ie: The first item in the list will cause the first button on Tab X to
					jump to this Link when clicked.

	targetButtonsX	The Frame Target for all links for Tab X (where X is a number)
					"_self"      show in the current frame
					"_parent"    show in the parent frame
					"_top"       show in the top-most frame
					"_blank"     show in a new unnamed top-level window
					name         show in the frame referred to by name

	docRelative		If this is set to "true", then all the links described in each linkButtonsX
					will be RELATIVE to the current URL of the Applet HTML Page minus the file-
					name.  If this is set to "false", then all the links describe in each
					linkButtonsX must be fully formed URLS (ie: "http://www.infocalyptika.com")

	fontColor		This is the color of any text displayed within the applet (such as button
					and tab labels).  It should be used in the following format "red,green,blue"
					where red, green, and blue are whole numbers from 0 to 255.

					Note: This is a standard for describing 24bit color where 0 is black and 255
					is white.  Any paint application such as Adobe Photoshop can generate these
					numbers for you by inspecting a color.

					Note2: This parameter is not necessary.  If not included, its values will be
					automatically set to "0,0,0" black.

	tabColor		This is the color of the tabs within the applet.  It should be used in the 
					following format "red,green,blue" where red, green, and blue are whole 
					numbers from 0 to 255.

					Note: This is a standard for describing 24bit color where 0 is black and 255
					is white.  Any paint application such as Adobe Photoshop can generate these
					numbers for you by inspecting a color.
					
					Note2: This parameter is not necessary.  If not included, its values will be
					automatically set to "191,191,191" gray.

	backColor		This is the color of any space on the applet where there is not a tab, button,
					or background plate.  This should be set to a value to match the background
					color of your web page.  It should be used in the following format 
					"red,green,blue" where red, green, and blue are whole numbers from 0 to 255.

					Note: This is a standard for describing 24bit color where 0 is black and 255
					is white.  Any paint application such as Adobe Photoshop can generate these
					numbers for you by inspecting a color.
					
					Note2: This parameter is not necessary.  If not included, its values will be
					automatically set to "255,255,255" white.

	buttonColor		This is the color of any buttons within the applet.  It should be used in the
					following format "red,green,blue" where red, green, and blue are whole numbers
					from 0 to 255.

					Note: This is a standard for describing 24bit color where 0 is black and 255
					is white.  Any paint application such as Adobe Photoshop can generate these
					numbers for you by inspecting a color.
					
					Note2: This parameter is not necessary.  If not included, its values will be
					automatically set to "222,222,210" off-white.

	regCode			If you have received a registration code by email, it should be put following
					this parameter exactly as received, without any quotation marks at the beginning
					or end.

Limitations:
	Currently, if you have more Tabs (and their associated labels) that can fit on the screen
	with the width of the applet you've provided, they shifted under one another.  This only
	presents a problem if your applet is so small that it is smaller than the largest tab.  In
	this case, you will not be able to see your other tabs, unless the largest tab is also the
	last one present.

	Also, if you have more buttons than can fit on the screen with the width of the applet
	you've provided, they will be drawn offscreen.

	TabJumps will be added later.

	If one of your GIFs has the wrong filename, or is missing, the Applet will run through
	10,000 iterations looking for it, then load the Applet without it.  However, it will
	not inform you that it cannot be found.

	Right now docRelative only affects links, and not button icons.  Therefore, when you
	list the filenames of your button icons, they must be relative to the codebase of the
	applet.  This will be fixed in an update at a later time.

Precautions:
	When typing the comma delimited lists for params such as "tabLabels", there should be no
	extra spaces before or after each comma unless you want them to be displayed!

	If you are working with an unregistered version of UltraMenu on a computer that has dial-up
	networking installed on it and you change to the "UltraMenu" tab, you might notice your
	modem start to dial.  You can cancel your dial-up or not, its up to you, however the reason
	is simple, and you shouldn't be alarmed - When UltraMenu is unregistered, it tries to grab
	the UltraMenu logo from the Infocalyptika web site for display.  When the applet is installed
	in a web page, this is no problem and its a seemless operation.  However, if you aren't
	connected to the internet, Windows95/NT (I'm not sure about how Mac is setup) may attempt to
	connect to the internet to grab the logo.

Troubleshooting:
	ERROR: ArrayOutOfBoundsException 
	You may have more labels than tabs, or more labels than buttons in any of the parameters.  
	Check to make sure you have the right amount, and if it still gives you an exception, then 
	make sure you didn't type a comma instead of a period in for any filenames you might have 
	entered in the lists.

	ERROR: A blank applet with text that looks like "PARAM: Something something..."
	Hopefully the error will tell you exactly what is wrong, ie: "PARAM: labelButtons2 is missing.."
	In which case you have specified that there are to be 2 tabs, yet have not provided a list
	of labels for the buttons on that tab.  For other PARAM errors, please check with the list of
	Parameters at the top.  If you have specified the parameter in question, check to make sure
	that you have spelled the parameter name correctly.

	ERROR: A blank applet with text that looks like "PARAM: regCode is ..."
	If it says that the regCode is CORRUPT, then the CRC (cyclic redundency check) of the 
	registration code failed.  Try entering in your code again, or paste it directly from
	your registration E-Mail without quotation marks at the beginning or end.

	If it says that the regCode is INCORRECT, then either you have pirated someone's regCode,
	or you have incorrectly entered the code as a parameter.  Try entering in your code again,
	or paste it directly from your registration E-Mail without quotation marks at the beginning
	or end.

Contacting Infocalyptika:
	If you encounter any error which you feel are caused by the program, and not your fault,
	please contact the author (Robert Rugge) at his Infocalyptika E-Mail address.
	If you have questions, comments, suggestions, bugs, or wish to register UltraMenu and receive
	a regCode by either E-Mail or Snail Mail, send an E-Mail to the UltraMenu E-Mail address.

	Infocalyptika Web Site
	http://www.infocalyptika.com

	UltraMenu E-Mail Address
	info@infocalyptika.com

	Robert Rugge's E-Mail Address
	rrugge@infocalyptika.com

Copyright:
	The name UltraMenu, its Java byteCode, the UltraMenu source code, and the UltraMenu logo are
	all Copyright (c) 1998 by Robert Rugge.  The name Infocalyptika, the Infocalyptika logo, any
	text, graphic, or code on the Infocalyptika web site (www.infocalyptika.com), this text, and
	the archive this file was delivered in are Copyright (c) 1998 by Robert Rugge.  Java is a 
	trademark of Sun Microsystems.  Windows95 and WindowsNT are trademarks of Microsoft.  Photo-
	Shop is a trademark of Adobe Systems.