Index: /ether_megapoli/trunk/common/implementation/log4j.xml
===================================================================
--- /ether_megapoli/trunk/common/implementation/log4j.xml	(revision 154)
+++ /ether_megapoli/trunk/common/implementation/log4j.xml	(revision 155)
@@ -1,3 +1,3 @@
-<?com.medias.xml version="1.0" encoding="UTF-8" ?>
+<?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" threshold="all" debug="true">
Index: /ether_megapoli/trunk/persistence/implementation/com/medias/objects/Mesure.hbm.xml
===================================================================
--- /ether_megapoli/trunk/persistence/implementation/com/medias/objects/Mesure.hbm.xml	(revision 154)
+++ /ether_megapoli/trunk/persistence/implementation/com/medias/objects/Mesure.hbm.xml	(revision 155)
@@ -4,5 +4,5 @@
 <!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
 <hibernate-mapping>
-    <class name="org.medias.megapoli.model.database.objects.Mesure" table="mesure" schema="public">
+    <class name="com.medias.database.objects.Mesure" table="mesure" schema="public">
         <comment>Table contenant les mesures</comment>
         <id name="mesureId" type="int">
@@ -12,25 +12,25 @@
             </generator>
         </id>
-        <many-to-one name="localisation" class="org.medias.megapoli.model.database.objects.Localisation" fetch="select">
+        <many-to-one name="localisation" class="com.medias.database.objects.Localisation" fetch="select">
             <column name="localisation_id" not-null="true">
                 <comment>lien vers la table localisation</comment>
             </column>
         </many-to-one>
-        <many-to-one name="plateforme" class="org.medias.megapoli.model.database.objects.Plateforme" fetch="select">
+        <many-to-one name="plateforme" class="com.medias.database.objects.Plateforme" fetch="select">
             <column name="plateforme_id" not-null="true">
                 <comment>lien vers la table plateforme</comment>
             </column>
         </many-to-one>
-        <many-to-one name="fichier" class="org.medias.megapoli.model.database.objects.Fichier" fetch="select">
+        <many-to-one name="fichier" class="com.medias.database.objects.Fichier" fetch="select">
             <column name="fichier_id" not-null="true">
                 <comment>lien vers la table fichier</comment>
             </column>
         </many-to-one>
-        <many-to-one name="sequence" class="org.medias.megapoli.model.database.objects.Sequence" fetch="select">
+        <many-to-one name="sequence" class="com.medias.database.objects.Sequence" fetch="select">
             <column name="sequence_id">
                 <comment>lien vers la table sequence</comment>
             </column>
         </many-to-one>
-        <many-to-one name="deltaMesure" class="org.medias.megapoli.model.database.objects.DeltaMesure" fetch="select">
+        <many-to-one name="deltaMesure" class="com.medias.database.objects.DeltaMesure" fetch="select">
             <column name="delta_mesure_id">
                 <comment>lien vers la table delta_mesure</comment>
@@ -48,5 +48,5 @@
                 </column>
             </key>
-            <one-to-many class="org.medias.megapoli.model.database.objects.Valeur" />
+            <one-to-many class="com.medias.database.objects.Valeur" />
         </set>
     </class>
