Your IP : 216.73.216.168


Current Path : /home/poliximo/www/da45a/
Upload File :
Current File : /home/poliximo/www/da45a/includes.tar

framework.php000064400000004511152177724010007261 0ustar00<?php
/**
* @version		$Id: framework.php 22952 2012-03-27 00:40:16Z dextercowley $
* @package		Joomla
* @copyright	Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

/*
 * Joomla! system checks
 */

@set_magic_quotes_runtime( 0 );
@ini_set('zend.ze1_compatibility_mode', '0');

/*
 * Installation check, and check on removal of the install directory.
 */
if (!file_exists( JPATH_CONFIGURATION . DS . 'configuration.php' ) || (filesize( JPATH_CONFIGURATION . DS . 'configuration.php' ) < 10) || file_exists( JPATH_INSTALLATION . DS . 'index.php' )) {
	if( file_exists( JPATH_INSTALLATION . DS . 'index.php' ) ) {
		header( 'Location: installation/index.php' );
		exit();
	} else {
		echo 'No configuration file found and no installation code available. Exiting...';
		exit();
	}
}


/*
 * Joomla! system startup
 */

// System includes
require_once( JPATH_LIBRARIES		.DS.'joomla'.DS.'import.php');

// Pre-Load configuration
require_once( JPATH_CONFIGURATION	.DS.'configuration.php' );

// System configuration
$CONFIG = new JConfig();

if (@$CONFIG->error_reporting === 0) {
	error_reporting( 0 );
} else if (@$CONFIG->error_reporting > 0) {
	error_reporting( $CONFIG->error_reporting );
	ini_set( 'display_errors', 1 );
}

define( 'JDEBUG', $CONFIG->debug );

unset( $CONFIG );

/*
 * Joomla! framework loading
 */

// Include object abstract class
require_once(JPATH_SITE.DS.'libraries'.DS.'joomla'.DS.'utilities'.DS.'compat'.DS.'compat.php');

// System profiler
if (JDEBUG) {
	jimport( 'joomla.error.profiler' );
	$_PROFILER =& JProfiler::getInstance( 'Application' );
}

// Joomla! library imports;
jimport( 'joomla.application.menu' );
jimport( 'joomla.user.user');
jimport( 'joomla.environment.uri' );
jimport( 'joomla.html.html' );
jimport( 'joomla.utilities.utility' );
jimport( 'joomla.event.event');
jimport( 'joomla.event.dispatcher');
jimport( 'joomla.language.language');
jimport( 'joomla.utilities.string' );
?>
defines.php000064400000002377152177724010006711 0ustar00<?php
/**
* @version		$Id: defines.php 14401 2010-01-26 14:10:00Z louis $
* @package		Joomla
* @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

/**
* Joomla! Application define
*/

//Global definitions
//Joomla framework path definitions
$parts = explode( DS, JPATH_BASE );

//Defines
define( 'JPATH_ROOT',			implode( DS, $parts ) );

define( 'JPATH_SITE',			JPATH_ROOT );
define( 'JPATH_CONFIGURATION', 	JPATH_ROOT );
define( 'JPATH_ADMINISTRATOR', 	JPATH_ROOT.DS.'administrator' );
define( 'JPATH_XMLRPC', 		JPATH_ROOT.DS.'xmlrpc' );
define( 'JPATH_LIBRARIES',	 	JPATH_ROOT.DS.'libraries' );
define( 'JPATH_PLUGINS',		JPATH_ROOT.DS.'plugins'   );
define( 'JPATH_INSTALLATION',	JPATH_ROOT.DS.'installation' );
define( 'JPATH_THEMES'	   ,	JPATH_BASE.DS.'templates' );
define( 'JPATH_CACHE',			JPATH_BASE.DS.'cache');index.html000064400000000057152177724010006551 0ustar00<html>
<body bgcolor="#FFFFFF">
</body>
</html>database.mysqli.php000064400000001150152200041010010314 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: database.mysqli.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 * @deprecated	As of version 1.5
 */

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.database.database' );
jimport( 'joomla.database.database.mysqli' );
/**
 * @package		Joomla
 * @deprecated As of version 1.5
 */
class database extends JDatabase {
	function __construct ($host='localhost', $user, $pass, $db='', $table_prefix='', $offline = true) {
		parent::__construct( 'mysqli', $host, $user, $pass, $db, $table_prefix );
	}
}
?>mamboxml.php000064400000000330152200041010007046 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: mamboxml.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__) . '/../libraries/joomla/html/parameter.php' );application.php000064400000020616152200041010007546 0ustar00<?php
/**
* @version		$Id: application.php 14401 2010-01-26 14:10:00Z louis $
* @package		Joomla
* @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport('joomla.application.component.helper');

/**
* Joomla! Application class
*
* Provide many supporting API functions
*
* @package		Joomla
* @final
*/
class JSite extends JApplication
{
	/**
	* Class constructor
	*
	* @access protected
	* @param	array An optional associative array of configuration settings.
	* Recognized key values include 'clientId' (this list is not meant to be comprehensive).
	*/
	function __construct($config = array())
	{
		$config['clientId'] = 0;
		parent::__construct($config);
	}

	/**
	* Initialise the application.
	*
	* @access public
	*/
	function initialise( $options = array())
	{
		// if a language was specified it has priority
		// otherwise use user or default language settings
		if (empty($options['language']))
		{
			$user = & JFactory::getUser();
			$lang	= $user->getParam( 'language' );

			// Make sure that the user's language exists
			if ( $lang && JLanguage::exists($lang) ) {
				$options['language'] = $lang;
			} else {
				$params =  JComponentHelper::getParams('com_languages');
				$client	=& JApplicationHelper::getClientInfo($this->getClientId());
				$options['language'] = $params->get($client->name, 'en-GB');
			}

		}

		// One last check to make sure we have something
		if ( ! JLanguage::exists($options['language']) ) {
			$options['language'] = 'en-GB';
		}

		parent::initialise($options);
	}

	/**
	* Route the application
	*
	* @access public
	*/
	function route() {
		parent::route();
	}

	/**
	* Dispatch the application
	*
	* @access public
	*/
	function dispatch($component)
	{
		$document	=& JFactory::getDocument();
		$user		=& JFactory::getUser();
		$router     =& $this->getRouter();
		$params     =& $this->getParams();

		switch($document->getType())
		{
			case 'html':
			{
				//set metadata
				$document->setMetaData( 'keywords', $this->getCfg('MetaKeys') );

				if ( $user->get('id') ) {
					$document->addScript( JURI::root(true).'/includes/js/joomla.javascript.js');
				}

				if($router->getMode() == JROUTER_MODE_SEF) {
					$document->setBase(JURI::current());
				}
			} break;

			case 'feed':
			{
				$document->setBase(JURI::current());
			} break;

			default: break;
		}


		$document->setTitle( $params->get('page_title') );
		$document->setDescription( $params->get('page_description') );

		$contents = JComponentHelper::renderComponent($component);
		$document->setBuffer( $contents, 'component');
	}

	/**
	* Display the application.
	*
	* @access public
	*/
	function render()
	{
		$document =& JFactory::getDocument();
		$user     =& JFactory::getUser();

		// get the format to render
		$format = $document->getType();

		switch($format)
		{
			case 'feed' :
			{
				$params = array();
			} break;

			case 'html' :
			default     :
			{
				$template	= $this->getTemplate();
				$file 		= JRequest::getCmd('tmpl', 'index');

				if ($this->getCfg('offline') && $user->get('gid') < '23' ) {
					$file = 'offline';
				}
				if (!is_dir( JPATH_THEMES.DS.$template ) && !$this->getCfg('offline')) {
					$file = 'component';
				}
				$params = array(
					'template' 	=> $template,
					'file'		=> $file.'.php',
					'directory'	=> JPATH_THEMES
				);
			} break;
 		}

		$data = $document->render( $this->getCfg('caching'), $params);
		JResponse::setBody($data);
	}

   /**
	* Login authentication function
	*
	* @param	array 	Array( 'username' => string, 'password' => string )
	* @param	array 	Array( 'remember' => boolean )
	* @access public
	* @see JApplication::login
	*/
	function login($credentials, $options = array())
	{
		 //Set the application login entry point
		 if(!array_key_exists('entry_url', $options)) {
			 $options['entry_url'] = JURI::base().'index.php?option=com_user&task=login';
		 }

		return parent::login($credentials, $options);
	}

	/**
	* Check if the user can access the application
	*
	* @access public
	*/
	function authorize($itemid)
	{
		$menus	=& JSite::getMenu();
		$user	=& JFactory::getUser();
		$aid	= $user->get('aid');

		if(!$menus->authorize($itemid, $aid))
		{
			if ( ! $aid )
			{
				// Redirect to login
				$uri		= JFactory::getURI();
				$return		= $uri->toString();

				$url  = 'index.php?option=com_user&view=login';
				$url .= '&return='.base64_encode($return);;

				//$url	= JRoute::_($url, false);
				$this->redirect($url, JText::_('You must login first') );
			}
			else
			{
				JError::raiseError( 403, JText::_('ALERTNOTAUTH') );
			}
		}
	}

	/**
	 * Get the appliaction parameters
	 *
	 * @param	string	The component option
	 * @return	object	The parameters object
	 * @since	1.5
	 */
	function &getParams($option = null)
	{
		static $params = array();
		$hash = '__default';
		if(!empty($option)) $hash = $option;
		if (!isset($params[$hash]))
		{
			// Get component parameters
			if (!$option) {
				$option = JRequest::getCmd('option');
			}
			$params[$hash] =& JComponentHelper::getParams($option);

			// Get menu parameters
			$menus	=& JSite::getMenu();
			$menu	= $menus->getActive();

			$title       = htmlspecialchars_decode($this->getCfg('sitename' ));
			$description = $this->getCfg('MetaDesc');

			// Lets cascade the parameters if we have menu item parameters
			if (is_object($menu))
			{
				$params[$hash]->merge(new JParameter($menu->params));
				$title = $menu->name;

			}

			$params[$hash]->def( 'page_title'      , $title );
			$params[$hash]->def( 'page_description', $description );
		}

		return $params[$hash];
	}

	/**
	 * Get the appliaction parameters
	 *
	 * @param	string	The component option
	 * @return	object	The parameters object
	 * @since	1.5
	 */
	function &getPageParameters( $option = null )
	{
		return $this->getParams( $option );
	}

	/**
	 * Get the template
	 *
	 * @return string The template name
	 * @since 1.0
	 */
	function getTemplate()
	{
		// Allows for overriding the active template from a component, and caches the result of this function
		// e.g. $mainframe->setTemplate('solar-flare-ii');
		if ($template = $this->get('setTemplate')) {
			return $template;
		}

		// Get the id of the active menu item
		$menu =& JSite::getMenu();
		$item = $menu->getActive();

		$id = 0;
		if(is_object($item)) { // valid item retrieved
			$id = $item->id;
		}

		// Load template entries for the active menuid and the default template
		$db =& JFactory::getDBO();
		$query = 'SELECT template'
			. ' FROM #__templates_menu'
			. ' WHERE client_id = 0 AND (menuid = 0 OR menuid = '.(int) $id.')'
			. ' ORDER BY menuid DESC'
			;
		$db->setQuery($query, 0, 1);
		$template = $db->loadResult();

		// Allows for overriding the active template from the request
		$template = JRequest::getCmd('template', $template);
		$template = JFilterInput::clean($template, 'cmd'); // need to filter the default value as well

		// Fallback template
		if (!file_exists(JPATH_THEMES.DS.$template.DS.'index.php')) {
			$template = 'rhuk_milkyway';
		}

		// Cache the result
		$this->set('setTemplate', $template);
		return $template;
	}

	/**
	 * Overrides the default template that would be used
	 *
	 * @param string The template name
	 */
	function setTemplate( $template )
	{
		if (is_dir(JPATH_THEMES.DS.$template)) {
			$this->set('setTemplate', $template);
		}
	}

	/**
	 * Return a reference to the JPathway object.
	 *
	 * @access public
	 * @return object JPathway.
	 * @since 1.5
	 */
	function &getMenu()
	{
		$options = array();
		$menu =& parent::getMenu('site', $options);
		return $menu;
	}

	/**
	 * Return a reference to the JPathway object.
	 *
	 * @access public
	 * @return object JPathway.
	 * @since 1.5
	 */
	function &getPathWay()
	{
		$options = array();
		$pathway =& parent::getPathway('site', $options);
		return $pathway;
	}

	/**
	 * Return a reference to the JRouter object.
	 *
	 * @access	public
	 * @return	JRouter.
	 * @since	1.5
	 */
	function &getRouter()
	{
		$config =& JFactory::getConfig();
		$options['mode'] = $config->getValue('config.sef');
		$router =& parent::getRouter('site', $options);
		return $router;
	}
}
footer.php000064400000001554152200041010006541 0ustar00<?php
/**
* @version		$Id: footer.php 14401 2010-01-26 14:10:00Z louis $
* @package		Joomla
* @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

$version = new JVersion();

// NOTE - You may change this file to suit your site needs
?>
<div align="center">
	&copy; <?php echo JHTML::_('date',  'now', '%Y' ) . ' ' . $mainframe->getCfg('sitename'); ?>
</div>

<div align="center">
	<?php echo $version->URL; ?>
</div>Archive/index.html000064400000000054152200041010010102 0ustar00<html><body bgcolor="#FFFFFF"></body></html>Archive/Tar.php000064400000000363152200041010007347 0ustar00<?php // compatibility<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: Tar.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../../libraries/pear/archive_tar/Archive_Tar.php' );gacl_api.class.php000064400000000331152200041010010076 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: gacl_api.class.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../libraries/phpgacl/gacl_api.php' );menu.php000064400000004605152200041010006207 0ustar00<?php
/**
 * @version		$Id: menu.php 8682 2007-08-31 18:36:45Z jinx $
 * @package		Joomla.Framework
 * @subpackage	Application
 * @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
 * @license		GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */

// Check to ensure this file is within the rest of the framework
defined('JPATH_BASE') or die();

/**
 * JMenu class
 *
 * @package		Joomla.Framework
 * @subpackage	Application
 * @since		1.5
 */
class JMenuSite extends JMenu
{
	/**
	 * Loads the entire menu table into memory
	 *
	 * @access public
	 * @return array
	 */
	function load()
	{

		$cache = &JFactory::getCache('_system', 'output');

		if (!$data = $cache->get('menu_items')) {
		// Initialize some variables
		$db		= & JFactory::getDBO();

		$sql	= 'SELECT m.*, c.`option` as component' .
				' FROM #__menu AS m' .
				' LEFT JOIN #__components AS c ON m.componentid = c.id'.
				' WHERE m.published = 1'.
				' ORDER BY m.sublevel, m.parent, m.ordering';
		$db->setQuery($sql);

		if (!($menus = $db->loadObjectList('id'))) {
			JError::raiseWarning('SOME_ERROR_CODE', "Error loading Menus: ".$db->getErrorMsg());
			return false;
		}

		foreach($menus as $key => $menu)
		{
			//Get parent information
			$parent_route = '';
			$parent_tree  = array();
			if(($parent = $menus[$key]->parent) && (isset($menus[$parent])) &&
				(is_object($menus[$parent])) && (isset($menus[$parent]->route)) && isset($menus[$parent]->tree)) {
				$parent_route = $menus[$parent]->route.'/';
				$parent_tree  = $menus[$parent]->tree;
			}

			//Create tree
			array_push($parent_tree, $menus[$key]->id);
			$menus[$key]->tree   = $parent_tree;

			//Create route
			$route = $parent_route.$menus[$key]->alias;
			$menus[$key]->route  = $route;

			//Create the query array
			$url = str_replace('index.php?', '', $menus[$key]->link);
			if(strpos($url, '&amp;') !== false)
			{
			   $url = str_replace('&amp;','&',$url);
			}

			parse_str($url, $menus[$key]->query);
		}

			$cache->store(serialize($menus), 'menu_items');
		$this->_items = $menus;
		} else {
			$this->_items = unserialize($data);
	}
	}
}
PEAR/index.html000064400000000054152200041010007250 0ustar00<html><body bgcolor="#FFFFFF"></body></html>PEAR/PEAR.php000064400000000313152200041010006511 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: PEAR.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../../libraries/pear/PEAR.php' );pageNavigation.php000064400000000337152200041010010175 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: pageNavigation.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../plugins/system/legacy/pagination.php' );gacl.class.php000064400000000321152200041010007244 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: gacl.class.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../libraries/phpgacl/gacl.php' );vcard.class.php000064400000000324152200041010007440 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: vcard.class.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../libraries/bitfolge/vcard.php' );joomla.php000064400000000301152200041010006511 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: joomla.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname( __FILE__ ) . '/application.php' );phpInputFilter/index.html000064400000000057152200041010011501 0ustar00<html>
<body bgcolor="#FFFFFF">
</body>
</html>phpInputFilter/class.inputfilter.php000064400000000351152200041010013663 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: class.inputfilter.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../../libraries/phpinputfilter/inputfilter.php' );HTML_toolbar.php000064400000000330152200041010007520 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: HTML_toolbar.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__).'/../plugins/system/legacy/toolbar.php' );phpmailer/LICENSE000064400000063465152200041010007531 0ustar00		  GNU LESSER GENERAL PUBLIC LICENSE
		       Version 2.1, February 1999

 Copyright (C) 1991, 1999 Free Software Foundation, Inc.
     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL.  It also counts
 as the successor of the GNU Library Public License, version 2, hence
 the version number 2.1.]

			    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.

  This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it.  You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.

  When we speak of free software, we are referring to freedom of use,
not price.  Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.

  To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights.  These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.

  For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you.  You must make sure that they, too, receive or can get the source
code.  If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it.  And you must show them these terms so they know their rights.

  We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.

  To protect each distributor, we want to make it very clear that
there is no warranty for the free library.  Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.

  Finally, software patents pose a constant threat to the existence of
any free program.  We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder.  Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.

  Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License.  This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License.  We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.

  When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library.  The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom.  The Lesser General
Public License permits more lax criteria for linking other code with
the library.

  We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License.  It also provides other free software developers Less
of an advantage over competing non-free programs.  These disadvantages
are the reason we use the ordinary General Public License for many
libraries.  However, the Lesser license provides advantages in certain
special circumstances.

  For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard.  To achieve this, non-free programs must be
allowed to use the library.  A more frequent case is that a free
library does the same job as widely used non-free libraries.  In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.

  In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software.  For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.

  Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.

  The precise terms and conditions for copying, distribution and
modification follow.  Pay close attention to the difference between a
"work based on the library" and a "work that uses the library".  The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.

		  GNU LESSER GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".

  A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.

  The "Library", below, refers to any such software library or work
which has been distributed under these terms.  A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language.  (Hereinafter, translation is
included without limitation in the term "modification".)

  "Source code" for a work means the preferred form of the work for
making modifications to it.  For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.

  Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it).  Whether that is true depends on what the Library does
and what the program that uses the Library does.
  
  1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.

  You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.

  2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) The modified work must itself be a software library.

    b) You must cause the files modified to carry prominent notices
    stating that you changed the files and the date of any change.

    c) You must cause the whole of the work to be licensed at no
    charge to all third parties under the terms of this License.

    d) If a facility in the modified Library refers to a function or a
    table of data to be supplied by an application program that uses
    the facility, other than as an argument passed when the facility
    is invoked, then you must make a good faith effort to ensure that,
    in the event an application does not supply such function or
    table, the facility still operates, and performs whatever part of
    its purpose remains meaningful.

    (For example, a function in a library to compute square roots has
    a purpose that is entirely well-defined independent of the
    application.  Therefore, Subsection 2d requires that any
    application-supplied function or table used by this function must
    be optional: if the application does not supply it, the square
    root function must still compute square roots.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.

In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library.  To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License.  (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.)  Do not make any other change in
these notices.

  Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.

  This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.

  4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.

  If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.

  5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library".  Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.

  However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library".  The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.

  When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library.  The
threshold for this to be true is not precisely defined by law.

  If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work.  (Executables containing this object code plus portions of the
Library will still fall under Section 6.)

  Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.

  6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.

  You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License.  You must supply a copy of this License.  If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License.  Also, you must do one
of these things:

    a) Accompany the work with the complete corresponding
    machine-readable source code for the Library including whatever
    changes were used in the work (which must be distributed under
    Sections 1 and 2 above); and, if the work is an executable linked
    with the Library, with the complete machine-readable "work that
    uses the Library", as object code and/or source code, so that the
    user can modify the Library and then relink to produce a modified
    executable containing the modified Library.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

    b) Use a suitable shared library mechanism for linking with the
    Library.  A suitable mechanism is one that (1) uses at run time a
    copy of the library already present on the user's computer system,
    rather than copying library functions into the executable, and (2)
    will operate properly with a modified version of the library, if
    the user installs one, as long as the modified version is
    interface-compatible with the version that the work was made with.

    c) Accompany the work with a written offer, valid for at
    least three years, to give the same user the materials
    specified in Subsection 6a, above, for a charge no more
    than the cost of performing this distribution.

    d) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.

    e) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.

  For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it.  However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.

  It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system.  Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.

  7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:

    a) Accompany the combined library with a copy of the same work
    based on the Library, uncombined with any other library
    facilities.  This must be distributed under the terms of the
    Sections above.

    b) Give prominent notice with the combined library of the fact
    that part of it is a work based on the Library, and explaining
    where to find the accompanying uncombined form of the same work.

  8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License.  Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License.  However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.

  9. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Library or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.

  10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.

  11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all.  For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded.  In such case, this License incorporates the limitation as if
written in the body of this License.

  13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number.  If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation.  If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.

  14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission.  For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this.  Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.

			    NO WARRANTY

  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.

		     END OF TERMS AND CONDITIONS

           How to Apply These Terms to Your New Libraries

  If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change.  You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).

  To apply these terms, attach the following notices to the library.  It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

    <one line to give the library's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

  <signature of Ty Coon>, 1 April 1990
  Ty Coon, President of Vice

That's all there is to it!


phpmailer/index.html000064400000000054152200041010010502 0ustar00<html><body bgcolor="#FFFFFF"></body></html>phpmailer/class.smtp.php000064400000000326152200041010011307 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: class.smtp.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__) . '/../../libraries/phpmailer/smtp.php' );phpmailer/class.phpmailer.php000064400000000340152200041010012301 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: class.phpmailer.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__) . '/../../libraries/phpmailer/phpmailer.php' );router.php000064400000023571152200041010006566 0ustar00<?php
/**
* @version		$Id: router.php 8180 2007-07-23 05:52:29Z eddieajau $
* @package		Joomla.Framework
* @subpackage	Application
* @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// Check to ensure this file is within the rest of the framework
defined('JPATH_BASE') or die();

/**
 * Class to create and parse routes for the site application
 *
 * @package 	Joomla
 * @since		1.5
 */
class JRouterSite extends JRouter
{
	/**
	 * Class constructor
	 *
	 * @access public
	 */
	function __construct($options = array()) {
		parent::__construct($options);
	}

	function parse(&$uri)
	{
		$vars = array();

		// Get the application
		$app =& JFactory::getApplication();

		if($app->getCfg('force_ssl') == 2 && strtolower($uri->getScheme()) != 'https') {
			//forward to https
			$uri->setScheme('https');
			$app->redirect($uri->toString());
		}


		// Get the path
		$path = $uri->getPath();

		//Remove the suffix
		if($this->_mode == JROUTER_MODE_SEF)
		{

			if($app->getCfg('sef_suffix') && !(substr($path, -9) == 'index.php' || substr($path, -1) == '/'))
			{
				if($suffix = pathinfo($path, PATHINFO_EXTENSION))
				{
					$path = str_replace('.'.$suffix, '', $path);
					$vars['format'] = $suffix;
				}
			}
		}

		//Remove basepath
		$path = substr_replace($path, '', 0, strlen(JURI::base(true)));

		//Remove prefix
		$path = str_replace('index.php', '', $path);

		//Set the route
		$uri->setPath(trim($path , '/'));

		$vars += parent::parse($uri);

		return $vars;
	}

	function &build($url)
	{
		$uri =& parent::build($url);

		// Get the path data
		$route = $uri->getPath();

		//Add the suffix to the uri
		if($this->_mode == JROUTER_MODE_SEF && $route)
		{
			$app =& JFactory::getApplication();

			if($app->getCfg('sef_suffix') && !(substr($route, -9) == 'index.php' || substr($route, -1) == '/'))
			{
				if($format = $uri->getVar('format', 'html'))
				{
					$route .= '.'.$format;
					$uri->delVar('format');
				}
			}

			if($app->getCfg('sef_rewrite'))
			{
				//Transform the route
				$route = str_replace('index.php/', '', $route);
			}
		}

		//Add basepath to the uri
		$uri->setPath(JURI::base(true).'/'.$route);

		return $uri;
	}

	function _parseRawRoute(&$uri)
	{
		$vars   = array();

		$menu =& JSite::getMenu(true);

		//Handle an empty URL (special case)
		if(!$uri->getVar('Itemid') && !$uri->getVar('option'))
		{
			$item = $menu->getDefault();
			if(!is_object($item)) return $vars; // No default item set

			//Set the information in the request
			$vars = $item->query;

			//Get the itemid
			$vars['Itemid'] = $item->id;

			// Set the active menu item
			$menu->setActive($vars['Itemid']);

			return $vars;
		}

		//Get the variables from the uri
		$this->setVars($uri->getQuery(true));

		//Get the itemid, if it hasn't been set force it to null
		$this->setVar('Itemid', JRequest::getInt('Itemid', null));

		//Only an Itemid ? Get the full information from the itemid
		if(count($this->getVars()) == 1)
		{
			$item = $menu->getItem($this->getVar('Itemid'));
			if($item !== NULL && is_array($item->query)) {
				$vars = $vars + $item->query;
			}
		}

		// Set the active menu item
		$menu->setActive($this->getVar('Itemid'));

		return $vars;
	}

	function _parseSefRoute(&$uri)
	{
		$vars   = array();

		$menu  =& JSite::getMenu(true);
		$route = $uri->getPath();

		//Get the variables from the uri
		$vars = $uri->getQuery(true);

		//Handle an empty URL (special case)
		if(empty($route))
		{

			//If route is empty AND option is set in the query, assume it's non-sef url, and parse apropriately
			if(isset($vars['option']) || isset($vars['Itemid'])) {
				return $this->_parseRawRoute($uri);
			}

			$item = $menu->getDefault();

			//Set the information in the request
			$vars = $item->query;

			//Get the itemid
			$vars['Itemid'] = $item->id;

			// Set the active menu item
			$menu->setActive($vars['Itemid']);

			return $vars;
		}


		/*
		 * Parse the application route
		 */

		if(substr($route, 0, 9) == 'component')
		{
			$segments	= explode('/', $route);
			$route      = str_replace('component/'.$segments[1], '', $route);

			$vars['option'] = 'com_'.$segments[1];
			$vars['Itemid'] = null;
		}
		else
		{
			//Need to reverse the array (highest sublevels first)
			$items = array_reverse($menu->getMenu());

			foreach ($items as $item)
			{
				$lenght = strlen($item->route); //get the lenght of the route

				if($lenght > 0 && strpos($route.'/', $item->route.'/') === 0 && $item->type != 'menulink')
				{
					$route   = substr($route, $lenght);

					$vars['Itemid'] = $item->id;
					$vars['option'] = $item->component;
					break;
				}
			}
		}

		// Set the active menu item
		if ( isset($vars['Itemid']) ) {
			$menu->setActive(  $vars['Itemid'] );
		}

		//Set the variables
		$this->setVars($vars);

		/*
		 * Parse the component route
		 */
		if(!empty($route) && isset($this->_vars['option']) )
		{
			$segments = explode('/', $route);
			array_shift($segments);

			// Handle component	route
			$component = preg_replace('/[^A-Z0-9_\.-]/i', '', $this->_vars['option']);

			// Use the component routing handler if it exists
			$path = JPATH_SITE.DS.'components'.DS.$component.DS.'router.php';

			if (file_exists($path) && count($segments))
			{
				if ($component != "com_search") { // Cheap fix on searches
					//decode the route segments
					$segments = $this->_decodeSegments($segments);
				}
				else { // fix up search for URL
					$total = count($segments);
					for($i=0; $i<$total; $i++) {
						// urldecode twice because it is encoded twice
						$segments[$i] = urldecode(urldecode(stripcslashes($segments[$i])));
					}
				}

				require_once $path;
				$function =  substr($component, 4).'ParseRoute';
				$vars =  $function($segments);

				$this->setVars($vars);
			}
		}
		else
		{
			//Set active menu item
			if($item =& $menu->getActive()) {
				$vars = $item->query;
			}
		}

		return $vars;
	}

	function _buildRawRoute(&$uri)
	{
	}

	function _buildSefRoute(&$uri)
	{
		// Get the route
		$route = $uri->getPath();

		// Get the query data
		$query = $uri->getQuery(true);

		if(!isset($query['option'])) {
			return;
		}

		$menu =& JSite::getMenu();

		/*
		 * Build the component route
		 */
		$component	= preg_replace('/[^A-Z0-9_\.-]/i', '', $query['option']);
		$tmp 		= '';

		// Use the component routing handler if it exists
		$path = JPATH_SITE.DS.'components'.DS.$component.DS.'router.php';

		// Use the custom routing handler if it exists
		if (file_exists($path) && !empty($query))
		{
			require_once $path;
			$function	= substr($component, 4).'BuildRoute';
			$parts		= $function($query);

			// encode the route segments
			if ($component != "com_search") { // Cheep fix on searches
				$parts = $this->_encodeSegments($parts);
			}
			else { // fix up search for URL
				$total = count($parts);
				for($i=0; $i<$total; $i++) {
					// urlencode twice because it is decoded once after redirect
					$parts[$i] = urlencode(urlencode(stripcslashes($parts[$i])));
				}
			}

			$result = implode('/', $parts);
			$tmp	= ($result != "") ? '/'.$result : '';
		}

		/*
		 * Build the application route
		 */
		$built = false;
		if (isset($query['Itemid']) && !empty($query['Itemid']))
		{
			$item = $menu->getItem($query['Itemid']);

			if (is_object($item) && $query['option'] == $item->component) {
				$tmp = !empty($tmp) ? $item->route.'/'.$tmp : $item->route;
				$built = true;
			}
		}

		if(!$built) {
			$tmp = 'component/'.substr($query['option'], 4).'/'.$tmp;
		}

		$route .= '/'.$tmp;

		// Unset unneeded query information
		unset($query['Itemid']);
		unset($query['option']);

		//Set query again in the URI
		$uri->setQuery($query);
		$uri->setPath($route);
	}

	function _processParseRules(&$uri)
	{
		// Process the attached parse rules
		$vars = parent::_processParseRules($uri);

		// Process the pagination support
		if($this->_mode == JROUTER_MODE_SEF)
		{
			$app =& JFactory::getApplication();

			if($start = $uri->getVar('start'))
			{
				$uri->delVar('start');
				$vars['limitstart'] = $start;
			}
		}

		return $vars;
	}

	function _processBuildRules(&$uri)
	{
		// Make sure any menu vars are used if no others are specified
		if(($this->_mode != JROUTER_MODE_SEF) && $uri->getVar('Itemid') && count($uri->getQuery(true)) == 2)
		{
			$menu =& JSite::getMenu();

			// Get the active menu item
			$itemid = $uri->getVar('Itemid');
			$item   = $menu->getItem($itemid);

			$uri->setQuery($item->query);
			$uri->setVar('Itemid', $itemid);
		}

		// Process the attached build rules
		parent::_processBuildRules($uri);

		// Get the path data
		$route = $uri->getPath();

		if($this->_mode == JROUTER_MODE_SEF && $route)
		{
			$app =& JFactory::getApplication();

			if ($limitstart = $uri->getVar('limitstart'))
			{
				$uri->setVar('start', (int) $limitstart);
				$uri->delVar('limitstart');
			}
		}

		$uri->setPath($route);
	}

	function &_createURI($url)
	{
		//Create the URI
		$uri =& parent::_createURI($url);

		// Set URI defaults
		$menu =& JSite::getMenu();

		// Get the itemid form the URI
		$itemid = $uri->getVar('Itemid');

		if(is_null($itemid))
		{
			if($option = $uri->getVar('option'))
			{
				$item  = $menu->getItem($this->getVar('Itemid'));
				if(isset($item) && $item->component == $option) {
					$uri->setVar('Itemid', $item->id);
				}
			}
			else
			{
				if($option = $this->getVar('option')) {
					$uri->setVar('option', $option);
				}

				if($itemid = $this->getVar('Itemid')) {
					$uri->setVar('Itemid', $itemid);
				}
			}
		}
		else
		{
			if(!$uri->getVar('option'))
			{
				$item  = $menu->getItem($itemid);
				$uri->setVar('option', $item->component);
			}
		}

		return $uri;
	}
}
js/JSCookMenu_mini.js000064400000042432152200041010010475 0ustar00/*
	JSCookMenu v1.4.3.  (c) Copyright 2002-2005 by Heng Yuan

	Permission is hereby granted, free of charge, to any person obtaining a
	copy of this software and associated documentation files (the "Software"),
	to deal in the Software without restriction, including without limitation
	the rights to use, copy, modify, merge, publish, distribute, sublicense,
	and/or sell copies of the Software, and to permit persons to whom the
	Software is furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included
	in all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
	OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	ITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
	FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
	DEALINGS IN THE SOFTWARE.
*/

var _cmIDCount = 0; var _cmIDName = 'cmSubMenuID'; var _cmTimeOut = null; var _cmCurrentItem = null; var _cmNoAction = new Object (); var _cmNoClick = new Object (); var _cmSplit = new Object (); var _cmItemList = new Array (); var _cmNodeProperties = { mainFolderLeft: '', mainFolderRight: '', mainItemLeft: '', mainItemRight: '', folderLeft: '', folderRight: '', itemLeft: '', itemRight: '', mainSpacing: 0, subSpacing: 0, delay: 500, clickOpen: 1
}; function cmNewID ()
{ return _cmIDName + (++_cmIDCount);}
function cmActionItem (item, prefix, isMain, idSub, orient, nodeProperties)
{ var clickOpen = _cmNodeProperties.clickOpen; if (nodeProperties.clickOpen)
clickOpen = nodeProperties.clickOpen; _cmItemList[_cmItemList.length] = item; var index = _cmItemList.length - 1; idSub = (!idSub) ? 'null' : ('\'' + idSub + '\''); orient = '\'' + orient + '\''; prefix = '\'' + prefix + '\''; var onClick = (clickOpen == 3) || (clickOpen == 2 && isMain); var returnStr; if (onClick)
returnStr = ' onmouseover="cmItemMouseOver (this,' + prefix + ',' + isMain + ',' + idSub + ',' + index + ')" onmousedown="cmItemMouseDownOpenSub (this,' + index + ',' + prefix + ',' + orient + ',' + idSub + ')"'; else
returnStr = ' onmouseover="cmItemMouseOverOpenSub (this,' + prefix + ',' + isMain + ',' + idSub + ',' + orient + ',' + index + ')" onmousedown="cmItemMouseDown (this,' + index + ')"'; return returnStr + ' onmouseout="cmItemMouseOut (this,' + nodeProperties.delay + ')" onmouseup="cmItemMouseUp (this,' + index + ')"';}
function cmNoClickItem (item, prefix, isMain, idSub, orient, nodeProperties)
{ _cmItemList[_cmItemList.length] = item; var index = _cmItemList.length - 1; idSub = (!idSub) ? 'null' : ('\'' + idSub + '\''); orient = '\'' + orient + '\''; prefix = '\'' + prefix + '\''; return ' onmouseover="cmItemMouseOver (this,' + prefix + ',' + isMain + ',' + idSub + ',' + index + ')" onmouseout="cmItemMouseOut (this,' + nodeProperties.delay + ')"';}
function cmNoActionItem (item, prefix)
{ return item[1];}
function cmSplitItem (prefix, isMain, vertical)
{ var classStr = 'cm' + prefix; if (isMain)
{ classStr += 'Main'; if (vertical)
classStr += 'HSplit'; else
classStr += 'VSplit';}
else
classStr += 'HSplit'; return eval (classStr);}
function cmDrawSubMenu (subMenu, prefix, id, orient, nodeProperties)
{ var str = '<div class="' + prefix + 'SubMenu" id="' + id + '"><table summary="sub menu" cellspacing="' + nodeProperties.subSpacing + '" class="' + prefix + 'SubMenuTable">'; var strSub = ''; var item; var idSub; var hasChild; var i; var classStr; for (i = 5; i < subMenu.length; ++i)
{ item = subMenu[i]; if (!item)
continue; hasChild = (item.length > 5); idSub = hasChild ? cmNewID () : null; if (item == _cmSplit)
item = cmSplitItem (prefix, 0, true); str += '<tr class="' + prefix + 'MenuItem"'; if (item[0] != _cmNoClick)
str += cmActionItem (item, prefix, 0, idSub, orient, nodeProperties); else
str += cmNoClickItem (item, prefix, 0, idSub, orient, nodeProperties); str += '>'
if (item[0] == _cmNoAction || item[0] == _cmNoClick)
{ str += cmNoActionItem (item, prefix); str += '</tr>'; continue;}
classStr = prefix + 'Menu'; classStr += hasChild ? 'Folder' : 'Item'; str += '<td class="' + classStr + 'Left">'; if (item[0] != null)
str += item[0]; else
str += hasChild ? nodeProperties.folderLeft : nodeProperties.itemLeft; str += '</td><td class="' + classStr + 'Text">' + item[1]; str += '</td><td class="' + classStr + 'Right">'; if (hasChild)
{ str += nodeProperties.folderRight; strSub += cmDrawSubMenu (item, prefix, idSub, orient, nodeProperties);}
else
str += nodeProperties.itemRight; str += '</td></tr>';}
str += '</table></div>' + strSub; return str;}
function cmDraw (id, menu, orient, nodeProperties, prefix)
{ var obj = cmGetObject (id); if (!nodeProperties)
nodeProperties = _cmNodeProperties; if (!prefix)
prefix = ''; var str = '<table summary="main menu" class="' + prefix + 'Menu" cellspacing="' + nodeProperties.mainSpacing + '">'; var strSub = ''; if (!orient)
orient = 'hbr'; var orientStr = String (orient); var orientSub; var vertical; if (orientStr.charAt (0) == 'h')
{ orientSub = 'v' + orientStr.substr (1, 2); str += '<tr>'; vertical = false;}
else
{ orientSub = 'v' + orientStr.substr (1, 2); vertical = true;}
var i; var item; var idSub; var hasChild; var classStr; for (i = 0; i < menu.length; ++i)
{ item = menu[i]; if (!item)
continue; str += vertical ? '<tr' : '<td'; str += ' class="' + prefix + 'MainItem"'; hasChild = (item.length > 5); idSub = hasChild ? cmNewID () : null; str += cmActionItem (item, prefix, 1, idSub, orient, nodeProperties) + '>'; if (item == _cmSplit)
item = cmSplitItem (prefix, 1, vertical); if (item[0] == _cmNoAction || item[0] == _cmNoClick)
{ str += cmNoActionItem (item, prefix); str += vertical? '</tr>' : '</td>'; continue;}
classStr = prefix + 'Main' + (hasChild ? 'Folder' : 'Item'); str += vertical ? '<td' : '<span'; str += ' class="' + classStr + 'Left">'; str += (item[0] == null) ? (hasChild ? nodeProperties.mainFolderLeft : nodeProperties.mainItemLeft)
: item[0]; str += vertical ? '</td>' : '</span>'; str += vertical ? '<td' : '<span'; str += ' class="' + classStr + 'Text">'; str += item[1]; str += vertical ? '</td>' : '</span>'; str += vertical ? '<td' : '<span'; str += ' class="' + classStr + 'Right">'; str += hasChild ? nodeProperties.mainFolderRight : nodeProperties.mainItemRight; str += vertical ? '</td>' : '</span>'; str += vertical ? '</tr>' : '</td>'; if (hasChild)
strSub += cmDrawSubMenu (item, prefix, idSub, orientSub, nodeProperties);}
if (!vertical)
str += '</tr>'; str += '</table>' + strSub; obj.innerHTML = str;}
function cmDrawFromText (id, orient, nodeProperties, prefix)
{ var domMenu = cmGetObject (id); var menu = null; for (var currentDomItem = domMenu.firstChild; currentDomItem; currentDomItem = currentDomItem.nextSibling)
{ if (!currentDomItem.tagName || currentDomItem.tagName.toLowerCase () != 'ul')
continue; menu = cmDrawFromTextSubMenu (currentDomItem); break;}
if (menu)
cmDraw (id, menu, orient, nodeProperties, prefix);}
function cmDrawFromTextSubMenu (domMenu)
{ var items = new Array (); for (var currentDomItem = domMenu.firstChild; currentDomItem; currentDomItem = currentDomItem.nextSibling)
{ if (!currentDomItem.tagName || currentDomItem.tagName.toLowerCase () != 'li')
continue; if (currentDomItem.firstChild == null)
{ items[items.length] = _cmSplit; continue;}
var item = new Array (); var currentItem = currentDomItem.firstChild; for (; currentItem; currentItem = currentItem.nextSibling)
{ if (!currentItem.tagName || currentItem.tagName.toLowerCase () != 'span')
continue; if (!currentItem.firstChild)
item[0] = null; else
item[0] = currentItem.innerHTML; break;}
if (!currentItem)
continue; for (; currentItem; currentItem = currentItem.nextSibling)
{ if (!currentItem.tagName || currentItem.tagName.toLowerCase () != 'a')
continue; item[1] = currentItem.innerHTML; item[2] = currentItem.href; item[3] = currentItem.target; item[4] = currentItem.title; if (item[4] == '')
item[4] = null; break;}
for (; currentItem; currentItem = currentItem.nextSibling)
{ if (!currentItem.tagName || currentItem.tagName.toLowerCase () != 'ul')
continue; var subMenuItems = cmDrawFromTextSubMenu (currentItem); for (i = 0; i < subMenuItems.length; ++i)
item[i + 5] = subMenuItems[i]; break;}
items[items.length] = item;}
return items;}
function cmItemMouseOver (obj, prefix, isMain, idSub, index)
{ clearTimeout (_cmTimeOut); if (!obj.cmPrefix)
{ obj.cmPrefix = prefix; obj.cmIsMain = isMain;}
var thisMenu = cmGetThisMenu (obj, prefix); if (!thisMenu.cmItems)
thisMenu.cmItems = new Array (); var i; for (i = 0; i < thisMenu.cmItems.length; ++i)
{ if (thisMenu.cmItems[i] == obj)
break;}
if (i == thisMenu.cmItems.length)
{ thisMenu.cmItems[i] = obj;}
if (_cmCurrentItem)
{ if (_cmCurrentItem == obj || _cmCurrentItem == thisMenu)
{ var item = _cmItemList[index]; cmSetStatus (item); return;}
var thatPrefix = _cmCurrentItem.cmPrefix; var thatMenu = cmGetThisMenu (_cmCurrentItem, thatPrefix); if (thatMenu != thisMenu.cmParentMenu)
{ if (_cmCurrentItem.cmIsMain)
_cmCurrentItem.className = thatPrefix + 'MainItem'; else
_cmCurrentItem.className = thatPrefix + 'MenuItem'; if (thatMenu.id != idSub)
cmHideMenu (thatMenu, thisMenu, thatPrefix);}
}
_cmCurrentItem = obj; cmResetMenu (thisMenu, prefix); var item = _cmItemList[index]; var isDefaultItem = cmIsDefaultItem (item); if (isDefaultItem)
{ if (isMain)
obj.className = prefix + 'MainItemHover'; else
obj.className = prefix + 'MenuItemHover';}
cmSetStatus (item);}
function cmItemMouseOverOpenSub (obj, prefix, isMain, idSub, orient, index)
{ cmItemMouseOver (obj, prefix, isMain, idSub, index); if (idSub)
{ var subMenu = cmGetObject (idSub); cmShowSubMenu (obj, prefix, subMenu, orient);}
}
function cmItemMouseOut (obj, delayTime)
{ if (!delayTime)
delayTime = _cmNodeProperties.delay; _cmTimeOut = window.setTimeout ('cmHideMenuTime ()', delayTime); window.defaultStatus = '';}
function cmItemMouseDown (obj, index)
{ if (cmIsDefaultItem (_cmItemList[index]))
{ if (obj.cmIsMain)
obj.className = obj.cmPrefix + 'MainItemActive'; else
obj.className = obj.cmPrefix + 'MenuItemActive';}
}
function cmItemMouseDownOpenSub (obj, index, prefix, orient, idSub)
{ cmItemMouseDown (obj, index); if (idSub)
{ var subMenu = cmGetObject (idSub); cmShowSubMenu (obj, prefix, subMenu, orient);}
}
function cmItemMouseUp (obj, index)
{ var item = _cmItemList[index]; var link = null, target = '_self'; if (item.length > 2)
link = item[2]; if (item.length > 3 && item[3])
target = item[3]; if (link != null)
{ window.open (link, target);}
var prefix = obj.cmPrefix; var thisMenu = cmGetThisMenu (obj, prefix); var hasChild = (item.length > 5); if (!hasChild)
{ if (cmIsDefaultItem (item))
{ if (obj.cmIsMain)
obj.className = prefix + 'MainItem'; else
obj.className = prefix + 'MenuItem';}
cmHideMenu (thisMenu, null, prefix);}
else
{ if (cmIsDefaultItem (item))
{ if (obj.cmIsMain)
obj.className = prefix + 'MainItemHover'; else
obj.className = prefix + 'MenuItemHover';}
}
}
function cmMoveSubMenu (obj, subMenu, orient)
{ var mode = String (orient); var p = subMenu.offsetParent; var subMenuWidth = cmGetWidth (subMenu); var horiz = cmGetHorizontalAlign (obj, mode, p, subMenuWidth); if (mode.charAt (0) == 'h')
{ if (mode.charAt (1) == 'b')
subMenu.style.top = (cmGetYAt (obj, p) + cmGetHeight (obj)) + 'px'; else
subMenu.style.top = (cmGetYAt (obj, p) - cmGetHeight (subMenu)) + 'px'; if (horiz == 'r')
subMenu.style.left = (cmGetXAt (obj, p)) + 'px'; else
subMenu.style.left = (cmGetXAt (obj, p) + cmGetWidth (obj) - subMenuWidth) + 'px';}
else
{ if (horiz == 'r')
subMenu.style.left = (cmGetXAt (obj, p) + cmGetWidth (obj)) + 'px'; else
subMenu.style.left = (cmGetXAt (obj, p) - subMenuWidth) + 'px'; if (mode.charAt (1) == 'b')
subMenu.style.top = (cmGetYAt (obj, p)) + 'px'; else
subMenu.style.top = (cmGetYAt (obj, p) + cmGetHeight (obj) - cmGetHeight (subMenu)) + 'px';}
}
function cmGetHorizontalAlign (obj, mode, p, subMenuWidth)
{ var horiz = mode.charAt (2); if (!(document.body))
return horiz; var body = document.body; var browserLeft; var browserRight; if (window.innerWidth)
{ browserLeft = window.pageXOffset; browserRight = window.innerWidth + browserLeft;}
else if (body.clientWidth)
{ browserLeft = body.clientLeft; browserRight = body.clientWidth + browserLeft;}
else
return horiz; if (mode.charAt (0) == 'h')
{ if (horiz == 'r' && (cmGetXAt (obj) + subMenuWidth) > browserRight)
horiz = 'l'; if (horiz == 'l' && (cmGetXAt (obj) + cmGetWidth (obj) - subMenuWidth) < browserLeft)
horiz = 'r'; return horiz;}
else
{ if (horiz == 'r' && (cmGetXAt (obj, p) + cmGetWidth (obj) + subMenuWidth) > browserRight)
horiz = 'l'; if (horiz == 'l' && (cmGetXAt (obj, p) - subMenuWidth) < browserLeft)
horiz = 'r'; return horiz;}
}
function cmShowSubMenu (obj, prefix, subMenu, orient)
{ if (!subMenu.cmParentMenu)
{ var thisMenu = cmGetThisMenu (obj, prefix); subMenu.cmParentMenu = thisMenu; if (!thisMenu.cmSubMenu)
thisMenu.cmSubMenu = new Array (); thisMenu.cmSubMenu[thisMenu.cmSubMenu.length] = subMenu;}
cmMoveSubMenu (obj, subMenu, orient); subMenu.style.visibility = 'visible'; if (document.all)
{ if (!subMenu.cmOverlap)
subMenu.cmOverlap = new Array (); cmHideControl ("IFRAME", subMenu); cmHideControl ("SELECT", subMenu); cmHideControl ("OBJECT", subMenu);}
}
function cmResetMenu (thisMenu, prefix)
{ if (thisMenu.cmItems)
{ var i; var str; var items = thisMenu.cmItems; for (i = 0; i < items.length; ++i)
{ if (items[i].cmIsMain)
str = prefix + 'MainItem'; else
str = prefix + 'MenuItem'; if (items[i].className != str)
items[i].className = str;}
}
}
function cmHideMenuTime ()
{ if (_cmCurrentItem)
{ var prefix = _cmCurrentItem.cmPrefix; cmHideMenu (cmGetThisMenu (_cmCurrentItem, prefix), null, prefix); _cmCurrentItem = null;}
}
function cmHideMenu (thisMenu, currentMenu, prefix)
{ var str = prefix + 'SubMenu'; if (thisMenu.cmSubMenu)
{ var i; for (i = 0; i < thisMenu.cmSubMenu.length; ++i)
{ cmHideSubMenu (thisMenu.cmSubMenu[i], prefix);}
}
while (thisMenu && thisMenu != currentMenu)
{ cmResetMenu (thisMenu, prefix); if (thisMenu.className == str)
{ thisMenu.style.visibility = 'hidden'; cmShowControl (thisMenu);}
else
break; thisMenu = cmGetThisMenu (thisMenu.cmParentMenu, prefix);}
}
function cmHideSubMenu (thisMenu, prefix)
{ if (thisMenu.style.visibility == 'hidden')
return; if (thisMenu.cmSubMenu)
{ var i; for (i = 0; i < thisMenu.cmSubMenu.length; ++i)
{ cmHideSubMenu (thisMenu.cmSubMenu[i], prefix);}
}
cmResetMenu (thisMenu, prefix); thisMenu.style.visibility = 'hidden'; cmShowControl (thisMenu);}
function cmHideControl (tagName, subMenu)
{ var x = cmGetX (subMenu); var y = cmGetY (subMenu); var w = subMenu.offsetWidth; var h = subMenu.offsetHeight; var i; for (i = 0; i < document.all.tags(tagName).length; ++i)
{ var obj = document.all.tags(tagName)[i]; if (!obj || !obj.offsetParent)
continue; var ox = cmGetX (obj); var oy = cmGetY (obj); var ow = obj.offsetWidth; var oh = obj.offsetHeight; if (ox > (x + w) || (ox + ow) < x)
continue; if (oy > (y + h) || (oy + oh) < y)
continue; if(obj.style.visibility == "hidden")
continue; subMenu.cmOverlap[subMenu.cmOverlap.length] = obj; obj.style.visibility = "hidden";}
}
function cmShowControl (subMenu)
{ if (subMenu.cmOverlap)
{ var i; for (i = 0; i < subMenu.cmOverlap.length; ++i)
subMenu.cmOverlap[i].style.visibility = "";}
subMenu.cmOverlap = null;}
function cmGetThisMenu (obj, prefix)
{ var str1 = prefix + 'SubMenu'; var str2 = prefix + 'Menu'; while (obj)
{ if (obj.className == str1 || obj.className == str2)
return obj; obj = obj.parentNode;}
return null;}
function cmIsDefaultItem (item)
{ if (item == _cmSplit || item[0] == _cmNoAction || item[0] == _cmNoClick)
return false; return true;}
function cmGetObject (id)
{ if (document.all)
return document.all[id]; return document.getElementById (id);}
function cmGetWidth (obj)
{ var width = obj.offsetWidth; if (width > 0 || !cmIsTRNode (obj))
return width; if (!obj.firstChild)
return 0; return obj.lastChild.offsetLeft - obj.firstChild.offsetLeft + cmGetWidth (obj.lastChild);}
function cmGetHeight (obj)
{ var height = obj.offsetHeight; if (height > 0 || !cmIsTRNode (obj))
return height; if (!obj.firstChild)
return 0; return obj.firstChild.offsetHeight;}
function cmGetX (obj)
{ var x = 0; do
{ x += obj.offsetLeft; obj = obj.offsetParent;}
while (obj); return x;}
function cmGetXAt (obj, elm)
{ var x = 0; while (obj && obj != elm)
{ x += obj.offsetLeft; obj = obj.offsetParent;}
if (obj == elm)
return x; return x - cmGetX (elm);}
function cmGetY (obj)
{ var y = 0; do
{ y += obj.offsetTop; obj = obj.offsetParent;}
while (obj); return y;}
function cmIsTRNode (obj)
{ var tagName = obj.tagName; return tagName == "TR" || tagName == "tr" || tagName == "Tr" || tagName == "tR";}
function cmGetYAt (obj, elm)
{ var y = 0; if (!obj.offsetHeight && cmIsTRNode (obj))
{ var firstTR = obj.parentNode.firstChild; obj = obj.firstChild; y -= firstTR.firstChild.offsetTop;}
while (obj && obj != elm)
{ y += obj.offsetTop; obj = obj.offsetParent;}
if (obj == elm)
return y; return y - cmGetY (elm);}
function cmSetStatus (item)
{ var descript = ''; if (item.length > 4)
descript = (item[4] != null) ? item[4] : (item[2] ? item[2] : descript); else if (item.length > 2)
descript = (item[2] ? item[2] : descript); window.defaultStatus = descript;}
function cmGetProperties (obj)
{ if (obj == undefined)
return 'undefined'; if (obj == null)
return 'null'; var msg = obj + ':\n'; var i; for (i in obj)
msg += i + ' = ' + obj[i] + '; '; return msg;}js/index.html000064400000000057152200041010007140 0ustar00<html>
<body bgcolor="#FFFFFF">
</body>
</html>js/wz_tooltip.js000064400000040432152200041010007714 0ustar00/* This notice must be untouched at all times.

wz_tooltip.js    v. 3.34

The latest version is available at
http://www.walterzorn.com
or http://www.devira.com
or http://www.walterzorn.de

Copyright (c) 2002-2004 Walter Zorn. All rights reserved.
Created 1. 12. 2002 by Walter Zorn (Web: http://www.walterzorn.com )
Last modified: 9. 9. 2005

Cross-browser tooltips working even in Opera 5 and 6,
as well as in NN 4, Gecko-Browsers, IE4+, Opera 7 and Konqueror.
No onmouseouts required.
Appearance of tooltips can be individually configured
via commands within the onmouseovers.

LICENSE: LGPL

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License (LGPL) as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

For more details on the GNU Lesser General Public License,
see http://www.gnu.org/copyleft/lesser.html
*/



////////////////  GLOBAL TOOPTIP CONFIGURATION  /////////////////////
var ttAbove       = false;        // tooltip above mousepointer? Alternative: true
var ttBgColor     = "#e6ecff";
var ttBgImg       = "";           // path to background image;
var ttBorderColor = "#003399";
var ttBorderWidth = 1;
var ttDelay       = 500;          // time span until tooltip shows up [milliseconds]
var ttFontColor   = "#000066";
var ttFontFace    = "arial,helvetica,sans-serif";
var ttFontSize    = "11px";
var ttFontWeight  = "normal";     // alternative: "bold";
var ttLeft        = false;        // tooltip on the left of the mouse? Alternative: true
var ttOffsetX     = 12;           // horizontal offset of left-top corner from mousepointer
var ttOffsetY     = 15;           // vertical offset                   "
var ttOpacity     = 100;          // opacity of tooltip in percent (must be integer between 0 and 100)
var ttPadding     = 3;            // spacing between border and content
var ttShadowColor = "";
var ttShadowWidth = 0;
var ttStatic      = false;        // tooltip NOT move with the mouse? Alternative: true
var ttSticky      = false;        // do NOT hide tooltip on mouseout? Alternative: true
var ttTemp        = 0;            // time span after which the tooltip disappears; 0 (zero) means "infinite timespan"
var ttTextAlign   = "left";
var ttTitleColor  = "#ffffff";    // color of caption text
var ttWidth       = 300;
////////////////////  END OF TOOLTIP CONFIG  ////////////////////////



//////////////  TAGS WITH TOOLTIP FUNCTIONALITY  ////////////////////
// List may be extended or shortened:
var tt_tags = new Array("a","area","b","big","caption","center","code","dd","div","dl","dt","em","h1","h2","h3","h4","h5","h6","i","img","input","li","map","ol","p","pre","s","small","span","strike","strong","sub","sup","table","td","th","tr","tt","u","var","ul","layer");
/////////////////////////////////////////////////////////////////////



///////// DON'T CHANGE ANYTHING BELOW THIS LINE /////////////////////
var tt_obj,                // current tooltip
tt_ifrm,                   // iframe to cover windowed controls in IE
tt_objW = 0, tt_objH = 0,  // width and height of tt_obj
tt_objX = 0, tt_objY = 0,
tt_offX = 0, tt_offY = 0,
xlim = 0, ylim = 0,        // right and bottom borders of visible client area
tt_sup = false,            // true if T_ABOVE cmd
tt_sticky = false,         // tt_obj sticky?
tt_wait = false,
tt_act = false,            // tooltip visibility flag
tt_sub = false,            // true while tooltip below mousepointer
tt_u = "undefined",
tt_mf,                     // stores previous mousemove evthandler
// Opera: disable href when hovering <a>
tt_tag = null;             // stores hovered dom node, href and previous statusbar txt


var tt_db = (document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body? document.body : null,
tt_n = navigator.userAgent.toLowerCase(),
tt_nv = navigator.appVersion;
// Browser flags
var tt_op = !!(window.opera && document.getElementById),
tt_op6 = tt_op && !document.defaultView,
tt_op7 = tt_op && !tt_op6,
tt_ie = tt_n.indexOf("msie") != -1 && document.all && tt_db && !tt_op,
tt_ie6 = tt_ie && parseFloat(tt_nv.substring(tt_nv.indexOf("MSIE")+5)) >= 5.5;
tt_n4 = (document.layers && typeof document.classes != tt_u),
tt_n6 = (!tt_op && document.defaultView && typeof document.defaultView.getComputedStyle != tt_u),
tt_w3c = !tt_ie && !tt_n6 && !tt_op && document.getElementById;

function tt_Int(t_x)
{
	var t_y;
	return isNaN(t_y = parseInt(t_x))? 0 : t_y;
}
function wzReplace(t_x, t_y)
{
	var t_ret = "",
	t_str = this,
	t_xI;
	while((t_xI = t_str.indexOf(t_x)) != -1)
	{
		t_ret += t_str.substring(0, t_xI) + t_y;
		t_str = t_str.substring(t_xI + t_x.length);
	}
	return t_ret+t_str;
}
String.prototype.wzReplace = wzReplace;
function tt_N4Tags(tagtyp, t_d, t_y)
{
	t_d = t_d || document;
	t_y = t_y || new Array();
	var t_x = (tagtyp=="a")? t_d.links : t_d.layers;
	for(var z = t_x.length; z--;) t_y[t_y.length] = t_x[z];
	for(z = t_d.layers.length; z--;) t_y = tt_N4Tags(tagtyp, t_d.layers[z].document, t_y);
	return t_y;
}
function tt_Htm(tt, t_id, txt)
{
	var t_bgc = (typeof tt.T_BGCOLOR != tt_u)? tt.T_BGCOLOR : ttBgColor,
	t_bgimg   = (typeof tt.T_BGIMG != tt_u)? tt.T_BGIMG : ttBgImg,
	t_bc      = (typeof tt.T_BORDERCOLOR != tt_u)? tt.T_BORDERCOLOR : ttBorderColor,
	t_bw      = (typeof tt.T_BORDERWIDTH != tt_u)? tt.T_BORDERWIDTH : ttBorderWidth,
	t_ff      = (typeof tt.T_FONTFACE != tt_u)? tt.T_FONTFACE : ttFontFace,
	t_fc      = (typeof tt.T_FONTCOLOR != tt_u)? tt.T_FONTCOLOR : ttFontColor,
	t_fsz     = (typeof tt.T_FONTSIZE != tt_u)? tt.T_FONTSIZE : ttFontSize,
	t_fwght   = (typeof tt.T_FONTWEIGHT != tt_u)? tt.T_FONTWEIGHT : ttFontWeight,
	t_opa     = (typeof tt.T_OPACITY != tt_u)? tt.T_OPACITY : ttOpacity,
	t_padd    = (typeof tt.T_PADDING != tt_u)? tt.T_PADDING : ttPadding,
	t_shc     = (typeof tt.T_SHADOWCOLOR != tt_u)? tt.T_SHADOWCOLOR : (ttShadowColor || 0),
	t_shw     = (typeof tt.T_SHADOWWIDTH != tt_u)? tt.T_SHADOWWIDTH : (ttShadowWidth || 0),
	t_algn    = (typeof tt.T_TEXTALIGN != tt_u)? tt.T_TEXTALIGN : ttTextAlign,
	t_tit     = (typeof tt.T_TITLE != tt_u)? tt.T_TITLE : "",
	t_titc    = (typeof tt.T_TITLECOLOR != tt_u)? tt.T_TITLECOLOR : ttTitleColor,
	t_w       = (typeof tt.T_WIDTH != tt_u)? tt.T_WIDTH  : ttWidth;
	if(t_shc || t_shw)
	{
		t_shc = t_shc || "#cccccc";
		t_shw = t_shw || 5;
	}
	if(tt_n4 && (t_fsz == "10px" || t_fsz == "11px")) t_fsz = "12px";

	var t_optx = (tt_n4? '' : tt_n6? ('-moz-opacity:'+(t_opa/100.0)) : tt_ie? ('filter:Alpha(opacity='+t_opa+')') : ('opacity:'+(t_opa/100.0))) + ';';
	var t_y = '<div id="'+t_id+'" style="position:absolute;z-index:1010;';
	t_y += 'left:0px;top:0px;width:'+(t_w+t_shw)+'px;visibility:'+(tt_n4? 'hide' : 'hidden')+';'+t_optx+'">' +
		'<table border="0" cellpadding="0" cellspacing="0"'+(t_bc? (' bgcolor="'+t_bc+'" style="background:'+t_bc+';"') : '')+' width="'+t_w+'">';
	if(t_tit)
	{
		t_y += '<tr><td style="padding-left:3px;padding-right:3px;" align="'+t_algn+'"><font color="'+t_titc+'" face="'+t_ff+'" ' +
			'style="color:'+t_titc+';font-family:'+t_ff+';font-size:'+t_fsz+';"><b>' +
			(tt_n4? '&nbsp;' : '')+t_tit+'<\/b><\/font><\/td><\/tr>';
	}
	t_y += '<tr><td><table border="0" cellpadding="'+t_padd+'" cellspacing="'+t_bw+'" width="100%">' +
		'<tr><td'+(t_bgc? (' bgcolor="'+t_bgc+'"') : '')+(t_bgimg? ' background="'+t_bgimg+'"' : '')+' style="text-align:'+t_algn+';';
	if(tt_n6) t_y += 'padding:'+t_padd+'px;';
	t_y += '" align="'+t_algn+'"><font color="'+t_fc+'" face="'+t_ff+'"' +
		' style="color:'+t_fc+';font-family:'+t_ff+';font-size:'+t_fsz+';font-weight:'+t_fwght+';">';
	if(t_fwght == 'bold') t_y += '<b>';
	t_y += txt;
	if(t_fwght == 'bold') t_y += '<\/b>';
	t_y += '<\/font><\/td><\/tr><\/table><\/td><\/tr><\/table>';
	if(t_shw)
	{
		var t_spct = Math.round(t_shw*1.3);
		if(tt_n4)
		{
			t_y += '<layer bgcolor="'+t_shc+'" left="'+t_w+'" top="'+t_spct+'" width="'+t_shw+'" height="0"><\/layer>' +
				'<layer bgcolor="'+t_shc+'" left="'+t_spct+'" align="bottom" width="'+(t_w-t_spct)+'" height="'+t_shw+'"><\/layer>';
		}
		else
		{
			t_optx = tt_n6? '-moz-opacity:0.85;' : tt_ie? 'filter:Alpha(opacity=85);' : 'opacity:0.85;';
			t_y += '<div id="'+t_id+'R" style="position:absolute;background:'+t_shc+';left:'+t_w+'px;top:'+t_spct+'px;width:'+t_shw+'px;height:1px;overflow:hidden;'+t_optx+'"><\/div>' +
				'<div style="position:relative;background:'+t_shc+';left:'+t_spct+'px;top:0px;width:'+(t_w-t_spct)+'px;height:'+t_shw+'px;overflow:hidden;'+t_optx+'"><\/div>';
		}
	}
	return(t_y+'<\/div>' +
		(tt_ie6 ? '<iframe id="TTiEiFrM" src="javascript:false" scrolling="no" frameborder="0" style="filter:Alpha(opacity=0);position:absolute;top:0px;left:0px;display:none;"><\/iframe>' : ''));
}
function tt_EvX(t_e)
{
	var t_y = tt_Int(t_e.pageX || t_e.clientX || 0) +
		tt_Int(tt_ie? tt_db.scrollLeft : 0) +
		tt_offX;
	if(t_y > xlim) t_y = xlim;
	var t_scr = tt_Int(window.pageXOffset || (tt_db? tt_db.scrollLeft : 0) || 0);
	if(t_y < t_scr) t_y = t_scr;
	return t_y;
}
function tt_EvY(t_e)
{
	var t_y = tt_Int(t_e.pageY || t_e.clientY || 0) +
		tt_Int(tt_ie? tt_db.scrollTop : 0);
	if(tt_sup) t_y -= (tt_objH + tt_offY - 15);
	else if(t_y > ylim || !tt_sub && t_y > ylim-24)
	{
		t_y -= (tt_objH + 5);
		tt_sub = false;
	}
	else
	{
		t_y += tt_offY;
		tt_sub = true;
	}
	return t_y;
}
function tt_ReleasMov()
{
	if(document.onmousemove == tt_Move)
	{
		if(!tt_mf && document.releaseEvents) document.releaseEvents(Event.MOUSEMOVE);
		document.onmousemove = tt_mf;
	}
}
function tt_ShowIfrm(t_x)
{
	if(!tt_ie6 || !tt_obj) return;
	tt_ifrm = document.getElementById("TTiEiFrM");
	//tt_obj.style.display = t_x? "block" : "none";
	if(t_x)
	{
		tt_ifrm.style.width = tt_objW+'px';
		tt_ifrm.style.height = tt_objH+'px';
		tt_ifrm.style.zIndex = tt_obj.style.zIndex - 1;
		tt_ifrm.style.display = "block";
	}
	else tt_ifrm.style.display = "none";
}
function tt_GetDiv(t_id)
{
	return(
		tt_n4? (document.layers[t_id] || null)
		: tt_ie? (document.all[t_id] || null)
		: (document.getElementById(t_id) || null)
	);
}
function tt_GetDivW()
{
	return tt_Int(
		tt_n4? tt_obj.clip.width
		: (tt_obj.style.pixelWidth || tt_obj.offsetWidth)
	);
}
function tt_GetDivH()
{
	return tt_Int(
		tt_n4? tt_obj.clip.height
		: (tt_obj.style.pixelHeight || tt_obj.offsetHeight)
	);
}

// Compat with DragDrop Lib: Ensure that z-index of tooltip is lifted beyond toplevel dragdrop element
function tt_SetDivZ()
{
	var t_i = tt_obj.style || tt_obj;
	if(window.dd && dd.z)
		t_i.zIndex = Math.max(dd.z+1, t_i.zIndex);
}
function tt_SetDivPos(t_x, t_y)
{
	var t_i = tt_obj.style || tt_obj;
	var t_px = (tt_op6 || tt_n4)? '' : 'px';
	t_i.left = (tt_objX = t_x) + t_px;
	t_i.top = (tt_objY = t_y) + t_px;
	if(tt_ifrm)
	{
		tt_ifrm.style.left = t_i.left;
		tt_ifrm.style.top = t_i.top;
	}
}
function tt_ShowDiv(t_x)
{
	if(tt_n4) tt_obj.visibility = t_x? 'show' : 'hide';
	else tt_obj.style.visibility = t_x? 'visible' : 'hidden';
	tt_act = t_x;
	tt_ShowIfrm(t_x);
}
function tt_OpDeHref(t_e)
{
		var t_tag;
	if(t_e)
		{
				t_tag = t_e.target;
				while(t_tag)
				{
						if(t_tag.hasAttribute("href"))
					{
						tt_tag = t_tag
						tt_tag.t_href = tt_tag.getAttribute("href");
						tt_tag.removeAttribute("href");
						tt_tag.style.cursor = "hand";
						tt_tag.onmousedown = tt_OpReHref;
						tt_tag.stats = window.status;
						window.status = tt_tag.t_href;
						break;
					}
					t_tag = t_tag.parentElement;
				}
		}
}
function tt_OpReHref()
{
	if(tt_tag)
	{
		tt_tag.setAttribute("href", tt_tag.t_href);
		window.status = tt_tag.stats;
		tt_tag = null;
	}
}
function tt_Show(t_e, t_id, t_sup, t_delay, t_fix, t_left, t_offx, t_offy, t_static, t_sticky, t_temp)
{
	if(tt_obj) tt_Hide();
	tt_mf = document.onmousemove || null;
	if(window.dd && (window.DRAG && tt_mf == DRAG || window.RESIZE && tt_mf == RESIZE)) return;
	var t_uf = document.onmouseup || null, t_sh, t_h;
	if(tt_mf && t_uf) t_uf(t_e);

	tt_obj = tt_GetDiv(t_id);
	if(tt_obj)
	{
		t_e = t_e || window.event;
		tt_sub = !(tt_sup = t_sup);
		tt_sticky = t_sticky;
		tt_objW = tt_GetDivW();
		tt_objH = tt_GetDivH();
		tt_offX = t_left? -(tt_objW+t_offx) : t_offx;
		tt_offY = t_offy;
		if(tt_op7) tt_OpDeHref(t_e);
		if(tt_n4)
		{
			if(tt_obj.document.layers.length)
			{
				t_sh = tt_obj.document.layers[0];
				t_sh.clip.height = tt_objH - Math.round(t_sh.clip.width*1.3);
			}
		}
		else
		{
			t_sh = tt_GetDiv(t_id+'R');
			if(t_sh)
			{
				t_h = tt_objH - tt_Int(t_sh.style.pixelTop || t_sh.style.top || 0);
				if(typeof t_sh.style.pixelHeight != tt_u) t_sh.style.pixelHeight = t_h;
				else t_sh.style.height = t_h+'px';
			}
		}

		xlim = tt_Int((tt_db && tt_db.clientWidth)? tt_db.clientWidth : window.innerWidth) +
			tt_Int(window.pageXOffset || (tt_db? tt_db.scrollLeft : 0) || 0) -
			tt_objW -
			(tt_n4? 21 : 0);
		ylim = tt_Int(window.innerHeight || tt_db.clientHeight) +
			tt_Int(window.pageYOffset || (tt_db? tt_db.scrollTop : 0) || 0) -
			tt_objH - tt_offY;

		tt_SetDivZ();
		if(t_fix) tt_SetDivPos(tt_Int((t_fix = t_fix.split(','))[0]), tt_Int(t_fix[1]));
		else tt_SetDivPos(tt_EvX(t_e), tt_EvY(t_e));

		var t_txt = 'tt_ShowDiv(\'true\');';
		if(t_sticky) t_txt += '{'+
				'tt_ReleasMov();'+
				'window.tt_upFunc = document.onmouseup || null;'+
				'if(document.captureEvents) document.captureEvents(Event.MOUSEUP);'+
				'document.onmouseup = new Function("window.setTimeout(\'tt_Hide();\', 10);");'+
			'}';
		else if(t_static) t_txt += 'tt_ReleasMov();';
		if(t_temp > 0) t_txt += 'window.tt_rtm = window.setTimeout(\'tt_sticky = false; tt_Hide();\','+t_temp+');';
		window.tt_rdl = window.setTimeout(t_txt, t_delay);

		if(!t_fix)
		{
			if(document.captureEvents) document.captureEvents(Event.MOUSEMOVE);
			document.onmousemove = tt_Move;
		}
	}
}
var tt_area = false;
function tt_Move(t_ev)
{
	if(!tt_obj) return;
	if(tt_n6 || tt_w3c)
	{
		if(tt_wait) return;
		tt_wait = true;
		setTimeout('tt_wait = false;', 5);
	}
	var t_e = t_ev || window.event;
	tt_SetDivPos(tt_EvX(t_e), tt_EvY(t_e));
	if(tt_op6)
	{
		if(tt_area && t_e.target.tagName != 'AREA') tt_Hide();
		else if(t_e.target.tagName == 'AREA') tt_area = true;
	}
}
function tt_Hide()
{
	if(window.tt_obj)
	{
		if(window.tt_rdl) window.clearTimeout(tt_rdl);
		if(!tt_sticky || !tt_act)
		{
			if(window.tt_rtm) window.clearTimeout(tt_rtm);
			tt_ShowDiv(false);
			tt_SetDivPos(-tt_objW, -tt_objH);
			tt_obj = null;
			if(typeof window.tt_upFunc != tt_u) document.onmouseup = window.tt_upFunc;
		}
		tt_sticky = false;
		if(tt_op6 && tt_area) tt_area = false;
		tt_ReleasMov();
		if(tt_op7) tt_OpReHref();
	}
}
function tt_Init()
{
	if(!(tt_op || tt_n4 || tt_n6 || tt_ie || tt_w3c)) return;

	var htm = tt_n4? '<div style="position:absolute;"><\/div>' : '',
	tags,
	t_tj,
	over,
	esc = 'return escape(';
	var i = tt_tags.length; while(i--)
	{
		tags = tt_ie? (document.all.tags(tt_tags[i]) || 1)
			: document.getElementsByTagName? (document.getElementsByTagName(tt_tags[i]) || 1)
			: (!tt_n4 && tt_tags[i]=="a")? document.links
			: 1;
		if(tt_n4 && (tt_tags[i] == "a" || tt_tags[i] == "layer")) tags = tt_N4Tags(tt_tags[i]);
		var j = tags.length; while(j--)
		{
			if(typeof (t_tj = tags[j]).onmouseover == "function" && t_tj.onmouseover.toString().indexOf(esc) != -1 && !tt_n6 || tt_n6 && (over = t_tj.getAttribute("onmouseover")) && over.indexOf(esc) != -1)
			{
				if(over) t_tj.onmouseover = new Function(over);
				var txt = unescape(t_tj.onmouseover());
				htm += tt_Htm(
					t_tj,
					"tOoLtIp"+i+""+j,
					txt.wzReplace("& ","&")
				);

				t_tj.onmouseover = new Function('e',
					'tt_Show(e,'+
					'"tOoLtIp' +i+''+j+ '",'+
					((typeof t_tj.T_ABOVE != tt_u)? t_tj.T_ABOVE : ttAbove)+','+
					((typeof t_tj.T_DELAY != tt_u)? t_tj.T_DELAY : ttDelay)+','+
					((typeof t_tj.T_FIX != tt_u)? '"'+t_tj.T_FIX+'"' : '""')+','+
					((typeof t_tj.T_LEFT != tt_u)? t_tj.T_LEFT : ttLeft)+','+
					((typeof t_tj.T_OFFSETX != tt_u)? t_tj.T_OFFSETX : ttOffsetX)+','+
					((typeof t_tj.T_OFFSETY != tt_u)? t_tj.T_OFFSETY : ttOffsetY)+','+
					((typeof t_tj.T_STATIC != tt_u)? t_tj.T_STATIC : ttStatic)+','+
					((typeof t_tj.T_STICKY != tt_u)? t_tj.T_STICKY : ttSticky)+','+
					((typeof t_tj.T_TEMP != tt_u)? t_tj.T_TEMP : ttTemp)+
					');'
				);
				t_tj.onmouseout = tt_Hide;
				if(t_tj.alt) t_tj.alt = "";
				if(t_tj.title) t_tj.title = "";
			}
		}
	}
	document.write(htm);
}
tt_Init();
js/overlib_hideform_mini.js000064400000006400152200041010012032 0ustar00//\/////
//\  overLIB Hide Form Plugin
//\
//\  Uses an iframe shim to mask system controls for IE v5.5 or higher as suggested in
//\  http://dotnetjunkies.com/weblog/jking/posts/488.aspx
//\  This file requires overLIB 4.10 or later.
//\
//\  overLIB 4.05 - You may not remove or change this notice.
//\  Copyright Erik Bosrup 1998-2004. All rights reserved.
//\  Contributors are listed on the homepage.
//\  See http://www.bosrup.com/web/overlib/ for details.
//\/////
//\  THIS IS A VERY MODIFIED VERSION. DO NOT EDIT OR PUBLISH. GET THE ORIGINAL!
if(typeof olInfo=='undefined'||typeof olInfo.meets=='undefined'||!olInfo.meets(4.10))alert('overLIB 4.10 or later is required for the HideForm Plugin.');else{
function generatePopUp(content){if(!olIe4||olOp||!olIe55||(typeof o3_shadow!='undefined'&&o3_shadow)||(typeof o3_bubble!='undefined'&&o3_bubble))return;
var wd,ht,txt,zIdx=0;
wd=parseInt(o3_width);ht=over.offsetHeight;txt=backDropSource(wd,ht,zIdx++);txt+='<div style="position: absolute;top: 0;left: 0;width: '+wd+'px;z-index: '+zIdx+';">'+content+'</div>';layerWrite(txt);}
function backDropSource(width,height,Z){return '<iframe frameborder="0" scrolling="no" src="javascript:false;" width="'+width+'" height="'+height+'" style="z-index: '+Z+';filter: Beta(Style=0,Opacity=0);"></iframe>';}
function hideSelectBox(){if(olNs4||olOp||olIe55)return;var px,py,pw,ph,sx,sw,sy,sh,selEl,v;
if(olIe4)v=0;else{v=navigator.userAgent.match(/Gecko\/(\d{8})/i);if(!v)return;v=parseInt(v[1]);}
if(v<20030624){px=parseInt(over.style.left);py=parseInt(over.style.top);pw=o3_width;ph=(o3_aboveheight?parseInt(o3_aboveheight):over.offsetHeight);selEl=(olIe4)?o3_frame.document.all.tags("SELECT"):o3_frame.document.getElementsByTagName("SELECT");for(var i=0;i<selEl.length;i++){if(!olIe4&&selEl[i].size<2)continue;sx=pageLocation(selEl[i],'Left');sy=pageLocation(selEl[i],'Top');sw=selEl[i].offsetWidth;sh=selEl[i].offsetHeight;if((px+pw)<sx||px>(sx+sw)||(py+ph)<sy||py>(sy+sh))continue;selEl[i].isHidden=1;selEl[i].style.visibility='hidden';}}}
function showSelectBox(){if(olNs4||olOp||olIe55)return;var selEl,v;
if(olIe4)v=0;else{v=navigator.userAgent.match(/Gecko\/(\d{8})/i);if(!v)return;v=parseInt(v[1]);}
if(v<20030624){selEl=(olIe4)?o3_frame.document.all.tags("SELECT"):o3_frame.document.getElementsByTagName("SELECT");for(var i=0;i<selEl.length;i++){if(typeof selEl[i].isHidden!='undefined'&&selEl[i].isHidden){selEl[i].isHidden=0;selEl[i].style.visibility='visible';}}}}
function pageLocation(o,t){var x=0
while(o.offsetParent){x+=o['offset'+t]
o=o.offsetParent}
x+=o['offset'+t]
return x}
if(!(olNs4||olOp||olIe55||navigator.userAgent.indexOf('Netscape6')!=-1)){var MMStr=olMouseMove.toString();var strRe=/(if\s*\(o3_allowmove\s*==\s*1.*\)\s*)/;var f=MMStr.match(strRe);
if(f){var ls=MMStr.search(strRe);ls+=f[1].length;var le=MMStr.substring(ls).search(/[;|}]\n/);MMStr=MMStr.substring(0,ls)+' {runHook("placeLayer",FREPLACE);if(olHideForm)hideSelectBox();'+MMStr.substring(ls+(le!=-1?le+3:0));document.writeln('<script type="text/javascript">\n<!--\n'+MMStr+'\n//-->\n</'+'script>');}
f=capExtent.onmousemove.toString().match(/function[ ]+(\w*)\(/);if(f&&f[1]!='anonymous')capExtent.onmousemove=olMouseMove;}
registerHook("createPopup",generatePopUp,FAFTER);registerHook("hideObject",showSelectBox,FAFTER);olHideForm=1;}
js/calendar/calendar_mini.js000064400000064513152200041010012046 0ustar00/*  Copyright Mihai Bazon, 2002  |  http://students.infoiasi.ro/~mishoo
 * ---------------------------------------------------------------------
 *
 * The DHTML Calendar, version 0.9.2 "The art of date selection"
 *
 * Details and latest version at:
 * http://students.infoiasi.ro/~mishoo/site/calendar.epl
 *
 * Feel free to use this script under the terms of the GNU Lesser General
 * Public License, as long as you do not remove or alter this notice.
 */

// $Id: calendar_mini.js 10712 2008-08-21 10:09:39Z eddieajau $

Calendar = function (mondayFirst, dateStr, onSelected, onClose) { this.activeDiv = null; this.currentDateEl = null; this.checkDisabled = null; this.timeout = null; this.onSelected = onSelected || null; this.onClose = onClose || null; this.dragging = false; this.hidden = false; this.minYear = 1970; this.maxYear = 2050; this.dateFormat = Calendar._TT["DEF_DATE_FORMAT"]; this.ttDateFormat = Calendar._TT["TT_DATE_FORMAT"]; this.isPopup = true; this.weekNumbers = true; this.mondayFirst = mondayFirst; this.dateStr = dateStr; this.ar_days = null; this.table = null; this.element = null; this.tbody = null; this.firstdayname = null; this.monthsCombo = null; this.yearsCombo = null; this.hilitedMonth = null; this.activeMonth = null; this.hilitedYear = null; this.activeYear = null; if (!Calendar._DN3) { var ar = new Array(); for (var i = 8; i > 0;) { ar[--i] = Calendar._DN[i].substr(0, 3);}
Calendar._DN3 = ar; ar = new Array(); for (var i = 12; i > 0;) { ar[--i] = Calendar._MN[i].substr(0, 3);}
Calendar._MN3 = ar;}
}; Calendar._C = null; Calendar.is_ie = ( (navigator.userAgent.toLowerCase().indexOf("msie") != -1) &&
(navigator.userAgent.toLowerCase().indexOf("opera") == -1) ); Calendar._DN3 = null; Calendar._MN3 = null; Calendar.getAbsolutePos = function(el) { var r = { x: el.offsetLeft, y: el.offsetTop }; if (el.offsetParent) { var tmp = Calendar.getAbsolutePos(el.offsetParent); r.x += tmp.x; r.y += tmp.y;}
return r;}; Calendar.isRelated = function (el, evt) { var related = evt.relatedTarget; if (!related) { var type = evt.type; if (type == "mouseover") { related = evt.fromElement;} else if (type == "mouseout") { related = evt.toElement;}
}
while (related) { if (related == el) { return true;}
related = related.parentNode;}
return false;}; Calendar.removeClass = function(el, className) { if (!(el && el.className)) { return;}
var cls = el.className.split(" "); var ar = new Array(); for (var i = cls.length; i > 0;) { if (cls[--i] != className) { ar[ar.length] = cls[i];}
}
el.className = ar.join(" ");}; Calendar.addClass = function(el, className) { Calendar.removeClass(el, className); el.className += " " + className;}; Calendar.getElement = function(ev) { if (Calendar.is_ie) { return window.event.srcElement;} else { return ev.currentTarget;}
}; Calendar.getTargetElement = function(ev) { if (Calendar.is_ie) { return window.event.srcElement;} else { return ev.target;}
}; Calendar.stopEvent = function(ev) { if (Calendar.is_ie) { window.event.cancelBubble = true; window.event.returnValue = false;} else { ev.preventDefault(); ev.stopPropagation();}
}; Calendar.addEvent = function(el, evname, func) { if (Calendar.is_ie) { el.attachEvent("on" + evname, func);} else { el.addEventListener(evname, func, true);}
}; Calendar.removeEvent = function(el, evname, func) { if (Calendar.is_ie) { el.detachEvent("on" + evname, func);} else { el.removeEventListener(evname, func, true);}
}; Calendar.createElement = function(type, parent) { var el = null; if (document.createElementNS) { el = document.createElementNS("http://www.w3.org/1999/xhtml", type);} else { el = document.createElement(type);}
if (typeof parent != "undefined") { parent.appendChild(el);}
return el;}; Calendar._add_evs = function(el) { with (Calendar) { addEvent(el, "mouseover", dayMouseOver); addEvent(el, "mousedown", dayMouseDown); addEvent(el, "mouseout", dayMouseOut); if (is_ie) { addEvent(el, "dblclick", dayMouseDblClick); el.setAttribute("unselectable", true);}
}
}; Calendar.findMonth = function(el) { if (typeof el.month != "undefined") { return el;} else if (typeof el.parentNode.month != "undefined") { return el.parentNode;}
return null;}; Calendar.findYear = function(el) { if (typeof el.year != "undefined") { return el;} else if (typeof el.parentNode.year != "undefined") { return el.parentNode;}
return null;}; Calendar.showMonthsCombo = function () { var cal = Calendar._C; if (!cal) { return false;}
var cal = cal; var cd = cal.activeDiv; var mc = cal.monthsCombo; if (cal.hilitedMonth) { Calendar.removeClass(cal.hilitedMonth, "hilite");}
if (cal.activeMonth) { Calendar.removeClass(cal.activeMonth, "active");}
var mon = cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()]; Calendar.addClass(mon, "active"); cal.activeMonth = mon; mc.style.left = cd.offsetLeft + "px"; mc.style.top = (cd.offsetTop + cd.offsetHeight) + "px"; mc.style.display = "block";}; Calendar.showYearsCombo = function (fwd) { var cal = Calendar._C; if (!cal) { return false;}
var cal = cal; var cd = cal.activeDiv; var yc = cal.yearsCombo; if (cal.hilitedYear) { Calendar.removeClass(cal.hilitedYear, "hilite");}
if (cal.activeYear) { Calendar.removeClass(cal.activeYear, "active");}
cal.activeYear = null; var Y = cal.date.getFullYear() + (fwd ? 1 : -1); var yr = yc.firstChild; var show = false; for (var i = 12; i > 0; --i) { if (Y >= cal.minYear && Y <= cal.maxYear) { yr.firstChild.data = Y; yr.year = Y; yr.style.display = "block"; show = true;} else { yr.style.display = "none";}
yr = yr.nextSibling; Y += fwd ? 2 : -2;}
if (show) { yc.style.left = cd.offsetLeft + "px"; yc.style.top = (cd.offsetTop + cd.offsetHeight) + "px"; yc.style.display = "block";}
}; Calendar.tableMouseUp = function(ev) { var cal = Calendar._C; if (!cal) { return false;}
if (cal.timeout) { clearTimeout(cal.timeout);}
var el = cal.activeDiv; if (!el) { return false;}
var target = Calendar.getTargetElement(ev); Calendar.removeClass(el, "active"); if (target == el || target.parentNode == el) { Calendar.cellClick(el);}
var mon = Calendar.findMonth(target); var date = null; if (mon) { date = new Date(cal.date); if (mon.month != date.getMonth()) { date.setMonth(mon.month); cal.setDate(date);}
} else { var year = Calendar.findYear(target); if (year) { date = new Date(cal.date); if (year.year != date.getFullYear()) { date.setFullYear(year.year); cal.setDate(date);}
}
}
with (Calendar) { removeEvent(document, "mouseup", tableMouseUp); removeEvent(document, "mouseover", tableMouseOver); removeEvent(document, "mousemove", tableMouseOver); cal._hideCombos(); stopEvent(ev); _C = null;}
}; Calendar.tableMouseOver = function (ev) { var cal = Calendar._C; if (!cal) { return;}
var el = cal.activeDiv; var target = Calendar.getTargetElement(ev); if (target == el || target.parentNode == el) { Calendar.addClass(el, "hilite active"); Calendar.addClass(el.parentNode, "rowhilite");} else { Calendar.removeClass(el, "active"); Calendar.removeClass(el, "hilite"); Calendar.removeClass(el.parentNode, "rowhilite");}
var mon = Calendar.findMonth(target); if (mon) { if (mon.month != cal.date.getMonth()) { if (cal.hilitedMonth) { Calendar.removeClass(cal.hilitedMonth, "hilite");}
Calendar.addClass(mon, "hilite"); cal.hilitedMonth = mon;} else if (cal.hilitedMonth) { Calendar.removeClass(cal.hilitedMonth, "hilite");}
} else { var year = Calendar.findYear(target); if (year) { if (year.year != cal.date.getFullYear()) { if (cal.hilitedYear) { Calendar.removeClass(cal.hilitedYear, "hilite");}
Calendar.addClass(year, "hilite"); cal.hilitedYear = year;} else if (cal.hilitedYear) { Calendar.removeClass(cal.hilitedYear, "hilite");}
}
}
Calendar.stopEvent(ev);}; Calendar.tableMouseDown = function (ev) { if (Calendar.getTargetElement(ev) == Calendar.getElement(ev)) { Calendar.stopEvent(ev);}
}; Calendar.calDragIt = function (ev) { var cal = Calendar._C; if (!(cal && cal.dragging)) { return false;}
var posX; var posY; if (Calendar.is_ie) { posY = window.event.clientY + document.body.scrollTop; posX = window.event.clientX + document.body.scrollLeft;} else { posX = ev.pageX; posY = ev.pageY;}
cal.hideShowCovered(); var st = cal.element.style; st.left = (posX - cal.xOffs) + "px"; st.top = (posY - cal.yOffs) + "px"; Calendar.stopEvent(ev);}; Calendar.calDragEnd = function (ev) { var cal = Calendar._C; if (!cal) { return false;}
cal.dragging = false; with (Calendar) { removeEvent(document, "mousemove", calDragIt); removeEvent(document, "mouseover", stopEvent); removeEvent(document, "mouseup", calDragEnd); tableMouseUp(ev);}
cal.hideShowCovered();}; Calendar.dayMouseDown = function(ev) { var el = Calendar.getElement(ev); if (el.disabled) { return false;}
var cal = el.calendar; cal.activeDiv = el; Calendar._C = cal; if (el.navtype != 300) with (Calendar) { addClass(el, "hilite active"); addEvent(document, "mouseover", tableMouseOver); addEvent(document, "mousemove", tableMouseOver); addEvent(document, "mouseup", tableMouseUp);} else if (cal.isPopup) { cal._dragStart(ev);}
Calendar.stopEvent(ev); if (el.navtype == -1 || el.navtype == 1) { cal.timeout = setTimeout("Calendar.showMonthsCombo()", 250);} else if (el.navtype == -2 || el.navtype == 2) { cal.timeout = setTimeout((el.navtype > 0) ? "Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", 250);} else { cal.timeout = null;}
}; Calendar.dayMouseDblClick = function(ev) { Calendar.cellClick(Calendar.getElement(ev)); if (Calendar.is_ie) { document.selection.empty();}
}; Calendar.dayMouseOver = function(ev) { var el = Calendar.getElement(ev); if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) { return false;}
if (el.ttip) { if (el.ttip.substr(0, 1) == "_") { var date = null; with (el.calendar.date) { date = new Date(getFullYear(), getMonth(), el.caldate);}
el.ttip = date.print(el.calendar.ttDateFormat) + el.ttip.substr(1);}
el.calendar.tooltips.firstChild.data = el.ttip;}
if (el.navtype != 300) { Calendar.addClass(el, "hilite"); if (el.caldate) { Calendar.addClass(el.parentNode, "rowhilite");}
}
Calendar.stopEvent(ev);}; Calendar.dayMouseOut = function(ev) { with (Calendar) { var el = getElement(ev); if (isRelated(el, ev) || _C || el.disabled) { return false;}
removeClass(el, "hilite"); if (el.caldate) { removeClass(el.parentNode, "rowhilite");}
el.calendar.tooltips.firstChild.data = _TT["SEL_DATE"]; stopEvent(ev);}
}; Calendar.cellClick = function(el) { var cal = el.calendar; var closing = false; var newdate = false; var date = null; if (typeof el.navtype == "undefined") { Calendar.removeClass(cal.currentDateEl, "selected"); Calendar.addClass(el, "selected"); closing = (cal.currentDateEl == el); if (!closing) { cal.currentDateEl = el;}
cal.date.setDate(el.caldate); date = cal.date; newdate = true;} else { if (el.navtype == 200) { Calendar.removeClass(el, "hilite"); cal.callCloseHandler(); return;}
date = (el.navtype == 0) ? new Date() : new Date(cal.date); var year = date.getFullYear(); var mon = date.getMonth(); function setMonth(m) { var day = date.getDate(); var max = date.getMonthDays(m); if (day > max) { date.setDate(max);}
date.setMonth(m);}; switch (el.navtype) { case -2:
if (year > cal.minYear) { date.setFullYear(year - 1);}
break; case -1:
if (mon > 0) { setMonth(mon - 1);} else if (year-- > cal.minYear) { date.setFullYear(year); setMonth(11);}
break; case 1:
if (mon < 11) { setMonth(mon + 1);} else if (year < cal.maxYear) { date.setFullYear(year + 1); setMonth(0);}
break; case 2:
if (year < cal.maxYear) { date.setFullYear(year + 1);}
break; case 100:
cal.setMondayFirst(!cal.mondayFirst); return;}
if (!date.equalsTo(cal.date)) { cal.setDate(date); newdate = el.navtype == 0;}
}
if (newdate) { cal.callHandler();}
if (closing) { Calendar.removeClass(el, "hilite"); cal.callCloseHandler();}
}; Calendar.prototype.create = function (_par) { var parent = null; if (! _par) { parent = document.getElementsByTagName("body")[0]; this.isPopup = true;} else { parent = _par; this.isPopup = false;}
this.date = this.dateStr ? new Date(this.dateStr) : new Date(); var table = Calendar.createElement("table"); this.table = table; table.cellSpacing = 0; table.cellPadding = 0; table.calendar = this; Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown); var div = Calendar.createElement("div"); this.element = div; div.className = "calendar"; if (this.isPopup) { div.style.position = "absolute"; div.style.display = "none";}
div.appendChild(table); var thead = Calendar.createElement("thead", table); var cell = null; var row = null; var cal = this; var hh = function (text, cs, navtype) { cell = Calendar.createElement("td", row); cell.colSpan = cs; cell.className = "button"; Calendar._add_evs(cell); cell.calendar = cal; cell.navtype = navtype; if (text.substr(0, 1) != "&") { cell.appendChild(document.createTextNode(text));}
else { cell.innerHTML = text;}
return cell;}; row = Calendar.createElement("tr", thead); var title_length = 6; (this.isPopup) && --title_length; (this.weekNumbers) && ++title_length; hh("-", 1, 100).ttip = Calendar._TT["TOGGLE"]; this.title = hh("", title_length, 300); this.title.className = "title"; if (this.isPopup) { this.title.ttip = Calendar._TT["DRAG_TO_MOVE"]; this.title.style.cursor = "move"; hh("&#x00d7;", 1, 200).ttip = Calendar._TT["CLOSE"];}
row = Calendar.createElement("tr", thead); row.className = "headrow"; this._nav_py = hh("&#x00ab;", 1, -2); this._nav_py.ttip = Calendar._TT["PREV_YEAR"]; this._nav_pm = hh("&#x2039;", 1, -1); this._nav_pm.ttip = Calendar._TT["PREV_MONTH"]; this._nav_now = hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, 0); this._nav_now.ttip = Calendar._TT["GO_TODAY"]; this._nav_nm = hh("&#x203a;", 1, 1); this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"]; this._nav_ny = hh("&#x00bb;", 1, 2); this._nav_ny.ttip = Calendar._TT["NEXT_YEAR"]
row = Calendar.createElement("tr", thead); row.className = "daynames"; if (this.weekNumbers) { cell = Calendar.createElement("td", row); cell.className = "name wn"; cell.appendChild(document.createTextNode(Calendar._TT["WK"]));}
for (var i = 7; i > 0; --i) { cell = Calendar.createElement("td", row); cell.appendChild(document.createTextNode("")); if (!i) { cell.navtype = 100; cell.calendar = this; Calendar._add_evs(cell);}
}
this.firstdayname = (this.weekNumbers) ? row.firstChild.nextSibling : row.firstChild; this._displayWeekdays(); var tbody = Calendar.createElement("tbody", table); this.tbody = tbody; for (i = 6; i > 0; --i) { row = Calendar.createElement("tr", tbody); if (this.weekNumbers) { cell = Calendar.createElement("td", row); cell.appendChild(document.createTextNode(""));}
for (var j = 7; j > 0; --j) { cell = Calendar.createElement("td", row); cell.appendChild(document.createTextNode("")); cell.calendar = this; Calendar._add_evs(cell);}
}
var tfoot = Calendar.createElement("tfoot", table); row = Calendar.createElement("tr", tfoot); row.className = "footrow"; cell = hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300); cell.className = "ttip"; if (this.isPopup) { cell.ttip = Calendar._TT["DRAG_TO_MOVE"]; cell.style.cursor = "move";}
this.tooltips = cell; div = Calendar.createElement("div", this.element); this.monthsCombo = div; div.className = "combo"; for (i = 0; i < Calendar._MN.length; ++i) { var mn = Calendar.createElement("div"); mn.className = "label"; mn.month = i; mn.appendChild(document.createTextNode(Calendar._MN3[i])); div.appendChild(mn);}
div = Calendar.createElement("div", this.element); this.yearsCombo = div; div.className = "combo"; for (i = 12; i > 0; --i) { var yr = Calendar.createElement("div"); yr.className = "label"; yr.appendChild(document.createTextNode("")); div.appendChild(yr);}
this._init(this.mondayFirst, this.date); parent.appendChild(this.element);}; Calendar._keyEvent = function(ev) { if (!window.calendar) { return false;}
(Calendar.is_ie) && (ev = window.event); var cal = window.calendar; var act = (Calendar.is_ie || ev.type == "keypress"); if (ev.ctrlKey) { switch (ev.keyCode) { case 37:
act && Calendar.cellClick(cal._nav_pm); break; case 38:
act && Calendar.cellClick(cal._nav_py); break; case 39:
act && Calendar.cellClick(cal._nav_nm); break; case 40:
act && Calendar.cellClick(cal._nav_ny); break; default:
return false;}
} else switch (ev.keyCode) { case 32:
Calendar.cellClick(cal._nav_now); break; case 27:
act && cal.hide(); break; case 37:
case 38:
case 39:
case 40:
if (act) { var date = cal.date.getDate() - 1; var el = cal.currentDateEl; var ne = null; var prev = (ev.keyCode == 37) || (ev.keyCode == 38); switch (ev.keyCode) { case 37:
(--date >= 0) && (ne = cal.ar_days[date]); break; case 38:
date -= 7; (date >= 0) && (ne = cal.ar_days[date]); break; case 39:
(++date < cal.ar_days.length) && (ne = cal.ar_days[date]); break; case 40:
date += 7; (date < cal.ar_days.length) && (ne = cal.ar_days[date]); break;}
if (!ne) { if (prev) { Calendar.cellClick(cal._nav_pm);} else { Calendar.cellClick(cal._nav_nm);}
date = (prev) ? cal.date.getMonthDays() : 1; el = cal.currentDateEl; ne = cal.ar_days[date - 1];}
Calendar.removeClass(el, "selected"); Calendar.addClass(ne, "selected"); cal.date.setDate(ne.caldate); cal.currentDateEl = ne;}
break; case 13:
if (act) { cal.callHandler(); cal.hide();}
break; default:
return false;}
Calendar.stopEvent(ev);}; Calendar.prototype._init = function (mondayFirst, date) { var today = new Date(); var year = date.getFullYear(); if (year < this.minYear) { year = this.minYear; date.setFullYear(year);} else if (year > this.maxYear) { year = this.maxYear; date.setFullYear(year);}
this.mondayFirst = mondayFirst; this.date = new Date(date); var month = date.getMonth(); var mday = date.getDate(); var no_days = date.getMonthDays(); date.setDate(1); var wday = date.getDay(); var MON = mondayFirst ? 1 : 0; var SAT = mondayFirst ? 5 : 6; var SUN = mondayFirst ? 6 : 0; if (mondayFirst) { wday = (wday > 0) ? (wday - 1) : 6;}
var iday = 1; var row = this.tbody.firstChild; var MN = Calendar._MN3[month]; var hasToday = ((today.getFullYear() == year) && (today.getMonth() == month)); var todayDate = today.getDate(); var week_number = date.getWeekNumber(); var ar_days = new Array(); for (var i = 0; i < 6; ++i) { if (iday > no_days) { row.className = "emptyrow"; row = row.nextSibling; continue;}
var cell = row.firstChild; if (this.weekNumbers) { cell.className = "day wn"; cell.firstChild.data = week_number; cell = cell.nextSibling;} ++week_number; row.className = "daysrow"; for (var j = 0; j < 7; ++j) { cell.className = "day"; if ((!i && j < wday) || iday > no_days) { cell.innerHTML = "&nbsp;"; cell.disabled = true; cell = cell.nextSibling; continue;}
cell.disabled = false; cell.firstChild.data = iday; if (typeof this.checkDisabled == "function") { date.setDate(iday); if (this.checkDisabled(date)) { cell.className += " disabled"; cell.disabled = true;}
}
if (!cell.disabled) { ar_days[ar_days.length] = cell; cell.caldate = iday; cell.ttip = "_"; if (iday == mday) { cell.className += " selected"; this.currentDateEl = cell;}
if (hasToday && (iday == todayDate)) { cell.className += " today"; cell.ttip += Calendar._TT["PART_TODAY"];}
if (wday == SAT || wday == SUN) { cell.className += " weekend";}
} ++iday; ((++wday) ^ 7) || (wday = 0); cell = cell.nextSibling;}
row = row.nextSibling;}
this.ar_days = ar_days; this.title.firstChild.data = Calendar._MN[month] + ", " + year;}; Calendar.prototype.setDate = function (date) { if (!date.equalsTo(this.date)) { this._init(this.mondayFirst, date);}
}; Calendar.prototype.setMondayFirst = function (mondayFirst) { this._init(mondayFirst, this.date); this._displayWeekdays();}; Calendar.prototype.setDisabledHandler = function (unaryFunction) { this.checkDisabled = unaryFunction;}; Calendar.prototype.setRange = function (a, z) { this.minYear = a; this.maxYear = z;}; Calendar.prototype.callHandler = function () { if (this.onSelected) { this.onSelected(this, this.date.print(this.dateFormat));}
}; Calendar.prototype.callCloseHandler = function () { if (this.onClose) { this.onClose(this);}
this.hideShowCovered();}; Calendar.prototype.destroy = function () { var el = this.element.parentNode; el.removeChild(this.element); Calendar._C = null; delete el;}; Calendar.prototype.reparent = function (new_parent) { var el = this.element; el.parentNode.removeChild(el); new_parent.appendChild(el);}; Calendar._checkCalendar = function(ev) { if (!window.calendar) { return false;}
var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev); for (; el != null && el != calendar.element; el = el.parentNode); if (el == null) { window.calendar.callCloseHandler(); Calendar.stopEvent(ev);}
}; Calendar.prototype.show = function () { var rows = this.table.getElementsByTagName("tr"); for (var i = rows.length; i > 0;) { var row = rows[--i]; Calendar.removeClass(row, "rowhilite"); var cells = row.getElementsByTagName("td"); for (var j = cells.length; j > 0;) { var cell = cells[--j]; Calendar.removeClass(cell, "hilite"); Calendar.removeClass(cell, "active");}
}
this.element.style.display = "block"; this.hidden = false; if (this.isPopup) { window.calendar = this; Calendar.addEvent(document, "keydown", Calendar._keyEvent); Calendar.addEvent(document, "keypress", Calendar._keyEvent); Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);}
this.hideShowCovered();}; Calendar.prototype.hide = function () { if (this.isPopup) { Calendar.removeEvent(document, "keydown", Calendar._keyEvent); Calendar.removeEvent(document, "keypress", Calendar._keyEvent); Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);}
this.element.style.display = "none"; this.hidden = true; this.hideShowCovered();}; Calendar.prototype.showAt = function (x, y) { var s = this.element.style; s.left = x + "px"; s.top = y + "px"; this.show();}; Calendar.prototype.showAtElement = function (el) { var p = Calendar.getAbsolutePos(el); this.showAt(p.x, p.y + el.offsetHeight);}; Calendar.prototype.setDateFormat = function (str) { this.dateFormat = str;}; Calendar.prototype.setTtDateFormat = function (str) { this.ttDateFormat = str;}; Calendar.prototype.parseDate = function (str, fmt) { var y = 0; var m = -1; var d = 0; var a = str.split(/\W+/); if (!fmt) { fmt = this.dateFormat;}
var b = fmt.split(/\W+/); var i = 0, j = 0; for (i = 0; i < a.length; ++i) { if (b[i] == "D" || b[i] == "DD") { continue;}
if (b[i] == "d" || b[i] == "dd") { d = parseInt(a[i], 10);}
if (b[i] == "m" || b[i] == "mm") { m = parseInt(a[i], 10) - 1;}
if (b[i] == "y") { y = parseInt(a[i], 10);}
if (b[i] == "yy") { y = parseInt(a[i], 10) + 1900;}
if (b[i] == "M" || b[i] == "MM") { for (j = 0; j < 12; ++j) { if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break;}
}
}
}
if (y != 0 && m != -1 && d != 0) { this.setDate(new Date(y, m, d)); return;}
y = 0; m = -1; d = 0; for (i = 0; i < a.length; ++i) { if (a[i].search(/[a-zA-Z]+/) != -1) { var t = -1; for (j = 0; j < 12; ++j) { if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break;}
}
if (t != -1) { if (m != -1) { d = m+1;}
m = t;}
} else if (parseInt(a[i], 10) <= 12 && m == -1) { m = a[i]-1;} else if (parseInt(a[i], 10) > 31 && y == 0) { y = a[i];} else if (d == 0) { d = a[i];}
}
if (y == 0) { var today = new Date(); y = today.getFullYear();}
if (m != -1 && d != 0) { this.setDate(new Date(y, m, d));}
}; Calendar.prototype.hideShowCovered = function () { var tags = new Array("applet", "iframe", "select"); var el = this.element; var p = Calendar.getAbsolutePos(el); var EX1 = p.x; var EX2 = el.offsetWidth + EX1; var EY1 = p.y; var EY2 = el.offsetHeight + EY1; for (var k = tags.length; k > 0; ) { var ar = document.getElementsByTagName(tags[--k]); var cc = null; for (var i = ar.length; i > 0;) { cc = ar[--i]; p = Calendar.getAbsolutePos(cc); var CX1 = p.x; var CX2 = cc.offsetWidth + CX1; var CY1 = p.y; var CY2 = cc.offsetHeight + CY1; if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) { cc.style.visibility = "visible";} else { cc.style.visibility = "hidden";}
}
}
}; Calendar.prototype._displayWeekdays = function () { var MON = this.mondayFirst ? 0 : 1; var SUN = this.mondayFirst ? 6 : 0; var SAT = this.mondayFirst ? 5 : 6; var cell = this.firstdayname; for (var i = 0; i < 7; ++i) { cell.className = "day name"; if (!i) { cell.ttip = this.mondayFirst ? Calendar._TT["SUN_FIRST"] : Calendar._TT["MON_FIRST"]; cell.navtype = 100; cell.calendar = this; Calendar._add_evs(cell);}
if (i == SUN || i == SAT) { Calendar.addClass(cell, "weekend");}
cell.firstChild.data = Calendar._DN3[i + 1 - MON]; cell = cell.nextSibling;}
}; Calendar.prototype._hideCombos = function () { this.monthsCombo.style.display = "none"; this.yearsCombo.style.display = "none";}; Calendar.prototype._dragStart = function (ev) { if (this.dragging) { return;}
this.dragging = true; var posX; var posY; if (Calendar.is_ie) { posY = window.event.clientY + document.body.scrollTop; posX = window.event.clientX + document.body.scrollLeft;} else { posY = ev.clientY + window.scrollY; posX = ev.clientX + window.scrollX;}
var st = this.element.style; this.xOffs = posX - parseInt(st.left); this.yOffs = posY - parseInt(st.top); with (Calendar) { addEvent(document, "mousemove", calDragIt); addEvent(document, "mouseover", stopEvent); addEvent(document, "mouseup", calDragEnd);}
}; Date._MD = new Array(31,28,31,30,31,30,31,31,30,31,30,31); Date.SECOND = 1000 ; Date.MINUTE = 60 * Date.SECOND; Date.HOUR = 60 * Date.MINUTE; Date.DAY = 24 * Date.HOUR; Date.WEEK = 7 * Date.DAY; Date.prototype.getMonthDays = function(month) { var year = this.getFullYear(); if (typeof month == "undefined") { month = this.getMonth();}
if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) { return 29;} else { return Date._MD[month];}
}; Date.prototype.getWeekNumber = function() { var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0); var then = new Date(this.getFullYear(), 0, 1, 0, 0, 0); var time = now - then; var day = then.getDay(); (day > 3) && (day -= 4) || (day += 3); return Math.round(((time / Date.DAY) + day) / 7);}; Date.prototype.equalsTo = function(date) { return ((this.getFullYear() == date.getFullYear()) &&
(this.getMonth() == date.getMonth()) &&
(this.getDate() == date.getDate()));}; Date.prototype.print = function (frm) { var str = new String(frm); var m = this.getMonth(); var d = this.getDate(); var y = this.getFullYear(); var wn = this.getWeekNumber(); var w = this.getDay(); var s = new Array(); s["d"] = d; s["dd"] = (d < 10) ? ("0" + d) : d; s["m"] = 1+m; s["mm"] = (m < 9) ? ("0" + (1+m)) : (1+m); s["y"] = y; s["yy"] = new String(y).substr(2, 2); s["w"] = wn; s["ww"] = (wn < 10) ? ("0" + wn) : wn; with (Calendar) { s["D"] = _DN3[w]; s["DD"] = _DN[w]; s["M"] = _MN3[m]; s["MM"] = _MN[m];}
var re = /(.*)(\W|^)(d|dd|m|mm|y|yy|MM|M|DD|D|w|ww)(\W|$)(.*)/; while (re.exec(str) != null) { str = RegExp.$1 + RegExp.$2 + s[RegExp.$3] + RegExp.$4 + RegExp.$5;}
return str;}; window.calendar = null;js/calendar/index.html000064400000000057152200041010010711 0ustar00<html>
<body bgcolor="#FFFFFF">
</body>
</html>js/calendar/calendar.js000064400000101342152200041010011022 0ustar00/*  Copyright Mihai Bazon, 2002  |  http://students.infoiasi.ro/~mishoo
 * ---------------------------------------------------------------------
 *
 * The DHTML Calendar, version 0.9.2 "The art of date selection"
 *
 * Details and latest version at:
 * http://students.infoiasi.ro/~mishoo/site/calendar.epl
 *
 * Feel free to use this script under the terms of the GNU Lesser General
 * Public License, as long as you do not remove or alter this notice.
 */

// $Id: calendar.js 10389 2008-06-03 11:27:38Z pasamio $

/** The Calendar object constructor. */
Calendar = function (mondayFirst, dateStr, onSelected, onClose) {
	// member variables
	this.activeDiv = null;
	this.currentDateEl = null;
	this.checkDisabled = null;
	this.timeout = null;
	this.onSelected = onSelected || null;
	this.onClose = onClose || null;
	this.dragging = false;
	this.hidden = false;
	this.minYear = 1970;
	this.maxYear = 2050;
	this.dateFormat = Calendar._TT["DEF_DATE_FORMAT"];
	this.ttDateFormat = Calendar._TT["TT_DATE_FORMAT"];
	this.isPopup = true;
	this.weekNumbers = true;
	this.mondayFirst = mondayFirst;
	this.dateStr = dateStr;
	this.ar_days = null;
	// HTML elements
	this.table = null;
	this.element = null;
	this.tbody = null;
	this.firstdayname = null;
	// Combo boxes
	this.monthsCombo = null;
	this.yearsCombo = null;
	this.hilitedMonth = null;
	this.activeMonth = null;
	this.hilitedYear = null;
	this.activeYear = null;

	// one-time initializations
	if (!Calendar._DN3) {
		// table of short day names
		var ar = new Array();
		for (var i = 8; i > 0;) {
			ar[--i] = Calendar._DN[i].substr(0, 3);
		}
		Calendar._DN3 = ar;
		// table of short month names
		ar = new Array();
		for (var i = 12; i > 0;) {
			ar[--i] = Calendar._MN[i].substr(0, 3);
		}
		Calendar._MN3 = ar;
	}
};

// ** constants

/// "static", needed for event handlers.
Calendar._C = null;

/// detect a special case of "web browser"
Calendar.is_ie = ( (navigator.userAgent.toLowerCase().indexOf("msie") != -1) &&
		   (navigator.userAgent.toLowerCase().indexOf("opera") == -1) );

// short day names array (initialized at first constructor call)
Calendar._DN3 = null;

// short month names array (initialized at first constructor call)
Calendar._MN3 = null;

// BEGIN: UTILITY FUNCTIONS; beware that these might be moved into a separate
//        library, at some point.

Calendar.getAbsolutePos = function(el) {
	var r = { x: el.offsetLeft, y: el.offsetTop };
	if (el.offsetParent) {
		var tmp = Calendar.getAbsolutePos(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
};

Calendar.isRelated = function (el, evt) {
	var related = evt.relatedTarget;
	if (!related) {
		var type = evt.type;
		if (type == "mouseover") {
			related = evt.fromElement;
		} else if (type == "mouseout") {
			related = evt.toElement;
		}
	}
	while (related) {
		if (related == el) {
			return true;
		}
		related = related.parentNode;
	}
	return false;
};

Calendar.removeClass = function(el, className) {
	if (!(el && el.className)) {
		return;
	}
	var cls = el.className.split(" ");
	var ar = new Array();
	for (var i = cls.length; i > 0;) {
		if (cls[--i] != className) {
			ar[ar.length] = cls[i];
		}
	}
	el.className = ar.join(" ");
};

Calendar.addClass = function(el, className) {
	Calendar.removeClass(el, className);
	el.className += " " + className;
};

Calendar.getElement = function(ev) {
	if (Calendar.is_ie) {
		return window.event.srcElement;
	} else {
		return ev.currentTarget;
	}
};

Calendar.getTargetElement = function(ev) {
	if (Calendar.is_ie) {
		return window.event.srcElement;
	} else {
		return ev.target;
	}
};

Calendar.stopEvent = function(ev) {
	if (Calendar.is_ie) {
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	} else {
		ev.preventDefault();
		ev.stopPropagation();
	}
};

Calendar.addEvent = function(el, evname, func) {
	if (Calendar.is_ie) {
		el.attachEvent("on" + evname, func);
	} else {
		el.addEventListener(evname, func, true);
	}
};

Calendar.removeEvent = function(el, evname, func) {
	if (Calendar.is_ie) {
		el.detachEvent("on" + evname, func);
	} else {
		el.removeEventListener(evname, func, true);
	}
};

Calendar.createElement = function(type, parent) {
	var el = null;
	if (document.createElementNS) {
		// use the XHTML namespace; IE won't normally get here unless
		// _they_ "fix" the DOM2 implementation.
		el = document.createElementNS("http://www.w3.org/1999/xhtml", type);
	} else {
		el = document.createElement(type);
	}
	if (typeof parent != "undefined") {
		parent.appendChild(el);
	}
	return el;
};

// END: UTILITY FUNCTIONS

// BEGIN: CALENDAR STATIC FUNCTIONS

/** Internal -- adds a set of events to make some element behave like a button. */
Calendar._add_evs = function(el) {
	with (Calendar) {
		addEvent(el, "mouseover", dayMouseOver);
		addEvent(el, "mousedown", dayMouseDown);
		addEvent(el, "mouseout", dayMouseOut);
		if (is_ie) {
			addEvent(el, "dblclick", dayMouseDblClick);
			el.setAttribute("unselectable", true);
		}
	}
};

Calendar.findMonth = function(el) {
	if (typeof el.month != "undefined") {
		return el;
	} else if (typeof el.parentNode.month != "undefined") {
		return el.parentNode;
	}
	return null;
};

Calendar.findYear = function(el) {
	if (typeof el.year != "undefined") {
		return el;
	} else if (typeof el.parentNode.year != "undefined") {
		return el.parentNode;
	}
	return null;
};

Calendar.showMonthsCombo = function () {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	var cal = cal;
	var cd = cal.activeDiv;
	var mc = cal.monthsCombo;
	if (cal.hilitedMonth) {
		Calendar.removeClass(cal.hilitedMonth, "hilite");
	}
	if (cal.activeMonth) {
		Calendar.removeClass(cal.activeMonth, "active");
	}
	var mon = cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];
	Calendar.addClass(mon, "active");
	cal.activeMonth = mon;
	mc.style.left = cd.offsetLeft + "px";
	mc.style.top = (cd.offsetTop + cd.offsetHeight) + "px";
	mc.style.display = "block";
};

Calendar.showYearsCombo = function (fwd) {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	var cal = cal;
	var cd = cal.activeDiv;
	var yc = cal.yearsCombo;
	if (cal.hilitedYear) {
		Calendar.removeClass(cal.hilitedYear, "hilite");
	}
	if (cal.activeYear) {
		Calendar.removeClass(cal.activeYear, "active");
	}
	cal.activeYear = null;
	var Y = cal.date.getFullYear() + (fwd ? 1 : -1);
	var yr = yc.firstChild;
	var show = false;
	for (var i = 12; i > 0; --i) {
		if (Y >= cal.minYear && Y <= cal.maxYear) {
			yr.firstChild.data = Y;
			yr.year = Y;
			yr.style.display = "block";
			show = true;
		} else {
			yr.style.display = "none";
		}
		yr = yr.nextSibling;
		Y += fwd ? 2 : -2;
	}
	if (show) {
		yc.style.left = cd.offsetLeft + "px";
		yc.style.top = (cd.offsetTop + cd.offsetHeight) + "px";
		yc.style.display = "block";
	}
};

// event handlers

Calendar.tableMouseUp = function(ev) {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	if (cal.timeout) {
		clearTimeout(cal.timeout);
	}
	var el = cal.activeDiv;
	if (!el) {
		return false;
	}
	var target = Calendar.getTargetElement(ev);
	Calendar.removeClass(el, "active");
	if (target == el || target.parentNode == el) {
		Calendar.cellClick(el);
	}
	var mon = Calendar.findMonth(target);
	var date = null;
	if (mon) {
		date = new Date(cal.date);
		if (mon.month != date.getMonth()) {
			date.setMonth(mon.month);
			cal.setDate(date);
		}
	} else {
		var year = Calendar.findYear(target);
		if (year) {
			date = new Date(cal.date);
			if (year.year != date.getFullYear()) {
				date.setFullYear(year.year);
				cal.setDate(date);
			}
		}
	}
	with (Calendar) {
		removeEvent(document, "mouseup", tableMouseUp);
		removeEvent(document, "mouseover", tableMouseOver);
		removeEvent(document, "mousemove", tableMouseOver);
		cal._hideCombos();
		stopEvent(ev);
		_C = null;
	}
};

Calendar.tableMouseOver = function (ev) {
	var cal = Calendar._C;
	if (!cal) {
		return;
	}
	var el = cal.activeDiv;
	var target = Calendar.getTargetElement(ev);
	if (target == el || target.parentNode == el) {
		Calendar.addClass(el, "hilite active");
		Calendar.addClass(el.parentNode, "rowhilite");
	} else {
		Calendar.removeClass(el, "active");
		Calendar.removeClass(el, "hilite");
		Calendar.removeClass(el.parentNode, "rowhilite");
	}
	var mon = Calendar.findMonth(target);
	if (mon) {
		if (mon.month != cal.date.getMonth()) {
			if (cal.hilitedMonth) {
				Calendar.removeClass(cal.hilitedMonth, "hilite");
			}
			Calendar.addClass(mon, "hilite");
			cal.hilitedMonth = mon;
		} else if (cal.hilitedMonth) {
			Calendar.removeClass(cal.hilitedMonth, "hilite");
		}
	} else {
		var year = Calendar.findYear(target);
		if (year) {
			if (year.year != cal.date.getFullYear()) {
				if (cal.hilitedYear) {
					Calendar.removeClass(cal.hilitedYear, "hilite");
				}
				Calendar.addClass(year, "hilite");
				cal.hilitedYear = year;
			} else if (cal.hilitedYear) {
				Calendar.removeClass(cal.hilitedYear, "hilite");
			}
		}
	}
	Calendar.stopEvent(ev);
};

Calendar.tableMouseDown = function (ev) {
	if (Calendar.getTargetElement(ev) == Calendar.getElement(ev)) {
		Calendar.stopEvent(ev);
	}
};

Calendar.calDragIt = function (ev) {
	var cal = Calendar._C;
	if (!(cal && cal.dragging)) {
		return false;
	}
	var posX;
	var posY;
	if (Calendar.is_ie) {
		posY = window.event.clientY + document.body.scrollTop;
		posX = window.event.clientX + document.body.scrollLeft;
	} else {
		posX = ev.pageX;
		posY = ev.pageY;
	}
	cal.hideShowCovered();
	var st = cal.element.style;
	st.left = (posX - cal.xOffs) + "px";
	st.top = (posY - cal.yOffs) + "px";
	Calendar.stopEvent(ev);
};

Calendar.calDragEnd = function (ev) {
	var cal = Calendar._C;
	if (!cal) {
		return false;
	}
	cal.dragging = false;
	with (Calendar) {
		removeEvent(document, "mousemove", calDragIt);
		removeEvent(document, "mouseover", stopEvent);
		removeEvent(document, "mouseup", calDragEnd);
		tableMouseUp(ev);
	}
	cal.hideShowCovered();
};

Calendar.dayMouseDown = function(ev) {
	var el = Calendar.getElement(ev);
	if (el.disabled) {
		return false;
	}
	var cal = el.calendar;
	cal.activeDiv = el;
	Calendar._C = cal;
	if (el.navtype != 300) with (Calendar) {
		addClass(el, "hilite active");
		addEvent(document, "mouseover", tableMouseOver);
		addEvent(document, "mousemove", tableMouseOver);
		addEvent(document, "mouseup", tableMouseUp);
	} else if (cal.isPopup) {
		cal._dragStart(ev);
	}
	Calendar.stopEvent(ev);
	if (el.navtype == -1 || el.navtype == 1) {
		cal.timeout = setTimeout("Calendar.showMonthsCombo()", 250);
	} else if (el.navtype == -2 || el.navtype == 2) {
		cal.timeout = setTimeout((el.navtype > 0) ? "Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", 250);
	} else {
		cal.timeout = null;
	}
};

Calendar.dayMouseDblClick = function(ev) {
	Calendar.cellClick(Calendar.getElement(ev));
	if (Calendar.is_ie) {
		document.selection.empty();
	}
};

Calendar.dayMouseOver = function(ev) {
	var el = Calendar.getElement(ev);
	if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) {
		return false;
	}
	if (el.ttip) {
		if (el.ttip.substr(0, 1) == "_") {
			var date = null;
			with (el.calendar.date) {
				date = new Date(getFullYear(), getMonth(), el.caldate);
			}
			el.ttip = date.print(el.calendar.ttDateFormat) + el.ttip.substr(1);
		}
		el.calendar.tooltips.firstChild.data = el.ttip;
	}
	if (el.navtype != 300) {
		Calendar.addClass(el, "hilite");
		if (el.caldate) {
			Calendar.addClass(el.parentNode, "rowhilite");
		}
	}
	Calendar.stopEvent(ev);
};

Calendar.dayMouseOut = function(ev) {
	with (Calendar) {
		var el = getElement(ev);
		if (isRelated(el, ev) || _C || el.disabled) {
			return false;
		}
		removeClass(el, "hilite");
		if (el.caldate) {
			removeClass(el.parentNode, "rowhilite");
		}
		el.calendar.tooltips.firstChild.data = _TT["SEL_DATE"];
		stopEvent(ev);
	}
};

/**
 *  A generic "click" handler :) handles all types of buttons defined in this
 *  calendar.
 */
Calendar.cellClick = function(el) {
	var cal = el.calendar;
	var closing = false;
	var newdate = false;
	var date = null;
	if (typeof el.navtype == "undefined") {
		Calendar.removeClass(cal.currentDateEl, "selected");
		Calendar.addClass(el, "selected");
		closing = (cal.currentDateEl == el);
		if (!closing) {
			cal.currentDateEl = el;
		}
		cal.date.setDate(el.caldate);
		date = cal.date;
		newdate = true;
	} else {
		if (el.navtype == 200) {
			Calendar.removeClass(el, "hilite");
			cal.callCloseHandler();
			return;
		}
		date = (el.navtype == 0) ? new Date() : new Date(cal.date);
		var year = date.getFullYear();
		var mon = date.getMonth();
		function setMonth(m) {
			var day = date.getDate();
			var max = date.getMonthDays(m);
			if (day > max) {
				date.setDate(max);
			}
			date.setMonth(m);
		};
		switch (el.navtype) {
		    case -2:
			if (year > cal.minYear) {
				date.setFullYear(year - 1);
			}
			break;
		    case -1:
			if (mon > 0) {
				setMonth(mon - 1);
			} else if (year-- > cal.minYear) {
				date.setFullYear(year);
				setMonth(11);
			}
			break;
		    case 1:
			if (mon < 11) {
				setMonth(mon + 1);
			} else if (year < cal.maxYear) {
				date.setFullYear(year + 1);
				setMonth(0);
			}
			break;
		    case 2:
			if (year < cal.maxYear) {
				date.setFullYear(year + 1);
			}
			break;
		    case 100:
			cal.setMondayFirst(!cal.mondayFirst);
			return;
		}
		if (!date.equalsTo(cal.date)) {
			cal.setDate(date);
			newdate = el.navtype == 0;
		}
	}
	if (newdate) {
		cal.callHandler();
	}
	if (closing) {
		Calendar.removeClass(el, "hilite");
		cal.callCloseHandler();
	}
};

// END: CALENDAR STATIC FUNCTIONS

// BEGIN: CALENDAR OBJECT FUNCTIONS

/**
 *  This function creates the calendar inside the given parent.  If _par is
 *  null than it creates a popup calendar inside the BODY element.  If _par is
 *  an element, be it BODY, then it creates a non-popup calendar (still
 *  hidden).  Some properties need to be set before calling this function.
 */
Calendar.prototype.create = function (_par) {
	var parent = null;
	if (! _par) {
		// default parent is the document body, in which case we create
		// a popup calendar.
		parent = document.getElementsByTagName("body")[0];
		this.isPopup = true;
	} else {
		parent = _par;
		this.isPopup = false;
	}
	this.date = this.dateStr ? new Date(this.dateStr) : new Date();

	var table = Calendar.createElement("table");
	this.table = table;
	table.cellSpacing = 0;
	table.cellPadding = 0;
	table.calendar = this;
	Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown);

	var div = Calendar.createElement("div");
	this.element = div;
	div.className = "calendar";
	if (this.isPopup) {
		div.style.position = "absolute";
		div.style.display = "none";
	}
	div.appendChild(table);

	var thead = Calendar.createElement("thead", table);
	var cell = null;
	var row = null;

	var cal = this;
	var hh = function (text, cs, navtype) {
		cell = Calendar.createElement("td", row);
		cell.colSpan = cs;
		cell.className = "button";
		Calendar._add_evs(cell);
		cell.calendar = cal;
		cell.navtype = navtype;
		if (text.substr(0, 1) != "&") {
			cell.appendChild(document.createTextNode(text));
		}
		else {
			// FIXME: dirty hack for entities
			cell.innerHTML = text;
		}
		return cell;
	};

	row = Calendar.createElement("tr", thead);
	var title_length = 6;
	(this.isPopup) && --title_length;
	(this.weekNumbers) && ++title_length;

	hh("-", 1, 100).ttip = Calendar._TT["TOGGLE"];
	this.title = hh("", title_length, 300);
	this.title.className = "title";
	if (this.isPopup) {
		this.title.ttip = Calendar._TT["DRAG_TO_MOVE"];
		this.title.style.cursor = "move";
		hh("&#x00d7;", 1, 200).ttip = Calendar._TT["CLOSE"];
	}

	row = Calendar.createElement("tr", thead);
	row.className = "headrow";

	this._nav_py = hh("&#x00ab;", 1, -2);
	this._nav_py.ttip = Calendar._TT["PREV_YEAR"];

	this._nav_pm = hh("&#x2039;", 1, -1);
	this._nav_pm.ttip = Calendar._TT["PREV_MONTH"];

	this._nav_now = hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, 0);
	this._nav_now.ttip = Calendar._TT["GO_TODAY"];

	this._nav_nm = hh("&#x203a;", 1, 1);
	this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"];

	this._nav_ny = hh("&#x00bb;", 1, 2);
	this._nav_ny.ttip = Calendar._TT["NEXT_YEAR"]

	// day names
	row = Calendar.createElement("tr", thead);
	row.className = "daynames";
	if (this.weekNumbers) {
		cell = Calendar.createElement("td", row);
		cell.className = "name wn";
		cell.appendChild(document.createTextNode(Calendar._TT["WK"]));
	}
	for (var i = 7; i > 0; --i) {
		cell = Calendar.createElement("td", row);
		cell.appendChild(document.createTextNode(""));
		if (!i) {
			cell.navtype = 100;
			cell.calendar = this;
			Calendar._add_evs(cell);
		}
	}
	this.firstdayname = (this.weekNumbers) ? row.firstChild.nextSibling : row.firstChild;
	this._displayWeekdays();

	var tbody = Calendar.createElement("tbody", table);
	this.tbody = tbody;

	for (i = 6; i > 0; --i) {
		row = Calendar.createElement("tr", tbody);
		if (this.weekNumbers) {
			cell = Calendar.createElement("td", row);
			cell.appendChild(document.createTextNode(""));
		}
		for (var j = 7; j > 0; --j) {
			cell = Calendar.createElement("td", row);
			cell.appendChild(document.createTextNode(""));
			cell.calendar = this;
			Calendar._add_evs(cell);
		}
	}

	var tfoot = Calendar.createElement("tfoot", table);

	row = Calendar.createElement("tr", tfoot);
	row.className = "footrow";

	cell = hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300);
	cell.className = "ttip";
	if (this.isPopup) {
		cell.ttip = Calendar._TT["DRAG_TO_MOVE"];
		cell.style.cursor = "move";
	}
	this.tooltips = cell;

	div = Calendar.createElement("div", this.element);
	this.monthsCombo = div;
	div.className = "combo";
	for (i = 0; i < Calendar._MN.length; ++i) {
		var mn = Calendar.createElement("div");
		mn.className = "label";
		mn.month = i;
		mn.appendChild(document.createTextNode(Calendar._MN3[i]));
		div.appendChild(mn);
	}

	div = Calendar.createElement("div", this.element);
	this.yearsCombo = div;
	div.className = "combo";
	for (i = 12; i > 0; --i) {
		var yr = Calendar.createElement("div");
		yr.className = "label";
		yr.appendChild(document.createTextNode(""));
		div.appendChild(yr);
	}

	this._init(this.mondayFirst, this.date);
	parent.appendChild(this.element);
};

/** keyboard navigation, only for popup calendars */
Calendar._keyEvent = function(ev) {
	if (!window.calendar) {
		return false;
	}
	(Calendar.is_ie) && (ev = window.event);
	var cal = window.calendar;
	var act = (Calendar.is_ie || ev.type == "keypress");
	if (ev.ctrlKey) {
		switch (ev.keyCode) {
		    case 37: // KEY left
			act && Calendar.cellClick(cal._nav_pm);
			break;
		    case 38: // KEY up
			act && Calendar.cellClick(cal._nav_py);
			break;
		    case 39: // KEY right
			act && Calendar.cellClick(cal._nav_nm);
			break;
		    case 40: // KEY down
			act && Calendar.cellClick(cal._nav_ny);
			break;
		    default:
			return false;
		}
	} else switch (ev.keyCode) {
	    case 32: // KEY space (now)
		Calendar.cellClick(cal._nav_now);
		break;
	    case 27: // KEY esc
		act && cal.hide();
		break;
	    case 37: // KEY left
	    case 38: // KEY up
	    case 39: // KEY right
	    case 40: // KEY down
		if (act) {
			var date = cal.date.getDate() - 1;
			var el = cal.currentDateEl;
			var ne = null;
			var prev = (ev.keyCode == 37) || (ev.keyCode == 38);
			switch (ev.keyCode) {
			    case 37: // KEY left
				(--date >= 0) && (ne = cal.ar_days[date]);
				break;
			    case 38: // KEY up
				date -= 7;
				(date >= 0) && (ne = cal.ar_days[date]);
				break;
			    case 39: // KEY right
				(++date < cal.ar_days.length) && (ne = cal.ar_days[date]);
				break;
			    case 40: // KEY down
				date += 7;
				(date < cal.ar_days.length) && (ne = cal.ar_days[date]);
				break;
			}
			if (!ne) {
				if (prev) {
					Calendar.cellClick(cal._nav_pm);
				} else {
					Calendar.cellClick(cal._nav_nm);
				}
				date = (prev) ? cal.date.getMonthDays() : 1;
				el = cal.currentDateEl;
				ne = cal.ar_days[date - 1];
			}
			Calendar.removeClass(el, "selected");
			Calendar.addClass(ne, "selected");
			cal.date.setDate(ne.caldate);
			cal.currentDateEl = ne;
		}
		break;
	    case 13: // KEY enter
		if (act) {
			cal.callHandler();
			cal.hide();
		}
		break;
	    default:
		return false;
	}
	Calendar.stopEvent(ev);
};

/**
 *  (RE)Initializes the calendar to the given date and style (if mondayFirst is
 *  true it makes Monday the first day of week, otherwise the weeks start on
 *  Sunday.
 */
Calendar.prototype._init = function (mondayFirst, date) {
	var today = new Date();
	var year = date.getFullYear();
	if (year < this.minYear) {
		year = this.minYear;
		date.setFullYear(year);
	} else if (year > this.maxYear) {
		year = this.maxYear;
		date.setFullYear(year);
	}
	this.mondayFirst = mondayFirst;
	this.date = new Date(date);
	var month = date.getMonth();
	var mday = date.getDate();
	var no_days = date.getMonthDays();
	date.setDate(1);
	var wday = date.getDay();
	var MON = mondayFirst ? 1 : 0;
	var SAT = mondayFirst ? 5 : 6;
	var SUN = mondayFirst ? 6 : 0;
	if (mondayFirst) {
		wday = (wday > 0) ? (wday - 1) : 6;
	}
	var iday = 1;
	var row = this.tbody.firstChild;
	var MN = Calendar._MN3[month];
	var hasToday = ((today.getFullYear() == year) && (today.getMonth() == month));
	var todayDate = today.getDate();
	var week_number = date.getWeekNumber();
	var ar_days = new Array();
	for (var i = 0; i < 6; ++i) {
		if (iday > no_days) {
			row.className = "emptyrow";
			row = row.nextSibling;
			continue;
		}
		var cell = row.firstChild;
		if (this.weekNumbers) {
			cell.className = "day wn";
			cell.firstChild.data = week_number;
			cell = cell.nextSibling;
		}
		++week_number;
		row.className = "daysrow";
		for (var j = 0; j < 7; ++j) {
			cell.className = "day";
			if ((!i && j < wday) || iday > no_days) {
				// cell.className = "emptycell";
				cell.innerHTML = "&nbsp;";
				cell.disabled = true;
				cell = cell.nextSibling;
				continue;
			}
			cell.disabled = false;
			cell.firstChild.data = iday;
			if (typeof this.checkDisabled == "function") {
				date.setDate(iday);
				if (this.checkDisabled(date)) {
					cell.className += " disabled";
					cell.disabled = true;
				}
			}
			if (!cell.disabled) {
				ar_days[ar_days.length] = cell;
				cell.caldate = iday;
				cell.ttip = "_";
				if (iday == mday) {
					cell.className += " selected";
					this.currentDateEl = cell;
				}
				if (hasToday && (iday == todayDate)) {
					cell.className += " today";
					cell.ttip += Calendar._TT["PART_TODAY"];
				}
				if (wday == SAT || wday == SUN) {
					cell.className += " weekend";
				}
			}
			++iday;
			((++wday) ^ 7) || (wday = 0);
			cell = cell.nextSibling;
		}
		row = row.nextSibling;
	}
	this.ar_days = ar_days;
	this.title.firstChild.data = Calendar._MN[month] + ", " + year;
	// PROFILE
	// this.tooltips.firstChild.data = "Generated in " + ((new Date()) - today) + " ms";
};

/**
 *  Calls _init function above for going to a certain date (but only if the
 *  date is different than the currently selected one).
 */
Calendar.prototype.setDate = function (date) {
	if (!date.equalsTo(this.date)) {
		this._init(this.mondayFirst, date);
	}
};

/** Modifies the "mondayFirst" parameter (EU/US style). */
Calendar.prototype.setMondayFirst = function (mondayFirst) {
	this._init(mondayFirst, this.date);
	this._displayWeekdays();
};

/**
 *  Allows customization of what dates are enabled.  The "unaryFunction"
 *  parameter must be a function object that receives the date (as a JS Date
 *  object) and returns a boolean value.  If the returned value is true then
 *  the passed date will be marked as disabled.
 */
Calendar.prototype.setDisabledHandler = function (unaryFunction) {
	this.checkDisabled = unaryFunction;
};

/** Customization of allowed year range for the calendar. */
Calendar.prototype.setRange = function (a, z) {
	this.minYear = a;
	this.maxYear = z;
};

/** Calls the first user handler (selectedHandler). */
Calendar.prototype.callHandler = function () {
	if (this.onSelected) {
		this.onSelected(this, this.date.print(this.dateFormat));
	}
};

/** Calls the second user handler (closeHandler). */
Calendar.prototype.callCloseHandler = function () {
	if (this.onClose) {
		this.onClose(this);
	}
	this.hideShowCovered();
};

/** Removes the calendar object from the DOM tree and destroys it. */
Calendar.prototype.destroy = function () {
	var el = this.element.parentNode;
	el.removeChild(this.element);
	Calendar._C = null;
	delete el;
};

/**
 *  Moves the calendar element to a different section in the DOM tree (changes
 *  its parent).
 */
Calendar.prototype.reparent = function (new_parent) {
	var el = this.element;
	el.parentNode.removeChild(el);
	new_parent.appendChild(el);
};

// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the open
// calendar this function closes it.
Calendar._checkCalendar = function(ev) {
	if (!window.calendar) {
		return false;
	}
	var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
	for (; el != null && el != calendar.element; el = el.parentNode);
	if (el == null) {
		// calls closeHandler which should hide the calendar.
		window.calendar.callCloseHandler();
		Calendar.stopEvent(ev);
	}
};

/** Shows the calendar. */
Calendar.prototype.show = function () {
	var rows = this.table.getElementsByTagName("tr");
	for (var i = rows.length; i > 0;) {
		var row = rows[--i];
		Calendar.removeClass(row, "rowhilite");
		var cells = row.getElementsByTagName("td");
		for (var j = cells.length; j > 0;) {
			var cell = cells[--j];
			Calendar.removeClass(cell, "hilite");
			Calendar.removeClass(cell, "active");
		}
	}
	this.element.style.display = "block";
	this.hidden = false;
	if (this.isPopup) {
		window.calendar = this;
		Calendar.addEvent(document, "keydown", Calendar._keyEvent);
		Calendar.addEvent(document, "keypress", Calendar._keyEvent);
		Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);
	}
	this.hideShowCovered();
};

/**
 *  Hides the calendar.  Also removes any "hilite" from the class of any TD
 *  element.
 */
Calendar.prototype.hide = function () {
	if (this.isPopup) {
		Calendar.removeEvent(document, "keydown", Calendar._keyEvent);
		Calendar.removeEvent(document, "keypress", Calendar._keyEvent);
		Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);
	}
	this.element.style.display = "none";
	this.hidden = true;
	this.hideShowCovered();
};

/**
 *  Shows the calendar at a given absolute position (beware that, depending on
 *  the calendar element style -- position property -- this might be relative
 *  to the parent's containing rectangle).
 */
Calendar.prototype.showAt = function (x, y) {
	var s = this.element.style;
	s.left = x + "px";
	s.top = y + "px";
	this.show();
};

/** Shows the calendar near a given element. */
Calendar.prototype.showAtElement = function (el) {
	var p = Calendar.getAbsolutePos(el);
	this.showAt(p.x, p.y + el.offsetHeight);
};

/** Customizes the date format. */
Calendar.prototype.setDateFormat = function (str) {
	this.dateFormat = str;
};

/** Customizes the tooltip date format. */
Calendar.prototype.setTtDateFormat = function (str) {
	this.ttDateFormat = str;
};

/**
 *  Tries to identify the date represented in a string.  If successful it also
 *  calls this.setDate which moves the calendar to the given date.
 */
Calendar.prototype.parseDate = function (str, fmt) {
	var y = 0;
	var m = -1;
	var d = 0;
	var a = str.split(/\W+/);
	if (!fmt) {
		fmt = this.dateFormat;
	}
	var b = fmt.split(/\W+/);
	var i = 0, j = 0;
	for (i = 0; i < a.length; ++i) {
		if (b[i] == "D" || b[i] == "DD") {
			continue;
		}
		if (b[i] == "d" || b[i] == "dd") {
			d = parseInt(a[i], 10);
		}
		if (b[i] == "m" || b[i] == "mm") {
			m = parseInt(a[i], 10) - 1;
		}
		if (b[i] == "y") {
			y = parseInt(a[i], 10);
		}
		if (b[i] == "yy") {
			y = parseInt(a[i], 10) + 1900;
		}
		if (b[i] == "M" || b[i] == "MM") {
			for (j = 0; j < 12; ++j) {
				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }
			}
		}
	}
	if (y != 0 && m != -1 && d != 0) {
		this.setDate(new Date(y, m, d));
		return;
	}
	y = 0; m = -1; d = 0;
	for (i = 0; i < a.length; ++i) {
		if (a[i].search(/[a-zA-Z]+/) != -1) {
			var t = -1;
			for (j = 0; j < 12; ++j) {
				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }
			}
			if (t != -1) {
				if (m != -1) {
					d = m+1;
				}
				m = t;
			}
		} else if (parseInt(a[i], 10) <= 12 && m == -1) {
			m = a[i]-1;
		} else if (parseInt(a[i], 10) > 31 && y == 0) {
			y = a[i];
		} else if (d == 0) {
			d = a[i];
		}
	}
	if (y == 0) {
		var today = new Date();
		y = today.getFullYear();
	}
	if (m != -1 && d != 0) {
		this.setDate(new Date(y, m, d));
	}
};

Calendar.prototype.hideShowCovered = function () {
	var tags = new Array("applet", "iframe", "select");
	var el = this.element;

	var p = Calendar.getAbsolutePos(el);
	var EX1 = p.x;
	var EX2 = el.offsetWidth + EX1;
	var EY1 = p.y;
	var EY2 = el.offsetHeight + EY1;

	for (var k = tags.length; k > 0; ) {
		var ar = document.getElementsByTagName(tags[--k]);
		var cc = null;

		for (var i = ar.length; i > 0;) {
			cc = ar[--i];

			p = Calendar.getAbsolutePos(cc);
			var CX1 = p.x;
			var CX2 = cc.offsetWidth + CX1;
			var CY1 = p.y;
			var CY2 = cc.offsetHeight + CY1;

			if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
				cc.style.visibility = "visible";
			} else {
				cc.style.visibility = "hidden";
			}
		}
	}
};

/** Internal function; it displays the bar with the names of the weekday. */
Calendar.prototype._displayWeekdays = function () {
	var MON = this.mondayFirst ? 0 : 1;
	var SUN = this.mondayFirst ? 6 : 0;
	var SAT = this.mondayFirst ? 5 : 6;
	var cell = this.firstdayname;
	for (var i = 0; i < 7; ++i) {
		cell.className = "day name";
		if (!i) {
			cell.ttip = this.mondayFirst ? Calendar._TT["SUN_FIRST"] : Calendar._TT["MON_FIRST"];
			cell.navtype = 100;
			cell.calendar = this;
			Calendar._add_evs(cell);
		}
		if (i == SUN || i == SAT) {
			Calendar.addClass(cell, "weekend");
		}
		cell.firstChild.data = Calendar._DN3[i + 1 - MON];
		cell = cell.nextSibling;
	}
};

/** Internal function.  Hides all combo boxes that might be displayed. */
Calendar.prototype._hideCombos = function () {
	this.monthsCombo.style.display = "none";
	this.yearsCombo.style.display = "none";
};

/** Internal function.  Starts dragging the element. */
Calendar.prototype._dragStart = function (ev) {
	if (this.dragging) {
		return;
	}
	this.dragging = true;
	var posX;
	var posY;
	if (Calendar.is_ie) {
		posY = window.event.clientY + document.body.scrollTop;
		posX = window.event.clientX + document.body.scrollLeft;
	} else {
		posY = ev.clientY + window.scrollY;
		posX = ev.clientX + window.scrollX;
	}
	var st = this.element.style;
	this.xOffs = posX - parseInt(st.left);
	this.yOffs = posY - parseInt(st.top);
	with (Calendar) {
		addEvent(document, "mousemove", calDragIt);
		addEvent(document, "mouseover", stopEvent);
		addEvent(document, "mouseup", calDragEnd);
	}
};

// BEGIN: DATE OBJECT PATCHES

/** Adds the number of days array to the Date object. */
Date._MD = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

/** Constants used for time computations */
Date.SECOND = 1000 /* milliseconds */;
Date.MINUTE = 60 * Date.SECOND;
Date.HOUR   = 60 * Date.MINUTE;
Date.DAY    = 24 * Date.HOUR;
Date.WEEK   =  7 * Date.DAY;

/** Returns the number of days in the current month */
Date.prototype.getMonthDays = function(month) {
	var year = this.getFullYear();
	if (typeof month == "undefined") {
		month = this.getMonth();
	}
	if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
		return 29;
	} else {
		return Date._MD[month];
	}
};

/** Returns the number of the week.  The algorithm was "stolen" from PPK's
 * website, hope it's correct :) http://www.xs4all.nl/~ppk/js/week.html */
Date.prototype.getWeekNumber = function() {
	var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
	var then = new Date(this.getFullYear(), 0, 1, 0, 0, 0);
	var time = now - then;
	var day = then.getDay();
	(day > 3) && (day -= 4) || (day += 3);
	return Math.round(((time / Date.DAY) + day) / 7);
};

/** Checks dates equality (ignores time) */
Date.prototype.equalsTo = function(date) {
	return ((this.getFullYear() == date.getFullYear()) &&
		(this.getMonth() == date.getMonth()) &&
		(this.getDate() == date.getDate()));
};

/** Prints the date in a string according to the given format. */
Date.prototype.print = function (frm) {
	var str = new String(frm);
	var m = this.getMonth();
	var d = this.getDate();
	var y = this.getFullYear();
	var wn = this.getWeekNumber();
	var w = this.getDay();
	var s = new Array();
	s["d"] = d;
	s["dd"] = (d < 10) ? ("0" + d) : d;
	s["m"] = 1+m;
	s["mm"] = (m < 9) ? ("0" + (1+m)) : (1+m);
	s["y"] = y;
	s["yy"] = new String(y).substr(2, 2);
	s["w"] = wn;
	s["ww"] = (wn < 10) ? ("0" + wn) : wn;
	with (Calendar) {
		s["D"] = _DN3[w];
		s["DD"] = _DN[w];
		s["M"] = _MN3[m];
		s["MM"] = _MN[m];
	}
	var re = /(.*)(\W|^)(d|dd|m|mm|y|yy|MM|M|DD|D|w|ww)(\W|$)(.*)/;
	while (re.exec(str) != null) {
		str = RegExp.$1 + RegExp.$2 + s[RegExp.$3] + RegExp.$4 + RegExp.$5;
	}
	return str;
};

// END: DATE OBJECT PATCHES

// global object that remembers the calendar
window.calendar = null;
js/calendar/README000064400000001413152200041010007571 0ustar00The DHTML Calendar
-------------------

  Author: Mihai Bazon, <mishoo@infoiasi.ro>
          http://students.infoiasi.ro/~mishoo

  This program is free software published under the
  GNU Lesser General Public License.

  For the entire license text please refer to
  http://www.gnu.org/licenses/lgpl

  An additional restriction is that you are not allowed
  to remove the comment note present at the beginning of
  the script.

Contents
---------

  calendar.js -- the main program file
  lang/*.js   -- internalization files
  *.css       -- color themes
  cal.html    -- example usage file

Documentation
--------------

  For details and latest versions please refer to calendar
  homepage, located on my website:

    http://students.infoiasi.ro/~mishoo/site/calendar.epl
js/calendar/calendar-mos.css000064400000007511152200041010011775 0ustar00/* The main calendar widget.  DIV containing a table. */

div.calendar {
  position: relative;
  z-index: 100;
}

.calendar, .calendar table {
  border: 1px solid #cccccc;
  font-size: 11px;
  color: #000;
  cursor: default;
  background: #efefef;
  font-family: arial,verdana,sans-serif;
}

/* Header part -- contains navigation buttons and day names. */

.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
  text-align: center;    /* They are the navigation buttons */
  padding: 2px;          /* Make the buttons seem like they're pressing */
}

.calendar thead .title { /* This holds the current "month, year" */
  font-weight: bold;      /* Pressing it will take you to the current date */
  text-align: center;
  background: #333333;
  color: #ffffff;
  padding: 2px;
}

.calendar thead .headrow { /* Row <TR> containing navigation buttons */
  background: #dedede;
  color: #000;
}

.calendar thead .name { /* Cells <TD> containing the day names */
  border-bottom: 1px solid #cccccc;
  padding: 2px;
  text-align: center;
  color: #000;
}

.calendar thead .weekend { /* How a weekend day name shows in header */
  color: #dedede;
}

.calendar thead .hilite { /* How do the buttons in header appear when hover */
  background: #bbbbbb;
  color: #000000;
  border: 1px solid #cccccc;
  padding: 1px;
}

.calendar thead .active { /* Active (pressed) buttons in header */
  background: #c77;
  padding: 2px 0px 0px 2px;
}

.calendar thead .daynames { /* Row <TR> containing the day names */
  background: #dddddd;
}

/* The body part -- contains all the days in month. */

.calendar tbody .day { /* Cells <TD> containing month days dates */
  width: 2em;
  text-align: right;
  padding: 2px 4px 2px 2px;
}

.calendar table .wn {
  padding: 2px 3px 2px 2px;
  border-right: 1px solid #cccccc;
  background: #dddddd;
}

.calendar tbody .rowhilite td {
  background: #666666;
  color: #ffffff;
}

.calendar tbody .rowhilite td.wn {
  background: #666666;
  color: #ffffff;
}

.calendar tbody td.hilite { /* Hovered cells <TD> */
  background: #999999;
  padding: 1px 3px 1px 1px;
  border: 1px solid #666666;
}

.calendar tbody td.active { /* Active (pressed) cells <TD> */
  background: #000000;
  color: #ffffff;
  padding: 2px 2px 0px 2px;
}

.calendar tbody td.selected { /* Cell showing today date */
  font-weight: bold;
  border: 1px solid #000;
  padding: 1px 3px 1px 1px;
  background: #000000;
  color: #ffffff;
}

.calendar tbody td.weekend { /* Cells showing weekend days */
  color: #cccccc;
}

.calendar tbody td.today { font-weight: bold; }

.calendar tbody .disabled { color: #999; }

.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
  visibility: hidden;
}

.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
  display: none;
}

/* The footer part -- status bar and "Close" button */

.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
  text-align: center;
  background: #cccccc;
  color: #000;
}

.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
  border-top: 1px solid #cccccc;
  background: #efefef;
  color: #000000;
}

.calendar tfoot .hilite { /* Hover style for buttons in footer */
  background: #666666;
  border: 1px solid #f40;
  padding: 1px;
}

.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
  background: #999999;
  padding: 2px 0px 0px 2px;
}

/* Combo boxes (menus that display months/years for direct selection) */

.combo {
  position: absolute;
  display: none;
  top: 0px;
  left: 0px;
  width: 4em;
  cursor: default;
  border: 1px solid #655;
  background: #ffffff;
  color: #000;
  font-size: smaller;
}

.combo .label {
  width: 100%;
  text-align: center;
}

.combo .hilite {
  background: #fc8;
}

.combo .active {
  border-top: 1px solid #cccccc;
  border-bottom: 1px solid #cccccc;
  background: #efefef;
  font-weight: bold;
}
js/calendar/lang/index.html000064400000000054152200041010011627 0ustar00<html><body bgcolor="#FFFFFF"></body></html>js/calendar/lang/calendar-en-GB.js000064400000002073152200041010012632 0ustar00// ** I18N
Calendar._DN = new Array
("Sunday",
 "Monday",
 "Tuesday",
 "Wednesday",
 "Thursday",
 "Friday",
 "Saturday",
 "Sunday");
Calendar._MN = new Array
("January",
 "February",
 "March",
 "April",
 "May",
 "June",
 "July",
 "August",
 "September",
 "October",
 "November",
 "December");

// tooltips
Calendar._TT = {};
Calendar._TT["TOGGLE"] = "Toggle first day of week";
Calendar._TT["PREV_YEAR"] = "Prev. year (hold for menu)";
Calendar._TT["PREV_MONTH"] = "Prev. month (hold for menu)";
Calendar._TT["GO_TODAY"] = "Go Today";
Calendar._TT["NEXT_MONTH"] = "Next month (hold for menu)";
Calendar._TT["NEXT_YEAR"] = "Next year (hold for menu)";
Calendar._TT["SEL_DATE"] = "Select date";
Calendar._TT["DRAG_TO_MOVE"] = "Drag to move";
Calendar._TT["PART_TODAY"] = "(Today)";
Calendar._TT["MON_FIRST"] = "Display Monday first";
Calendar._TT["SUN_FIRST"] = "Display Sunday first";
Calendar._TT["CLOSE"] = "Close";
Calendar._TT["TODAY"] = "Today";

// date formats
Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
Calendar._TT["TT_DATE_FORMAT"] = "D, M d";

Calendar._TT["WK"] = "wk";
js/jscalendar-1.0/calendar_stripped.js000064400000103013152200041010013562 0ustar00/*  Copyright Mihai Bazon, 2002-2005  |  www.bazon.net/mishoo
 * -----------------------------------------------------------
 *
 * The DHTML Calendar, version 1.0 "It is happening again"
 *
 * Details and latest version at:
 * www.dynarch.com/projects/calendar
 *
 * This script is developed by Dynarch.com.  Visit us at www.dynarch.com.
 *
 * This script is distributed under the GNU Lesser General Public License.
 * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
 */
 Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:Calendar._FD;this.showsOtherMonths=false;this.dateStr=dateStr;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined")Calendar._SDN_len=3;var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);}Calendar._SDN=ar;if(typeof Calendar._SMN_len=="undefined")Calendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);}Calendar._SMN=ar;}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft)SL=el.scrollLeft;if(is_div&&el.scrollTop)ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}return r;};Calendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}}while(related){if(related==el){return true;}related=related.parentNode;}return false;};Calendar.removeClass=function(el,className){if(!(el&&el.className)){return;}var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i];}}el.className=ar.join(" ");};Calendar.addClass=function(el,className){Calendar.removeClass(el,className);el.className+=" "+className;};Calendar.getElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName))f=f.parentNode;return f;};Calendar.getTargetElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1)f=f.parentNode;return f;};Calendar.stopEvent=function(ev){ev||(ev=window.event);if(Calendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}return false;};Calendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};Calendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};Calendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);}if(typeof parent!="undefined"){parent.appendChild(el);}return el;};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};Calendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else if(typeof el.parentNode.month!="undefined"){return el.parentNode;}return null;};Calendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else if(typeof el.parentNode.year!="undefined"){return el.parentNode;}return null;};Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}if(cal.activeMonth){Calendar.removeClass(cal.activeMonth,"active");}var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined")mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";};Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}if(cal.activeYear){Calendar.removeClass(cal.activeYear,"active");}cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";}yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;}if(show){var s=yc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined")ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false;}if(cal.timeout){clearTimeout(cal.timeout);}var el=cal.activeDiv;if(!el){return false;}var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev);}var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}}with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev);}};Calendar.tableMouseOver=function(ev){var cal=Calendar._C;if(!cal){return;}var el=cal.activeDiv;var target=Calendar.getTargetElement(ev);if(target==el||target.parentNode==el){Calendar.addClass(el,"hilite active");Calendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2)))Calendar.removeClass(el,"active");Calendar.removeClass(el,"hilite");Calendar.removeClass(el.parentNode,"rowhilite");}ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=Calendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false;}else dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;)if(range[i]==current)break;while(count-->0)if(decrease){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();}var mon=Calendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}Calendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}var year=Calendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}Calendar.addClass(year,"hilite");cal.hilitedYear=year;}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}return Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){return Calendar.stopEvent(ev);}};Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!(cal&&cal.dragging)){return false;}var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posX=ev.pageX;posY=ev.pageY;}cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return Calendar.stopEvent(ev);};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false;}cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev);}cal.hideShowCovered();};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false;}var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300)with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);}if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}return Calendar.stopEvent(ev);};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event);if(Calendar.is_ie){document.selection.empty();}};Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){return false;}if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}el.calendar.tooltips.innerHTML=el.ttip;}if(el.navtype!=300){Calendar.addClass(el,"hilite");if(el.caldate){Calendar.addClass(el.parentNode,"rowhilite");}}return Calendar.stopEvent(ev);};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)return false;removeClass(el,"hilite");if(el.caldate)removeClass(el.parentNode,"rowhilite");if(el.calendar)el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];return stopEvent(ev);}};Calendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}}cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl)cal._toggleMultipleDate(new Date(date));else newdate=!el.disabled;if(other_month)cal._init(cal.firstDayOfWeek,date);}else{if(el.navtype==200){Calendar.removeClass(el,"hilite");cal.callCloseHandler();return;}date=new Date(cal.date);if(el.navtype==0)date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max);}date.setMonth(m);};switch(el.navtype){case 400:Calendar.removeClass(el,"hilite");var text=Calendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?Calendar._TT["ABOUT_TIME"]:"";}else{text="Help and about box text is not translated into this language.\n"+"If you know this language and you feel generous please update\n"+"the corresponding file in \"lang\" subdir to match calendar-en.js\n"+"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\n"+"Thank you!\n"+"http://dynarch.com/mishoo/calendar.epl\n";}alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1);}break;case-1:if(mon>0){setMonth(mon-1);}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11);}break;case 1:if(mon<11){setMonth(mon+1);}else if(year<cal.maxYear){date.setFullYear(year+1);setMonth(0);}break;case 2:if(year<cal.maxYear){date.setFullYear(year+1);}break;case 100:cal.setFirstDayOfWeek(el.fdow);return;case 50:var range=el._range;var current=el.innerHTML;for(var i=range.length;--i>=0;)if(range[i]==current)break;if(ev&&ev.shiftKey){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false;}break;}if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true;}else if(el.navtype==0)newdate=closing=true;}if(newdate){ev&&cal.callHandler();}if(closing){Calendar.removeClass(el,"hilite");ev&&cal.callCloseHandler();}};Calendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true;}else{parent=_par;this.isPopup=false;}this.date=this.dateStr?new Date(this.dateStr):new Date();var table=Calendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown);var div=Calendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none";}div.appendChild(table);var thead=Calendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype){cell=Calendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2)cell.className+=" nav";Calendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="<div unselectable='on'>"+text+"</div>";return cell;};row=Calendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh("?",1,400).ttip=Calendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("&#x00d7;",1,200).ttip=Calendar._TT["CLOSE"];}row=Calendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT["PREV_YEAR"];this._nav_pm=hh("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT["PREV_MONTH"];this._nav_now=hh(Calendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT["GO_TODAY"];this._nav_nm=hh("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];this._nav_ny=hh("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];row=Calendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=Calendar.createElement("td",row);cell.className="name wn";cell.innerHTML=Calendar._TT["WK"];}for(var i=7;i>0;--i){cell=Calendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}}this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();var tbody=Calendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=Calendar.createElement("tr",tbody);if(this.weekNumbers){cell=Calendar.createElement("td",row);}for(var j=7;j>0;--j){cell=Calendar.createElement("td",row);cell.calendar=this;Calendar._add_evs(cell);}}if(this.showsTime){row=Calendar.createElement("tr",tbody);row.className="time";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=Calendar._TT["TIME"]||"&nbsp;";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=Calendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=Calendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number")part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt;}}Calendar._add_evs(part);return part;};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=Calendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12)AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else cell.innerHTML="&nbsp;";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am";}H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins;};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12)h+=12;else if(/am/i.test(AP.innerHTML)&&h==12)h=0;}var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler();};})();}else{this.onSetTime=this.onUpdateTime=function(){};}var tfoot=Calendar.createElement("tfoot",table);row=Calendar.createElement("tr",tfoot);row.className="footrow";cell=hh(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);cell.className="ttip";if(this.isPopup){cell.ttip=Calendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move";}this.tooltips=cell;div=Calendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className=Calendar.is_ie?"label-IEfix":"label";mn.month=i;mn.innerHTML=Calendar._SMN[i];div.appendChild(mn);}div=Calendar.createElement("div",this.element);this.yearsCombo=div;div.className="combo";for(i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className=Calendar.is_ie?"label-IEfix":"label";div.appendChild(yr);}this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element);};Calendar._keyEvent=function(ev){var cal=window._dynarch_popupCalendar;if(!cal||cal.multiple)return false;(Calendar.is_ie)&&(ev=window.event);var act=(Calendar.is_ie||ev.type=="keypress"),K=ev.keyCode;if(ev.ctrlKey){switch(K){case 37:act&&Calendar.cellClick(cal._nav_pm);break;case 38:act&&Calendar.cellClick(cal._nav_py);break;case 39:act&&Calendar.cellClick(cal._nav_nm);break;case 40:act&&Calendar.cellClick(cal._nav_ny);break;default:return false;}}else switch(K){case 32:Calendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;prev=K==37||K==38;step=(K==37||K==39)?1:7;function setVars(){el=cal.currentDateEl;var p=el.pos;x=p&15;y=p>>4;ne=cal.ar_days[y][x];};setVars();function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step);cal.setDate(date);};function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step);cal.setDate(date);};while(1){switch(K){case 37:if(--x>=0)ne=cal.ar_days[y][x];else{x=6;K=38;continue;}break;case 38:if(--y>=0)ne=cal.ar_days[y][x];else{prevMonth();setVars();}break;case 39:if(++x<7)ne=cal.ar_days[y][x];else{x=0;K=40;continue;}break;case 40:if(++y<cal.ar_days.length)ne=cal.ar_days[y][x];else{nextMonth();setVars();}break;}break;}if(ne){if(!ne.disabled)Calendar.cellClick(ne);else if(prev)prevMonth();else nextMonth();}}break;case 13:if(act)Calendar.cellClick(cal.currentDateEl,ev);break;default:return false;}return Calendar.stopEvent(ev);};Calendar.prototype._init=function(firstDayOfWeek,date){var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate();this.table.style.visibility="hidden";var year=date.getFullYear();if(year<this.minYear){year=this.minYear;date.setFullYear(year);}else if(year>this.maxYear){year=this.maxYear;date.setFullYear(year);}this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0)day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=Calendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=Calendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling;}row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true;}else{cell.className="emptycell";cell.innerHTML="&nbsp;";cell.disabled=true;continue;}}else{cell.otherMonth=false;hasdays=true;}cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates)dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip)cell.title=toolTip;}if(status===true){cell.className+=" disabled";cell.disabled=true;}else{if(/disabled/i.test(status))cell.disabled=true;cell.className+=" "+status;}}if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&&current_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell;}if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=Calendar._TT["PART_TODAY"];}if(weekend.indexOf(wday.toString())!=-1)cell.className+=cell.otherMonth?" oweekend":" weekend";}}if(!(hasdays||this.showsOtherMonths))row.className="emptyrow";}this.title.innerHTML=Calendar._MN[month]+", "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates();};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d)continue;if(cell)cell.className+=" selected";}}};Calendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){Calendar.addClass(cell,"selected");this.multiple[ds]=date;}else{Calendar.removeClass(cell,"selected");delete this.multiple[ds];}}}};Calendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};Calendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat));}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this);}this.hideShowCovered();};Calendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};Calendar._checkCalendar=function(ev){var calendar=window._dynarch_popupCalendar;if(!calendar){return false;}var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(ev);}};Calendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];Calendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];Calendar.removeClass(cell,"hilite");Calendar.removeClass(cell,"active");}}this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"keydown",Calendar._keyEvent);Calendar.addEvent(document,"keypress",Calendar._keyEvent);Calendar.addEvent(document,"mousedown",Calendar._checkCalendar);}this.hideShowCovered();};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"keydown",Calendar._keyEvent);Calendar.removeEvent(document,"keypress",Calendar._keyEvent);Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar);}this.element.style.display="none";this.hidden=true;this.hideShowCovered();};Calendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};Calendar.prototype.showAtElement=function(el,opts){var self=this;var p=Calendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true;}function fixPosition(box){if(box.x<0)box.x=0;if(box.y<0)box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=Calendar.getAbsolutePos(cp);document.body.removeChild(cp);if(Calendar.is_ie){br.y+=document.body.scrollTop;br.x+=document.body.scrollLeft;}else{br.y+=window.scrollY;br.x+=window.scrollX;}var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp;};this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1);}switch(valign){case "T":p.y-=h;break;case "B":p.y+=el.offsetHeight;break;case "C":p.y+=(el.offsetHeight-h)/2;break;case "t":p.y+=el.offsetHeight-h;break;case "b":break;}switch(halign){case "L":p.x-=w;break;case "R":p.x+=el.offsetWidth;break;case "C":p.x+=(el.offsetWidth-w)/2;break;case "l":p.x+=el.offsetWidth-w;break;case "r":break;}p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y);};if(Calendar.is_khtml)setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10);else Calendar.continuation_for_the_fucking_khtml_browser();};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};Calendar.prototype.parseDate=function(str,fmt){if(!fmt)fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt));};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera)return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml)value=document.defaultView. getComputedStyle(obj,"").getPropertyValue("visibility");else value='';}else if(obj.currentStyle){value=obj.currentStyle.visibility;}else value='';}return value;};var tags=new Array("applet","iframe","select");var el=this.element;var p=Calendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=Calendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2<EX1)||(CY1>EY2)||(CY2<EY1)){if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility=cc.__msh_save_visibility;}else{if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility="hidden";}}}};Calendar.prototype._displayWeekdays=function(){var fdow=this.firstDayOfWeek;var cell=this.firstdayname;var weekend=Calendar._TT["WEEKEND"];for(var i=0;i<7;++i){cell.className="day name";var realday=(i+fdow)%7;if(i){cell.ttip=Calendar._TT["DAY_FIRST"].replace("%s",Calendar._DN[realday]);cell.navtype=100;cell.calendar=this;cell.fdow=realday;Calendar._add_evs(cell);}if(weekend.indexOf(realday.toString())!=-1){Calendar.addClass(cell,"weekend");}cell.innerHTML=Calendar._SDN[(i+fdow)%7];cell=cell.nextSibling;}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none";};Calendar.prototype._dragStart=function(ev){if(this.dragging){return;}this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX;}var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd);}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(str,fmt){var today=new Date();var y=0;var m=-1;var d=0;var a=str.split(/\W+/);var b=fmt.match(/%./g);var i=0,j=0;var hr=0;var min=0;for(i=0;i<a.length;++i){if(!a[i])continue;switch(b[i]){case "%d":case "%e":d=parseInt(a[i],10);break;case "%m":m=parseInt(a[i],10)-1;break;case "%Y":case "%y":y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);break;case "%b":case "%B":for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}}break;case "%H":case "%I":case "%k":case "%l":hr=parseInt(a[i],10);break;case "%P":case "%p":if(/pm/i.test(a[i])&&hr<12)hr+=12;else if(/am/i.test(a[i])&&hr>=12)hr-=12;break;case "%M":min=parseInt(a[i],10);break;}}if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i<a.length;++i){if(a[i].search(/[a-zA-Z]+/)!=-1){var t=-1;for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break;}}if(t!=-1){if(m!=-1){d=m+1;}m=t;}}else if(parseInt(a[i],10)<=12&&m==-1){m=a[i]-1;}else if(parseInt(a[i],10)>31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);}else if(d==0){d=a[i];}}if(y==0)y=today.getFullYear();if(m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);return today;};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth();}if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY);};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()));};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate());};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0)ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=Calendar._SDN[w];s["%A"]=Calendar._DN[w];s["%b"]=Calendar._SMN[m];s["%B"]=Calendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)return str.replace(re,function(par){return s[par]||par;});var a=str.match(re);for(var i=0;i<a.length;i++){var tmp=s[a[i]];if(tmp){re=new RegExp(a[i],'g');str=str.replace(re,tmp);}}return str;};Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(y){var d=new Date(this);d.__msh_oldSetFullYear(y);if(d.getMonth()!=this.getMonth())this.setDate(28);this.__msh_oldSetFullYear(y);};window._dynarch_popupCalendar=null;js/jscalendar-1.0/index.html000064400000000054152200041010011537 0ustar00<html><body bgcolor="#FFFFFF"></body></html>js/jscalendar-1.0/menuarrow.gif000064400000000104152200041010012244 0ustar00GIF89a��������!�,�D�%J�(Q�D�%J��;js/jscalendar-1.0/calendar-setup_stripped.js000064400000011467152200041010014733 0ustar00/*  Copyright Mihai Bazon, 2002, 2003  |  http://dynarch.com/mishoo/
 * ---------------------------------------------------------------------------
 *
 * The DHTML Calendar
 *
 * Details and latest version at:
 * http://dynarch.com/mishoo/calendar.epl
 *
 * This script is distributed under the GNU Lesser General Public License.
 * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
 *
 * This file defines helper functions for setting up the calendar.  They are
 * intended to help non-programmers get a working calendar on their site
 * quickly.  This script should not be seen as part of the calendar.  It just
 * shows you what one can do with the calendar, while in the same time
 * providing a quick and simple method for setting it up.  If you need
 * exhaustive customization of the calendar creation process feel free to
 * modify this code to suit your needs (this is recommended and much better
 * than modifying calendar.js itself).
 */
 Calendar.setup=function(params){function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def;}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("dateText",null);param_default("firstDay",null);param_default("align","Br");param_default("range",[1900,2999]);param_default("weekNumbers",true);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);param_default("multiple",null);var tmp=["inputField","displayArea","button"];for(var i in tmp){if(typeof params[tmp[i]]=="string"){params[tmp[i]]=document.getElementById(params[tmp[i]]);}}if(!(params.flat||params.multiple||params.inputField||params.displayArea||params.button)){alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");return false;}function onSelect(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);if(update&&p.inputField){p.inputField.value=cal.date.print(p.ifFormat);if(typeof p.inputField.onchange=="function")p.inputField.onchange();}if(update&&p.displayArea)p.displayArea.innerHTML=cal.date.print(p.daFormat);if(update&&typeof p.onUpdate=="function")p.onUpdate(cal);if(update&&p.flat){if(typeof p.flatCallback=="function")p.flatCallback(cal);}if(update&&p.singleClick&&cal.dateClicked)cal.callCloseHandler();};if(params.flat!=null){if(typeof params.flat=="string")params.flat=document.getElementById(params.flat);if(!params.flat){alert("Calendar.setup:\n  Flat specified but can't find parent.");return false;}var cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect);cal.showsOtherMonths=params.showOthers;cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.params=params;cal.weekNumbers=params.weekNumbers;cal.setRange(params.range[0],params.range[1]);cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;if(params.ifFormat){cal.setDateFormat(params.ifFormat);}if(params.inputField&&typeof params.inputField.value=="string"){cal.parseDate(params.inputField.value);}cal.create(params.flat);cal.show();return false;}var triggerEl=params.button||params.displayArea||params.inputField;triggerEl["on"+params.eventName]=function(){var dateEl=params.inputField||params.displayArea;var dateFmt=params.inputField?params.ifFormat:params.daFormat;var mustCreate=false;var cal=window.calendar;if(dateEl)params.date=Date.parseDate(dateEl.value||dateEl.innerHTML,dateFmt);if(!(cal&&params.cache)){window.calendar=cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect,params.onClose||function(cal){cal.hide();});cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.weekNumbers=params.weekNumbers;mustCreate=true;}else{if(params.date)cal.setDate(params.date);cal.hide();}if(params.multiple){cal.multiple={};for(var i=params.multiple.length;--i>=0;){var d=params.multiple[i];var ds=d.print("%Y%m%d");cal.multiple[ds]=d;}}cal.showsOtherMonths=params.showOthers;cal.yearStep=params.step;cal.setRange(params.range[0],params.range[1]);cal.params=params;cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;cal.setDateFormat(dateFmt);if(mustCreate)cal.create();cal.refresh();if(!params.position)cal.showAtElement(params.button||params.displayArea||params.inputField,params.align);else cal.showAt(params.position[0],params.position[1]);return false;};return cal;};js/jscalendar-1.0/calendar-system.css000064400000013113152200041010013347 0ustar00/* The main calendar widget.  DIV containing a table. */

.calendar {
  position: relative;
  display: none;
  border: 1px solid;
  border-color: #fff #000 #000 #fff;
  font-size: 11px;
  cursor: default;
  background: Window;
  color: WindowText;
  font-family: tahoma,verdana,sans-serif;
}

.calendar table {
  border: 1px solid;
  border-color: #fff #000 #000 #fff;
  font-size: 11px;
  cursor: default;
  background: Window;
  color: WindowText;
  font-family: tahoma,verdana,sans-serif;
}

/* Header part -- contains navigation buttons and day names. */

.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
  text-align: center;
  padding: 1px;
  border: 1px solid;
  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
  background: ButtonFace;
}

.calendar .nav {
  background: ButtonFace url(menuarrow.gif) no-repeat 100% 100%;
}

.calendar thead .title { /* This holds the current "month, year" */
  font-weight: bold;
  padding: 1px;
  border: 1px solid #000;
  background: ActiveCaption;
  color: CaptionText;
  text-align: center;
}

.calendar thead .headrow { /* Row <TR> containing navigation buttons */
}

.calendar thead .daynames { /* Row <TR> containing the day names */
}

.calendar thead .name { /* Cells <TD> containing the day names */
  border-bottom: 1px solid ButtonShadow;
  padding: 2px;
  text-align: center;
  background: ButtonFace;
  color: ButtonText;
}

.calendar thead .weekend { /* How a weekend day name shows in header */
  color: #f00;
}

.calendar thead .hilite { /* How do the buttons in header appear when hover */
  border: 2px solid;
  padding: 0px;
  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
}

.calendar thead .active { /* Active (pressed) buttons in header */
  border-width: 1px;
  padding: 2px 0px 0px 2px;
  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
}

/* The body part -- contains all the days in month. */

.calendar tbody .day { /* Cells <TD> containing month days dates */
  width: 2em;
  text-align: right;
  padding: 2px 4px 2px 2px;
}
.calendar tbody .day.othermonth {
  font-size: 80%;
  color: #aaa;
}
.calendar tbody .day.othermonth.oweekend {
  color: #faa;
}

.calendar table .wn {
  padding: 2px 3px 2px 2px;
  border-right: 1px solid ButtonShadow;
  background: ButtonFace;
  color: ButtonText;
}

.calendar tbody .rowhilite td {
  background: Highlight;
  color: HighlightText;
}

.calendar tbody td.hilite { /* Hovered cells <TD> */
  padding: 1px 3px 1px 1px;
  border-top: 1px solid #fff;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  border-left: 1px solid #fff;
}

.calendar tbody td.active { /* Active (pressed) cells <TD> */
  padding: 2px 2px 0px 2px;
  border: 1px solid;
  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
}

.calendar tbody td.selected { /* Cell showing selected date */
  font-weight: bold;
  border: 1px solid;
  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
  padding: 2px 2px 0px 2px;
  background: ButtonFace;
  color: ButtonText;
}

.calendar tbody td.weekend { /* Cells showing weekend days */
  color: #f00;
}

.calendar tbody td.today { /* Cell showing today date */
  font-weight: bold;
  color: #00f;
}

.calendar tbody td.disabled { color: GrayText; }

.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
  visibility: hidden;
}

.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
  display: none;
}

/* The footer part -- status bar and "Close" button */

.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
}

.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
  background: ButtonFace;
  padding: 1px;
  border: 1px solid;
  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
  color: ButtonText;
  text-align: center;
}

.calendar tfoot .hilite { /* Hover style for buttons in footer */
  border-top: 1px solid #fff;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  border-left: 1px solid #fff;
  padding: 1px;
  background: #e4e0d8;
}

.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
  padding: 2px 0px 0px 2px;
  border-top: 1px solid #000;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
  border-left: 1px solid #000;
}

/* Combo boxes (menus that display months/years for direct selection) */

.calendar .combo {
  position: absolute;
  display: none;
  width: 4em;
  top: 0px;
  left: 0px;
  cursor: default;
  border: 1px solid;
  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
  background: Menu;
  color: MenuText;
  font-size: 90%;
  padding: 1px;
  z-index: 100;
}

.calendar .combo .label,
.calendar .combo .label-IEfix {
  text-align: center;
  padding: 1px;
}

.calendar .combo .label-IEfix {
  width: 4em;
}

.calendar .combo .active {
  padding: 0px;
  border: 1px solid #000;
}

.calendar .combo .hilite {
  background: Highlight;
  color: HighlightText;
}

.calendar td.time {
  border-top: 1px solid ButtonShadow;
  padding: 1px 0px;
  text-align: center;
  background-color: ButtonFace;
}

.calendar td.time .hour,
.calendar td.time .minute,
.calendar td.time .ampm {
  padding: 0px 3px 0px 4px;
  border: 1px solid #889;
  font-weight: bold;
  background-color: Menu;
}

.calendar td.time .ampm {
  text-align: center;
}

.calendar td.time .colon {
  padding: 0px 2px 0px 3px;
  font-weight: bold;
}

.calendar td.time span.hilite {
  border-color: #000;
  background-color: Highlight;
  color: HighlightText;
}

.calendar td.time span.active {
  border-color: #f00;
  background-color: #000;
  color: #0f0;
}
js/jscalendar-1.0/menuarrow2.gif000064400000000061152200041010012330 0ustar00GIF89a�BBB���!�,�y�c;js/jscalendar-1.0/lang/cn_utf8.js000064400000010633152200041010012373 0ustar00// ** I18N

// Calendar EN language
// Author: Mihai Bazon, <mishoo@infoiasi.ro>
// Encoding: any
// Translator : Niko <nikoused@gmail.com>
// Distributed under the same terms as the calendar itself.

// For translators: please use UTF-8 if possible.  We strongly believe that
// Unicode is the answer to a real internationalized world.  Also please
// include your contact information in the header, as can be seen above.

// full day names
Calendar._DN = new Array
("\u5468\u65e5",//\u5468\u65e5
 "\u5468\u4e00",//\u5468\u4e00
 "\u5468\u4e8c",//\u5468\u4e8c
 "\u5468\u4e09",//\u5468\u4e09
 "\u5468\u56db",//\u5468\u56db
 "\u5468\u4e94",//\u5468\u4e94
 "\u5468\u516d",//\u5468\u516d
 "\u5468\u65e5");//\u5468\u65e5

// Please note that the following array of short day names (and the same goes
// for short month names, _SMN) isn't absolutely necessary.  We give it here
// for exemplification on how one can customize the short day names, but if
// they are simply the first N letters of the full name you can simply say:
//
//   Calendar._SDN_len = N; // short day name length
//   Calendar._SMN_len = N; // short month name length
//
// If N = 3 then this is not needed either since we assume a value of 3 if not
// present, to be compatible with translation files that were written before
// this feature.

// short day names
Calendar._SDN = new Array
("\u5468\u65e5",
 "\u5468\u4e00",
 "\u5468\u4e8c",
 "\u5468\u4e09",
 "\u5468\u56db",
 "\u5468\u4e94",
 "\u5468\u516d",
 "\u5468\u65e5");

// full month names
Calendar._MN = new Array
("\u4e00\u6708",
 "\u4e8c\u6708",
 "\u4e09\u6708",
 "\u56db\u6708",
 "\u4e94\u6708",
 "\u516d\u6708",
 "\u4e03\u6708",
 "\u516b\u6708",
 "\u4e5d\u6708",
 "\u5341\u6708",
 "\u5341\u4e00\u6708",
 "\u5341\u4e8c\u6708");

// short month names
Calendar._SMN = new Array
("\u4e00\u6708",
 "\u4e8c\u6708",
 "\u4e09\u6708",
 "\u56db\u6708",
 "\u4e94\u6708",
 "\u516d\u6708",
 "\u4e03\u6708",
 "\u516b\u6708",
 "\u4e5d\u6708",
 "\u5341\u6708",
 "\u5341\u4e00\u6708",
 "\u5341\u4e8c\u6708");

// tooltips
Calendar._TT = {};
Calendar._TT["INFO"] = "\u5173\u4e8e";

Calendar._TT["ABOUT"] =
"   DHTML \u65e5\u8d77/\u65f6\u95f4\u9009\u62e9\u63a7\u4ef6\n" +
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
"For latest version visit: \u6700\u65b0\u7248\u672c\u8bf7\u767b\u9646http://www.dynarch.com/projects/calendar/\u5bdf\u770b\n" +
"\u9075\u5faaGNU LGPL.  \u7ec6\u8282\u53c2\u9605 http://gnu.org/licenses/lgpl.html" +
"\n\n" +
"\u65e5\u671f\u9009\u62e9:\n" +
"- \u70b9\u51fb\xab(\xbb)\u6309\u94ae\u9009\u62e9\u4e0a(\u4e0b)\u4e00\u5e74\u5ea6.\n" +
"- \u70b9\u51fb" + String.fromCharCode(0x2039) + "(" + String.fromCharCode(0x203a) + ")\u6309\u94ae\u9009\u62e9\u4e0a(\u4e0b)\u4e2a\u6708\u4efd.\n" +
"- \u957f\u65f6\u95f4\u6309\u7740\u6309\u94ae\u5c06\u51fa\u73b0\u66f4\u591a\u9009\u62e9\u9879.";
Calendar._TT["ABOUT_TIME"] = "\n\n" +
"\u65f6\u95f4\u9009\u62e9:\n" +
"-\u5728\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2)\u4e0a\u5355\u51fb\u9f20\u6807\u5de6\u952e\u6765\u589e\u52a0\u5f53\u524d\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2)\n" +
"-\u5728\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2)\u4e0a\u6309\u4f4fShift\u952e\u540e\u5355\u51fb\u9f20\u6807\u5de6\u952e\u6765\u51cf\u5c11\u5f53\u524d\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2).";

Calendar._TT["PREV_YEAR"] = "\u4e0a\u4e00\u5e74";
Calendar._TT["PREV_MONTH"] = "\u4e0a\u4e2a\u6708";
Calendar._TT["GO_TODAY"] = "\u5230\u4eca\u5929";
Calendar._TT["NEXT_MONTH"] = "\u4e0b\u4e2a\u6708";
Calendar._TT["NEXT_YEAR"] = "\u4e0b\u4e00\u5e74";
Calendar._TT["SEL_DATE"] = "\u9009\u62e9\u65e5\u671f";
Calendar._TT["DRAG_TO_MOVE"] = "\u62d6\u52a8";
Calendar._TT["PART_TODAY"] = " (\u4eca\u5929)";

// the following is to inform that "%s" is to be the first day of week
// %s will be replaced with the day name.
Calendar._TT["DAY_FIRST"] = "%s\u4e3a\u8fd9\u5468\u7684\u7b2c\u4e00\u5929";

// This may be locale-dependent.  It specifies the week-end days, as an array
// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
// means Monday, etc.
Calendar._TT["WEEKEND"] = "0,6";

Calendar._TT["CLOSE"] = "\u5173\u95ed";
Calendar._TT["TODAY"] = "\u4eca\u5929";
Calendar._TT["TIME_PART"] = "(\u6309\u7740Shift\u952e)\u5355\u51fb\u6216\u62d6\u52a8\u6539\u53d8\u503c";

// date formats
Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e\u65e5";

Calendar._TT["WK"] = "\u5468";
Calendar._TT["TIME"] = "\u65f6\u95f4:";
js/jscalendar-1.0/lang/index.html000064400000000054152200041010012460 0ustar00<html><body bgcolor="#FFFFFF"></body></html>js/jscalendar-1.0/lang/calendar-en.js000064400000007017152200041010013200 0ustar00// ** I18N

// Calendar EN language
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
// Encoding: any
// Distributed under the same terms as the calendar itself.

// For translators: please use UTF-8 if possible.  We strongly believe that
// Unicode is the answer to a real internationalized world.  Also please
// include your contact information in the header, as can be seen above.

// full day names
Calendar._DN = new Array
("Sunday",
 "Monday",
 "Tuesday",
 "Wednesday",
 "Thursday",
 "Friday",
 "Saturday",
 "Sunday");

// Please note that the following array of short day names (and the same goes
// for short month names, _SMN) isn't absolutely necessary.  We give it here
// for exemplification on how one can customize the short day names, but if
// they are simply the first N letters of the full name you can simply say:
//
//   Calendar._SDN_len = N; // short day name length
//   Calendar._SMN_len = N; // short month name length
//
// If N = 3 then this is not needed either since we assume a value of 3 if not
// present, to be compatible with translation files that were written before
// this feature.

// short day names
Calendar._SDN = new Array
("Sun",
 "Mon",
 "Tue",
 "Wed",
 "Thu",
 "Fri",
 "Sat",
 "Sun");

// First day of the week. "0" means display Sunday first, "1" means display
// Monday first, etc.
Calendar._FD = 0;

// full month names
Calendar._MN = new Array
("January",
 "February",
 "March",
 "April",
 "May",
 "June",
 "July",
 "August",
 "September",
 "October",
 "November",
 "December");

// short month names
Calendar._SMN = new Array
("Jan",
 "Feb",
 "Mar",
 "Apr",
 "May",
 "Jun",
 "Jul",
 "Aug",
 "Sep",
 "Oct",
 "Nov",
 "Dec");

// tooltips
Calendar._TT = {};
Calendar._TT["INFO"] = "About the calendar";

Calendar._TT["ABOUT"] =
"DHTML Date/Time Selector\n" +
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
"\n\n" +
"Date selection:\n" +
"- Use the \xab, \xbb buttons to select year\n" +
"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
"- Hold mouse button on any of the above buttons for faster selection.";
Calendar._TT["ABOUT_TIME"] = "\n\n" +
"Time selection:\n" +
"- Click on any of the time parts to increase it\n" +
"- or Shift-click to decrease it\n" +
"- or click and drag for faster selection.";

Calendar._TT["PREV_YEAR"] = "Prev. year (hold for menu)";
Calendar._TT["PREV_MONTH"] = "Prev. month (hold for menu)";
Calendar._TT["GO_TODAY"] = "Go Today";
Calendar._TT["NEXT_MONTH"] = "Next month (hold for menu)";
Calendar._TT["NEXT_YEAR"] = "Next year (hold for menu)";
Calendar._TT["SEL_DATE"] = "Select date";
Calendar._TT["DRAG_TO_MOVE"] = "Drag to move";
Calendar._TT["PART_TODAY"] = "(Today)";

// the following is to inform that "%s" is to be the first day of week
// %s will be replaced with the day name.
Calendar._TT["DAY_FIRST"] = "Display %s first";

// This may be locale-dependent.  It specifies the week-end days, as an array
// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
// means Monday, etc.
Calendar._TT["WEEKEND"] = "0,6";

Calendar._TT["CLOSE"] = "Close";
Calendar._TT["TODAY"] = "Today";
Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";

// date formats
Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";

Calendar._TT["WK"] = "wk";
Calendar._TT["TIME"] = "Time:";
js/ThemeOffice/users.png000064400000001556152200041010011175 0ustar00�PNG


IHDR(-SsBIT��O��PLTEpN(5`յw!I�������-���������vEZ�����7W�O�a+w~vŒDOg�!�G^��X-���a�>ߓ2:W���H�}��|C�&h[���F�"�c�qS���}^5Lw����EV����]dtKw�u��^�Xe�_��"p��LT�O�cDЅ���IBe+[lj}n�����O۬AE�>X�(�и����<��C�vCˋ:��f[��ڝHzN!�w3Ee�=�!�x:5Y�����pAry��2�������\1mV!|��An֥�j��v����T W����+�ö�br�īBfff����{B�f8q�?�a?zP$a��Kx��S�|$(S���x�*�|QD�8�zHrU��H���׆!�9�������<�^,@[�4kZI�-�~`�eK0XǞ���tRNS����������������������������������������������������������������������������������������������������������������������������	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`A,,ea��@Vx�3T@�Q ɂEګ U,P�iP��j Χ��
*-*J�p-*rp�	p��W�V�[���Ҍs����U�45��i�%z��Qv9f�@%�`�"+�jƐa-o)6��H5y�P�t��l���I1O��t�PfQ[�|k^]~р8�*	.�
���@
�� ��t���)�#�IEND�B`�js/ThemeOffice/arrow_rtl.png000064400000000264152200041010012042 0ustar00�PNG


IHDR��PgAMA��7��tEXtSoftwareAdobe ImageReadyq�e<PLTE����ٟ�tRNS��0J&IDATx�b`��c�c�c�c` NV��KM���!y�{BIEND�B`�js/ThemeOffice/categories.png000064400000001622152200041010012153 0ustar00�PNG


IHDR(-SsBIT��O��PLTE-f��[E8^�Nb�$������٦���������]�Q/����o��W�3F��i{���ӹ����`��el�������T����������ި��B�,Sx竷�D�SWt���ވz�����振�r�����h�7���N�I���r��Tb����z�ұȷ��h��Wwҷ��<�%�����G�*k�������{}�Nj���ۻ��t�k����]xΛ���{��x�<���b�BO�8c����ø��u��1�[����q��z����¼���rv�]�����T�|u�A��夲젵���N�_�����������y��7���g~�@`�m�`�:[���������u�����Of�G�,��̡��u}Ÿ�墳	.�tRNS�������������������������������������������������������������������������������������������������������������������������"��	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c��,w5�-O/v �ib���S���n&V �f	������N��d�
�-�,d���q��Pc�ϳ-�Sb(T��b���b��HJW�1�`	4���b����N,��Pu��v	�H�$�ب�$ǀ�DK� ZX8
"�-����Iˆ�dA���`�Ь��i��e@1�,�	i�N�����
�����̆�e@�p�9U9j�`�A|��07���|�IEND�B`�js/ThemeOffice/globe3.png000064400000001654152200041010011206 0ustar00�PNG


IHDR(-SsBIT��O��PLTEurej��ݻ�Ȓ����֕��9�����uд*hy���a�����ď����ʙ�������䗌���ĵ������~������u�����9��F����c��쏠͆�������׫�������̵�p����L�ߏ�ձ����ԥi�˵��聢��ƲO�������������ݡ������Ȭ��,i����������U��o���rtx�����x���������.������՜��k�����̺���zؾ;���������Z�������rv������ҩ����6�Ψ��@�͝���������ف�ݿ�����i��f�ߕ��́����������ywk����附����ۡ���q�ʼ������건�P���tRNS�����������������������������������������������������������������������������������������������������������������������������5+m5	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v��IDATx�c`^V����h����%՟;&F*���=Z$�����om�S��"�
p�s�PMb�K�fg�㐲QM����6)�dו�2W��4��`a0���6O��2��wN,b06�sʨ�7��tpNT
bP0��M).���
��
�8y��p�MU�j�\ټ�X|%���e���
*�J��X�c=�d�$�
k�.׳�ad��r�2�yN��^�KLL̋'��[qK�  `y���5,���IEND�B`�js/ThemeOffice/content.png000064400000001613152200041010011500 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<IDATx�b�m�KX���ϯ����a���/�o��@��_���3�������?���`����~�b�3Pb����'��_>��O�F���210��~2��Do� !�ߪ<�@�?؁������߁�7(
�@�
�4�	hʭ�,��EM�?C�P�P�/�
N��,,L�L�P����c`����������!��� �X�j������=��?|Â��9���_���+#33А��𗁙��A^Zh��ba
�����1���`����1�}���	��� ���������AZB��@,!�8C�C��/Qs���e��W�O�>
��?Xݟ?@!��t@�0@%�]�����?'���L`1


EE%�M ������Q���o0 �X`&����t#Á{�rss�1H�b�!��a��;�U���S�ݺ��0���=,v��9�7o�@��l�?���0���
 �� _q�10���,�g���<�DP�����/�@�0��误�<��m�{��?�
U1����ALX�@������k@���-l��~���`nn�`�����
̿`C���	N�LH��� &���i����@�@I^�t�T��L�̌IJ���?O����0�����_@��r�_�� �D�/(�3@�c``&��>� FX4�r2�W��zIEND�B`�js/ThemeOffice/globe1.png000064400000001627152200041010011204 0ustar00�PNG


IHDR(-SsBIT��O��PLTE?�i��f��os|���p�%������b�tG�@f̙���kÛw�gW���̋̑���d�J��������`�~���Ysl]�9�����ޱ�����Ǘ�WD�'��\��t�Vsʕ���u��k����ˇѡP�AU��D���m����g���׊Ԛ�������Ŝ������|�t���f�fw��M�<����Vv�7t�y����v��S�������{�\S�es�����N����␞㟡��s�rz�@f�3J�;yƢY���u��̍����ܝ�e��Ĉβ�ӑ��Ȋ�����ܯ��~�7I�#s�/��hz��̙o������������}���ې�����ش�������_xf��ۅ��k�:����bt�xG�'k�ۙ��M�tRNS������������������������������������������������������������������������������������������������������������������������������9	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`��,^s+s0``a��
N
�f�H�;z���+�T�����ej94�ݜ��A�1�2IEJq6�v�~r�1j�Ɂ.%�U�i>���*1j�..�&��z�,�)r�6�	�%5!�z��R�<b����F|�@��������8g�4��G"P$̑ULDĕ�����(���PQ����rw�����i6�rT�7�D���/,9�L�����̂f`ϱ�����[�T��M�5&��.�IEND�B`�js/ThemeOffice/credits.png000064400000001570152200041010011465 0ustar00�PNG


IHDR(-SsBIT��O��PLTE# #���،č7i\5��iݿY���CBch_����㼄������Ґ@tbr<8H���ٱ|ff��ļ�gQ����`���ZU�����~��L�s����ք40)��1ܦX�ȭTC3�������c�t&���fffTLh�ɜnh���H��Zfff�}/85H�9��l������! 0�w���a�����RO����ɐM�R��hdTK�)��tyyy�˜^A50DDq99Z����A�ww������0,8�
.+'ݙ1���ھm��E�����!�ˇppp��晙��pP�N��r����p����]ΑD51<�ͨ��z��d���-*3_[�LIlC?U�X�Ètm�Џ2܏�аSOv��OşC��I���#��g�������������;�tRNS���������������������������������������������������������������������������������������������������������������������������<u	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`�H��40���y��j�XաilI�uu�I.`� ��ps�*}u!�@~�Cb}�K��w�H ��%��%Ԛ�V���ا�,�I@  �CT,�h�aa��*����Hv�P1���)��Ζ	�TT:3��s
�X&�ݡT#��b�g�
�t�99%��E�����
��2!�\�QZZZQ��!FMv.P�jA��,����`IEND�B`�js/ThemeOffice/media.png000064400000001615152200041010011107 0ustar00�PNG


IHDR(-SsBIT��O��PLTE<1*�چo�[<]�\m��g��������go���⠲�t���ᱴ�ag|����S�W���ٔGw���xA��茏�{�����Zެ�����sF���l�����s�|���ey���ffft�����j�磦�����@�\!���т�������;t�������ڞl�Ɏ��SJ6�і��غ����߅����������������i����_s�����Ck�٢]{������nrw��̱r���~�ƹ��������吒����Zk�~��hw���������������������������բ������a��~>���������������𙙙y�vn�����uwz����������91[:�tRNS�����������������������������������������������������������������������������������������������������������������������9M�	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c(+�����O��4������:Yn>E���lmb�~I��[XEYb��z�_��S�$X�=��%;8��U."�����#"Y�@�JOLF��"R��=�W�]��¿$�R[�,m�`��_���`K���T����V
p�[�2��{xX���e�32�bY8A��E��ii���f���E��1Ղ`�qpH�����jpp@8�$����8(�2Y�}oIEND�B`�js/ThemeOffice/globe4.png000064400000070361152200041010011210 0ustar00�PNG


IHDR�asBIT|d�	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v��&prVWx���Q�0�a%��؄X��: ��=�9�
`�`��h@��ь��o�����nJYW.��U΋-Ͷ�}Ѽ>��bK��Q{͢���,N�Hq�E�Q�s�9��g����U�O�SL~�&�S�@���S��O���D�X?���|7t��Z�6�m�0�\=���o�!����}������4�?�`�}�)����i�i�E�QG~O<7��9�x=���L/v�^���
�o.���&ovG�kU��iG�V,�HmkBF���)�3�3mkTSx��]�sGv�x���[vj�!_X��R���s�� �+X�(��TsJX�Z��WA���==�`AR;���L��{���zp��w9���3e>���t�X��{��`;���W,y�ߏf�9�۟P:�G3՞��'X��
D�o><8�����g{kr>�6$O���P
��m*���B��9���N��C�w�Q�؃{[0L�ә��^�z:<�� ���7ޡB��(����J��x;�M�РGW�%G��x��ބeNX�1�䐵ǒ�-��J�����̆D�f��%��B��D�d��-CFڔ���\���A�J��3劘)ׅ�C�ٮt�|��Bޅ�b�3l�l�Rl|?��\��o3l4�5:���q<.��f��{>��x���c@�p������m�#0�G�X�.]2
&4Lh�F�n4s�V�f�����N��4K {,g��4��rH{4���}����4�o��^�p֖b�D�j��/9oݶ�
�G� ��2�6�N#^���3��K��D��В-�����l�8�VlG��X��	����Y�R9$�0Ro�RV�ҳR���M���v[qRW�ӓR���k�эK�:N2BCȸ�|ۃԕ.�/wR�+Y[�`0&���2��-ͦnl4��N8m�nC��L��5��&��/i��A#3hd�̠�3�<��lc�������[P3��$M�c� �_���D�]
��_e�!�!�3�t��!Y3>�+p�
���<��;0�g��#Y:�T���9�y([��K��:�|���{GK0o�r×ܬE�|�?J�h��U���"���!3$I  �Q�������K��~�������V���}�\�"�B�3+�%�]3���{�K����X9��i�:�f�Qs��NrS���ŭ�R�1f���\�b�f��0S�h�j��P��N��s�H
7�+Q���\~.
���@A�G�C�T���˛�4FFo���W,���l��D�_o��楢��33'�-�=D:_+u9FZ�7֝�3Y/^9媦9���k�mP�	���%�	E4&�h�\mbe����W���S���3��e��r�@���j{���2��ͰS���Yk�x�wH�������č��Z�/�q�j��`\����:��_�
�
��d��/���! F��t�2�Y�5#a�5�&Ȫ6׺�4�VS˰5�&��d�2�_�(�-�2���.�qB;���k&md3�I�M�-�ʥ"1)1`�(ͭ��A�g\���M6��ap���S�*_�M&KwYP�P�/�����ΛS��j�U�)�:c0#�T�(��&�VW�0|�nJ��[(�5��
�*F�dI��Z��h��{�L�M���~fzX�U�5y5�-�"����	�m�����_yK��48���rf&3k�0�K�R�MY�k�9T�Vā��zV����=�ƁK,�%��kc��`K����;��{��qI�Z��&�J\�;�.���
tpZN]��7��Fe�4���.�Pp�T��[�[�O�A��cJV�B��0D���Ǵ���]�z�zz
 E��fA�w�*�Ws�^��f�/0j@j2Xm��̀�y��ρ���/��K1�h$��v�p�͠�(���E����������9_Q�_�:]a������ϰ�T���f(�"MJ&F1�o
����r������-)�
��%�%���YY���Uj�5�v��)�0�	@u����|1�oZ5��֒򷑅�����p8u/#~�2�Ù��5�F(�٭)�����V�R������{ȗA(�s)S�KW��t_ı�����#4���`je&�tV}����%�ye�}��P��5Zn$�e2{*���g��lΊ�Bfr��¦o�Ђc�H('�mWZ�,��krɺ9���qJ��l�炑�e��?��9����7�0AŠ�3��,��-��,�W.��-v,/��l��ʧ:��2�c�g�j��K��ze��	���a�����u1y+O_�L$4yn����b_4��i��/��ql�b�d.A3L3�o��]R���n(���L�����<��K��~��7��(��7V������Y�|�
��>F�g�s/�Q��(���T�|�,���$�F8�+q���a�9���7�6�P-v4��V��
v�Vƌ�]na:|���{��0�(^��%L/Wē�`H�&g'6��q(5���.��$����5#�0�|+1ԛ9��]�R��Tv�$8���Kf�o���*�f�1d���*%,�<e��=�[
��uϰ����\vENi��+D�l����������^�=Y�c�|$K��)����E[�MS�4�]�ϩm�'�x��q�\���'?y���R(@�xY���ؒ^��2��
x�|�*�Ӧ0���&�\!�#��ʔ��/�-��8~�� �����h�ƒ��Ё���#�J79X4VS��3vN��jFq���Ҹ���������Ή�q �Z�u$;���R�?��;
�l��_��tu�F�n��}�t)$�jM@�T�����5��g��28���׋N|��20��{�0t��q�L�O_�]��σ���RY�9vv�)*5G˷�r�G~�4(���/Hv��Y�^>f�
hL$��|pп�
ҧp#"��즩#JAD/xOD9���D0�8�G���Td4by{,9�d>H�rl@�@4���!�sN*s��ʆɮ�s�/^@put�z�¹0�|�#��K��!��b����߇�C|ˀ�bE��T�g�`�+̓�ގ�dq��#"�5�����y��8zEVJ�,G7��M��ֆnO8�F��O��'or�{"hTV�A��(�2��E�P􁘉���L��R�q�IM�r����r��EF�r��b�rs���I�2W���ґ�
I�ʥ�{%���'��T�_�\#��Qkj
Ɉ�Sg�#��O*�/G-�Q�ꨵ��H ��?����lF-��Vj=����gQ?�|K'�9}�J�,,�-FK��eZ���ю�ا�ĩ�31��w������wtjC�
���\a���;�IN�!Or��Y�ht4[F��� ���Ւ�'���VȨv�Z��&���� ��t�IM�r����	6
%O�)��jy���M>�dA�r�T�J/�}%�蠯f��̕���`��.-`wlZϦK�4��]��ò=�L�����
 =2�G#�_9�2�����w��;��\�|J 5�F�h���V��\]�O6W`x��yJ6׌3M��ʹD� �O)���"����o�

6�ė��m��B��L���ɀU7�i�+����=OɤJq�Qh��w�7-j1��#E�]H�lٛ�Hud�p*���s�vn
�Xa5���E�ڴnTMj��M�,eр���O���*����D�1���ic��ɮ����y������Ax �ܪ�"��f:���0������	�s<\ԣh�"ȥ
F�5;�&C���ZU�0�Y�b�U���J~D����M�˘�l������ƱtS�MML/�}#g-�\�WC�,}�0
<?(��f�pӺf���)J�bB���h�����@���X�W��J�G�Q����R��ņ�����[=��b��)R�ڃ���L�yK�D���8L3o���ĊVT�$��օ�;3�x�7��-j�
�z<�f�S�
�b�wgп��R��!�O�({�^9"�ޕ.�;��嬿��^@��8��-
���qo�j���H���A~$B���)��޸~p���y�'ZcHF���<���L�0�ً)�m��?�0S�a��!��g_��:�)�$�rMI��,���݇;�
��x6ܳ G��A%-��@^�3�n$O�|A����O��)� U�%^������2��J�aSgL��:�d���@���k!�3�[P1���+o���b}�z碆���^�u�QU>�C�R�>��K�)1N�#j�Jj���k�'߀Ѽ#�,\@�����z�dJ�\\K��b�#2�)9��}����sN��'t��7�r��/(�߀�r�IQ�=���-D�O�����;>��Ɵ���9���=EY���s��4p	���ܢg/rĘx�7��'���r^��M��D��.h����.*9�y|.��<���|�
Q3?��$��%��b��tҹ��_�t6:��I�;$�7�t�Lt@��$t'��^	mv���wPB�5���NBw�+��yY�I�NB�f	�]QB���(���dv'��^��v2���wHf?�2�g�?C�o��;���WF띌�d�����GJFw���_���:	�I�['�K��#��cHg��η@:w�w�t���yݑw�t�sy�I�N:�I盌��$t'��ȻNBw�����ȻNBw����$t'��$�튼�dv'��ȻNfw2�Nf�l�]'�;�E�u2���MV>n"�Н��"�:	�I����qa
U�rs&���x�)�.i�p3�����͑t�О�i]��yts��L�Eq��앎�t�s�!]��笚')�H
0Z�^W�e{�kk�53���:^�[�Z#ꕹ�	綴��[��r~�u]��k�GI��s�~�֨��jk4��xwm�sܴ-���E[T����m#�G�j=�qң���輽���NFw2�y��i�Mj��pȻ�� s�9�[��.�{}2Z�<�A�����X��,d4��2�b�-6I��<>�������ɔŒ.�W�TFT�p��>�p��׫��_'��H���`�G���sb�+�D
���GP.���L=?�ߧ#���i�>�O�o�=h1����~
-���F{�7���A��_��=�M�ے��5��C)�_|��Rm�'ȟș����#�[b� �C6��wk�9e}�o��A�]���VLk�ٙ�]7���E��an�߫���d�}@��F���x#e�a,e���h�h�LX�\�I��H�G���ڍ)�?�����������^��k�I���p*�p��
�FșJ�[1x�x-$^u����m�Ŷ�
��b��|�Q�sV{���ȳx�-��p�F�*)����M���H��€8�aO�S�����{��o_i��a��_��I��O_�S�����t�٧V��o������*�5����E=>-E�Io3h�ɯU�#�I�g��G��1a�^���Q�ۓR,�� �D��VHg��uȏH63�A��%֛�2��!����ʹ�\ێoy�t'�;)}ۥ�"��~�R����X�73����$_���X�M�d$Y����M�"���6��|F{�GP����:B�O�wn�N�fn�hrIȮ׃+���.ҝ��GiJ���|w��;�\�N���_�d��S
���/�B��׼�6%r}��>���J[��
�֮������p�Z�R,���|���-�6�Q�h��$j���]�4�X6�lE������&����y>���(�x��**�C%�vI������7�=��<�P�ž�Ir��n���>�H�'̦�%в6]��xHH�+����ۇ�zM�?�v��g�	��7�)�X�-�xi�|�t��#:#�w����[�P���w�ǼT�zP�𠴕R����yCԮ�i�ʰ��<S�$�XYͿA�J�2;�� mZR���*pG���J��\xP���L�S� 
i�4 
��V[D�'�w�=����p��h�x�i.��[|4�s���n U�i�	��&��$*�@�Y��N: ��t�h|(퐭o�eS	W
pˆ�I�ޛ℺1\?'|'t��V|_Y{U2! @��f�ԣM��{�q��x! �X'��>��p���Q��q�-{w=��6�`�4+zw5�|=�^��:��Gٻk�~���
���?��7x̖C:�*XCq���x
�|��~��)"U�)���=I�d�i��NX�²�k�L�9�����
Oh����y_���%vB(��[d�m&9k����.�z
�ĥ�Q�Қ�y*�n�BH�)�أ�>�(�����_�
:?�ԣ%�=�z�(؉�llx|�|��������EX�y�lT���0c�,>1��j,:1��cۓ�������Ό}=g���5?�S.��7�E�b]��$^�$nv��%q�M!�,�d��'����̟`�������1������u�����%tZ�!Cp�>S�n�ׂ�
�	��JD�'���I����_v��C;Py��
�6H"�1�昨b�_M�w�<��LQ|��oՏ���z���{���Jl�u�N�7Գ.��$�6�Z+}����X@�vJ,�1��&Y���E�c �|�5������(r��|����4ey>
�}K��}H�@H���+�T���ڝ��(Ng*\M�3e>���h��Xr��|rڻ����je��<΋���!���O'㟡=x��><�d�?�YQ�Gt�ur:XMC����lp8�G�>�A��x�8��D�=��	�����E�E^�X�R(�@)�]NZ��E�_�Vzv|�@V_\��m���_9Fd�Z*�H�\%�,�(�nҦ�_�Z�h�
u[�ӊ��W.��6�0,W��C[W����ʓuO\��g��5�P�ŨM?t��iB=YԳ�0�q����ӂ@̼��0N-A�����.�l���M50�P�'��-Z��4E�%E��;���'�g	�CM`�{~�&m��E�
�K�������,A[C�d,����.��*�V|C�ԡU��\UM��yz҃�EZ
3װ�6_U�4�7�Yѥ{���4�ו$��U ojn`�+#p#�J���dd��ˊ����UM/P��T�NFfh���jy�"�UOS��0��?`�T䉒
@&'mʞ&�gPUOV�?��PӰSxj�k%��\WK8Du]3�L�\O�J	]SN�O�]�n�̥3�MQLs��{����W�ų�0Lу�;�,�U"�N�V�b��"U��q,YIz��%9�+��f[���Ű�d,Pғ�"KNf���J�'�p�&t��~�eٲxvU3�d(S���f�b�c�@^��J�4����9m�A:b����������%cJ��YҧdJ*��}TY�������L���%CTɻ�}L�<�2.�;��ϟ�=R�Cjn|�W�L�,9�f?z5fWc���+�M&���}C2�~��B��*�؇B��-�P���G��,��}O�p5��.��S��1"��7���W�;�x�d%F�������!a=z����^�N��o�7?I�K��9�C�
� `��>?:�/g��J"�(,�s	�,f�1������b���A��#|r0^��r��
���8���$?ѓ؋��
�И�"�۔�ٶ�t�ֶ_��C��w/g��:p’����n{)��s�W�iޟl�	��~ڇ'��uOP5���Y��'b����R?�ŝ(��
p@B �f��Hi�O����9�=>Epv�_Q2�+Y��W,��B��胏�ۧ�v�/���j���1f�`�?I��0�/������38g4�
V>��<�"��؋b��s��mkBSx�]���0�{�5|���Q�_�V
��؄�&M�f��Ѓ{�&;;��uj�h��>u�5z�/��LcFT	�яj�V�c{��AZڔ^���p�
�u9Z�Ҁ�ن؛=ؓm�O��M6�s��[� 
Y�N�\f�_�sg�zUNwR�m��#%�+%�	c��V����C��~:LB�L�:�\�:�m
�mkBT���W�x�흍��8FSHI!)$����FRHn��w��H�Y��x3��ꇤ����s�a�a�a�axI�����Ǐ��'U�{������o��_����ھg�W9�����������o'�GW
{>~����J��l�����o߾�����������)*/���N�\��ϱ�o��v�[iZ_ձa�JΝ�/:�����6�O�-���92b?�T����l�k�%?������_2����1�B��s��Y��5�>�:�>�c=1�����O�w��y�^�- �ڶ,��X��z��u��sM�#גU]�>H_���y�Y��v�!ۉ���_m�i�Ru�s�]�X�m�_g�)YY�)�m�]�y,���m� z�1��a�a�axE�ߓG�ק��o/�Y��\�k�6��x����j��gH���������|�y��u��.�������\��a�æ�M&�w����k�#�ϐ�$?�]�M�o��\��Ⱦ,�/��ڥ���Q�@��~6s?)}��,� l�����gX #�v�Q���g���B�����ٙ^��u�の�uh��m?�}{]��.~�}�v_��J;�x�o�gJ���Y]�޳�@��.�)��oqC����?}�>@�X���ߘ�'-����(�W�?���������������	�źv�Ɣ����O�ʙ�R����v�[K?[A}�?-�w����m�Ց�}<G�c�K���1}���u��x�LzަU��0�0�Pc[�<>�g\=��c��}�M�����ggg����	�DŽ���-B^��k_g?��F?���� ����v0||؎��=ǧH�P���g�s��/�hؑ�I
�t��~�{���n^�}���Z��yD������5���X���Wv��O)�"��c0��vY�����Z��|~�_%/�,��p\��ɹyΰ�Z�/���;/x����s��_��9?��P�ܯ5ݻ\�[��y|����č8�����g��ʱL{�?�0�0�_�k3���>��������z���_������\S��|<�)�b|�����7��a�a�axn.��t�a?l�^C��vk��ؽ#���~e���)��3<3^�����k�dl�c�&�jK+���o"e�<.�ʞ`���^(3z����u
���l�+6���v��<���ï�
�k7]�/l�c[`�O���n}���򚄫��G��뎱���zt��^v��2)?;Wm�r�5��o�c����Iz�?�����O�zx��{�&��!��e�z.����������"ѯ���
��1�����Gg��{+ҏ���l�w<�=}Gݽ��Fƨ�^�)�����zIp�G�����K��֜�{�{���e����G��12��ۭ��q���iumf��>�.���}�����~�a�?�0�0��[u���+�7�Svq�����֭�y΅�
�?ނ��}���X��w�Ŷ��v�?��ߩ�D��Zۓ�-q/�?߳�=��<��~����#������>���Fk���"q��z�r��Q�o	9��r�,��n�Y[;�o�:)@�-`ק-�7��({��߯�S����@�µ���K��9��֠�ɸ�>:�n�3��
_[�_*�mt�cm��C>�q��S���L���<�?�<n��ѯn!��>=���<�6�;��ǫ�s����a�a�a�{�xˌ�\�ފ��px�?0׋�#�5���z��я��c�]����x^��l�򼠕��(�f���:~����٣^l�i�n�59����W��~�\;�?v�n����6e�r�����UbS~v����^��UO7O(�|;+�S��G�4|?�f�����*?�r���W~�2�o�N��ٟ���S�9��~d�a�����և���mH�6��m�X�[��J����~�s.��y���m�4ٶO���|B��d���/�����b5��ɿ�y���U�?�0�0�0�0�0�0�0�.�P�~�*��1@G\⟿��K����rKX���s2�(ߥ�纎J���8���'>�X@▼�Q��Q�b���q��wx��b�)����_�K|���v� ��1��M�6ke�e-2Ǜ�5��9��?K^�E��~�9�ϱQﱮY��F�8��N?�~;:=J<�����-�t�ĒyNA���g��C��	\�N��X�K�s)'�^K�g\~��2}�6�}Գ����)��n]O��r�^��j�~�"��{p��29w�6��/�.�z-v�:�+����M{�W����JY��Z���굢`%��
�Ҥl9����ힶ�կ�#O�Uz+�U�?;��s���d�~v��N���D��7*.Y�+v:�ye;�8�}�~��|���+ÑޅN�9���}�{Bƞ#t���x��խs�Xɿk��S�V�/��uJ=o�G���<�ջL'����L��:�D]�6�j�f���gL��z�/�+ؽ[{����r��C�M�Y�q�~��[�{�y������y	c�zA������;��w���9��z�szW���H�����V�ax3���� �%��mkBT�����x�흍�)��q ĉ8�D�^��>׻gI@��X�jjg�iЃ����`0��`0���?������ϟ|�:����s��e����Q��3|����ӧO|�:�2|�����.�}��;�7e�GF�����O��6���_�Q�v�������]T��]�^�ˮg�{>pj�z���k�u��o{�y���ye����?��{�-����x���/D:��3D��&򈼹e�^H�y�i#/OG�z��Ϫ��߯_��~�
:�sMe��#M��3Y�#=�2��Q�����Й���[\s=E��8�}E>�Gȩ�T�ڲ��T�g-��}�����Vf�������o�SVw�zV}�.�/�>�~�<Vrv�@>�!?�U���������1���<�#�����}��=�F[ ��~���QڋB�N�.�.+푹^ed��Lo+[\�-��k���
d�W���(}���6�q�$�#�?z�6��Bө�i���?�L���7�!�3�O_Q}Пu���o����[�=��tk�ȋ��M�����!'}/�Ƈd��r2��_�C���ﲨ�:������`0:8�����o�=��+8-�4}�۞�c�ĥX�dq�{bU�����q��©ή��m�!�ƶ�g*Ϊ�U\z��[��GA��=^�+ru�{��LV���	�U�?)�V>�ғ��)��x��|�Y�ҁ��gi��\�yi�^c�U���o��*=�����!����T���Y��?rf�g�����W��s�ʽV�n��*�V��X�#�=��F���ϫ��+[���F�~�yH�\L�~��[���O҇��h�5�ݵ����T����o��w�|Sf���ӟ�+���)���;���F���;:x
������)/�OS�y��U���o��2��e�)Ve3'w���gGg��=�J��^��`0��
ľ����u k�U,�Ks���ؑ5�nY�,��bXw{���w�&����3�Qה��N��Qev�	�]��Ʒ���gcH��˞��i����{���A�3���I�8��h��w��d��u�w���UI��W�q���8�����I�>�+���@��p��Qş���Gc�Z�����\ƪ����U���ߝ�]��/�:����3d�;ɫ:gB9�R�����|GW~����w�2��;�fz<AǏ�ߊg��_��l����y��������=����U��y3=� ��[�6_��3]U�_�����k�]���]�ײ�2��;��j���->��t|�+�i5���n����Οg�Z�Y|<�1NyŬ|E7�k�������?���z/k���>�<��=�Α}N����΅���>�u�Wy�d�ʬ���dz��`0*��\?W8�G������Y����:����Dg��c�g<��2+�������'�W��6��qn؟{�r�u�"w�<�Tk��.��\�r���n�O���>U쏘~c�#T?��+��y��{�Q��,�,^�qF/X�v8�.֩g��3}�ȸ�OP��~n%�hU�G4��(_��sn|W}Tg&x^c��,F�����ѭ���+�<��#+}/�Uw8B�Rh_�����|�33!m�r\7U9�m��({�ѝp���ve��w��[���x��G������]�߱?g;�,�n�ҽ�ow8�]���ו����b�����?��OV�=��Z�_�����#�ve�?��v��N_W�������r�YL���o;�����1�g�9pV^�G�~>�[_��v�NO�S��3��`0������Q����[����	veO\k^8֔��v<�Zbz����\��O�p���b�n$~�}���o�z�3�ј
mK���vU��]^�i�N���WA��#��x�딫���j��t��q��:���E=�
z%օ�q�)Cc��Y�E���q����yRG�-�+u(K\�h�P�'��*^ء��^���q�=m=y|K��vūe���\��rȊ�4���=���{W��1���;=ݷ��x��p�;o@>���Ș�T\Ԏ�+C��=*�ɫ|��G�JO�C��W]��x�1.��ﵠ9_E�б��
��V�q����)v�(��ʑ}��[G��w����Ǻ���{-�o��Sdו_˞��׃��2��;iT&�w*��w�����:�����g׭��S�O��s���j����%Z�[~_˯d�֮���+������w]�7��`0����]��k��I�u��+e�L]���ւ�oA^���;=GR��?��v쯱�;<��y�� o�$N�1紈=:ߥP�V��u��<�� <&����3K�yC��/�4��r�)i=��*/|Ύ^�]�Q�NН1q�G���w>ù{��<F�����V��r�2�n��lo�؍ا�|�m�o��'�qb��Ӌ��r�`e��ef����6
0�lz��sA�_������x7��췣*�U}��R�%�+���C�����_�	�ڟ~I\�Q��~�k�y��#_��jo~DyU���^���`5���p����k��o�?:��ˮ��C����w�������>?�Kv��:A���}E:���_�n+{�u��=����r����q͓�̳]>>��d�}+�����|L�����0���1��`0�l���e���g:��׺񶊝�`W�,3�O�?���]��\9�P����~�[��kO��W�i�Gc~�)��-<�w��.��3q�}��'v�u�w$V���n��v��(�r�����5��2���S;W���k�_�K�ϔ�8B/��h��E�ՠ�'�9�w?K;�x:�x�<��|@��c��Ͻ����V��y���c��@ۖ�Sw�8B��q���]��=��2�l�B�e6V}e��������R�(�������	V��e�ZT��4��ad��e2ޒ�+n�Y����B�����Tq��S����ߔ�<����[&�=�f��[|�����s�z�P�)G�����}{Zׅ�3���n7�j�p�W��wf�t��E�w��[ǽ�;�����`l?��`0��`0��`��{���~��������i`oL�y�>uo���i\q��K�|}����7��Svu9�G���쯿c¾#���>�,�jo��w{�Ն���ݲ�L��=�mW����2u_�����8د���jo�?���k��D���߱��m����w�>���#��}�����E:��OۡO;<���s��y����}�ڛ�k�}~����|�M���'8CT����o+�[W��������U����Q���r'����\��'�t�TY��w��z.D�=��W|��~q=_��y��M�����������Ǐk�t��bS=2�|�ұ�y�N�_}O��e��摽ۏ���tL�S6�q`C���jf��3�#��ܰ�?z�1���H�]�����\"�W���]����O;�2'@���@~tG�:�����{��u���7m1��Q]�PW�V�2�S���z]ϥz��s������3��]v�����xwҞ��:ڗ>�y��`���$j��w�ymkBT����6x�횉m�0]HI!)$����FR�?6�c<lHٱd��t���C"��+��RJ)��RJ�������kJ�߃��L��_SU��n7���s����s~�u�U�-U�yy9�c����/Ju�z?��i���>>>~�sm��+�v�u�Ց�νY�u�8����uN�?�WP>�1Js��WiV���_uK�E��ϸ�/r���ˆ_�gK�W]ױ���EY�cl��,[��T�YH�T�����������}x���L#}A� ���G��V�7���^�}>�iҞ��-���i��;}�LJ���X�&�T�P�3�T�#��ߨg���J�l e�'�=��?�͘o��n��a����|7��>��?ǐ�U�%�;�������/�m���N/��I���f�Qփ�z{��<�d��6�d�n�;�����Q��m�{{�5�$���iѦx��g<�$�"�^�%=��RJ)��S����t�e/�֔� ��a};k���_��y�?�9Ԛ�l�z��}m#��G�Kk!����k(�9�G��1�����z��,�Q�&�l�iV濊���#_�<��3�Ξm$�^9g
�{9&�w�&��:˙�u��f֚��R��:ֽL+mW���W^���z%�I���2���lo���Z�f?�k4�W���-�#��	?V/�c^��!�!{u̵ʴU���ٷ�A����Ge>G}�?����v✽��3��X~j����{�zT��A�O^��ʰ�>��?s�y��|����G)�P�</1�1~2�ў׆�R/�7��Ӿsm�sr��"�(����2��c�Ϲ;�~�u-��)}����<�U�1�g��:�a�p�b�5{��3�(���k�!m'mʞ���2��.�~[�)}G�κb��XE�L������p–�aԃ���7���7��Fy�0�@ߋL?󞕹��Khi�@=��RJ)��RJ)��RJ]M;�;����j�;��SmkBT�����x����i�`�Qqqqq�����!��	�C�O��Ml�S�$I�$I�$I�$I�$I�$I�q��O�9˵w���O�o]�s�s������,�Խu˲<^�0��t�c�}�av��=��7����_��{V9��z�}��ٿ�^��s��_���y~�?��}e�z���۶����������@��w��E՟�k�$I�$I�$I���@?
���R�*f*mkBT�����x��}+��(��H,��"�H$��"#�X$������,�Q����ԈZs�>U{�	�.�.T��}6�ڳ�-��F`���p]�k߅~��b�
�
О$�wݓٱ����|s��Co���A+�q3��lO�x�@�(�0�a��+?�	��T,�_��7��s\���Ϙ^Bl1)�C��+�k�(�FyN"8��dPC�_9��>O0&l�4��Im+���n�w��G�rŰ����<Q��q	�	+����H�}����e��q���~~�[).�5c��6,�����m�uO���9p\��<//?����N�:��M›p)� �Ĝ-�2p�'�uKq`���_�����/���6�4<~��77S����N��BQ�����맨�uM�{���5�%.B�NɊk:	k�N��m�9���*�u�U�|2���%;������]F�aג)��RE%HWc0Mg�>��)/tih�f���	ѸX�>����E����)��<,�6�s4���5�z�b�?��J��\<OM%O#(7�6�:�=	���ӋYA��ƒH
���L�s6��M�X��BcX�&ǘJ�te�.����	3.je(��?�<?�-1�$p�O=�x���	]<Jt¡�Vg��`|I,<丕}�F�Qj]�o%[Pa��6�XY��<��?�Yoh�F��067ၭ6JF�G[�wv)��7?,�@w�
�nM�Ǧ�m��k>?���L�j��=���%w�Z�izFTx��$��kP�8�E��m�	jAO����ހ��>~������؆���B9���	�֤8U��KC�v�jb�L���C��y����;�mjP.� ����Dk���w��U�E�€3�ܨ�����8x�U��J��s����\���ɟ�+;}s�F�Q(KI��Xݛ�ƨ
�1��+K����dX�];Jģ��c�x$��D�׷���X`i� ���@l̏�rn�m$���^�9΄�zBGϞ�Q=�nf�k�D�e;
<���a�>,�⢞�j��k�0B�[p(��$���Ǡ���p�4n��q`�XƓ�	�vϵ���.x�Hn���or�J���5���H�u����뇗�f����a����[Z:><�M@J�9����$�q]�}=H�k�3����鲺t�Q�=�,	7���߻����s
�>��3�����6[��g���RL�؍����?�(�&w�.7C#~B{�]��
��U�W�7��1jk~�e�cG��r����D�.=��K�����@�W�DZM�0倐����0�\��x��v�q�NZ�>#�
����BE�	��)���&y�A}t�?B��Y�m(�WIp�ɱ���|�2�+��\2�� ��)�l�8��tl�@Z.B�����e񅋍�RS��ƃm>d�I��l���'N
a�dĢG3�%���#�)?��$s�	_5=��Y�BR#-k"qGP-�e�"�f����%֩-ϓ37�����8�M9��ϊ�,���_*n;H����EBƱ��cl�~����
˝[��/sa�g�IE2�,z�1�t�:�kL�������ș壋G)��{7�o���nd������{@r�P�>�k�w�k׽��#�kXfy��E���A��B�9�uM���4P=�_�l���gW��؇�N��#�_n��G�pp,Z��Uu�6ȓ��V��Ӱ��0EK�7*|��]�{��75F\�Զ��zQ��z!��	uH�>��up����T٣�o3P)���[�^�6�����` -�d&�*=�%��fY�<�^��ط`_6����|h���3ء>��2 P��q��7ώ����,Ns�j�F�=B���`�큳�C��i�U�)R鐏@L��Ү�����ǧmb<2FH�Rq��ùF���X�i�䎲�Om�GA�����}:�*��u�f�:@ʫRH�.��6���6�j���c�GOpO-
��6H����K��J��U���:�Jǃ�����v<gz���� �1F*qm�-;�
I�7
?��O�(Yr
�de�
��F�
�	�ѥ��r��H��a���ۡ�>�,����3��D�Z��E��Ʈ�qq���7p�?��Ȍ�K����%ȧ$�;�?�Q�r�6�pP7`�a����^=����R�_����)m���>�D3#£�_'
�I��ɭu͋C��-R�ne㯄����ss���L��<ȭ/��R)|Lt_1���<u�}E
D�zl��$H�+�N_2�scۯ-�rH�V.��������֏'���(}�o	��:]謧�6�Fhlw���@��z�{6�P_�?�
E����h���߹���v��K�/�B�"M��h;�����б�o��)gRm �$�5�, �E�x�(?�:�g�U뵅F�4��� 	���߹�E4��!��q?l���A����Yv��s:mR�(G��Z�y�Gq�+w0)Nz����u�Y�-�&����"�Y	='I����8��{��m�L/~�����!����.�B�����A=���缱Y��|z��:f�#¬oh�2Xj��ǼI|1��i3A(|��vf1���
NK���L�ͫ�.����?�r�]�qBS�^#o�.l�%z�⁋
��Y��~i�䔃P��q�u&7(��U;B��l zF�x׎����M����,|PfV�֠�k��'�N��b̔/�$EN���
HA�i�Q=�u-/T�QAD9����g��W���%YZ�\���aԥ��5�O�jr����u"9��B�zp�̬�vl��l=��ɸY���y�ܾ5t�����mE��z�+���M���>�L�k�=�rr4����/g��E�r��~P��nB�[��\g[{����g��Y�vR�W'��
{Fe�m1���{�w�L��;�7�&$��x�c���0����n����&��u�@5sC�Cձm��8H��ef���t��<PJZ��@��������4�K|��#`}a�kRN�'�~IU!�k�W��L��Z�D�NK����̡U�������;��g��L~a(]��!Bjv�(�f������\��B�}�AuH�R�����g��M��<7�O��:���[�m6u�v����;3��=��w�w�n��������3pK��M�������{�.t�"��nt�?��di�b�C6��=��E	�����,��ѮO�
���0�h�v��G��;=��MV%����ʪ�r�����4�H
8r���K썀�x��A�:�2
�e�.���ݟ0N<g����'�����6��%��G�1�ַm}�^j�n�ҽ�S�0Cz���LX�3���U���M;^�^~Xc����a�vGHu"��
1��kN�K�T�?,���r�=�܎�X}6CBW6ۻ�F��\�3�m{4!]9�ử��J4n��5J�s�w��^�D��h����z������8���P�]�z���1�x��~��J8#c�%�Ͼ��cF{d�����o��@w�0�QsP���_́� ?3yB2Đ{|��5����}�>x{q(a���тa�?���Q�%��l���4�ςxmWI׆�G�C����1���k�Q��3iJh�,����K��R���������O`���ʲ���<!�[��Nw��a����Z���x�\Rtv��^ZJ��a\(��Z�PE���� 1��ޣ�h���y0�S�L!�y�QP̞�#R@ӱ&4�a�9'2��ċ�I�E�8X�Ir��
4��*y��b��˼�/#�
x����;�2R~������O7��h�՘U��^�k�
����(侠,���2���)�C�:(ِ;�Q3>��4�)�%���b6�B8�\��p�����e<��S������+�js��p����%<&t{3?���|N)p7b�����?�a�i�D�Wl����X���Z�>;u��)�ko)#W���S�n�cR�x�{[�sXv1��95�_��0K�����ՙ7�>�Tp�5���ٴ�l3�S�"؝�LX��睫[�5m�����Q="u}���pϘ*x�b�Չ����#iM+��@�Z!�	��Ϯ~j��Y�ݬ����$?5���mt�u�] �%�@��݅:4h8ۃ����tu�3�;�
ΑO�1A/r����
��R*5�����i�&j#Y2:�$Z(a�d�@�>'z
���L�����뇶��6Z��8|`�6�"�X1�_�z'
�F-���я�?��X^�A:?1�;��h/K�VB'��vOn�FS���Ƥ����Q{=kh7��M�wXQ�p�\v�͓�O/��.���
�N3��HKR��l�K�"�q��^W��h��1wt��h@���3�e6�N|������I;y��?8t[�[�!����$,ήL��e�"�z��%IކA�k��R�l!3u�8�ځy��?_�W��)�AbC��O�!rz��a��5S��n֗���#�<�43y��6"���R����߃C��Q�&>�[��#
BH�ǽ�{v�e��kO��T�lq(�UH�͵h��ݔ8�,@t�����ՂL�{p����/�*�L"�d_y��k,4�G̖��bD>,��.ok"�D;�|7�[.�D�C�A���#�i���l����ϟ�I֬�����D�q�]+�eE	��_�--����ڰc�����^���L��q�1~�C��C�����C�9��gN�����H�8Bkh��J��#Z�-`�V�o��M�a 9r$�պZ-�h�kh�
?C�$�	�^��tď��9d(�8P݅]ڶ���w[�wl��;��d��n�׆�o�K��d�H�ބ(D������In�I� M��_(��������5)6H/���Y�1�� �QR�k,n��XH��ʉ�����?>��df��&6����^EJ�m���t��{�C�����C�c`���0ʅv5��x<��\9Y��c����}1�06"״!֏��9�dl:'��1H"�<HN�&]�5��6�9�!I�1;"����YxA��K-�y�m|h�d
�"]�����U�.ak�gbbw24�������j-� Q���Od�-��:N�	dG��˥M�����I	V�G=�W�!r6�w�H3����p"��ۋ����#g6*x�9��k{H��<W�����BQߍO�MV��{Kh��^<�F�W
<�L���:w$|�oY��-Q]<ʫ��!�!垹��F�q@}3f�R�%���oĿM���r�D���+�N|�Y�Y���6�j�r1�1k4��i'X��f�\:�e�޼� �~�P9���1�ߍ��
��&7�8Q�ape�����5 9os�M�y�	�K-��u��u9��Bdx7H�V����&�_���!C�lgL �04���yS��}|�qٳ�k�����b�s:f�'/���㼳@!�]%���z#�=�J�s�`3�W ez<�PIG�C����0�@�4������5�5g��x�c��T�G��U�#�R�CC�?tdx��L`�Ɓ8����dgsT�?M6},_��� �\�k٬��lt΄l�s��:m"2��5�be\]\�˛��{xa�Lo��Q�lPwK7���?M^a,�_�lb(�1�?�����3��݌^7��:���ރ��^�us�ϚqB�8*���h�Gx��Y�C�m5�M~�{Sg�9n�RX�C}[����hO�tC��1#W3�*��:;�&_�G�ۂ�&�H|�����5�L���<4Ƀ��\b������D?]fM{V6*�S�<����e��0,�!��
A��ؾ����K��m��m���ߍ�r���O�oC������2�
���#��p'$�F�˿@!�{0�V��YW���oe�,��'��H'���`�r�1�����#�ͿMRS��Y����ZB�h�|�x��H�@
6�YziWl�wQ��}�yqs��!`��~y#�-O�Ց����I�X���m������y����|�*0o@��]ۓ�^(`P�q�ƒv��ef���v�'�OA=B����݂p��C�J#
��֞����q��5�
R������wV&�)ԩ��n@po��]��{3�v�:������Y���f*aW��_�&'
Jk0n����D�x��\/H����D�u�qZ�\ڌG+啵X�Z�T>z'7�Q��q������Ɍ�#K�R.�/C��V��g�Q�Ȭ�����\��`��?d��1y���uM�6Ƶ8ZX]8�^p��wQ�E��
&�1frR��Ki����$G�����ݜ����Е���h3'��������{���;;�~F��K�37�k���u<p��dʎ��+C�����R���Mz�Ə�7)nҀ���� lEGy�l��:̑�I���o�B�<A\���\6�d��F��q�ϡɅQ�[�1<k���N�>��S%|��Е�sTu�le���b�A}A�����ʹ�1�0�A{�K��ʘӺ�tj����dLI=r�	�PRg���_Lb�R���
Ş�l?�␔�)!��[��F��o��wi&k^�CV(t@p�W2���{h�x�H�GRn�͉�eCb�xԉ����6G�������Q��d27\�ثd�S��=\�F�f*�0�ۣ�OP���5(r�ZߙxQ�Z>�~G�AeN-��jY��7�Ҿn;�n?ӹ"P��x�}���/�N��W:݊&��׾��:x"ꭥу;��R�펔���c䛅љ�������ElmG§a=�h�¨BG_�u���YnZ쫭FYs �U�"zM&�:��Gn��u�.�DX���5Xn�����;�}�ԫ%XO?�~2&����Frjj���8��yA���*�W	������I�����9/��u�b)��Z�l:�s�� 8�5��J��>~�i�������I<�k��¶
�٤�^�S�x�[����s��GD����(�+��"E���HnֆA_��\F�Z���%������?�4`���w��_{�7��"��0�Y��@�f}������PEj�m��v:�Q������rN��[w��z�*���5�c?�j������f�7���?K_�P��', sZ(oT
|��Ó\-%�蔒�h���y������\	cK/	˧YGԻڐ����z&c"*�(,����y�E�q(�y�[���q`�a�7Xļ��~�����R���/��{h�h���"�g��=w���ݠ�՗���?���̶�uNh{�g�?tq���m�,�u�[�Y���ot��+�!�hf��.2]�ݹ?�&��wA�R���F�ľ붾Ue���%��d��l�i����q��Ms&�6�X�w-&�Y�3(���G9��{cׁ�֬ǿM��;����v��n�"���b��)�<�׾���e_�1���p���}��11��F#��YX��p�q]��s��,[�%*&��@�D�f��ҹA�ٙfs���,���>��3Y�ԕ;�:#hEL�ם[ROd��^G�A�˩f�~Y!����E���n��0�~��/�A��
�K�m���>^��WY�q�"���<цF����*c��:x�w�|�͞w��%�ehRg������d�9�̕���v�3�v
Dg��h�>>?��3�h�YDk�gC�(ʹƒ�ԕ���S����Ԝ|�
2Q��94�(�?OG�Q34�
f�cc��PopT�Ya��W(�>�@�t�X4�`�LG�ٞp��Ʉ�a��Űl\�[9�c�26��UM6f,����'����C���4�i<D�n��#�x��г
Hz5�[�
�_�����Qt��m�vN�C_��`��x���~
Mb
s�PEx���؇;�cW��*n\��?���׿v�:O��3@f����R�&�e�����m�[mٜC���5f(�M����Ni��YX�xШ���=�4
y�HO�<�0|���3���[��B	:d1�"Z�O$+Kx�i̒=�s��J����g���~�i[Rz'����G�#�v��}�>�?W~p�sϠ?��k��A��K�rŵ���k@�I�|>^x�s�?�\��`,D��̒�����5��W���^���w�D��M���Xf_8<%|8_왉pP�1����W��lm߃���f?4����:��́�_�Ԕv ���M�;k�:p�����_��sj؎qw]$F��}���y�
��,b'��N��=�o�����0,
������~��M���
Y�R���4�6+!��}@~u�j�ct�C��P.�Y(�x�׎����z�?70�WXFܣ�o�����3z����0���c8�R��G��g�0��T�U��򄽻��w�"/4��֏�����C�Q`[{O���c�n�]��+�{�{�����N!�3��<���V��yx�,!C
�b�.��lf���'��\ ן�����gu,μ���w-/��3ۥ����N���X(�c
����o�MD�s��a�#�#0{c
���%�uDWCB�Z�A��Z6�,؏�x�(Z%�����w���HbhTb2��<$��*c���nk���_�א����#{D+B<�!��S/�g�Ï`�9��.^]��ß��C��+>��3�+��5��]�q����p�j'
r�9��FDȬ)~:�����9Gm��x2���-?s�raG"yvU��pa;R���ă� �A�\&���
�?�#��n	��0�ee����d~o�q嶭�!!DzP^H)>�o��ȑ.�ļ�Զ=Hy�7�S�-M�
�?��8y�c���ߧq�|�#�5"�2Б�l�m#��U�����e�Τ�V���bM���͘�jA�c7�Z
�]>4�gb�
���s	2WRsKg�6���
's8qz�TT[�R�[w��)I��9�5x���Wj��
#�!nN+zP��ڔ�	�Kg��TE�,�����?��{�^R�Dݥ=�R�u^zîc������&D��'i74�S�J�ߔ��&H��U�G�[���cr�ͦ��<����׿~��4}څ��h���;���lpAZ�%�X�Z;t�Q?������y��k1+Ƴu6�[������D��c4�Ɯ����*d��B#!}�e>�samh����G3c^��8u9󼵕⸈߂�U�y��B;f"Y�i=�D�=����4��&�����|�C���3���g]�~���WgjhSIXU��"1A5Fr4�{����A��lj�w�T����t6<�/N�� �\����R�t��a|�i���>�T.�Wo>>�x��ϯ�Y���{緷m,J�{gg}�v~)�]��s!?w��X�����G�F��l!7��U��|Cn�fﳅ:.@mq%��臔���Ru?.��:��aB�ֺ��E#G�g'yX�D�u�SW��NJD)��21�ѵ�V��agW��P���q����Ȓ��s�?¶�@�g")���s\�T���{��f3g��o��^w:^�"��{��d#�!φt�}�,n�yWFKv�„X�4��|<��B+���8�i=�-;��X	5l=/xl��w���n�]� 
�+S�Ӽ,{՞�/Д�V���+<<
�����o �����ԇeNp�^O�����OvqR� �wHF3�݁�=o��;�`~k�R�wC���u¦�k�jE�|��qϩ���KV,���*?��xk��}Q�x�U���/M�����=��հp����=犐�^x�Bˏ���Kx���@�[���I���YB]T��➐����Kq�.ὀP��w����AG\�W�ϋ���9���2S���A\�Y\��y=Ǩ�Gj�����բ�M�@�tԂ��vD���z�+���Bĺ\������լ����6��k�6L��ʦ�R�_r�n�l|UAϯ<
���|��!��;��8�_1�g�sލ��C����� >�VB�~�,����˘_�&f���jp�/W�ԍ�wa�O ���H3����I`���u����1�ͤ������+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W����ݚ�w)��QmkBT����x���YH�Q��i_�Qk*2'RlWiQ*[((+�l3�H��!mAT4$���R��&Q�hK�.
�2Ȍ���"�y� *���?��f.^x�y�{>�$�o��*ZK�ٰ\��oV�'[վ#����z��[E�<���X��_F7
��T�v?[�����!�{[YW�k��Jj���+S�M��V�⽑*�LW��e*k��z�7y���o�RʕXe�%+�a���\�Y�Xk�/�>\�Ogʃ]3���o�4�;����1Zus�v���^�u@�{�t�s�]�N
,��{g�n(����Ϗk�����O�}~�o��>�膎�V;���tE�W��~r�����v ��7%��1O������H�����V�t]
���/��Aսl��3J�����ȿʿ��ws�'x���kI*}�U�m�f}��0�D�t~�jjj�];����{2���b;�'���3����o>����P�Gμ��̝��m����+�1Zq�#)��}�� �2L�\����?thͽ4�r;�۳��ͬg�{��yf~3�M�i;�8�C��O���/��;��Y���UC�0=���L�/,���5p�v�}�7��e�f��s��n��� �D�����I�uZ�^��d%VNRj�;�V�����C����M��}��;f���̛#�IDATx����kTw�?���̽��d�8���4���(!>0�X�Q$R)�u�P(X�+\u�P����
q�T��b*�jkk�1�d�yܙ;�1wf�u��7~��>��#	!�o�V���g�|�L���C��8=��xZ�H/E� �y�5�-^EĽ΀o�d�O��}�,S#g���Q���[՛�R���n�g�/�[��8����|y�$��O�վ�@_��+���P�7cCT�B%�VAR%./\"`h��/$y��"���&�*
��^w��@��=�q.���SGiHM����Ǐ�� /��2�J�� !���P5�[K0�M�Id��5ھG�+��l�E������,ӟH"{2n���6�/�|�����:UL��1[x6Xm�q�8�K2er�~�Mus���n��n�vH�'�,�
��˲�%�V���	-���
֋ef�78�5�p_�.Q��H���~p�^Psm6����~'���m�?�ǃ�_�g,�Em���0�m���I2���F�Z�"���f�<W�ѓUP�������@�H$�8�@^/���lZ:��n�6	'Ffo����J�T�:��4�vO233#u�;+�~^�n\�ֲ��y�]���IŬc�M��$S���ݿ��ݹ"f�X�o�Wh2���d�2l2�8B6��l�x���y��j��1==��o|��'8͓��IEND�B`�js/ThemeOffice/db.png000064400000001606152200041010010415 0ustar00�PNG


IHDR(-SsBIT��O��PLTE^]S��+U��n!���������^e~,�����������3o�����!k��\5b�F����$�}f������ÉC�pXU�K?lح�A�xf��8sJ)���h����ڌ�|��������I��̩��oeK�s%3f̣uBurn�����ĭ����ߞI�}.���S�3z}���1���c�W���_�֨��b���;�Վ,{W5������Tm"�տ2P��������/��;�����r����梺���ԗ�O�w"��?��H��᾿›�����Ȼ�]���ɿz���9za���Ç<mX$��g׏7��k��履�����ݶu+_l�g�A}nd������u��L0S�.������ݙ��W�T�������.��C������ջ����֤�J��tRNS����������������������������������������������������������������������������������������������������������������������mf|>	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`ee嶵`euO*fVV#���	A��hB���AHU�mD@��+��׳�R�
,)�,$ϑ␓����e�”_¨(��+�)`�W�.	�Jq�fY�YG1j�q�
u�7ɫ���V1
�)9;��Y�z+(���sAf;�*p�h�׀����)j��ʆ�X�����}4��Õ@���55�b��b��`����\6��_P4)��'IEND�B`�js/ThemeOffice/mass_email.png000064400000001632152200041010012141 0ustar00�PNG


IHDR(-SsBIT��O��PLTEP@xߙ��:��
���
3F������t�q����c�	[�<���򅇊W�^�Pfff�z<p���M�0Yd]��qx��Tx���H�Db�����C�����q�J���*�m��Ll���̍��m�d1�+1Se�׿j�����R�G1�?��y���-�&���A%t�xbZ�����1����Gv�����S�3������+�3_�xP����3f3��э��s�S������Ѝ���k�ޕ���z�X������sux~�����HQ��;�"K�E���v�uQ�;Q�3�����%{m�˝Fk�4���x�����L���I�,0����1u0���.�W�U���
�t�J����9�!fff(�uC�tRNS����������������������������������������������������������������������������������������������������������������������������]	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`��x�
�h�����[�1''�%�7�,mhj+.^T\^]�	�0-�K�
���孲
x���*+s'�ʔ�2���曫���2�2d���g����XU�W�2H��ii$����9(ʤ��<��k�e�]Ԃ�N�Q��QQ����@-INb��556*�^>@w(Ź������K��+p0�&���.�L������S�=�L.��/,�� !���d�Q��s{4�2��IEND�B`�js/ThemeOffice/sections.png000064400000000601152200041010011651 0ustar00�PNG


IHDR(-S+tEXtCreation TimeSun 5 Oct 2003 17:02:26 -0000��tIME�
1Z��z	pHYs��~�gAMA���aZPLTE�������9�������������������c��J��9��)����R�!��Z��R������s���{�s���>��tRNS@��ffIDATxڍ�I� @�"ő� 8��Z��D��PR���{�q@�:oM��a1�?/2�s���M�ZO4s@U7�w�4�#QYVU��� K	^^$�nnv��8�IEND�B`�js/ThemeOffice/controlpanel.png000064400000001617152200041010012532 0ustar00�PNG


IHDR(-SsBIT��O��PLTE�dN����u]�
�`	�����}e�H$��ݙ�����x:�������N�õ�uQ�{/���������(�⪁���<���qJ������ڔyೣ�zN‚=�
~~|��߻��ץ�����޲�q��l7ќ�8���ћ]�����}n���ۉ�U���ج�?����[�������鴆3���ڤ��jg�lTΚs~gf���ܓ�����ޢ������ڿ����������M�ݯk���������ZI��������$������jZ������㲂��S֟������/���`E�����������������ۭ���{:��B����Ư��Q�Z�dz��tRNS��������������������������������������������������������������������������������������������������������������������)f	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`����0k0�D��[V��
�lc�b��
��N
Qy�^^^q��f�@��� {//�P��p.��yP6IQ�$$</O	(�/��U�TY#����#�(���,�ħ�l�`�ǥ[��
ٔ�0�1�W����Gj���rg��`7�2`�6���*�
ȰH�����Ċ��ܡ^��S �n�
r��� �V�ntO�7�/޼��Ʌ))�p߲�2�B��4��c�tIEND�B`�js/ThemeOffice/messaging.png000064400000001605152200041010012004 0ustar00�PNG


IHDR(-SsBIT��O�nPLTEov����x���HɗK�����毲���虙���r��Ų����ӹ�z���r�����ܯQ�c�����ì�����ư��šd���������v�������m�Sox������v��y��������cӛ@ص_��㠷���ᅇ���Ϻ�������̮{ux{��ت�����~�����dإO��b���Ũh���������޷g�������Կ�����u�����W�������n���y}���y�����q{����zz��������������k������Q�ㅠ������������x��řL��䏤�̙f���ny���sӸn��휵댑�޵k���~��@U93ztRNS�������������������������������������������������������������������������������������������������������������������������M�}�	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`��"/C0���=L<��L�r��\���6z���`󠊔���P�l%�"suueeew3%!6�|apHv1.�ac�rWqp�g����N�a(��gff��K��v�b�������
t��vK�d����OJ�P�H����b�
�����$Fy�JWiE�*�E��[�1��o^>&U#G%K����XA�yGv/�69F͈[�DKC�_,�9ف<����&1CNP��IEND�B`�js/ThemeOffice/index.html000064400000000057152200041010011316 0ustar00<html>
<body bgcolor="#FFFFFF">
</body>
</html>js/ThemeOffice/menus.png000064400000001614152200041010011156 0ustar00�PNG


IHDR(-SsBIT��O��PLTErs|<F������I�������������t������Yƥ�^�����㕸�������������ݱ�^d����}�Y��ø��r�������<��♙������է��z��Z~�‚��ԣ������~�����憆����������h~�Td�ȿ˟����*촀ˣ����v��������Ͼ���S��c�����˿��ٰ���󣉱���d�އ��KU���������՛����ܭ�ݶ������xz�����n��ض��ѱ�eo��P���������絆{�������й����ȩ�a������������̌����3ˬ�������c����إ�̐����ޭ�������������q����B���������~��������tRNS���������������������������������������������������������������������������������������������������������������������ѳ	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c�6�I��!}>>9'�l 0��`���cP�`�u14������
��6�4��	���T������A��@k�rV]�,�@��*P��&����$���'ř���ƫp��O�
Z$ ��(�qg��-���	�
���)�&����	�ك|�������A�|~�����|\ Ec����\�z6>��l�@�*�
y�4J7��IEND�B`�js/ThemeOffice/config.png000064400000001314152200041010011271 0ustar00�PNG


IHDR(-SsBIT��O�PLTE�wP��í��ݓ���zvq��0�������۷Q��濞o��M���ߏ"����ysi������ɚ)��w����#��������딎���>���˟E���������������h��!��E¼���Ǯ��xB͐,��Z���������#��պ�����ٛ-��毳���!ģf�����‚8��������̵������������w������� ��&��������J������(|VtRNS�������������������������������������������������������������������������������������ؐc)	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�]��R�0��c�D
K��`�E�(�@C5
�6#n��
�2��Ϝy? {����0�ߢX�-�r@�]d'����E�@����b@W@��Ã��J�-��(#�����to�(C�_/OEG8Oiʁ+׸=��3C�k
����BD�I>�`Y�2[*D_?�cp�ݮ�s��LY	�Of/�s��p�k��
�ORJN�B5L|ݔIEND�B`�js/ThemeOffice/template.png000064400000001636152200041010011646 0ustar00�PNG


IHDR(-SsBIT��O��PLTEeI;���!E��%������^��1U��ja_c|���ԯ	���ύ,�wG��	���Rn��&ެ��;A������UL���Pf������;;b�1/HЏ��������Z}����n���X�}X��Rv��KsIb���w��ffCg�e�� !C_��?��|c4K����`EHS����1V�b�q����<`�XLF}����Ԭ�ƹ���~s��Md���C����&�ya�}>��͸����Q���-Q�^�������𳡡�����@Lh���u������鏁��#֖5������cW��T[x�Ko�q��BZ�rmt������8[�LhĤ`%s����ٽ�ő��a|���1U�j������Bc�&K����‡0�σn�tRNS������������������������������������������������������������������������������������������������������������������������������	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`E�t���+C�2�+l�A��E���J������@w�pM��k�Ug�kSm��h@y�$K0P�23�,BA#%7W�,`����&��[gH�u�P��5��:	{���2�z�
�u�c6r�T�,�
X�8	�i�K�yzU�0�X�籱&j��E9�0��Xr��KE�%�93�0�H��qDJD�����I0��8�r��&��xE�JI�|��,�"��ڙ��ſ1��HfIEND�B`�js/ThemeOffice/blank.png000064400000000227152200041010011115 0ustar00�PNG


IHDR(�4�tIME�2�BoY	pHYs��~�gAMA���aPLTE�z=�tRNS@��f
IDATx�c`�'�IEND�B`�js/ThemeOffice/document.png000064400000001413152200041010011642 0ustar00�PNG


IHDR(-SsBIT��O�&PLTEWe������r�������텇����������������񬰳`r���̞�������垡�����k{���آ�����kƻ����������������du�����������y���������n~������ݥ����ኌ�����������������������������е���口ܫ���랼����gz���������������������߳�����������t����n�Ê�����m���省������y|btRNS���������������������������������������������������������������������������������������������%�f	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�5�ko�0`��)̈��6�FJQ�Ļ1�†���	F������oQϷ��iRA�9�g�,oʺ�
P��f A�;P9T��w	�
���Y��k���X���a��+!A����8!6[~�-	CB�,��OKčD5M�ۜ�~�WސM!��?غ0�r)�H�ٯ��`ц�TQ�S�����</�_�(��b�u�~�F�GR;X���=�O\��%�S�.�IEND�B`�js/ThemeOffice/preview.png000064400000001655152200041010011515 0ustar00�PNG


IHDR(-SsBIT��O��PLTElqx�ĸ$%�|�񥨫��ݙ��nsڷ�삃���MT�NW董�����@I�����喷�bt���Ï��KX�}����᷷Ͽ�������������6=߾�σ��jr������m����ۭ�ڙ����̯����ƥ�ƞ�����5;�Yj����9?��������W_����|~���պ�¹�އ��������W_����w��JR����w�ڥ���������؟��r�����Q_�y�������ʵ�������ޛ��������Xa����fz�������st{��삣��������ky����PXޔ��������ֵ�������ˮ��Ž�{��P\������������ԓ�����uv�pw�����5:�RR��������^���tRNS�������������������������������������������������������������������������������������������������������������������������������S��/	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v��IDATx�%�3�p��($դ&	7.{�ׯ&|���u�ۭ���u�Jގ���y�mg�(�Sb�FM�=��J���!�>7�I�Yث�yX��r�3�B�'⥖뺇�rQ@X�O�L̲�N�2&@��z&v��jȝmP4�(m�T��'W�@�)�w>n6gN�_��#�vQ;�����Lo��٬��RE�	 	�HZ�,�\�;�  ��#;�'����l*�l�T������t���.���� �]���?�+<�
y�IEND�B`�js/ThemeOffice/tux.png000064400000001126152200041010010645 0ustar00�PNG


IHDR(-S+tEXtCreation TimeSun 5 Oct 2003 17:09:31 -0000v	�tIME�
	8���	pHYs��~�gAMA���a�PLTE������oqfcgbZZW������{�bV1�����Α�.�����{����~]+������������I�����ù�΢��������?BD���������oo�ZZc��������������έ��������!!su{�����133)))���������JLL!!)�����������!))	���tRNS@��f�IDATx�-��r�0E���V!�+UD>6P�Z���%P�s���]B�<��Ly��JY��P}����Q�]f�r�8.�F:�>���4�6�ژD�#���2DTF��U
��U�~�Q@ض�
��T5J��h��2�dO�9�BX�Q��Y>� ��c�u9�!B?#�y�!������z��o������m�Y�[1	ӲVo���6�-�*ʂRUc\�:_�')'9@ٵ�IEND�B`�js/ThemeOffice/add_section.png000064400000001624152200041010012304 0ustar00�PNG


IHDR(-SsBIT��O��PLTE;S�d�<���0T�$��������މ��5�Ut֨��C�V�6q����Lh�:�Y���f��>�#Q]|Cg�@[���e�a������os{h��dt������6�o��;X���0Q�q�>Z�QKY���Cf�Q�7��J�cl����Tx�8�&Z�Y���}��d�뼿�}�xUz�@c�X�M���_v������̡��Yi���8[܀�C*Mش̹l�簳����������/�>[�C_�*N�Xy�Bk�}���I�*Gh�w��q��}�뜟�W�Q���8�3X������N�IC~����]�B���;^���Kmի��EY���Qi���kk{[�V���A_������<a�������Kk�M�.Np縻����4W�Vv����ȗ��tRNS�������������������������������������������������������������������������������������������������������������������������ho�	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`c���Oe�d ���f��c%��!�a�lp5g��T�1
�5�Ҳ�)gP��dT
u�P�H�D��9]��i!�h�#C�(N�
7�\oqc6�$A>��	�
6��*} OA���;�$�aQ
�M��H�U�U���`�4K�x�r		�l�B��l�NB
��E���@�X!G[a�,Q&ky���?��F^�qd��s��z5��@ķll�lp�4|0� IEND�B`�js/ThemeOffice/spacer.png000064400000000072152200041010011301 0ustar00GIF89a��ff!�,��������ڋ�޼��;js/ThemeOffice/checkin.png000064400000001547152200041010011440 0ustar00�PNG


IHDR(-SsBIT��O�YPLTEN\������Ei����t��9Z����qu�w����h��Y{ߍ������٬�����CZ�Uy��������Uq�g�ؙ�����Si���}�����f�䋜ỿ̷������������������<_�I]���q���������Nr礦�Wj�������������b���b��DbЃ��Tc������Ò��o���������~���X|�>X��������x��k�֭�d��������]vϚ��Pt�{��n�������슯����?cݵ�������b�H^�����������Q^������`��ֳ����o��)J��stRNS�������������������������������������������������������������������������������������������������������þ5	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`�����@>���m3��]� �Na.qq�v� �,='Fss.�<Y��V������y���|��C
H�S���j(+��);���a##/��(++�HjC�zAL���j�=H�DŽ��)N<��#]ȏ6�Mc�
��sW��)�fv0a����Jϐ����a�0c`�����ɰ���N�:,�.8�Q4:�Z$A���tلHo�Hf6OA��X�L�}t8����eaqLK313]-3m���IEND�B`�js/ThemeOffice/arrow.png000064400000000256152200041010011162 0ustar00�PNG


IHDR�
�!tIME�1+Nթ	pHYs��~�gAMA���aPLTE����ٟ�tRNS��0JIDATx�c�����@8��4TU-��,�C:IEND�B`�js/ThemeOffice/trash.png000064400000001650152200041010011150 0ustar00�PNG


IHDR(-SsBIT��O��PLTEUb����������m��Fi�fl|l�軿�'J֪�i�^��{�����}��u��JeĊ�ٙ����_t����?Y���ض�Dg��Tx�d�蜟����~����u�����ݻ���5X�Sg�������x�у�����f��Nq�Sj�w�邜�����Rp͏�ە�����v��[�g��Xs�_��v��;_�l��f����؉�����x�����suyx��Oh����������^����[����n�ő��Ze������������~�����j�兜ե��}��Pu噙���Gj�r��i����Uy텫�a��r�������j��Il�Yo�?c�Rl����r��k����ޘ��x��:]ބ�䋧�v��xs��tRNS���������������������������������������������������������������������������������������������������������������������������������	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v��IDATx�c��M�3R��6���*.7m�@�Knz�c��D��6�ޞ5+ ��8C,b�i��㔚�!Wpw�*�pr�4����a����
�I11�����
�Ȥ����FJJgkz0�'%U���٦Jre�:2%�f1�gJrg���1�ɤ��'�p����01�Y�����:���y018��s��ʸ�H�2�1�X��*Z��((�{{f0{�p[�
�����1y0{8�11ɉ��YX�qD�9<��M`IEND�B`�js/ThemeOffice/search_text.png000064400000001647152200041010012346 0ustar00�PNG


IHDR(-SsBIT��O�}PLTE5V��ǣ`)���vaU���k�ꜟ���Lp��i�֌��9\ێ�������K\�NJT���kv���̬������Gbȍqas�����Vz����̽��|��vx{|��9Y����Eiޙ�����{A��dz�������ޕ�֚��d�����Zd�Pt���՗���������|���AY���̭��ՙ^w�����Aeݣ����������؉��NlЃ{w�������\��Rs�3W�c��r�ؔ�꯲��������zi������������Im��������u��=aܶ��L`���ޟ��Sx㖌�������0S�u�����e��R{�W{䝼󦥦j�ܼ��iv����y{}��������娫�Ijٳ���������tRNS������������������������������������������������������������������������������������������������������������������������������g��Y	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v��IDATx�c�.R��v�2qעu'N΀X;S���\tjj�ott�t9H���)�$ KIIɗ�!%(P�����a����_Rl$ΐ�*-������T��OM�6�W��a7g��1�UՓqV��
9�(����rp�J�D�3�Y�ųf$[Hh(�(�H�sU�
���m�e�Q�0��
�5b7�5Ќq�M��1��*�e72���-�)ӕb�cgy��VL��Kד%M�, .�.jkk�(���`�5׵�J�IEND�B`�js/ThemeOffice/license.png000064400000001534152200041010011452 0ustar00�PNG


IHDR(-SsBIT��O�YPLTE����ݼ��^~������������ez�������������߆�������冗�������n~���w������������ߗ����|����������՟���������p���������r������������~��������}������������������ڴ������r��┬������������ț����������������w���������������o������������������������������������y�歵���遃������������{��{�먶瞳�P~�/stRNS����������������������������������������������������������������������������������������������������������M	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`��B�49F``ԏ3�4��
h%y{���J21�̸���<8�$C@b��N�bI���@��8[�4o__��Pqi��8[v�6[K�P=���c��F+����I�P���D&/����R�1�
(��h��c�.e�hr��hh���_���
w,P�?�3\SSA]FJ�"�(����%�n**��l���������yfD�Q^$���MZd(�K�B�(M�Qg�IEND�B`�js/ThemeOffice/globe2.png000064400000001565152200041010011206 0ustar00�PNG


IHDR(-SsBIT��O�YPLTE4Sɢ�陙�ls����a��n��Mq����|��8\�h}�?U������̘�׬��\d�z����Ǐ��Rv����z�����Dhޅ�����m��+N�l�ک����i��Ia���������כ���\y���t�͂��]��4U�Ae�t����տ��������̊�Ӓ����ݠ��f��n�萡����Hl߻��Y}�������7R�|��Geϙ�����Oq�t��������.Qס�������ۓ����␩�q�܆��`��=aܦ��������������䙾�y��f����q�싰���Xc�R{�q�倃�8V���������=X�����^U��stRNS������������������������������������������������������������������������������������������������������������������~	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v��IDATx�c��B
�PN��|���+>��,��A��b���N�,Q���@�0''665'vCa�|W'v=kI]	{E;'.�@GIvV�TIc���&~�T��aB���a$W���U����\BZZ��4���c��.�kB���4C�CHp�s���^��P�Txp^�����b��?Ќ��dӘ��H>OS!&#/#�D�$��d�tm?K�|3Q-��LenfA�|������dddT�e�@~K#30��:�9'���IEND�B`�js/ThemeOffice/sysinfo.png000064400000001562152200041010011523 0ustar00�PNG


IHDR(-SsBIT��O��PLTE-Z,���_L�˗%�� �
���4�5yl��񩫬S�Qի^`�����NHB_����вL�0x�f�y9���͉8���@<Q����h����<,K���9o@�ޠ��
�����<��"�����=��쮫���U�1�����\�I7� ���333@�<��F��8Lss؊,MHh�� ����������9;I��V�K[�@J[j���n�C����Ϭ��CpUV�,������j�]٢*KCK6}1��ę̙���x_FsE/��
��Lʶ�c�VX�=\Sm��@���B�*f[�gd�8LJ����������������!�C>\TMv��
���J�6���<�7���� ��௰���ť����{mL?i��;0IY�VˋA=1Z��tRNS��������������������������������������������������������������������������������������������������������������������� N�x	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c�D�)6)$�x>66>���|�[��L�'XW���S,P��(��m��� $�$�PĐl(��������nh_[+����W��PǪ ' i�+���`�"V�k�X���PS	�s
c�u65�
			p�8zȰ(EX���D�U,4y"��M�J|m�Ԁ��6᯲tS��{.�͍�
�� >� 4߂�(p~��IEND�B`�js/ThemeOffice/backup.png000064400000001420152200041010011267 0ustar00�PNG


IHDR(-SsBIT��O�2PLTE���̙��wy|D�$�j���J�:���a�@ysb������^�U���(�r�u��篚ah]B���fff���|�L���Q�1}�h��ԣ�����u�T��������枡�Y�@@�)�����І�����_��������w,���^�9k�C������{�e������L�6��ܓƍ�о����
jdU�����������J�,{}����9� �{g��ނ�R��ś�����o�J���'�_�40����a�S�������x2��������ܼ�ï����١��������j�B���P�:���*�}�O��?�$GA�ftRNS���������������������������������������������������������������������������������������������������K7h�	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�cPK)cC0�L�+K:�� 8T��Sٙ�T���J�	�"�]$��8}`�j���	βn �(=^}�do�	�
	Fi�0�@?qwn�(����6�j�����=�P �QP[�(QA>8Z�(�`�)&������#��(#è��j�*o�EBI�DVXW���3EK쎀�&&-'�&�(�K%"=���"e%`NG��)��${�IEND�B`�js/ThemeOffice/messaging_config.png000064400000001645152200041010013335 0ustar00�PNG


IHDR(-SsBIT��O��PLTEK]�����A�������$I���wj���Lr|���s��堣�Ns޾��?^����٪J����������̒��G`����q���˽���;b���܂ֳd��bg|������׻m���^}�ͨ]^h����Ś:[�Xp�����h^��՛=r����ᛢ���ℰ�׼������p|��|��Ӭj���Dg��Y^n����r����X�E�������ou�z}���1U��������ƾ_v�еsk��Bfڣ��7[���t����a��ȗNw��Un�����p��Rq↝����a{⛭������{�쌎�P_�ź����_g~��������f�������������㲸���y�����l��?c�Q�������tRNS���������������������������������������������������������������������������������������������������������������������������������я	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c����F�0`���쬸�3`2�
vv)욢`E@>{Jeex����P��O����@I�U�*�(`b�	u�U*\RR���n�nFL�1��ƌ�b,і���a����<<<�E��rl���E�B%�5ee���i>����"fQ�QQ�����		@�\VVm��b{}�@�^�$i/�0w�}V	�,��|�P�0�8�X�<�z��uqF�@�l-o!>Oq�礤�"��C�C=�32a�>�q],IEND�B`�js/ThemeOffice/users_add.png000064400000001646152200041010012005 0ustar00�PNG


IHDR(-SsBIT��O��PLTE~(���rvl"�1�(ѥjmX&���u9]�8�|hm<��̃p�_4�]M�5�޴컃���pef�i�iyACctft�P̙fI�+Ej������B�*��FZ�8�f<�k����JC�wL���InI�)=\�H��p�XO��cx�|�sIU�Q���N�e0�?�=�����շ���̊ݠx�{nT�Qff3�B�V,ʎUIsB�#�6:=�h�?�Y+�|����|~�����̙��rdn%�|[��€�uձ�����`O%�!�$'���U�8�dA�f�-1�|Op�L��řu�s����y}]<ZkX�IK���R�5���թwrM%��TC�'��̥�{d�?�\4�ƇJ�'ݠ[������𱊥����������z��՗0�#�d;[ӯ�tRNS��������������������������������������������������������������������������������������������������������������������������Zu	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v��IDATx�c`L��cg0��hj"�-d��{�Lr2��u�Ԣ���u����ޅ�n�j\������֌eRAY� 3�m
b�|�KX���9�E)�!���>� ��dA3=�@eKK)�$�@h�P@�$�*Z,,�����^����OڦF�؅���"۞_ف��SRA4R�Y�!��޽ȝ��SҎWQ�Y��ى����3�X� C�E��A��SU7�����0U�K.�!-AT�)F\�J��1	乼�*�*9 /�
�2�9tAIEND�B`�js/ThemeOffice/statistics.png000064400000001573152200041010012225 0ustar00�PNG


IHDR(-SsBIT��O��PLTE���{pG,

t{V �{V['��
'�0'��krgm	+�!!�oM
V9=�&�y��pM30��a�^|`YZ�;���txt-� 
tۥG�*8�%��	l�C�����
r�@R�0�W�6Ϥ����E�)��M�4Y�D;�'/���+���=�*n�\�%!�]�3�3%�F�8?�88�9ss�C�<B�NL�-7�1H�@+�!:�:Rvr#�Jvqid�ff�<xFKmjKcgX\yP\w\S�^Q�*g$=]LVPxUKzMKlSHuRDuCKZOFmJCcFB[E@Y7DCC>VD;X,D.:=A@8S<8J1;;;3H54B5*<7)A(<��tRNS"""33DDDUUUUffwwww������������������������������������������������������������������������������������������������������������q%��	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`�	؄�U8��fnIuO��-v�#�����GtvNc�����o\Uy}}e}�P@�.���������$]���A& ������4�8+���78�2�$3� )-5R( jR������e �"g���dm�)���oj��lecf��*T��$�hai��� .���
r%������;+��\\H<`B�`b'(��IEND�B`�js/ThemeOffice/help.png000064400000001544152200041010010761 0ustar00�PNG


IHDR(-SsBIT��O��PLTE�7��Ԅ����'JG<����L�����.�]$�Q>���Š`Պ �I8����C*�ȶ�|�q6�h'��Z���YN�ld��S�D�������?؞S�q0��[�W#Ʈ�4�����𺊂�fYɠ�|ol�)�x(�yK�mW��C��͕>��̿��ы0��;n^M�\ �t�R'����;��̎U@��ࣤ��m&��v�/ؐ*�YJӫd��ɴ����ykU���5��hն|��ܥE'�r �����x�c�|0��#�^L����KݞA�f3�.��ۚfC���|^W�~]�����F�SD�s'�=�c ����ʳ�j$����j0ɱ��^;���������I;�I��G����}*�U�7��ԭ����4���ތ!����x6������tRNS����������������������������������������������������������������������������������������������������������������������u�	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`O�Z����bs\||��`<�!!Ɓp��x!'��p������l1T1�̨S011�2N�
p���9G�x��d�ưp�f�@��Rue$ظ �~�Re�a��ie� 5��"3
{3��@2H E;�#�L@$ଥ\d��]*b��i�T/,,�	��dM��:����N%��[��'pr~IEND�B`�js/ThemeOffice/user.png000064400000001462152200041010011006 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDATx�b���?0222�Y0�
HL�4u�W`���ñMK�x��u���@e��	� ���57��\x|��7�.����7���cX��	�L0��	���0���C��ӋP���Õ�}f|�N}b8�	2 �P����ók��b��a�v���� C��$��S������2 �P�bebxz}?���'�ի_l������9��={�p��s9��E��B1�_��c���a�a��rc��gdy��P�@(������>.gȀ
<8~���;���bĄ���p��+^=���#��o]��p���e�3<D�J�bDK g���eh��VLQ2�:����n<x��b'�<�<(�ށ�	� �X�\	2��v���
��2⌢�̬L��Rn�x��Ä�@y�
�@�0DF.җ��ٗ�j!p��#YY~=���e7l(Ys>�,�l�SSL�D9N�|����{N.V��Yy����^���!!�4�y��``�v�%�ݻ���d`x��DŽOE�599��0�7��`�L����ݹ�����/�d������@i�
�B	96�_� z��X����P##+�uH�/�B1�����\B$m.6aand�_?�,� ��������qIEND�B`�js/ThemeOffice/mainmenu.png000064400000001132152200041010011633 0ustar00�PNG


IHDR(-S+tEXtCreation TimeSun 5 Oct 2003 16:43:23 -0000$."�tIME�
+.��)	pHYs��~�gAMA���a�PLTE���JJJ�����޽�ε�Ƶ�������ν��{ZJ�J9���������ƌsֵ���s����c9��{�ޔ��{�sk��B��R��J��R��ƵkB��9��9����{)��)��)޵9��s�sJ��!����!�ƌ���Bkオ��k!������1��焵��kR�{�����{s���Z��������sZ�k����Υs�kB�������ƵsZ�sΔ9��ƽ�������tRNS@��f�IDATx�M���@�1��sә0��9�a�o�5;5��}��Cb�+N��&~h����X�^,W�
!ј_��t6�,ј���ƈPho��jw��(T�ʕj����y�+M�~��H���3��"'���
�KA�Q-�M���#l��W�'�p|���c��IEND�B`�js/ThemeOffice/warning.png000064400000002073152200041010011474 0ustar00�PNG


IHDR(-SgAMA��7��tEXtSoftwareAdobe ImageReadyq�e<PLTE�����ν�Δ{{�ZB�RB�kc����R�����J����c9������!)�������R1��ƽ���c����!��)��kk���c����kJ���B��J��B��9��9��9��1��Ƶ��R��1��s��k��Z��c��Z��!�R����sZ���������ccZ����ZRƽ��R��J����֔ccc�ƌ�����B�J�����s����cck���������kc����R��R��������J�J�������k�֔����s�{s�R)��9�����9�B!����Z��!�c����c9�k�W�=tRNS@��f�IDATx�b`s��#ʈ�OK���BHLJNIC�cb�\����0���(�������@`������������0�������4����IWO��������$����������%��
�KHJII����KJ�+(20�������0���1pprA'pq�00��� ;#
`0��9�AIEND�B`�js/ThemeOffice/install.png000064400000001623152200041010011475 0ustar00�PNG


IHDR(-SsBIT��O��PLTELLW����'����ֽ�y�v�mN���ͺӍOG�.[�H�̋�����f�yU����ejzz�Z�������M���w�E��άs��؎2tcX���Q�[��Ÿl;3�)����}\�X�B�̙��Y���e|e�����3�������j��[_�M��m���7��J�'ʚ���j�դgp?Ȃ?����śx{}�K�p5쾞�1��C�ނ�3�¶��{�x1�-�ࠌvh�������&�[ZcT����x���̙f�m^řJ�Tw�v���V�:��P=�2 ����ԝD�����9��&�nA�|t����(_�Z����[�Ю��vuji�uL�����m]�NJf�J������� ��yotr��e:�3"������ij�w��
�tRNS���������������������������������������������������������������������������������������������������������������������������;0	�	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c��వ�ug�� ׻�5!� �"`'U��ab��ɗT`u�qJL,ヨpWwvv�w�I�ч�E8��h1�e)r2F��0�I�f��2U���(9��HJ�{ʃ,-#��8��B��b����2��z:�|��ձ�I�N���%�l9Vj@UQ
�T��J���"���jem{}�@�D:�>ci����
�@$%���ǧ�-���B�4oORhIEND�B`�js/ThemeOffice/language.png000064400000001577152200041010011622 0ustar00�PNG


IHDR(-SsBIT��O��PLTE/}*����f|~�ĥ���<��`�\�v Ə3�����g��breV�4��ET���u��`tI����Ɖ�f3�ۭ�mK��n΍\�X5��MxL��v֫;ϵ������������yQv|�jXg�i.�����z���Y�4��N�tUz�Q�d?݄p�{,<�"���C�<�����hܐިCzj]��v}^F,��a�>�Ĺ|�k�������d3̙3>�'��R���+����sP�Itqq��^�
�����ݝ��R�6������ٺk�vQw}|������t��~<�4m�E�����ޑi<5�,ŋA>�9'�'8��������l-?�)��������4��zF�s�����������ڒ֭B�Љ��^�;oϥ��tRNS������������������������������������������������������������������������������������������������������������������������������6;	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`���%%%�bFF�UO$  �ӻ0*`�\�'R���U�gb��dbӕQ
��H�d
�ʫ����b�M����+++$�+y��J}5�BM�#����y���i1G������p���V�
c�CX�6I4�р��,���f��u1#C�����c���T ٢ބS3�I����0Ņ߇!N* ��a��tT�8W5^5�[f(��(�P��IEND�B`�js/ThemeOffice/tooltip.png000064400000001354152200041010011522 0ustar00�PNG


IHDR(-S+tEXtCreation TimeThu 5 Aug 2004 20:24:37 -0000��
=tIME����	pHYs��~�gAMA���aDPLTE���s��)9�s{{c)){ss����!1�)�!c�9��B��!Z��{��ƭ��)�R�)��9�k)B�R���k����ν��R�{��9�{������J�s��9Z�Z�s��9�B�9�{�9�k�J�������B�{!��1����J�J�9��R����1k�J��s�kBk�1��{��k��Z�)1�{��ZƜ������c��!�s{�9k�)sޭ������c��9c�!1����!Z�){������9k�!�Z�Z�ޥ�����)B�B�9�9R�w��tRNS@��f�IDATx�c`/gk�̬l�NNIMKK����cb���U��|�@"�!�aa�**aaa�Q@��&>>>�~�@J90���E\݀����'�������������������X��X�������������)���gƠ���RQ��
�44Հ(�
�u���@YEEH��s00HJIK������KK�]*,"*�B �prq������
A���������bX�+�yXOIEND�B`�js/ThemeOffice/edit.png000064400000001647152200041010010762 0ustar00�PNG


IHDR(-SsBIT��O��PLTEaNB��%Zz�uq��^N�������ئt8�{��񲵹�%Ƞ���l|����^���tvy���� ��l�Or��kD���rll���������;z��D������rC������ߢ�����������̳~��њ��v�ę��Ҕ_�f3��ㆋ�������������y|~q���oX�������������F��ʩ�����v��ئv�������tVV����zU�ƈ𔀒��nv���➸�������������qz������ܓ���1������t������~����������������Ģ������럢�����rtv�����Ԛ��vz�����������������z��@�tRNS���������������������������������������������������������������������������������������������������������������������������?tP�	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v��IDATx�c�;E&C� 
)��&���9(��V
, ��Ui��)�� `�vc���qb�eQ�
��EG[�iZ�J[�0�e�XHddjZi��
�1�Թթ'&D�r�&�0�d;����	�'��0(z�8���1x�V�SeU��<Ü�
̤�Q�*ޱ�a���@�r��"�`mm�}��:q��|::�a�9�ɦ�@O��Ԕ��
e��:Y��2�1��y�je: �&*���&���=�<wIEND�B`�js/ThemeOffice/restore.png000064400000001573152200041010011516 0ustar00�PNG


IHDR(-SsBIT��O�tPLTEfV+��̣�����#�
wx|��󼽿[�B{zu�����ߞ��@�$���e^S���J�Cn�XG�G�����ݫ�䌍�����������������wo_7�*e]Lh�Cl�k�����㞮���ڙ���zS����tR�ɷ��Ĩ˥���������쯯����z�n#�N�*��ӣ�����k�=��������د��r^(��ۣ����y���eY�Ntqt�����������Ͽ�~x���;�'��Ų�����������R�2����������'������Ƕ�Ǘ��������d`Xt�\lcK��䧮�����������ާ��������fV.zzzP�H�����ˤ�в̱����Ե�������䮭���ζ��ɺ�|tRNS����������������������������������������������������������������������������������������������������������������������zb	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c��F�����][כ�;MD
"�^����W�n������q�qP�

	H�������;rrp3�����d8i1$���1��DF*���jXīk:�
���U�IK�jF9Fs3$�*sqy�Yہ�� ��]��R��#f.P��5�6�J)+5�d�*apg*�WwQpK�q�f[]�o�Tiz��RBB".Nܑ�9�_C����E�P*��^�IEND�B`�js/ThemeOffice/module.png000064400000001543152200041010011315 0ustar00�PNG


IHDR(-SsBIT��O�hPLTE@�����
�����GS�����g��Mg�仆�����H��i��B�?Z����Fj����f��JJ^ٷ��֘k�aIo�3Y���%J�Ne���������U|�����ܯ�y�ȵ�������9W���	��fL�\m�*Q�_�ݹ�������4X���v4V��r@��ͤ�j��ۖ�=c����\l\������Q\v�Bd����Ts�x��A_�z����������{��������_�����;[������1R���y���*P�7[�㪏���@c�%I�Im뿿�Oc����;a��������Jl����Jc�\��m��Tz��.P�]yЌ��跍��j�C#xtRNS����������������������������������������������������������������������������������������������������������������n!	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`dd�bDF��hk�Y���(Pf�"*��`���a��� �����&e�/lg�\,������Ɵ$�a��J�L����q�"�n@�xGq}V����+��]p�fyFF�@x�*H KZ%-#CKK �ʊ�"]X9#$$<<3�G6$`f��! `e���"�
��I�*�T�u��	�2gd��q�	����`Y䙭���#��<��oQK4+����IEND�B`�js/ThemeOffice/mail.png000064400000001066152200041010010752 0ustar00�PNG


IHDR(-S+tEXtCreation TimeSun 5 Oct 2003 19:05:19 -0000�f��tIME�
.��&	pHYs��~�gAMA���a�PLTE�����Υ��Ng������ƈ���������o�����O������y����]��Eؔ�����1p�h��!Rֽ�h��)������甜�sy�X�����������������������������֭��������������������������������ﹹһ�tRNS@��f�IDATx�]��� ��B�XAPRj����Nf��{eM���՞�j��|/N��S^��8�Ѧ�#��K}(M�W�����T��N���]);O�fÎ�D��(���,l�
�[��1I�\_���Y��S憾�ͣED1L��J�!�?_
9{j�Y��À0�?q�N���C��m����=.�IEND�B`�js/ThemeOffice/theme.js000064400000003275152200041010010766 0ustar00
// directory of where all the images are
var cmThemeOfficeBase = 'includes/js/ThemeOffice/';

var cmThemeOffice =
{
  	// main menu display attributes
  	//
  	// Note.  When the menu bar is horizontal,
  	// mainFolderLeft and mainFolderRight are
  	// put in <span></span>.  When the menu
  	// bar is vertical, they would be put in
  	// a separate TD cell.

  	// HTML code to the left of the folder item
  	mainFolderLeft: '&nbsp;',
  	// HTML code to the right of the folder item
  	mainFolderRight: '&nbsp;',
	// HTML code to the left of the regular item
	mainItemLeft: '&nbsp;',
	// HTML code to the right of the regular item
	mainItemRight: '&nbsp;',

	// sub menu display attributes

	// 0, HTML code to the left of the folder item
	folderLeft: '<img alt="" src="' + cmThemeOfficeBase + 'spacer.png">',
	// 1, HTML code to the right of the folder item
	folderRight: '<img alt="" src="' + cmThemeOfficeBase + 'arrow.png">',
	// 2, HTML code to the left of the regular item
	itemLeft: '<img alt="" src="' + cmThemeOfficeBase + 'spacer.png">',
	// 3, HTML code to the right of the regular item
	itemRight: '<img alt="" src="' + cmThemeOfficeBase + 'blank.png">',
	// 4, cell spacing for main menu
	mainSpacing: 0,
	// 5, cell spacing for sub menus
	subSpacing: 0,
	// 6, auto dispear time for submenus in milli-seconds
	delay: 500
};

// for horizontal menu split
var cmThemeOfficeHSplit = [_cmNoAction, '<td class="ThemeOfficeMenuItemLeft"></td><td colspan="2"><div class="ThemeOfficeMenuSplit"></div></td>'];
var cmThemeOfficeMainHSplit = [_cmNoAction, '<td class="ThemeOfficeMainItemLeft"></td><td colspan="2"><div class="ThemeOfficeMenuSplit"></div></td>'];
var cmThemeOfficeMainVSplit = [_cmNoAction, '&nbsp;'];
js/ThemeOffice/home.png000064400000001576152200041010010766 0ustar00�PNG


IHDR(-SsBIT��O��PLTE�!���~��ot��\p�m������s`G����bW�����b�w)��l��i\���Ĝ��H�rP�nrty�^T�����̿= ������~���>'�<7נ9̼�֘v��̥���x����0��|���jb[�������V.��������UIֶwҙ��+����·f���a<�����ٔP]�q9�[�/
|~������ʯth���z�����B���������ףon���#�`���)¥��|~����������՛���*���������(�dR�*�����WV������;������������������Ԩ��lu��kZʾ��������)�d�xo�&��������tRNS������������������������������������������������������������������������������������������������������������������������������^yj	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`cc��O�a� T6�֔�$�����k�C��|�-��\Ӎ��5I�\Ŧ���*,F1lj
��^"9yyy��l�)nq�%�@��$4Ó'�Nգ�[*��W��-��<^%S�DQ)�J�$���mɮ�^��e�O�N�g��T/�q

EHf��rh��sr�\X�l����i��[�Pb��T �s@�Ύ�[�+o
�9�IEND�B`�js/ThemeOffice/component.png000064400000001604152200041010012030 0ustar00�PNG


IHDR(-SsBIT��O��PLTE{fK-W�ff����ܖ+����s����W����{>���d�۽�I�����İ�[�J~|�Dג,��jϱ����Qs�m���j;���ΛS���pkd��0��ˢvM�ƾ���İ���̡�y�����o�+���O���ͪz���ޝF{}��a���؏$Jq�×T�5Ӗ:��p\���\�z.�}aځ=�e5���xwv��ͷ��}0��n�Qnc��E���f����ɛ�������WғB�����v��p����~��ɵ�������fȉ.̮��`rmi�R�E�~C���٧Z��a���Sx�֚;����MJv����Yc��{:�Tp������3k��ߥI���‡<�Ƶ����b�t&ɹ���s�������J��k0[�Sw�`vs�tRNS���������������������������������������������������������������������������������������������������������������������������	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`���u#nf����^7P�$�SA �,�P����Z瓖����4�����`d��Qcgf`W��-bM���s3�ef𪐏
�4�W4�*�pJ���T����f��1�I�/��d����`�v1wM	f��s��C̪�<"�5G�V")j!j���PJ�����f��0��Zp��E�C�	��b0`g�	@A3�3;w5�.o*w�h�IEND�B`�js/ThemeOffice/messaging_inbox.png000064400000001630152200041010013201 0ustar00�PNG


IHDR(-SsBIT��O��PLTEoqsw��h��M)����F۷m���f3��������������+���mz��S��}���ϠJ�������qv�⭬�C��wėO��ߗE:��Ó��Ƴ�|������'��jޫO�[�H0����t��������§������ÿ����T���������������g�zc�����gw��qn�^�����ػ������������^������������������˯l��̷���kw����f���ʁ\t������������~������ұ������������ԢO��������ƺsx���昲���l��������ጮ������Y�������m�ϼ��������Զ���SA>9�tRNS�������������������������������������������������������������������������������������������������������������������������������cc�	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�cM̔� ���wpD��*�	R1��	T�

V�B1�WTXZ��3�E�،�ݍR��u��ف�e
��ҺII		�����浜�Q^:,�V��"��,~Iz^�q�a�\�"�剌5���b�v��NNN�����bZ����J�&���%��|��@�:.���,nє(�jGQG�H�(��b�x3ŌH�{ks���c<,�d >\i�n.�2���7�0$�IEND�B`�js/ThemeOffice/theme.css000064400000012266152200041010011142 0ustar00/* ThemeOfficeMenu Style Sheet */

.ThemeOfficeMenu,.ThemeOfficeSubMenuTable
{
	font-family:	verdana, arial, sans-serif;
	font-size:	13px;

	padding:	0;

	white-space:	nowrap;
	cursor:		default;
}

.ThemeOfficeSubMenu
{
	position:	absolute;
	visibility:	hidden;

	/*
	   Netscape/Mozilla renders borders by increasing
	   their z-index.  The following line is necessary
	   to cover any borders underneath
	*/
	z-index:	100;
	border:		0;
	padding:	0;

	overflow:	visible;
	border:		1px solid #8C867B;

	filter:progid:DXImageTransform.Microsoft.Shadow(color=#BDC3BD, Direction=135, Strength=4);
}

.ThemeOfficeSubMenuTable
{
	overflow:	visible;
}

.ThemeOfficeMainItem,.ThemeOfficeMainItemHover,.ThemeOfficeMainItemActive,
.ThemeOfficeMenuItem,.ThemeOfficeMenuItemHover,.ThemeOfficeMenuItemActive
{
	border:		0;
	cursor:		default;
	white-space:	nowrap;
}

.ThemeOfficeMainItem
{
	/*background-color:	#EFEBDE;*/
}

.ThemeOfficeMainItemHover,.ThemeOfficeMainItemActive
{
	background-color:	#C6D3EF;
}

.ThemeOfficeMenuItem
{
	background-color:	#FFF;
}

.ThemeOfficeMenuItemHover,.ThemeOfficeMenuItemActive
{
	background-color:	#C6D3EF;
}


/* horizontal main menu */

.ThemeOfficeMainItem
{
	padding: 4px 1px 4px 1px;
	border: 0;
}

td.ThemeOfficeMainItemHover,td.ThemeOfficeMainItemActive
{
	padding:	0px;
	border:		1px solid #3169C6;
}

.ThemeOfficeMainFolderLeft,.ThemeOfficeMainItemLeft,
.ThemeOfficeMainFolderText,.ThemeOfficeMainItemText,
.ThemeOfficeMainFolderRight,.ThemeOfficeMainItemRight
{
	background-color:	inherit;
}

/* vertical main menu sub components */

td.ThemeOfficeMainFolderLeft,td.ThemeOfficeMainItemLeft
{
	padding-top:	2px;
	padding-bottom:	2px;
	padding-left:	0px;
	padding-right:	2px;

	border-top:	1px solid #3169C6;
	border-bottom:	1px solid #3169C6;
	border-left:	1px solid #3169C6;

	background-color:	inherit;
}

td.ThemeOfficeMainFolderText,td.ThemeOfficeMainItemText
{
	padding-top:	2px;
	padding-bottom:	2px;
	padding-left:	5px;
	padding-right:	5px;

	border-top:	1px solid #3169C6;
	border-bottom:	1px solid #3169C6;

	background-color:	inherit;
	white-space:	nowrap;
}

td.ThemeOfficeMainFolderRight,td.ThemeOfficeMainItemRight
{
	padding-top:	2px;
	padding-bottom:	2px;
	padding-left:	0px;
	padding-right:	0px;

	border-top:	1px solid #3169C6;
	border-bottom:	1px solid #3169C6;
	border-right:	1px solid #3169C6;

	background-color:	inherit;
}

tr.ThemeOfficeMainItem td.ThemeOfficeMainFolderLeft,
tr.ThemeOfficeMainItem td.ThemeOfficeMainItemLeft
{
	padding-top:	3px;
	padding-bottom:	3px;
	padding-left:	1px;
	padding-right:	2px;

	white-space:	nowrap;

	border:		0;
	background-color:	inherit;
}

tr.ThemeOfficeMainItem td.ThemeOfficeMainFolderText,
tr.ThemeOfficeMainItem td.ThemeOfficeMainItemText
{
	padding-top:	3px;
	padding-bottom:	3px;
	padding-left:	5px;
	padding-right:	5px;

	border:		0;
	background-color:	inherit;
}

tr.ThemeOfficeMainItem td.ThemeOfficeMainItemRight,
tr.ThemeOfficeMainItem td.ThemeOfficeMainFolderRight
{
	padding-top:	3px;
	padding-bottom:	3px;
	padding-left:	0px;
	padding-right:	1px;

	border:		0;
	background-color:	inherit;
}

/* sub menu sub components */

.ThemeOfficeMenuFolderLeft,.ThemeOfficeMenuItemLeft
{
	padding-top:	2px;
	padding-bottom:	2px;
	padding-left:	1px;
	padding-right:	3px;

	border-top:	1px solid #3169C6;
	border-bottom:	1px solid #3169C6;
	border-left:	1px solid #3169C6;

	background-color:	inherit;
	white-space:	nowrap;
}

.ThemeOfficeMenuFolderText,.ThemeOfficeMenuItemText
{
	padding-top:	2px;
	padding-bottom:	2px;
	padding-left:	5px;
	padding-right:	5px;

	border-top:	1px solid #3169C6;
	border-bottom:	1px solid #3169C6;

	background-color:	inherit;
	white-space:	nowrap;
}

.ThemeOfficeMenuFolderRight,.ThemeOfficeMenuItemRight
{
	padding-top:	2px;
	padding-bottom:	2px;
	padding-left:	0px;
	padding-right:	0px;

	border-top:	1px solid #3169C6;
	border-bottom:	1px solid #3169C6;
	border-right:	1px solid #3169C6;

	background-color:	inherit;
	white-space:	nowrap;
}

.ThemeOfficeMenuItem .ThemeOfficeMenuFolderLeft,
.ThemeOfficeMenuItem .ThemeOfficeMenuItemLeft
{
	padding-top:	3px;
	padding-bottom:	3px;
	padding-left:	2px;
	padding-right:	3px;

	white-space:	nowrap;

	border:		0;
	background-color:	#EFEFDE;
}

.ThemeOfficeMenuItem .ThemeOfficeMenuFolderText,
.ThemeOfficeMenuItem .ThemeOfficeMenuItemText
{
	padding-top:	3px;
	padding-bottom:	3px;
	padding-left:	5px;
	padding-right:	5px;

	border:		0;
	background-color:	inherit;
}

.ThemeOfficeMenuItem .ThemeOfficeMenuFolderRight,
.ThemeOfficeMenuItem .ThemeOfficeMenuItemRight
{
	padding-top:	3px;
	padding-bottom:	3px;
	padding-left:	0px;
	padding-right:	1px;

	border:		0;
	background-color:	inherit;
}

/* menu splits */

.ThemeOfficeMenuSplit
{
	margin:		2px;
	height:		1px;
	overflow:	hidden;
	background-color:	inherit;
	border-top:	1px solid #C6C3BD;
}

/* image shadow animation */

/*
	seq1:	image for normal
	seq2:	image for hover and active

	To use, in the icon field, input the following:
	<img class="seq1" src="normal.gif" /><img class="seq2" src="hover.gif" />
*/

.ThemeOfficeMenuItem img.seq1
{
	display:	inline;
}

.ThemeOfficeMenuItemHover seq2,
.ThemeOfficeMenuItemActive seq2
{
	display:	inline;
}

.ThemeOfficeMenuItem .seq2,
.ThemeOfficeMenuItemHover .seq1,
.ThemeOfficeMenuItemActive .seq1
{
	display:	none;
}
js/ThemeOffice/query.png000064400000001620152200041010011171 0ustar00�PNG


IHDR(-SsBIT��O��PLTE�V%;c�gr�ș&���������š��y}�����󛰼���ypl��]y�������İ`�ݾ��8�í���ѥi����#���ެ&Te���������~�j)�{o����	\~���ꇻ������䚼�ʩE�З��lIHq�����ų���ޑP�vg���p���U����]��<�������s�ʤ��`<�����򤥦ʤF���s����産�����qU��_���ڷ���K��Ź�l���t��x�訪�������[��������Ӗ��޸w�r����j�آ��������֪/����k��O����!������t'����װ���p�಼�̴N�����=������Zm��#�e�tRNS�������������������������������������������������������������������������������������������������������������������������	pHYs
�
�B�4�%tEXtSoftwareMacromedia Fireworks MX 2004�v���IDATx�c`��tkM��fp$�'9�@*�9"\]]����%���q^NAAA�Yb@�x�8	��Ԥ$W'�H�������N��:P��;������!���V� H�BR����6�G��5�	(��k�gSfg���^HӷRɬN��	M���
x3�TyT[������4�|
c��yr͔A.Md*��40��*0
����-�FTϹ��9�Y�9ev�H99�b?7v�e�t�)1�|���IEND�B`�js/mambojavascript.js000064400000034443152200041010010671 0ustar00// <?php !! This fools phpdocumentor into parsing this file
/**
* @version		$Id: mambojavascript.js 14401 2010-01-26 14:10:00Z louis $
* @package		Joomla
* @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license		GNU/GPL
* Joomla! is Free Software
*/

// general utility for browsing a named array or object
function xshow(o) {
	s = '';
	for(e in o) {s += e+'='+o[e]+'\n';}
	alert( s );
}

/**
* Writes a dynamically generated list
* @param string The parameters to insert into the <select> tag
* @param array A javascript array of list options in the form [key,value,text]
* @param string The key to display for the initial state of the list
* @param string The original key that was selected
* @param string The original item value that was selected
*/
function writeDynaList( selectParams, source, key, orig_key, orig_val ) {
	var html = '\n	<select ' + selectParams + '>';
	var i = 0;
	for (x in source) {
		if (source[x][0] == key) {
			var selected = '';
			if ((orig_key == key && orig_val == source[x][1]) || (i == 0 && orig_key != key)) {
				selected = 'selected="selected"';
			}
			html += '\n		<option value="'+source[x][1]+'" '+selected+'>'+source[x][2]+'</option>';
		}
		i++;
	}
	html += '\n	</select>';

	document.writeln( html );
}

/**
* Changes a dynamically generated list
* @param string The name of the list to change
* @param array A javascript array of list options in the form [key,value,text]
* @param string The key to display
* @param string The original key that was selected
* @param string The original item value that was selected
*/
function changeDynaList( listname, source, key, orig_key, orig_val ) {
	var list = eval( 'document.adminForm.' + listname );

	// empty the list
	for (i in list.options.length) {
		list.options[i] = null;
	}
	i = 0;
	for (x in source) {
		if (source[x][0] == key) {
			opt = new Option();
			opt.value = source[x][1];
			opt.text = source[x][2];

			if ((orig_key == key && orig_val == opt.value) || i == 0) {
				opt.selected = true;
			}
			list.options[i++] = opt;
		}
	}
	list.length = i;
}

/**
* Adds a select item(s) from one list to another
*/
function addSelectedToList( frmName, srcListName, tgtListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );
	var tgtList = eval( 'form.' + tgtListName );

	var srcLen = srcList.length;
	var tgtLen = tgtList.length;
	var tgt = "x";

	//build array of target items
	for (var i=tgtLen-1; i > -1; i--) {
		tgt += "," + tgtList.options[i].value + ","
	}

	//Pull selected resources and add them to list
	for (var i=srcLen-1; i > -1; i--) {
		if (srcList.options[i].selected && tgt.indexOf( "," + srcList.options[i].value + "," ) == -1) {
			opt = new Option( srcList.options[i].text, srcList.options[i].value );
			tgtList.options[tgtList.length] = opt;
		}
	}
}

function delSelectedFromList( frmName, srcListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	var srcLen = srcList.length;

	for (var i=srcLen-1; i > -1; i--) {
		if (srcList.options[i].selected) {
			srcList.options[i] = null;
		}
	}
}

function moveInList( frmName, srcListName, index, to) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );
	var total = srcList.options.length-1;

	if (index == -1) {
		return false;
	}
	if (to == +1 && index == total) {
		return false;
	}
	if (to == -1 && index == 0) {
		return false;
	}

	var items = new Array;
	var values = new Array;

	for (i=total; i >= 0; i--) {
		items[i] = srcList.options[i].text;
		values[i] = srcList.options[i].value;
	}
	for (i = total; i >= 0; i--) {
		if (index == i) {
			srcList.options[i + to] = new Option(items[i],values[i], 0, 1);
			srcList.options[i] = new Option(items[i+to], values[i+to]);
			i--;
		} else {
			srcList.options[i] = new Option(items[i], values[i]);
	   }
	}
	srcList.focus();
}

function getSelectedOption( frmName, srcListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	i = srcList.selectedIndex;
	if (i != null && i > -1) {
		return srcList.options[i];
	} else {
		return null;
	}
}

function setSelectedValue( frmName, srcListName, value ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	var srcLen = srcList.length;

	for (var i=0; i < srcLen; i++) {
		srcList.options[i].selected = false;
		if (srcList.options[i].value == value) {
			srcList.options[i].selected = true;
		}
	}
}

function getSelectedRadio( frmName, srcGroupName ) {
	var form = eval( 'document.' + frmName );
	var srcGroup = eval( 'form.' + srcGroupName );

	if (srcGroup[0]) {
		for (var i=0, n=srcGroup.length; i < n; i++) {
			if (srcGroup[i].checked) {
				return srcGroup[i].value;
			}
		}
	} else {
		if (srcGroup.checked) {
			return srcGroup.value;
		} // if the one button is checked, return zero
	}
   // if we get to this point, no radio button is selected
   return null;
}

function getSelectedValue( frmName, srcListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	i = srcList.selectedIndex;
	if (i != null && i > -1) {
		return srcList.options[i].value;
	} else {
		return null;
	}
}

function getSelectedText( frmName, srcListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	i = srcList.selectedIndex;
	if (i != null && i > -1) {
		return srcList.options[i].text;
	} else {
		return null;
	}
}

function chgSelectedValue( frmName, srcListName, value ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	i = srcList.selectedIndex;
	if (i != null && i > -1) {
		srcList.options[i].value = value;
		return true;
	} else {
		return false;
	}
}

/**
* Toggles the check state of a group of boxes
*
* Checkboxes must have an id attribute in the form cb0, cb1...
* @param The number of box to 'check'
* @param An alternative field name
*/
function checkAll( n, fldName ) {
  if (!fldName) {
     fldName = 'cb';
  }
	var f = document.adminForm;
	var c = f.toggle.checked;
	var n2 = 0;
	for (i=0; i < n; i++) {
		cb = eval( 'f.' + fldName + '' + i );
		if (cb) {
			cb.checked = c;
			n2++;
		}
	}
	if (c) {
		document.adminForm.boxchecked.value = n2;
	} else {
		document.adminForm.boxchecked.value = 0;
	}
}

function listItemTask( id, task ) {
    var f = document.adminForm;
    cb = eval( 'f.' + id );
    if (cb) {
        for (i = 0; true; i++) {
            cbx = eval('f.cb'+i);
            if (!cbx) break;
            cbx.checked = false;
        } // for
        cb.checked = true;
        f.boxchecked.value = 1;
        submitbutton(task);
    }
    return false;
}

function hideMainMenu()
{
	document.adminForm.hidemainmenu.value=1;
}

function isChecked(isitchecked){
	if (isitchecked == true){
		document.adminForm.boxchecked.value++;
	}
	else {
		document.adminForm.boxchecked.value--;
	}
}

/**
* Default function.  Usually would be overriden by the component
*/
function submitbutton(pressbutton) {
	submitform(pressbutton);
}

/**
* Submit the admin form
*/
function submitform(pressbutton){
	document.adminForm.task.value=pressbutton;
	if (typeof document.adminForm.onsubmit == "function") {
		document.adminForm.onsubmit();
	}
	document.adminForm.submit();
}

/**
* Submit the control panel admin form
*/
function submitcpform(sectionid, id){
	document.adminForm.sectionid.value=sectionid;
	document.adminForm.id.value=id;
	submitbutton("edit");
}

/**
* Getting radio button that is selected.
*/
function getSelected(allbuttons){
	for (i=0;i<allbuttons.length;i++) {
		if (allbuttons[i].checked) {
			return allbuttons[i].value
		}
	}
}

// JS Calendar
var calendar = null; // remember the calendar object so that we reuse
// it and avoid creating another

// This function gets called when an end-user clicks on some date
function selected(cal, date) {
	cal.sel.value = date; // just update the value of the input field
}

// And this gets called when the end-user clicks on the _selected_ date,
// or clicks the "Close" (X) button.  It just hides the calendar without
// destroying it.
function closeHandler(cal) {
	cal.hide();			// hide the calendar

	// don't check mousedown on document anymore (used to be able to hide the
	// calendar when someone clicks outside it, see the showCalendar function).
	Calendar.removeEvent(document, "mousedown", checkCalendar);
}

// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the open
// calendar this function closes it.
function checkCalendar(ev) {
	var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
	for (; el != null; el = el.parentNode)
	// FIXME: allow end-user to click some link without closing the
	// calendar.  Good to see real-time stylesheet change :)
	if (el == calendar.element || el.tagName == "A") break;
	if (el == null) {
		// calls closeHandler which should hide the calendar.
		calendar.callCloseHandler(); Calendar.stopEvent(ev);
	}
}

// This function shows the calendar under the element having the given id.
// It takes care of catching "mousedown" signals on document and hiding the
// calendar if the click was outside.
function showCalendar(id) {
	var el = document.getElementById(id);
	if (calendar != null) {
		// we already have one created, so just update it.
		calendar.hide();		// hide the existing calendar
		calendar.parseDate(el.value); // set it to a new date
	} else {
		// first-time call, create the calendar
		var cal = new Calendar(true, null, selected, closeHandler);
		calendar = cal;		// remember the calendar in the global
		cal.setRange(1900, 2070);	// min/max year allowed
		calendar.create();		// create a popup calendar
	}
	calendar.sel = el;		// inform it about the input field in use
	calendar.showAtElement(el);	// show the calendar next to the input field

	// catch mousedown on the document
	Calendar.addEvent(document, "mousedown", checkCalendar);
	return false;
}

/**
* Pops up a new window in the middle of the screen
*/
function popupWindow(mypage, myname, w, h, scroll) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
	win = window.open(mypage, myname, winprops)
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

// LTrim(string) : Returns a copy of a string without leading spaces.
function ltrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

//RTrim(string) : Returns a copy of a string without trailing spaces.
function rtrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;       // Get length of string
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }
   return s;
}

// Trim(string) : Returns a copy of a string without leading or trailing spaces
function trim(str) {
   return rtrim(ltrim(str));
}

function mosDHTML(){
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")<-1
	this.ie5=(this.ver.indexOf("MSIE 5")<-1 && this.dom && !this.opera5)?1:0;
	this.ie6=(this.ver.indexOf("MSIE 6")<-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")<-1
	this.ns6=(this.dom && parseInt(this.ver) <= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5);

	this.activeTab = '';
	this.onTabStyle = 'ontab';
	this.offTabStyle = 'offtab';

	this.setElemStyle = function(elem,style) {
		document.getElementById(elem).className = style;
	}
	this.showElem = function(id) {
		if (elem == document.getElementById(id)) {
			elem.style.visibility = 'visible';
			elem.style.display = 'block';
		}
	}
	this.hideElem = function(id) {
		if (elem == document.getElementById(id)) {
			elem.style.visibility = 'hidden';
			elem.style.display = 'none';
		}
	}
	this.cycleTab = function(name) {
		if (this.activeTab) {
			this.setElemStyle( this.activeTab, this.offTabStyle );
			page = this.activeTab.replace( 'tab', 'page' );
			this.hideElem(page);
		}
		this.setElemStyle( name, this.onTabStyle );
		this.activeTab = name;
		page = this.activeTab.replace( 'tab', 'page' );
		this.showElem(page);
	}
	return this;
}
var dhtml = new mosDHTML();

function MM_findObj(n, d) { //v4.01
	var p,i,x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	if(!(x=d[n])&&d.all) x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n);
	return x;
}
function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments;
	document.MM_sr=new Array;
	for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x;
	if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr;
	for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
	var d=document;
	if(d.images){
	if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
	for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


function saveorder( n ) {
	checkAll_button( n );
}

//needed by saveorder function
function checkAll_button( n ) {
	for ( var j = 0; j <= n; j++ ) {
		box = eval( "document.adminForm.cb" + j );
		if ( box ) {
			if ( box.checked == false ) {
				box.checked = true;
			}
		} else {
			alert("You cannot change the order of items, as an item in the list is `Checked Out`");
			return;
		}
	}
	submitform('saveorder');
}
/**
* @param object A form element
* @param string The name of the element to find
*/
function getElementByName( f, name ) {
	if (f.elements) {
		for (i=0, n=f.elements.length; i < n; i++) {
			if (f.elements[i].name == name) {
				return f.elements[i];
			}
		}
	}
	return null;
}
js/overlib_mini.js000064400000107736152200041010010173 0ustar00//\/////
//\  overLIB 4.21 - You may not remove or change this notice.
//\  Copyright Erik Bosrup 1998-2004. All rights reserved.
//\
//\  Contributors are listed on the homepage.
//\  This file might be old, always check for the latest version at:
//\  http://www.bosrup.com/web/overlib/
//\
//\  Please read the license agreement (available through the link above)
//\  before using overLIB. Direct any licensing questions to erik@bosrup.com.
//\
//\  Do not sell this as your own work or remove this copyright notice.
//\  For full details on copying or changing this script please read the
//\  license agreement at the link above. Please give credit on sites that
//\  use overLIB and submit changes of the script so other people can use
//\  them as well.
//\/////
//\  THIS IS A VERY MODIFIED VERSION. DO NOT EDIT OR PUBLISH. GET THE ORIGINAL!
var olLoaded=0,pmStart=10000000,pmUpper=10001000,pmCount=pmStart+1,pmt='',pms=new Array(),olInfo=new Info('4.21',1),FREPLACE=0,FBEFORE=1,FAFTER=2,FALTERNATE=3,FCHAIN=4,olHideForm=0,olHautoFlag=0,olVautoFlag=0,hookPts=new Array(),postParse=new Array(),cmdLine=new Array(),runTime=new Array();
registerCommands('donothing,inarray,caparray,sticky,background,noclose,caption,left,right,center,offsetx,offsety,fgcolor,bgcolor,textcolor,capcolor,closecolor,width,border,cellpad,status,autostatus,autostatuscap,height,closetext,snapx,snapy,fixx,fixy,relx,rely,fgbackground,bgbackground,padx,pady,fullhtml,above,below,capicon,textfont,captionfont,closefont,textsize,captionsize,closesize,timeout,function,delay,hauto,vauto,closeclick,wrap,followmouse,mouseoff,closetitle,cssoff,compatmode,cssclass,fgclass,bgclass,textfontclass,captionfontclass,closefontclass');
if(typeof ol_fgcolor=='undefined')var ol_fgcolor="#F1E8E6";if(typeof ol_bgcolor=='undefined')var ol_bgcolor="#C64934";if(typeof ol_textcolor=='undefined')var ol_textcolor="#000000";if(typeof ol_capcolor=='undefined')var ol_capcolor="#FFFFFF";if(typeof ol_closecolor=='undefined')var ol_closecolor="#9999FF";if(typeof ol_textfont=='undefined')var ol_textfont="Verdana,Arial,Helvetica";if(typeof ol_captionfont=='undefined')var ol_captionfont="Verdana,Arial,Helvetica";if(typeof ol_closefont=='undefined')var ol_closefont="Verdana,Arial,Helvetica";if(typeof ol_textsize=='undefined')var ol_textsize="1";if(typeof ol_captionsize=='undefined')var ol_captionsize="1";if(typeof ol_closesize=='undefined')var ol_closesize="1";if(typeof ol_width=='undefined')var ol_width="200";if(typeof ol_border=='undefined')var ol_border="1";if(typeof ol_cellpad=='undefined')var ol_cellpad=2;if(typeof ol_offsetx=='undefined')var ol_offsetx=10;if(typeof ol_offsety=='undefined')var ol_offsety=10;if(typeof ol_text=='undefined')var ol_text="Default Text";if(typeof ol_cap=='undefined')var ol_cap="";if(typeof ol_sticky=='undefined')var ol_sticky=0;if(typeof ol_background=='undefined')var ol_background="";if(typeof ol_close=='undefined')var ol_close="Close";if(typeof ol_hpos=='undefined')var ol_hpos=RIGHT;if(typeof ol_status=='undefined')var ol_status="";if(typeof ol_autostatus=='undefined')var ol_autostatus=0;if(typeof ol_height=='undefined')var ol_height=-1;if(typeof ol_snapx=='undefined')var ol_snapx=0;if(typeof ol_snapy=='undefined')var ol_snapy=0;if(typeof ol_fixx=='undefined')var ol_fixx=-1;if(typeof ol_fixy=='undefined')var ol_fixy=-1;if(typeof ol_relx=='undefined')var ol_relx=null;if(typeof ol_rely=='undefined')var ol_rely=null;if(typeof ol_fgbackground=='undefined')var ol_fgbackground="";if(typeof ol_bgbackground=='undefined')var ol_bgbackground="";if(typeof ol_padxl=='undefined')var ol_padxl=1;if(typeof ol_padxr=='undefined')var ol_padxr=1;if(typeof ol_padyt=='undefined')var ol_padyt=1;if(typeof ol_padyb=='undefined')var ol_padyb=1;if(typeof ol_fullhtml=='undefined')var ol_fullhtml=0;if(typeof ol_vpos=='undefined')var ol_vpos=BELOW;if(typeof ol_aboveheight=='undefined')var ol_aboveheight=0;if(typeof ol_capicon=='undefined')var ol_capicon="";if(typeof ol_frame=='undefined')var ol_frame=self;if(typeof ol_timeout=='undefined')var ol_timeout=0;if(typeof ol_function=='undefined')var ol_function=null;if(typeof ol_delay=='undefined')var ol_delay=0;if(typeof ol_hauto=='undefined')var ol_hauto=0;if(typeof ol_vauto=='undefined')var ol_vauto=0;if(typeof ol_closeclick=='undefined')var ol_closeclick=0;if(typeof ol_wrap=='undefined')var ol_wrap=0;if(typeof ol_followmouse=='undefined')var ol_followmouse=1;if(typeof ol_mouseoff=='undefined')var ol_mouseoff=0;if(typeof ol_closetitle=='undefined')var ol_closetitle='Close';if(typeof ol_compatmode=='undefined')var ol_compatmode=0;if(typeof ol_css=='undefined')var ol_css=CSSOFF;if(typeof ol_fgclass=='undefined')var ol_fgclass="";if(typeof ol_bgclass=='undefined')var ol_bgclass="";if(typeof ol_textfontclass=='undefined')var ol_textfontclass="";if(typeof ol_captionfontclass=='undefined')var ol_captionfontclass="";if(typeof ol_closefontclass=='undefined')var ol_closefontclass="";
if(typeof ol_texts=='undefined')var ol_texts=new Array("Text 0","Text 1");if(typeof ol_caps=='undefined')var ol_caps=new Array("Caption 0","Caption 1");
var o3_text="",o3_cap="",o3_sticky=0,o3_background="",o3_close="Close",o3_hpos=RIGHT,o3_offsetx=2,o3_offsety=2,o3_fgcolor="",o3_bgcolor="",o3_textcolor="",o3_capcolor="",o3_closecolor="",o3_width=100,o3_border=1,o3_cellpad=2,o3_status="",o3_autostatus=0,o3_height=-1,o3_snapx=0,o3_snapy=0,o3_fixx=-1,o3_fixy=-1,o3_relx=null,o3_rely=null,o3_fgbackground="",o3_bgbackground="",o3_padxl=0,o3_padxr=0,o3_padyt=0,o3_padyb=0,o3_fullhtml=0,o3_vpos=BELOW,o3_aboveheight=0,o3_capicon="",o3_textfont="Verdana,Arial,Helvetica",o3_captionfont="Verdana,Arial,Helvetica",o3_closefont="Verdana,Arial,Helvetica",o3_textsize="1",o3_captionsize="1",o3_closesize="1",o3_frame=self,o3_timeout=0,o3_timerid=0,o3_allowmove=0,o3_function=null,o3_delay=0,o3_delayid=0,o3_hauto=0,o3_vauto=0,o3_closeclick=0,o3_wrap=0,o3_followmouse=1,o3_mouseoff=0,o3_closetitle='',o3_compatmode=0,o3_css=CSSOFF,o3_fgclass="",o3_bgclass="",o3_textfontclass="",o3_captionfontclass="",o3_closefontclass="";
var o3_x=0,o3_y=0,o3_showingsticky=0,o3_removecounter=0;
var over=null,fnRef,hoveringSwitch=false,olHideDelay;
var isMac=(navigator.userAgent.indexOf("Mac")!=-1),olOp=(navigator.userAgent.toLowerCase().indexOf('opera')>-1&&document.createTextNode),olNs4=(navigator.appName=='Netscape'&&parseInt(navigator.appVersion)==4),olNs6=(document.getElementById)?true:false,olKq=(olNs6&&/konqueror/i.test(navigator.userAgent)),olIe4=(document.all)?true:false,olIe5=false,olIe55=false,docRoot='document.body';
if(olNs4){var oW=window.innerWidth;var oH=window.innerHeight;window.onresize=function(){if(oW!=window.innerWidth||oH!=window.innerHeight)location.reload();}}
if(olIe4){var agent=navigator.userAgent;if(/MSIE/.test(agent)){var versNum=parseFloat(agent.match(/MSIE[ ](\d\.\d+)\.*/i)[1]);if(versNum>=5){olIe5=true;olIe55=(versNum>=5.5&&!olOp)?true:false;if(olNs6)olNs6=false;}}
if(olNs6)olIe4=false;}
if(document.compatMode&&document.compatMode=='CSS1Compat'){docRoot=((olIe4&&!olOp)?'document.documentElement':docRoot);}
if(window.addEventListener)window.addEventListener("load",OLonLoad_handler,false);else if(window.attachEvent)window.attachEvent("onload",OLonLoad_handler);
var capExtent;
function overlib(){if(!olLoaded||isExclusive(overlib.arguments))return true;if(olCheckMouseCapture)olMouseCapture();if(over){over=(typeof over.id!='string')?o3_frame.document.all['overDiv']:over;cClick();}
olHideDelay=0;o3_text=ol_text;o3_cap=ol_cap;o3_sticky=ol_sticky;o3_background=ol_background;o3_close=ol_close;o3_hpos=ol_hpos;o3_offsetx=ol_offsetx;o3_offsety=ol_offsety;o3_fgcolor=ol_fgcolor;o3_bgcolor=ol_bgcolor;o3_textcolor=ol_textcolor;o3_capcolor=ol_capcolor;o3_closecolor=ol_closecolor;o3_width=ol_width;o3_border=ol_border;o3_cellpad=ol_cellpad;o3_status=ol_status;o3_autostatus=ol_autostatus;o3_height=ol_height;o3_snapx=ol_snapx;o3_snapy=ol_snapy;o3_fixx=ol_fixx;o3_fixy=ol_fixy;o3_relx=ol_relx;o3_rely=ol_rely;o3_fgbackground=ol_fgbackground;o3_bgbackground=ol_bgbackground;o3_padxl=ol_padxl;o3_padxr=ol_padxr;o3_padyt=ol_padyt;o3_padyb=ol_padyb;o3_fullhtml=ol_fullhtml;o3_vpos=ol_vpos;o3_aboveheight=ol_aboveheight;o3_capicon=ol_capicon;o3_textfont=ol_textfont;o3_captionfont=ol_captionfont;o3_closefont=ol_closefont;o3_textsize=ol_textsize;o3_captionsize=ol_captionsize;o3_closesize=ol_closesize;o3_timeout=ol_timeout;o3_function=ol_function;o3_delay=ol_delay;o3_hauto=ol_hauto;o3_vauto=ol_vauto;o3_closeclick=ol_closeclick;o3_wrap=ol_wrap;o3_followmouse=ol_followmouse;o3_mouseoff=ol_mouseoff;o3_closetitle=ol_closetitle;o3_css=ol_css;o3_compatmode=ol_compatmode;o3_fgclass=ol_fgclass;o3_bgclass=ol_bgclass;o3_textfontclass=ol_textfontclass;o3_captionfontclass=ol_captionfontclass;o3_closefontclass=ol_closefontclass;
setRunTimeVariables();
fnRef='';
o3_frame=ol_frame;
if(!(over=createDivContainer()))return false;
parseTokens('o3_',overlib.arguments);if(!postParseChecks())return false;
if(o3_delay==0){return runHook("olMain",FREPLACE);}else{o3_delayid=setTimeout("runHook('olMain',FREPLACE)",o3_delay);return false;}}
function nd(time){if(olLoaded&&!isExclusive()){hideDelay(time);
if(o3_removecounter>=1){o3_showingsticky=0 };
if(o3_showingsticky==0){o3_allowmove=0;if(over!=null&&o3_timerid==0)runHook("hideObject",FREPLACE,over);}else{o3_removecounter++;}}
return true;}
function cClick(){if(olLoaded){runHook("hideObject",FREPLACE,over);o3_showingsticky=0;}
return false;}
function overlib_pagedefaults(){parseTokens('ol_',overlib_pagedefaults.arguments);}
function olMain(){var layerhtml,styleType;runHook("olMain",FBEFORE);
if(o3_background!=""||o3_fullhtml){
layerhtml=runHook('ol_content_background',FALTERNATE,o3_css,o3_text,o3_background,o3_fullhtml);}else{
styleType=(pms[o3_css-1-pmStart]=="cssoff"||pms[o3_css-1-pmStart]=="cssclass");
if(o3_fgbackground!="")o3_fgbackground="background=\""+o3_fgbackground+"\"";if(o3_bgbackground!="")o3_bgbackground=(styleType?"background=\""+o3_bgbackground+"\"":o3_bgbackground);
if(o3_fgcolor!="")o3_fgcolor=(styleType?"bgcolor=\""+o3_fgcolor+"\"":o3_fgcolor);if(o3_bgcolor!="")o3_bgcolor=(styleType?"bgcolor=\""+o3_bgcolor+"\"":o3_bgcolor);
if(o3_height>0)o3_height=(styleType?"height=\""+o3_height+"\"":o3_height);else o3_height="";
if(o3_cap==""){
layerhtml=runHook('ol_content_simple',FALTERNATE,o3_css,o3_text);}else{
if(o3_sticky){
layerhtml=runHook('ol_content_caption',FALTERNATE,o3_css,o3_text,o3_cap,o3_close);}else{
layerhtml=runHook('ol_content_caption',FALTERNATE,o3_css,o3_text,o3_cap,"");}}}
if(o3_sticky){if(o3_timerid>0){clearTimeout(o3_timerid);o3_timerid=0;}
o3_showingsticky=1;o3_removecounter=0;}
if(!runHook("createPopup",FREPLACE,layerhtml))return false;
if(o3_autostatus>0){o3_status=o3_text;if(o3_autostatus>1)o3_status=o3_cap;}
o3_allowmove=0;
if(o3_timeout>0){if(o3_timerid>0)clearTimeout(o3_timerid);o3_timerid=setTimeout("cClick()",o3_timeout);}
runHook("disp",FREPLACE,o3_status);runHook("olMain",FAFTER);
return(olOp&&event&&event.type=='mouseover'&&!o3_status)?'':(o3_status!='');}
function ol_content_simple(text){var cpIsMultiple=/,/.test(o3_cellpad);var txt='<table width="'+o3_width+'" border="0" cellpadding="'+o3_border+'" cellspacing="0" '+(o3_bgclass?'class="'+o3_bgclass+'"':o3_bgcolor+' '+o3_height)+'><tr><td><table width="100%" border="0" '+((olNs4||!cpIsMultiple)?'cellpadding="'+o3_cellpad+'" ':'')+'cellspacing="0" '+(o3_fgclass?'class="'+o3_fgclass+'"':o3_fgcolor+' '+o3_fgbackground+' '+o3_height)+'><tr><td valign="TOP"'+(o3_textfontclass?' class="'+o3_textfontclass+'">':((!olNs4&&cpIsMultiple)?' style="'+setCellPadStr(o3_cellpad)+'">':'>'))+(o3_textfontclass?'':wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass?'':wrapStr(1,o3_textsize))+'</td></tr></table></td></tr></table>';
set_background("");return txt;}
function ol_content_caption(text,title,close){var nameId,txt,cpIsMultiple=/,/.test(o3_cellpad);var closing,closeevent;
closing="";closeevent="onmouseover";if(o3_closeclick==1)closeevent=(o3_closetitle?"title='"+o3_closetitle+"'":"")+" onclick";if(o3_capicon!=""){nameId=' hspace=\"5\"'+' align=\"middle\" alt=\"\"';if(typeof o3_dragimg!='undefined'&&o3_dragimg)nameId=' hspace=\"5\"'+' name=\"'+o3_dragimg+'\" id=\"'+o3_dragimg+'\" align=\"middle\" alt=\"Drag Enabled\" title=\"Drag Enabled\"';o3_capicon='<img src=\"'+o3_capicon+'\"'+nameId+' />';}
if(close!="")
closing='<td '+(!o3_compatmode&&o3_closefontclass?'class="'+o3_closefontclass:'align="RIGHT')+'"><a href="javascript:return '+fnRef+'cClick();"'+((o3_compatmode&&o3_closefontclass)?' class="'+o3_closefontclass+'" ':' ')+closeevent+'="return '+fnRef+'cClick();">'+(o3_closefontclass?'':wrapStr(0,o3_closesize,'close'))+close+(o3_closefontclass?'':wrapStr(1,o3_closesize,'close'))+'</a></td>';txt='<table width="'+o3_width+'" border="0" cellpadding="'+o3_border+'" cellspacing="0" '+(o3_bgclass?'class="'+o3_bgclass+'"':o3_bgcolor+' '+o3_bgbackground+' '+o3_height)+'><tr><td><table width="100%" border="0" cellpadding="2" cellspacing="0"><tr><td'+(o3_captionfontclass?' class="'+o3_captionfontclass+'">':'>')+(o3_captionfontclass?'':'<b>'+wrapStr(0,o3_captionsize,'caption'))+o3_capicon+title+(o3_captionfontclass?'':wrapStr(1,o3_captionsize)+'</b>')+'</td>'+closing+'</tr></table><table width="100%" border="0" '+((olNs4||!cpIsMultiple)?'cellpadding="'+o3_cellpad+'" ':'')+'cellspacing="0" '+(o3_fgclass?'class="'+o3_fgclass+'"':o3_fgcolor+' '+o3_fgbackground+' '+o3_height)+'><tr><td valign="TOP"'+(o3_textfontclass?' class="'+o3_textfontclass+'">' :((!olNs4&&cpIsMultiple)?' style="'+setCellPadStr(o3_cellpad)+'">':'>'))+(o3_textfontclass?'':wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass?'':wrapStr(1,o3_textsize))+'</td></tr></table></td></tr></table>';
set_background("");return txt;}
function ol_content_background(text,picture,hasfullhtml){if(hasfullhtml){txt=text;}else{txt='<table width="'+o3_width+'" border="0" cellpadding="0" cellspacing="0" height="'+o3_height+'"><tr><td colspan="3" height="'+o3_padyt+'"></td></tr><tr><td width="'+o3_padxl+'"></td><td valign="TOP" width="'+(o3_width-o3_padxl-o3_padxr)+(o3_textfontclass?'" class="'+o3_textfontclass:'')+'">'+(o3_textfontclass?'':wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass?'':wrapStr(1,o3_textsize))+'</td><td width="'+o3_padxr+'"></td></tr><tr><td colspan="3" height="'+o3_padyb+'"></td></tr></table>';}
set_background(picture);return txt;}
function set_background(pic){if(pic==""){if(olNs4){over.background.src=null;}else if(over.style){over.style.backgroundImage="none";}
}else{if(olNs4){over.background.src=pic;}else if(over.style){over.style.width=o3_width+'px';over.style.backgroundImage="url("+pic+")";}}}
var olShowId=-1;
function disp(statustext){runHook("disp",FBEFORE);
if(o3_allowmove==0){runHook("placeLayer",FREPLACE);(olNs6&&olShowId<0)?olShowId=setTimeout("runHook('showObject',FREPLACE,over)",1):runHook("showObject",FREPLACE,over);o3_allowmove=(o3_sticky||o3_followmouse==0)?0:1;}
runHook("disp",FAFTER);
if(statustext!="")self.status=statustext;}
function createPopup(lyrContent){runHook("createPopup",FBEFORE);
if(o3_wrap){var wd,ww,theObj=(olNs4?over:over.style);theObj.top=theObj.left=((olIe4&&!olOp)?0:-10000)+(!olNs4?'px':0);layerWrite(lyrContent);wd=(olNs4?over.clip.width:over.offsetWidth);if(wd>(ww=windowWidth())){lyrContent=lyrContent.replace(/\&nbsp;/g,' ');o3_width=ww;o3_wrap=0;}}
layerWrite(lyrContent);
if(o3_wrap)o3_width=(olNs4?over.clip.width:over.offsetWidth);
runHook("createPopup",FAFTER,lyrContent);
return true;}
function placeLayer(){var placeX,placeY,widthFix=0;
if(o3_frame.innerWidth)widthFix=18;iwidth=windowWidth();
winoffset=(olIe4)?eval('o3_frame.'+docRoot+'.scrollLeft'):o3_frame.pageXOffset;
placeX=runHook('horizontalPlacement',FCHAIN,iwidth,winoffset,widthFix);
if(o3_frame.innerHeight){iheight=o3_frame.innerHeight;}else if(eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientHeight=='number'")&&eval('o3_frame.'+docRoot+'.clientHeight')){iheight=eval('o3_frame.'+docRoot+'.clientHeight');}
scrolloffset=(olIe4)?eval('o3_frame.'+docRoot+'.scrollTop'):o3_frame.pageYOffset;placeY=runHook('verticalPlacement',FCHAIN,iheight,scrolloffset);
repositionTo(over,placeX,placeY);}
function olMouseMove(e){var e=(e)?e:event;
if(e.pageX){o3_x=e.pageX;o3_y=e.pageY;}else if(e.clientX){o3_x=eval('e.clientX+o3_frame.'+docRoot+'.scrollLeft');o3_y=eval('e.clientY+o3_frame.'+docRoot+'.scrollTop');}
if(o3_allowmove==1)runHook("placeLayer",FREPLACE);
if(hoveringSwitch&&!olNs4&&runHook("cursorOff",FREPLACE)){(olHideDelay?hideDelay(olHideDelay):cClick());hoveringSwitch=!hoveringSwitch;}}
function no_overlib(){return ver3fix;}
function olMouseCapture(){capExtent=document;var fN,str='',l,k,f,wMv,sS,mseHandler=olMouseMove;var re=/function[ ]*(\w*)\(/;
wMv=(!olIe4&&window.onmousemove);if(document.onmousemove||wMv){if(wMv)capExtent=window;f=capExtent.onmousemove.toString();fN=f.match(re);if(fN==null){str=f+'(e);';}else if(fN[1]=='anonymous'||fN[1]=='olMouseMove'||(wMv&&fN[1]=='onmousemove')){if(!olOp&&wMv){l=f.indexOf('{')+1;k=f.lastIndexOf('}');sS=f.substring(l,k);if((l=sS.indexOf('('))!=-1){sS=sS.substring(0,l).replace(/^\s+/,'').replace(/\s+$/,'');if(eval("typeof "+sS+"=='undefined'"))window.onmousemove=null;else str=sS+'(e);';}}
if(!str){olCheckMouseCapture=false;return;}
}else{if(fN[1])str=fN[1]+'(e);';else{l=f.indexOf('{')+1;k=f.lastIndexOf('}');str=f.substring(l,k)+'\n';}}
str+='olMouseMove(e);';mseHandler=new Function('e',str);}
capExtent.onmousemove=mseHandler;if(olNs4)capExtent.captureEvents(Event.MOUSEMOVE);}
function parseTokens(pf,ar){
var v,i,mode=-1,par=(pf!='ol_'),fnMark=(par&&!ar.length?1:0);
for(i=0;i<ar.length;i++){if(mode<0){
if(typeof ar[i]=='number'&&ar[i]>pmStart&&ar[i]<pmUpper){fnMark=(par?1:0);i--;}else{switch(pf){case 'ol_':
ol_text=ar[i].toString();break;default:
o3_text=ar[i].toString();}}
mode=0;}else{
if(ar[i]>=pmCount||ar[i]==DONOTHING){continue;}
if(ar[i]==INARRAY){fnMark=0;eval(pf+'text=ol_texts['+ar[++i]+'].toString()');continue;}
if(ar[i]==CAPARRAY){eval(pf+'cap=ol_caps['+ar[++i]+'].toString()');continue;}
if(ar[i]==STICKY){if(pf!='ol_')eval(pf+'sticky=1');continue;}
if(ar[i]==BACKGROUND){eval(pf+'background="'+ar[++i]+'"');continue;}
if(ar[i]==NOCLOSE){if(pf!='ol_')opt_NOCLOSE();continue;}
if(ar[i]==CAPTION){eval(pf+"cap='"+escSglQuote(ar[++i])+"'");continue;}
if(ar[i]==CENTER||ar[i]==LEFT||ar[i]==RIGHT){eval(pf+'hpos='+ar[i]);if(pf!='ol_')olHautoFlag=1;continue;}
if(ar[i]==OFFSETX){eval(pf+'offsetx='+ar[++i]);continue;}
if(ar[i]==OFFSETY){eval(pf+'offsety='+ar[++i]);continue;}
if(ar[i]==FGCOLOR){eval(pf+'fgcolor="'+ar[++i]+'"');continue;}
if(ar[i]==BGCOLOR){eval(pf+'bgcolor="'+ar[++i]+'"');continue;}
if(ar[i]==TEXTCOLOR){eval(pf+'textcolor="'+ar[++i]+'"');continue;}
if(ar[i]==CAPCOLOR){eval(pf+'capcolor="'+ar[++i]+'"');continue;}
if(ar[i]==CLOSECOLOR){eval(pf+'closecolor="'+ar[++i]+'"');continue;}
if(ar[i]==WIDTH){eval(pf+'width='+ar[++i]);continue;}
if(ar[i]==BORDER){eval(pf+'border='+ar[++i]);continue;}
if(ar[i]==CELLPAD){i=opt_MULTIPLEARGS(++i,ar,(pf+'cellpad'));continue;}
if(ar[i]==STATUS){eval(pf+"status='"+escSglQuote(ar[++i])+"'");continue;}
if(ar[i]==AUTOSTATUS){eval(pf+'autostatus=('+pf+'autostatus==1)?0:1');continue;}
if(ar[i]==AUTOSTATUSCAP){eval(pf+'autostatus=('+pf+'autostatus==2)?0:2');continue;}
if(ar[i]==HEIGHT){eval(pf+'height='+pf+'aboveheight='+ar[++i]);continue;}
if(ar[i]==CLOSETEXT){eval(pf+"close='"+escSglQuote(ar[++i])+"'");continue;}
if(ar[i]==SNAPX){eval(pf+'snapx='+ar[++i]);continue;}
if(ar[i]==SNAPY){eval(pf+'snapy='+ar[++i]);continue;}
if(ar[i]==FIXX){eval(pf+'fixx='+ar[++i]);continue;}
if(ar[i]==FIXY){eval(pf+'fixy='+ar[++i]);continue;}
if(ar[i]==RELX){eval(pf+'relx='+ar[++i]);continue;}
if(ar[i]==RELY){eval(pf+'rely='+ar[++i]);continue;}
if(ar[i]==FGBACKGROUND){eval(pf+'fgbackground="'+ar[++i]+'"');continue;}
if(ar[i]==BGBACKGROUND){eval(pf+'bgbackground="'+ar[++i]+'"');continue;}
if(ar[i]==PADX){eval(pf+'padxl='+ar[++i]);eval(pf+'padxr='+ar[++i]);continue;}
if(ar[i]==PADY){eval(pf+'padyt='+ar[++i]);eval(pf+'padyb='+ar[++i]);continue;}
if(ar[i]==FULLHTML){if(pf!='ol_')eval(pf+'fullhtml=1');continue;}
if(ar[i]==BELOW||ar[i]==ABOVE){eval(pf+'vpos='+ar[i]);if(pf!='ol_')olVautoFlag=1;continue;}
if(ar[i]==CAPICON){eval(pf+'capicon="'+ar[++i]+'"');continue;}
if(ar[i]==TEXTFONT){eval(pf+"textfont='"+escSglQuote(ar[++i])+"'");continue;}
if(ar[i]==CAPTIONFONT){eval(pf+"captionfont='"+escSglQuote(ar[++i])+"'");continue;}
if(ar[i]==CLOSEFONT){eval(pf+"closefont='"+escSglQuote(ar[++i])+"'");continue;}
if(ar[i]==TEXTSIZE){eval(pf+'textsize="'+ar[++i]+'"');continue;}
if(ar[i]==CAPTIONSIZE){eval(pf+'captionsize="'+ar[++i]+'"');continue;}
if(ar[i]==CLOSESIZE){eval(pf+'closesize="'+ar[++i]+'"');continue;}
if(ar[i]==TIMEOUT){eval(pf+'timeout='+ar[++i]);continue;}
if(ar[i]==FUNCTION){if(pf=='ol_'){if(typeof ar[i+1]!='number'){v=ar[++i];ol_function=(typeof v=='function'?v:null);}}else{fnMark=0;v=null;if(typeof ar[i+1]!='number')v=ar[++i]; opt_FUNCTION(v);} continue;}
if(ar[i]==DELAY){eval(pf+'delay='+ar[++i]);continue;}
if(ar[i]==HAUTO){eval(pf+'hauto=('+pf+'hauto==0)?1:0');continue;}
if(ar[i]==VAUTO){eval(pf+'vauto=('+pf+'vauto==0)?1:0');continue;}
if(ar[i]==CLOSECLICK){eval(pf+'closeclick=('+pf+'closeclick==0)?1:0');continue;}
if(ar[i]==WRAP){eval(pf+'wrap=('+pf+'wrap==0)?1:0');continue;}
if(ar[i]==FOLLOWMOUSE){eval(pf+'followmouse=('+pf+'followmouse==1)?0:1');continue;}
if(ar[i]==MOUSEOFF){eval(pf+'mouseoff=('+pf+'mouseoff==0)?1:0');v=ar[i+1];if(pf!='ol_'&&eval(pf+'mouseoff')&&typeof v=='number'&&(v<pmStart||v>pmUpper))olHideDelay=ar[++i];continue;}
if(ar[i]==CLOSETITLE){eval(pf+"closetitle='"+escSglQuote(ar[++i])+"'");continue;}
if(ar[i]==CSSOFF||ar[i]==CSSCLASS){eval(pf+'css='+ar[i]);continue;}
if(ar[i]==COMPATMODE){eval(pf+'compatmode=('+pf+'compatmode==0)?1:0');continue;}
if(ar[i]==FGCLASS){eval(pf+'fgclass="'+ar[++i]+'"');continue;}
if(ar[i]==BGCLASS){eval(pf+'bgclass="'+ar[++i]+'"');continue;}
if(ar[i]==TEXTFONTCLASS){eval(pf+'textfontclass="'+ar[++i]+'"');continue;}
if(ar[i]==CAPTIONFONTCLASS){eval(pf+'captionfontclass="'+ar[++i]+'"');continue;}
if(ar[i]==CLOSEFONTCLASS){eval(pf+'closefontclass="'+ar[++i]+'"');continue;}
i=parseCmdLine(pf,i,ar);}}
if(fnMark&&o3_function)o3_text=o3_function();
if((pf=='o3_')&&o3_wrap){o3_width=0;
var tReg=/<.*\n*>/ig;if(!tReg.test(o3_text))o3_text=o3_text.replace(/[ ]+/g,'&nbsp;');if(!tReg.test(o3_cap))o3_cap=o3_cap.replace(/[ ]+/g,'&nbsp;');}
if((pf=='o3_')&&o3_sticky){if(!o3_close&&(o3_frame!=ol_frame))o3_close=ol_close;if(o3_mouseoff&&(o3_frame==ol_frame))opt_NOCLOSE(' ');}}
function layerWrite(txt){txt+="\n";if(olNs4){var lyr=o3_frame.document.layers['overDiv'].document
lyr.write(txt)
lyr.close()
}else if(typeof over.innerHTML!='undefined'){if(olIe5&&isMac)over.innerHTML='';over.innerHTML=txt;}else{range=o3_frame.document.createRange();range.setStartAfter(over);domfrag=range.createContextualFragment(txt);
while(over.hasChildNodes()){over.removeChild(over.lastChild);}
over.appendChild(domfrag);}}
function showObject(obj){runHook("showObject",FBEFORE);
var theObj=(olNs4?obj:obj.style);theObj.visibility='visible';
runHook("showObject",FAFTER);}
function hideObject(obj){runHook("hideObject",FBEFORE);
var theObj=(olNs4?obj:obj.style);if(olNs6&&olShowId>0){clearTimeout(olShowId);olShowId=0;}
theObj.visibility='hidden';theObj.top=theObj.left=((olIe4&&!olOp)?0:-10000)+(!olNs4?'px':0);
if(o3_timerid>0)clearTimeout(o3_timerid);if(o3_delayid>0)clearTimeout(o3_delayid);
o3_timerid=0;o3_delayid=0;self.status="";
if(obj.onmouseout||obj.onmouseover){if(olNs4)obj.releaseEvents(Event.MOUSEOUT||Event.MOUSEOVER);obj.onmouseout=obj.onmouseover=null;}
runHook("hideObject",FAFTER);}
function repositionTo(obj,xL,yL){var theObj=(olNs4?obj:obj.style);theObj.left=xL+(!olNs4?'px':0);theObj.top=yL+(!olNs4?'px':0);}
function cursorOff(){var left=parseInt(over.style.left);var top=parseInt(over.style.top);var right=left+(over.offsetWidth>=parseInt(o3_width)?over.offsetWidth:parseInt(o3_width));var bottom=top+(over.offsetHeight>=o3_aboveheight?over.offsetHeight:o3_aboveheight);
if(o3_x<left||o3_x>right||o3_y<top||o3_y>bottom)return true;
return false;}
function opt_FUNCTION(callme){o3_text=(callme?(typeof callme=='string'?(/.+\(.*\)/.test(callme)?eval(callme):callme):callme()):(o3_function?o3_function():'No Function'));
return 0;}
function opt_NOCLOSE(unused){if(!unused)o3_close="";
if(olNs4){over.captureEvents(Event.MOUSEOUT||Event.MOUSEOVER);over.onmouseover=function(){if(o3_timerid>0){clearTimeout(o3_timerid);o3_timerid=0;} }
over.onmouseout=function(e){if(olHideDelay)hideDelay(olHideDelay);else cClick(e);}
}else{over.onmouseover=function(){hoveringSwitch=true;if(o3_timerid>0){clearTimeout(o3_timerid);o3_timerid=0;} }}
return 0;}
function opt_MULTIPLEARGS(i,args,parameter){var k=i,re,pV,str='';
for(k=i;k<args.length;k++){if(typeof args[k]=='number'&&args[k]>pmStart)break;str+=args[k]+',';}
if(str)str=str.substring(0,--str.length);
k--;pV=(olNs4&&/cellpad/i.test(parameter))?str.split(',')[0]:str;eval(parameter+'="'+pV+'"');
return k;}
function nbspCleanup(){if(o3_wrap){o3_text=o3_text.replace(/\&nbsp;/g,' ');o3_cap=o3_cap.replace(/\&nbsp;/g,' ');}}
function escSglQuote(str){return str.toString().replace(/'/g,"\\'");}
function OLonLoad_handler(e){var re=/\w+\(.*\)[;\s]+/g,olre=/overlib\(|nd\(|cClick\(/,fn,l,i;
if(!olLoaded)olLoaded=1;
if(window.removeEventListener&&e.eventPhase==3)window.removeEventListener("load",OLonLoad_handler,false);else if(window.detachEvent){window.detachEvent("onload",OLonLoad_handler);var fN=document.body.getAttribute('onload');if(fN){fN=fN.toString().match(re);if(fN&&fN.length){for(i=0;i<fN.length;i++){if(/anonymous/.test(fN[i]))continue;while((l=fN[i].search(/\)[;\s]+/))!=-1){fn=fN[i].substring(0,l+1);fN[i]=fN[i].substring(l+2);if(olre.test(fn))eval(fn);}}}}}}
function wrapStr(endWrap,fontSizeStr,whichString){var fontStr,fontColor,isClose=((whichString=='close')?1:0),hasDims=/[%\-a-z]+$/.test(fontSizeStr);fontSizeStr=(olNs4)?(!hasDims?fontSizeStr:'1'):fontSizeStr;if(endWrap)return(hasDims&&!olNs4)?(isClose?'</span>':'</div>'):'</font>';else{fontStr='o3_'+whichString+'font';fontColor='o3_'+((whichString=='caption')? 'cap':whichString)+'color';return(hasDims&&!olNs4)?(isClose?'<span style="font-family: '+quoteMultiNameFonts(eval(fontStr))+';color: '+eval(fontColor)+';font-size: '+fontSizeStr+';">':'<div style="font-family: '+quoteMultiNameFonts(eval(fontStr))+';color: '+eval(fontColor)+';font-size: '+fontSizeStr+';">'):'<font face="'+eval(fontStr)+'" color="'+eval(fontColor)+'" size="'+(parseInt(fontSizeStr)>7?'7':fontSizeStr)+'">';}}
function quoteMultiNameFonts(theFont){var v,pM=theFont.split(',');for(var i=0;i<pM.length;i++){v=pM[i];v=v.replace(/^\s+/,'').replace(/\s+$/,'');if(/\s/.test(v)&&!/['"]/.test(v)){v="\'"+v+"\'";pM[i]=v;}}
return pM.join();}
function isExclusive(args){return false;}
function setCellPadStr(parameter){var Str='',j=0,ary=new Array(),top,bottom,left,right;
Str+='padding: ';ary=parameter.replace(/\s+/g,'').split(',');
switch(ary.length){case 2:
top=bottom=ary[j];left=right=ary[++j];break;case 3:
top=ary[j];left=right=ary[++j];bottom=ary[++j];break;case 4:
top=ary[j];right=ary[++j];bottom=ary[++j];left=ary[++j];break;}
Str+=((ary.length==1)?ary[0]+'px;':top+'px '+right+'px '+bottom+'px '+left+'px;');
return Str;}
function hideDelay(time){if(time&&!o3_delay){if(o3_timerid>0)clearTimeout(o3_timerid);
o3_timerid=setTimeout("cClick()",(o3_timeout=time));}}
function horizontalPlacement(browserWidth,horizontalScrollAmount,widthFix){var placeX,iwidth=browserWidth,winoffset=horizontalScrollAmount;var parsedWidth=parseInt(o3_width);
if(o3_fixx>-1||o3_relx!=null){
placeX=(o3_relx!=null?( o3_relx<0?winoffset+o3_relx+iwidth-parsedWidth-widthFix:winoffset+o3_relx):o3_fixx);}else{
if(o3_hauto==1){if((o3_x-winoffset)>(iwidth/2)){o3_hpos=LEFT;}else{o3_hpos=RIGHT;}}
if(o3_hpos==CENTER){placeX=o3_x+o3_offsetx-(parsedWidth/2);
if(placeX<winoffset)placeX=winoffset;}
if(o3_hpos==RIGHT){placeX=o3_x+o3_offsetx;
if((placeX+parsedWidth)>(winoffset+iwidth-widthFix)){placeX=iwidth+winoffset-parsedWidth-widthFix;if(placeX<0)placeX=0;}}
if(o3_hpos==LEFT){placeX=o3_x-o3_offsetx-parsedWidth;if(placeX<winoffset)placeX=winoffset;}
if(o3_snapx>1){var snapping=placeX % o3_snapx;
if(o3_hpos==LEFT){placeX=placeX-(o3_snapx+snapping);}else{
placeX=placeX+(o3_snapx-snapping);}
if(placeX<winoffset)placeX=winoffset;}}
return placeX;}
function verticalPlacement(browserHeight,verticalScrollAmount){var placeY,iheight=browserHeight,scrolloffset=verticalScrollAmount;var parsedHeight=(o3_aboveheight?parseInt(o3_aboveheight):(olNs4?over.clip.height:over.offsetHeight));
if(o3_fixy>-1||o3_rely!=null){
placeY=(o3_rely!=null?(o3_rely<0?scrolloffset+o3_rely+iheight-parsedHeight:scrolloffset+o3_rely):o3_fixy);}else{
if(o3_vauto==1){if((o3_y-scrolloffset)>(iheight/2)&&o3_vpos==BELOW&&(o3_y+parsedHeight+o3_offsety-(scrolloffset+iheight)>0)){o3_vpos=ABOVE;}else if(o3_vpos==ABOVE&&(o3_y-(parsedHeight+o3_offsety)-scrolloffset<0)){o3_vpos=BELOW;}}
if(o3_vpos==ABOVE){if(o3_aboveheight==0)o3_aboveheight=parsedHeight;
placeY=o3_y-(o3_aboveheight+o3_offsety);if(placeY<scrolloffset)placeY=scrolloffset;}else{
placeY=o3_y+o3_offsety;}
if(o3_snapy>1){var snapping=placeY % o3_snapy;
if(o3_aboveheight>0&&o3_vpos==ABOVE){placeY=placeY-(o3_snapy+snapping);}else{placeY=placeY+(o3_snapy-snapping);}
if(placeY<scrolloffset)placeY=scrolloffset;}}
return placeY;}
function checkPositionFlags(){if(olHautoFlag)olHautoFlag=o3_hauto=0;if(olVautoFlag)olVautoFlag=o3_vauto=0;return true;}
function windowWidth(){var w;if(o3_frame.innerWidth)w=o3_frame.innerWidth;else if(eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientWidth=='number'")&&eval('o3_frame.'+docRoot+'.clientWidth'))
w=eval('o3_frame.'+docRoot+'.clientWidth');return w;}
function createDivContainer(id,frm,zValue){id=(id||'overDiv'),frm=(frm||o3_frame),zValue=(zValue||1000);var objRef,divContainer=layerReference(id);
if(divContainer==null){if(olNs4){divContainer=frm.document.layers[id]=new Layer(window.innerWidth,frm);objRef=divContainer;}else{var body=(olIe4?frm.document.all.tags('BODY')[0]:frm.document.getElementsByTagName("BODY")[0]);if(olIe4&&!document.getElementById){body.insertAdjacentHTML("beforeEnd",'<div id="'+id+'"></div>');divContainer=layerReference(id);}else{divContainer=frm.document.createElement("DIV");divContainer.id=id;body.appendChild(divContainer);}
objRef=divContainer.style;}
objRef.position='absolute';objRef.visibility='hidden';objRef.zIndex=zValue;if(olIe4&&!olOp)objRef.left=objRef.top='0px';else objRef.left=objRef.top=-10000+(!olNs4?'px':0);}
return divContainer;}
function layerReference(id){return(olNs4?o3_frame.document.layers[id]:(document.all?o3_frame.document.all[id]:o3_frame.document.getElementById(id)));}
function isFunction(fnRef){var rtn=true;
if(typeof fnRef=='object'){for(var i=0;i<fnRef.length;i++){if(typeof fnRef[i]=='function')continue;rtn=false;break;}
}else if(typeof fnRef!='function'){rtn=false;}
return rtn;}
function argToString(array,strtInd,argName){var jS=strtInd,aS='',ar=array;argName=(argName?argName:'ar');
if(ar.length>jS){for(var k=jS;k<ar.length;k++)aS+=argName+'['+k+'], ';aS=aS.substring(0,aS.length-2);}
return aS;}
function reOrder(hookPt,fnRef,order){var newPt=new Array(),match,i,j;
if(!order||typeof order=='undefined'||typeof order=='number')return hookPt;
if(typeof order=='function'){if(typeof fnRef=='object'){newPt=newPt.concat(fnRef);}else{newPt[newPt.length++]=fnRef;}
for(i=0;i<hookPt.length;i++){match=false;if(typeof fnRef=='function'&&hookPt[i]==fnRef){continue;}else{for(j=0;j<fnRef.length;j++)if(hookPt[i]==fnRef[j]){match=true;break;}}
if(!match)newPt[newPt.length++]=hookPt[i];}
newPt[newPt.length++]=order;
}else if(typeof order=='object'){if(typeof fnRef=='object'){newPt=newPt.concat(fnRef);}else{newPt[newPt.length++]=fnRef;}
for(j=0;j<hookPt.length;j++){match=false;if(typeof fnRef=='function'&&hookPt[j]==fnRef){continue;}else{for(i=0;i<fnRef.length;i++)if(hookPt[j]==fnRef[i]){match=true;break;}}
if(!match)newPt[newPt.length++]=hookPt[j];}
for(i=0;i<newPt.length;i++)hookPt[i]=newPt[i];newPt.length=0;
for(j=0;j<hookPt.length;j++){match=false;for(i=0;i<order.length;i++){if(hookPt[j]==order[i]){match=true;break;}}
if(!match)newPt[newPt.length++]=hookPt[j];}
newPt=newPt.concat(order);}
hookPt=newPt;
return hookPt;}
function setRunTimeVariables(){if(typeof runTime!='undefined'&&runTime.length){for(var k=0;k<runTime.length;k++){runTime[k]();}}}
function parseCmdLine(pf,i,args){if(typeof cmdLine!='undefined'&&cmdLine.length){for(var k=0;k<cmdLine.length;k++){var j=cmdLine[k](pf,i,args);if(j >-1){i=j;break;}}}
return i;}
function postParseChecks(pf,args){if(typeof postParse!='undefined'&&postParse.length){for(var k=0;k<postParse.length;k++){if(postParse[k](pf,args))continue;return false;}}
return true;}
function registerCommands(cmdStr){if(typeof cmdStr!='string')return;
var pM=cmdStr.split(',');pms=pms.concat(pM);
for(var i=0;i< pM.length;i++){eval(pM[i].toUpperCase()+'='+pmCount++);}}
function registerNoParameterCommands(cmdStr){if(!cmdStr&&typeof cmdStr!='string')return;pmt=(!pmt)?cmdStr:pmt+','+cmdStr;}
function registerHook(fnHookTo,fnRef,hookType,optPm){var hookPt,last=typeof optPm;
if(fnHookTo=='plgIn'||fnHookTo=='postParse')return;if(typeof hookPts[fnHookTo]=='undefined')hookPts[fnHookTo]=new FunctionReference();
hookPt=hookPts[fnHookTo];
if(hookType!=null){if(hookType==FREPLACE){hookPt.ovload=fnRef;if(fnHookTo.indexOf('ol_content_')>-1)hookPt.alt[pms[CSSOFF-1-pmStart]]=fnRef;
}else if(hookType==FBEFORE||hookType==FAFTER){var hookPt=(hookType==1?hookPt.before:hookPt.after);
if(typeof fnRef=='object'){hookPt=hookPt.concat(fnRef);}else{hookPt[hookPt.length++]=fnRef;}
if(optPm)hookPt=reOrder(hookPt,fnRef,optPm);
}else if(hookType==FALTERNATE){if(last=='number')hookPt.alt[pms[optPm-1-pmStart]]=fnRef;}else if(hookType==FCHAIN){hookPt=hookPt.chain;if(typeof fnRef=='object')hookPt=hookPt.concat(fnRef);else hookPt[hookPt.length++]=fnRef;}
return;}}
function registerRunTimeFunction(fn){if(isFunction(fn)){if(typeof fn=='object'){runTime=runTime.concat(fn);}else{runTime[runTime.length++]=fn;}}}
function registerCmdLineFunction(fn){if(isFunction(fn)){if(typeof fn=='object'){cmdLine=cmdLine.concat(fn);}else{cmdLine[cmdLine.length++]=fn;}}}
function registerPostParseFunction(fn){if(isFunction(fn)){if(typeof fn=='object'){postParse=postParse.concat(fn);}else{postParse[postParse.length++]=fn;}}}
function runHook(fnHookTo,hookType){var l=hookPts[fnHookTo],k,rtnVal=null,optPm,arS,ar=runHook.arguments;
if(hookType==FREPLACE){arS=argToString(ar,2);
if(typeof l=='undefined'||!(l=l.ovload))rtnVal=eval(fnHookTo+'('+arS+')');else rtnVal=eval('l('+arS+')');
}else if(hookType==FBEFORE||hookType==FAFTER){if(typeof l!='undefined'){l=(hookType==1?l.before:l.after);
if(l.length){arS=argToString(ar,2);for(var k=0;k<l.length;k++)eval('l[k]('+arS+')');}}
}else if(hookType==FALTERNATE){optPm=ar[2];arS=argToString(ar,3);
if(typeof l=='undefined'||(l=l.alt[pms[optPm-1-pmStart]])=='undefined'){rtnVal=eval(fnHookTo+'('+arS+')');}else{rtnVal=eval('l('+arS+')');}
}else if(hookType==FCHAIN){arS=argToString(ar,2);l=l.chain;
for(k=l.length;k>0;k--)if((rtnVal=eval('l[k-1]('+arS+')'))!=void(0))break;}
return rtnVal;}
function FunctionReference(){this.ovload=null;this.before=new Array();this.after=new Array();this.alt=new Array();this.chain=new Array();}
function Info(version,prerelease){this.version=version;this.prerelease=prerelease;
this.simpleversion=Math.round(this.version*100);this.major=parseInt(this.simpleversion/100);this.minor=parseInt(this.simpleversion/10)-this.major * 10;this.revision=parseInt(this.simpleversion)-this.major * 100-this.minor * 10;this.meets=meets;}
function meets(reqdVersion){return(!reqdVersion)?false:this.simpleversion>=Math.round(100*parseFloat(reqdVersion));}
registerHook("ol_content_simple",ol_content_simple,FALTERNATE,CSSOFF);registerHook("ol_content_caption",ol_content_caption,FALTERNATE,CSSOFF);registerHook("ol_content_background",ol_content_background,FALTERNATE,CSSOFF);registerHook("ol_content_simple",ol_content_simple,FALTERNATE,CSSCLASS);registerHook("ol_content_caption",ol_content_caption,FALTERNATE,CSSCLASS);registerHook("ol_content_background",ol_content_background,FALTERNATE,CSSCLASS);registerPostParseFunction(checkPositionFlags);registerHook("hideObject",nbspCleanup,FAFTER);registerHook("horizontalPlacement",horizontalPlacement,FCHAIN);registerHook("verticalPlacement",verticalPlacement,FCHAIN);if(olNs4||(olIe5&&isMac)||olKq)olLoaded=1;registerNoParameterCommands('sticky,autostatus,autostatuscap,fullhtml,hauto,vauto,closeclick,wrap,followmouse,mouseoff,compatmode');
var olCheckMouseCapture=true;if((olNs4||olNs6||olIe4)){olMouseCapture();}else{overlib=no_overlib;nd=no_overlib;ver3fix=true;}
js/joomla.javascript.js000064400000036055152200041010011136 0ustar00// <?php !! This fools phpdocumentor into parsing this file
/**
* @version		$Id: joomla.javascript.js 14401 2010-01-26 14:10:00Z louis $
* @package		Joomla
* @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license		GNU/GPL
* Joomla! is Free Software
*/

/**
 * Overlib Styling Declarations to allow CSS class override of styles
 *
 */
var ol_fgclass='ol-foreground';
var ol_bgclass='ol-background';
var ol_textfontclass='ol-textfont';
var ol_captionfontclass='ol-captionfont';
var ol_closefontclass='ol-closefont';

// general utility for browsing a named array or object
function xshow(o) {
	s = '';
	for(e in o) {s += e+'='+o[e]+'\n';}
	alert( s );
}

/**
* Writes a dynamically generated list
* @param string The parameters to insert into the <select> tag
* @param array A javascript array of list options in the form [key,value,text]
* @param string The key to display for the initial state of the list
* @param string The original key that was selected
* @param string The original item value that was selected
*/
function writeDynaList( selectParams, source, key, orig_key, orig_val ) {
	var html = '\n	<select ' + selectParams + '>';
	var i = 0;
	for (x in source) {
		if (source[x][0] == key) {
			var selected = '';
			if ((orig_key == key && orig_val == source[x][1]) || (i == 0 && orig_key != key)) {
				selected = 'selected="selected"';
			}
			html += '\n		<option value="'+source[x][1]+'" '+selected+'>'+source[x][2]+'</option>';
		}
		i++;
	}
	html += '\n	</select>';

	document.writeln( html );
}

/**
* Changes a dynamically generated list
* @param string The name of the list to change
* @param array A javascript array of list options in the form [key,value,text]
* @param string The key to display
* @param string The original key that was selected
* @param string The original item value that was selected
*/
function changeDynaList( listname, source, key, orig_key, orig_val ) {
	var list = eval( 'document.adminForm.' + listname );

	// empty the list
	for (i in list.options.length) {
		list.options[i] = null;
	}
	i = 0;
	for (x in source) {
		if (source[x][0] == key) {
			opt = new Option();
			opt.value = source[x][1];
			opt.text = source[x][2];

			if ((orig_key == key && orig_val == opt.value) || i == 0) {
				opt.selected = true;
			}
			list.options[i++] = opt;
		}
	}
	list.length = i;
}

/**
* Adds a select item(s) from one list to another
*/
function addSelectedToList( frmName, srcListName, tgtListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );
	var tgtList = eval( 'form.' + tgtListName );

	var srcLen = srcList.length;
	var tgtLen = tgtList.length;
	var tgt = "x";

	//build array of target items
	for (var i=tgtLen-1; i > -1; i--) {
		tgt += "," + tgtList.options[i].value + ","
	}

	//Pull selected resources and add them to list
	//for (var i=srcLen-1; i > -1; i--) {
	for (var i=0; i < srcLen; i++) {
		if (srcList.options[i].selected && tgt.indexOf( "," + srcList.options[i].value + "," ) == -1) {
			opt = new Option( srcList.options[i].text, srcList.options[i].value );
			tgtList.options[tgtList.length] = opt;
		}
	}
}

function delSelectedFromList( frmName, srcListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	var srcLen = srcList.length;

	for (var i=srcLen-1; i > -1; i--) {
		if (srcList.options[i].selected) {
			srcList.options[i] = null;
		}
	}
}

function moveInList( frmName, srcListName, index, to) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );
	var total = srcList.options.length-1;

	if (index == -1) {
		return false;
	}
	if (to == +1 && index == total) {
		return false;
	}
	if (to == -1 && index == 0) {
		return false;
	}

	var items = new Array;
	var values = new Array;

	for (i=total; i >= 0; i--) {
		items[i] = srcList.options[i].text;
		values[i] = srcList.options[i].value;
	}
	for (i = total; i >= 0; i--) {
		if (index == i) {
			srcList.options[i + to] = new Option(items[i],values[i], 0, 1);
			srcList.options[i] = new Option(items[i+to], values[i+to]);
			i--;
		} else {
			srcList.options[i] = new Option(items[i], values[i]);
	   }
	}
	srcList.focus();
	return true;
}

function getSelectedOption( frmName, srcListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	i = srcList.selectedIndex;
	if (i != null && i > -1) {
		return srcList.options[i];
	} else {
		return null;
	}
}

function setSelectedValue( frmName, srcListName, value ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	var srcLen = srcList.length;

	for (var i=0; i < srcLen; i++) {
		srcList.options[i].selected = false;
		if (srcList.options[i].value == value) {
			srcList.options[i].selected = true;
		}
	}
}

function getSelectedRadio( frmName, srcGroupName ) {
	var form = eval( 'document.' + frmName );
	var srcGroup = eval( 'form.' + srcGroupName );

	return radioGetCheckedValue( srcGroup );
}

// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function radioGetCheckedValue(radioObj) {
	if (!radioObj) {
		return '';
	}
	var n = radioObj.length;
	if (n == undefined) {
		if (radioObj.checked) {
			return radioObj.value;
		} else {
			return '';
		}
	}
	for (var i = 0; i < n; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return '';
}

function getSelectedValue( frmName, srcListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	i = srcList.selectedIndex;
	if (i != null && i > -1) {
		return srcList.options[i].value;
	} else {
		return null;
	}
}

function getSelectedText( frmName, srcListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	i = srcList.selectedIndex;
	if (i != null && i > -1) {
		return srcList.options[i].text;
	} else {
		return null;
	}
}

function chgSelectedValue( frmName, srcListName, value ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );

	i = srcList.selectedIndex;
	if (i != null && i > -1) {
		srcList.options[i].value = value;
		return true;
	} else {
		return false;
	}
}

/**
* Toggles the check state of a group of boxes
*
* Checkboxes must have an id attribute in the form cb0, cb1...
* @param The number of box to 'check'
* @param An alternative field name
*/
function checkAll( n, fldName ) {
  if (!fldName) {
     fldName = 'cb';
  }
	var f = document.adminForm;
	var c = f.toggle.checked;
	var n2 = 0;
	for (i=0; i < n; i++) {
		cb = eval( 'f.' + fldName + '' + i );
		if (cb) {
			cb.checked = c;
			n2++;
		}
	}
	if (c) {
		document.adminForm.boxchecked.value = n2;
	} else {
		document.adminForm.boxchecked.value = 0;
	}
}

function listItemTask( id, task ) {
    var f = document.adminForm;
    cb = eval( 'f.' + id );
    if (cb) {
        for (i = 0; true; i++) {
            cbx = eval('f.cb'+i);
            if (!cbx) break;
            cbx.checked = false;
        } // for
        cb.checked = true;
        f.boxchecked.value = 1;
        submitbutton(task);
    }
    return false;
}

function hideMainMenu() {
	if (document.adminForm.hidemainmenu) {
		document.adminForm.hidemainmenu.value=1;
	}
}

function isChecked(isitchecked){
	if (isitchecked == true){
		document.adminForm.boxchecked.value++;
	}
	else {
		document.adminForm.boxchecked.value--;
	}
}

/**
* Default function.  Usually would be overriden by the component
*/
function submitbutton(pressbutton) {
	submitform(pressbutton);
}

/**
* Submit the admin form
*/
function submitform(pressbutton){
	if (pressbutton) {
		document.adminForm.task.value=pressbutton;
	}
	if (typeof document.adminForm.onsubmit == "function") {
		document.adminForm.onsubmit();
	}
	document.adminForm.submit();
}

/**
* Submit the control panel admin form
*/
function submitcpform(sectionid, id){
	document.adminForm.sectionid.value=sectionid;
	document.adminForm.id.value=id;
	submitbutton("edit");
}

/**
* Getting radio button that is selected.
*/
function getSelected(allbuttons){
	for (i=0;i<allbuttons.length;i++) {
		if (allbuttons[i].checked) {
			return allbuttons[i].value
		}
	}
	return null;
}

// JS Calendar
var calendar = null; // remember the calendar object so that we reuse
// it and avoid creating another

// This function gets called when an end-user clicks on some date
function selected(cal, date) {
	cal.sel.value = date; // just update the value of the input field
}

// And this gets called when the end-user clicks on the _selected_ date,
// or clicks the "Close" (X) button.  It just hides the calendar without
// destroying it.
function closeHandler(cal) {
	cal.hide();			// hide the calendar

	// don't check mousedown on document anymore (used to be able to hide the
	// calendar when someone clicks outside it, see the showCalendar function).
	Calendar.removeEvent(document, "mousedown", checkCalendar);
}

// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the open
// calendar this function closes it.
function checkCalendar(ev) {
	var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
	for (; el != null; el = el.parentNode)
	// FIXME: allow end-user to click some link without closing the
	// calendar.  Good to see real-time stylesheet change :)
	if (el == calendar.element || el.tagName == "A") break;
	if (el == null) {
		// calls closeHandler which should hide the calendar.
		calendar.callCloseHandler(); Calendar.stopEvent(ev);
	}
}

// This function shows the calendar under the element having the given id.
// It takes care of catching "mousedown" signals on document and hiding the
// calendar if the click was outside.
function showCalendar(id, dateFormat) {
	var el = document.getElementById(id);
	if (calendar != null) {
		// we already have one created, so just update it.
		calendar.hide();		// hide the existing calendar
		calendar.parseDate(el.value); // set it to a new date
	} else {
		// first-time call, create the calendar
		var cal = new Calendar(true, null, selected, closeHandler);
		calendar = cal;		// remember the calendar in the global
		cal.setRange(1900, 2070);	// min/max year allowed

		if ( dateFormat )	// optional date format
		{
			cal.setDateFormat(dateFormat);
		}

		calendar.create();		// create a popup calendar
		calendar.parseDate(el.value); // set it to a new date
	}
	calendar.sel = el;		// inform it about the input field in use
	calendar.showAtElement(el);	// show the calendar next to the input field

	// catch mousedown on the document
	Calendar.addEvent(document, "mousedown", checkCalendar);
	return false;
}

/**
* Pops up a new window in the middle of the screen
*/
function popupWindow(mypage, myname, w, h, scroll) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
	win = window.open(mypage, myname, winprops)
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

// LTrim(string) : Returns a copy of a string without leading spaces.
function ltrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

//RTrim(string) : Returns a copy of a string without trailing spaces.
function rtrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;       // Get length of string
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }
   return s;
}

// Trim(string) : Returns a copy of a string without leading or trailing spaces
function trim(str) {
   return rtrim(ltrim(str));
}

function mosDHTML(){
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")<-1
	this.ie5=(this.ver.indexOf("MSIE 5")<-1 && this.dom && !this.opera5)?1:0;
	this.ie6=(this.ver.indexOf("MSIE 6")<-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")<-1
	this.ns6=(this.dom && parseInt(this.ver) <= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5);

	this.activeTab = '';
	this.onTabStyle = 'ontab';
	this.offTabStyle = 'offtab';

	this.setElemStyle = function(elem,style) {
		document.getElementById(elem).className = style;
	}
	this.showElem = function(id) {
		if ((elem = document.getElementById(id))) {
			elem.style.visibility = 'visible';
			elem.style.display = 'block';
		}
	}
	this.hideElem = function(id) {
		if ((elem = document.getElementById(id))) {
			elem.style.visibility = 'hidden';
			elem.style.display = 'none';
		}
	}
	this.cycleTab = function(name) {
		if (this.activeTab) {
			this.setElemStyle( this.activeTab, this.offTabStyle );
			page = this.activeTab.replace( 'tab', 'page' );
			this.hideElem(page);
		}
		this.setElemStyle( name, this.onTabStyle );
		this.activeTab = name;
		page = this.activeTab.replace( 'tab', 'page' );
		this.showElem(page);
	}
	return this;
}
var dhtml = new mosDHTML();

// needed for Table Column ordering
function tableOrdering( order, dir, task ) {
	var form = document.adminForm;

	form.filter_order.value 	= order;
	form.filter_order_Dir.value	= dir;
	submitform( task );
}

function saveorder( n,  task ) {
	checkAll_button( n, task );
}

//needed by saveorder function
function checkAll_button( n, task ) {

    if (!task ) {
		task = 'saveorder';
	}

	for ( var j = 0; j <= n; j++ ) {
		box = eval( "document.adminForm.cb" + j );
		if ( box ) {
			if ( box.checked == false ) {
				box.checked = true;
			}
		} else {
			alert("You cannot change the order of items, as an item in the list is `Checked Out`");
			return;
		}
	}
	submitform(task);
}
/**
* @param object A form element
* @param string The name of the element to find
*/
function getElementByName( f, name ) {
	if (f.elements) {
		for (i=0, n=f.elements.length; i < n; i++) {
			if (f.elements[i].name == name) {
				return f.elements[i];
			}
		}
	}
	return null;
}

function go2( pressbutton, menu, id ) {
	var form = document.adminForm;

	if (form.imagelist && form.images) {
		// assemble the images back into one field
		var temp = new Array;
		for (var i=0, n=form.imagelist.options.length; i < n; i++) {
			temp[i] = form.imagelist.options[i].value;
		}
		form.images.value = temp.join( '\n' );
	}

	if (pressbutton == 'go2menu') {
		form.menu.value = menu;
		submitform( pressbutton );
		return;
	}

	if (pressbutton == 'go2menuitem') {
		form.menu.value 	= menu;
		form.menuid.value 	= id;
		submitform( pressbutton );
		return;
	}
}
/**
 * Verifies if the string is in a valid email format
 * @param	string
 * @return	boolean
 */
function isEmail( text )
{
	var pattern = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	var regex = new RegExp( pattern );
	return regex.test( text );
}js/dtree/dtree.js000064400000030127152200041010007710 0ustar00/*--------------------------------------------------|
| dTree 2.05 | www.destroydrop.com/javascript/tree/ |
|---------------------------------------------------|
| Copyright (c) 2002-2003 Geir Landr?               |
|                                                   |
| This script can be used freely as long as all     |
| copyright messages are intact.                    |
|                                                   |
| Updated: 17.04.2003                               |
|--------------------------------------------------*//*
	Base path to image folder added by Andrew Eddie
	17 March 2005
*/

// Node object
function Node(id, pid, name, url, title, target, icon, iconOpen, open) {
	this.id = id;
	this.pid = pid;
	this.name = name;
	this.url = url;
	this.title = title;
	this.target = target;
	this.icon = icon;
	this.iconOpen = iconOpen;
	this._io = open || false;
	this._is = false;
	this._ls = false;
	this._hc = false;
	this._ai = 0;
	this._p;
};

// Tree object
function dTree(objName,basePath) {
	if (!basePath) {
		basePath = 'img/';
	}
	this.config = {
		target			: null,
		folderLinks		: true,
		useSelection	: true,
		useCookies		: true,
		useLines		: true,
		useIcons		: true,
		useStatusText	: false,
		closeSameLevel	: false,
		inOrder			: false
	}
	this.icon = {
		root			: basePath+'base.gif',
		folder			: basePath+'folder.gif',
		folderOpen		: basePath+'folderopen.gif',
		node			: basePath+'square.gif',
		empty			: basePath+'empty.gif',
		line			: basePath+'line.gif',
		join			: basePath+'join.gif',
		joinBottom		: basePath+'joinbottom.gif',
		plus			: basePath+'plus.gif',
		plusBottom		: basePath+'plusbottom.gif',
		minus			: basePath+'minus.gif',
		minusBottom		: basePath+'minusbottom.gif',
		nlPlus			: basePath+'nolines_plus.gif',
		nlMinus			: basePath+'nolines_minus.gif'
	};
	this.obj = objName;
	this.aNodes = [];
	this.aIndent = [];
	this.root = new Node(-1);
	this.selectedNode = null;
	this.selectedFound = false;
	this.completed = false;
};

// Adds a new node to the node array
dTree.prototype.add = function(id, pid, name, url, title, target, icon, iconOpen, open) {
	// addition by Andrew Eddie, allows id=-1 for auto-indexing
	if (id < 0) {
		id = this.aNodes.length;
	}
	this.aNodes[this.aNodes.length] = new Node(id, pid, name, url, title, target, icon, iconOpen, open);
};

// Open/close all nodes
dTree.prototype.openAll = function() {
	this.oAll(true);
};

dTree.prototype.closeAll = function() {
	this.oAll(false);
}; // Outputs the tree to the page

dTree.prototype.toString = function() {
	var str = '<div class="dtree">\n';
	if (document.getElementById) {
		if (this.config.useCookies) this.selectedNode = this.getSelected();
		str += this.addNode(this.root);
	} else str += 'Browser not supported.';
	str += '</div>';
	if (!this.selectedFound) this.selectedNode = null;
	this.completed = true;
	return str;
};

// Creates the tree structure
dTree.prototype.addNode = function(pNode) {
	var str = '';
	var n=0;
	if (this.config.inOrder) n = pNode._ai;
	for (n; n<this.aNodes.length; n++) {
		if (this.aNodes[n].pid == pNode.id) {
			var cn = this.aNodes[n];
			cn._p = pNode;
			cn._ai = n;
			this.setCS(cn);
			if (!cn.target && this.config.target) cn.target = this.config.target;
			if (cn._hc && !cn._io && this.config.useCookies) cn._io = this.isOpen(cn.id);
			if (!this.config.folderLinks && cn._hc) cn.url = null;
			if (this.config.useSelection && cn.id == this.selectedNode && !this.selectedFound) {
				cn._is = true;
				this.selectedNode = n;
				this.selectedFound = true;
			}
			str += this.node(cn, n);
			if (cn._ls) break;
		}
	}
	return str;
};

// Creates the node icon, url and text
dTree.prototype.node = function(node, nodeId) {
	var str = '<div class="dTreeNode">' + this.indent(node, nodeId);
	if (this.config.useIcons) {
		if (!node.icon) node.icon = (this.root.id == node.pid) ? this.icon.root : ((node._hc) ? this.icon.folder : this.icon.node);
		if (!node.iconOpen) node.iconOpen = (node._hc) ? this.icon.folderOpen : this.icon.node;
		if (this.root.id == node.pid) {
			node.icon = this.icon.root;
			node.iconOpen = this.icon.root;
		}
		str += '<img id="i' + this.obj + nodeId + '" src="' + ((node._io) ? node.iconOpen : node.icon) + '" alt="" />';
	}
	if (node.url) {
		str += '<a id="s' + this.obj + nodeId + '" class="' + ((this.config.useSelection) ? ((node._is ? 'nodeSel' : 'node')) : 'node') + '" href="' + node.url + '"';
		if (node.title) str += ' title="' + node.title + '"';
		if (node.target) str += ' target="' + node.target + '"';
		if (this.config.useStatusText) str += ' onmouseover="window.status=\'' + node.name + '\';return true;" onmouseout="window.status=\'\';return true;" ';
		if (this.config.useSelection && ((node._hc && this.config.folderLinks) || !node._hc)) str += ' onclick="javascript: ' + this.obj + '.s(' + nodeId + ');"';
		str += '>';
	} else if ((!this.config.folderLinks || !node.url) && node._hc && node.pid != this.root.id)	str += '<a href="javascript: ' + this.obj + '.o(' + nodeId + ');" class="node">';
	str += node.name;
	if (node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += '</a>';
	str += '</div>';
	if (node._hc) {
		str += '<div id="d' + this.obj + nodeId + '" class="clip" style="display:' + ((this.root.id == node.pid || node._io) ? 'block' : 'none') + ';">';
		str += this.addNode(node);
		str += '</div>';
	}
	this.aIndent.pop();
	return str;
};

// Adds the empty and line icons
dTree.prototype.indent = function(node, nodeId) {
	var str = '';
	if (this.root.id != node.pid) {
		for (var n=0; n<this.aIndent.length; n++) str += '<img src="' + ( (this.aIndent[n] == 1 && this.config.useLines) ? this.icon.line : this.icon.empty ) + '" alt="" />';
		(node._ls) ? this.aIndent.push(0) : this.aIndent.push(1);
		if (node._hc) {
			str += '<a href="javascript: ' + this.obj + '.o(' + nodeId + ');"><img id="j' + this.obj + nodeId + '" src="';
			if (!this.config.useLines) str += (node._io) ? this.icon.nlMinus : this.icon.nlPlus;
				else str += ( (node._io) ? ((node._ls && this.config.useLines) ? this.icon.minusBottom : this.icon.minus) : ((node._ls && this.config.useLines) ? this.icon.plusBottom : this.icon.plus ) );
			str += '" alt="" /></a>';
		} else str += '<img src="' + ( (this.config.useLines) ? ((node._ls) ? this.icon.joinBottom : this.icon.join ) : this.icon.empty) + '" alt="" />';
	}
	return str;
};

// Checks if a node has any children and if it is the last sibling
dTree.prototype.setCS = function(node) {
	var lastId;
	for (var n=0; n<this.aNodes.length; n++) {
		if (this.aNodes[n].pid == node.id) node._hc = true;
		if (this.aNodes[n].pid == node.pid) lastId = this.aNodes[n].id;
	}
	if (lastId==node.id) node._ls = true;
};

// Returns the selected node
dTree.prototype.getSelected = function() {
	var sn = this.getCookie('cs' + this.obj);
	return (sn) ? sn : null;
};

// Highlights the selected node
dTree.prototype.s = function(id) {
	if (!this.config.useSelection) return;
	var cn = this.aNodes[id];
	if (cn._hc && !this.config.folderLinks) return;
	if (this.selectedNode != id) {
		if (this.selectedNode || this.selectedNode==0) {
			eOld = document.getElementById("s" + this.obj + this.selectedNode);
			eOld.className = "node";
		}
		eNew = document.getElementById("s" + this.obj + id);
		eNew.className = "nodeSel";
		this.selectedNode = id;
		if (this.config.useCookies) this.setCookie('cs' + this.obj, cn.id);
	}
};

// Toggle Open or close
dTree.prototype.o = function(id) {
	var cn = this.aNodes[id];
	this.nodeStatus(!cn._io, id, cn._ls);
	cn._io = !cn._io;
	if (this.config.closeSameLevel) this.closeLevel(cn);
	if (this.config.useCookies) this.updateCookie();
};

// Open or close all nodes
dTree.prototype.oAll = function(status) {
	for (var n=0; n<this.aNodes.length; n++) {
		if (this.aNodes[n]._hc && this.aNodes[n].pid != this.root.id) {
			this.nodeStatus(status, n, this.aNodes[n]._ls);
			this.aNodes[n]._io = status;
		}
	}
	if (this.config.useCookies) this.updateCookie();
};

// Opens the tree to a specific node
dTree.prototype.openTo = function(nId, bSelect, bFirst) {
	if (!bFirst) {
		for (var n=0; n<this.aNodes.length; n++) {
			if (this.aNodes[n].id == nId) {
				nId=n;
				break;
			}
		}
	}
	var cn=this.aNodes[nId];
	if (cn.pid==this.root.id || !cn._p) return;
	cn._io = true;	cn._is = bSelect;
	if (this.completed && cn._hc) this.nodeStatus(true, cn._ai, cn._ls);
	if (this.completed && bSelect) this.s(cn._ai);
	else if (bSelect) this._sn=cn._ai;
	this.openTo(cn._p._ai, false, true);
};

// Closes all nodes on the same level as certain node
dTree.prototype.closeLevel = function(node) {
	for (var n=0; n<this.aNodes.length; n++) {
		if (this.aNodes[n].pid == node.pid && this.aNodes[n].id != node.id && this.aNodes[n]._hc) {
			this.nodeStatus(false, n, this.aNodes[n]._ls);
			this.aNodes[n]._io = false;
			this.closeAllChildren(this.aNodes[n]);
		}
	}
}

// Closes all children of a node
dTree.prototype.closeAllChildren = function(node) {
	for (var n=0; n<this.aNodes.length; n++) {
		if (this.aNodes[n].pid == node.id && this.aNodes[n]._hc) {
			if (this.aNodes[n]._io) this.nodeStatus(false, n, this.aNodes[n]._ls);
			this.aNodes[n]._io = false;
			this.closeAllChildren(this.aNodes[n]);
		}
	}
}

// Change the status of a node(open or closed)
dTree.prototype.nodeStatus = function(status, id, bottom) {
	eDiv	= document.getElementById('d' + this.obj + id);
	eJoin	= document.getElementById('j' + this.obj + id);
	if (this.config.useIcons) {
		eIcon	= document.getElementById('i' + this.obj + id);
		eIcon.src = (status) ? this.aNodes[id].iconOpen : this.aNodes[id].icon;
	}
	eJoin.src = (this.config.useLines)?
		((status)?((bottom)?this.icon.minusBottom:this.icon.minus):((bottom)?this.icon.plusBottom:this.icon.plus)):
		((status)?this.icon.nlMinus:this.icon.nlPlus);
	eDiv.style.display = (status) ? 'block': 'none';
};

// [Cookie] Clears a cookie
dTree.prototype.clearCookie = function() {
	var now = new Date();
	var yesterday = new Date(now.getTime() - 1000 * 60 * 60 * 24);
	this.setCookie('co'+this.obj, 'cookieValue', yesterday);
	this.setCookie('cs'+this.obj, 'cookieValue', yesterday);
};

// [Cookie] Sets value in a cookie
dTree.prototype.setCookie = function(cookieName, cookieValue, expires, path, domain, secure) {
	document.cookie =		escape(cookieName) + '=' + escape(cookieValue)
		+ (expires ? '; expires=' + expires.toGMTString() : '')
		+ (path ? '; path=' + path : '')
		+ (domain ? '; domain=' + domain : '')
		+ (secure ? '; secure' : '');
};

// [Cookie] Gets a value from a cookie
dTree.prototype.getCookie = function(cookieName) {
	var cookieValue = '';
	var posName = document.cookie.indexOf(escape(cookieName) + '=');
	if (posName != -1) {
		var posValue = posName + (escape(cookieName) + '=').length;
		var endPos = document.cookie.indexOf(';', posValue);
		if (endPos != -1) cookieValue = unescape(document.cookie.substring(posValue, endPos));
		else cookieValue = unescape(document.cookie.substring(posValue));
	}
	return (cookieValue);
};

// [Cookie] Returns ids of open nodes as a string
dTree.prototype.updateCookie = function() {
	var str = '';
	for (var n=0; n<this.aNodes.length; n++) {
		if (this.aNodes[n]._io && this.aNodes[n].pid != this.root.id) {
			if (str) str += '.';
			str += this.aNodes[n].id;
		}
	}
	this.setCookie('co' + this.obj, str);
};

// [Cookie] Checks if a node id is in a cookie
dTree.prototype.isOpen = function(id) {
	var aOpen = this.getCookie('co' + this.obj).split('.');
	for (var n=0; n<aOpen.length; n++)
		if (aOpen[n] == id) return true;
	return false;
};

dTree.prototype.getNodeByName = function(nName) {
	var nId = 0;
	for (var n=0; n<this.aNodes.length; n++) {
		if (this.aNodes[n].name == nName) {
			nId=n;
			break;
		}
	}
	return nId;
};

dTree.prototype.getNodeByTitle = function(nTitle) {
	var nId = 0;
	for (var n=0; n<this.aNodes.length; n++) {
		if (this.aNodes[n].title == nTitle) {
			nId=n;
			break;
		}
	}
	return nId;
};

// If Push and pop is not implemented by the browser
if (!Array.prototype.push) {
	Array.prototype.push = function array_push() {
		for(var i=0;i<arguments.length;i++)
			this[this.length]=arguments[i];
		return this.length;
	}
};

if (!Array.prototype.pop) {
	Array.prototype.pop = function array_pop() {
		lastElement = this[this.length-1];
		this.length = Math.max(this.length-1,0);
		return lastElement;
	}
};
js/dtree/dtree.css000064400000001517152200041010010065 0ustar00/*--------------------------------------------------|
| dTree 2.05 | www.destroydrop.com/javascript/tree/ |
|---------------------------------------------------|
| Copyright (c) 2002-2003 Geir Landr�               |
|--------------------------------------------------*/

.dtree {
	font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
	font-size: 11px;
	color: #666;
	white-space: nowrap;
	text-align: left;
	/*background-image: url(../../../images/M_images/tt_bg.jpg);*/
}
.dtree img {
	border: 0px;
	vertical-align: middle;
}
.dtree a {
	color: #333;
	text-decoration: none;
}
.dtree a.node, .dtree a.nodeSel {
	white-space: nowrap;
	padding: 1px 2px 1px 2px;
}
.dtree a.node:hover, .dtree a.nodeSel:hover {
	color: #333;
	text-decoration: underline;
}
.dtree a.nodeSel {
	background-color: #c0d2ec;
}
.dtree .clip {
	overflow: hidden;
}js/dtree/index.html000064400000000054152200041010010240 0ustar00<html><body bgcolor="#FFFFFF"></body></html>js/dtree/img/frontpage.gif000064400000001105152200041010011471 0ustar00GIF89a������Ӓv��r��˿̜CF����R�9������u"Šx�I����d��ᰀs�Y<��7����@!����з��vA���������gC�%̙�Ӷ���攰����������F����:�bS�ZM���ϡO��������ܣ����̞qxܿ��#��+��Ӭ���3�����������m
�eZ��r������̨K>�W�*��K#��������x��������⿐=���(%޸������N��������������涻�ɔ��ܼA(��ް�����!�,����������W?��[,	#��9K!g��9N$P7L;
"�"
2FD8Y��.:`iE*^-Ml%�&IR>J3AHVB�@STZhc1<'G�O]A55C0X4�O)V(cm2f�$=1:X�R���
�˚6�P�P��3j�h(;js/dtree/img/musicfolder.gif000064400000001171152200041010012023 0ustar00GIF89a�I����W������_`��s
��{���̙4��44g������~|�NN�ɖ1dd����������h�j��o�l˘3�n�녚n���*���׸@�q���ڿl�g�rƚccc�넻��������������ƿ������u��Ğq���ɠ!��%��zȕ0�P�p
�ok����uml00d���u����ƚ���������!�I,րI���@5>���@"���@0.�9@?�G�*<@3��DHHDDG7-,4�GD
ƸD@�'/�G�


�D2�E��A)A		AE:(!FݷD�A#EH�I�D��A�V�Ðo��|p�@@�
6�X�w`�2�I�|I"B�$I&HpT��K�%vh�`�B�00³�O
B���O��.
;js/dtree/img/line.gif000064400000000102152200041010010427 0ustar00GIF89a�������!�,�����(��,�G��}W(Nd��h;js/dtree/img/square.gif000064400000001125152200041010011006 0ustar00GIF89a��h+������^���ԣN���Ѕ�’��^��S�������ȲٰnʕG��I�ˮݴc�ťֶ���>����������l�C��{̙3�Y�f���ϙC��oѼ�ޭZӶ��=DŽ'�P��q���È6���տ�ґ%�Ƞ�����՝F�n���L��ũ����_������݋R�XާM��`ŕN�ć͹��ϳ��:ֽ��{��S�����kו3�Χߠ?�Ѭ��\��D��Z�kğa���۔,٘7ץS��R�O��f��r͙K�[��fӪs�fٺ����?ÎC֜J�t�֭!�G,��G��������9]"��d(+�B#(Y\#$9�RE[H#U[>><U,�.\X<�=  %SC�LX'Ka& II?��JHI-;0_̂.<N	I"3Z�G.4H#8#7
U�I4W�^j�bD�� b�h��C&��QdCE�F(X��Q�1�P�G(S�;js/dtree/img/question.gif000064400000002024152200041010011354 0ustar00GIF89a������������������������������Me���������������Ʒ������������/���������.\�����f�����_j��������������Ny���p�������*Ht�����������e��l���������ͽ�ɮ�қ��e�������|�ߔ�ף����s����p��^��z��7X�7Y����)F�]�ݽ����fv�]k�������蚥�Kh�����)U������Ů��7Eh������Ll�����k��]k��������鱶�x�\p��������c��nw����EBcu���Ŧ����>�8Y�����������퓸�����fp�d��Pq�������0_�����自�OX������������$=���������Bd����!��,�K	H���2ƐZ�`��Q�X��ϙ����b!�LP�x$%�����H9�)
��(�Ӏ9����-d�Q 0K�F�0D�S/zb��D��#^L!��N8X4	�@4rxp *F�tA�(�.�(���'����$Ύ>)��B�>R6xZb��V�i��(I�� 1 !	
H5���HӞG�tb�-�`���L�:	r`SdT���p���x.8�N0 ;js/dtree/img/index.html000064400000000054152200041010011014 0ustar00<html><body bgcolor="#FFFFFF"></body></html>js/dtree/img/base.gif000064400000001776152200041010010434 0ustar00GIF89a���������������������������������������������������������������������������������ȸ����¿����¾������������������|��|�����{��|�����{��������~�����r��������~��������o��o��n��n�����~��m�����m�����l��l��~�����k�����}��}�����|��i��������j��h��j�������~��i��j��i��~��d��f��h��}��d�����c��b��g��v��c��y��f��`��^��`��]�����_��t��_��\��Z��[��f��Y��\��[��d�~Zp���}Y�|X�|W�{X�yU�zW�xV�xS�wR�vS�vR�sK�sP�qJ�rR�pM�oH~nK�mG{mN~lEzlL|jCzhBtgJvgEyf@tfGk^Bk]?dX=_T>aQ1`P/\P6[O6^N.]M-[M2[K+ZJ*YI)XH(JE:GA5/)!�,�H��A	>tX�Ѓ��\��Hq�e4�±�/Ot�����>�(�bg��%q�l1Cg�/d�01�N�7j�-���R�	��Ŝ>PiAJ)ԅ
$�5j�ԂP2թ0aB��`�b�#1I�
RL��{����/�<E�s�
B��is��T<
Ȑ!E�5����
8�dɒ&M�R���AA�d!��#8@p����;js/dtree/img/join.gif000064400000000105152200041010010442 0ustar00GIF89a�������!�,�����(��,�G�j4�bI����A;js/dtree/img/cd.gif000064400000000357152200041010010102 0ustar00GIF89a�``a��������������������������达虙������!�,���g)ֈ��"�#(���	� ��0 ������Ԏ�!�ӑd��i1!4QbzH��f �@(\�P(L
���(i���"���HS	.
m[H2E`f,IV9,X�%.s(��w�mD+�sm5*+'m)���;js/dtree/img/imgfolder.gif000064400000001124152200041010011455 0ustar00GIF89a�UCNf��z��x���q�������i{�ű������D�R�����������M�����qϏ��������ꞯՕ�݅^*p�^�2��吝�����������ٝ۲��\�u�����汪���㷁������ԉ��������������쉣ؼ������������ɣ������Ե����Ƴ�Ե��������������Ӣ��q������������������������������������������������ծ�������!�h,����������((��7�Z4J�HDX;3�">>X<CBOZF�RKO2,f8�>cR
$.5��UR%L-IN�:>&?)Ta]�g>+Kce
'WTG<�"M6>�JZ0d�@# @b/S4I��"�P�(/�Y�%G�z�@��
�
!b$€�I�
E�l�B�ȓ(G;js/dtree/img/nolines_plus.gif000064400000000422152200041010012217 0ustar00GIF89a����������������������������������������������������������������̿�Ȼƾ�ú�¸����������x�����������������������������������������������������������������������������������������������,		7@�gH��$`(@��aH @�c�y��ab�5 ��CBU,��%��p:c��	;js/dtree/img/nolines_minus.gif000064400000000421152200041010012366 0ustar00GIF89a����������������������������������������������������������������������̿�Ȼƾ�ú�¸����������x�����������������������������������������������������������������������������������������,		6@PhH	�$`(8Ð@(��!�v%�Ă�pD(CȤb�`4�̦��|8�";js/dtree/img/plus.gif000064400000000326152200041010010473 0ustar00GIF89a������������������������������������������������������������!�,S %��C�h���꾏$�ҳJ@����������@LI�h4�3YGOBab@(�(�!��,
�I�x@�����l�|���~.!;js/dtree/img/minus.gif000064400000000323152200041010010640 0ustar00GIF89a������������������������������������������������������������!�,P %��C�h���꾏$�ҳJ@���@AO%���0%L��D�D5	���X�$��b�hxO�Ž@ΤMf{�S���߻B;js/dtree/img/globe.gif000064400000002107152200041010010577 0ustar00GIF89a����rB���<��=�~��>�c����6�}���i�7�������bl}3K~G�n)M�:x������LXo��dr�it�g2u�]�����_iy-��E�R~|ቢ����Hc���X�U��u��E��	9����>�L����)f����;��)S�x��
����������%L�J�%$�]b����j�g���x������m�������m�>���H�Z�-V���a�䠃��r�q���@q��vx��G������{k]n
��$~�l���*�P���[ev~+5S�}�~+Y�2Y������w��O��7�'��m'Kd�7gm��B`�j���`��"��>����h�C������&�������ہ��;�u��ERo���\�N��P����S]p=�$��c<gco����_������b���t9������z��Y��װ]N6V�����)C�p���_����J��t:>c�[��hD`��������e�W��F�2HxYź����똩���HUr���&h��*����Q�S|B���_j{�ġ\�¹����`��S�p}���Q�����^t�[�1b�[��fb��E�ߛ���q��|��m��-F��ި4_�v�W�ݻ���!��,��	H�U5l���!8���l�&���IR�S�~Kc�V(oK:�r��.@�Ū���DM�ȹrD�lz(�2-N����AS˜�5�:��0#�)��A��	ƨ��#�Ajz�X���2����e�-�xP��ҀV��@"�Cv��j��� �=�SA�cX,{�#�1�3+�@J{Dhs`$&��$���Y�8�hY�3��Պt��.n(XA��-C�92��FP4b�Д$��k̍@;|�H��\���Y[T�ȿ����;js/dtree/img/page.gif000064400000001076152200041010010427 0ustar00GIF89a�jz����3�������3������������ᔈ�{���F8���R�s����������譴�����3�������±���H	����ŤΰŢ�������x����y�������̺��ȴ����?�C�����������������м��B�Z�������������������i������N��������������������.����������囅�S�������!�,����������L'�99BO�M DWV,2�0;;G1R!�X:-T�Y%+3P8�=�=@K#�[I�<)N@#�/=I<</F�C	I/�)KJ@*6�U?�JNNK<
�&/�A(E$�j�Pr��3	�`���Hl�H�"�@;js/dtree/img/archive.gif000064400000001125152200041010011127 0ustar00GIF89a�TVp�����x��{�צ����ę����ܰ>�~}��됰����c|ƾ����Ǵ����n��������z�����ל��ݍ����᧺�¸����{�����銢՞����������퀢����������㈪���홙���������̃���������ݣ��������飾���������i��������������놠��ֽ�����������������������}����玭�����ޜ�ޡ�퉍������������!�&,��&��������2E��B*CQ]9�H!\\QW6�%R==56S)�9$,WR";.��-+;,3ZI��aV:7NNK�M	[1
NT�/J(@;
U$�( SM$�X�DF
Vx����<(0�a�'8z��@�/'4AJ�
28�x��H(S"
;js/dtree/img/trash.gif000064400000001100152200041010010620 0ustar00GIF89a�;�����s�����Ng����c�ݗ��Di�3[�^��Gh��������޽��)Q�x�������bq�������������Ot�:b���稱�F�������z����Bf�~��n��YuͿ���.T�t����ߦ�§�����D�Gjܽ�����s��8X�Lp؜��%L�Bcֆ��������X}�)Q���Rm����Fe�������En�:c�C������򥥭e�����<�t��Ip�Pr�!�#,����������('$��3P/%@�(*?7%	�'1K7&>M�IF=0GN�L9*M>
>8�+FF		OE5 �B6=&4"�<;!-AC݇<.2,##DD�
2<�
:�DCC`Ѐd$o.��D^$Թh��C�;js/dtree/img/folderopen.gif000064400000001157152200041010011650 0ustar00GIF89a�Wm.۽~ťd��z�׽��6��ȱ�K���ԗ��u�����֢����E�oI�ǝ������ɭx��<��^���ҹ����כ|hA���ַx��W��@�Ε�޵���Ѳs����������I�Š�˄�����S�������۟���ɫj��u��T��Y�vQ�Ϫ���Ʋ��Å����������ȋ��_��=�͑غ{�Βca+���ˬlβx���������}�ٮ�ٝ����zT��S�Ħħk�����E����КӴu���ư����`n+�ċ�sMԾ���B��������ɬq�����hؼ��}X!�d,̀d������8E'=;J!X�&LVM�V�	�	�	%^00CE�C�\gY�>'�>�fO�H<�:�B6�	B=�)�G]�CW��)�cYM>Fʅ)#�RеU�N89FF4
�&�8"?,* #5�`S7�dpA�–iP�
bЀDb�`�����
IX�$J-� b�FM�"�qȇ/A�t��Ђ<^,X�BˍC@�;js/dtree/img/plusbottom.gif000064400000000323152200041010011715 0ustar00GIF89a������������������������������������������������������������!�,P %��C�h���꾏$�ҳJ@����������@LI�h4�3YGOBab@(�(�!��,
�I�x@�����l��~���C;js/dtree/img/joinbottom.gif000064400000000102152200041010011664 0ustar00GIF89a�������!�,�����(��,�G�j�H�扦F;js/dtree/img/empty.gif000064400000000076152200041010010650 0ustar00GIF89a����������!�,��������ڋ�ޜ;js/dtree/img/folder.gif000064400000001146152200041010010764 0ustar00GIF89a�q]5�Åˬk��ȼ�Y��z��ḫ��ҕ�����Lҹ����ư���j�sM�Š��Ӵu����ٝ�׽�������̦���zg@�Ε��e�כ�wBɬq������������غ{�ȋ�����Ѳs�ǝ�vQ��߷�u����К�ٮ��R��滝`�kJ���Ʋ��۟�ԗ�������޵�zHvb:�zTؼ��Ħ�ċ�����Yַxťdβx|hA۽~޽����ħk�˫��ѝ�����ɮx����}XԾ�!�4,À4������19-:�&/.�.�I�)7�7@R661��@Q
�%�%�>=�'��)�$*�$9�G�E���C�3
%L�(�JF
�DՃP4+5�F,�&�D�2(�NAK2w��;	�XH` D�"�02�����Y(p@��KF4�$d!�$��C8;js/dtree/img/minusbottom.gif000064400000000321152200041010012063 0ustar00GIF89a������������������������������������������������������������!�,N %��C�h���꾏$�ҳJ@���@AO%���0%L��D�D5	���X�$��b�hxO�Ž@ΤMf{��;js/dtree/rtl_img/frontpage.gif000064400000001105152200041010012352 0ustar00GIF89a������Ӓv��r��˿̜CF����R�9������u"Šx�I����d��ᰀs�Y<��7����@!����з��vA���������gC�%̙�Ӷ���攰����������F����:�bS�ZM���ϡO��������ܣ����̞qxܿ��#��+��Ӭ���3�����������m
�eZ��r������̨K>�W�*��K#��������x��������⿐=���(%޸������N��������������涻�ɔ��ܼA(��ް�����!�,����������W?��[,	#��9K!g��9N$P7L;
"�"
2FD8Y��.:`iE*^-Ml%�&IR>J3AHVB�@STZhc1<'G�O]A55C0X4�O)V(cm2f�$=1:X�R���
�˚6�P�P��3j�h(;js/dtree/rtl_img/musicfolder.gif000064400000001171152200041010012704 0ustar00GIF89a�I����W������_`��s
��{���̙4��44g������~|�NN�ɖ1dd����������h�j��o�l˘3�n�녚n���*���׸@�q���ڿl�g�rƚccc�넻��������������ƿ������u��Ğq���ɠ!��%��zȕ0�P�p
�ok����uml00d���u����ƚ���������!�I,րI���@5>���@"���@0.�9@?�G�*<@3��DHHDDG7-,4�GD
ƸD@�'/�G�


�D2�E��A)A		AE:(!FݷD�A#EH�I�D��A�V�Ðo��|p�@@�
6�X�w`�2�I�|I"B�$I&HpT��K�%vh�`�B�00³�O
B���O��.
;js/dtree/rtl_img/line.gif000064400000000101152200041010011307 0ustar00GIF89a�������!�,�������Z�����]`H�$v";js/dtree/rtl_img/square.gif000064400000001125152200041010011667 0ustar00GIF89a��h+������^���ԣN���Ѕ�’��^��S�������ȲٰnʕG��I�ˮݴc�ťֶ���>����������l�C��{̙3�Y�f���ϙC��oѼ�ޭZӶ��=DŽ'�P��q���È6���տ�ґ%�Ƞ�����՝F�n���L��ũ����_������݋R�XާM��`ŕN�ć͹��ϳ��:ֽ��{��S�����kו3�Χߠ?�Ѭ��\��D��Z�kğa���۔,٘7ץS��R�O��f��r͙K�[��fӪs�fٺ����?ÎC֜J�t�֭!�G,��G��������9]"��d(+�B#(Y\#$9�RE[H#U[>><U,�.\X<�=  %SC�LX'Ka& II?��JHI-;0_̂.<N	I"3Z�G.4H#8#7
U�I4W�^j�bD�� b�h��C&��QdCE�F(X��Q�1�P�G(S�;js/dtree/rtl_img/question.gif000064400000002024152200041010012235 0ustar00GIF89a������������������������������Me���������������Ʒ������������/���������.\�����f�����_j��������������Ny���p�������*Ht�����������e��l���������ͽ�ɮ�қ��e�������|�ߔ�ף����s����p��^��z��7X�7Y����)F�]�ݽ����fv�]k�������蚥�Kh�����)U������Ů��7Eh������Ll�����k��]k��������鱶�x�\p��������c��nw����EBcu���Ŧ����>�8Y�����������퓸�����fp�d��Pq�������0_�����自�OX������������$=���������Bd����!��,�K	H���2ƐZ�`��Q�X��ϙ����b!�LP�x$%�����H9�)
��(�Ӏ9����-d�Q 0K�F�0D�S/zb��D��#^L!��N8X4	�@4rxp *F�tA�(�.�(���'����$Ύ>)��B�>R6xZb��V�i��(I�� 1 !	
H5���HӞG�tb�-�`���L�:	r`SdT���p���x.8�N0 ;js/dtree/rtl_img/index.html000064400000000054152200041010011675 0ustar00<html><body bgcolor="#FFFFFF"></body></html>js/dtree/rtl_img/base.gif000064400000001776152200041010011315 0ustar00GIF89a���������������������������������������������������������������������������������ȸ����¿����¾������������������|��|�����{��|�����{��������~�����r��������~��������o��o��n��n�����~��m�����m�����l��l��~�����k�����}��}�����|��i��������j��h��j�������~��i��j��i��~��d��f��h��}��d�����c��b��g��v��c��y��f��`��^��`��]�����_��t��_��\��Z��[��f��Y��\��[��d�~Zp���}Y�|X�|W�{X�yU�zW�xV�xS�wR�vS�vR�sK�sP�qJ�rR�pM�oH~nK�mG{mN~lEzlL|jCzhBtgJvgEyf@tfGk^Bk]?dX=_T>aQ1`P/\P6[O6^N.]M-[M2[K+ZJ*YI)XH(JE:GA5/)!�,�H��A	>tX�Ѓ��\��Hq�e4�±�/Ot�����>�(�bg��%q�l1Cg�/d�01�N�7j�-���R�	��Ŝ>PiAJ)ԅ
$�5j�ԂP2թ0aB��`�b�#1I�
RL��{����/�<E�s�
B��is��T<
Ȑ!E�5����
8�dɒ&M�R���AA�d!��#8@p����;js/dtree/rtl_img/join.gif000064400000000103152200041010011321 0ustar00GIF89a�������!�,�������Z�S<�H��e�Sz;js/dtree/rtl_img/cd.gif000064400000000357152200041010010763 0ustar00GIF89a�``a��������������������������达虙������!�,���g)ֈ��"�#(���	� ��0 ������Ԏ�!�ӑd��i1!4QbzH��f �@(\�P(L
���(i���"���HS	.
m[H2E`f,IV9,X�%.s(��w�mD+�sm5*+'m)���;js/dtree/rtl_img/imgfolder.gif000064400000001124152200041010012336 0ustar00GIF89a�UCNf��z��x���q�������i{�ű������D�R�����������M�����qϏ��������ꞯՕ�݅^*p�^�2��吝�����������ٝ۲��\�u�����汪���㷁������ԉ��������������쉣ؼ������������ɣ������Ե����Ƴ�Ե��������������Ӣ��q������������������������������������������������ծ�������!�h,����������((��7�Z4J�HDX;3�">>X<CBOZF�RKO2,f8�>cR
$.5��UR%L-IN�:>&?)Ta]�g>+Kce
'WTG<�"M6>�JZ0d�@# @b/S4I��"�P�(/�Y�%G�z�@��
�
!b$€�I�
E�l�B�ȓ(G;js/dtree/rtl_img/nolines_plus.gif000064400000000470152200041010013103 0ustar00GIF89a����x����������������������������������Ȼ���������̿������¸�����������ú�����ƾ����������!�,U@�pH,�Ȥr��� 8V����  W+�`
��1���u1�Q�DBN8
|C�BNQOSL�����EA;js/dtree/rtl_img/nolines_minus.gif000064400000000467152200041010013261 0ustar00GIF89a����x�����������������������¸������������������������������ú��������̿�����������ƾ��Ȼ������!�,T@�pH,�Ȥr��� 8V�G�@��VN&�@`c`"h��b�A$L�Y"
{C�BNQOSL�����EA;js/dtree/rtl_img/plus.gif000064400000000327152200041010011355 0ustar00GIF89a������������������������������������������������浵���������!�,T %��@�h���� ��C��m���S	C��,RLP
@�VN�1�$	��X
F�8DpbM��d��>��Q})!;js/dtree/rtl_img/minus.gif000064400000000323152200041010011521 0ustar00GIF89a������������������������������������������������浵���������!�,P %��@�h���� �@�A��=�`O`$H�bjR
�T�X����HTo�b�`XO�C�.,ΤMf{�S���ߧB;js/dtree/rtl_img/globe.gif000064400000002107152200041010011460 0ustar00GIF89a����rB���<��=�~��>�c����6�}���i�7�������bl}3K~G�n)M�:x������LXo��dr�it�g2u�]�����_iy-��E�R~|ቢ����Hc���X�U��u��E��	9����>�L����)f����;��)S�x��
����������%L�J�%$�]b����j�g���x������m�������m�>���H�Z�-V���a�䠃��r�q���@q��vx��G������{k]n
��$~�l���*�P���[ev~+5S�}�~+Y�2Y������w��O��7�'��m'Kd�7gm��B`�j���`��"��>����h�C������&�������ہ��;�u��ERo���\�N��P����S]p=�$��c<gco����_������b���t9������z��Y��װ]N6V�����)C�p���_����J��t:>c�[��hD`��������e�W��F�2HxYź����똩���HUr���&h��*����Q�S|B���_j{�ġ\�¹����`��S�p}���Q�����^t�[�1b�[��fb��E�ߛ���q��|��m��-F��ި4_�v�W�ݻ���!��,��	H�U5l���!8���l�&���IR�S�~Kc�V(oK:�r��.@�Ū���DM�ȹrD�lz(�2-N����AS˜�5�:��0#�)��A��	ƨ��#�Ajz�X���2����e�-�xP��ҀV��@"�Cv��j��� �=�SA�cX,{�#�1�3+�@J{Dhs`$&��$���Y�8�hY�3��Պt��.n(XA��-C�92��FP4b�Д$��k̍@;|�H��\���Y[T�ȿ����;js/dtree/rtl_img/page.gif000064400000001076152200041010011310 0ustar00GIF89a�jz����3�������3������������ᔈ�{���F8���R�s����������譴�����3�������±���H	����ŤΰŢ�������x����y�������̺��ȴ����?�C�����������������м��B�Z�������������������i������N��������������������.����������囅�S�������!�,����������L'�99BO�M DWV,2�0;;G1R!�X:-T�Y%+3P8�=�=@K#�[I�<)N@#�/=I<</F�C	I/�)KJ@*6�U?�JNNK<
�&/�A(E$�j�Pr��3	�`���Hl�H�"�@;js/dtree/rtl_img/archive.gif000064400000001125152200041010012010 0ustar00GIF89a�TVp�����x��{�צ����ę����ܰ>�~}��됰����c|ƾ����Ǵ����n��������z�����ל��ݍ����᧺�¸����{�����銢՞����������퀢����������㈪���홙���������̃���������ݣ��������飾���������i��������������놠��ֽ�����������������������}����玭�����ޜ�ޡ�퉍������������!�&,��&��������2E��B*CQ]9�H!\\QW6�%R==56S)�9$,WR";.��-+;,3ZI��aV:7NNK�M	[1
NT�/J(@;
U$�( SM$�X�DF
Vx����<(0�a�'8z��@�/'4AJ�
28�x��H(S"
;js/dtree/rtl_img/trash.gif000064400000001100152200041010011501 0ustar00GIF89a�;�����s�����Ng����c�ݗ��Di�3[�^��Gh��������޽��)Q�x�������bq�������������Ot�:b���稱�F�������z����Bf�~��n��YuͿ���.T�t����ߦ�§�����D�Gjܽ�����s��8X�Lp؜��%L�Bcֆ��������X}�)Q���Rm����Fe�������En�:c�C������򥥭e�����<�t��Ip�Pr�!�#,����������('$��3P/%@�(*?7%	�'1K7&>M�IF=0GN�L9*M>
>8�+FF		OE5 �B6=&4"�<;!-AC݇<.2,##DD�
2<�
:�DCC`Ѐd$o.��D^$Թh��C�;js/dtree/rtl_img/folderopen.gif000064400000001157152200041010012531 0ustar00GIF89a�Wm.۽~ťd��z�׽��6��ȱ�K���ԗ��u�����֢����E�oI�ǝ������ɭx��<��^���ҹ����כ|hA���ַx��W��@�Ε�޵���Ѳs����������I�Š�˄�����S�������۟���ɫj��u��T��Y�vQ�Ϫ���Ʋ��Å����������ȋ��_��=�͑غ{�Βca+���ˬlβx���������}�ٮ�ٝ����zT��S�Ħħk�����E����КӴu���ư����`n+�ċ�sMԾ���B��������ɬq�����hؼ��}X!�d,̀d������8E'=;J!X�&LVM�V�	�	�	%^00CE�C�\gY�>'�>�fO�H<�:�B6�	B=�)�G]�CW��)�cYM>Fʅ)#�RеU�N89FF4
�&�8"?,* #5�`S7�dpA�–iP�
bЀDb�`�����
IX�$J-� b�FM�"�qȇ/A�t��Ђ<^,X�BˍC@�;js/dtree/rtl_img/plusbottom.gif000064400000000324152200041010012577 0ustar00GIF89a���������������������������������������������浵������������!�,Q %��@�h���� ��B��m���SC��,RLP
 �VN`�x$�-�`�E�8@p�bM��d��~��_!;js/dtree/rtl_img/joinbottom.gif000064400000000100152200041010012543 0ustar00GIF89a�������!�,�������Z�S<��H��9;js/dtree/rtl_img/empty.gif000064400000000076152200041010011531 0ustar00GIF89a����������!�,��������ڋ�ޜ;js/dtree/rtl_img/folder.gif000064400000001146152200041010011645 0ustar00GIF89a�q]5�Åˬk��ȼ�Y��z��ḫ��ҕ�����Lҹ����ư���j�sM�Š��Ӵu����ٝ�׽�������̦���zg@�Ε��e�כ�wBɬq������������غ{�ȋ�����Ѳs�ǝ�vQ��߷�u����К�ٮ��R��滝`�kJ���Ʋ��۟�ԗ�������޵�zHvb:�zTؼ��Ħ�ċ�����Yַxťdβx|hA۽~޽����ħk�˫��ѝ�����ɮx����}XԾ�!�4,À4������19-:�&/.�.�I�)7�7@R661��@Q
�%�%�>=�'��)�$*�$9�G�E���C�3
%L�(�JF
�DՃP4+5�F,�&�D�2(�NAK2w��;	�XH` D�"�02�����Y(p@��KF4�$d!�$��C8;js/dtree/rtl_img/minusbottom.gif000064400000000321152200041010012744 0ustar00GIF89a������������������������������������������������浵���������!�,N %��A�h���� �@�A��=�`Oh,H�bjR�T�X��$�XTob�hXO�C�.(ΤMf{���;js/dtree/dtree_rtl.css000064400000001520152200041010010740 0ustar00/*--------------------------------------------------|
| dTree 2.05 | www.destroydrop.com/javascript/tree/ |
|---------------------------------------------------|
| Copyright (c) 2002-2003 Geir Landr�               |
|--------------------------------------------------*/

.dtree {
	font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
	font-size: 11px;
	color: #666;
	white-space: nowrap;
	text-align: right;
	/*background-image: url(../../../images/M_images/tt_bg.jpg);*/
}
.dtree img {
	border: 0px;
	vertical-align: middle;
}
.dtree a {
	color: #333;
	text-decoration: none;
}
.dtree a.node, .dtree a.nodeSel {
	white-space: nowrap;
	padding: 1px 2px 1px 2px;
}
.dtree a.node:hover, .dtree a.nodeSel:hover {
	color: #333;
	text-decoration: underline;
}
.dtree a.nodeSel {
	background-color: #c0d2ec;
}
.dtree .clip {
	overflow: hidden;
}js/tabs/tabpane_mini.js000064400000022770152200041010011066 0ustar00/*----------------------------------------------------------------------------\
|                               Tab Pane 1.02                                 |
|-----------------------------------------------------------------------------|
|                         Created by Erik Arvidsson                           |
|                  (http://webfx.eae.net/contact.html#erik)                   |
|                      For WebFX (http://webfx.eae.net/)                      |
|-----------------------------------------------------------------------------|
|                  Copyright (c) 1998 - 2003 Erik Arvidsson                   |
|-----------------------------------------------------------------------------|
| This software is provided "as is", without warranty of any kind, express or |
| implied, including  but not limited  to the warranties of  merchantability, |
| fitness for a particular purpose and noninfringement. In no event shall the |
| authors or  copyright  holders be  liable for any claim,  damages or  other |
| liability, whether  in an  action of  contract, tort  or otherwise, arising |
| from,  out of  or in  connection with  the software or  the  use  or  other |
| dealings in the software.                                                   |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| This  software is  available under the  three different licenses  mentioned |
| below.  To use this software you must chose, and qualify, for one of those. |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| The WebFX Non-Commercial License          http://webfx.eae.net/license.html |
| Permits  anyone the right to use the  software in a  non-commercial context |
| free of charge.                                                             |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| The WebFX Commercial license           http://webfx.eae.net/commercial.html |
| Permits the  license holder the right to use  the software in a  commercial |
| context. Such license must be specifically obtained, however it's valid for |
| any number of  implementations of the licensed software.                    |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| GPL - The GNU General Public License    http://www.gnu.org/licenses/gpl.txt |
| Permits anyone the right to use and modify the software without limitations |
| as long as proper  credits are given  and the original  and modified source |
| code are included. Requires  that the final product, software derivate from |
| the original  source or any  software  utilizing a GPL  component, such  as |
| this, is also licensed under the GPL license.                               |
|-----------------------------------------------------------------------------|
| 2002-01-?? | First working version                                          |
| 2002-02-17 | Cleaned up for 1.0 public version                              |
| 2003-02-18 | Changed from javascript uri for anchors to return false        |
| 2003-03-03 | Added dispose methods to release IE memory                     |
|-----------------------------------------------------------------------------|
| Dependencies: *.css           a css file to define the layout               |
|-----------------------------------------------------------------------------|
| Created 2002-01-?? | All changes are in the log above. | Updated 2003-03-03 |
\----------------------------------------------------------------------------*/

function hasSupport() { if (typeof hasSupport.support != "undefined")
return hasSupport.support; var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent ); hasSupport.support = ( typeof document.implementation != "undefined" &&
document.implementation.hasFeature( "html", "1.0" ) || ie55 )
if ( ie55 ) { document._getElementsByTagName = document.getElementsByTagName; document.getElementsByTagName = function ( sTagName ) { if ( sTagName == "*" )
return document.all; else
return document._getElementsByTagName( sTagName );};}
return hasSupport.support;}
function WebFXTabPane( el, bUseCookie ) { if ( !hasSupport() || el == null ) return; this.element = el; this.element.tabPane = this; this.pages = []; this.selectedIndex = null; this.useCookie = bUseCookie != null ? bUseCookie : true; this.element.className = this.classNameTag + " " + this.element.className; this.tabRow = document.createElement( "div" ); this.tabRow.className = "tab-row"; el.insertBefore( this.tabRow, el.firstChild ); var tabIndex = 0; if ( this.useCookie ) { tabIndex = Number( WebFXTabPane.getCookie( "webfxtab_" + this.element.id ) ); if ( isNaN( tabIndex ) )
tabIndex = 0;}
this.selectedIndex = tabIndex; var cs = el.childNodes; var n; for (var i = 0; i < cs.length; i++) { if (cs[i].nodeType == 1 && cs[i].className == "tab-page") { this.addTabPage( cs[i] );}
}
}
WebFXTabPane.prototype.classNameTag = "dynamic-tab-pane-control"; WebFXTabPane.prototype.setSelectedIndex = function ( n ) { if (this.selectedIndex != n) { if (this.selectedIndex != null && this.pages[ this.selectedIndex ] != null )
this.pages[ this.selectedIndex ].hide(); this.selectedIndex = n; this.pages[ this.selectedIndex ].show(); if ( this.useCookie )
WebFXTabPane.setCookie( "webfxtab_" + this.element.id, n );}
}; WebFXTabPane.prototype.getSelectedIndex = function () { return this.selectedIndex;}; WebFXTabPane.prototype.addTabPage = function ( oElement ) { if ( !hasSupport() ) return; if ( oElement.tabPage == this )
return oElement.tabPage; var n = this.pages.length; var tp = this.pages[n] = new WebFXTabPage( oElement, this, n ); tp.tabPane = this; this.tabRow.appendChild( tp.tab ); if ( n == this.selectedIndex )
tp.show(); else
tp.hide(); return tp;}; WebFXTabPane.prototype.dispose = function () { this.element.tabPane = null; this.element = null; this.tabRow = null; for (var i = 0; i < this.pages.length; i++) { this.pages[i].dispose(); this.pages[i] = null;}
this.pages = null;}; WebFXTabPane.setCookie = function ( sName, sValue, nDays ) { var expires = ""; if ( nDays ) { var d = new Date(); d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 ); expires = "; expires=" + d.toGMTString();}
document.cookie = sName + "=" + sValue + expires + "; path=/";}; WebFXTabPane.getCookie = function (sName) { var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" ); var res = re.exec( document.cookie ); return res != null ? res[3] : null;}; WebFXTabPane.removeCookie = function ( name ) { setCookie( name, "", -1 );}; function WebFXTabPage( el, tabPane, nIndex ) { if ( !hasSupport() || el == null ) return; this.element = el; this.element.tabPage = this; this.index = nIndex; var cs = el.childNodes; for (var i = 0; i < cs.length; i++) { if (cs[i].nodeType == 1 && cs[i].className == "tab") { this.tab = cs[i]; break;}
}
var a = document.createElement( "A" ); this.aElement = a; a.href = "#"; a.onclick = function () { return false;}; while ( this.tab.hasChildNodes() )
a.appendChild( this.tab.firstChild ); this.tab.appendChild( a ); var oThis = this; this.tab.onclick = function () { oThis.select();}; this.tab.onmouseover = function () { WebFXTabPage.tabOver( oThis );}; this.tab.onmouseout = function () { WebFXTabPage.tabOut( oThis );};}
WebFXTabPage.prototype.show = function () { var el = this.tab; var s = el.className + " selected"; s = s.replace(/ +/g, " "); el.className = s; this.element.style.display = "block";}; WebFXTabPage.prototype.hide = function () { var el = this.tab; var s = el.className; s = s.replace(/ selected/g, ""); el.className = s; this.element.style.display = "none";}; WebFXTabPage.prototype.select = function () { this.tabPane.setSelectedIndex( this.index );}; WebFXTabPage.prototype.dispose = function () { this.aElement.onclick = null; this.aElement = null; this.element.tabPage = null; this.tab.onclick = null; this.tab.onmouseover = null; this.tab.onmouseout = null; this.tab = null; this.tabPane = null; this.element = null;}; WebFXTabPage.tabOver = function ( tabpage ) { var el = tabpage.tab; var s = el.className + " hover"; s = s.replace(/ +/g, " "); el.className = s;}; WebFXTabPage.tabOut = function ( tabpage ) { var el = tabpage.tab; var s = el.className; s = s.replace(/ hover/g, ""); el.className = s;}; function setupAllTabs() { if ( !hasSupport() ) return; var all = document.getElementsByTagName( "*" ); var l = all.length; var tabPaneRe = /tab\-pane/; var tabPageRe = /tab\-page/; var cn, el; var parentTabPane; for ( var i = 0; i < l; i++ ) { el = all[i]
cn = el.className; if ( cn == "" ) continue; if ( tabPaneRe.test( cn ) && !el.tabPane )
new WebFXTabPane( el ); else if ( tabPageRe.test( cn ) && !el.tabPage &&
tabPaneRe.test( el.parentNode.className ) ) { el.parentNode.tabPane.addTabPage( el );}
}
}
function disposeAllTabs() { if ( !hasSupport() ) return; var all = document.getElementsByTagName( "*" ); var l = all.length; var tabPaneRe = /tab\-pane/; var cn, el; var tabPanes = []; for ( var i = 0; i < l; i++ ) { el = all[i]
cn = el.className; if ( cn == "" ) continue; if ( tabPaneRe.test( cn ) && el.tabPane )
tabPanes[tabPanes.length] = el.tabPane;}
for (var i = tabPanes.length - 1; i >= 0; i--) { tabPanes[i].dispose(); tabPanes[i] = null;}
}
if ( typeof window.addEventListener != "undefined" )
window.addEventListener( "load", setupAllTabs, false ); else if ( typeof window.attachEvent != "undefined" ) { window.attachEvent( "onload", setupAllTabs ); window.attachEvent( "onunload", disposeAllTabs );}
else { if ( window.onload != null ) { var oldOnload = window.onload; window.onload = function ( e ) { oldOnload( e ); setupAllTabs();};}
else
window.onload = setupAllTabs;}js/tabs/tabpane.css000064400000003667152200041010010232 0ustar00.dynamic-tab-pane-control.tab-pane {
	position:	relative;
	/*width:		100%;		 width needed weird IE bug */
	/*margin-right:	-2px;	 to make room for the shadow */
}
.dynamic-tab-pane-control .tab-row .tab {
	height: 16px;
	background: url(tab_r.png) top right no-repeat;
	position: relative;
	top: 0;
	display: inline;
	float: left;
	overflow: hidden;
	cursor: pointer;
	margin: 1px -1px 1px 2px;
	padding: 0px 0px 0px 0px;
	border: 0;
	z-index: 1;
	font: 11px Tahoma, Helvetica, sans-serif;
	white-space: nowrap;
	text-align: center;
}

.dynamic-tab-pane-control .tab-row .tab span {
	display: inline;
	float: left;
	height: 16px;
	padding: 2px 10px;
	background: url(tab_l.png) top left no-repeat;
}

.dynamic-tab-pane-control .tab-row .tab.selected {
	height: 18px !important;
	background:	url(tab_active_r.png) top right no-repeat !important;
	border-bottom-width:	0;
	z-index: 3;
	padding:	0px 0px 0px 0px;
	margin: 1px -3px -3px 0px;
	top: -2px;
	font: 11px Tahoma, Helvetica, sans-serif;
}

.dynamic-tab-pane-control .tab-row .tab.selected span {
	background: url(tab_active_l.png) top left no-repeat !important;
}

.dynamic-tab-pane-control .tab-row .tab a {
	font:	11px Tahoma, Helvetica, sans-serif;
	color: #333;
	text-decoration: none;
	cursor: pointer;
}
.dynamic-tab-pane-control .tab-row .tab.hover {
	font:	11px Tahoma, Helvetica, sans-serif;
	height: 16px;
	background: url(tab_hover_r.png) top right no-repeat;
}

.dynamic-tab-pane-control .tab-row .tab.hover span {
	background: url(tab_hover_l.png) top left no-repeat;
}

.dynamic-tab-pane-control .tab-page {

	border: 1px solid rgb( 145, 155, 156 );
	background: rgb( 252, 252, 254 );
	z-index: 2;
	position: relative;
	top: -2px;
	font: 11px Tahoma, Helvetica, sans-serif;
	color: #333;

	/*244, 243, 238*/
	/* 145, 155, 156*/
	padding:	5px;
	width: 97%;  /* stupid stupid stupid IE!!! */
	float: left;

}
.dynamic-tab-pane-control .tab-row {
	z-index: 1;
	white-space: nowrap;
}

h2.tab { width: auto; }js/tabs/index.html000064400000000054152200041010010066 0ustar00<html><body bgcolor="#FFFFFF"></body></html>js/tabs/tab_hover_l.png000064400000000411152200041010011060 0ustar00�PNG


IHDR�)sBIT��O�'PLTE��������������������������띱���b��vm�.�}،	pHYs
�
�B�4�tEXtSoftwareMacromedia Fireworks 8�h�xNIDAT�c�:s��qDl`�IBB���&@�)..�A����)�@bjXZô4�^^�0����aF��z-�S�IEND�B`�js/tabs/tab_l.png000064400000000424152200041010007661 0ustar00�PNG


IHDR�)sBIT��O�-PLTE�����������������������������������϶�ͧ�����x���	pHYs��~�tEXtSoftwareMacromedia Fireworks 8�h�xSIDAT�c��Þ�����C%%����O\\���0<O�€Djjó����i@�yyy�3f=��h`x�A<�4�)�h�IEND�B`�js/tabs/tabpane_rtl.css000064400000003640152200041010011102 0ustar00.dynamic-tab-pane-control.tab-pane {
	position:	relative;
	/*width:		100%;		 width needed weird IE bug */
	/*margin-right:	-2px;	 to make room for the shadow */
}
.dynamic-tab-pane-control .tab-row .tab {
	height: 16px;
	background: url(tab_r.png) top right no-repeat;
	position: relative;
	top: 0;
	display: inline;
	float: right;
	overflow: hidden;
	cursor: pointer;
	margin: 1px 2px 1px -1px;
	padding: 0px 0px 0px 0px;
	border: 0;
	z-index: 1;
	font: 11px Tahoma, Helvetica, sans-serif;
	white-space: nowrap;
	text-align: center;
}

.dynamic-tab-pane-control .tab-row .tab span {
	display: inline;
	float: left;
	height: 16px;
	padding: 2px 10px;
	background: url(tab_l.png) top left no-repeat;
}

.dynamic-tab-pane-control .tab-row .tab.selected {
	height: 18px !important;
	background:	url(tab_active_r.png) top right no-repeat !important;
	border-bottom-width:	0;
	z-index: 3;
	padding:	0px 0px 0px 0px;
	margin: 1px 0px -3px -3px;
	top: -2px;
	font: 11px Tahoma, Helvetica, sans-serif;
}

.dynamic-tab-pane-control .tab-row .tab.selected span {
	background: url(tab_active_l.png) top left no-repeat !important;
}

.dynamic-tab-pane-control .tab-row .tab a {
	font:	11px Tahoma, Helvetica, sans-serif;
	color: #333;
	text-decoration: none;
	cursor: pointer;
}
.dynamic-tab-pane-control .tab-row .tab.hover {
	font:	11px Tahoma, Helvetica, sans-serif;
	height: 16px;
	background: url(tab_hover_r.png) top right no-repeat;
}

.dynamic-tab-pane-control .tab-row .tab.hover span {
	background: url(tab_hover_l.png) top left no-repeat;
}

.dynamic-tab-pane-control .tab-page {

	border: 1px solid rgb( 145, 155, 156 );
	background: rgb( 252, 252, 254 );
	z-index: 2;
	position: relative;
	top: -2px;
	font: 11px Tahoma, Helvetica, sans-serif;
	color: #333;

	/*244, 243, 238*/
	/* 145, 155, 156*/
	padding:	5px;
	width: 97%;  /* stupid stupid stupid IE!!! */
	float: right;

}
.dynamic-tab-pane-control .tab-row {
	z-index: 1;
	white-space: nowrap;
}js/tabs/tab_active_r.png000064400000000376152200041010011230 0ustar00�PNG


IHDR��."sBIT��O�PLTE��������^���|�]m�.)Ψ		pHYs
�
�B�4�tEXtSoftwareMacromedia Fireworks 8�h�xtEXtCreation Time11/10/059
1u6IDATH�c@��0��
��	X��>j�����>j�����><l�)*�4���IEND�B`�js/tabs/tab_r.png000064400000000534152200041010007671 0ustar00�PNG


IHDR��."sBIT��O�0PLTE��������������������������������������϶�ͧ�������v	pHYs��~�tEXtSoftwareMacromedia Fireworks 8�h�xtEXtCreation Time11/10/059
1uvIDATH�c�?�����;i��:�����3�[�:p b`m�ϐ����$*�2�3���,�����d
��@���h�;t
��3��������N_�A@��,�|IEND�B`�js/tabs/tab_hover_r.png000064400000000520152200041010011067 0ustar00�PNG


IHDR��."sBIT��O�-PLTE��������������������������������ߝ����b��vm�.���	pHYs
�
�B�4�tEXtSoftwareMacromedia Fireworks 8�h�xtEXtCreation Time11/10/059
1umIDATH�cx7���@�f@m�0���AP��WI$�fP8�:��x���n���e��쁴�c5C���=b5C��́��|�@�j����j{ר���>�l4{8x ��IEND�B`�js/tabs/tabpane.js000064400000026226152200041010010052 0ustar00/*----------------------------------------------------------------------------\
|                               Tab Pane 1.02                                 |
|-----------------------------------------------------------------------------|
|                         Created by Erik Arvidsson                           |
|                  (http://webfx.eae.net/contact.html#erik)                   |
|                      For WebFX (http://webfx.eae.net/)                      |
|-----------------------------------------------------------------------------|
|                  Copyright (c) 1998 - 2003 Erik Arvidsson                   |
|-----------------------------------------------------------------------------|
| This software is provided "as is", without warranty of any kind, express or |
| implied, including  but not limited  to the warranties of  merchantability, |
| fitness for a particular purpose and noninfringement. In no event shall the |
| authors or  copyright  holders be  liable for any claim,  damages or  other |
| liability, whether  in an  action of  contract, tort  or otherwise, arising |
| from,  out of  or in  connection with  the software or  the  use  or  other |
| dealings in the software.                                                   |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| This  software is  available under the  three different licenses  mentioned |
| below.  To use this software you must chose, and qualify, for one of those. |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| The WebFX Non-Commercial License          http://webfx.eae.net/license.html |
| Permits  anyone the right to use the  software in a  non-commercial context |
| free of charge.                                                             |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| The WebFX Commercial license           http://webfx.eae.net/commercial.html |
| Permits the  license holder the right to use  the software in a  commercial |
| context. Such license must be specifically obtained, however it's valid for |
| any number of  implementations of the licensed software.                    |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| GPL - The GNU General Public License    http://www.gnu.org/licenses/gpl.txt |
| Permits anyone the right to use and modify the software without limitations |
| as long as proper  credits are given  and the original  and modified source |
| code are included. Requires  that the final product, software derivate from |
| the original  source or any  software  utilizing a GPL  component, such  as |
| this, is also licensed under the GPL license.                               |
|-----------------------------------------------------------------------------|
| 2002-01-?? | First working version                                          |
| 2002-02-17 | Cleaned up for 1.0 public version                              |
| 2003-02-18 | Changed from javascript uri for anchors to return false        |
| 2003-03-03 | Added dispose methods to release IE memory                     |
|-----------------------------------------------------------------------------|
| Dependencies: *.css           a css file to define the layout               |
|-----------------------------------------------------------------------------|
| Created 2002-01-?? | All changes are in the log above. | Updated 2003-03-03 |
\----------------------------------------------------------------------------*/

// This function is used to define if the browser supports the needed
// features
function hasSupport() {

	if (typeof hasSupport.support != "undefined")
		return hasSupport.support;

	var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent );

	hasSupport.support = ( typeof document.implementation != "undefined" &&
			document.implementation.hasFeature( "html", "1.0" ) || ie55 )

	// IE55 has a serious DOM1 bug... Patch it!
	if ( ie55 ) {
		document._getElementsByTagName = document.getElementsByTagName;
		document.getElementsByTagName = function ( sTagName ) {
			if ( sTagName == "*" )
				return document.all;
			else
				return document._getElementsByTagName( sTagName );
		};
	}

	return hasSupport.support;
}

///////////////////////////////////////////////////////////////////////////////////
// The constructor for tab panes
//
// el : HTMLElement		The html element used to represent the tab pane
// bUseCookie : Boolean	Optional. Default is true. Used to determine whether to us
//						persistance using cookies or not
//
function WebFXTabPane( el, bUseCookie ) {
	if ( !hasSupport() || el == null ) return;

	this.element = el;
	this.element.tabPane = this;
	this.pages = [];
	this.selectedIndex = null;
	this.useCookie = bUseCookie != null ? bUseCookie : true;

	// add class name tag to class name
	this.element.className = this.classNameTag + " " + this.element.className;

	// add tab row
	this.tabRow = document.createElement( "div" );
	this.tabRow.className = "tab-row";
	el.insertBefore( this.tabRow, el.firstChild );

	var tabIndex = 0;
	if ( this.useCookie ) {
		tabIndex = Number( WebFXTabPane.getCookie( "webfxtab_" + this.element.id ) );
		if ( isNaN( tabIndex ) )
			tabIndex = 0;
	}
	this.selectedIndex = tabIndex;

	// loop through child nodes and add them
	var cs = el.childNodes;
	var n;
	for (var i = 0; i < cs.length; i++) {
		if (cs[i].nodeType == 1 && cs[i].className == "tab-page") {
			this.addTabPage( cs[i] );
		}
	}
}

WebFXTabPane.prototype.classNameTag = "dynamic-tab-pane-control";

WebFXTabPane.prototype.setSelectedIndex = function ( n ) {
	if (this.selectedIndex != n) {
		if (this.selectedIndex != null && this.pages[ this.selectedIndex ] != null )
			this.pages[ this.selectedIndex ].hide();
		this.selectedIndex = n;
		this.pages[ this.selectedIndex ].show();

		if ( this.useCookie )
			WebFXTabPane.setCookie( "webfxtab_" + this.element.id, n );	// session cookie
	}
};

WebFXTabPane.prototype.getSelectedIndex = function () {
	return this.selectedIndex;
};

WebFXTabPane.prototype.addTabPage = function ( oElement ) {
	if ( !hasSupport() ) return;

	if ( oElement.tabPage == this )	// already added
		return oElement.tabPage;

	var n = this.pages.length;
	var tp = this.pages[n] = new WebFXTabPage( oElement, this, n );
	tp.tabPane = this;

	// move the tab out of the box
	this.tabRow.appendChild( tp.tab );

	if ( n == this.selectedIndex )
		tp.show();
	else
		tp.hide();

	return tp;
};

WebFXTabPane.prototype.dispose = function () {
	this.element.tabPane = null;
	this.element = null;
	this.tabRow = null;

	for (var i = 0; i < this.pages.length; i++) {
		this.pages[i].dispose();
		this.pages[i] = null;
	}
	this.pages = null;
};



// Cookie handling
WebFXTabPane.setCookie = function ( sName, sValue, nDays ) {
	var expires = "";
	if ( nDays ) {
		var d = new Date();
		d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 );
		expires = "; expires=" + d.toGMTString();
	}

	document.cookie = sName + "=" + sValue + expires + "; path=/";
};

WebFXTabPane.getCookie = function (sName) {
	var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" );
	var res = re.exec( document.cookie );
	return res != null ? res[3] : null;
};

WebFXTabPane.removeCookie = function ( name ) {
	setCookie( name, "", -1 );
};








///////////////////////////////////////////////////////////////////////////////////
// The constructor for tab pages. This one should not be used.
// Use WebFXTabPage.addTabPage instead
//
// el : HTMLElement			The html element used to represent the tab pane
// tabPane : WebFXTabPane	The parent tab pane
// nindex :	Number			The index of the page in the parent pane page array
//
function WebFXTabPage( el, tabPane, nIndex ) {
	if ( !hasSupport() || el == null ) return;

	this.element = el;
	this.element.tabPage = this;
	this.index = nIndex;

	var cs = el.childNodes;
	for (var i = 0; i < cs.length; i++) {
		if (cs[i].nodeType == 1 && cs[i].className == "tab") {
			this.tab = cs[i];
			break;
		}
	}

	// insert a tag around content to support keyboard navigation


	var a = document.createElement( "A" );
	this.aElement = a;
	a.href = "#";
	a.onclick = function () { return false; };
	while ( this.tab.hasChildNodes() )
		a.appendChild( this.tab.firstChild );
	this.tab.appendChild( a );


	// hook up events, using DOM0
	var oThis = this;
	this.tab.onclick = function () { oThis.select(); };
	this.tab.onmouseover = function () { WebFXTabPage.tabOver( oThis ); };
	this.tab.onmouseout = function () { WebFXTabPage.tabOut( oThis ); };
}

WebFXTabPage.prototype.show = function () {
	var el = this.tab;
	var s = el.className + " selected";
	s = s.replace(/ +/g, " ");
	el.className = s;

	this.element.style.display = "block";
};

WebFXTabPage.prototype.hide = function () {
	var el = this.tab;
	var s = el.className;
	s = s.replace(/ selected/g, "");
	el.className = s;

	this.element.style.display = "none";
};

WebFXTabPage.prototype.select = function () {
	this.tabPane.setSelectedIndex( this.index );
};

WebFXTabPage.prototype.dispose = function () {
	this.aElement.onclick = null;
	this.aElement = null;
	this.element.tabPage = null;
	this.tab.onclick = null;
	this.tab.onmouseover = null;
	this.tab.onmouseout = null;
	this.tab = null;
	this.tabPane = null;
	this.element = null;
};

WebFXTabPage.tabOver = function ( tabpage ) {
	var el = tabpage.tab;
	var s = el.className + " hover";
	s = s.replace(/ +/g, " ");
	el.className = s;
};

WebFXTabPage.tabOut = function ( tabpage ) {
	var el = tabpage.tab;
	var s = el.className;
	s = s.replace(/ hover/g, "");
	el.className = s;
};


// This function initializes all uninitialized tab panes and tab pages
function setupAllTabs() {
	if ( !hasSupport() ) return;

	var all = document.getElementsByTagName( "*" );
	var l = all.length;
	var tabPaneRe = /tab\-pane/;
	var tabPageRe = /tab\-page/;
	var cn, el;
	var parentTabPane;

	for ( var i = 0; i < l; i++ ) {
		el = all[i]
		cn = el.className;

		// no className
		if ( cn == "" ) continue;

		// uninitiated tab pane
		if ( tabPaneRe.test( cn ) && !el.tabPane )
			new WebFXTabPane( el );

		// unitiated tab page wit a valid tab pane parent
		else if ( tabPageRe.test( cn ) && !el.tabPage &&
					tabPaneRe.test( el.parentNode.className ) ) {
			el.parentNode.tabPane.addTabPage( el );
		}
	}
}

function disposeAllTabs() {
	if ( !hasSupport() ) return;

	var all = document.getElementsByTagName( "*" );
	var l = all.length;
	var tabPaneRe = /tab\-pane/;
	var cn, el;
	var tabPanes = [];

	for ( var i = 0; i < l; i++ ) {
		el = all[i]
		cn = el.className;

		// no className
		if ( cn == "" ) continue;

		// tab pane
		if ( tabPaneRe.test( cn ) && el.tabPane )
			tabPanes[tabPanes.length] = el.tabPane;
	}

	for (var i = tabPanes.length - 1; i >= 0; i--) {
		tabPanes[i].dispose();
		tabPanes[i] = null;
	}
}


// initialization hook up

// DOM2
if ( typeof window.addEventListener != "undefined" )
	window.addEventListener( "load", setupAllTabs, false );

// IE
else if ( typeof window.attachEvent != "undefined" ) {
	window.attachEvent( "onload", setupAllTabs );
	window.attachEvent( "onunload", disposeAllTabs );
}

else {
	if ( window.onload != null ) {
		var oldOnload = window.onload;
		window.onload = function ( e ) {
			oldOnload( e );
			setupAllTabs();
		};
	}
	else
		window.onload = setupAllTabs;
}js/tabs/tab_active_l.png000064400000000303152200041010011210 0ustar00�PNG


IHDR�)sBIT��O�PLTE��������^���|�]m�.)Ψ		pHYs
�
�B�4�tEXtSoftwareMacromedia Fireworks 8�h�xIDAT�c`


`P� �AY/�g�%IEND�B`�js/JSCookMenu.js000064400000072077152200041010007471 0ustar00/*
	JSCookMenu v1.4.3.  (c) Copyright 2002-2005 by Heng Yuan

	Permission is hereby granted, free of charge, to any person obtaining a
	copy of this software and associated documentation files (the "Software"),
	to deal in the Software without restriction, including without limitation
	the rights to use, copy, modify, merge, publish, distribute, sublicense,
	and/or sell copies of the Software, and to permit persons to whom the
	Software is furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included
	in all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
	OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	ITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
	FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
	DEALINGS IN THE SOFTWARE.
*/

// Globals
var _cmIDCount = 0;
var _cmIDName = 'cmSubMenuID';		// for creating submenu id

var _cmTimeOut = null;			// how long the menu would stay
var _cmCurrentItem = null;		// the current menu item being selected;

var _cmNoAction = new Object ();	// indicate that the item cannot be hovered.
var _cmNoClick = new Object ();		// similar to _cmNoAction but does not respond to mouseup/mousedown events
var _cmSplit = new Object ();		// indicate that the item is a menu split

var _cmItemList = new Array ();		// a simple list of items

// default node properties
var _cmNodeProperties =
{
  	// main menu display attributes
  	//
  	// Note.  When the menu bar is horizontal,
  	// mainFolderLeft and mainFolderRight are
  	// put in <span></span>.  When the menu
  	// bar is vertical, they would be put in
  	// a separate TD cell.

  	// HTML code to the left of the folder item
  	mainFolderLeft: '',
  	// HTML code to the right of the folder item
  	mainFolderRight: '',
	// HTML code to the left of the regular item
	mainItemLeft: '',
	// HTML code to the right of the regular item
	mainItemRight: '',

	// sub menu display attributes

	// HTML code to the left of the folder item
	folderLeft: '',
	// HTML code to the right of the folder item
	folderRight: '',
	// HTML code to the left of the regular item
	itemLeft: '',
	// HTML code to the right of the regular item
	itemRight: '',
	// cell spacing for main menu
	mainSpacing: 0,
	// cell spacing for sub menus
	subSpacing: 0,
	// auto disappear time for submenus in milli-seconds
	delay: 500,

	// act on click to open sub menu
	// not yet implemented
	// 0 : use default behavior
	// 1 : hover open in all cases
	// 2 : click on main, hover on sub
	// 3 : click open in all cases
	clickOpen: 1
};

//////////////////////////////////////////////////////////////////////
//
// Drawing Functions and Utility Functions
//
//////////////////////////////////////////////////////////////////////

//
// produce a new unique id
//
function cmNewID ()
{
	return _cmIDName + (++_cmIDCount);
}

//
// return the property string for the menu item
//
function cmActionItem (item, prefix, isMain, idSub, orient, nodeProperties)
{
	var clickOpen = _cmNodeProperties.clickOpen;
	if (nodeProperties.clickOpen)
		clickOpen = nodeProperties.clickOpen;

	// var index = _cmItemList.push (item) - 1;
	_cmItemList[_cmItemList.length] = item;
	var index = _cmItemList.length - 1;
	idSub = (!idSub) ? 'null' : ('\'' + idSub + '\'');
	orient = '\'' + orient + '\'';
	prefix = '\'' + prefix + '\'';
	var onClick = (clickOpen == 3) || (clickOpen == 2 && isMain);
	var returnStr;
	if (onClick)
		returnStr = ' onmouseover="cmItemMouseOver (this,' + prefix + ',' + isMain + ',' + idSub + ',' + index + ')" onmousedown="cmItemMouseDownOpenSub (this,' + index + ',' + prefix + ',' + orient + ',' + idSub + ')"';
	else
		returnStr = ' onmouseover="cmItemMouseOverOpenSub (this,' + prefix + ',' + isMain + ',' + idSub + ',' + orient + ',' + index + ')" onmousedown="cmItemMouseDown (this,' + index + ')"';
	return returnStr + ' onmouseout="cmItemMouseOut (this,' + nodeProperties.delay + ')" onmouseup="cmItemMouseUp (this,' + index + ')"';
}

//
// this one is used by _cmNoClick to only take care of onmouseover and onmouseout
// events which are associated with menu but not actions associated with menu clicking/closing
//
function cmNoClickItem (item, prefix, isMain, idSub, orient, nodeProperties)
{
	// var index = _cmItemList.push (item) - 1;
	_cmItemList[_cmItemList.length] = item;
	var index = _cmItemList.length - 1;
	idSub = (!idSub) ? 'null' : ('\'' + idSub + '\'');
	orient = '\'' + orient + '\'';
	prefix = '\'' + prefix + '\'';
	return ' onmouseover="cmItemMouseOver (this,' + prefix + ',' + isMain + ',' + idSub + ',' + index + ')" onmouseout="cmItemMouseOut (this,' + nodeProperties.delay + ')"';
}

function cmNoActionItem (item, prefix)
{
	return item[1];
}

function cmSplitItem (prefix, isMain, vertical)
{
	var classStr = 'cm' + prefix;
	if (isMain)
	{
		classStr += 'Main';
		if (vertical)
			classStr += 'HSplit';
		else
			classStr += 'VSplit';
	}
	else
		classStr += 'HSplit';
	return eval (classStr);
}

//
// draw the sub menu recursively
//
function cmDrawSubMenu (subMenu, prefix, id, orient, nodeProperties)
{
	var str = '<div class="' + prefix + 'SubMenu" id="' + id + '"><table summary="sub menu" cellspacing="' + nodeProperties.subSpacing + '" class="' + prefix + 'SubMenuTable">';
	var strSub = '';

	var item;
	var idSub;
	var hasChild;

	var i;

	var classStr;

	for (i = 5; i < subMenu.length; ++i)
	{
		item = subMenu[i];
		if (!item)
			continue;

		hasChild = (item.length > 5);
		idSub = hasChild ? cmNewID () : null;

		if (item == _cmSplit)
			item = cmSplitItem (prefix, 0, true);

		str += '<tr class="' + prefix + 'MenuItem"';
		if (item[0] != _cmNoClick)
			str += cmActionItem (item, prefix, 0, idSub, orient, nodeProperties);
		else
			str += cmNoClickItem (item, prefix, 0, idSub, orient, nodeProperties);
		str += '>'

		if (item[0] == _cmNoAction || item[0] == _cmNoClick)
		{
			str += cmNoActionItem (item, prefix);
			str += '</tr>';
			continue;
		}

		classStr = prefix + 'Menu';
		classStr += hasChild ? 'Folder' : 'Item';

		str += '<td class="' + classStr + 'Left">';

		if (item[0] != null)
			str += item[0];
		else
			str += hasChild ? nodeProperties.folderLeft : nodeProperties.itemLeft;

		str += '</td><td class="' + classStr + 'Text">' + item[1];

		str += '</td><td class="' + classStr + 'Right">';

		if (hasChild)
		{
			str += nodeProperties.folderRight;
			strSub += cmDrawSubMenu (item, prefix, idSub, orient, nodeProperties);
		}
		else
			str += nodeProperties.itemRight;
		str += '</td></tr>';
	}

	str += '</table></div>' + strSub;
	return str;
}

//
// The function that builds the menu inside the specified element id.
//
// @param	id	id of the element
//		orient	orientation of the menu in [hv][ab][lr] format
//		menu	the menu object to be drawn
//		nodeProperties	properties for each menu node
//
function cmDraw (id, menu, orient, nodeProperties, prefix)
{
	var obj = cmGetObject (id);

	if (!nodeProperties)
		nodeProperties = _cmNodeProperties;
	if (!prefix)
		prefix = '';

	var str = '<table summary="main menu" class="' + prefix + 'Menu" cellspacing="' + nodeProperties.mainSpacing + '">';
	var strSub = '';

	if (!orient)
		orient = 'hbr';

	var orientStr = String (orient);
	var orientSub;
	var vertical;

	// draw the main menu items
	if (orientStr.charAt (0) == 'h')
	{
		// horizontal menu
		orientSub = 'v' + orientStr.substr (1, 2);
		str += '<tr>';
		vertical = false;
	}
	else
	{
		// vertical menu
		orientSub = 'v' + orientStr.substr (1, 2);
		vertical = true;
	}

	var i;
	var item;
	var idSub;
	var hasChild;

	var classStr;

	for (i = 0; i < menu.length; ++i)
	{
		item = menu[i];

		if (!item)
			continue;

		str += vertical ? '<tr' : '<td';
		str += ' class="' + prefix + 'MainItem"';

		hasChild = (item.length > 5);
		idSub = hasChild ? cmNewID () : null;

		str += cmActionItem (item, prefix, 1, idSub, orient, nodeProperties) + '>';

		if (item == _cmSplit)
			item = cmSplitItem (prefix, 1, vertical);

		if (item[0] == _cmNoAction || item[0] == _cmNoClick)
		{
			str += cmNoActionItem (item, prefix);
			str += vertical? '</tr>' : '</td>';
			continue;
		}

		classStr = prefix + 'Main' + (hasChild ? 'Folder' : 'Item');

		str += vertical ? '<td' : '<span';
		str += ' class="' + classStr + 'Left">';

		str += (item[0] == null) ? (hasChild ? nodeProperties.mainFolderLeft : nodeProperties.mainItemLeft)
					 : item[0];
		str += vertical ? '</td>' : '</span>';

		str += vertical ? '<td' : '<span';
		str += ' class="' + classStr + 'Text">';
		str += item[1];

		str += vertical ? '</td>' : '</span>';

		str += vertical ? '<td' : '<span';
		str += ' class="' + classStr + 'Right">';

		str += hasChild ? nodeProperties.mainFolderRight : nodeProperties.mainItemRight;

		str += vertical ? '</td>' : '</span>';

		str += vertical ? '</tr>' : '</td>';

		if (hasChild)
			strSub += cmDrawSubMenu (item, prefix, idSub, orientSub, nodeProperties);
	}
	if (!vertical)
		str += '</tr>';
	str += '</table>' + strSub;
	obj.innerHTML = str;
	//document.write ("<xmp>" + str + "</xmp>");
}

//
// The function builds the menu inside the specified element id.
//
// This function is similar to cmDraw except that menu is taken from HTML node
// rather a javascript tree.  This feature allows links to be scanned by search
// bots.
//
// This function basically converts HTML node to a javascript tree, and then calls
// cmDraw to draw the actual menu, replacing the hidden menu tree.
//
// Format:
//	<div id="menu">
//		<ul style="visibility: hidden">
//			<li><span>icon</span><a href="link" title="description">main menu text</a>
//				<ul>
//					<li><span>icon</span><a href="link" title="description">submenu item</a>
//					</li>
//				</ul>
//			</li>
//		</ul>
//	</div>
//
function cmDrawFromText (id, orient, nodeProperties, prefix)
{
	var domMenu = cmGetObject (id);
	var menu = null;
	for (var currentDomItem = domMenu.firstChild; currentDomItem; currentDomItem = currentDomItem.nextSibling)
	{
		if (!currentDomItem.tagName || currentDomItem.tagName.toLowerCase () != 'ul')
			continue;
		menu = cmDrawFromTextSubMenu (currentDomItem);
		break;
	}
	if (menu)
		cmDraw (id, menu, orient, nodeProperties, prefix);
}

//
// a recursive function that build menu tree structure
//
function cmDrawFromTextSubMenu (domMenu)
{
	var items = new Array ();
	for (var currentDomItem = domMenu.firstChild; currentDomItem; currentDomItem = currentDomItem.nextSibling)
	{
		if (!currentDomItem.tagName || currentDomItem.tagName.toLowerCase () != 'li')
			continue;
		if (currentDomItem.firstChild == null)
		{
			items[items.length] = _cmSplit;
			continue;
		}
		var item = new Array ();
		var currentItem = currentDomItem.firstChild;
		for (; currentItem; currentItem = currentItem.nextSibling)
		{
			// scan for span tag
			if (!currentItem.tagName || currentItem.tagName.toLowerCase () != 'span')
				continue;
			if (!currentItem.firstChild)
				item[0] = null;
			else
				item[0] = currentItem.innerHTML;
			break;
		}
		if (!currentItem)
			continue;
		for (; currentItem; currentItem = currentItem.nextSibling)
		{
			// scan for span tag
			if (!currentItem.tagName || currentItem.tagName.toLowerCase () != 'a')
				continue;
			item[1] = currentItem.innerHTML;
			item[2] = currentItem.href;
			item[3] = currentItem.target;
			item[4] = currentItem.title;
			if (item[4] == '')
				item[4] = null;
			break;
		}

		for (; currentItem; currentItem = currentItem.nextSibling)
		{
			// scan for span tag
			if (!currentItem.tagName || currentItem.tagName.toLowerCase () != 'ul')
				continue;
			var subMenuItems = cmDrawFromTextSubMenu (currentItem);
			for (i = 0; i < subMenuItems.length; ++i)
				item[i + 5] = subMenuItems[i];
			break;
		}
		items[items.length] = item;
	}
	return items;
}

//////////////////////////////////////////////////////////////////////
//
// Mouse Event Handling Functions
//
//////////////////////////////////////////////////////////////////////

//
// action should be taken for mouse moving in to the menu item
//
// Here we just do things concerning this menu item, w/o opening sub menus.
//
function cmItemMouseOver (obj, prefix, isMain, idSub, index)
{
	clearTimeout (_cmTimeOut);

	if (!obj.cmPrefix)
	{
		obj.cmPrefix = prefix;
		obj.cmIsMain = isMain;
	}

	var thisMenu = cmGetThisMenu (obj, prefix);

	// insert obj into cmItems if cmItems doesn't have obj
	if (!thisMenu.cmItems)
		thisMenu.cmItems = new Array ();
	var i;
	for (i = 0; i < thisMenu.cmItems.length; ++i)
	{
		if (thisMenu.cmItems[i] == obj)
			break;
	}
	if (i == thisMenu.cmItems.length)
	{
		//thisMenu.cmItems.push (obj);
		thisMenu.cmItems[i] = obj;
	}

	// hide the previous submenu that is not this branch
	if (_cmCurrentItem)
	{
		// occationally, we get this case when user
		// move the mouse slowly to the border
		if (_cmCurrentItem == obj || _cmCurrentItem == thisMenu)
		{
			var item = _cmItemList[index];
			cmSetStatus (item);
			return;
		}

		var thatPrefix = _cmCurrentItem.cmPrefix;
		var thatMenu = cmGetThisMenu (_cmCurrentItem, thatPrefix);

		if (thatMenu != thisMenu.cmParentMenu)
		{
			if (_cmCurrentItem.cmIsMain)
				_cmCurrentItem.className = thatPrefix + 'MainItem';
			else
				_cmCurrentItem.className = thatPrefix + 'MenuItem';
			if (thatMenu.id != idSub)
				cmHideMenu (thatMenu, thisMenu, thatPrefix);
		}
	}

	// okay, set the current menu to this obj
	_cmCurrentItem = obj;

	// just in case, reset all items in this menu to MenuItem
	cmResetMenu (thisMenu, prefix);

	var item = _cmItemList[index];
	var isDefaultItem = cmIsDefaultItem (item);

	if (isDefaultItem)
	{
		if (isMain)
			obj.className = prefix + 'MainItemHover';
		else
			obj.className = prefix + 'MenuItemHover';
	}

	cmSetStatus (item);
}

//
// action should be taken for mouse moving in to the menu item
//
// This function also opens sub menu
//
function cmItemMouseOverOpenSub (obj, prefix, isMain, idSub, orient, index)
{
	cmItemMouseOver (obj, prefix, isMain, idSub, index);

	if (idSub)
	{
		var subMenu = cmGetObject (idSub);
		cmShowSubMenu (obj, prefix, subMenu, orient);
	}
}

//
// action should be taken for mouse moving out of the menu item
//
function cmItemMouseOut (obj, delayTime)
{
	if (!delayTime)
		delayTime = _cmNodeProperties.delay;
	_cmTimeOut = window.setTimeout ('cmHideMenuTime ()', delayTime);
	window.defaultStatus = '';
}

//
// action should be taken for mouse button down at a menu item
//
function cmItemMouseDown (obj, index)
{
	if (cmIsDefaultItem (_cmItemList[index]))
	{
		if (obj.cmIsMain)
			obj.className = obj.cmPrefix + 'MainItemActive';
		else
			obj.className = obj.cmPrefix + 'MenuItemActive';
	}
}

//
// action should be taken for mouse button down at a menu item
// this is one also opens submenu if needed
//
function cmItemMouseDownOpenSub (obj, index, prefix, orient, idSub)
{
	cmItemMouseDown (obj, index);

	if (idSub)
	{
		var subMenu = cmGetObject (idSub);
		cmShowSubMenu (obj, prefix, subMenu, orient);
	}
}

//
// action should be taken for mouse button up at a menu item
//
function cmItemMouseUp (obj, index)
{
	var item = _cmItemList[index];

	var link = null, target = '_self';

	if (item.length > 2)
		link = item[2];
	if (item.length > 3 && item[3])
		target = item[3];

	if (link != null)
	{
		window.open (link, target);
	}

	var prefix = obj.cmPrefix;
	var thisMenu = cmGetThisMenu (obj, prefix);

	var hasChild = (item.length > 5);
	if (!hasChild)
	{
		if (cmIsDefaultItem (item))
		{
			if (obj.cmIsMain)
				obj.className = prefix + 'MainItem';
			else
				obj.className = prefix + 'MenuItem';
		}
		cmHideMenu (thisMenu, null, prefix);
	}
	else
	{
		if (cmIsDefaultItem (item))
		{
			if (obj.cmIsMain)
				obj.className = prefix + 'MainItemHover';
			else
				obj.className = prefix + 'MenuItemHover';
		}
	}
}

//////////////////////////////////////////////////////////////////////
//
// Mouse Event Support Utility Functions
//
//////////////////////////////////////////////////////////////////////

//
// move submenu to the appropriate location
//
// @param	obj	the menu item that opens up the subMenu
//		subMenu	the sub menu to be shown
//		orient	the orientation of the subMenu
//
function cmMoveSubMenu (obj, subMenu, orient)
{
	var mode = String (orient);
	var p = subMenu.offsetParent;
	var subMenuWidth = cmGetWidth (subMenu);
	var horiz = cmGetHorizontalAlign (obj, mode, p, subMenuWidth);
	if (mode.charAt (0) == 'h')
	{
		if (mode.charAt (1) == 'b')
			subMenu.style.top = (cmGetYAt (obj, p) + cmGetHeight (obj)) + 'px';
		else
			subMenu.style.top = (cmGetYAt (obj, p) - cmGetHeight (subMenu)) + 'px';
		if (horiz == 'r')
			subMenu.style.left = (cmGetXAt (obj, p)) + 'px';
		else
			subMenu.style.left = (cmGetXAt (obj, p) + cmGetWidth (obj) - subMenuWidth) + 'px';
	}
	else
	{
		if (horiz == 'r')
			subMenu.style.left = (cmGetXAt (obj, p) + cmGetWidth (obj)) + 'px';
		else
			subMenu.style.left = (cmGetXAt (obj, p) - subMenuWidth) + 'px';
		if (mode.charAt (1) == 'b')
			subMenu.style.top = (cmGetYAt (obj, p)) + 'px';
		else
			subMenu.style.top = (cmGetYAt (obj, p) + cmGetHeight (obj) - cmGetHeight (subMenu)) + 'px';
	}
}

//
// automatically re-adjust the menu position based on available screen size.
//
function cmGetHorizontalAlign (obj, mode, p, subMenuWidth)
{
	var horiz = mode.charAt (2);
	if (!(document.body))
		return horiz;
	var body = document.body;
	var browserLeft;
	var browserRight;
	if (window.innerWidth)
	{
		// DOM window attributes
		browserLeft = window.pageXOffset;
		browserRight = window.innerWidth + browserLeft;
	}
	else if (body.clientWidth)
	{
		// IE attributes
		browserLeft = body.clientLeft;
		browserRight = body.clientWidth + browserLeft;
	}
	else
		return horiz;
	if (mode.charAt (0) == 'h')
	{
		if (horiz == 'r' && (cmGetXAt (obj) + subMenuWidth) > browserRight)
			horiz = 'l';
		if (horiz == 'l' && (cmGetXAt (obj) + cmGetWidth (obj) - subMenuWidth) < browserLeft)
			horiz = 'r';
		return horiz;
	}
	else
	{
		if (horiz == 'r' && (cmGetXAt (obj, p) + cmGetWidth (obj) + subMenuWidth) > browserRight)
			horiz = 'l';
		if (horiz == 'l' && (cmGetXAt (obj, p) - subMenuWidth) < browserLeft)
			horiz = 'r';
		return horiz;
	}
}

//
// show the subMenu w/ specified orientation
// also move it to the correct coordinates
//
// @param	obj	the menu item that opens up the subMenu
//		subMenu	the sub menu to be shown
//		orient	the orientation of the subMenu
//
function cmShowSubMenu (obj, prefix, subMenu, orient)
{
	if (!subMenu.cmParentMenu)
	{
		// establish the tree w/ back edge
		var thisMenu = cmGetThisMenu (obj, prefix);
		subMenu.cmParentMenu = thisMenu;
		if (!thisMenu.cmSubMenu)
			thisMenu.cmSubMenu = new Array ();
		//thisMenu.cmSubMenu.push (subMenu);
		thisMenu.cmSubMenu[thisMenu.cmSubMenu.length] = subMenu;
	}

	// position the sub menu
	cmMoveSubMenu (obj, subMenu, orient);
	subMenu.style.visibility = 'visible';

	//
	// On IE, controls such as SELECT, OBJECT, IFRAME (before 5.5)
	// are window based controls.  So, if the sub menu and these
	// controls overlap, sub menu would be hidden behind them.  Thus
	// one needs to turn the visibility of these controls off when the
	// sub menu is showing, and turn their visibility back on
	// when the sub menu is hiding.
	//
	if (document.all)	// it is IE
	{
		/* part of Felix Zaslavskiy's fix on hiding controls
		   not really sure if this part is necessary, but shouldn't
		   hurt. */
		if (!subMenu.cmOverlap)
			subMenu.cmOverlap = new Array ();
/*@cc_on @*/
/*@if (@_jscript_version >= 5.5)
@else @*/
		cmHideControl ("IFRAME", subMenu);
/*@end @*/
		cmHideControl ("SELECT", subMenu);
		cmHideControl ("OBJECT", subMenu);
	}
}

//
// reset all the menu items to class MenuItem in thisMenu
//
function cmResetMenu (thisMenu, prefix)
{
	if (thisMenu.cmItems)
	{
		var i;
		var str;
		var items = thisMenu.cmItems;
		for (i = 0; i < items.length; ++i)
		{
			if (items[i].cmIsMain)
				str = prefix + 'MainItem';
			else
				str = prefix + 'MenuItem';
			if (items[i].className != str)
				items[i].className = str;
		}
	}
}

//
// called by the timer to hide the menu
//
function cmHideMenuTime ()
{
	if (_cmCurrentItem)
	{
		var prefix = _cmCurrentItem.cmPrefix;
		cmHideMenu (cmGetThisMenu (_cmCurrentItem, prefix), null, prefix);
		_cmCurrentItem = null;
	}
}

//
// hide thisMenu, children of thisMenu, as well as the ancestor
// of thisMenu until currentMenu is encountered.  currentMenu
// will not be hidden
//
function cmHideMenu (thisMenu, currentMenu, prefix)
{
	var str = prefix + 'SubMenu';

	// hide the down stream menus
	if (thisMenu.cmSubMenu)
	{
		var i;
		for (i = 0; i < thisMenu.cmSubMenu.length; ++i)
		{
			cmHideSubMenu (thisMenu.cmSubMenu[i], prefix);
		}
	}

	// hide the upstream menus
	while (thisMenu && thisMenu != currentMenu)
	{
		cmResetMenu (thisMenu, prefix);
		if (thisMenu.className == str)
		{
			thisMenu.style.visibility = 'hidden';
			cmShowControl (thisMenu);
		}
		else
			break;
		thisMenu = cmGetThisMenu (thisMenu.cmParentMenu, prefix);
	}
}

//
// hide thisMenu as well as its sub menus if thisMenu is not
// already hidden
//
function cmHideSubMenu (thisMenu, prefix)
{
	if (thisMenu.style.visibility == 'hidden')
		return;
	if (thisMenu.cmSubMenu)
	{
		var i;
		for (i = 0; i < thisMenu.cmSubMenu.length; ++i)
		{
			cmHideSubMenu (thisMenu.cmSubMenu[i], prefix);
		}
	}
	cmResetMenu (thisMenu, prefix);
	thisMenu.style.visibility = 'hidden';
	cmShowControl (thisMenu);
}

//
// hide a control such as IFRAME
//
function cmHideControl (tagName, subMenu)
{
	var x = cmGetX (subMenu);
	var y = cmGetY (subMenu);
	var w = subMenu.offsetWidth;
	var h = subMenu.offsetHeight;

	var i;
	for (i = 0; i < document.all.tags(tagName).length; ++i)
	{
		var obj = document.all.tags(tagName)[i];
		if (!obj || !obj.offsetParent)
			continue;

		// check if the object and the subMenu overlap

		var ox = cmGetX (obj);
		var oy = cmGetY (obj);
		var ow = obj.offsetWidth;
		var oh = obj.offsetHeight;

		if (ox > (x + w) || (ox + ow) < x)
			continue;
		if (oy > (y + h) || (oy + oh) < y)
			continue;

		// if object is already made hidden by a different
		// submenu then we dont want to put it on overlap list of
		// of a submenu a second time.
		// - bug fixed by Felix Zaslavskiy
		if(obj.style.visibility == "hidden")
			continue;

		//subMenu.cmOverlap.push (obj);
		subMenu.cmOverlap[subMenu.cmOverlap.length] = obj;
		obj.style.visibility = "hidden";
	}
}

//
// show the control hidden by the subMenu
//
function cmShowControl (subMenu)
{
	if (subMenu.cmOverlap)
	{
		var i;
		for (i = 0; i < subMenu.cmOverlap.length; ++i)
			subMenu.cmOverlap[i].style.visibility = "";
	}
	subMenu.cmOverlap = null;
}

//
// returns the main menu or the submenu table where this obj (menu item)
// is in
//
function cmGetThisMenu (obj, prefix)
{
	var str1 = prefix + 'SubMenu';
	var str2 = prefix + 'Menu';
	while (obj)
	{
		if (obj.className == str1 || obj.className == str2)
			return obj;
		obj = obj.parentNode;
	}
	return null;
}

//
// return true if this item is handled using default handlers
//
function cmIsDefaultItem (item)
{
	if (item == _cmSplit || item[0] == _cmNoAction || item[0] == _cmNoClick)
		return false;
	return true;
}

//
// returns the object baring the id
//
function cmGetObject (id)
{
	if (document.all)
		return document.all[id];
	return document.getElementById (id);
}

//
// functions that obtain the width of an HTML element.
//
function cmGetWidth (obj)
{
	var width = obj.offsetWidth;
	if (width > 0 || !cmIsTRNode (obj))
		return width;
	if (!obj.firstChild)
		return 0;
	// use TABLE's length can cause an extra pixel gap
	//return obj.parentNode.parentNode.offsetWidth;

	// use the left and right child instead
	return obj.lastChild.offsetLeft - obj.firstChild.offsetLeft + cmGetWidth (obj.lastChild);
}

//
// functions that obtain the height of an HTML element.
//
function cmGetHeight (obj)
{
	var height = obj.offsetHeight;
	if (height > 0 || !cmIsTRNode (obj))
		return height;
	if (!obj.firstChild)
		return 0;
	// use the first child's height
	return obj.firstChild.offsetHeight;
}

//
// functions that obtain the coordinates of an HTML element
//
function cmGetX (obj)
{
	var x = 0;

	do
	{
		x += obj.offsetLeft;
		obj = obj.offsetParent;
	}
	while (obj);
	return x;
}

function cmGetXAt (obj, elm)
{
	var x = 0;

	while (obj && obj != elm)
	{
		x += obj.offsetLeft;
		obj = obj.offsetParent;
	}
	if (obj == elm)
		return x;
	return x - cmGetX (elm);
}

function cmGetY (obj)
{
	var y = 0;
	do
	{
		y += obj.offsetTop;
		obj = obj.offsetParent;
	}
	while (obj);
	return y;
}

function cmIsTRNode (obj)
{
	var tagName = obj.tagName;
	return tagName == "TR" || tagName == "tr" || tagName == "Tr" || tagName == "tR";
}

//
// get the Y position of the object.  In case of TR element though,
// we attempt to adjust the value.
//
function cmGetYAt (obj, elm)
{
	var y = 0;

	if (!obj.offsetHeight && cmIsTRNode (obj))
	{
		var firstTR = obj.parentNode.firstChild;
		obj = obj.firstChild;
		y -= firstTR.firstChild.offsetTop;
	}

	while (obj && obj != elm)
	{
		y += obj.offsetTop;
		obj = obj.offsetParent;
	}

	if (obj == elm)
		return y;
	return y - cmGetY (elm);
}

//
// extract description from the menu item and set the status text
// @param	item	the menu item
//
function cmSetStatus (item)
{
	var descript = '';
	if (item.length > 4)
		descript = (item[4] != null) ? item[4] : (item[2] ? item[2] : descript);
	else if (item.length > 2)
		descript = (item[2] ? item[2] : descript);

	window.defaultStatus = descript;
}

//
// debug function, ignore :)
//
function cmGetProperties (obj)
{
	if (obj == undefined)
		return 'undefined';
	if (obj == null)
		return 'null';

	var msg = obj + ':\n';
	var i;
	for (i in obj)
		msg += i + ' = ' + obj[i] + '; ';
	return msg;
}

/* v1.4.3			1. changed how _cmSplit is handled a bit so that _cmNoClick can work
						properly.  All splits in predefined themes are changed to use
						_cmNoClick instead of _cmNoAction.
*/
/* v1.4.2			1. fixed _cmNoClick mouse hoover bug.
					2. fixed a statusbar text problem that cause text to disappear when
						hoovering mouse within the same menu item.
					3. changed the behavior of cmDrawFromText s.t. if the title of the
						of a link is empty, the actual url is used as text.  To clear
						this link information, title needs to be ' '.
*/
/* v1.4.1			1. fixed a problem introduced in 1.4 where re-entering a main menu
						item which doesn't have a child can disable its hover setting.
						Apparently I deleted an extra line of code when I was doing
						cleaning up.  Reported by David Maliachi and a few others.
*/
/* JSCookMenu v1.4	1. fixed a minor td cell closure problem.  Thanks to Georg Lorenz
					   <georg@lonux.de> for discovering that.
					2. added clickOpen to nodeProperties.  See _cmNodeProperties for
						description.  Basically menus can be opened on click only.
					3. added an ability to draw menu from an html node instead of a javascript
						tree, making this script search bot friendly (I hope?).
*/
/* JSCookMenu v1.31 1. fix a bug on IE with causes submenus to display at the top
					   left corner due to doctype.  The fix was provided by
					   Burton Strauss <Burton@ntopsupport.com>.
*/
/* JSCookMenu v1.3	1. automatically realign (left and right) the submenu when
					   client space is not enough.
					2. add _cmNoClick to get rid of menu closing behavior
					   on the particular menu item, to make it possible for things
					   such as search box to be inside the menu.
*/
/* JSCookMenu v1.25	1. fix Safari positioning issue.  The problem is that all TR elements are located
					   at the top left corner.  Thus, need to obtain the "virtual"
					   position of these element could be at.
*/
/* JSCookMenu v1.24	1. fix window based control hiding bug
					   thanks to Felix Zaslavskiy <felix@bebinary.com> for the fix.
*/
/* JSCookMenu v1.23	1. correct a position bug when the container is positioned.
					  thanks to Andre <anders@netspace.net.au> for narrowing down
					  the problem.
*/
/* JSCookMenu v1.22	1. change Array.push (obj) call to Array[length] = obj.
					   Suggestion from Dick van der Kaaden <dick@netrex.nl> to
					   make the script compatible with IE 5.0
					2. Changed theme files a little to add z-index: 100 for sub
					   menus.  This change is necessary for Netscape to avoid
					   a display problem.
					3. some changes to the DOM structure to make this menu working
					   on Netscape 6.0 (tested).  The main reason is that NN6 does
					   not do absolute positioning with tables.  Therefore an extra
					   div layer must be put around the table.
*/
/* JSCookMenu v1.21	1. fixed a bug that didn't add 'px' as part of coordinates.
					   JSCookMenu should be XHTML validator friendly now.
					2. removed unnecessary display attribute and corresponding
					   theme entry to fix a problem that Netscape sometimes
					   render Office theme incorrectly
*/
/* JSCookMenu v1.2.	1. fix the problem of showing status in Netscape
					2. changed the handler parameters a bit to allow
					   string literals to be passed to javascript based
					   links
					3. having null in target field would cause the link
					   to be opened in the current window, but this behavior
					   could change in the future releases
*/
/* JSCookMenu v1.5.		added ability to hide controls in IE to show submenus properly */
/* JSCookMenu v1.01.	cmDraw generates XHTML code */
/* JSCookMenu v1.0.		(c) Copyright 2002 by Heng Yuan */
pathway.php000064400000003055152200041010006716 0ustar00<?php
/**
* @version		$Id: pathway.php 14401 2010-01-26 14:10:00Z louis $
* @package		Joomla.Framework
* @subpackage	Application
* @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// Check to ensure this file is within the rest of the framework
defined('JPATH_BASE') or die();

/**
 * Class to manage the site application pathway
 *
 * @package 	Joomla
 * @since		1.5
 */
class JPathwaySite extends JPathway
{
	/**
	 * Class constructor
	 */
	function __construct($options = array())
	{
		//Initialise the array
		$this->_pathway = array();

		$menu   =& JSite::getMenu();

		if($item = $menu->getActive())
		{
			$menus	= $menu->getMenu();
			$home	= $menu->getDefault();

			if(is_object($home) && ($item->id != $home->id))
			{
				foreach($item->tree as $menupath)
				{
					$url  = '';
					$link = $menu->getItem($menupath);

					switch($link->type)
					{
						case 'menulink' :
						case 'url' :
							$url = $link->link;
							break;
						case 'separator' :
							$url = null;
							break;
						default      :
							$url = 'index.php?Itemid='.$link->id;
					}

					$this->addItem( $menus[$menupath]->name, $url);

				} // end foreach
			}
		} // end if getActive
	}
}mambo.php000064400000000300152200041010006322 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: mambo.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname( __FILE__ ) . '/application.php' );database.php000064400000001320152200041010006776 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: database.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 * @deprecated	As of version 1.5
 */

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

require_once( dirname(__FILE__)  .'/../libraries/loader.php' );

jimport( 'joomla.database.database' );
jimport( 'joomla.database.database.mysql' );
/**
 * Legacy class, derive from JDatabase instead.
 *
 * @package		Joomla
 * @deprecated As of version 1.5
 */
class database extends JDatabase {
	function __construct ($host='localhost', $user, $pass, $db='', $table_prefix='', $offline = true) {
		parent::__construct( 'mysql', $host, $user, $pass, $db, $table_prefix );
	}
}domit/xml_domit_rss.php000064400000000336152200041010011237 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: xml_domit_rss.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../../libraries/domit/xml_domit_rss.php' );domit/index.html000064400000000054152200041010007635 0ustar00<html><body bgcolor="#FFFFFF"></body></html>domit/xml_domit_lite_include.php000064400000000360152200041010013065 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: xml_domit_lite_include.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../../libraries/domit/xml_domit_lite_include.php' );domit/xml_domit_lite_parser.php000064400000000356152200041010012743 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: xml_domit_lite_parser.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../../libraries/domit/xml_domit_lite_parser.php' );domit/xml_domit_include.php000064400000000346152200041010012054 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: xml_domit_include.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../../libraries/domit/xml_domit_include.php' );domit/xml_domit_rss_lite.php000064400000000350152200041010012250 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: xml_domit_rss_lite.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../../libraries/domit/xml_domit_rss_lite.php' );feedcreator.class.php000064400000000340152200041010010622 0ustar00<?php
/**
 * Legacy Mode compatibility
 * @version		$Id: feedcreator.class.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package		Joomla.Legacy
 */
require_once( dirname(__FILE__)  .'/../libraries/bitfolge/feedcreator.php' );