[[http://dynarch.com/mishoo/calendar.epl][Mishoo JSCalendar]], packaged for use by plugins, skins and add-ons.

---+ Summary of Contents
This module packages the [[http://dynarch.com/mishoo/calendar.epl][Mishoo JSCalendar]] Javascript in a form suitable for use with TWiki.

---+ Detailed Documentation
Read [[%ATTACHURL%/doc/html/reference.html][the Mishoo documentation]] or [[%ATTACHURL%][visit the demo page]].

This package also includes a small Perl module to make using the calendar easier from TWiki plugins. This module includes the function:
<verbatim>
addHEAD( $setup )
</verbatim>
that can automatically add the required headers to the page being rendered. =$setup= is the name of the calendar setup module; it can either be ommitted, in which case the method described in the Mishoo documentation can be used to create calendars, or it can be ='twiki'=, in which case a helper function is added that simplifies using calendars to set a value in a text field. For example,
<verbatim>
	 # Add styles and javascript for the calendar
	 require TWiki::Contrib::JSCalendarContrib;
	 if( $@ || !$TWiki::Contrib::JSCalendarContrib::VERSION ||
		  $TWiki::Contrib::JSCalendarContrib::VERSION < 0.961 ) {
		  TWiki::Func::writeWarning('JSCalendarContrib >=0.961 not found '.$@);
	 } else {
		  TWiki::Contrib::JSCalendarContrib::addHEAD( 'twiki' );
	 }

	 $html .= CGI::textfield(
		  { name => 'datefield',
			 id => "id_datefield" });
	 $html .=
			 CGI::image_button(
							 -name => 'datefield_calendar',
							 -onclick =>
								  "return showCalendar('id_datefield','%e %B %Y')",
							 -src=> TWiki::Func::getPubUrlPath() . '/' .
								TWiki::Func::getTwikiWebname() .
									 '/JSCalendarContrib/img.gif',
							 -alt => 'Calendar',
							 -align => 'MIDDLE' );
				}
		  }
</verbatim>
The first parameter to showCalendar is the id of the textfield. See the Mishoo documentation for details of the '$e %B %Y' parameter.

Note that the header will only be added once, regardless of the number of times that addHEAD is called.

=addHEAD= can be called from =commonTagsHandler= for adding the header to all pages, or to =beforeEditHandler= just for edit pages etc.

---++ Settings
	* Name of the perl package
		* Set STUB = TWiki::Contrib::JSCalendarContrib

---++ Installation Instructions

	* Download the ZIP file from the Plugin web (see below)
	* Unzip ==%TOPIC%.zip== in your twiki installation directory. Content:
	  | *File:* | *Description:* |
	| ==data/TWiki/JSCalendarContrib.txt== |  |
	| ==lib/TWiki/Contrib/JSCalendarContrib/build.pl== |  |
	| ==lib/TWiki/Contrib/JSCalendarContrib.pm== |  |
	| ==pub/TWiki/JSCalendarContrib/twiki.js== |  |
	| ==pub/TWiki/JSCalendarContrib/bugtest-hidden-selects.html== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-blue2.css== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-blue.css== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-brown.css== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-green.css== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar.js== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar.php== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-setup.js== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-setup_stripped.js== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar_stripped.js== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-system.css== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-tas.css== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-win2k-1.css== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-win2k-2.css== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-win2k-cold-1.css== |  |
	| ==pub/TWiki/JSCalendarContrib/calendar-win2k-cold-2.css== |  |
	| ==pub/TWiki/JSCalendarContrib/ChangeLog== |  |
	| ==pub/TWiki/JSCalendarContrib/dayinfo.html== |  |
	| ==pub/TWiki/JSCalendarContrib/doc/html/field-button.jpg== |  |
	| ==pub/TWiki/JSCalendarContrib/doc/html/reference.css== |  |
	| ==pub/TWiki/JSCalendarContrib/doc/html/reference.html== |  |
	| ==pub/TWiki/JSCalendarContrib/doc/html/reference-Z-S.css== |  |
	| ==pub/TWiki/JSCalendarContrib/doc/reference.pdf== |  |
	| ==pub/TWiki/JSCalendarContrib/img.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/index.html== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-af.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-al.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-bg.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-big5.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-big5-utf8.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-br.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-ca.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-cs-utf8.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-cs-win.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-da.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-de.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-du.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-el.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-en.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-es.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-fi.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-fr.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-he-utf8.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-hr.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-hr-utf8.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-hu.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-it.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-jp.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-ko.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-ko-utf8.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-lt.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-lt-utf8.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-lv.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-nl.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-no.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-pl.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-pl-utf8.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-pt.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-ro.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-ru_win_.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-ru.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-si.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-sk.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-sp.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-sv.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-tr.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/calendar-zh.js== |  |
	| ==pub/TWiki/JSCalendarContrib/lang/cn_utf8.js== |  |
	| ==pub/TWiki/JSCalendarContrib/skins/aqua/active-bg.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/skins/aqua/dark-bg.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/skins/aqua/hover-bg.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/skins/aqua/menuarrow.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/skins/aqua/normal-bg.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/skins/aqua/rowhover-bg.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/skins/aqua/status-bg.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/skins/aqua/theme.css== |  |
	| ==pub/TWiki/JSCalendarContrib/skins/aqua/title-bg.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/skins/aqua/today-bg.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/menuarrow.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/menuarrow2.gif== |  |
	| ==pub/TWiki/JSCalendarContrib/multiple-dates.html== |  |
	| ==pub/TWiki/JSCalendarContrib/README== |  |
	| ==pub/TWiki/JSCalendarContrib/release-notes.html== |  |
	| ==pub/TWiki/JSCalendarContrib/simple-1.html== |  |
	| ==pub/TWiki/JSCalendarContrib/simple-2.html== |  |
	| ==pub/TWiki/JSCalendarContrib/simple-3.html== |  |
	| ==pub/TWiki/JSCalendarContrib/test.php== |  |
	| ==pub/TWiki/JSCalendarContrib/test-position.html== |  |

	* Make sure that all files are readable by the web server user

---++ Contrib Info

|  Author: | TWiki:Main/CrawfordCurrie http://www.c-dot.co.uk |
|  Version: | 8354 of the Mishoo calendar |
|  Copyright &copy;: | See [[%ATTACHURL%/doc/html/reference.html][the Mishoo documentation]] |
|  License: | GNU LGPL |
|  Dependencies: | None |
|  27/12/05 | updated to calendar version 1.0; set style for Safari to win2k-1|
|  14/08/04 | Separated out from SharedCode module |
|  Home: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC% |
|  Feedback: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev |

__Related Topics:__ %TWIKIWEB%.TWikiPreferences

-- TWiki:Main/CrawfordCurrie - 17:22:04 17 January 2006