Index: /ether_megapoli/trunk/service/implementation/com/ether/MegapoliPlot.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/ether/MegapoliPlot.java	(revision 154)
+++ /ether_megapoli/trunk/service/implementation/com/ether/MegapoliPlot.java	(revision 155)
@@ -4,5 +4,5 @@
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
-import org.medias.megapoli.utils.MegapoliInitialisation;
+import com.medias.megapoli.utils.MegapoliInitialisation;
 
 /**
Index: /ether_megapoli/trunk/service/implementation/com/ether/tutorial/src/tutorial/SBExample1.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/ether/tutorial/src/tutorial/SBExample1.xml	(revision 154)
+++ /ether_megapoli/trunk/service/implementation/com/ether/tutorial/src/tutorial/SBExample1.xml	(revision 155)
@@ -1,3 +1,3 @@
-<?com.medias.xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <java version="1.4.1_01" class="java.beans.XMLDecoder"> 
  <object class="gov.noaa.pmel.sgt.beans.PanelModel"> 
Index: /ether_megapoli/trunk/service/implementation/com/ether/tutorial/src/tutorial/SBExample2.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/ether/tutorial/src/tutorial/SBExample2.xml	(revision 154)
+++ /ether_megapoli/trunk/service/implementation/com/ether/tutorial/src/tutorial/SBExample2.xml	(revision 155)
@@ -1,3 +1,3 @@
-<?com.medias.xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <java version="1.4.1_01" class="java.beans.XMLDecoder">
     <object class="gov.noaa.pmel.sgt.beans.PanelModel">
Index: /ether_megapoli/trunk/service/implementation/com/ether/tutorial/src/tutorial/SBExample3.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/ether/tutorial/src/tutorial/SBExample3.xml	(revision 154)
+++ /ether_megapoli/trunk/service/implementation/com/ether/tutorial/src/tutorial/SBExample3.xml	(revision 155)
@@ -1,3 +1,3 @@
-<?com.medias.xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <java version="1.4.1_01" class="java.beans.XMLDecoder"> 
  <object class="gov.noaa.pmel.sgt.beans.PanelModel"> 
Index: /ether_megapoli/trunk/service/implementation/service-context.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/service-context.xml	(revision 154)
+++ /ether_megapoli/trunk/service/implementation/service-context.xml	(revision 155)
@@ -1,3 +1,3 @@
-<?com.medias.xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 
Index: /ether_megapoli/trunk/service/test/com/medias/Test.java
===================================================================
--- /ether_megapoli/trunk/service/test/com/medias/Test.java	(revision 154)
+++ /ether_megapoli/trunk/service/test/com/medias/Test.java	(revision 155)
@@ -1,3 +1,3 @@
-package org.medias.megapoli.utils;
+package com.medias.megapoli.utils;
 
 import com.medias.DateTime;
Index: /ether_megapoli/trunk/web/WEB-INF/servlet-context.xml
===================================================================
--- /ether_megapoli/trunk/web/WEB-INF/servlet-context.xml	(revision 154)
+++ /ether_megapoli/trunk/web/WEB-INF/servlet-context.xml	(revision 155)
@@ -1,3 +1,3 @@
-<?com.medias.xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
Index: /ether_megapoli/trunk/web/WEB-INF/struts-config.xml
===================================================================
--- /ether_megapoli/trunk/web/WEB-INF/struts-config.xml	(revision 154)
+++ /ether_megapoli/trunk/web/WEB-INF/struts-config.xml	(revision 155)
@@ -16,65 +16,65 @@
 		<form-bean
 			name="logonForm"
-			type="org.medias.megapoli.struts.forms.LogonForm">
+			type="com.medias.megapoli.struts.forms.LogonForm">
 		</form-bean>
 		<form-bean
 			name="uploadForm"
-			type="org.medias.megapoli.struts.forms.UploadForm">
+			type="com.medias.megapoli.struts.forms.UploadForm">
 		</form-bean>
 		<form-bean
 			name="accessForm"
-			type="org.medias.megapoli.struts.forms.AccessForm">
+			type="com.medias.megapoli.struts.forms.AccessForm">
 		</form-bean>
 		<form-bean
 			name="deleteForm"
-			type="org.medias.megapoli.struts.forms.DeleteForm">
+			type="com.medias.megapoli.struts.forms.DeleteForm">
 		</form-bean>
 		<form-bean
 			name="newSetForm"
-			type="org.medias.megapoli.struts.forms.MetadataForm">
+			type="com.medias.megapoli.struts.forms.MetadataForm">
 		</form-bean>
 		<form-bean
 			name="metadataForm"
-			type="org.medias.megapoli.struts.forms.MetadataForm">
+			type="com.medias.megapoli.struts.forms.MetadataForm">
 		</form-bean>
 		<form-bean
 			name="parametresForm"
-			type="org.medias.megapoli.struts.forms.ParametresForm">
+			type="com.medias.megapoli.struts.forms.ParametresForm">
 		</form-bean>
 		<form-bean
 			name="capteursForm"
-			type="org.medias.megapoli.struts.forms.CapteursForm">
+			type="com.medias.megapoli.struts.forms.CapteursForm">
 		</form-bean>
 		<form-bean
 			name="plateformesForm"
-			type="org.medias.megapoli.struts.forms.PlateformesForm">
+			type="com.medias.megapoli.struts.forms.PlateformesForm">
 		</form-bean>
 		<form-bean
 			name="jeuxForm"
-			type="org.medias.megapoli.struts.forms.JeuxForm">
+			type="com.medias.megapoli.struts.forms.JeuxForm">
 		</form-bean>
 		<form-bean
 			name="fichiersForm"
-			type="org.medias.megapoli.struts.forms.FichiersForm">
+			type="com.medias.megapoli.struts.forms.FichiersForm">
 		</form-bean>
 		<form-bean
 			name="parametreForm"
-			type="org.medias.megapoli.struts.forms.ParametreForm">
+			type="com.medias.megapoli.struts.forms.ParametreForm">
 		</form-bean>
 		<form-bean
 			name="capteurForm"
-			type="org.medias.megapoli.struts.forms.CapteurForm">
+			type="com.medias.megapoli.struts.forms.CapteurForm">
 		</form-bean>
 		<form-bean
 			name="plateformeForm"
-			type="org.medias.megapoli.struts.forms.PlateformeForm">
+			type="com.medias.megapoli.struts.forms.PlateformeForm">
 		</form-bean>
 		<form-bean
 			name="prepareTreeForm"
-			type="org.medias.megapoli.struts.forms.PrepareTreeForm">
+			type="com.medias.megapoli.struts.forms.PrepareTreeForm">
 		</form-bean>
 		<form-bean
 			name="datasForm"
-			type="org.medias.megapoli.struts.forms.DatasForm">
+			type="com.medias.megapoli.struts.forms.DatasForm">
 		</form-bean>
 	</form-beans>
@@ -90,5 +90,5 @@
 		<action
 			path="/ConfirmDeletion"
-			type="org.medias.megapoli.struts.actions.ConfirmDeletionAction"
+			type="com.medias.megapoli.struts.actions.ConfirmDeletionAction"
 			name="deleteForm">
 			<forward name="set" path="/data/upload/deleteSet.jsp"/>
@@ -97,5 +97,5 @@
 		<action
 			path="/DeleteFile"
-			type="org.medias.megapoli.struts.actions.DeleteFileAction"
+			type="com.medias.megapoli.struts.actions.DeleteFileAction"
 			name="deleteForm">
 			<forward name="success" path="/PrepareTree.do"/>
@@ -104,5 +104,5 @@
 		<action
 			path="/DeleteSet"
-			type="org.medias.megapoli.struts.actions.DeleteSetAction"
+			type="com.medias.megapoli.struts.actions.DeleteSetAction"
 			name="deleteForm">
 			<forward name="success" path="/PrepareTree.do"/>
@@ -111,5 +111,5 @@
 		<action
 			path="/French"
-			type="org.medias.megapoli.struts.actions.FrenchAction"
+			type="com.medias.megapoli.struts.actions.FrenchAction"
 			scope="session">
 			<forward name="success" path="/index.jsp"/>
@@ -117,5 +117,5 @@
 		<action
 			path="/English"
-			type="org.medias.megapoli.struts.actions.EnglishAction"
+			type="com.medias.megapoli.struts.actions.EnglishAction"
 			scope="session">
 			<forward name="success" path="/index.jsp"/>
@@ -123,5 +123,5 @@
 		<action
 			path="/InitLogon"
-			type="org.medias.megapoli.struts.actions.InitLogonAction"
+			type="com.medias.megapoli.struts.actions.InitLogonAction"
 			name="logonForm"
 			validate="false">
@@ -132,5 +132,5 @@
 		<action
 			path="/InitLogonAccess"
-			type="org.medias.megapoli.struts.actions.InitLogonAction"
+			type="com.medias.megapoli.struts.actions.InitLogonAction"
 			name="logonForm"
 			validate="false">
@@ -141,5 +141,5 @@
 		<action
 			path="/InitNewSet"
-			type="org.medias.megapoli.struts.actions.InitNewSetAction"
+			type="com.medias.megapoli.struts.actions.InitNewSetAction"
 			name="newSetForm"
 			validate="false"
@@ -149,5 +149,5 @@
 		<action
 			path="/LoadMetadata"
-			type="org.medias.megapoli.struts.actions.LoadMetadataAction"
+			type="com.medias.megapoli.struts.actions.LoadMetadataAction"
 			name="metadataForm"
 			validate="false"
@@ -157,5 +157,5 @@
 		<action
 			path="/MetadataInfo"
-			type="org.medias.megapoli.struts.actions.MetadataInfoAction"
+			type="com.medias.megapoli.struts.actions.MetadataInfoAction"
 			name="metadataForm"
 			validate="false"
@@ -165,5 +165,5 @@
 		<action
 			path="/Logon"
-			type="org.medias.megapoli.struts.actions.LogonAction"
+			type="com.medias.megapoli.struts.actions.LogonAction"
 			name="logonForm"
 			validate="true"
@@ -177,5 +177,5 @@
 		<action
 			path="/LogonAccess"
-			type="org.medias.megapoli.struts.actions.LogonAction"
+			type="com.medias.megapoli.struts.actions.LogonAction"
 			name="logonForm"
 			validate="true"
@@ -189,37 +189,37 @@
 		<action 
 			path="/NewContact"
-			type="org.medias.megapoli.struts.actions.NewContactAction"
+			type="com.medias.megapoli.struts.actions.NewContactAction"
 			name="metadataForm"/>
 		<action 
 			path="/RemoveContact"
-			type="org.medias.megapoli.struts.actions.RemoveContactAction"
+			type="com.medias.megapoli.struts.actions.RemoveContactAction"
 			name="metadataForm"/>
 		<action 
 			path="/NewPlat"
-			type="org.medias.megapoli.struts.actions.NewPlatAction"
+			type="com.medias.megapoli.struts.actions.NewPlatAction"
 			name="metadataForm"/>
 		<action 
 			path="/RemovePlat"
-			type="org.medias.megapoli.struts.actions.RemovePlatAction"
+			type="com.medias.megapoli.struts.actions.RemovePlatAction"
 			name="metadataForm"/>
 		<action 
 			path="/NewCapt"
-			type="org.medias.megapoli.struts.actions.NewCaptAction"
+			type="com.medias.megapoli.struts.actions.NewCaptAction"
 			name="metadataForm"/>
 		<action 
 			path="/RemoveCapt"
-			type="org.medias.megapoli.struts.actions.RemoveCaptAction"
+			type="com.medias.megapoli.struts.actions.RemoveCaptAction"
 			name="metadataForm"/>
 		<action 
 			path="/NewParam"
-			type="org.medias.megapoli.struts.actions.NewParamAction"
+			type="com.medias.megapoli.struts.actions.NewParamAction"
 			name="metadataForm"/>
 		<action 
 			path="/RemoveParam"
-			type="org.medias.megapoli.struts.actions.RemoveParamAction"
+			type="com.medias.megapoli.struts.actions.RemoveParamAction"
 			name="metadataForm"/>
 		<action
 			path="/NewSet"
-			type="org.medias.megapoli.struts.actions.NewSetAction"
+			type="com.medias.megapoli.struts.actions.NewSetAction"
 			name="newSetForm"
 			validate="true"
@@ -232,5 +232,5 @@
 		<action
 			path="/NewSetMails"
-			type="org.medias.megapoli.struts.actions.NewSetMailsAction"
+			type="com.medias.megapoli.struts.actions.NewSetMailsAction"
 			name="newSetForm"
 			validate="true"
@@ -242,5 +242,5 @@
 		<action
 			path="/PrepareTree"
-			type="org.medias.megapoli.struts.actions.PrepareTreeAction"
+			type="com.medias.megapoli.struts.actions.PrepareTreeAction"
 			name="prepareTreeForm">
 			<forward name="success" path="/data/upload/upload.jsp"/>
@@ -249,20 +249,20 @@
 		<action
 			path="/PrepareTreeAccess"
-			type="org.medias.megapoli.struts.actions.PrepareTreeAccessAction">
+			type="com.medias.megapoli.struts.actions.PrepareTreeAccessAction">
 			<forward name="success" path="/data/access/jeux.jsp"/>
 		</action>		
 		<action
 			path="/PrepareFileList"
-			type="org.medias.megapoli.struts.actions.PrepareFileListAction">
+			type="com.medias.megapoli.struts.actions.PrepareFileListAction">
 			<forward name="success" path="/data/upload/listFiles.jsp"/>
 		</action>
 		<action
 			path="/PrepareFileListAccess"
-			type="org.medias.megapoli.struts.actions.PrepareFileListAccessAction">
+			type="com.medias.megapoli.struts.actions.PrepareFileListAccessAction">
 			<forward name="success" path="/data/access/listFiles.jsp"/>
 		</action>		
 		<action
 			path="/UpdateMetadata"
-			type="org.medias.megapoli.struts.actions.UpdateMetadataAction"
+			type="com.medias.megapoli.struts.actions.UpdateMetadataAction"
 			name="metadataForm"
 			validate="true"
@@ -276,5 +276,5 @@
 		<action
 			path="/Upload"
-			type="org.medias.megapoli.struts.actions.UploadAction"
+			type="com.medias.megapoli.struts.actions.UploadAction"
 			name="uploadForm"
 			validate="true"
@@ -285,5 +285,5 @@
 		<action
 			path="/SendFileToClient"
-			type="org.medias.megapoli.struts.actions.SendFileToClientAction"
+			type="com.medias.megapoli.struts.actions.SendFileToClientAction"
 			input="/data/access/listFiles.jsp">
 <!-- 			<forward name="success" path="/data/upload/listFiles.jsp"/> -->
@@ -291,5 +291,5 @@
 		<action
 			path="/ParametresAccess"
-			type="org.medias.megapoli.struts.actions.ParametresAccessAction"
+			type="com.medias.megapoli.struts.actions.ParametresAccessAction"
 			name="parametresForm">
 			<forward name="success" path="/data/access/param.jsp"/>
@@ -297,5 +297,5 @@
 		<action
 			path="/CapteursAccess"
-			type="org.medias.megapoli.struts.actions.CapteursAccessAction"
+			type="com.medias.megapoli.struts.actions.CapteursAccessAction"
 			name="capteursForm">
 			<forward name="success" path="/data/access/capt.jsp"/>
@@ -303,5 +303,5 @@
 		<action
 			path="/JeuxAccess"
-			type="org.medias.megapoli.struts.actions.JeuxAccessAction"
+			type="com.medias.megapoli.struts.actions.JeuxAccessAction"
 			name="jeuxForm">
 			<forward name="success" path="/data/access/jeux.jsp"/>
@@ -309,5 +309,5 @@
 		<action
 			path="/FichiersAccess"
-			type="org.medias.megapoli.struts.actions.FichiersAccessAction"
+			type="com.medias.megapoli.struts.actions.FichiersAccessAction"
 			name="fichiersForm">
 			<forward name="success" path="/data/access/files.jsp"/>
@@ -315,5 +315,5 @@
 		<action
 			path="/PlateformesAccess"
-			type="org.medias.megapoli.struts.actions.PlateformesAccessAction"
+			type="com.medias.megapoli.struts.actions.PlateformesAccessAction"
 			name="plateformesForm">
 			<forward name="success" path="/data/access/plat.jsp"/>
@@ -321,5 +321,5 @@
 		<action
 			path="/DataAccess"
-			type="org.medias.megapoli.struts.actions.DataAccessAction"
+			type="com.medias.megapoli.struts.actions.DataAccessAction"
 			name="datasForm"
 			validate="false">
@@ -328,5 +328,5 @@
 		<action 
 			path="/DataSubmit"
-			type="org.medias.megapoli.struts.actions.DataSubmitAction"
+			type="com.medias.megapoli.struts.actions.DataSubmitAction"
 			input="/data/access/extract.jsp"
 			name="datasForm"
@@ -338,5 +338,5 @@
 		<action 
 			path="/DataExtract"
-			type="org.medias.megapoli.struts.actions.DataExtractAction"
+			type="com.medias.megapoli.struts.actions.DataExtractAction"
 			input="/data/access/extract2.jsp"
 			name="datasForm">
@@ -346,5 +346,5 @@
 		<action
 			path="/DescParametre"
-			type="org.medias.megapoli.struts.actions.DescParametreAction"
+			type="com.medias.megapoli.struts.actions.DescParametreAction"
 			name="parametreForm">
 			<forward name="success" path="/data/access/desc_param.jsp"/>
@@ -352,5 +352,5 @@
 		<action
 			path="/DescCapteur"
-			type="org.medias.megapoli.struts.actions.DescCapteurAction"
+			type="com.medias.megapoli.struts.actions.DescCapteurAction"
 			name="capteurForm">
 			<forward name="success" path="/data/access/desc_capt.jsp"/>
@@ -358,5 +358,5 @@
 		<action
 			path="/DescPlateforme"
-			type="org.medias.megapoli.struts.actions.DescPlateformeAction"
+			type="com.medias.megapoli.struts.actions.DescPlateformeAction"
 			name="plateformeForm">
 			<forward name="success" path="/data/access/desc_plat.jsp"/>
@@ -364,9 +364,9 @@
 		<action
 			path="/ZipGame"
-			type="org.medias.megapoli.struts.actions.ZipGameAction">
+			type="com.medias.megapoli.struts.actions.ZipGameAction">
 		</action>
 		<action
 			path="/Disconnect"
-			type="org.medias.megapoli.struts.actions.DisconnectAction">
+			type="com.medias.megapoli.struts.actions.DisconnectAction">
 			<forward name="success" path="/index.jsp"/>
 		</action>
Index: /ether_megapoli/trunk/web/resources/js/medias/scw.js
===================================================================
--- /ether_megapoli/trunk/web/resources/js/medias/scw.js	(revision 155)
+++ /ether_megapoli/trunk/web/resources/js/medias/scw.js	(revision 155)
@@ -0,0 +1,1892 @@
+// *****************************************************************************
+//      Simple Calendar Widget - Cross-Browser Javascript pop-up calendar.
+//
+//   Copyright (C) 2005-2007  Anthony Garrett
+//
+//   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, it is available at
+//   the GNU web site (http://www.gnu.org/) or by writing to the
+//   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+//   Boston, MA  02110-1301  USA
+//
+// *****************************************************************************
+//
+// Contact:   Sorry, I can't offer support for this but if you find a problem
+//            (or just want to tell me how useful you find it), please send
+//            me an email at scwfeedback@tarrget.info (Note the two Rs in
+//            tarrget).  I will try to fix problems quickly but this is a
+//            spare time thing for me.
+//
+// Credits:   I wrote this from scratch myself but I couldn't have done it
+//            without the superb "JavaScript The Definitive Guide" by David
+//            Flanagan (Pub. O'Reilly ISBN 0-596-00048-0).  I also recognise
+//            a contribution from my experience with PopCalendar 4.1 by
+//            Liming(Victor) Weng.
+//
+// Link back: Please give me credit and link back to my page.  To ensure that
+//            search engines give my page a higher ranking you can add the
+//            following HTML to any indexed page on your web site:
+//
+//            <A HREF="http://www.tarrget.info/calendar/scw.htm">
+//              Simple Calendar Widget by Anthony Garrett
+//            </A>
+//
+// Features:  Easily customised
+//                  (output date format, colours, language, year range and
+//                   week start day)
+//            Accepts a date as input
+//                  (see comments below for formats).
+//            Cross-browser code tested against;
+//                  Internet Explorer 6.0.28     Mozilla  1.7.1
+//                  Opera             7.52+      Firefox  0.9.1+
+//                  Konqueror         3.4.0      Flock    0.4.9
+//
+// How to add the Calendar to your page:
+//            This script needs to be defined for your page so, immediately
+//            after the BODY tag add the following line;
+//
+//                  <script type='Text/JavaScript' src='scw.js'></script>
+//
+//            Your root directory of the web site should also contain an empty
+//            file called "scwblank.html". See
+//                  http://www.tarrget.info/calendar/IEnightmare.html
+//            for a full explanation.
+//
+// How to use the Calendar once it is defined for your page:
+//
+//            Simply choose an event to trigger the calendar (like an onClick
+//            or an onMouseOver) and an element to work on (for the calendar
+//            to take its initial date from and write its output date to) then
+//            write it like this;
+//
+//                  <<event>>="scwShow(<<element>>,event);"
+//
+//            e.g. onClick="scwShow(scwID('myElement'),event);"
+//            or   onMouseOver="scwShow(this,event);"
+//
+//            NOTE: If you wish to use the calendar with an Anchor tag, do
+//                  not use the syntax:   href="javascript:scwShow(...)"
+//                  Instead you should use the following;
+//
+//                  <a href="#" onclick="scwShow(<<element>>,event);return false;">
+//                      <<your text>>
+//                  </a>
+//
+//            If you are using a text node then specify the text's parent node
+//            in the function call. The date should be the only text under that
+//            node;
+//
+//            e.g.  <p onclick="scwShow(this,event);"><<date>></p>
+//
+//            You can also disable days of the week by adding arguments to the
+//            call to scwShow.  The values should be Sunday = 0 through to
+//            Saturday = 6.  A call to scwShow with Friday and Monday disabled
+//            would look something like this;
+//
+//                  scwShow(<<element>>,event,5,1);
+//
+//            Finally you can use the following technique to run a function
+//            when the calendar closes:
+//
+//                  scwNextAction=<<function>>.runsAfterSCW(this,<<arguments>>);
+//                  scwShow(<<element>>,event <<,optional arguments above>>);
+//
+//            Where <<function>> is a function defined on the calling page
+//            and <<arguments>> is the list of arguments being passed to that
+//            function.
+//
+//      No event? No problem!
+//
+//            Normally the calendar will be triggered by an event but if you wish to
+//            control it in code and the event is not available to you, simply pass
+//            an element as the second parameter;
+//
+//            E.G.  scwShow(<<target element>>,<<source element>>);
+//                  as in: scwShow(this,this);
+//
+//            ------------------------------------------------------------------
+//            Here's an extremely trivial but fully functioning example page
+//            showing two of the ways to trigger the calendar;
+//
+//            <html>
+//                <head><title>Basic Example</title></head>
+//                <body>
+//                    <script type='text/JavaScript' src='scw.js'></script>
+//                    <p onclick='scwShow(this,event);'>06-Dec-2006</p>
+//                    <input onclick='scwShow(this,event);' value='07-Dec-2006' />
+//                    <br/><br/>
+//                    <a href='#' onclick='scwShow(this,event);return false;'>
+//                        08-Dec-2006
+//                    </a>
+//                </body>
+//            </html>
+//
+// *****************************************************************************
+//
+// See http://www.tarrget.info/calendar/scw.htm for a complete version history
+//
+// Version   Date        By               Description
+// =======   ====        ===============  ===========
+//   3.58    2007-04-04  Anthony Garrett  Resolved an error caused when the date
+//                                         range does not include the current year.
+//                                         Thanks to Steve Davis for letting me know.
+//
+//                                        Fixed "Today" selector display which
+//                                         was incorrectly visible when year range
+//                                         ended last year. (Also the result of
+//                                         investigations based on Steve Davis'
+//                                         feedback).
+//
+//   3.59    2007-06-13  Anthony Garrett  Added Verdana to font list of
+//                                         calendar's CSS.  Resolves rendering
+//                                         bug in Safari Beta 3 for Windows.
+//
+//   3.60    2007-07-31  Anthony Garrett  Fixed javascript error that occurred
+//                                         when the target element had no value
+//                                         attribute.  The error had no impact
+//                                         on the behaviour of the script.  Thanks
+//                                         to John Phelps for reporting this bug.
+//
+//   3.70    2007-09-21  Anthony Garrett  Updated the event trapping to make it
+//                                         less intrusive on the page body.
+//                                         NOTE: This requires that a calendar's
+//                                         second parameter should be the calling
+//                                         event (not the calling object as in
+//                                         previous versions).
+//                                         Thanks to Steve Davis for the bug report
+//                                         that led to this change.
+//
+//                                        Fixed a bug that caused undelimited
+//                                         dates to be handled incorrectly. They
+//                                         are now parsed against the full date
+//                                         output format then checked for validity.
+//                                         Thanks to Dan Wood for raising this bug.
+//
+//                                        Replaced the date input sequence user
+//                                         configuration setting with parsing the
+//                                         sequence from the full format. New users
+//                                         are often confused by the sequence and
+//                                         in practice (to allow the calendar's date
+//                                         output to be used for input) the sequence
+//                                         must always match the full format element
+//                                         order.
+//
+//                                        Extended IFRAME backing to all calendar objects
+//                                         in order to improve calendar display over
+//                                         some embedded applets and objects.  Thanks to
+//                                         Stanko Kupcevic for his feedback on this.
+//                                         NOTE: It is not possible to protect any
+//                                         JavaScript object displayed over an
+//                                         embedded DYNAMIC (and, therefore refreshed)
+//                                         object because browsers usually do not
+//                                         directly control the screen handling within
+//                                         the object.  The best advice therefore remains
+//                                         to design pages in such a way that the calendar
+//                                         does not overlap embedded objects.
+//
+//  3.71     2008-12-14  Anthony Garrett  Restored the ability to use an element
+//                                         as the second parameter when opening a
+//                                         calendar while retaining the option
+//                                         of passing an event. Thanks to Thierry Blind
+//                                         and Sergey Snovsky for the feedback.
+//
+//  3.72     2008-02-24  Anthony Garrett  Trapped calls to script with only a
+//                                         NAME attribute is set for the target
+//                                         element when the script really requires
+//                                         an ID attribute.  This is the most
+//                                         frequent mistake reported to me.
+//
+//  3.73     2008-04-11  Anthony Garrett  Corrected the input month name parsing
+//                                         so that it set the calendar to the
+//                                         right month when long month names used.
+//                                         Thanks to Ben Diamand for this bug report.
+//
+//  3.80     2008-04-29  Anthony Garrett  Added optional auto-positioning of the
+//                                         calendar when its normal position would
+//                                         go off the visible area.
+//                                         Thanks to Chandramouli Iyer for this
+//                                         suggestion.
+//
+//  3.90     2008-05-05  Anthony Garrett  Added an optional "Clear" button for
+//                                         use when handling a read-only text
+//                                         input element. Thanks to Sanjay Gangwal
+//                                         for his suggestion.
+// *****************************************************************************
+
+// ************************************
+// Start of Simple Calendar Widget Code
+// ************************************
+
+// This date is used throughout to determine today's date.
+
+    var scwDateNow = new Date(Date.parse(new Date().toDateString()));
+
+//******************************************************************************
+//------------------------------------------------------------------------------
+// Customisation section
+//------------------------------------------------------------------------------
+//******************************************************************************
+
+    // Set the bounds for the calendar here...
+    // If you want the year to roll forward you can use something like this...
+    //      var scwBaseYear = scwDateNow.getFullYear()-5;
+    // alternatively, hard code a date like this...
+    //      var scwBaseYear = 1990;
+
+    var scwBaseYear        = scwDateNow.getFullYear()-10;
+
+    // How many years do want to be valid and to show in the drop-down list?
+
+    var scwDropDownYears   = 20;
+
+    // All language-dependent changes can be made here...
+
+    // If you wish to work in a single language (other than English) then
+    // just replace the English (in the function scwSetLanguage below) with
+    // your own text.
+
+    // Using multiple languages:
+    // In order to keep this script to a resonable size I have not included
+    // languages here.  You can set language fields in a function that you
+    // should call  scwSetLanguage  the script will use your languages.
+    // I have included all the translations that have been sent to me in
+    // such a function on the demonstration page.
+
+    var scwLanguage;
+
+    function scwSetDefaultLanguage()
+        {try
+            {scwSetLanguage();}
+         catch (exception)
+            {// English
+             scwToday               = 'Today:';
+             scwClear               = 'Clear';
+             scwDrag                = 'click here to drag';
+             scwArrMonthNames       = ['Jan','Feb','Mar','Apr','May','Jun',
+                                       'Jul','Aug','Sep','Oct','Nov','Dec'];
+             scwArrWeekInits        = ['S','M','T','W','T','F','S'];
+             scwInvalidDateMsg      = 'The entered date is invalid.\n';
+             scwOutOfRangeMsg       = 'The entered date is out of range.';
+             scwDoesNotExistMsg     = 'The entered date does not exist.';
+             scwInvalidAlert        = ['Invalid date (',') ignored.'];
+             scwDateDisablingError  = ['Error ',' is not a Date object.'];
+             scwRangeDisablingError = ['Error ',
+                                       ' should consist of two elements.'];
+            }
+        };
+
+    // Note:  Always start the scwArrWeekInits array with your string for
+    //        Sunday whatever scwWeekStart (below) is set to.
+
+    // scwWeekStart determines the start of the week in the display
+    // Set it to: 0 (Zero) for Sunday, 1 (One) for Monday etc..
+
+    var scwWeekStart       =    1;
+
+    // The week start day for the display is taken as the week start
+    // for week numbering.  This ensures that only one week number
+    // applies to one line of the calendar table.
+    // [ISO 8601 begins the week with Day 1 = Monday.]
+
+    // If you want to see week numbering on the calendar, set
+    // this to true.  If not, false.
+
+    var scwWeekNumberDisplay    = false;
+
+    // Week numbering rules are generally based on a day in the week
+    // that determines the first week of the year.  ISO 8601 uses
+    // Thursday (day four when Sunday is day zero).  You can alter
+    // the base day here.
+
+    // See http://www.cl.cam.ac.uk/~mgk25/iso-time.html for more information
+
+    var scwWeekNumberBaseDay    = 4;
+
+    // Each of the calendar's alert message types can be disabled
+    // independently here.
+
+    var scwShowInvalidDateMsg       = true,
+        scwShowOutOfRangeMsg        = true,
+        scwShowDoesNotExistMsg      = true,
+        scwShowInvalidAlert         = true,
+        scwShowDateDisablingError   = true,
+        scwShowRangeDisablingError  = true;
+
+    // Set the allowed input date delimiters here...
+    // E.g. To set the rising slash, hyphen, full-stop (aka stop or point),
+    //      comma and space as delimiters use
+    //              var scwArrDelimiters   = ['/','-','.',',',' '];
+
+    var scwArrDelimiters   = ['/','-','.',',',' '];
+
+    // Set the format for the displayed 'Today' date and for the output
+    // date here.
+    //
+    // The format is described using delimiters of your choice (as set
+    // in scwArrDelimiters above) and case insensitive letters D, M and Y.
+    //
+    // NOTE: If no delimiters are input then the date output format is used
+    //       to parse the value.  This allows less flexiblility in the input
+    //       value than using delimiters but an accurately entered date
+    //       remains parsable.
+    //
+    // Definition               Returns
+    // ----------               -------
+    // D            date in the month without zero filling
+    // DD           date in the month left zero filled
+    // M            month number without zero filling
+    // MM           month number left zero filled
+    // MMM          month string from scwArrMonthNames
+    // YY           year number in two digits
+    // YYYY         year number in four digits
+
+    // Displayed "Today" date format
+
+    var scwDateDisplayFormat = 'dd/mm/yy';     // e.g. 'MMM-DD-YYYY' for the US
+
+    // Output date format
+
+    var scwDateOutputFormat  = 'DD/MM/YYYY'; // e.g. 'MMM-DD-YYYY' for the US
+
+    // Note: The delimiters used should be in scwArrDelimiters.
+
+    // scwZindex controls how the pop-up calendar interacts with the rest
+    // of the page.  It is usually adequate to leave it as 1 (One) but I
+    // have made it available here to help anyone who needs to alter the
+    // level in order to ensure that the calendar displays correctly in
+    // relation to all other elements on the page.
+
+    var scwZindex          = 1;
+
+    // Personally I like the fact that entering 31-Sep-2005 displays
+    // 1-Oct-2005, however you may want that to be an error.  If so,
+    // set scwBlnStrict = true.  That will cause an error message to
+    // display and the selected month is displayed without a selected
+    // day. Thanks to Brad Allan for his feedback prompting this feature.
+
+    var scwBlnStrict       = false;
+
+    // If you are using ReadOnly or Disabled fields to return the date
+    // value into, it can be useful to show a button on the calendar
+    // that allows the value to be cleared.  If you want to do that,
+    // set scwClearButton = true;
+
+    var scwClearButton     = true;
+
+    // The calendar will position itself aligned with the bottom left
+    // corner of the target element.  If automatic positioning is turned
+    // on  with  scwAutoPosition = true  then if that would cause the
+    // calendar to display off the visible screen, it is shifted to
+    // a position that is visible.
+
+    var scwAutoPosition    = true;
+
+    // If you wish to disable any displayed day, e.g. Every Monday,
+    // you can do it by setting the following array.  The array elements
+    // match the displayed cells.
+    //
+    // You could put something like the following in your calling page
+    // to disable all weekend days;
+    //
+    //  for (var i=0;i<scwEnabledDay.length;i++)
+    //      {if (i%7%6==0) scwEnabledDay[i] = false;}
+    //
+    // The above approach will allow you to disable days of the week
+    // for the whole of your page easily.  If you need to set different
+    // disabled days for a number of date input fields on your page
+    // there is an easier way: You can pass additional arguments to
+    // scwShow. The syntax is described at the top of this script in
+    // the section:
+    //    "How to use the Calendar once it is defined for your page:"
+    //
+    // It is possible to use these two approaches in combination.
+
+    var scwEnabledDay      = [true, true, true, true, true, true, true,
+                              true, true, true, true, true, true, true,
+                              true, true, true, true, true, true, true,
+                              true, true, true, true, true, true, true,
+                              true, true, true, true, true, true, true,
+                              true, true, true, true, true, true, true];
+
+    // You can disable any specific date (e.g. 24-Jan-2006 or Today) by
+    // creating an element of the array scwDisabledDates as a date object
+    // with the value you want to disable.  Date ranges can be disabled
+    // by placing an array of two values (Start and End) into an element
+    // of this array.
+
+    var scwDisabledDates   = new Array();
+
+    // e.g. To disable 10-Dec-2005:
+    //          scwDisabledDates[0] = new Date(2005,11,10);
+    //
+    //      or a range from 2004-Dec-25 to 2005-Jan-01:
+    //          scwDisabledDates[1] = [new Date(2004,11,25),new Date(2005,0,1)];
+    //
+    // Remember that Javascript months are Zero-based.
+
+    // The disabling by date and date range does prevent the current day
+    // from being selected.  Disabling days of the week does not so you can set
+    // the scwActiveToday value to false to prevent selection.
+
+    var scwActiveToday = true;
+
+    // Dates that are out of the displayed month are shown at the start
+    // (unless the month starts on the first day of the week) and end of each
+    // month.
+    //
+    // Set scwOutOfMonthDisable to  true  to disable these dates (or  false
+    // to allow their selection).
+    //
+    // Set scwOutOfMonthHide    to  true  to hide    these dates (or  false
+    // to make them visible).
+
+    var scwOutOfMonthDisable = false;
+    var scwOutOfMonthHide    = false;
+
+    // Dates that are out of the specified range can be displayed at the start
+    // of the very first month and end of the very last.  Set
+    // scwOutOfRangeDisable to  true  to disable these dates (or  false  to
+    // allow their selection).
+
+    var scwOutOfRangeDisable = true;
+
+    // If you want a special format for the cell that contains the current day
+    // set this to true.  This sets a thin border around the cell in the colour
+    // set by scwTodayCellBorderColour.
+
+    var scwFormatTodayCell = true;
+    var scwTodayCellBorderColour = 'red';
+
+    // You can allow the calendar to be dragged around the screen by
+    // using the setting scwAllowDrag to true.
+    // I can't say I recommend it because of the danger of the user
+    // forgetting which date field the calendar will update when there
+    // are multiple date fields on a page.
+
+    var scwAllowDrag = false;
+
+    // Closing the calendar by clicking on it (rather than elsewhere on the
+    // main page) can be inconvenient.  The scwClickToHide boolean value
+    // controls this feature.
+
+    var scwClickToHide = false;
+
+    // I have made every effort to isolate the pop-up script from any
+    // CSS defined on the main page but if you have anything set that
+    // affects the pop-up (or you may want to change the way it looks)
+    // then you can address it in the following style sheets.
+
+    document.writeln(
+        '<style type="text/css">'                                       +
+            '.scw           {padding:1px;vertical-align:middle;}'       +
+            'iframe.scw     {position:absolute;z-index:' + scwZindex    +
+                            ';top:0px;left:0px;visibility:hidden;'      +
+                            'width:1px;height:1px;}'                    +
+            'table.scw      {padding:0px;visibility:hidden;'            +
+                            'position:absolute;cursor:default;'         +
+                            'width:200px;top:0px;left:0px;'             +
+                            'z-index:' + (scwZindex+1)                  +
+                            ';text-align:center;}'                      +
+        '</style>'  );
+
+    // This style sheet can be extracted from the script and edited into regular
+    // CSS (by removing all occurrences of + and '). That can be used as the
+    // basis for themes. Classes are described in comments within the style
+    // sheet.
+
+    document.writeln(
+        '<style type="text/css">'                                       +
+            '/* IMPORTANT:  The SCW calendar script requires all '      +
+            '               the classes defined here.'                  +
+            '*/'                                                        +
+            'table.scw      {padding:       1px;'                       +
+                            'vertical-align:middle;'                    +
+                            'border:        ridge 2px;'                 +
+                            'font-size:     10pt;'                      +
+                            'font-family:   ' +
+                                   'Verdana,Arial,Helvetica,Sans-Serif;'+
+                            'font-weight:   bold;}'                     +
+            'td.scwDrag,'                                               +
+            'td.scwHead                 {padding:       0px 0px;'       +
+                                        'text-align:    center;}'       +
+            'td.scwDrag                 {font-size:     8pt;}'          +
+            'select.scwHead             {margin:        3px 1px;'       +
+                                        'text-align:    center;}'       +
+            'input.scwHead              {height:        22px;'          +
+                                        'width:         22px;'          +
+                                        'vertical-align:middle;'        +
+                                        'text-align:    center;'        +
+                                        'margin:        2px 1px;'       +
+                                        'font-weight:   bold;'          +
+                                        'font-size:     10pt;'          +
+                                        'font-family:   fixedSys;}'     +
+            'td.scwWeekNumberHead,'                                     +
+            'td.scwWeek                 {padding:       0px;'           +
+                                        'text-align:    center;'        +
+                                        'font-weight:   bold;}'         +
+            'td.scwNow,'                                                +
+            'td.scwNowHover,'                                           +
+            'td.scwNow:hover,'                                          +
+            'td.scwNowDisabled          {padding:       0px;'           +
+                                        'text-align:    center;'        +
+                                        'vertical-align:middle;'        +
+                                        'font-weight:   normal;}'       +
+            'table.scwCells             {text-align:    right;'         +
+                                        'font-size:     8pt;'           +
+                                        'width:         96%;}'          +
+            'td.scwCells,'                  +
+            'td.scwCellsHover,'             +
+            'td.scwCells:hover,'            +
+            'td.scwCellsDisabled,'          +
+            'td.scwCellsExMonth,'           +
+            'td.scwCellsExMonthHover,'      +
+            'td.scwCellsExMonth:hover,'     +
+            'td.scwCellsExMonthDisabled,'   +
+            'td.scwCellsWeekend,'           +
+            'td.scwCellsWeekendHover,'      +
+            'td.scwCellsWeekend:hover,'     +
+            'td.scwCellsWeekendDisabled,'   +
+            'td.scwInputDate,'              +
+            'td.scwInputDateHover,'         +
+            'td.scwInputDate:hover,'        +
+            'td.scwInputDateDisabled,'      +
+            'td.scwWeekNo,'                 +
+            'td.scwWeeks                {padding:           3px;'       +
+                                        'width:             16px;'      +
+                                        'height:            16px;'      +
+                                        'border-width:      1px;'       +
+                                        'border-style:      solid;'     +
+                                        'font-weight:       bold;'      +
+                                        'vertical-align:    middle;}'   +
+            '/* Blend the colours into your page here...    */'         +
+            '/* Calendar background */'                                 +
+            'table.scw                  {background-color:  #04155D;}'  +
+            '/* Drag Handle */'                                         +
+            'td.scwDrag                 {background-color:  #9999CC;'   +
+                                        'color:             #CCCCFF;}'  +
+            '/* Week number heading */'                                 +
+            'td.scwWeekNumberHead       {color:             #6666CC;}'  +
+            '/* Week day headings */'                                   +
+            'td.scwWeek                 {color:             #CCCCCC;}'  +
+            '/* Week numbers */'                                        +
+            'td.scwWeekNo               {background-color:  #776677;'   +
+                                        'color:             #CCCCCC;}'  +
+            '/* Enabled Days */'                                        +
+            '/* Week Day */'                                            +
+            'td.scwCells                {background-color:  #CCCCCC;'   +
+                                        'color:             #000000;}'  +
+            '/* Day matching the input date */'                         +
+            'td.scwInputDate            {background-color:  #CC9999;'   +
+                                        'color:             #A90303;}'  +
+            '/* Weekend Day */'                                         +
+            'td.scwCellsWeekend         {background-color:  #CCCCCC;'   +
+                                        'color:             #CC6666;}'  +
+            '/* Day outside the current month */'                       +
+            'td.scwCellsExMonth         {background-color:  #CCCCCC;'   +
+                                        'color:             #666666;}'  +
+            '/* Today selector */'                                      +
+            'td.scwNow                  {background-color:  #04155D;'   +
+                                        'color:             #FFFFFF;}'  +
+            '/* Clear Button */'                                        +
+            'td.scwClear                {padding:           0px;}'      +
+            'input.scwClear             {padding:           0px;'       +
+                                        'text-align:        center;'    +
+                                        'font-size:         8pt;}'      +
+            '/* MouseOver/Hover formatting '                            +
+            '       If you want to "turn off" any of the formatting '   +
+            '       then just set to the same as the standard format'   +
+            '       above.'                                             +
+            ' '                                                         +
+            '       Note: The reason that the following are'            +
+            '       implemented using both a class and a :hover'        +
+            '       pseudoclass is because Opera handles the rendering' +
+            '       involved in the class swap very poorly and IE6 '    +
+            '       (and below) only implements pseudoclasses on the'   +
+            '       anchor tag.'                                        +
+            '*/'                                                        +
+            '/* Active cells */'                                        +
+            'td.scwCells:hover,'                                        +
+            'td.scwCellsHover           {background-color:  #FFFF00;'   +
+                                        'cursor:            pointer;'   +
+                                        'color:             #000000;}'  +
+            '/* Day matching the input date */'                         +
+            'td.scwInputDate:hover,'                                    +
+            'td.scwInputDateHover       {background-color:  #FFFF00;'   +
+                                        'cursor:            pointer;'   +
+                                        'color:             #000000;}'  +
+            '/* Weekend cells */'                                       +
+            'td.scwCellsWeekend:hover,'                                 +
+            'td.scwCellsWeekendHover    {background-color:  #FFFF00;'   +
+                                        'cursor:            pointer;'   +
+                                        'color:             #000000;}'  +
+            '/* Day outside the current month */'                       +
+            'td.scwCellsExMonth:hover,'                                 +
+            'td.scwCellsExMonthHover    {background-color:  #FFFF00;'   +
+                                        'cursor:            pointer;'   +
+                                        'color:             #000000;}'  +
+            '/* Today selector */'                                      +
+            'td.scwNow:hover,'                                          +
+            'td.scwNowHover             {color:             #FFFF00;'   +
+                                        'cursor:            pointer;'   +
+                                        'font-weight:       bold;}'     +
+            '/* Disabled cells */'                                      +
+            '/* Week Day */'                                            +
+            '/* Day matching the input date */'                         +
+            'td.scwInputDateDisabled    {background-color:  #999999;'   +
+                                        'color:             #000000;}'  +
+            'td.scwCellsDisabled        {background-color:  #999999;'   +
+                                        'color:             #000000;}'  +
+            '/* Weekend Day */'                                         +
+            'td.scwCellsWeekendDisabled {background-color:  #999999;'   +
+                                        'color:             #CC6666;}'  +
+            '/* Day outside the current month */'                       +
+            'td.scwCellsExMonthDisabled {background-color:  #999999;'   +
+                                        'color:             #666666;}'  +
+            'td.scwNowDisabled          {background-color:  #6666CC;'   +
+                                        'color:             #FFFFFF;}'  +
+        '</style>'
+                    );
+
+//******************************************************************************
+//------------------------------------------------------------------------------
+// End of customisation section
+//------------------------------------------------------------------------------
+//******************************************************************************
+
+//  Variables required by both scwShow and scwShowMonth
+
+    var scwTargetEle,
+        scwTriggerEle,
+        scwMonthSum            = 0,
+        scwBlnFullInputDate    = false,
+        scwPassEnabledDay      = new Array(),
+        scwSeedDate            = new Date(),
+        scwParmActiveToday     = true,
+        scwWeekStart           = scwWeekStart%7,
+        scwToday,
+        scwClear,
+        scwDrag,
+        scwArrMonthNames,
+        scwArrWeekInits,
+        scwInvalidDateMsg,
+        scwOutOfRangeMsg,
+        scwDoesNotExistMsg,
+        scwInvalidAlert,
+        scwDateDisablingError,
+        scwRangeDisablingError;
+
+    // Add a method to format a date into the required pattern
+
+    Date.prototype.scwFormat =
+        function(scwFormat)
+            {var charCount = 0,
+                 codeChar  = '',
+                 result    = '';
+
+             for (var i=0;i<=scwFormat.length;i++)
+                {if (i<scwFormat.length && scwFormat.charAt(i)==codeChar)
+                        {// If we haven't hit the end of the string and
+                         // the format string character is the same as
+                         // the previous one, just clock up one to the
+                         // length of the current element definition
+                         charCount++;
+                        }
+                 else   {switch (codeChar)
+                            {case 'y': case 'Y':
+                                result += (this.getFullYear()%Math.
+                                            pow(10,charCount)).toString().
+                                            scwPadLeft(charCount);
+                                break;
+                             case 'm': case 'M':
+                                // If we find an M, check the number of them to
+                                // determine whether to get the month number or
+                                // the month name.
+                                result += (charCount<3)
+                                            ?(this.getMonth()+1).
+                                                toString().scwPadLeft(charCount)
+                                            :scwArrMonthNames[this.getMonth()];
+                                break;
+                             case 'd': case 'D':
+                                // If we find a D, get the date and format it
+                                result += this.getDate().toString().
+                                            scwPadLeft(charCount);
+                                break;
+                             default:
+                                // Copy any unrecognised characters across
+                                while (charCount-- > 0) {result += codeChar;}
+                            }
+
+                         if (i<scwFormat.length)
+                            {// Store the character we have just worked on
+                             codeChar  = scwFormat.charAt(i);
+                             charCount = 1;
+                            }
+                        }
+                }
+             return result;
+            };
+
+    // Add a method to left pad zeroes
+
+    String.prototype.scwPadLeft =
+        function(padToLength)
+            {var result = '';
+             for (var i=0;i<(padToLength - this.length);i++) {result += '0';}
+             return (result + this);
+            };
+
+    // Set up a closure so that any next function can be triggered
+    // after the calendar has been closed AND that function can take
+    // arguments.
+
+    Function.prototype.runsAfterSCW =
+        function()  {var func = this,
+                         args = new Array(arguments.length);
+
+                     for (var i=0;i<args.length;++i) {args[i] = arguments[i];}
+
+                     return function()
+                        {// concat/join the two argument arrays
+                         for (var i=0;i<arguments.length;++i) {args[args.length] = arguments[i];}
+                         return (args.shift()==scwTriggerEle)?func.apply(this, args):null;
+                        };
+                    };
+
+    // Set up some shortcuts
+
+    function scwID(id)
+        {if (document.getElementById(id) || (!document.getElementById(id) && document.getElementsByName(id).length==0))
+                                    // IF   An ID attribute is assigned
+                                    // OR   No ID attribute is assigned but using IE and Opera
+                                    //          (which will find the NAME attribute value using getElementById)
+                                    // OR   No element has this ID or NAME attribute value
+                                    //          (used internally by the script)
+                                    // THEN Return the required element.
+                {return document.getElementById(id);}
+         else   {if (document.getElementsByName(id).length==1)
+                                // IF   No ID attribute is assigned
+                                // AND  Using a standards-based browser
+                                // AND  Only one element has the NAME attribute set to the value
+                                // THEN Return the required element (using the NAME attribute value).
+                        {return document.getElementsByName(id)[0];}
+                 else   {if (document.getElementsByName(id).length>1)
+                            {   // IF   No ID attribute is assigned
+                                // AND  using a standards-based browser
+                                // AND  more than one element has the NAME attribute set to the value
+                                // THEN alert developer to fix the fault.
+                             alert( 'SCW' +
+                                    ' \nCannot uniquely identify element named: ' + id +
+                                    '.\nMore than one identical NAME attribute defined' +
+                                    '.\nSolution: Assign the required element a unique ID attribute value.');
+                            }
+                        }
+                }
+        };
+
+    // Use a global variable for the return value from the next action
+    // IE fails to pass the function through if the target element is in
+    // a form and scwNextAction is not defined.
+
+    var scwNextActionReturn, scwNextAction;
+
+// ****************************************************************************
+// Start of Function Library
+//
+//  Exposed functions:
+//
+//      scwShow             Entry point for display of calendar,
+//                              called in main page.
+//      showCal             Legacy name of scwShow:
+//                              Passes only legacy arguments,
+//                              not the optional day disabling arguments.
+//
+//      scwShowMonth        Displays a month on the calendar,
+//                              Called when a month is set or changed.
+//
+//      scwBeginDrag        Controls calendar dragging.
+//
+//      scwCancel           Called when the calendar background is clicked:
+//                              Calls scwStopPropagation and may call scwHide.
+//      scwHide             Hides the calendar, called on various events.
+//      scwStopPropagation  Stops the propagation of an event.
+//
+// ****************************************************************************
+
+    function showCal(scwEle,scwSource) {scwShow(scwEle,scwSource);};
+    function scwShowHide(scwEle,scwSource) {
+    	if (scwID('scw').style.visibility == '' || scwID('scw').style.visibility == 'hidden') {
+    		scwShow(scwEle,scwSource);
+    	} else {
+    		scwHide();
+    	}
+    }
+    function scwShow(scwEle,scwSource)
+        {if (!scwSource) {scwSource = window.event;}
+
+         if (scwSource.tagName) // Second parameter isn't an event it's an element
+            {var scwSourceEle = scwSource;
+
+             if (scwID('scwIE'))  {window.event.cancelBubble = true;}
+             else {scwSourceEle.parentNode.addEventListener('click',scwStopPropagation,false);}
+            }
+         else   // Second parameter is an event
+            {var scwSourceEle = (scwSource.target)
+                                    ?scwSource.target
+                                    :scwSource.srcElement;
+
+             // Stop the click event that opens the calendar from bubbling up to
+             // the document-level event handler that hides it!
+             if (scwSource.stopPropagation) {scwSource.stopPropagation();}
+             else                           {scwSource.cancelBubble = true;}
+            }
+
+         scwTriggerEle = scwSourceEle;
+
+         // Take any parameters that there might be from the third onwards as
+         // day numbers to be disabled 0 = Sunday through to 6 = Saturday.
+
+         scwParmActiveToday = true;
+
+         for (var i=0;i<7;i++)
+            {scwPassEnabledDay[(i+7-scwWeekStart)%7] = true;
+             for (var j=2;j<arguments.length;j++)
+                {if (arguments[j]==i)
+                    {scwPassEnabledDay[(i+7-scwWeekStart)%7] = false;
+                     if (scwDateNow.getDay()==i) {scwParmActiveToday = false;}
+                    }
+                }
+            }
+
+         //   If no value is preset then the seed date is
+         //      Today (when today is in range) OR
+         //      The middle of the date range.
+
+         scwSeedDate = scwDateNow;
+
+         // Find the date and Strip space characters from start and
+         // end of date input.
+
+         var scwDateValue = '';
+
+         if (scwEle.value) {scwDateValue = scwEle.value.replace(/^\s+/,'').replace(/\s+$/,'');}
+         else   {if (typeof scwEle.value == 'undefined')
+                    {var scwChildNodes = scwEle.childNodes;
+                     for (var i=0;i<scwChildNodes.length;i++)
+                        {if (scwChildNodes[i].nodeType == 3)
+                            {scwDateValue = scwChildNodes[i].nodeValue.replace(/^\s+/,'').replace(/\s+$/,'');
+                             if (scwDateValue.length > 0)
+                                {scwTriggerEle.scwTextNode = scwChildNodes[i];
+                                 scwTriggerEle.scwLength   = scwChildNodes[i].nodeValue.length;
+                                 break;
+                                }
+                            }
+                        }
+                    }
+                }
+
+         // Set the language-dependent elements
+
+         scwSetDefaultLanguage();
+
+         scwID('scwDragText').innerHTML = scwDrag;
+
+         scwID('scwMonths').options.length = 0;
+         for (var i=0;i<scwArrMonthNames.length;i++)
+            {scwID('scwMonths').options[i] = new Option(scwArrMonthNames[i],scwArrMonthNames[i]);}
+
+         scwID('scwYears').options.length = 0;
+         for (var i=0;i<scwDropDownYears;i++)
+            {scwID('scwYears').options[i] =  new Option((scwBaseYear+i),(scwBaseYear+i));}
+
+         for (var i=0;i<scwArrWeekInits.length;i++)
+            {scwID('scwWeekInit' + i).innerHTML = scwArrWeekInits[(i+scwWeekStart)%scwArrWeekInits.length];}
+
+         if (((new Date(scwBaseYear + scwDropDownYears, 0, 0)) > scwDateNow &&
+              (new Date(scwBaseYear, 0, 0))                    < scwDateNow) ||
+             (scwClearButton && (scwEle.readOnly || scwEle.disabled))
+            )   {scwID('scwFoot').style.display = '';
+                 scwID('scwNow').innerHTML = scwToday + ' ' + scwDateNow.scwFormat(scwDateDisplayFormat);
+                 scwID('scwClearButton').value = scwClear;
+                 if ((new Date(scwBaseYear + scwDropDownYears, 0, 0)) > scwDateNow &&
+                     (new Date(scwBaseYear, 0, 0))                    < scwDateNow
+                    )   {scwID('scwNow').style.display = '';
+                         if (scwClearButton && (scwEle.readOnly || scwEle.disabled))
+                                {scwID('scwClear').style.display   = '';
+                                 scwID('scwClear').style.textAlign = 'left';
+                                 scwID('scwNow').style.textAlign   = 'right';
+                                }
+                         else   {scwID('scwClear').style.display = 'none';
+                                 scwID('scwNow').style.textAlign = 'center';
+                                }
+                        }
+                 else   {scwID('scwClear').style.textAlign = 'center';
+                         scwID('scwClear').style.display = '';
+                         scwID('scwNow').style.display = 'none';
+                        }
+                }
+         else   {scwID('scwFoot').style.display = 'none';}
+
+         if (scwDateValue.length==0)
+            {// If no value is entered and today is within the range,
+             // use today's date, otherwise use the middle of the valid range.
+
+             scwBlnFullInputDate=false;
+
+             if ((new Date(scwBaseYear+scwDropDownYears,0,0))<scwSeedDate ||
+                 (new Date(scwBaseYear,0,1))                 >scwSeedDate
+                )
+                {scwSeedDate = new Date(scwBaseYear + Math.floor(scwDropDownYears / 2), 5, 1);}
+            }
+         else
+            {function scwInputFormat()
+                {var scwArrSeed = new Array(),
+                     scwArrInput = scwDateValue.split(new RegExp('[\\'+scwArrDelimiters.join('\\')+']+','g'));
+
+                 // "Escape" all the user defined date delimiters above -
+                 // several delimiters will need it and it does no harm for
+                 // the others.
+
+                 // Strip any empty array elements (caused by delimiters)
+                 // from the beginning or end of the array. They will
+                 // still appear in the output string if in the output
+                 // format.
+
+                 if (scwArrInput[0]!=null)
+                    {if (scwArrInput[0].length==0)                      {scwArrInput.splice(0,1);}
+                     if (scwArrInput[scwArrInput.length-1].length==0)   {scwArrInput.splice(scwArrInput.length-1,1);}
+                    }
+
+                 scwBlnFullInputDate = false;
+
+                 scwDateOutputFormat = scwDateOutputFormat.toUpperCase();
+
+                 // List all the allowed letters in the date format
+                 var template = ['D','M','Y'];
+
+                 // Prepare the sequence of date input elements
+                 var result = new Array();
+
+                 for (var i=0;i<template.length;i++)
+                    {if (scwDateOutputFormat.search(template[i])>-1)
+                        {result[scwDateOutputFormat.search(template[i])] = template[i];}
+                    }
+
+                 var scwDateSequence = result.join('');
+
+                 // Separate the elements of the date input
+                 switch (scwArrInput.length)
+                    {case 1:
+                        {if (scwDateOutputFormat.indexOf('Y')>-1 &&
+                             scwArrInput[0].length>scwDateOutputFormat.lastIndexOf('Y'))
+                            {scwArrSeed[0] = parseInt(scwArrInput[0].substring(scwDateOutputFormat.indexOf('Y'),
+                                                                               scwDateOutputFormat.lastIndexOf('Y')+1),10);
+                            }
+                         else   {scwArrSeed[0] = 0;}
+
+                         if (scwDateOutputFormat.indexOf('M')>-1 &&
+                             scwArrInput[0].length>scwDateOutputFormat.lastIndexOf('M'))
+                            {scwArrSeed[1] = scwArrInput[0].substring(scwDateOutputFormat.indexOf('M'),
+                                                                      scwDateOutputFormat.lastIndexOf('M')+1);
+                            }
+                         else   {scwArrSeed[1] = '6';}
+
+                         if (scwDateOutputFormat.indexOf('D')>-1 &&
+                             scwArrInput[0].length>scwDateOutputFormat.lastIndexOf('D'))
+                            {scwArrSeed[2] = parseInt(scwArrInput[0].substring(scwDateOutputFormat.indexOf('D'),
+                                                                               scwDateOutputFormat.lastIndexOf('D')+1),10);
+                            }
+                         else   {scwArrSeed[2] = 1;}
+
+                         if (scwArrInput[0].length==scwDateOutputFormat.length) {scwBlnFullInputDate = true;}
+                         break;
+                        }
+                     case 2:
+                        {// Year and Month entry
+                         scwArrSeed[0] =
+                             parseInt(scwArrInput[scwDateSequence.
+                                                    replace(/D/i,'').
+                                                    search(/Y/i)],10);  // Year
+                         scwArrSeed[1] = scwArrInput[scwDateSequence.
+                                                    replace(/D/i,'').
+                                                    search(/M/i)];      // Month
+                         scwArrSeed[2] = 1;                             // Day
+                         break;
+                        }
+                     case 3:
+                        {// Day Month and Year entry
+
+                         scwArrSeed[0] =
+                             parseInt(scwArrInput[scwDateSequence.
+                                                    search(/Y/i)],10);  // Year
+                         scwArrSeed[1] = scwArrInput[scwDateSequence.
+                                                    search(/M/i)];      // Month
+                         scwArrSeed[2] =
+                             parseInt(scwArrInput[scwDateSequence.
+                                                    search(/D/i)],10);  // Day
+
+                         scwBlnFullInputDate = true;
+                         break;
+                        }
+                     default:
+                        {// A stuff-up has led to more than three elements in
+                         // the date.
+                         scwArrSeed[0] = 0;     // Year
+                         scwArrSeed[1] = 0;     // Month
+                         scwArrSeed[2] = 0;     // Day
+                        }
+                    }
+
+                 // These regular expressions validate the input date format
+                 // to the following rules;
+                 //         Day   1-31 (optional zero on single digits)
+                 //         Month 1-12 (optional zero on single digits)
+                 //                     or case insensitive name
+                 //         Year  One, Two or four digits
+
+                 // Months names are as set in the language-dependent
+                 // definitions and delimiters are set just below there
+
+                 var scwExpValDay    = new RegExp('^(0?[1-9]|[1-2][0-9]|3[0-1])$'),
+                     scwExpValMonth  = new RegExp('^(0?[1-9]|1[0-2]|'        +
+                                                  scwArrMonthNames.join('|') +
+                                                  ')$','i'),
+                     scwExpValYear   = new RegExp('^([0-9]{1,2}|[0-9]{4})$');
+
+                 // Apply validation and report failures
+
+                 if (scwExpValYear.exec(scwArrSeed[0])  == null ||
+                     scwExpValMonth.exec(scwArrSeed[1]) == null ||
+                     scwExpValDay.exec(scwArrSeed[2])   == null
+                    )
+                    {if (scwShowInvalidDateMsg)
+                        {alert(scwInvalidDateMsg  +
+                               scwInvalidAlert[0] + scwDateValue +
+                               scwInvalidAlert[1]);}
+                     scwBlnFullInputDate = false;
+                     scwArrSeed[0] = scwBaseYear +
+                                     Math.floor(scwDropDownYears/2); // Year
+                     scwArrSeed[1] = '6';                            // Month
+                     scwArrSeed[2] = 1;                              // Day
+                    }
+
+                 // Return the  Year    in scwArrSeed[0]
+                 //             Month   in scwArrSeed[1]
+                 //             Day     in scwArrSeed[2]
+
+                 return scwArrSeed;
+                };
+
+             // Parse the string into an array using the allowed delimiters
+
+             scwArrSeedDate = scwInputFormat();
+
+             // So now we have the Year, Month and Day in an array.
+
+             //   If the year is one or two digits then the routine assumes a
+             //   year belongs in the 21st Century unless it is less than 50
+             //   in which case it assumes the 20th Century is intended.
+
+             if (scwArrSeedDate[0]<100) {scwArrSeedDate[0] += (scwArrSeedDate[0]>50)?1900:2000;}
+
+             // Check whether the month is in digits or an abbreviation
+
+             if (scwArrSeedDate[1].search(/\d+/)<0)
+                {for (i=0;i<scwArrMonthNames.length;i++)
+                    {if (scwArrSeedDate[1].toUpperCase()==scwArrMonthNames[i].toUpperCase())
+                        {scwArrSeedDate[1]=i+1;
+                         break;
+                        }
+                    }
+                }
+
+             scwSeedDate = new Date(scwArrSeedDate[0],scwArrSeedDate[1]-1,scwArrSeedDate[2]);
+            }
+
+         // Test that we have arrived at a valid date
+
+         if (isNaN(scwSeedDate))
+            {if (scwShowInvalidDateMsg) {alert(scwInvalidDateMsg + scwInvalidAlert[0] + scwDateValue + scwInvalidAlert[1]);}
+             scwSeedDate = new Date(scwBaseYear + Math.floor(scwDropDownYears/2),5,1);
+             scwBlnFullInputDate=false;
+            }
+         else
+            {// Test that the date is within range,
+             // if not then set date to a sensible date in range.
+
+             if ((new Date(scwBaseYear,0,1)) > scwSeedDate)
+                {if (scwBlnStrict && scwShowOutOfRangeMsg) {alert(scwOutOfRangeMsg);}
+                 scwSeedDate = new Date(scwBaseYear,0,1);
+                 scwBlnFullInputDate=false;
+                }
+             else
+                {if ((new Date(scwBaseYear+scwDropDownYears,0,0))<scwSeedDate)
+                    {if (scwBlnStrict && scwShowOutOfRangeMsg) {alert(scwOutOfRangeMsg);}
+                     scwSeedDate = new Date(scwBaseYear + Math.floor(scwDropDownYears)-1,11,1);
+                     scwBlnFullInputDate=false;
+                    }
+                 else
+                    {if (scwBlnStrict && scwBlnFullInputDate &&
+                          (scwSeedDate.getDate()      != scwArrSeedDate[2] ||
+                           (scwSeedDate.getMonth()+1) != scwArrSeedDate[1] ||
+                           scwSeedDate.getFullYear()  != scwArrSeedDate[0]
+                          )
+                        )
+                        {if (scwShowDoesNotExistMsg) alert(scwDoesNotExistMsg);
+                         scwSeedDate = new Date(scwSeedDate.getFullYear(),scwSeedDate.getMonth()-1,1);
+                         scwBlnFullInputDate=false;
+                        }
+                    }
+                }
+            }
+
+         // Test the disabled dates for validity
+         // Give error message if not valid.
+
+         for (var i=0;i<scwDisabledDates.length;i++)
+            {if (!((typeof scwDisabledDates[i] == 'object') && (scwDisabledDates[i].constructor == Date)))
+                {if ((typeof scwDisabledDates[i] == 'object') && (scwDisabledDates[i].constructor == Array))
+                    {var scwPass = true;
+
+                     if (scwDisabledDates[i].length !=2)
+                        {if (scwShowRangeDisablingError)
+                            {alert(scwRangeDisablingError[0] + scwDisabledDates[i] + scwRangeDisablingError[1]);}
+                         scwPass = false;
+                        }
+                     else
+                        {for (var j=0;j<scwDisabledDates[i].length;j++)
+                            {if (!((typeof scwDisabledDates[i][j] == 'object') && (scwDisabledDates[i][j].constructor == Date)))
+                                {if (scwShowRangeDisablingError)
+                                    {alert(  scwDateDisablingError[0] + scwDisabledDates[i][j] + scwDateDisablingError[1]);}
+                                 scwPass = false;
+                                }
+                            }
+                        }
+
+                     if (scwPass && (scwDisabledDates[i][0] > scwDisabledDates[i][1])) {scwDisabledDates[i].reverse();}
+                    }
+                 else
+                    {if (scwShowRangeDisablingError) {alert(scwDateDisablingError[0] + scwDisabledDates[i] + scwDateDisablingError[1]);}}
+                }
+            }
+
+         // Calculate the number of months that the entered (or
+         // defaulted) month is after the start of the allowed
+         // date range.
+
+         scwMonthSum =  12*(scwSeedDate.getFullYear()-scwBaseYear)+scwSeedDate.getMonth();
+
+         scwID('scwYears' ).options.selectedIndex = Math.floor(scwMonthSum/12);
+         scwID('scwMonths').options.selectedIndex = (scwMonthSum%12);
+
+         // Check whether or not dragging is allowed and display drag handle if necessary
+
+         scwID('scwDrag').style.display=(scwAllowDrag)?'':'none';
+
+         // Display the month
+
+         scwShowMonth(0);
+
+         // Position the calendar box
+
+         // The object sniffing for Opera allows for the fact that Opera
+         // is the only major browser that correctly reports the position
+         // of an element in a scrollable DIV.  This is because IE and
+         // Firefox omit the DIV from the offsetParent tree.
+
+         scwTargetEle=scwEle;
+
+         var offsetTop =parseInt(scwEle.offsetTop ,10) + parseInt(scwEle.offsetHeight,10),
+             offsetLeft=parseInt(scwEle.offsetLeft,10);
+        
+         if (!window.opera)
+             {while (scwEle.tagName!='BODY' && scwEle.tagName!='HTML')
+                 {offsetTop -=parseInt(scwEle.scrollTop, 10);
+                  offsetLeft-=parseInt(scwEle.scrollLeft,10);
+                  scwEle=scwEle.parentNode;
+                 }
+              scwEle=scwTargetEle;
+             }
+
+         do {scwEle=scwEle.offsetParent;
+             offsetTop +=parseInt(scwEle.offsetTop, 10);
+             offsetLeft+=parseInt(scwEle.offsetLeft,10);
+            }
+         while (scwEle.tagName!='BODY' && scwEle.tagName!='HTML');
+
+         if (scwAutoPosition)
+             {var scwWidth      = parseInt(scwID('scw').offsetWidth, 10),
+                  scwHeight     = parseInt(scwID('scw').offsetHeight,10),
+                  scwWindowLeft =
+                     (document.body && document.body.scrollLeft)
+                          ?document.body.scrollLeft                  //DOM compliant
+                          :(document.documentElement && document.documentElement.scrollLeft)
+                              ?document.documentElement.scrollLeft   //IE6+ standards compliant
+                              :0,                                    //Failed
+                  scwWindowWidth =
+                      (typeof(innerWidth) == 'number')
+                          ?innerWidth                                //DOM compliant
+                          :(document.documentElement && document.documentElement.clientWidth)
+                              ?document.documentElement.clientWidth  //IE6+ standards compliant
+                              :(document.body && document.body.clientWidth)
+                                  ?document.body.clientWidth         //IE non-compliant
+                                  :0,                                //Failed
+                  scwWindowTop =
+                      (document.body && document.body.scrollTop)
+                          ?document.body.scrollTop                   //DOM compliant
+                          :(document.documentElement && document.documentElement.scrollTop)
+                              ?document.documentElement.scrollTop    //IE6+ standards compliant
+                              :0,                                    //Failed
+                  scwWindowHeight =
+                      (typeof(innerHeight) == 'number')
+                          ?innerHeight                               //DOM compliant
+                          :(document.documentElement && document.documentElement.clientHeight)
+                              ?document.documentElement.clientHeight //IE6+ standards compliant
+                              :(document.body && document.body.clientHeight)
+                                  ?document.body.clientHeight        //IE non-compliant
+                                  :0;                                //Failed
+
+              offsetLeft -= (offsetLeft - scwWidth + parseInt(scwTargetEle.offsetWidth,10) >= scwWindowLeft &&
+                             offsetLeft + scwWidth > scwWindowLeft + scwWindowWidth
+                            )?(scwWidth - parseInt(scwTargetEle.offsetWidth,10)):0;
+
+              offsetTop -= (offsetTop - scwHeight - parseInt(scwTargetEle.offsetHeight,10) >= scwWindowTop &&
+                            offsetTop + scwHeight > scwWindowTop + scwWindowHeight
+                           )?(scwHeight + parseInt(scwTargetEle.offsetHeight,10)):0;
+             }
+
+         scwID('scw').style.top         = offsetTop+'px';
+         scwID('scw').style.left        = offsetLeft+'px';
+         scwID('scwIframe').style.top   = offsetTop+'px';
+         scwID('scwIframe').style.left  = offsetLeft+'px';
+
+         scwID('scwIframe').style.width =(scwID('scw').offsetWidth-(scwID('scwIE')?2:4))+'px';
+         scwID('scwIframe').style.height=(scwID('scw').offsetHeight-(scwID('scwIE')?2:4))+'px';
+         scwID('scwIframe').style.visibility='inherit';
+
+         // Show it on the page
+         scwID('scw').style.visibility='inherit';
+        };
+
+    function scwHide()
+        {scwID('scw').style.visibility='hidden';
+         scwID('scwIframe').style.visibility='hidden';
+         if (typeof scwNextAction!='undefined' && scwNextAction!=null)
+             {scwNextActionReturn = scwNextAction();
+              // Explicit null set to prevent closure causing memory leak
+              scwNextAction = null;
+             }
+        };
+
+    function scwCancel(scwEvt)
+        {if (scwClickToHide) {scwHide();}
+         scwStopPropagation(scwEvt);
+        };
+
+    function scwStopPropagation(scwEvt)
+        {if (scwEvt.stopPropagation)
+                {scwEvt.stopPropagation();}     // Capture phase
+         else   {scwEvt.cancelBubble = true;}   // Bubbling phase
+        };
+
+    function scwBeginDrag(event)
+        {var elementToDrag = scwID('scw');
+
+         var deltaX    = event.clientX,
+             deltaY    = event.clientY,
+             offsetEle = elementToDrag;
+
+         do {deltaX   -= parseInt(offsetEle.offsetLeft,10);
+             deltaY   -= parseInt(offsetEle.offsetTop ,10);
+             offsetEle = offsetEle.offsetParent;
+            }
+         while (offsetEle.tagName!='BODY' &&
+                offsetEle.tagName!='HTML');
+
+         if (document.addEventListener)
+                {document.addEventListener('mousemove',moveHandler,true);        // Capture phase
+                 document.addEventListener('mouseup',  upHandler,  true);        // Capture phase
+                }
+         else   {elementToDrag.attachEvent('onmousemove',moveHandler); // Bubbling phase
+                 elementToDrag.attachEvent('onmouseup',  upHandler);   // Bubbling phase
+                 elementToDrag.setCapture();
+                }
+
+         scwStopPropagation(event);
+
+         function moveHandler(scwEvt)
+            {if (!scwEvt) scwEvt = window.event;
+
+             elementToDrag.style.left = (scwEvt.clientX - deltaX) + 'px';
+             elementToDrag.style.top  = (scwEvt.clientY - deltaY) + 'px';
+
+             scwID('scwIframe').style.left = (scwEvt.clientX - deltaX) + 'px';
+             scwID('scwIframe').style.top  = (scwEvt.clientY - deltaY) + 'px';
+
+             scwStopPropagation(scwEvt);
+            };
+
+         function upHandler(scwEvt)
+            {if (!scwEvt) scwEvt = window.event;
+
+             if (document.removeEventListener)
+                    {document.removeEventListener('mousemove',moveHandler,true);     // Capture phase
+                     document.removeEventListener('mouseup',  upHandler,  true);     // Capture phase
+                    }
+             else   {elementToDrag.detachEvent('onmouseup',  upHandler);   // Bubbling phase
+                     elementToDrag.detachEvent('onmousemove',moveHandler); // Bubbling phase
+                     elementToDrag.releaseCapture();
+                    }
+
+             scwStopPropagation(scwEvt);
+            };
+        };
+
+    function scwShowMonth(scwBias)
+        {// Set the selectable Month and Year
+         // May be called: from the left and right arrows
+         //                  (shift month -1 and +1 respectively)
+         //                from the month selection list
+         //                from the year selection list
+         //                from the showCal routine
+         //                  (which initiates the display).
+
+         var scwShowDate  = new Date(Date.parse(new Date().toDateString())),
+             scwStartDate = new Date();
+
+         // Set the time to the middle of the day so that the handful of
+         // regions that have daylight saving shifts that change the day
+         // of the month (i.e. turn the clock back at midnight or forward
+         // at 23:00) do not mess up the date display in the calendar.
+
+         scwShowDate.setHours(12);
+
+         scwSelYears  = scwID('scwYears');
+         scwSelMonths = scwID('scwMonths');
+
+         if (scwSelYears.options.selectedIndex>-1)
+            {scwMonthSum=12*(scwSelYears.options.selectedIndex)+scwBias;
+             if (scwSelMonths.options.selectedIndex>-1) {scwMonthSum+=scwSelMonths.options.selectedIndex;}
+            }
+         else
+            {if (scwSelMonths.options.selectedIndex>-1) {scwMonthSum+=scwSelMonths.options.selectedIndex;}}
+
+         scwShowDate.setFullYear(scwBaseYear + Math.floor(scwMonthSum/12),(scwMonthSum%12),1);
+
+         // If the Week numbers are displayed, shift the week day names to the right.
+         scwID('scwWeek_').style.display=(scwWeekNumberDisplay)?'':'none';
+
+         // Opera has a bug with setting the selected index.
+         // It requires the following work-around to force SELECTs to display correctly.
+         if (window.opera)
+            {scwID('scwMonths').style.display = 'inherit';
+             scwID('scwYears' ).style.display = 'inherit';
+           }
+
+         // Set the drop down boxes.
+         scwTemp = (12*parseInt((scwShowDate.getFullYear()-scwBaseYear),10)) + parseInt(scwShowDate.getMonth(),10);
+
+         if (scwTemp > -1 && scwTemp < (12*scwDropDownYears))
+            {scwSelYears.options.selectedIndex=Math.floor(scwMonthSum/12);
+             scwSelMonths.options.selectedIndex=(scwMonthSum%12);
+
+             scwCurMonth = scwShowDate.getMonth();
+
+             scwShowDate.setDate((((scwShowDate.
+                                    getDay()-scwWeekStart)<0)?-6:1)+
+                                 scwWeekStart-scwShowDate.getDay());
+
+             // This statement moved by Michael Cerveny to make version 3.55
+             var scwCompareDateValue = new Date(scwShowDate.getFullYear(),
+                                                scwShowDate.getMonth(),
+                                                scwShowDate.getDate()).valueOf();
+
+             scwStartDate = new Date(scwShowDate);
+
+             if ((new Date(scwBaseYear + scwDropDownYears, 0, 0)) > scwDateNow &&
+                 (new Date(scwBaseYear, 0, 0))                    < scwDateNow)
+                {var scwNow = scwID('scwNow');
+
+                 function scwNowOutput() {scwSetOutput(scwDateNow);};
+
+                 if (scwDisabledDates.length==0)
+                    {if (scwActiveToday && scwParmActiveToday)
+                        {scwNow.onclick     = scwNowOutput;
+                         scwNow.className   = 'scwNow';
+
+                         if (scwID('scwIE'))
+                            {scwNow.onmouseover  = scwChangeClass;
+                             scwNow.onmouseout   = scwChangeClass;
+                            }
+
+                        }
+                     else
+                        {scwNow.onclick     = null;
+                         scwNow.className   = 'scwNowDisabled';
+
+                         if (scwID('scwIE'))
+                            {scwNow.onmouseover  = null;
+                             scwNow.onmouseout   = null;
+                            }
+
+                         if (document.addEventListener)
+                                {scwNow.addEventListener('click',scwStopPropagation,false);}
+                         else   {scwNow.attachEvent('onclick',scwStopPropagation);}
+                        }
+                    }
+                 else
+                    {for (var k=0;k<scwDisabledDates.length;k++)
+                        {if (!scwActiveToday || !scwParmActiveToday ||
+                             ((typeof scwDisabledDates[k] == 'object')                   &&
+                                 (((scwDisabledDates[k].constructor == Date)             &&
+                                   scwDateNow.valueOf() == scwDisabledDates[k].valueOf()
+                                  ) ||
+                                  ((scwDisabledDates[k].constructor == Array)               &&
+                                   scwDateNow.valueOf() >= scwDisabledDates[k][0].valueOf() &&
+                                   scwDateNow.valueOf() <= scwDisabledDates[k][1].valueOf()
+                                  )
+                                 )
+                             )
+                            )
+                            {scwNow.onclick     = null;
+                             scwNow.className   = 'scwNowDisabled';
+
+                             if (scwID('scwIE'))
+                                {scwNow.onmouseover  = null;
+                                 scwNow.onmouseout   = null;
+                                }
+
+                             if (document.addEventListener)
+                                    {scwNow.addEventListener('click',scwStopPropagation,false);}
+                             else   {scwNow.attachEvent('onclick',scwStopPropagation);}
+                             break;
+                            }
+                         else
+                            {scwNow.onclick=scwNowOutput;
+                             scwNow.className='scwNow';
+
+                             if (scwID('scwIE'))
+                                {scwNow.onmouseover  = scwChangeClass;
+                                 scwNow.onmouseout   = scwChangeClass;
+                                }
+                            }
+                        }
+                    }
+                }
+
+             function scwSetOutput(scwOutputDate)
+                {if (typeof scwTargetEle.value == 'undefined')
+                      {scwTriggerEle.scwTextNode.replaceData(0,scwTriggerEle.scwLength,scwOutputDate.scwFormat(scwDateOutputFormat));}
+                 else {scwTargetEle.value = scwOutputDate.scwFormat(scwDateOutputFormat);}
+                 scwHide();
+                };
+
+             function scwCellOutput(scwEvt)
+                {var scwEle = scwEventTrigger(scwEvt),
+                     scwOutputDate = new Date(scwStartDate);
+
+                 if (scwEle.nodeType==3) scwEle=scwEle.parentNode;
+
+                 scwOutputDate.setDate(scwStartDate.getDate() + parseInt(scwEle.id.substr(8),10));
+
+                 scwSetOutput(scwOutputDate);
+                };
+
+             function scwChangeClass(scwEvt)
+                {var scwEle = scwEventTrigger(scwEvt);
+
+                 if (scwEle.nodeType==3) {scwEle=scwEle.parentNode;}
+
+                 switch (scwEle.className)
+                    {case 'scwCells':
+                        scwEle.className = 'scwCellsHover';
+                        break;
+                     case 'scwCellsHover':
+                        scwEle.className = 'scwCells';
+                        break;
+                     case 'scwCellsExMonth':
+                        scwEle.className = 'scwCellsExMonthHover';
+                        break;
+                     case 'scwCellsExMonthHover':
+                        scwEle.className = 'scwCellsExMonth';
+                        break;
+                     case 'scwCellsWeekend':
+                        scwEle.className = 'scwCellsWeekendHover';
+                        break;
+                     case 'scwCellsWeekendHover':
+                        scwEle.className = 'scwCellsWeekend';
+                        break;
+                     case 'scwNow':
+                        scwEle.className = 'scwNowHover';
+                        break;
+                     case 'scwNowHover':
+                        scwEle.className = 'scwNow';
+                        break;
+                     case 'scwInputDate':
+                        scwEle.className = 'scwInputDateHover';
+                        break;
+                     case 'scwInputDateHover':
+                        scwEle.className = 'scwInputDate';
+                    }
+
+                 return true;
+                }
+
+             function scwEventTrigger(scwEvt)
+                {if (!scwEvt) {scwEvt = event;}
+                 return scwEvt.target||scwEvt.srcElement;
+                };
+
+             function scwWeekNumber(scwInDate)
+                {// The base day in the week of the input date
+                 var scwInDateWeekBase = new Date(scwInDate);
+
+                 scwInDateWeekBase.setDate(scwInDateWeekBase.getDate()
+                                            - scwInDateWeekBase.getDay()
+                                            + scwWeekNumberBaseDay
+                                            + ((scwInDate.getDay()>
+                                                scwWeekNumberBaseDay)?7:0));
+
+                 // The first Base Day in the year
+                 var scwFirstBaseDay = new Date(scwInDateWeekBase.getFullYear(),0,1);
+
+                 scwFirstBaseDay.setDate(scwFirstBaseDay.getDate()
+                                            - scwFirstBaseDay.getDay()
+                                            + scwWeekNumberBaseDay
+                                        );
+
+                 if (scwFirstBaseDay < new Date(scwInDateWeekBase.getFullYear(),0,1))
+                    {scwFirstBaseDay.setDate(scwFirstBaseDay.getDate()+7);}
+
+                 // Start of Week 01
+                 var scwStartWeekOne = new Date(scwFirstBaseDay
+                                                - scwWeekNumberBaseDay
+                                                + scwInDate.getDay());
+
+                 if (scwStartWeekOne > scwFirstBaseDay)
+                    {scwStartWeekOne.setDate(scwStartWeekOne.getDate()-7);}
+
+                 // Subtract the date of the current week from the date of the
+                 // first week of the year to get the number of weeks in
+                 // milliseconds.  Divide by the number of milliseconds
+                 // in a week then round to no decimals in order to remove
+                 // the effect of daylight saving.  Add one to make the first
+                 // week, week 1.  Place a string zero on the front so that
+                 // week numbers are zero filled.
+
+                 var scwWeekNo = '0' + (Math.round((scwInDateWeekBase - scwFirstBaseDay)/604800000,0) + 1);
+
+                 // Return the last two characters in the week number string
+
+                 return scwWeekNo.substring(scwWeekNo.length-2, scwWeekNo.length);
+                };
+
+             // Treewalk to display the dates.
+             // I tried to use getElementsByName but IE refused to cooperate
+             // so I resorted to this method which works for all tested
+             // browsers.
+
+             var scwCells = scwID('scwCells');
+
+             for (i=0;i<scwCells.childNodes.length;i++)
+                {var scwRows = scwCells.childNodes[i];
+                 if (scwRows.nodeType==1 && scwRows.tagName=='TR')
+                    {if (scwWeekNumberDisplay)
+                        {//Calculate the week number using scwShowDate
+                         scwTmpEl = scwRows.childNodes[0];
+                         scwTmpEl.innerHTML = scwWeekNumber(scwShowDate);
+                         scwTmpEl.style.borderColor =
+                             (scwTmpEl.currentStyle)
+                                ?scwTmpEl.currentStyle['backgroundColor']
+                                :(window.getComputedStyle)
+                                    ?document.defaultView.getComputedStyle(scwTmpEl,null).getPropertyValue('background-color')
+                                    :'';
+                         scwTmpEl.style.display='';
+                        }
+                     else
+                        {scwRows.childNodes[0].style.display='none';}
+
+                     for (j=1;j<scwRows.childNodes.length;j++)
+                        {var scwCols = scwRows.childNodes[j];
+                         if (scwCols.nodeType==1 && scwCols.tagName=='TD')
+                            {scwRows.childNodes[j].innerHTML=
+                                scwShowDate.getDate();
+                             var scwCell=scwRows.childNodes[j],
+                                 scwDisabled =
+                                    ((scwOutOfRangeDisable &&
+                                        (scwShowDate <
+                                            (new Date(scwBaseYear,0,1,
+                                                      scwShowDate.getHours()))
+                                         ||
+                                         scwShowDate >
+                                            (new Date(scwBaseYear+
+                                                      scwDropDownYears,0,0,
+                                                      scwShowDate.getHours()))
+                                        )
+                                     ) ||
+                                     (scwOutOfMonthDisable &&
+                                        (scwShowDate <
+                                            (new Date(scwShowDate.getFullYear(),
+                                                      scwCurMonth,1,
+                                                      scwShowDate.getHours()))
+                                         ||
+                                         scwShowDate >
+                                            (new Date(scwShowDate.getFullYear(),
+                                                      scwCurMonth+1,0,
+                                                      scwShowDate.getHours()))
+                                        )
+                                     )
+                                    )?true:false;
+
+                             scwCell.style.visibility =
+                                (scwOutOfMonthHide &&
+                                    (scwShowDate <
+                                        (new Date(scwShowDate.getFullYear(),
+                                                  scwCurMonth,1,
+                                                  scwShowDate.getHours()))
+                                     ||
+                                     scwShowDate >
+                                        (new Date(scwShowDate.getFullYear(),
+                                                  scwCurMonth+1,0,
+                                                  scwShowDate.getHours()))
+                                    )
+                                )?'hidden':'inherit';
+
+                             for (var k=0;k<scwDisabledDates.length;k++)
+                                {if ((typeof scwDisabledDates[k]=='object') &&
+                                     (scwDisabledDates[k].constructor == Date) &&
+                                     scwCompareDateValue == scwDisabledDates[k].valueOf()
+                                    )
+                                    {scwDisabled = true;}
+                                 else
+                                    {if ((typeof scwDisabledDates[k]=='object') &&
+                                         (scwDisabledDates[k].constructor == Array) &&
+                                         scwCompareDateValue >= scwDisabledDates[k][0].valueOf() &&
+                                         scwCompareDateValue <= scwDisabledDates[k][1].valueOf()
+                                        )
+                                        {scwDisabled = true;}
+                                    }
+                                }
+
+                             if (scwDisabled ||
+                                 !scwEnabledDay[j-1+(7*((i*scwCells.childNodes.length)/6))] ||
+                                 !scwPassEnabledDay[(j-1+(7*(i*scwCells.childNodes.length/6)))%7]
+                                )
+                                {scwRows.childNodes[j].onclick = null;
+
+                                 if (scwID('scwIE'))
+                                    {scwRows.childNodes[j].onmouseover  = null;
+                                     scwRows.childNodes[j].onmouseout   = null;
+                                    }
+
+                                 scwCell.className=
+                                    (scwShowDate.getMonth()!=scwCurMonth)
+                                        ?'scwCellsExMonthDisabled'
+                                        :(scwBlnFullInputDate &&
+                                          scwShowDate.toDateString()==
+                                          scwSeedDate.toDateString())
+                                            ?'scwInputDateDisabled'
+                                            :(scwShowDate.getDay()%6==0)
+                                                ?'scwCellsWeekendDisabled'
+                                                :'scwCellsDisabled';
+
+                                 scwCell.style.borderColor =
+                                     (scwFormatTodayCell && scwShowDate.toDateString()==scwDateNow.toDateString())
+                                        ?scwTodayCellBorderColour
+                                        :(scwCell.currentStyle)
+                                            ?scwCell.currentStyle['backgroundColor']
+                                            :(window.getComputedStyle)
+                                                ?document.defaultView.getComputedStyle(scwCell,null).getPropertyValue('background-color')
+                                                :'';
+                                }
+                             else
+                                {scwRows.childNodes[j].onclick=scwCellOutput;
+
+                                 if (scwID('scwIE'))
+                                    {scwRows.childNodes[j].onmouseover  = scwChangeClass;
+                                     scwRows.childNodes[j].onmouseout   = scwChangeClass;
+                                    }
+
+                                 scwCell.className=
+                                     (scwShowDate.getMonth()!=scwCurMonth)
+                                        ?'scwCellsExMonth'
+                                        :(scwBlnFullInputDate &&
+                                          scwShowDate.toDateString()==
+                                          scwSeedDate.toDateString())
+                                            ?'scwInputDate'
+                                            :(scwShowDate.getDay()%6==0)
+                                                ?'scwCellsWeekend'
+                                                :'scwCells';
+
+                                 scwCell.style.borderColor =
+                                     (scwFormatTodayCell && scwShowDate.toDateString() == scwDateNow.toDateString())
+                                        ?scwTodayCellBorderColour
+                                        :(scwCell.currentStyle)
+                                            ?scwCell.currentStyle['backgroundColor']
+                                            :(window.getComputedStyle)
+                                                ?document.defaultView.getComputedStyle(scwCell,null).getPropertyValue('background-color')
+                                                :'';
+                               }
+
+                             scwShowDate.setDate(scwShowDate.getDate()+1);
+                             scwCompareDateValue = new Date(scwShowDate.getFullYear(),scwShowDate.getMonth(),scwShowDate.getDate()).valueOf();
+                            }
+                        }
+                    }
+                }
+            }
+
+         // Opera has a bug with setting the selected index.
+         // It requires the following work-around to force SELECTs to display correctly.
+         // Also Opera's poor dynamic rendering prior to 9.5 requires
+         // the visibility to be reset to prevent garbage in the calendar
+         // when the displayed month is changed.
+
+         if (window.opera)
+            {scwID('scwMonths').style.display = 'inline';
+             scwID('scwYears' ).style.display = 'inline';
+             scwID('scw').style.visibility='hidden';
+             scwID('scw').style.visibility='inherit';
+           }
+        };
+
+// *************************
+//  End of Function Library
+// *************************
+// ***************************
+// Start of Calendar structure
+// ***************************
+
+    document.writeln("<!--[if IE]><div id='scwIE'></div><![endif]-->");
+    document.writeln("<!--[if lt IE 7]><div id='scwIElt7'></div><![endif]-->");
+    document.write(
+     "<iframe class='scw' " + (scwID('scwIElt7')?"src='/scwblank.html '":'') +
+             "id='scwIframe' name='scwIframe' frameborder='0'>" +
+     "</iframe>" +
+     "<table id='scw' class='scw'>" +
+       "<tr class='scw'>" +
+         "<td class='scw'>" +
+           "<table class='scwHead' id='scwHead' width='100%' " +
+                    "cellspacing='0' cellpadding='0'>" +
+            "<tr id='scwDrag' style='display:none;'>" +
+                "<td colspan='4' class='scwDrag' " +
+                    "onmousedown='scwBeginDrag(event);'>" +
+                    "<span id='scwDragText'></span>" +
+                "</td>" +
+            "</tr>" +
+            "<tr class='scwHead' >" +
+                 "<td class='scwHead'>" +
+                    "<input class='scwHead' id='scwHeadLeft' type='button' value='<' " +
+                            "onclick='scwShowMonth(-1);'  /></td>" +
+                 "<td class='scwHead'>" +
+                    "<select id='scwMonths' class='scwHead' " +
+                            "onchange='scwShowMonth(0);'>" +
+                    "</select>" +
+                 "</td>" +
+                 "<td class='scwHead'>" +
+                    "<select id='scwYears' class='scwHead' " +
+                            "onchange='scwShowMonth(0);'>" +
+                    "</select>" +
+                 "</td>" +
+                 "<td class='scwHead'>" +
+                    "<input class='scwHead' id='scwHeadRight' type='button' value='>' " +
+                            "onclick='scwShowMonth(1);' /></td>" +
+                "</tr>" +
+              "</table>" +
+            "</td>" +
+          "</tr>" +
+          "<tr class='scw'>" +
+            "<td class='scw'>" +
+              "<table class='scwCells' align='center'>" +
+                "<thead>" +
+                  "<tr><td class='scwWeekNumberHead' id='scwWeek_' ></td>");
+
+    for (i=0;i<7;i++)
+        {document.write(
+                      "<td class='scwWeek' id='scwWeekInit" + i + "'></td>");
+        }
+
+    document.write("</tr>" +
+                "</thead>" +
+                "<tbody id='scwCells' onClick='scwStopPropagation(event);'>");
+
+    for (i=0;i<6;i++)
+        {document.write(
+                    "<tr>" +
+                      "<td class='scwWeekNo' id='scwWeek_" + i + "'></td>");
+         for (j=0;j<7;j++)
+            {document.write(
+                        "<td class='scwCells' id='scwCell_" + (j+(i*7)) +
+                        "'></td>");
+            }
+
+         document.write(
+                    "</tr>");
+        }
+
+    document.write(
+                "</tbody>" +
+                "<tfoot>" +
+                  "<tr id='scwFoot'>" +
+                    "<td colspan='8' style='padding:0px;'>" +
+                      "<table width='100%'>" +
+                        "<tr>" +
+                          "<td id='scwClear' class='scwClear'>" +
+                            "<input type='button' id='scwClearButton' class='scwClear' " +
+                                   "onclick='scwTargetEle.value = \"\";scwHide();' />" +
+                          "</td>" +
+                          "<td class='scwNow' id='scwNow'></td>" +
+                        "</tr>" +
+                      "</table>" +
+                    "</td>" +
+                  "</tr>" +
+                "</tfoot>" +
+              "</table>" +
+            "</td>" +
+          "</tr>" +
+        "</table>");
+
+    if (document.addEventListener)
+            {scwID('scw'         ).addEventListener('click',scwCancel,false);
+             scwID('scwHeadLeft' ).addEventListener('click',scwStopPropagation,false);
+             scwID('scwMonths'   ).addEventListener('click',scwStopPropagation,false);
+             scwID('scwMonths'   ).addEventListener('change',scwStopPropagation,false);
+             scwID('scwYears'    ).addEventListener('click',scwStopPropagation,false);
+             scwID('scwYears'    ).addEventListener('change',scwStopPropagation,false);
+             scwID('scwHeadRight').addEventListener('click',scwStopPropagation,false);
+            }
+    else    {scwID('scw'         ).attachEvent('onclick',scwCancel);
+             scwID('scwHeadLeft' ).attachEvent('onclick',scwStopPropagation);
+             scwID('scwMonths'   ).attachEvent('onclick',scwStopPropagation);
+             scwID('scwMonths'   ).attachEvent('onchange',scwStopPropagation);
+             scwID('scwYears'    ).attachEvent('onclick',scwStopPropagation);
+             scwID('scwYears'    ).attachEvent('onchange',scwStopPropagation);
+             scwID('scwHeadRight').attachEvent('onclick',scwStopPropagation);
+            }
+
+// ***************************
+//  End of Calendar structure
+// ***************************
+// ****************************************
+// Start of document level event definition
+// ****************************************
+
+    if (document.addEventListener)
+            {document.addEventListener('click',scwHide, false);}
+    else    {document.attachEvent('onclick',scwHide);}
+
+// ****************************************
+//  End of document level event definition
+// ****************************************
+// ************************************
+//  End of Simple Calendar Widget Code
+// ************************************
Index: /ether_megapoli/trunk/web/resources/templates/modele.jsp
===================================================================
--- /ether_megapoli/trunk/web/resources/templates/modele.jsp	(revision 154)
+++ /ether_megapoli/trunk/web/resources/templates/modele.jsp	(revision 155)
@@ -1,4 +1,3 @@
 <%@ page import="com.medias.Context" contentType="text/html; charset=UTF-8"%>
