Plug-in architecture for the XP skin.
############################################################################################

This folder contains the plug-ins available to the XP skin.

Each plug-in should be contained in it's own folder. The name of the folder is what
will appear as the plug-in name in the skin user interface.

The structure of a plug-in folder should mimic that of the Example plug-in.

Files and folders:

	res\				The contents of this folder will be copied to the
					res directory of the album. It will be placed in a sub-
					folder with the same name as the plug-in.

	styles\				This folder has the same structure as the styles folder
					in the actual skin. There can be CSS files with the same
					name as the CSS files in the skin and each style can have
					a sub folder with style specific files. (They will be 
					copied to the res/pluginname folder.

	texts\				As with the actual skin - there can be translations of a
					plug-in. If no file for the current language is found the
					plug-in will revert to the default file - texts.properties.

					There are tree language keys that are mandatory (if you
					decide to add your own panels that is).
						panelTitle	Name of panel on all pages
						panelIndexTitle Name of panel on index page
						panelSlideTitle	Name of panel on slide page
						
					To use the language files from within your templates you
					have two options. You can use the supplied function:
					
						String getText(String key)
					
					If the supplied key isn't found in your text files
					this function will return the key in its place.
						
						Example:
							<%=getText("examplePluginText")%>
					
					If you want more control you can write a statement like:

						<%=texts.getString("examplePluginText")%>

					Note that this method will raise an exeption if the requested
					key isn't found in the text files. It is up to you to catch
					that exception.

	onload.bsh			If you want to provide a UI for control of variables used in
					the skin.

	init.bsh			If you want some code to be executed before the index and
					slide pages are generated you should put it in this file.

	javascript.js			If you want some javascript code to be executed on all pages
					you should put it in this file.

	javascriptIndex.js		If you want some javascript code to be executed on all index
					pages you should put it in this file.

	javascriptSlide.js		If you want some javascript code to be executed on all slide
					pages you should put it in this file.
					
	javascriptOnLoad.htt		This template can contain javascript that will be executed 
					after index and slide pages has loaded completely. 
	
	javascriptOnLoadIndex.htt	Same as javascriptOnLoad.htt but only for index pages.
	
	javascriptOnLoadSlide.htt	Same as javascriptOnLoad.htt but only for slide pages.

	panel.htt			If you want to create a panel that is shown on both index and
					slide pages you should create this file and put the contents 
					of the panel here. 
					Note: This file should only contain the contents of the panel.
					The frame along with it's folding mechanism is created by the
					skin.
					
					The panel will get its title by looking upp the key panelTitle
					in the text.properties files.

	panelIndex.htt			Same as panel.htt but the panel is only created on index pages.
					This panel will get its title by looking upp the key 
					panelIndexTitle	in the text.properties files.

	panelSlide.htt			Same as panel.htt but the panel is only created on slide pages.
					This panel will get its title by looking upp the key 
					panelSlideTitle	in the text.properties files.

	index_<name>.htt		Templates with names starting with "index_" will be parsed once 
					for every index template and will result in html files with the 
					same name as the template without the "index_" part. The files
					will be placed in the current output directory.

	slide_<name>.htt		Templates with names starting with "slide_" will be parsed once 
					for every slide template and will result in html files in the
					slide directory of the current output directory. The files will 
					be named: <image name>_<template name>.<page extension>
				

	once_<name>.htt			Templates with names starting with "once_" will be parsed once 
					and will result in html files with the same name as the template
					but without the "once_" part. The files will be placed in the
					root output directory.

	panelActivities.htt		The contents of this file will be added to the activities panels
					on both the index and slide pages.

	panelActivitiesIndex.htt	The contents of this file will be added to the activities panel
					on the index pages.

	panelActivitiesSlide.htt	The contents of this file will be added to the activities panel
					on the slide pages.

	panelInformation.htt		The contents of this file will be added to the information panels
					on both the index and slide pages.

	panelInformationIndex.htt	The contents of this file will be added to the information panel
					on the index pages.

	panelInformationSlide.htt	The contents of this file will be added to the information panel
					on the slide pages.

	rowiterator.htt			The contents of this file will be parsed inside the rowiterator
					statement on index.htt.

	coliterator.htt			The contents of this file will be parsed inside the coliterator
					statement on index.htt.

	head.htt			The contents of this file will be parsed inside the <HEAD> element
					on both index and slide pages.

	headIndex.htt			The contents of this file will be parsed inside the <HEAD> element
					on index pages. You can use <ja:rowiterator> and <ja:coliterator>
					tags to iterate over all data.

	headSlide.htt			The contents of this file will be parsed inside the <HEAD> element
					on slide pages.
					
	slideReplacement.htt		The contents of this file will be parsed and replace the actual image
					tag on the slide pages. If the skin is set to link to originals the
					link will also be replace by the contents of this template.
					


Note:

	In all of the above mentioned templates (*.htt) you can use the standard scripting variables, objects
	and functions. In templates called from index.htt you can also use the standard <ja:rowiterator> and
	<ja:coliterator> tags in exactly the same way as in a standard template.
	