-<%@ page import="com.medias.Context" %>
 <%@ page language="java" contentType="text/html; charset=UTF-8"%>
 <%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles"%>
Index: /ether_megapoli/trunk/web/resources/templates/template.jsp
===================================================================
--- /ether_megapoli/trunk/web/resources/templates/template.jsp	(revision 154)
+++ /ether_megapoli/trunk/web/resources/templates/template.jsp	(revision 155)
@@ -19,13 +19,14 @@
 	<script src="<html:rewrite page='/resources/js/maj.js'/>"></script>
 	<script src="<html:rewrite page='/resources/js/medias/ajax.js'/>"></script>
+    <script src="<html:rewrite page='/resources/js/medias/scw.js'/>"></script>
 	<script type="text/javascript">
 	<!--
 	var popup;
-
+	
 	function popupWindow (url, name, configuration)
 	{
 		popup = window.open (url, name, configuration);
 	}
-
+	
 	function closePopupWindow ()
 	{
@@ -40,41 +41,31 @@
 
 <%-- VARIABLES A NE PAS TOUCHER !!! --%>
-    <bean:define type="java.lang.String" id="today" value="<%=Context.getSimpleDate()%>"/>
-    <bean:define type="java.lang.String" id="lastModified" value="<%=Context.getLastModified(request, application)%>"/>
-    <bean:define type="java.lang.String" id="racine" value="<%=Context.getWebroot(request)%>"/>
-    <bean:define type="java.lang.String" id="relativePageUri" value="<%=Context.getRelativePageURI(request)%>"/>
-    <bean:define type="java.lang.String" id="lang" value="<%=Context.getLangue(request)%>"/>
-    <bean:define type="java.lang.String" id="webmaster" value="<%=Context.getWebmaster(request)%>"/>
-    <bean:define type="java.lang.String" id="chemin" value="<%=request.getContextPath()%>"/>
-
+	<bean:define type="java.lang.String" id="today" value="<%=Context.getSimpleDate()%>"/>
+	<bean:define type="java.lang.String" id="lastModified" value="<%=Context.getLastModified(request, application)%>"/>
+	<bean:define type="java.lang.String" id="racine" value="<%=Context.getWebroot(request)%>"/>
+	<bean:define type="java.lang.String" id="relativePageUri" value="<%=Context.getRelativePageURI(request)%>"/>
+	<bean:define type="java.lang.String" id="lang" value="<%=Context.getLangue(request)%>"/>
+	<bean:define type="java.lang.String" id="webmaster" value="<%=Context.getWebmaster(request)%>"/>
+	<bean:define type="java.lang.String" id="chemin" value="<%=request.getContextPath()%>"/>
+	
 <div id="container">
     <div id="pageHeader">
       <%-- le logo --%>
-
-      	<%-- Internationalisation --%>
-		<logic:notEqual name="lang" value="en">
-			<html:link page="/English.do" paramName="relativePageUri" paramId="requestUri">
-				<html:img vspace="25" hspace="10" page="/resources/images/utils/gb.png" alt="gb"/>
-			</html:link>
-		</logic:notEqual>
-		<logic:equal name="lang" value="en">
-			<html:link page="/French.do" paramName="relativePageUri" paramId="requestUri">
-				<html:img vspace="25" hspace="10" page="/resources/images/utils/fr.png" alt="fr"/>
-			</html:link>
-		</logic:equal>
-
-      	<%-- Le titre gÃÂ©nÃÂ©ral du site --%>
-      	<h2><u>M</u>egacities: <u>E</u>missions, urban, regional and <u>G</u>lobal <u>A</u>tmospheric <u>POL</u>lution and climate effects, and <u>I</u>ntegrated tools for assessment and mitigation</h2>
+      
+      	<%-- Le titre gÃ©nÃ©ral du site --%>
+      	<h2><%--<u>M</u>egacities: <u>E</u>missions, urban, regional and <u>G</u>lobal <u>A</u>tmospheric <u>POL</u>lution and climate effects, and <u>I</u>ntegrated tools for assessment and mitigation--%>
+      		<bean:message key="app.fulltitle"/>
+      	</h2>
 	</div>
 
 
- <div id="pageMiddle">
+ <div id="pageMiddle">  
     <div id="pageMenu">
       <div id="util">
-
+        
         <html:link page="/index.jsp">
 			<html:img page="/resources/images/utils/home.jpg" titleKey="app.home" altKey="app.home"/>
 		</html:link>
-
+        
         <html:link href="mailto:${webmaster}?subject=[MEGAPOLI]">
 			<html:img page="/resources/images/utils/enveloppe.jpg" titleKey="app.webmaster" altKey="app.webmaster"/>
@@ -82,15 +73,26 @@
 
         <%--html:link page="/sitemap/sitemap.jsp">
-        	<html:img page="/resources/images/utils/sitemap.png" titleKey="app.sitemap" altKey="app.sitemap"/>
+        	<html:img page="/images/utils/sitemap.png" titleKey="app.sitemap" altKey="app.sitemap"/>
 		</html:link--%>
-
-		<%-- le lien pour se dÃÂ©connecter de l'application --%>
-		<logic:present name="SES_USER" scope="session">
+      	<%-- Internationalisation --%>
+		<logic:notEqual name="lang" value="en">
+			<html:link page="/English.do" paramName="relativePageUri" paramId="requestUri" titleKey="app.en">
+				<html:img page="/resources/images/utils/gb.png" alt="gb"/>
+			</html:link>
+		</logic:notEqual>
+		<logic:equal name="lang" value="en">
+			<html:link page="/French.do" paramName="relativePageUri" paramId="requestUri" titleKey="app.fr">
+				<html:img page="/resources/images/utils/fr.png" alt="fr"/>
+			</html:link>
+		</logic:equal>
+		
+		<%-- le lien pour se dÃ©connecter de l'application --%>
+		<%--logic:present name="SES_USER" scope="session">
 			<html:link page="/Disconnect.do">
-				<html:img page="/resources/images/utils/logout.gif" titleKey="app.disconnect" altKey="app.disconnect" onmouseover="this.src='${chemin}/resources/images/utils/logout2.gif'" onmouseout="this.src='${chemin}/resources/images/utils/logout.gif'"/>
-			</html:link>
-		</logic:present>
-      </div>
-
+				<html:img page="/resources/images/utils/logout.gif" titleKey="app.disconnect" altKey="app.disconnect" onmouseover="this.src='${chemin}/images/utils/logout2.gif'" onmouseout="this.src='${chemin}/images/utils/logout.gif'"/>
+			</html:link>
+		</logic:present--%>
+      </div>
+      
       <div id="plan">
         <%-- le menu --%>
@@ -111,5 +113,5 @@
 					</ul>
 				</div--%>
-
+			
 			  <%--div id="menuItem">
 				<html:link page="/projet/projet.jsp">
@@ -121,5 +123,5 @@
 						</html:link></li>
 						<li><html:link href="mailto:${webmaster}?subject=[MEGAPOLI]">
-							<html:img page="/resources/images/utils/mailto.png" titleKey="app.webmaster" altKey="app.webmaster"/>
+							<html:img page="/images/utils/mailto.png" titleKey="app.webmaster" altKey="app.webmaster"/>
 						</html:link></li>
 						<logic:present name="SES_USER" scope="session">
@@ -134,11 +136,48 @@
 
 				<div id="menuItem">
-					<html:link page="/data/data.jsp">
+					<%--html:link page="/data/data.jsp">
 						<h3>&nbsp;&nbsp;&nbsp;<bean:message key="data"/></h3>
-					</html:link>
+					</html:link--%>
 					<bean:define id="upload" value="upload"/>
 					<bean:define id="access" value="access"/>
 					<ul>
-						<li>
+						<li><html:link page="/data/access/access.jsp" paramName="access" paramId="source">
+							<bean:message key="data.access"/>
+							</html:link>
+						</li>
+						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
+							<%--html:link page="/data/access/jeux.jsp" paramName="access" paramId="source"--%>
+							<html:link page="/JeuxAccess.do">
+							<bean:message key="data.access.jeux"/>
+							</html:link>
+						</li>
+						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
+							<html:link page="/ParametresAccess.do">
+							<bean:message key="data.access.param"/>
+							</html:link>
+						</li>
+						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
+							<html:link page="/CapteursAccess.do">
+							<bean:message key="data.access.capt"/>
+							</html:link>
+						</li>
+						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
+							<html:link page="/PlateformesAccess.do">
+							<bean:message key="data.access.plat"/>
+							</html:link>
+						</li>
+						<li><br/>
+							<logic:notPresent name="SES_USER" scope="session">
+								<html:link page="/InitLogonAccess.do" paramName="access" paramId="source">
+									<bean:message key="data.access.extract"/>
+								</html:link>
+							</logic:notPresent>
+							<logic:present name="SES_USER" scope="session">
+								<html:link page="/DataAccess.do">
+									<bean:message key="data.access.extract"/>
+								</html:link>
+							</logic:present>
+						</li>
+						<li><br/>
 							<logic:notPresent name="SES_USER" scope="session">
 								<html:link page="/InitLogon.do" paramName="upload" paramId="source">
@@ -152,32 +191,13 @@
 							</logic:present>
 						</li>
-						<li><html:link page="/data/access/access.jsp" paramName="access" paramId="source">
-							<bean:message key="data.access"/>
-							</html:link>
-						</li>
-						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
-							<%--html:link page="/data/access/jeux.jsp" paramName="access" paramId="source"--%>
-							<html:link page="/JeuxAccess.do">
-							<bean:message key="data.access.jeux"/>
-							</html:link>
-						</li>
-						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
-							<html:link page="/ParametresAccess.do">
-							<bean:message key="data.access.param"/>
-							</html:link>
-						</li>
-						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
-							<html:link page="/CapteursAccess.do">
-							<bean:message key="data.access.capt"/>
-							</html:link>
-						</li>
-						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
-							<html:link page="/PlateformesAccess.do">
-							<bean:message key="data.access.plat"/>
-							</html:link>
-						</li>
 					</ul>
 				</div>
-
+				<table width="100%">
+					<tr><td align="center">
+						<html:link href="http://megapoli.dmi.dk/" target="help" titleKey="app.linkmegapoli">
+							<html:img page="/resources/images/megapoli/megapoli_small.jpg" altKey="app.home"/>
+						</html:link>
+					</td></tr>
+				</table>
 				<%--div id="menuItem">
 					<html:link page="/partenaires/partenaires.jsp">
@@ -193,5 +213,5 @@
 					</ul>
 				</div>
-
+			
 				<div id="menuItem">
 					<html:link page="/finance/finance.jsp">
@@ -199,6 +219,6 @@
 						</html:link>
 					</div--%>
-
-
+				
+				
 				    <%--
 						  <div id="menuItem>
@@ -210,21 +230,39 @@
       </div>
  <%-- Recherche : solution mnogosearch --%>
-
+    
     </div>
 <%--
-	  <div id="recherche">
+	  <div id="recherche">  
 		<form method="get" action="/megapoli/cgi-bin/search.cgi">
 			<bean:message key="app.search"/> : <INPUT TYPE="text" NAME="q" VALUE="" size="20">
 		</form>
-      </div>
+      </div>  
 --%>
     <div id="pageContent">
       <div id="nav">
         <%-- la barre de navigation --%>
-        <div class="texte">
+        <div class="texte" style="float: left;">
         	<tiles:insert attribute="nav"/>
         </div>
-      </div>
-      <div id="blabla">
+        <div style="float: right; font-size: 13px">
+		<logic:present name="SES_USER" scope="session">
+			<table>
+			<tr><td height="40px" valign="middle" style="font-size: 13px; color: white">
+			<bean:write name="SES_USER" property="prenom"/> <bean:write name="SES_USER" property="nom"/>
+			<logic:equal name="SES_USER" property="roles" value="coordinateur">
+				(<bean:message key="app.admin"/>)
+			</logic:equal>
+			</td>
+			<td valign="top" width="40px">
+			<html:link page="/Disconnect.do">
+				<html:img page="/resources/images/utils/logout.gif" titleKey="app.disconnect" altKey="app.disconnect" onmouseover="this.src='${chemin}/images/utils/logout2.gif'" onmouseout="this.src='${chemin}/images/utils/logout.gif'" width="20px" height="20px" style="margin-top:7px"/>
+			</html:link>
+			</td>
+			</tr>
+			</table>
+		</logic:present>
+        </div>
+      </div>
+      <div id="corpsPage">
 	      <div id="title">
     	    <%-- le titre de la page --%>
@@ -237,14 +275,20 @@
       </div>
     </div>
- </div>
+ </div>  
 
 
 	<div id="pageFooter">
-      <div id="copyright">
-      	&copy; 2010 Sedoo / CNRS
+      <table width="100%" style="color:white;font-size: 12px">
+      <tr><td align="left">&copy; 2010-2011 <html:link href="http://www.sedoo.fr" target="help" titleKey="app.linksedoo">Sedoo</html:link> / CNRS
+      </td><td align="center"><bean:message key="app.infonavig"/>
+      </td><td align="right"><i><bean:message key="app.lastModified"/> : <bean:write name="lastModified"/></i>
+      </td></tr>
+      </table>
+      <%--div id="copyright">
+      	&copy; 2010-2011 Sedoo / CNRS
       </div>
       <div id="datestamp">
         <bean:message key="app.lastModified"/> : <bean:write name="lastModified"/>
-	  </div>
+	  </div--%>
 	</div>
 
Index: /ether_megapoli/trunk/web/resources/templates/template2.jsp
===================================================================
--- /ether_megapoli/trunk/web/resources/templates/template2.jsp	(revision 155)
+++ /ether_megapoli/trunk/web/resources/templates/template2.jsp	(revision 155)
@@ -0,0 +1,300 @@
+<%@ page language="java" import="com.medias.*" %>
+<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles"%>
+<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html"%>
+<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean"%>
+<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic"%>
+<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested"%>
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+
+<html>
+<head>
+	<title><tiles:getAsString name="title"/></title>
+	<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+	<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
+	<meta http-equiv="refresh" content="6; URL=./index.jsp">
+	<link rel="stylesheet" type="text/css" href="<html:rewrite page='/styles/medias_new.css'/>">
+	<link rel="stylesheet" type="text/css" href="<html:rewrite page='/styles/megapoli.css'/>">
+	<link rel="shortcut icon" href="<html:rewrite page='/images/megapoli/favicon.ico'/>">
+	<script src="<html:rewrite page='/scripts/maj.js'/>"></script>
+	<script src="<html:rewrite page='/scripts/ajax.js'/>"></script>
+	<script src="<html:rewrite page='/scripts/scw.js'/>"></script>
+	<script type="text/javascript">
+	<!--
+	var popup;
+	
+	function popupWindow (url, name, configuration)
+	{
+		popup = window.open (url, name, configuration);
+	}
+	
+	function closePopupWindow ()
+	{
+		popup.close ();
+	}
+	-->
+	</script>
+</head>
+
+<body>
+	<a name="top"></a>
+
+<%-- VARIABLES A NE PAS TOUCHER !!! --%>
+	<bean:define type="java.lang.String" id="today" value="<%=Context.getSimpleDate()%>"/>
+	<bean:define type="java.lang.String" id="lastModified" value="<%=Context.getLastModified(request, application)%>"/>
+	<bean:define type="java.lang.String" id="racine" value="<%=Context.getWebroot(request)%>"/>
+	<bean:define type="java.lang.String" id="relativePageUri" value="<%=Context.getRelativePageURI(request)%>"/>
+	<bean:define type="java.lang.String" id="lang" value="<%=Context.getLangue(request)%>"/>
+	<bean:define type="java.lang.String" id="webmaster" value="<%=Context.getWebmaster(request)%>"/>
+	<bean:define type="java.lang.String" id="chemin" value="<%=request.getContextPath()%>"/>
+	
+<div id="container">
+    <div id="pageHeader">
+      <%-- le logo --%>
+      
+      	<%-- Le titre gï¿œnï¿œral du site --%>
+      	<h2><%--<u>M</u>egacities: <u>E</u>missions, urban, regional and <u>G</u>lobal <u>A</u>tmospheric <u>POL</u>lution and climate effects, and <u>I</u>ntegrated tools for assessment and mitigation--%>
+      		<bean:message key="app.fulltitle"/>
+      	</h2>
+	</div>
+
+
+ <div id="pageMiddle">  
+    <div id="pageMenu">
+      <div id="util">
+        
+        <html:link page="/index.jsp">
+			<html:img page="/images/utils/home.jpg" titleKey="app.home" altKey="app.home"/>
+		</html:link>
+        
+        <html:link href="mailto:${webmaster}?subject=[MEGAPOLI]">
+			<html:img page="/images/utils/enveloppe.jpg" titleKey="app.webmaster" altKey="app.webmaster"/>
+		</html:link>
+
+        <%--html:link page="/sitemap/sitemap.jsp">
+        	<html:img page="/images/utils/sitemap.png" titleKey="app.sitemap" altKey="app.sitemap"/>
+		</html:link--%>
+      	<%-- Internationalisation --%>
+		<logic:notEqual name="lang" value="en">
+			<html:link page="/English.do" paramName="relativePageUri" paramId="requestUri" titleKey="app.en">
+				<html:img page="/images/utils/gb.png" alt="gb"/>
+			</html:link>
+		</logic:notEqual>
+		<logic:equal name="lang" value="en">
+			<html:link page="/French.do" paramName="relativePageUri" paramId="requestUri" titleKey="app.fr">
+				<html:img page="/images/utils/fr.png" alt="fr"/>
+			</html:link>
+		</logic:equal>
+		
+		<%-- le lien pour se dï¿œconnecter de l'application --%>
+		<%--logic:present name="SES_USER" scope="session">
+			<html:link page="/Disconnect.do">
+				<html:img page="/images/utils/logout.gif" titleKey="app.disconnect" altKey="app.disconnect" onmouseover="this.src='${chemin}/images/utils/logout2.gif'" onmouseout="this.src='${chemin}/images/utils/logout.gif'"/>
+			</html:link>
+		</logic:present--%>
+      </div>
+      
+      <div id="plan">
+        <%-- le menu --%>
+			  <%--div id="menuItem">
+				<html:link page="/projet/projet.jsp">
+					<h3>&nbsp;&nbsp;&nbsp;<bean:message key="projet"/></h3>
+				</html:link>
+					<ul>
+						<li><html:link page="/projet/introduction.jsp">
+							<bean:message key="projet.intro"/>
+						</html:link></li>
+						<li><html:link page="/projet/objectifs.jsp">
+							<bean:message key="projet.objectifs"/>
+						</html:link></li>
+						<li><html:link page="/projet/mesures.jsp">
+							<bean:message key="projet.mesures"/>
+						</html:link></li>
+					</ul>
+				</div--%>
+			
+			  <%--div id="menuItem">
+				<html:link page="/projet/projet.jsp">
+					<h3>&nbsp;&nbsp;&nbsp;<bean:message key="projet"/></h3>
+				</html:link>
+					<ul>
+						<li> <html:link page="/index.jsp">
+							<bean:message key="app.home"/>
+						</html:link></li>
+						<li><html:link href="mailto:${webmaster}?subject=[MEGAPOLI]">
+							<html:img page="/images/utils/mailto.png" titleKey="app.webmaster" altKey="app.webmaster"/>
+						</html:link></li>
+						<logic:present name="SES_USER" scope="session">
+						<li>
+							<html:link page="/Disconnect.do">
+								<bean:message key="app.disconnect"/>
+							</html:link>
+						</li>
+						</logic:present>
+					</ul>
+				</div--%>
+
+				<div id="menuItem">
+					<%--html:link page="/data/data.jsp">
+						<h3>&nbsp;&nbsp;&nbsp;<bean:message key="data"/></h3>
+					</html:link--%>
+					<bean:define id="upload" value="upload"/>
+					<bean:define id="access" value="access"/>
+					<ul>
+						<li><html:link page="/data/access/access.jsp" paramName="access" paramId="source">
+							<bean:message key="data.access"/>
+							</html:link>
+						</li>
+						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
+							<%--html:link page="/data/access/jeux.jsp" paramName="access" paramId="source"--%>
+							<html:link page="/JeuxAccess.do">
+							<bean:message key="data.access.jeux"/>
+							</html:link>
+						</li>
+						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
+							<html:link page="/ParametresAccess.do">
+							<bean:message key="data.access.param"/>
+							</html:link>
+						</li>
+						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
+							<html:link page="/CapteursAccess.do">
+							<bean:message key="data.access.capt"/>
+							</html:link>
+						</li>
+						<li>&nbsp;&nbsp;&nbsp;&gt;&nbsp;
+							<html:link page="/PlateformesAccess.do">
+							<bean:message key="data.access.plat"/>
+							</html:link>
+						</li>
+						<li><br/>
+							<logic:notPresent name="SES_USER" scope="session">
+								<html:link page="/InitLogonAccess.do" paramName="access" paramId="source">
+									<bean:message key="data.access.extract"/>
+								</html:link>
+							</logic:notPresent>
+							<logic:present name="SES_USER" scope="session">
+								<html:link page="/DataAccess.do">
+									<bean:message key="data.access.extract"/>
+								</html:link>
+							</logic:present>
+						</li>
+						<li><br/>
+							<logic:notPresent name="SES_USER" scope="session">
+								<html:link page="/InitLogon.do" paramName="upload" paramId="source">
+									<bean:message key="data.upload"/>
+								</html:link>
+							</logic:notPresent>
+							<logic:present name="SES_USER" scope="session">
+								<html:link page="/PrepareTree.do">
+									<bean:message key="data.upload"/>
+								</html:link>
+							</logic:present>
+						</li>
+					</ul>
+				</div>
+				<table width="100%">
+					<tr><td align="center">
+						<html:link href="http://megapoli.dmi.dk/" target="help" titleKey="app.linkmegapoli">
+							<html:img page="/images/megapoli/megapoli_small.jpg" altKey="app.home"/>
+						</html:link>
+					</td></tr>
+				</table>
+				<%--div id="menuItem">
+					<html:link page="/partenaires/partenaires.jsp">
+						<h3>&nbsp;&nbsp;&nbsp;<bean:message key="partenaires"/></h3>
+					</html:link>
+					<ul>
+						<li><html:link page="/partenaires/scientifiques.jsp">
+							<bean:message key="partenaires.scientifiques"/>
+						</html:link></li>
+						<li><html:link page="/partenaires/institutionnels.jsp">
+							<bean:message key="partenaires.institutionnels"/>
+						</html:link></li>
+					</ul>
+				</div>
+			
+				<div id="menuItem">
+					<html:link page="/finance/finance.jsp">
+						<h3>&nbsp;&nbsp;&nbsp;<bean:message key="finance"/></h3>
+						</html:link>
+					</div--%>
+				
+				
+				    <%--
+						  <div id="menuItem>
+									<html:link page="/actualites/actualites.jsp">
+									<h3>&nbsp;&nbsp;&nbsp;<bean:message key="app.actualites"/></h3>
+						</html:link>
+				</div>
+				--%>
+      </div>
+ <%-- Recherche : solution mnogosearch --%>
+    
+    </div>
+<%--
+	  <div id="recherche">  
+		<form method="get" action="/megapoli/cgi-bin/search.cgi">
+			<bean:message key="app.search"/> : <INPUT TYPE="text" NAME="q" VALUE="" size="20">
+		</form>
+      </div>  
+--%>
+    <div id="pageContent">
+      <div id="nav">
+        <%-- la barre de navigation --%>
+        <div class="texte" style="float: left;">
+        	<tiles:insert attribute="nav"/>
+        </div>
+        <div style="float: right; font-size: 13px">
+		<logic:present name="SES_USER" scope="session">
+			<table>
+			<tr><td height="40px" valign="middle" style="font-size: 13px; color: white">
+			<bean:write name="SES_USER" property="prenom"/> <bean:write name="SES_USER" property="nom"/>
+			<logic:equal name="SES_USER" property="roles" value="coordinateur">
+				(<bean:message key="app.admin"/>)
+			</logic:equal>
+			</td>
+			<td valign="top" width="40px">
+			<html:link page="/Disconnect.do">
+				<html:img page="/images/utils/logout.gif" titleKey="app.disconnect" altKey="app.disconnect" onmouseover="this.src='${chemin}/images/utils/logout2.gif'" onmouseout="this.src='${chemin}/images/utils/logout.gif'" width="20px" height="20px" style="margin-top:7px"/>
+			</html:link>
+			</td>
+			</tr>
+			</table>
+		</logic:present>
+        </div>
+      </div>
+      <div id="corpsPage">
+	      <div id="title">
+    	    <%-- le titre de la page --%>
+        	<h1><tiles:insert attribute="bodytitle"/></h1>
+     	 </div>
+      	 <div id="txt">
+        	<%-- le corps de la page --%>
+        	<tiles:insert attribute="body"/>
+      	 </div>
+      </div>
+    </div>
+ </div>  
+
+
+	<div id="pageFooter">
+      <table width="100%" style="color:white;font-size: 12px">
+      <tr><td align="left">&copy; 2010-2011 <html:link href="http://www.sedoo.fr" target="help" titleKey="app.linksedoo">Sedoo</html:link> / CNRS
+      </td><td align="center"><bean:message key="app.infonavig"/>
+      </td><td align="right"><i><bean:message key="app.lastModified"/> : <bean:write name="lastModified"/></i>
+      </td></tr>
+      </table>
+      <%--div id="copyright">
+      	&copy; 2010-2011 Sedoo / CNRS
+      </div>
+      <div id="datestamp">
+        <bean:message key="app.lastModified"/> : <bean:write name="lastModified"/>
+	  </div--%>
+	</div>
+
+
+</div>
+
+</body>
+</html>
