LSformElement_date : Switch to Arian Mootools DatePicker
authorBenjamin Renard <brenard@easter-eggs.com>
Fri, 24 Jun 2011 13:42:06 +0000 (15:42 +0200)
committerBenjamin Renard <brenard@easter-eggs.com>
Fri, 24 Jun 2011 13:42:06 +0000 (15:42 +0200)
94 files changed:
public_html/includes/class/class.LSformElement_date.php
public_html/includes/js/LSformElement_date_field.js
public_html/includes/libs/arian-mootools-datepicker/Locale.cs-CZ.DatePicker.js [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/Locale.de-DE.DatePicker.js [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/Locale.en-US.DatePicker.js [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/Locale.fr-FR.DatePicker.js [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/Locale.it-IT.DatePicker.js [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/Locale.nl-NL.DatePicker.js [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/Locale.pl-PL.DatePicker.js [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/Locale.ru-RU.DatePicker.js [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/Picker.Attach.js [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/Picker.Date.js [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/Picker.js [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_dashboard/buttons.png [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_dashboard/datepicker_dashboard.css [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_dashboard/frame.png [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_default/datepicker_default.css [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_jqui/arrows.png [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_jqui/datepicker_jqui.css [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_jqui/frame.png [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/buttons.png [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/datepicker_vista.css [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/days.png [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/frame.png [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/months.png [new file with mode: 0644]
public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/years.png [new file with mode: 0644]
public_html/includes/libs/jscalendar/calendar-blue.css [deleted file]
public_html/includes/libs/jscalendar/calendar-blue2.css [deleted file]
public_html/includes/libs/jscalendar/calendar-brown.css [deleted file]
public_html/includes/libs/jscalendar/calendar-green.css [deleted file]
public_html/includes/libs/jscalendar/calendar-setup.js [deleted file]
public_html/includes/libs/jscalendar/calendar-setup_stripped.js [deleted file]
public_html/includes/libs/jscalendar/calendar-system.css [deleted file]
public_html/includes/libs/jscalendar/calendar-tas.css [deleted file]
public_html/includes/libs/jscalendar/calendar-win2k-1.css [deleted file]
public_html/includes/libs/jscalendar/calendar-win2k-2.css [deleted file]
public_html/includes/libs/jscalendar/calendar-win2k-cold-1.css [deleted file]
public_html/includes/libs/jscalendar/calendar-win2k-cold-2.css [deleted file]
public_html/includes/libs/jscalendar/calendar.js [deleted file]
public_html/includes/libs/jscalendar/calendar.php [deleted file]
public_html/includes/libs/jscalendar/calendar_stripped.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-af.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-al.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-bg.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-big5-utf8.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-big5.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-br.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-ca.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-cs-utf8.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-cs-win.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-da.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-de.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-du.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-el.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-en.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-es.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-fi.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-fr.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-he-utf8.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-hr-utf8.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-hr.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-hu.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-it.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-jp.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-ko-utf8.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-ko.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-lt-utf8.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-lt.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-lv.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-nl.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-no.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-pl-utf8.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-pl.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-pt.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-ro.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-ru.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-ru_win_.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-si.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-sk.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-sp.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-sv.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-tr.js [deleted file]
public_html/includes/libs/jscalendar/lang/calendar-zh.js [deleted file]
public_html/includes/libs/jscalendar/lang/cn_utf8.js [deleted file]
public_html/includes/libs/jscalendar/skins/aqua/active-bg.gif [deleted file]
public_html/includes/libs/jscalendar/skins/aqua/dark-bg.gif [deleted file]
public_html/includes/libs/jscalendar/skins/aqua/hover-bg.gif [deleted file]
public_html/includes/libs/jscalendar/skins/aqua/menuarrow.gif [deleted file]
public_html/includes/libs/jscalendar/skins/aqua/normal-bg.gif [deleted file]
public_html/includes/libs/jscalendar/skins/aqua/rowhover-bg.gif [deleted file]
public_html/includes/libs/jscalendar/skins/aqua/status-bg.gif [deleted file]
public_html/includes/libs/jscalendar/skins/aqua/theme.css [deleted file]
public_html/includes/libs/jscalendar/skins/aqua/title-bg.gif [deleted file]
public_html/includes/libs/jscalendar/skins/aqua/today-bg.gif [deleted file]

index ad4895a..a9c0bb5 100644 (file)
@@ -39,36 +39,31 @@ class LSformElement_date extends LSformElement {
     "A" => "A",
     "b" => "b",
     "B" => "B",
-    "C" => "C",
+    "c" => "c",
     "d" => "d",
-    "D" => "m/%d/%y",
     "e" => "e",
-    "h" => "b",
     "H" => "H",
     "I" => "I",
     "j" => "j",
     "m" => "m",
     "M" => "M",
-    "n" => "n",
     "p" => "p",
-    "r" => "p",
-    "R" => "H:%M",
+    "s" => "s",
     "S" => "S",
-    "t" => "t",
-    "T" => "H:%M:%S",
-    "u" => "u",
+    "T" => "T",
     "U" => "U",
-    "V" => "V",
     "w" => "w",
-    "W" => "W",
     "y" => "y",
     "Y" => "Y",
-    "Z" => "T",
-    "%" => "%"
+    "z" => "z",
+    "Z" => "Z",
+    "%" => "%",
   );
-  
+
   var $_cache_php2js_format=array();
 
+  var $default_style="vista";
+
   /**
    * Définis la valeur de l'élément date
    *
@@ -82,9 +77,14 @@ class LSformElement_date extends LSformElement {
     if (!is_array($data)) {
       $data=array($data);
     }
-    
+
     for($i=0;$i<count($data);$i++) {
-      $data[$i]=strftime($this -> getFormat(),$data[$i]);
+      if(is_numeric($data[$i])) {
+        $data[$i]=strftime($this -> getFormat(),$data[$i]);
+      }
+      else {
+        $this -> form -> setElementError($this -> attr_html);
+      }
     }
 
     $this -> values = $data;
@@ -119,11 +119,29 @@ class LSformElement_date extends LSformElement {
       return $this -> params['html_options']['format'];
     }
     else {
+      if (isset($this -> params['html_options']['time']) && !$this -> params['html_options']['time']) {
+        return '%d/%m/%Y';
+      }
       return "%d/%m/%Y, %T";
     }
   }
 
  /**
+  * Return date picker style value
+  *
+  * @retval string The date picker style
+  **/
+  function getStyle() {
+    if (isset($this -> params['html_options']['style'])) {
+      if (is_dir(LS_LIB_DIR.'arian-mootools-datepicker/datepicker_'.strval($this -> params['html_options']['style']))) {
+        return $this -> params['html_options']['style'];
+      }
+      LSdebug('LSformElement :: Date => unknown style parameter value '.strval($this -> params['html_options']['style']));
+    }
+    return $this -> default_style;
+  }
+
+ /**
   * Retourne les infos d'affichage de l'élément
   * 
   * Cette méthode retourne les informations d'affichage de l'élement
@@ -138,22 +156,26 @@ class LSformElement_date extends LSformElement {
       LSsession :: addHelpInfos(
         'LSformElement_date',
         array(
-          'calendar' => _('Select in a calendar.'),
           'now' => _('Now.')
         )
       );
       
       $params = array(
         'format' => $this -> php2js_format($this -> getFormat()),
-        'firstDayOfWeek' => $this -> getFirstDayOfWeek()
+        'style' => $this -> getStyle(),
+        'time' => (isset($this -> params['html_options']['time'])?$this -> params['html_options']['time']:true),
+        'manual' => (isset($this -> params['html_options']['manual'])?$this -> params['html_options']['manual']:true)
       );
       LSsession :: addJSconfigParam($this -> name,$params);
       
-      LSsession :: addCssFile('theme.css',LS_LIB_DIR.'jscalendar/skins/aqua/');
-      LSsession :: addJSscript('calendar.js',LS_LIB_DIR.'jscalendar/');
-      LSsession :: addJSscript('calendar-en.js',LS_LIB_DIR.'jscalendar/lang/');
-      $codeLang = LSsession :: getLang(true);
-      LSsession :: addJSscript('calendar-'.$codeLang.'.js',LS_LIB_DIR.'jscalendar/lang/');
+      $codeLang = str_replace('_','-',preg_replace('/\..*$/','',LSsession :: getLang()));
+
+      LSsession :: addJSscript('Picker.js',LS_LIB_DIR.'arian-mootools-datepicker/');
+      LSsession :: addJSscript('Picker.Attach.js',LS_LIB_DIR.'arian-mootools-datepicker/');
+      LSsession :: addJSscript('Picker.Date.js',LS_LIB_DIR.'arian-mootools-datepicker/');
+      LSsession :: addJSscript('Locale.'.$codeLang.'.DatePicker.js',LS_LIB_DIR.'arian-mootools-datepicker/');
+      LSsession :: addCssFile('datepicker_'.$params['style'].'.css',LS_LIB_DIR.'arian-mootools-datepicker/datepicker_'.$params['style'].'/');
+
       LSsession :: addJSscript('LSformElement_date_field.js');
       LSsession :: addJSscript('LSformElement_date.js');
     }
@@ -162,20 +184,6 @@ class LSformElement_date extends LSformElement {
   }
  
  /**
-  * Retourne le nurméro du premier jour de la semaine
-  * 
-  * @retval int 0=dimanche ... 6=samedi, par défaut 0=dimanche
-  */
-  function getFirstDayOfWeek() {
-    if (isset($this -> params['html_options']['firstDayOfWeek'])) {
-      return $this -> params['html_options']['firstDayOfWeek'];
-    }
-    else {
-      return 0;
-    }
-  }
-  
- /**
   * Convertis un format de date Php (strftime) en JS (jscalendar)
   * 
   * @retval mixed Format de date jscalendar (string) ou False si la convertion
index 5c1f1e6..413bd83 100644 (file)
@@ -2,86 +2,49 @@ var LSformElement_date_field = new Class({
     initialize: function(name,input){
       this.name = name;
       this.input = input;
-      this.calendarBtn = new Element('img');
-      this.calendarBtn.src = varLSdefault.imagePath('calendar.png');
-      this.calendarBtn.addClass('btn');
-      this.calendarBtn.addEvent('click',this.onCalendarBtnClick.bind(this));
-      this.calendarBtn.injectAfter(this.input);
-      varLSdefault.addHelpInfo(this.calendarBtn,'LSformElement_date','calendar');
       
       this.params = varLSdefault.LSjsConfig[this.name];
       if (!$type(this.params)) {
         this.params={};
       }
-      if (!$type(this.params.format)) {
-        this.params.format = "%d/%m/%Y, %H:%M:%S";
+      if (!$type(this.params.time)) {
+        this.params.time = true;
       }
-      if (!$type(this.params.firstDayOfWeek)) {
-        this.params.firstDayOfWeek=0;
+      if (!$type(this.params.manual)) {
+        this.params.manual = true;
       }
-      
-      this.firstInputClick = 1;
-      this.input.addEvent('click',this.onInputClick.bind(this));
-      
-      this.date = Date.parseDate(this.input.value,this.params.format);
-      
-      this.calendar = new Calendar(
-        this.params.firstDayOfWeek,
-        this.date,
-        this.onChangeCalendar.bind(this),
-        this.onCloseCalendar.bind(this)
+
+      if (!$type(this.params.style)) {
+        this.params.style = 'dashboard';
+      }
+
+      if (!$type(this.params.format)) {
+        if (this.params.time) {
+          this.params.format = "%d/%m/%Y, %H:%M:%S";
+        }
+        else {
+          this.params.format = "%d/%m/%Y";
+        }
+      }
+
+      this.calendar = new DatePicker(this.input, {
+          format: this.params.format,
+          timePicker: this.params.time,
+          pickerClass: 'datepicker_'+this.params.style,
+          blockKeydown: (!this.params.manual),
+          useFadeInOut: !Browser.ie
+        }
       );
-      this.calendar.setDateFormat(this.params.format);
-      this.calendar.showsTime = true;
-      this.calendar.create();
-      
+
       this.nowBtn = new Element('img');
       this.nowBtn.src = varLSdefault.imagePath('now.png');
       this.nowBtn.addClass('btn');
       this.nowBtn.addEvent('click',this.onNowBtnClick.bind(this));
-      this.nowBtn.injectAfter(this.calendarBtn);
+      this.nowBtn.injectAfter(this.input);
       varLSdefault.addHelpInfo(this.nowBtn,'LSformElement_date','now');
     },
     
-    onInputClick: function() {
-      if(this.firstInputClick==1) {
-        this.toogle();
-        this.firstInputClick=0;
-      }
-    },
-    
-    onCalendarBtnClick: function() {
-      this.toogle();
-    },
-    
-    open: function() {
-      this.opened = 1;
-      this.calendar.showAtElement(this.calendarBtn);
-    },
-    
-    close: function() {
-      this.opened = 0;
-      this.calendar.hide();
-    },
-    
-    toogle: function() {
-      if (this.opened) {
-        this.close();
-      }
-      else {
-        this.open();
-      }
-    },
-    
-    onChangeCalendar: function(calendar, date) {
-      this.input.value = date;
-    },
-    
-    onCloseCalendar: function() {
-      this.close();
-    },
-    
     onNowBtnClick: function() {
-      this.input.value = new Date().print(this.params.format);
-    },
+      this.input.value = new Date().format(this.params.format);
+    }
 });
diff --git a/public_html/includes/libs/arian-mootools-datepicker/Locale.cs-CZ.DatePicker.js b/public_html/includes/libs/arian-mootools-datepicker/Locale.cs-CZ.DatePicker.js
new file mode 100644 (file)
index 0000000..53387f7
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+---
+name: Locale.cs-CZ.DatePicker
+description: Czech Language File for DatePicker
+authors: Jan Cerny
+requires: [More/Locale]
+provides: Locale.cs-CZ.DatePicker
+...
+*/
+
+
+Locale.define('cs-CZ', 'DatePicker', {
+       select_a_time: 'Vyberte čas',
+       use_mouse_wheel: 'Použijte kolečko myši k rychlé změně hodnoty',
+       time_confirm_button: 'Zvolte čas'
+});
diff --git a/public_html/includes/libs/arian-mootools-datepicker/Locale.de-DE.DatePicker.js b/public_html/includes/libs/arian-mootools-datepicker/Locale.de-DE.DatePicker.js
new file mode 100644 (file)
index 0000000..78c1ebd
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+---
+name: Locale.de-DE.DatePicker
+description: German Language File for DatePicker
+authors: Bastian Bringenberg
+requires: [More/Locale]
+provides: Locale.de-DE.DatePicker
+...
+*/
+
+
+Locale.define('de-DE', 'DatePicker', {
+       select_a_time: 'Wähle eine Zeit',
+       use_mouse_wheel: 'Mit dem Mausrad kannst du schneller die Werte ändern',
+       time_confirm_button: 'OK'
+});
diff --git a/public_html/includes/libs/arian-mootools-datepicker/Locale.en-US.DatePicker.js b/public_html/includes/libs/arian-mootools-datepicker/Locale.en-US.DatePicker.js
new file mode 100644 (file)
index 0000000..26e72e6
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+---
+name: Locale.en-US.DatePicker
+description: English Language File for DatePicker
+authors: Arian Stolwijk
+requires: [More/Locale]
+provides: Locale.en-US.DatePicker
+...
+*/
+
+
+Locale.define('en-US', 'DatePicker', {
+       select_a_time: 'Select a time',
+       use_mouse_wheel: 'Use the mouse wheel to quickly change value',
+       time_confirm_button: 'OK'
+});
diff --git a/public_html/includes/libs/arian-mootools-datepicker/Locale.fr-FR.DatePicker.js b/public_html/includes/libs/arian-mootools-datepicker/Locale.fr-FR.DatePicker.js
new file mode 100644 (file)
index 0000000..3f4c1d1
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+---
+name: Locale.fr-FR.DatePicker
+description: French Language File for DatePicker
+authors: ["Arian Stolwijk", "charlouze"]
+requires: [More/Locale]
+provides: Locale.fr-FR.DatePicker
+...
+*/
+
+
+Locale.define('fr-FR', 'DatePicker', {
+       select_a_time: 'Choisir l\'heure',
+       use_mouse_wheel: 'Utiliser la molette pour changer l\'heure rapiedment',
+       time_confirm_button: 'OK'
+});
diff --git a/public_html/includes/libs/arian-mootools-datepicker/Locale.it-IT.DatePicker.js b/public_html/includes/libs/arian-mootools-datepicker/Locale.it-IT.DatePicker.js
new file mode 100644 (file)
index 0000000..7e2a146
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+---
+name: Locale.it-IT.DatePicker
+description: Italian Language File for DatePicker
+authors: danielec (https://github.com/danielec)
+requires: [More/Locale]
+provides: Locale.it-IT.DatePicker
+...
+*/
+
+Locale.define('it-IT', 'DatePicker', {
+    select_a_time: 'Scegli un orario',
+    use_mouse_wheel: 'Utilizza la rotellina del mouse per cambiare valore velocemente',
+    time_confirm_button: 'OK'
+});
diff --git a/public_html/includes/libs/arian-mootools-datepicker/Locale.nl-NL.DatePicker.js b/public_html/includes/libs/arian-mootools-datepicker/Locale.nl-NL.DatePicker.js
new file mode 100644 (file)
index 0000000..3e5f69e
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+---
+name: Locale.nl-NL.DatePicker
+description: Dutch Language File for DatePicker
+authors: Arian Stolwijk
+requires: [More/Locale]
+provides: Locale.nl-NL.DatePicker
+...
+*/
+
+
+Locale.define('nl-NL', 'DatePicker', {
+       select_a_time: 'Selecteer een tijd',
+       use_mouse_wheel: 'Gebruik uw scrollwiel om door de tijd te scrollen',
+       time_confirm_button: 'OK'
+});
diff --git a/public_html/includes/libs/arian-mootools-datepicker/Locale.pl-PL.DatePicker.js b/public_html/includes/libs/arian-mootools-datepicker/Locale.pl-PL.DatePicker.js
new file mode 100644 (file)
index 0000000..8146a83
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+---
+name: Locale.pl-PL.DatePicker
+description: Polish Language File for DatePicker
+authors: Tomek Wójcik
+requires: [More/Locale]
+provides: Locale.pl-PL.DatePicker
+...
+*/
+
+
+Locale.define('pl-PL', 'DatePicker', {
+       select_a_time: 'Wybierz czas',
+       use_mouse_wheel: 'Użyj rolki myszy aby szybko zmienić wartość',
+       time_confirm_button: 'OK'
+});
diff --git a/public_html/includes/libs/arian-mootools-datepicker/Locale.ru-RU.DatePicker.js b/public_html/includes/libs/arian-mootools-datepicker/Locale.ru-RU.DatePicker.js
new file mode 100644 (file)
index 0000000..31cc3d8
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+---
+name: Locale.ru-RU.DatePicker
+description: Russian Language File for DatePicker
+authors: https://github.com/rwz
+requires: [More/Locale]
+provides: Locale.ru-RU.DatePicker
+...
+*/
+
+
+Locale.define('ru-RU', 'DatePicker', {
+       select_a_time: 'Выберите время',
+       use_mouse_wheel: 'Используйте колесо мышки для быстрой смены значения',
+       time_confirm_button: 'OK'
+});
diff --git a/public_html/includes/libs/arian-mootools-datepicker/Picker.Attach.js b/public_html/includes/libs/arian-mootools-datepicker/Picker.Attach.js
new file mode 100644 (file)
index 0000000..948496b
--- /dev/null
@@ -0,0 +1,159 @@
+/*
+---
+name: Picker.Attach
+description: Adds attach and detach methods to the Picker, to attach it to element events
+authors: Arian Stolwijk
+requires: [Picker, Core/Element.Event]
+provides: Picker.Attach
+...
+*/
+
+
+Picker.Attach = new Class({
+
+       Extends: Picker,
+
+       options: {/*
+               onAttachedEvent: function(event){},
+
+               toggleElements: null, // deprecated
+               toggle: null, // When set it deactivate toggling by clicking on the input */
+               showOnInit: false, // overrides the Picker option
+               blockKeydown: true
+       },
+
+       initialize: function(attachTo, options){
+               this.parent(options);
+
+               this.attachedEvents = [];
+               this.attachedElements = [];
+               this.toggles = [];
+               this.inputs = [];
+
+               var documentEvent = function(event){
+                       if (this.attachedElements.contains(event.target)) return;
+                       this.close();
+               }.bind(this);
+               var document = this.picker.getDocument().addEvent('click', documentEvent);
+
+               var preventPickerClick = function(event){
+                       event.stopPropagation();
+                       return false;
+               };
+               this.picker.addEvent('click', preventPickerClick);
+
+               // Support for deprecated toggleElements
+               if (this.options.toggleElements) this.options.toggle = document.getElements(this.options.toggleElements);
+
+               this.attach(attachTo, this.options.toggle);
+       },
+
+       attach: function(attachTo, toggle){
+               if (typeOf(attachTo) == 'string') attachTo = document.id(attachTo);
+               if (typeOf(toggle) == 'string') toggle = document.id(toggle);
+
+               var elements = Array.from(attachTo),
+                       toggles = Array.from(toggle),
+                       allElements = [].append(elements).combine(toggles),
+                       self = this;
+
+               var closeEvent = function(event){
+                       var stopInput = self.options.blockKeydown
+                                       && event.type == 'keydown'
+                                       && !(['tab', 'esc'].contains(event.key)),
+                               isCloseKey = event.type == 'keydown'
+                                       && (['tab', 'esc'].contains(event.key)),
+                               isA = event.target.get('tag') == 'a';
+
+                       if (stopInput || isA) event.preventDefault();
+                       if (isCloseKey || isA) self.close();
+               };
+
+               var getOpenEvent = function(element){
+                       return function(event){
+                               if (event.target.get('tag') == 'a') event.stop();
+                               self.fireEvent('attachedEvent', [event, element]);
+                               self.position(element);
+                               self.open();
+                       };
+               };
+
+               var getToggleEvent = function(open, close){
+                       return function(event){
+                               if (self.opened) close(event);
+                               else open(event);
+                       };
+               };
+
+               allElements.each(function(element){
+
+                       // The events are already attached!
+                       if (self.attachedElements.contains(element)) return;
+
+                       var events = {},
+                               tag = element.get('tag'),
+                               openEvent = getOpenEvent(element),
+                               // closeEvent does not have a depency on element
+                               toggleEvent = getToggleEvent(openEvent, closeEvent);
+       
+                       if (tag == 'input'){
+                               // Fix in order to use togglers only
+                               if (!toggles.length){
+                                       events = {
+                                               focus: openEvent,
+                                               click: openEvent,
+                                               keydown: closeEvent
+                                       };
+                               }
+                               self.inputs.push(element);
+                       } else {
+                               if (toggles.contains(element)){
+                                       self.toggles.push(element);
+                                       events.click = toggleEvent
+                               } else {
+                                       events.click = openEvent;
+                               }
+                       }
+                       element.addEvents(events);
+                       self.attachedElements.push(element);
+                       self.attachedEvents.push(events);
+               });
+               return this;
+       },
+
+       detach: function(attachTo, toggle){
+               if (typeOf(attachTo) == 'string') attachTo = document.id(attachTo);
+               if (typeOf(toggle) == 'string') toggle = document.id(toggle);
+
+               var elements = Array.from(attachTo),
+                       toggles = Array.from(toggle),
+                       allElements = [].append(elements).combine(toggles),
+                       self = this;
+
+               if (!allElements.length) allElements = self.attachedElements;
+
+               allElements.each(function(element){
+                       var i = self.attachedElements.indexOf(element);
+                       if (i < 0) return;
+
+                       var events = self.attachedEvents[i];
+                       element.removeEvents(events);
+                       delete self.attachedEvents[i];
+                       delete self.attachedElements[i];
+
+                       var toggleIndex = self.toggles.indexOf(element);
+                       if (toggleIndex != -1) delete self.toggles[toggleIndex];
+
+                       var inputIndex = self.inputs.indexOf(element);
+                       if (toggleIndex != -1) delete self.inputs[inputIndex];
+
+               });
+               return this;
+       },
+
+       destroy: function(){
+               this.detach();
+               return this.parent();
+       }
+
+});
diff --git a/public_html/includes/libs/arian-mootools-datepicker/Picker.Date.js b/public_html/includes/libs/arian-mootools-datepicker/Picker.Date.js
new file mode 100644 (file)
index 0000000..aae7cd8
--- /dev/null
@@ -0,0 +1,580 @@
+/*
+---
+name: Picker.Date
+description: Creates a DatePicker, can be used for picking years/months/days and time, or all of them
+authors: Arian Stolwijk
+requires: [Picker, Picker.Attach, Locale.en-US.DatePicker, More/Locale, More/Date]
+provides: Picker.Date
+...
+*/
+
+
+(function(){
+
+this.DatePicker = Picker.Date = new Class({
+
+       Extends: Picker.Attach,
+
+       options: {/*
+               onSelect: function(date){},
+
+               minDate: new Date('3/4/2010'), // Date object or a string
+               maxDate: new Date('3/4/2011'), // same as minDate
+               availableDates: {}, //
+               format: null,*/
+
+               timePicker: false,
+               timePickerOnly: false, // deprecated, use onlyView = 'time'
+               timeWheelStep: 1, // 10,15,20,30
+
+               yearPicker: true,
+               yearsPerPage: 20,
+
+               startDay: 1, // Sunday (0) through Saturday (6) - be aware that this may affect your layout, since the days on the right might have a different margin
+
+               startView: 'days', // allowed values: {time, days, months, years}
+               pickOnly: false, // 'years', 'months', 'days', 'time'
+               canAlwaysGoUp: ['months', 'days'],
+               updateAll : false, //whether or not to update all inputs when selecting a date
+
+               // if you like to use your own translations
+               months_abbr: null,
+               days_abbr: null,
+               years_title: function(date, options){
+                       var year = date.get('year');
+                       return year + '-' + (year + options.yearsPerPage - 1);
+               },
+               months_title: function(date, options){
+                       return date.get('year');
+               },
+               days_title: function(date, options){
+                       return date.format('%b %Y');
+               },
+               time_title: function(date, options){
+                       return (options.pickOnly == 'time') ? Locale.get('DatePicker.select_a_time') : date.format('%d %B, %Y');
+               }
+       },
+
+       initialize: function(attachTo, options){
+               this.parent(attachTo, options);
+
+               this.setOptions(options);
+               options = this.options;
+
+               // If we only want to use one picker / backwards compatibility
+               ['year', 'month', 'day', 'time'].some(function(what){
+                       if (options[what + 'PickerOnly']){
+                               options.pickOnly = what;
+                               return true;
+                       }
+                       return false;
+               });
+               if (options.pickOnly){
+                       options[options.pickOnly + 'Picker'] = true;
+                       options.startView = options.pickOnly;
+               }
+
+               // backward compatibility for startView
+               var newViews = ['days', 'months', 'years'];
+               ['month', 'year', 'decades'].some(function(what, i){
+                       if (options.startView == what){
+                               options.startView = newViews[i];
+                               return true;
+                       }
+                       return false;
+               });
+
+               options.canAlwaysGoUp = options.canAlwaysGoUp ? Array.from(options.canAlwaysGoUp) : [];
+
+               // Set the min and max dates as Date objects
+               if (options.minDate){
+                       if (!(options.minDate instanceof Date)) options.minDate = Date.parse(options.minDate);
+                       options.minDate.clearTime();
+               }
+               if (options.maxDate){
+                       if (!(options.maxDate instanceof Date)) options.maxDate = Date.parse(options.maxDate);
+                       options.maxDate.clearTime();
+               }
+
+               if (!options.format){
+                       options.format = (options.pickOnly != 'time') ? Locale.get('Date.shortDate') : '';
+                       if (options.timePicker) options.format = (options.format) + (options.format ? ' ' : '') + Locale.get('Date.shortTime');
+               }
+
+               // This is where we store the selected date
+               this.date = limitDate(new Date(), options.minDate, options.maxDate);
+
+               // Some link or input has fired an event!
+               this.addEvent('attachedEvent', function(event, element){
+                       var tag = element.get('tag'), input;
+                       if (tag == 'input'){
+                               input = element;
+                       } else {
+                               var index = this.toggles.indexOf(element);
+                               if (this.inputs[index]) input = this.inputs[index];
+                       }
+                       this.date = new Date();
+                       if (input){
+                               var date = Date.parse(input.get('value'));
+                               if (date == null || !date.isValid()){
+                                       var storeDate = input.retrieve('datepicker:value');
+                                       if (storeDate) date = Date.parse(storeDate);
+                               }
+                               if (date != null && date.isValid()) this.date = date;
+                       }
+                       this.input = input;
+               }.bind(this), true);
+
+
+               // Start rendering the default view.
+               this.currentView = options.startView;
+               this.addEvent('open', function(){
+                       var view = this.currentView,
+                               cap = view.capitalize();
+                       if (this['render' + cap]){
+                               this['render' + cap](this.date.clone());
+                               this.currentView = view;
+                       }
+               }.bind(this));
+
+       },
+
+       // Control the previous and next elements
+
+       constructPicker: function(){
+               this.parent();
+
+               this.previous = new Element('div.previous[html=&#171;]').inject(this.header);
+               this.next = new Element('div.next[html=&#187;]').inject(this.header);
+       },
+
+       hidePrevious: function($next, $show){
+               this[$next ? 'next' : 'previous'].setStyle('display', $show ? 'block' : 'none');
+               return this;
+       },
+
+       showPrevious: function($next){
+               return this.hidePrevious($next, true);
+       },
+
+       setPreviousEvent: function(fn, $next){
+               this[$next ? 'next' : 'previous'].removeEvents('click');
+               if (fn) this[$next ? 'next' : 'previous'].addEvent('click', fn);
+               return this;
+       },
+
+       hideNext: function(){
+               return this.hidePrevious(true);
+       },
+
+       showNext: function(){
+               return this.showPrevious(true);
+       },
+
+       setNextEvent: function(fn){
+               return this.setPreviousEvent(fn, true);
+       },
+
+       // Render the Pickers
+
+       renderYears: function(date, fx){
+
+               var options = this.options;
+
+               // start neatly at interval (eg. 1980 instead of 1987)
+               while (date.get('year') % options.yearsPerPage > 0) date.decrement('year', 1);
+
+               this.setTitle(options.years_title(date, options));
+
+               this.setContent(renderers.years(
+                       options,
+                       date.clone(),
+                       this.date.clone(),
+                       function(date){
+                               if (options.pickOnly == 'years') this.select(date);
+                               else this.renderMonths(date, 'fade');
+                       }.bind(this)
+               ), fx);
+
+               // Set limits
+               var limitLeft = (options.minDate && date.get('year') <= options.minDate.get('year')),
+                       limitRight = (options.maxDate && (date.get('year') + options.yearsPerPage) >= options.maxDate.get('year'));
+               this[(limitLeft ? 'hide' : 'show') + 'Previous']();
+               this[(limitRight ? 'hide' : 'show') + 'Next']();
+
+               this.setPreviousEvent(function(){
+                       this.renderYears(date.decrement('year', options.yearsPerPage), 'left');
+               }.bind(this));
+
+               this.setNextEvent(function(){
+                       this.renderYears(date.increment('year', options.yearsPerPage), 'right');
+               }.bind(this));
+
+               // We can't go up!
+               this.setTitleEvent(null);
+       },
+
+       renderMonths: function(date, fx){
+               var options = this.options;
+               this.setTitle(options.months_title(date, options));
+
+               this.setContent(renderers.months(
+                       options,
+                       date.clone(),
+                       this.date.clone(),
+                       function(date){
+                               if (options.pickOnly == 'months') this.select(date);
+                               else this.renderDays(date, 'fade');
+                       }.bind(this)
+               ), fx);
+
+               // Set limits
+               var year = date.get('year'),
+                       limitLeft = (options.minDate && year <= options.minDate.get('year')),
+                       limitRight = (options.maxDate && year >= options.maxDate.get('year'));
+               this[(limitLeft ? 'hide' : 'show') + 'Previous']();
+               this[(limitRight ? 'hide' : 'show') + 'Next']();
+
+               this.setPreviousEvent(function(){
+                       this.renderMonths(date.decrement('year', 1), 'left');
+               }.bind(this));
+
+               this.setNextEvent(function(){
+                       this.renderMonths(date.increment('year', 1), 'right');
+               }.bind(this));
+
+               var canGoUp = options.yearPicker && (options.pickOnly != 'months' || options.canAlwaysGoUp.contains('months'));
+               var titleEvent = (canGoUp) ? function(){
+                       this.renderYears(date, 'fade');
+               }.bind(this) : null;
+               this.setTitleEvent(titleEvent);
+       },
+
+       renderDays: function(date, fx){
+               var options = this.options;
+               this.setTitle(options.days_title(date, options));
+
+               this.setContent(renderers.days(
+                       options,
+                       date.clone(),
+                       this.date.clone(),
+                       function(date){
+                               if (options.pickOnly == 'days' || !options.timePicker) this.select(date)
+                               else this.renderTime(date, 'fade');
+                       }.bind(this)
+               ), fx);
+
+               var yearmonth = date.format('%Y%m').toInt(),
+                       limitLeft = (options.minDate && yearmonth <= options.minDate.format('%Y%m')),
+                       limitRight = (options.maxDate && yearmonth >= options.maxDate.format('%Y%m'));
+               this[(limitLeft ? 'hide' : 'show') + 'Previous']();
+               this[(limitRight ? 'hide' : 'show') + 'Next']();
+
+               this.setPreviousEvent(function(){
+                       this.renderDays(date.decrement('month', 1), 'left');
+               }.bind(this));
+
+               this.setNextEvent(function(){
+                       this.renderDays(date.increment('month', 1), 'right');
+               }.bind(this));
+
+               var canGoUp = options.pickOnly != 'days' || options.canAlwaysGoUp.contains('days');
+               var titleEvent = (canGoUp) ? function(){
+                       this.renderMonths(date, 'fade');
+               }.bind(this) : null;
+               this.setTitleEvent(titleEvent);
+       },
+
+       renderTime: function(date, fx){
+               var options = this.options;
+               this.setTitle(options.time_title(date, options));
+
+               this.setContent(renderers.time(
+                       options,
+                       date.clone(),
+                       this.date.clone(),
+                       function(date){
+                               this.select(date);
+                       }.bind(this)
+               ), fx);
+
+               // Hide « and » buttons
+               this.hidePrevious()
+                       .hideNext()
+                       .setPreviousEvent(null)
+                       .setNextEvent(null);
+
+               var canGoUp = options.pickOnly != 'time' || options.canAlwaysGoUp.contains('time');
+               var titleEvent = (canGoUp) ? function(){
+                       this.renderDays(date, 'fade');
+               }.bind(this) : null;
+               this.setTitleEvent(titleEvent);
+       },
+
+       select: function(date, all){
+               this.date = date;
+               var formatted = date.format(this.options.format),
+                       time = date.strftime(),
+                       inputs = (!this.options.updateAll && !all && this.input) ? [this.input] : this.inputs;
+
+               inputs.each(function(input){
+                       input.set('value', formatted)
+                               .store('datepicker:value', time)
+               }, this);
+
+               this.fireEvent('select', date);
+               this.close();
+               return this;
+       }
+
+});
+
+
+// Renderers only output elements and calculate the limits!
+
+var renderers = {
+
+       years: function(options, date, currentDate, fn){
+               var container = new Element('div.years'),
+                       today = new Date(),
+                       year, element, classes;
+
+               for (var i = 0; i < options.yearsPerPage; i++){
+                       year = date.get('year');
+
+                       classes = '.year.year' + i;
+                       if (year == today.get('year')) classes += '.today';
+                       if (year == currentDate.get('year')) classes += '.selected';
+                       element = new Element('div' + classes, {text: year}).inject(container);
+
+                       if (isUnavailable('year', date, options)) element.addClass('unavailable');
+                       else element.addEvent('click', fn.pass(date.clone()));
+
+                       date.increment('year', 1);
+               }
+
+               return container;
+       },
+
+       months: function(options, date, currentDate, fn){
+               var today = new Date(),
+                       month = today.get('month'),
+                       thisyear = (date.get('year') == today.get('year')),
+                       selectedyear = (date.get('year') == currentDate.get('year')),
+                       container = new Element('div.months'),
+                       months = options.months_abbr || Locale.get('Date.months_abbr'),
+                       element, classes;
+
+               date.set('month', 0);
+               if (options.minDate){
+                       date.decrement('month', 1);
+                       date.set('date', date.get('lastdayofmonth'));
+                       date.increment('month', 1);
+               }
+
+               date.set('date', date.get('lastdayofmonth'));
+
+               for (var i = 0; i <= 11; i++){
+
+                       classes = '.month.month' + (i + 1);
+                       if (i == month && thisyear) classes += '.today';
+                       if (i == currentDate.get('month') && selectedyear) classes += '.selected';
+                       element = new Element('div' + classes, {text: months[i]}).inject(container);
+
+                       if (isUnavailable('month', date, options)) element.addClass('unavailable');
+                       else element.addEvent('click', fn.pass(date.clone()));
+
+                       date.increment('month', 1);
+                       date.set('date', date.get('lastdayofmonth'));
+               }
+
+               return container;
+       },
+
+       days: function(options, date, currentDate, fn){
+               var month = date.get('month'),
+                       todayString = new Date().toDateString(),
+                       currentString = currentDate.toDateString(),
+                       container = new Element('div.days'),
+                       titles = new Element('div.titles').inject(container),
+                       localeDaysShort = options.days_abbr || Locale.get('Date.days_abbr'),
+                       day, classes, element, weekcontainer, dateString;
+
+               date.setDate(1);
+               while (date.getDay() != options.startDay) date.setDate(date.getDate() - 1);
+
+               for (day = options.startDay; day < (options.startDay + 7); day++){
+                       new Element('div.title.day.day' + (day % 7), {
+                               text: localeDaysShort[(day % 7)]
+                       }).inject(titles);
+               }
+
+               for (var i = 0; i < 42; i++){
+
+                       if (i % 7 == 0){
+                               weekcontainer = new Element('div.week.week' + (Math.floor(i / 7))).inject(container);
+                       }
+
+                       dateString = date.toDateString();
+                       classes = '.day.day' + date.get('day');
+                       if (dateString == todayString) classes += '.today';
+                       if (dateString == currentString) classes += '.selected';
+                       if (date.get('month') != month) classes += '.otherMonth';
+
+                       element = new Element('div' + classes, {text: date.getDate()}).inject(weekcontainer);
+
+                       if (isUnavailable('date', date, options)) element.addClass('unavailable');
+                       else element.addEvent('click', fn.pass(date.clone()));
+
+                       date.increment('day',  1);
+               }
+
+               return container;
+       },
+
+       time: function(options, date, currentDate, fn){
+               var container = new Element('div.time'),
+                       // make sure that the minutes are timeWheelStep * k
+                       initMinutes = (date.get('minutes') / options.timeWheelStep).round() * options.timeWheelStep
+
+               if (initMinutes >= 60) initMinutes = 0;
+               date.set('minutes', initMinutes);
+
+               var hoursInput = new Element('input.hour[type=text]', {
+                       title: Locale.get('DatePicker.use_mouse_wheel'),
+                       value: date.format('%H'),
+                       events: {
+                               click: function(event){
+                                       event.target.focus();
+                                       event.stop();
+                               },
+                               mousewheel: function(event){
+                                       event.stop();
+                                       hoursInput.focus();
+                                       var value = hoursInput.get('value').toInt();
+                                       value = (event.wheel > 0) ? ((value < 23) ? value + 1 : 0)
+                                               : ((value > 0) ? value - 1 : 23)
+                                       date.set('hours', value);
+                                       hoursInput.set('value', date.format('%H'));
+                               }.bind(this)
+                       },
+                       maxlength: 2
+               }).inject(container);
+
+               var minutesInput = new Element('input.minutes[type=text]', {
+                       title: Locale.get('DatePicker.use_mouse_wheel'),
+                       value: date.format('%M'),
+                       events: {
+                               click: function(event){
+                                       event.target.focus();
+                                       event.stop();
+                               },
+                               mousewheel: function(event){
+                                       event.stop();
+                                       minutesInput.focus();
+                                       var value = minutesInput.get('value').toInt();
+                                       value = (event.wheel > 0) ? ((value < 59) ? (value + options.timeWheelStep) : 0)
+                                               : ((value > 0) ? (value - options.timeWheelStep) : (60 - options.timeWheelStep));
+                                       if (value >= 60) value = 0;
+                                       date.set('minutes', value);
+                                       minutesInput.set('value', date.format('%M'));
+                               }.bind(this)
+                       },
+                       maxlength: 2
+               }).inject(container);
+
+               new Element('div.separator[text=:]').inject(container);
+
+               new Element('input.ok[type=submit]', {
+                       value: Locale.get('DatePicker.time_confirm_button'),
+                       events: {click: function(event){
+                               event.stop();
+                               date.set({
+                                       hours: hoursInput.get('value').toInt(),
+                                       minutes: minutesInput.get('value').toInt()
+                               });
+                               fn(date.clone());
+                       }}
+               }).inject(container);
+
+               return container;
+       }
+
+};
+
+
+Picker.Date.defineRenderer = function(name, fn){
+       renderers[name] = fn;
+       return this;
+};
+
+
+var limitDate = function(date, min, max){
+       if (min && date < min) return min;
+       if (max && date > max) return max;
+       return date;
+};
+
+var isUnavailable = function(type, date, options){
+       var minDate = options.minDate,
+               maxDate = options.maxDate,
+               availableDates = options.availableDates,
+               year, month, day, ms;
+
+       if (!minDate && !maxDate && !availableDates) return false;
+       date.clearTime();
+
+       if (type == 'year'){
+               year = date.get('year');
+               return (
+                       (minDate && year < minDate.get('year')) ||
+                       (maxDate && year > maxDate.get('year')) ||
+                       (
+                               (availableDates != null) && (
+                                       availableDates[year] == null ||
+                                       Object.getLength(availableDates[year]) == 0 ||
+                                       Object.getLength(
+                                               Object.filter(availableDates[year], function(days){
+                                                       return (days.length > 0);
+                                               })
+                                       ) == 0
+                               )
+                       )
+               );
+       }
+
+       if (type == 'month'){
+               year = date.get('year');
+               month = date.get('month') + 1;
+               ms = date.format('%Y%m').toInt();
+               return (
+                       (minDate && ms < minDate.format('%Y%m').toInt()) ||
+                       (maxDate && ms > maxDate.format('%Y%m').toInt()) ||
+                       (
+                               (availableDates != null) && (
+                                       availableDates[year] == null ||
+                                       availableDates[year][month] == null ||
+                                       availableDates[year][month].length == 0
+                               )
+                       )
+               );
+       }
+
+       // type == 'date'
+       year = date.get('year');
+       month = date.get('month') + 1;
+       day = date.get('date');
+       return (
+               (minDate && date < minDate) ||
+               (maxDate && date > maxDate) ||
+               (
+                       (availableDates != null) && (
+                               availableDates[year] == null ||
+                               availableDates[year][month] == null ||
+                               !availableDates[year][month].contains(day)
+                       )
+               )
+       );
+};
+
+})();
diff --git a/public_html/includes/libs/arian-mootools-datepicker/Picker.js b/public_html/includes/libs/arian-mootools-datepicker/Picker.js
new file mode 100644 (file)
index 0000000..bea0eac
--- /dev/null
@@ -0,0 +1,291 @@
+/*
+---
+name: Picker
+description: Creates a Picker, which can be used for anything
+authors: Arian Stolwijk
+requires: [Core/Element.Dimensions, Core/Fx.Tween, Core/Fx.Transitions]
+provides: Picker
+...
+*/
+
+
+var Picker = new Class({
+
+       Implements: [Options, Events],
+
+       options: {/*
+               onShow: function(){},
+               onOpen: function(){},
+               onHide: function(){},
+               onClose: function(){},*/
+
+               pickerClass: 'datepicker',
+               inject: null,
+               animationDuration: 400,
+               useFadeInOut: true,
+               positionOffset: {x: 0, y: 0},
+               pickerPosition: 'bottom',
+               draggable: true,
+               showOnInit: true
+       },
+
+       initialize: function(options){
+               this.setOptions(options);
+               this.constructPicker();
+               if (this.options.showOnInit) this.show();
+       },
+
+       constructPicker: function(){
+               var options = this.options;
+
+               var picker = this.picker = new Element('div', {
+                       'class': options.pickerClass,
+                       styles: {
+                               left: 0,
+                               top: 0,
+                               display: 'none',
+                               opacity: 0
+                       }
+               }).inject(options.inject || document.body);
+
+               if (options.useFadeInOut){
+                       picker.set('tween', {
+                               duration: options.animationDuration,
+                               link: 'cancel'
+                       });
+               }
+
+               // Build the header
+               var header = this.header = new Element('div.header').inject(picker);
+
+               this.closeButton = new Element('div.closeButton[text=x]')
+                       .addEvent('click', this.close.pass(false, this))
+                       .inject(header);
+
+               var title = this.title = new Element('div.title').inject(header);
+               this.titleText = new Element('div.titleText').inject(title);
+
+               // Build the body of the picker
+               var body = this.body = new Element('div.body').inject(picker);
+
+               // oldContents and newContents are used to slide from the old content to a new one.
+               var slider = this.slider = new Element('div.slider', {
+                       styles: {
+                               position: 'absolute',
+                               top: 0,
+                               left: 0
+                       }
+               }).set('tween', {
+                       duration: options.animationDuration,
+                       transition: Fx.Transitions.Quad.easeInOut
+               }).inject(body);
+
+               this.oldContents = new Element('div', {
+                       styles: {
+                               position: 'absolute',
+                               top: 0
+                       }
+               }).inject(slider);
+
+               this.newContents = new Element('div', {
+                       styles: {
+                               position: 'absolute',
+                               top: 0,
+                               left: 0
+                       }
+               }).inject(slider);
+
+               // IFrameShim for select fields in IE
+               var shim = this.shim = window['IframeShim'] ? new IframeShim(picker) : null;
+
+               // Dragging
+               if (options.draggable && typeOf(picker.makeDraggable) == 'function'){
+                       this.dragger = picker.makeDraggable(shim ? {
+                               onDrag: shim.position.bind(shim)
+                       } : null);
+                       picker.setStyle('cursor', 'move');
+               }
+
+               this.addEvent('open', function(){
+                       picker.setStyle('display', 'block');
+                       if (shim) shim.show();
+               }, true);
+
+               this.addEvent('hide', function(){
+                       picker.setStyle('display', 'none');
+                       if (shim) shim.hide();
+               }, true);
+
+       },
+
+       open: function(noFx){
+               if (this.opened == true) return this;
+               this.opened = true;
+               this.fireEvent('open');
+               if (this.options.useFadeInOut && !noFx){
+                       this.picker.fade('in').get('tween').chain(function(){
+                               this.fireEvent('show');
+                       }.bind(this));
+               } else {
+                       this.picker.setStyle('opacity', 1);
+                       this.fireEvent('show');
+               }
+               return this;
+       },
+
+       show: function(){
+               return this.open(true);
+       },
+
+       close: function(noFx){
+               if (this.opened == false) return this;
+               this.opened = false;
+               this.fireEvent('close');
+               if (this.options.useFadeInOut && !noFx){
+                       this.picker.fade('out').get('tween').chain(function(){
+                               this.fireEvent('hide');
+                       }.bind(this));
+               } else {
+                       this.picker.setStyle('opacity', 0);
+                       this.fireEvent('hide');
+               }
+               return this;
+       },
+
+       hide: function(){
+               return this.close(true);
+       },
+
+       toggle: function(){
+               return this[this.opened == true ? 'close' : 'open']();
+       },
+
+       destroy: function(){
+               this.picker.destroy();
+               if (this.shim) this.shim.destroy();
+       },
+
+       position: function(x, y){
+               var offset = this.options.positionOffset,
+                       scroll = document.getScroll(),
+                       size = document.getSize(),
+                       pickersize = this.picker.getSize();
+
+               if (typeOf(x) == 'element'){
+                       var element = x,
+                               where = y || this.options.pickerPosition;
+
+                       var elementCoords = element.getCoordinates();
+
+                       x = (where == 'left') ? elementCoords.left - pickersize.x
+                               : (where == 'bottom' || where == 'top') ? elementCoords.left
+                               : elementCoords.right
+                       y = (where == 'bottom') ? elementCoords.bottom
+                               : (where == 'top') ? elementCoords.top - pickersize.y
+                               : elementCoords.top;
+               }
+
+               x += offset.x * ((where && where == 'left') ? -1 : 1);
+               y += offset.y * ((where && where == 'top') ? -1: 1);
+
+               if ((x + pickersize.x) > (size.x + scroll.x)) x = (size.x + scroll.x) - pickersize.x;
+               if ((y + pickersize.y) > (size.y + scroll.y)) y = (size.y + scroll.y) - pickersize.y;
+               if (x < 0) x = 0;
+               if (y < 0) y = 0;
+
+               this.picker.setStyles({
+                       left: x,
+                       top: y
+               });
+               if (this.shim) this.shim.position();
+               return this;
+       },
+
+       setBodySize: function(){
+               var bodysize = this.bodysize = this.body.getSize();
+               this.slider.setStyles({
+                       width: 2 * bodysize.x,
+                       height: bodysize.y
+               });
+               this.oldContents.setStyles({
+                       left: bodysize.x,
+                       width: bodysize.x,
+                       height: bodysize.y
+               });
+               this.newContents.setStyles({
+                       width: bodysize.x,
+                       height: bodysize.y
+               });
+       },
+
+       setContent: function(){
+               var content = Array.from(arguments), fx;
+
+               if (['right', 'left', 'fade'].contains(content[1])) fx = content[1];
+               if (content.length == 1 || fx) content = content[0];
+
+               // swap contents so we can fill the newContents again and animate
+               var old = this.oldContents;
+               this.oldContents = this.newContents;
+               this.newContents = old;
+               this.newContents.empty();
+
+               var type = typeOf(content);
+               if (['string', 'number'].contains(type)) this.newContents.set('text', content);
+               else this.newContents.adopt(content);
+
+               this.setBodySize();
+
+               if (fx){
+                       this.fx(fx);
+               } else {
+                       this.slider.setStyle('left', 0);
+                       this.oldContents.setStyles({left: 0, opacity: 0});
+                       this.newContents.setStyles({left: 0, opacity: 1});
+               }
+               return this;
+       },
+
+       fx: function(fx){
+               var oldContents = this.oldContents,
+                       newContents = this.newContents,
+                       slider = this.slider,
+                       bodysize = this.bodysize;
+               if (fx == 'right'){
+                       oldContents.setStyles({left: 0, opacity: 1});
+                       newContents.setStyles({left: bodysize.x, opacity: 1});
+                       slider.setStyle('left', 0).tween('left', 0, -bodysize.x);
+               } else if (fx == 'left'){
+                       oldContents.setStyles({left: bodysize.x, opacity: 1});
+                       newContents.setStyles({left: 0, opacity: 1});
+                       slider.setStyle('left', -bodysize.x).tween('left', -bodysize.x, 0);
+               } else if (fx == 'fade'){
+                       slider.setStyle('left', 0);
+                       oldContents.setStyle('left', 0).set('tween', {
+                               duration: this.options.animationDuration / 2
+                       }).tween('opacity', 1, 0).get('tween').chain(function(){
+                               oldContents.setStyle('left', bodysize.x);
+                       });
+                       newContents.setStyles({opacity: 0, left: 0}).set('tween', {
+                               duration: this.options.animationDuration
+                       }).tween('opacity', 0, 1);
+               }
+       },
+
+       toElement: function(){
+               return this.picker;
+       },
+
+       setTitle: function(text){
+               this.titleText.set('text', text);
+               return this;
+       },
+
+       setTitleEvent: function(fn){
+               this.titleText.removeEvents('click');
+               if (fn) this.titleText.addEvent('click', fn);
+               this.titleText.setStyle('cursor', fn ? 'pointer' : '');
+               return this;
+       }
+
+});
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_dashboard/buttons.png b/public_html/includes/libs/arian-mootools-datepicker/datepicker_dashboard/buttons.png
new file mode 100644 (file)
index 0000000..66e24e3
Binary files /dev/null and b/public_html/includes/libs/arian-mootools-datepicker/datepicker_dashboard/buttons.png differ
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_dashboard/datepicker_dashboard.css b/public_html/includes/libs/arian-mootools-datepicker/datepicker_dashboard/datepicker_dashboard.css
new file mode 100644 (file)
index 0000000..3b8f06f
--- /dev/null
@@ -0,0 +1,245 @@
+.datepicker_dashboard {
+       position: absolute;
+       font-size: 10px;
+       font-family: "Lucida Grande", LucidaGrande, "Lucida Sans", Geneva, Verdana, sans-serif;
+       color: #fff;
+       line-height: normal;
+       width: 172px;
+       height: 135px;
+       padding: 14px;
+       background: url(frame.png) no-repeat;
+}
+
+/* header
+********************************************************/
+.datepicker_dashboard .header {
+       position: relative;
+       height: 15px;
+       margin-bottom: 5px;
+       padding-top: 1px;
+}
+
+.datepicker_dashboard .header .title {
+       text-align: center;
+       margin: 2px 18px 0 18px;
+}
+
+.datepicker_dashboard .header .titleText {
+       color: #ccff00;
+}
+
+.datepicker_dashboard .header .previous,
+.datepicker_dashboard .header .next,
+.datepicker_dashboard .header .closeButton {
+       position: absolute;
+       cursor: pointer;
+       text-indent: -40px;
+       overflow: hidden;
+       width: 12px;
+       height: 12px;
+       top: 2px;
+       background-image: url(buttons.png);
+       background-position: left top;
+       background-repeat: no-repeat;
+}
+
+.datepicker_dashboard .header .previous {
+       left: 4px;
+}
+.datepicker_dashboard .header .previous:hover {
+       background-position: left bottom;
+}
+.datepicker_dashboard .header .next {
+       right: 4px;
+       background-position: -13px top;
+}
+.datepicker_dashboard .header .next:hover {
+       background-position: -13px bottom;
+}
+.datepicker_dashboard .header .closeButton {
+       display: none;
+       right: 0px;
+       top: 0px;
+       background-position: right top;
+}
+.datepicker_dashboard .header .closeButton:hover {
+       background-position: right bottom;
+}
+
+/* body
+********************************************************/
+.datepicker_dashboard .body {
+       position: relative;
+       top: 0px;
+       left: 2px;
+       width: 168px;
+       height: 112px;
+       overflow: hidden;
+}
+
+/* time
+********************************************************/
+.datepicker_dashboard .time {
+       position: relative;
+       width: 100%;
+       height: 100%;
+}
+
+.datepicker_dashboard .time .hour,
+.datepicker_dashboard .time .separator,
+.datepicker_dashboard .time .minutes {
+       background: #333;
+       border: 0px;
+       width: 50px;
+       font-size: 32px;
+       color: #fff;
+       position: absolute;
+       top: 10px;
+       text-align: center;
+       padding: 2px;
+}
+
+.datepicker_dashboard .time .hour {
+       left: 15px;
+}
+.datepicker_dashboard .time .separator {
+       background: transparent;
+       width: 10px;
+       left: 76px;
+}
+
+.datepicker_dashboard .time .minutes {
+       left: 95px;
+}
+.datepicker_dashboard .time .ok {
+       position: absolute;
+       top: 65px;
+       height: 32px;
+       width: 136px;
+       left: 15px;
+       font-size: 20px;
+}
+
+/* days-grid
+********************************************************/
+.datepicker_dashboard .days .day {
+       float: left;
+       text-align: center;
+       overflow: hidden;
+       width: 23px;
+       padding-top: 1px;
+       height: 14px;
+       margin: 0 1px 1px 0;
+}
+.datepicker_dashboard .days .titles {
+       height: 15px;
+       margin-bottom: 2px;
+       text-transform: uppercase;
+       color: #aaa;
+}
+.datepicker_dashboard .days .day0 {
+       margin-right: 0;
+}
+
+.datepicker_dashboard .days .week5 .day {
+       margin-bottom: 0;
+}
+
+/* days-colors
+********************************************************/
+.datepicker_dashboard .days .week .day {
+       cursor: pointer;
+}
+.datepicker_dashboard .days .week .day:hover {
+       color: #ccff00;
+}
+
+.datepicker_dashboard .days .otherMonth {
+       color: #444444;
+}
+
+.datepicker_dashboard .days .selected {
+       color: #ccff00;
+}
+
+/* months-grid
+********************************************************/
+.datepicker_dashboard .months .month {
+       float: left;
+       cursor: pointer;
+       text-align: center;
+       padding-top: 6px;
+       width: 55px;
+       overflow: hidden;
+       height: 21px;
+       margin: 0 1px 1px 0;
+}
+
+.datepicker_dashboard .months .month3,
+.datepicker_dashboard .months .month6,
+.datepicker_dashboard .months .month9,
+.datepicker_dashboard .months .month12 {
+       margin-right: 0;
+}
+
+.datepicker_dashboard .months .month10,
+.datepicker_dashboard .months .month11,
+.datepicker_dashboard .months .month12 {
+       margin-bottom: 0;
+}
+
+/* months-colors
+********************************************************/
+.datepicker_dashboard .months .month:hover {
+       color: #ccff00;
+}
+
+.datepicker_dashboard .months .selected {
+       color: #ccff00;
+}
+
+/* years-grid
+********************************************************/
+.datepicker_dashboard .years .year {
+       float: left;
+       cursor: pointer;
+       text-align: center;
+       padding-top: 6px;
+       width: 32px;
+       overflow: hidden;
+       height: 21px;
+       margin: 0 1px 1px 0;
+}
+
+.datepicker_dashboard .years .year4,
+.datepicker_dashboard .years .year9,
+.datepicker_dashboard .years .year14,
+.datepicker_dashboard .years .year19 {
+       margin-right: 0;
+}
+
+.datepicker_dashboard .years .year15,
+.datepicker_dashboard .years .year16,
+.datepicker_dashboard .years .year17,
+.datepicker_dashboard .years .year18,
+.datepicker_dashboard .years .year19 {
+       margin-bottom: 0;
+}
+
+/* years-colors
+********************************************************/
+.datepicker_dashboard .years .year:hover {
+       color: #ccff00;
+}
+
+.datepicker_dashboard .years .selected {
+       color: #ccff00
+}
+
+/* global
+********************************************************/
+.datepicker_dashboard .unavailable {
+       color: #533 !important;
+       cursor: default !important;
+       text-decoration: line-through;
+}
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_dashboard/frame.png b/public_html/includes/libs/arian-mootools-datepicker/datepicker_dashboard/frame.png
new file mode 100644 (file)
index 0000000..04244e5
Binary files /dev/null and b/public_html/includes/libs/arian-mootools-datepicker/datepicker_dashboard/frame.png differ
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_default/datepicker_default.css b/public_html/includes/libs/arian-mootools-datepicker/datepicker_default/datepicker_default.css
new file mode 100644 (file)
index 0000000..72f4d18
--- /dev/null
@@ -0,0 +1,223 @@
+.datepicker_default {
+       position: absolute;
+       border: 2px solid #1C3262;
+       font-size: 11px;
+       width: 194px;
+       padding: 3px;
+       height: 221px;
+       background: #fff;
+       line-height: normal;
+       z-index: 3003;
+}
+
+/* header
+********************************************************/
+.datepicker_default .header {
+       position: relative;
+       background: #1C3262;
+       height: 21px;
+       padding-top: 4px;
+       margin-bottom: 3px;
+}
+
+.datepicker_default .header .title {
+       text-align: center;
+       padding-top: 1px;
+       margin: 0px 42px 0 20px;
+}
+
+.datepicker_default .header .titleText {
+       color: #fff;
+       font-weight: bold;
+}
+.datepicker_default .header .next,
+.datepicker_default .header .previous,
+.datepicker_default .header .closeButton {
+       position: absolute;
+       width: 15px;
+       height: 15px;
+       background: #fff;
+       text-align: center;
+       color: #666;
+       top: 5px;
+       cursor: pointer;
+}
+.datepicker_default .header .previous {
+       left: 5px;
+}
+.datepicker_default .header .next {
+       right: 28px;
+}
+.datepicker_default .header .closeButton {
+       right: 5px;
+}
+
+/* body
+********************************************************/
+.datepicker_default .body {
+       position: relative;
+       top: 0px;
+       left: 0px;
+       width: 194px;
+       border-right: 2px solid #fff;
+       height: 193px;
+       overflow: hidden;
+}
+
+/* time
+********************************************************/
+.datepicker_default .time {
+       width: 100%;
+       height: 100%;
+       background: #eee;
+}
+
+.datepicker_default .time .hour,
+.datepicker_default .time .separator,
+.datepicker_default .time .minutes {
+       border: 1px solid #ccc;
+       background: #fff;
+       width: 50px;
+       font-size: 32px;
+       position: absolute;
+       top: 50px;
+       text-align: center;
+       padding: 2px;
+}
+
+.datepicker_default .time .hour {
+       left: 30px;
+}
+.datepicker_default .time .separator {
+       background: transparent;
+       border: 0px;
+       width: 10px;
+       left: 91px;
+}
+
+.datepicker_default .time .minutes {
+       left: 110px;
+}
+.datepicker_default .time .ok {
+       position: absolute;
+       top: 105px;
+       width: 136px;
+       left: 30px;
+       font-size: 20px;
+}
+
+/* days-grid
+********************************************************/
+.datepicker_default .days .day {
+       float: left;
+       background: #ccc;
+       cursor: pointer;
+       text-align: center;
+       padding-top: 4px;
+       width: 25px;
+       overflow: hidden;
+       height: 21px;
+       margin: 0 3px 3px 0;
+}
+
+.datepicker_default .days .day0 {
+       margin-right: 0;
+}
+
+.datepicker_default .days .week5 .day {
+       margin-bottom: 0;
+}
+
+/* days-colors
+********************************************************/
+.datepicker_default .days .title {
+       background: #5D6E95;
+       font-weight: bold;
+       color: #fff;
+       cursor: default;
+}
+
+.datepicker_default .days .otherMonth {
+       background: #eee;
+       color: #aaa;
+}
+
+/* months
+********************************************************/
+.datepicker_default .months .month {
+       float: left;
+       background: #eee;
+       cursor: pointer;
+       text-align: center;
+       overflow: hidden;
+       width: 62px;
+       height: 31px;
+       padding-top: 15px;
+       margin: 0 3px 3px 0;
+}
+
+.datepicker_default .months .month3,
+.datepicker_default .months .month6,
+.datepicker_default .months .month9,
+.datepicker_default .months .month12 {
+       margin-right: 0;
+       width: 64px;
+}
+
+.datepicker_default .months .month10,
+.datepicker_default .months .month11,
+.datepicker_default .months .month12 {
+       margin-bottom: 0;
+}
+
+/* years
+********************************************************/
+.datepicker_default .years .year {
+       float: left;
+       background: #eee;
+       cursor: pointer;
+       text-align: center;
+       padding-top: 11px;
+       width: 46px;
+       overflow: hidden;
+       height: 25px;
+       margin: 0 3px 3px 0;
+}
+
+.datepicker_default .years .year3,
+.datepicker_default .years .year7,
+.datepicker_default .years .year11,
+.datepicker_default .years .year15,
+.datepicker_default .years .year19 {
+       margin-right: 0;
+       width: 47px;
+}
+
+.datepicker_default .years .year16,
+.datepicker_default .years .year17,
+.datepicker_default .years .year18,
+.datepicker_default .years .year19 {
+       margin-bottom: 0;
+       height: 26px;
+}
+
+/* global
+********************************************************/
+.datepicker_default .selected {
+       background: #8C929F !important;
+       color: #fff !important;
+}
+
+.datepicker_default .unavailable,
+.datepicker_default .body .days .week .day.unavailable:hover {
+       background: #edd !important;
+       color: #b88 !important;
+       cursor: default !important;
+}
+
+.datepicker_default .days .week .day:hover,
+.datepicker_default .months .month:hover,
+.datepicker_default .years .year:hover {
+       background: #5D6E95 !important;
+       color: #fff !important;
+}
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_jqui/arrows.png b/public_html/includes/libs/arian-mootools-datepicker/datepicker_jqui/arrows.png
new file mode 100644 (file)
index 0000000..88a3576
Binary files /dev/null and b/public_html/includes/libs/arian-mootools-datepicker/datepicker_jqui/arrows.png differ
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_jqui/datepicker_jqui.css b/public_html/includes/libs/arian-mootools-datepicker/datepicker_jqui/datepicker_jqui.css
new file mode 100644 (file)
index 0000000..2d12d5b
--- /dev/null
@@ -0,0 +1,280 @@
+.datepicker_jqui {
+       position: absolute;
+       font-size: 10px;
+       font-family: "Trebuchet MS", Tahoma, Verdana, Arial, sans-serif;
+       color: #333;
+       line-height: normal;
+       width: 185px;
+       height: 158px;
+       padding: 4px;
+       background: url(frame.png) no-repeat;
+}
+
+/* header
+********************************************************/
+.datepicker_jqui .header {
+       position: relative;
+       height: 15px;
+       margin-bottom: 5px;
+       padding-top: 1px;
+}
+
+.datepicker_jqui .header .title {
+       text-align: center;
+       margin: 3px 18px 0 18px;
+}
+
+.datepicker_jqui .header .titleText {
+       font-size: 11px;
+       color: #fff;
+}
+
+.datepicker_jqui .header .previous,
+.datepicker_jqui .header .next,
+.datepicker_jqui .header .closeButton {
+       position: absolute;
+       cursor: pointer;
+       text-indent: -40px;
+       overflow: hidden;
+       width: 16px;
+       height: 16px;
+       top: 4px;
+       background-image: url(arrows.png);
+       background-position: left top;
+       background-repeat: no-repeat;
+}
+
+.datepicker_jqui .header .previous {
+       left: 4px;
+}
+.datepicker_jqui .header .previous:hover {
+       background-position: left bottom;
+}
+.datepicker_jqui .header .next {
+       right: 4px;
+       background-position: -17px top;
+}
+.datepicker_jqui .header .next:hover {
+       background-position: -17px bottom;
+}
+.datepicker_jqui .header .closeButton {
+       display: none;
+       right: 0px;
+       top: 0px;
+       background-position: right top;
+}
+.datepicker_jqui .header .closeButton:hover {
+       background-position: right bottom;
+}
+
+/* body
+********************************************************/
+.datepicker_jqui .body {
+       position: relative;
+       top: 6px;
+       left: 2px;
+       width: 185px;
+       height: 131px;
+       overflow: hidden;
+}
+
+/* time
+********************************************************/
+.datepicker_jqui .time {
+       position: relative;
+       width: 100%;
+       height: 100%;
+}
+
+.datepicker_jqui .time .hour,
+.datepicker_jqui .time .separator,
+.datepicker_jqui .time .minutes {
+       background: #fff;
+       border: 0px;
+       width: 50px;
+       font-size: 32px;
+       color: #333;
+       border: 1px solid #aaa;
+       position: absolute;
+       top: 18px;
+       text-align: center;
+       padding: 2px;
+}
+
+.datepicker_jqui .time .hour {
+       left: 23px;
+}
+.datepicker_jqui .time .separator {
+       background: transparent;
+       border: 0px;
+       width: 10px;
+       left: 84px;
+}
+
+.datepicker_jqui .time .minutes {
+       left: 103px;
+}
+.datepicker_jqui .time .ok {
+       position: absolute;
+       top: 80px;
+       height: 32px;
+       width: 136px;
+       left: 23px;
+       font-size: 20px;
+}
+
+/* days-grid
+********************************************************/
+.datepicker_jqui .days .day {
+       float: left;
+       overflow: hidden;
+       width: 19px;
+       padding-top: 1px;
+       padding-right: 3px;
+       height: 13px;
+       border: 1px solid #aaa;
+       text-align: right;
+       margin: 0 2px 2px 0;
+}
+
+.datepicker_jqui .days .titles {
+       margin-bottom: 1px;
+}
+
+.datepicker_jqui .days .titles .title {
+       border: 1px solid transparent;
+       text-align: center;
+       height: 16px;
+       padding-right: 0px;
+       width: 22px;
+       padding-top: 2px;
+}
+
+.datepicker_jqui .days .day0 {
+       margin-right: 0;
+}
+
+.datepicker_jqui .days .week5 .day {
+       margin-bottom: 0;
+}
+
+/* days-colors
+********************************************************/
+.datepicker_jqui .days .week .day {
+       background: #fcfcfc;
+       cursor: pointer;
+       color: #1C94C4;
+}
+.datepicker_jqui .days .week .day:hover {
+       background: #fdf5ce;
+       color: #c77405;
+       border: 1px solid #fbcb09;
+}
+
+.datepicker_jqui .days .week .otherMonth {
+       background: #f2f2f2;
+       color: #94B2BE;
+       border: 1px solid #aaa;
+}
+
+.datepicker_jqui .days .week .selected {
+       background: #fff;
+       color: #c77405;
+       border: 1px solid #fbcb09;
+}
+
+/* months-grid
+********************************************************/
+.datepicker_jqui .months .month {
+       float: left;
+       text-align: center;
+       overflow: hidden;
+       width: 57px;
+       cursor: pointer;
+       background: #fcfcfc;
+       padding-top: 7px;
+       height: 22px;
+       border: 1px solid #aaa;
+       margin: 0 2px 2px 0;
+}
+
+.datepicker_jqui .months .month3,
+.datepicker_jqui .months .month6,
+.datepicker_jqui .months .month9,
+.datepicker_jqui .months .month12 {
+       margin-right: 0;
+}
+
+.datepicker_jqui .months .month10,
+.datepicker_jqui .months .month11,
+.datepicker_jqui .months .month12 {
+       margin-bottom: 0;
+}
+
+/* months-colors
+********************************************************/
+.datepicker_jqui .months .month:hover {
+       background: #fdf5ce;
+       color: #c77405;
+       border: 1px solid #fbcb09;
+}
+
+.datepicker_jqui .months .selected {
+       background: #fff;
+       color: #c77405;
+       border: 1px solid #fbcb09;
+}
+
+/* years-grid
+********************************************************/
+.datepicker_jqui .years .year {
+       float: left;
+       text-align: center;
+       overflow: hidden;
+       background: #fcfcfc;
+       width: 32px;
+       cursor: pointer;
+       padding-top: 7px;
+       height: 22px;
+       border: 1px solid #aaa;
+       margin: 0 2px 2px 0;
+}
+
+.datepicker_jqui .years .year4,
+.datepicker_jqui .years .year9,
+.datepicker_jqui .years .year14,
+.datepicker_jqui .years .year19 {
+       margin-right: 0;
+       width: 34px;
+}
+
+.datepicker_jqui .years .year15,
+.datepicker_jqui .years .year16,
+.datepicker_jqui .years .year17,
+.datepicker_jqui .years .year18,
+.datepicker_jqui .years .year19 {
+       margin-bottom: 0;
+}
+
+/* years-colors
+********************************************************/
+.datepicker_jqui .years .year:hover {
+       background: #fdf5ce;
+       color: #c77405;
+       border: 1px solid #fbcb09;
+}
+
+.datepicker_jqui .years .selected {
+       background: #fff;
+       color: #c77405;
+       border: 1px solid #fbcb09;
+}
+
+/* global
+********************************************************/
+.datepicker_jqui .unavailable {
+       cursor: default !important;
+       background: #f0f0f0 !important;
+       color: #ccc !important;
+       border: 1px solid #ccc !important;
+}
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_jqui/frame.png b/public_html/includes/libs/arian-mootools-datepicker/datepicker_jqui/frame.png
new file mode 100644 (file)
index 0000000..7e72778
Binary files /dev/null and b/public_html/includes/libs/arian-mootools-datepicker/datepicker_jqui/frame.png differ
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/buttons.png b/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/buttons.png
new file mode 100644 (file)
index 0000000..3b392cb
Binary files /dev/null and b/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/buttons.png differ
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/datepicker_vista.css b/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/datepicker_vista.css
new file mode 100644 (file)
index 0000000..ae02e6f
--- /dev/null
@@ -0,0 +1,247 @@
+.datepicker_vista {
+       position: absolute;
+       font-size: 10px;
+       font-family: Tahoma, sans-serif;
+       color: #000;
+       line-height: normal;
+       width: 172px;
+       height: 135px;
+       padding: 14px;
+       background: url(frame.png) no-repeat;
+}
+
+/* header
+********************************************************/
+.datepicker_vista .header {
+       position: relative;
+       height: 15px;
+       margin-bottom: 5px;
+       padding-top: 1px;
+}
+
+.datepicker_vista .header .title {
+       text-align: center;
+       margin: 0 18px 0 18px;
+}
+
+.datepicker_vista .header .titleText {
+}
+
+.datepicker_vista .header .previous,
+.datepicker_vista .header .next,
+.datepicker_vista .header .closeButton {
+       position: absolute;
+       cursor: pointer;
+       text-indent: -40px;
+       overflow: hidden;
+       width: 12px;
+       height: 12px;
+       top: 2px;
+       background-image: url(buttons.png);
+       background-position: left top;
+       background-repeat: no-repeat;
+}
+
+.datepicker_vista .header .previous {
+       left: 4px;
+}
+.datepicker_vista .header .previous:hover {
+       background-position: left bottom;
+}
+.datepicker_vista .header .next {
+       right: 4px;
+       background-position: -13px top;
+}
+.datepicker_vista .header .next:hover {
+       background-position: -13px bottom;
+}
+.datepicker_vista .header .closeButton {
+       display: none;
+       right: 0px;
+       top: 0px;
+       background-position: right top;
+}
+.datepicker_vista .header .closeButton:hover {
+       background-position: right bottom;
+}
+
+/* body
+********************************************************/
+.datepicker_vista .body {
+       position: relative;
+       top: 0px;
+       left: 2px;
+       width: 168px;
+       height: 112px;
+       overflow: hidden;
+}
+
+/* time
+********************************************************/
+.datepicker_vista .time {
+       position: relative;
+       width: 100%;
+       height: 100%;
+}
+
+.datepicker_vista .time .hour,
+.datepicker_vista .time .separator,
+.datepicker_vista .time .minutes {
+       border: 1px solid #ccc;
+       background: #fff;
+       width: 50px;
+       font-size: 32px;
+       position: absolute;
+       top: 10px;
+       text-align: center;
+       padding: 2px;
+}
+
+.datepicker_vista .time .hour {
+       left: 15px;
+}
+.datepicker_vista .time .separator {
+       background: transparent;
+       border: 0px;
+       width: 10px;
+       left: 76px;
+}
+
+.datepicker_vista .time .minutes {
+       left: 95px;
+}
+.datepicker_vista .time .ok {
+       position: absolute;
+       top: 65px;
+       width: 136px;
+       left: 15px;
+       font-size: 20px;
+}
+
+/* days-grid
+********************************************************/
+.datepicker_vista .days .day {
+       float: left;
+       text-align: center;
+       overflow: hidden;
+       width: 23px;
+       height: 15px;
+       margin: 0 1px 1px 0;
+}
+.datepicker_vista .days .titles {
+       height: 15px;
+       border-bottom: 1px solid #e0e0e0;
+       margin-bottom: 1px;
+}
+.datepicker_vista .days .day0 {
+       margin-right: 0;
+}
+
+.datepicker_vista .days .week5 .day {
+       margin-bottom: 0;
+}
+
+/* days-colors
+********************************************************/
+.datepicker_vista .days .week .day {
+       cursor: pointer;
+}
+.datepicker_vista .days .week .day:hover {
+       background: url(days.png) left top no-repeat;
+       color: #0084AA;
+}
+
+.datepicker_vista .days .otherMonth {
+       color: #aaa;
+}
+
+.datepicker_vista .days .selected {
+       background: url(days.png) left bottom no-repeat;
+       color: #316879;
+}
+
+/* months-grid
+********************************************************/
+.datepicker_vista .months .month {
+       float: left;
+       cursor: pointer;
+       text-align: center;
+       padding-top: 6px;
+       width: 55px;
+       overflow: hidden;
+       height: 21px;
+       margin: 0 1px 1px 0;
+}
+
+.datepicker_vista .months .month3,
+.datepicker_vista .months .month6,
+.datepicker_vista .months .month9,
+.datepicker_vista .months .month12 {
+       margin-right: 0;
+}
+
+.datepicker_vista .months .month10,
+.datepicker_vista .months .month11,
+.datepicker_vista .months .month12 {
+       margin-bottom: 0;
+}
+
+/* months-colors
+********************************************************/
+.datepicker_vista .months .month:hover {
+       background: url(months.png) left top no-repeat;
+       color: #0084AA;
+}
+
+.datepicker_vista .months .selected {
+       background: url(months.png) left bottom no-repeat;
+       color: #316879;
+}
+
+/* years-grid
+********************************************************/
+.datepicker_vista .years .year {
+       float: left;
+       cursor: pointer;
+       text-align: center;
+       padding-top: 6px;
+       width: 32px;
+       overflow: hidden;
+       height: 21px;
+       margin: 0 1px 1px 0;
+}
+
+.datepicker_vista .years .year4,
+.datepicker_vista .years .year9,
+.datepicker_vista .years .year14,
+.datepicker_vista .years .year19 {
+       margin-right: 0;
+}
+
+.datepicker_vista .years .year15,
+.datepicker_vista .years .year16,
+.datepicker_vista .years .year17,
+.datepicker_vista .years .year18,
+.datepicker_vista .years .year19 {
+       margin-bottom: 0;
+}
+
+/* years-colors
+********************************************************/
+.datepicker_vista .years .year:hover {
+       background: url(years.png) left top no-repeat;
+       color: #0084AA;
+}
+
+.datepicker_vista .years .selected {
+       background: url(years.png) left bottom no-repeat;
+       color: #316879;
+}
+
+/* global
+********************************************************/
+.datepicker_vista .unavailable {
+       background: none !important;
+       color: #fbb !important;
+       cursor: default !important;
+}
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/days.png b/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/days.png
new file mode 100644 (file)
index 0000000..3af8f1e
Binary files /dev/null and b/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/days.png differ
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/frame.png b/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/frame.png
new file mode 100644 (file)
index 0000000..9871af2
Binary files /dev/null and b/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/frame.png differ
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/months.png b/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/months.png
new file mode 100644 (file)
index 0000000..c125b82
Binary files /dev/null and b/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/months.png differ
diff --git a/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/years.png b/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/years.png
new file mode 100644 (file)
index 0000000..6b5e355
Binary files /dev/null and b/public_html/includes/libs/arian-mootools-datepicker/datepicker_vista/years.png differ
diff --git a/public_html/includes/libs/jscalendar/calendar-blue.css b/public_html/includes/libs/jscalendar/calendar-blue.css
deleted file mode 100644 (file)
index ca33cde..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-/* The main calendar widget.  DIV containing a table. */
-
-div.calendar { position: relative; }
-
-.calendar, .calendar table {
-  border: 1px solid #556;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #eef;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
-  text-align: center;    /* They are the navigation buttons */
-  padding: 2px;          /* Make the buttons seem like they're pressing */
-}
-
-.calendar .nav {
-  background: #778 url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
-  font-weight: bold;      /* Pressing it will take you to the current date */
-  text-align: center;
-  background: #fff;
-  color: #000;
-  padding: 2px;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-  background: #778;
-  color: #fff;
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-  background: #bdf;
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
-  border-bottom: 1px solid #556;
-  padding: 2px;
-  text-align: center;
-  color: #000;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
-  color: #a66;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
-  background-color: #aaf;
-  color: #000;
-  border: 1px solid #04f;
-  padding: 1px;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
-  background-color: #77c;
-  padding: 2px 0px 0px 2px;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
-  width: 2em;
-  color: #456;
-  text-align: right;
-  padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
-  font-size: 80%;
-  color: #bbb;
-}
-.calendar tbody .day.othermonth.oweekend {
-  color: #fbb;
-}
-
-.calendar table .wn {
-  padding: 2px 3px 2px 2px;
-  border-right: 1px solid #000;
-  background: #bdf;
-}
-
-.calendar tbody .rowhilite td {
-  background: #def;
-}
-
-.calendar tbody .rowhilite td.wn {
-  background: #eef;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
-  background: #def;
-  padding: 1px 3px 1px 1px;
-  border: 1px solid #bbb;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
-  background: #cde;
-  padding: 2px 2px 0px 2px;
-}
-
-.calendar tbody td.selected { /* Cell showing today date */
-  font-weight: bold;
-  border: 1px solid #000;
-  padding: 1px 3px 1px 1px;
-  background: #fff;
-  color: #000;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
-  color: #a66;
-}
-
-.calendar tbody td.today { /* Cell showing selected date */
-  font-weight: bold;
-  color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
-  visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
-  display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-  text-align: center;
-  background: #556;
-  color: #fff;
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
-  background: #fff;
-  color: #445;
-  border-top: 1px solid #556;
-  padding: 1px;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
-  background: #aaf;
-  border: 1px solid #04f;
-  color: #000;
-  padding: 1px;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
-  background: #77c;
-  padding: 2px 0px 0px 2px;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
-  position: absolute;
-  display: none;
-  top: 0px;
-  left: 0px;
-  width: 4em;
-  cursor: default;
-  border: 1px solid #655;
-  background: #def;
-  color: #000;
-  font-size: 90%;
-  z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
-  text-align: center;
-  padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
-  width: 4em;
-}
-
-.calendar .combo .hilite {
-  background: #acf;
-}
-
-.calendar .combo .active {
-  border-top: 1px solid #46a;
-  border-bottom: 1px solid #46a;
-  background: #eef;
-  font-weight: bold;
-}
-
-.calendar td.time {
-  border-top: 1px solid #000;
-  padding: 1px 0px;
-  text-align: center;
-  background-color: #f4f0e8;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
-  padding: 0px 3px 0px 4px;
-  border: 1px solid #889;
-  font-weight: bold;
-  background-color: #fff;
-}
-
-.calendar td.time .ampm {
-  text-align: center;
-}
-
-.calendar td.time .colon {
-  padding: 0px 2px 0px 3px;
-  font-weight: bold;
-}
-
-.calendar td.time span.hilite {
-  border-color: #000;
-  background-color: #667;
-  color: #fff;
-}
-
-.calendar td.time span.active {
-  border-color: #f00;
-  background-color: #000;
-  color: #0f0;
-}
diff --git a/public_html/includes/libs/jscalendar/calendar-blue2.css b/public_html/includes/libs/jscalendar/calendar-blue2.css
deleted file mode 100644 (file)
index 47128ec..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-/* The main calendar widget.  DIV containing a table. */
-
-div.calendar { position: relative; }
-
-.calendar, .calendar table {
-  border: 1px solid #206A9B;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #F1F8FC;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
-  text-align: center;    /* They are the navigation buttons */
-  padding: 2px;          /* Make the buttons seem like they're pressing */
-}
-
-.calendar .nav {
-  background: #007ED1 url(menuarrow2.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
-  font-weight: bold;      /* Pressing it will take you to the current date */
-  text-align: center;
-  background: #000;
-  color: #fff;
-  padding: 2px;
-}
-
-.calendar thead tr { /* Row <TR> containing navigation buttons */
-  background: #007ED1;
-  color: #fff;
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-  background: #C7E1F3;
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
-  border-bottom: 1px solid #206A9B;
-  padding: 2px;
-  text-align: center;
-  color: #000;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
-  color: #a66;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
-  background-color: #34ABFA;
-  color: #000;
-  border: 1px solid #016DC5;
-  padding: 1px;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
-  background-color: #006AA9;
-  border: 1px solid #008AFF;
-  padding: 2px 0px 0px 2px;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
-  width: 2em;
-  color: #456;
-  text-align: right;
-  padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
-  font-size: 80%;
-  color: #bbb;
-}
-.calendar tbody .day.othermonth.oweekend {
-  color: #fbb;
-}
-
-.calendar table .wn {
-  padding: 2px 3px 2px 2px;
-  border-right: 1px solid #000;
-  background: #C7E1F3;
-}
-
-.calendar tbody .rowhilite td {
-  background: #def;
-}
-
-.calendar tbody .rowhilite td.wn {
-  background: #F1F8FC;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
-  background: #def;
-  padding: 1px 3px 1px 1px;
-  border: 1px solid #8FC4E8;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
-  background: #cde;
-  padding: 2px 2px 0px 2px;
-}
-
-.calendar tbody td.selected { /* Cell showing today date */
-  font-weight: bold;
-  border: 1px solid #000;
-  padding: 1px 3px 1px 1px;
-  background: #fff;
-  color: #000;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
-  color: #a66;
-}
-
-.calendar tbody td.today { /* Cell showing selected date */
-  font-weight: bold;
-  color: #D50000;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
-  visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
-  display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-  text-align: center;
-  background: #206A9B;
-  color: #fff;
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
-  background: #000;
-  color: #fff;
-  border-top: 1px solid #206A9B;
-  padding: 1px;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
-  background: #B8DAF0;
-  border: 1px solid #178AEB;
-  color: #000;
-  padding: 1px;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
-  background: #006AA9;
-  padding: 2px 0px 0px 2px;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
-  position: absolute;
-  display: none;
-  top: 0px;
-  left: 0px;
-  width: 4em;
-  cursor: default;
-  border: 1px solid #655;
-  background: #def;
-  color: #000;
-  font-size: 90%;
-  z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
-  text-align: center;
-  padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
-  width: 4em;
-}
-
-.calendar .combo .hilite {
-  background: #34ABFA;
-  border-top: 1px solid #46a;
-  border-bottom: 1px solid #46a;
-  font-weight: bold;
-}
-
-.calendar .combo .active {
-  border-top: 1px solid #46a;
-  border-bottom: 1px solid #46a;
-  background: #F1F8FC;
-  font-weight: bold;
-}
-
-.calendar td.time {
-  border-top: 1px solid #000;
-  padding: 1px 0px;
-  text-align: center;
-  background-color: #E3F0F9;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
-  padding: 0px 3px 0px 4px;
-  border: 1px solid #889;
-  font-weight: bold;
-  background-color: #F1F8FC;
-}
-
-.calendar td.time .ampm {
-  text-align: center;
-}
-
-.calendar td.time .colon {
-  padding: 0px 2px 0px 3px;
-  font-weight: bold;
-}
-
-.calendar td.time span.hilite {
-  border-color: #000;
-  background-color: #267DB7;
-  color: #fff;
-}
-
-.calendar td.time span.active {
-  border-color: red;
-  background-color: #000;
-  color: #A5FF00;
-}
diff --git a/public_html/includes/libs/jscalendar/calendar-brown.css b/public_html/includes/libs/jscalendar/calendar-brown.css
deleted file mode 100644 (file)
index c42da5e..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-/* The main calendar widget.  DIV containing a table. */
-
-div.calendar { position: relative; }
-
-.calendar, .calendar table {
-  border: 1px solid #655;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #ffd;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
-  text-align: center;    /* They are the navigation buttons */
-  padding: 2px;          /* Make the buttons seem like they're pressing */
-}
-
-.calendar .nav {
-  background: #edc url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
-  font-weight: bold;      /* Pressing it will take you to the current date */
-  text-align: center;
-  background: #654;
-  color: #fed;
-  padding: 2px;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-  background: #edc;
-  color: #000;
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
-  border-bottom: 1px solid #655;
-  padding: 2px;
-  text-align: center;
-  color: #000;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
-  color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
-  background-color: #faa;
-  color: #000;
-  border: 1px solid #f40;
-  padding: 1px;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
-  background-color: #c77;
-  padding: 2px 0px 0px 2px;
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-  background: #fed;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
-  width: 2em;
-  text-align: right;
-  padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
-  font-size: 80%;
-  color: #bbb;
-}
-.calendar tbody .day.othermonth.oweekend {
-  color: #fbb;
-}
-
-.calendar table .wn {
-  padding: 2px 3px 2px 2px;
-  border-right: 1px solid #000;
-  background: #fed;
-}
-
-.calendar tbody .rowhilite td {
-  background: #ddf;
-}
-
-.calendar tbody .rowhilite td.wn {
-  background: #efe;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
-  background: #ffe;
-  padding: 1px 3px 1px 1px;
-  border: 1px solid #bbb;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
-  background: #ddc;
-  padding: 2px 2px 0px 2px;
-}
-
-.calendar tbody td.selected { /* Cell showing today date */
-  font-weight: bold;
-  border: 1px solid #000;
-  padding: 1px 3px 1px 1px;
-  background: #fea;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
-  color: #f00;
-}
-
-.calendar tbody td.today { font-weight: bold; }
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
-  visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
-  display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-  text-align: center;
-  background: #988;
-  color: #000;
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
-  border-top: 1px solid #655;
-  background: #dcb;
-  color: #840;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
-  background: #faa;
-  border: 1px solid #f40;
-  padding: 1px;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
-  background: #c77;
-  padding: 2px 0px 0px 2px;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
-  position: absolute;
-  display: none;
-  top: 0px;
-  left: 0px;
-  width: 4em;
-  cursor: default;
-  border: 1px solid #655;
-  background: #ffe;
-  color: #000;
-  font-size: 90%;
-  z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
-  text-align: center;
-  padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
-  width: 4em;
-}
-
-.calendar .combo .hilite {
-  background: #fc8;
-}
-
-.calendar .combo .active {
-  border-top: 1px solid #a64;
-  border-bottom: 1px solid #a64;
-  background: #fee;
-  font-weight: bold;
-}
-
-.calendar td.time {
-  border-top: 1px solid #a88;
-  padding: 1px 0px;
-  text-align: center;
-  background-color: #fed;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
-  padding: 0px 3px 0px 4px;
-  border: 1px solid #988;
-  font-weight: bold;
-  background-color: #fff;
-}
-
-.calendar td.time .ampm {
-  text-align: center;
-}
-
-.calendar td.time .colon {
-  padding: 0px 2px 0px 3px;
-  font-weight: bold;
-}
-
-.calendar td.time span.hilite {
-  border-color: #000;
-  background-color: #866;
-  color: #fff;
-}
-
-.calendar td.time span.active {
-  border-color: #f00;
-  background-color: #000;
-  color: #0f0;
-}
diff --git a/public_html/includes/libs/jscalendar/calendar-green.css b/public_html/includes/libs/jscalendar/calendar-green.css
deleted file mode 100644 (file)
index 2e1867a..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-/* The main calendar widget.  DIV containing a table. */
-
-div.calendar { position: relative; }
-
-.calendar, .calendar table {
-  border: 1px solid #565;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #efe;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
-  text-align: center;    /* They are the navigation buttons */
-  padding: 2px;          /* Make the buttons seem like they're pressing */
-  background: #676;
-  color: #fff;
-  font-size: 90%;
-}
-
-.calendar .nav {
-  background: #676 url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
-  font-weight: bold;      /* Pressing it will take you to the current date */
-  text-align: center;
-  padding: 2px;
-  background: #250;
-  color: #efa;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
-  border-bottom: 1px solid #565;
-  padding: 2px;
-  text-align: center;
-  color: #000;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
-  color: #a66;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
-  background-color: #afa;
-  color: #000;
-  border: 1px solid #084;
-  padding: 1px;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
-  background-color: #7c7;
-  padding: 2px 0px 0px 2px;
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-  background: #dfb;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
-  width: 2em;
-  color: #564;
-  text-align: right;
-  padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
-  font-size: 80%;
-  color: #bbb;
-}
-.calendar tbody .day.othermonth.oweekend {
-  color: #fbb;
-}
-
-.calendar table .wn {
-  padding: 2px 3px 2px 2px;
-  border-right: 1px solid #8a8;
-  background: #dfb;
-}
-
-.calendar tbody .rowhilite td {
-  background: #dfd;
-}
-
-.calendar tbody .rowhilite td.wn {
-  background: #efe;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
-  background: #efd;
-  padding: 1px 3px 1px 1px;
-  border: 1px solid #bbb;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
-  background: #dec;
-  padding: 2px 2px 0px 2px;
-}
-
-.calendar tbody td.selected { /* Cell showing today date */
-  font-weight: bold;
-  border: 1px solid #000;
-  padding: 1px 3px 1px 1px;
-  background: #f8fff8;
-  color: #000;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
-  color: #a66;
-}
-
-.calendar tbody td.today { font-weight: bold; color: #0a0; }
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
-  visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
-  display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-  text-align: center;
-  background: #565;
-  color: #fff;
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
-  padding: 2px;
-  background: #250;
-  color: #efa;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
-  background: #afa;
-  border: 1px solid #084;
-  color: #000;
-  padding: 1px;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
-  background: #7c7;
-  padding: 2px 0px 0px 2px;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
-  position: absolute;
-  display: none;
-  top: 0px;
-  left: 0px;
-  width: 4em;
-  cursor: default;
-  border: 1px solid #565;
-  background: #efd;
-  color: #000;
-  font-size: 90%;
-  z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
-  text-align: center;
-  padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
-  width: 4em;
-}
-
-.calendar .combo .hilite {
-  background: #af8;
-}
-
-.calendar .combo .active {
-  border-top: 1px solid #6a4;
-  border-bottom: 1px solid #6a4;
-  background: #efe;
-  font-weight: bold;
-}
-
-.calendar td.time {
-  border-top: 1px solid #8a8;
-  padding: 1px 0px;
-  text-align: center;
-  background-color: #dfb;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
-  padding: 0px 3px 0px 4px;
-  border: 1px solid #898;
-  font-weight: bold;
-  background-color: #fff;
-}
-
-.calendar td.time .ampm {
-  text-align: center;
-}
-
-.calendar td.time .colon {
-  padding: 0px 2px 0px 3px;
-  font-weight: bold;
-}
-
-.calendar td.time span.hilite {
-  border-color: #000;
-  background-color: #686;
-  color: #fff;
-}
-
-.calendar td.time span.active {
-  border-color: #f00;
-  background-color: #000;
-  color: #0f0;
-}
diff --git a/public_html/includes/libs/jscalendar/calendar-setup.js b/public_html/includes/libs/jscalendar/calendar-setup.js
deleted file mode 100644 (file)
index f2b4854..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/*  Copyright Mihai Bazon, 2002, 2003  |  http://dynarch.com/mishoo/
- * ---------------------------------------------------------------------------
- *
- * The DHTML Calendar
- *
- * Details and latest version at:
- * http://dynarch.com/mishoo/calendar.epl
- *
- * This script is distributed under the GNU Lesser General Public License.
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
- *
- * This file defines helper functions for setting up the calendar.  They are
- * intended to help non-programmers get a working calendar on their site
- * quickly.  This script should not be seen as part of the calendar.  It just
- * shows you what one can do with the calendar, while in the same time
- * providing a quick and simple method for setting it up.  If you need
- * exhaustive customization of the calendar creation process feel free to
- * modify this code to suit your needs (this is recommended and much better
- * than modifying calendar.js itself).
- */
-
-// $Id: calendar-setup.js,v 1.25 2005/03/07 09:51:33 mishoo Exp $
-
-/**
- *  This function "patches" an input field (or other element) to use a calendar
- *  widget for date selection.
- *
- *  The "params" is a single object that can have the following properties:
- *
- *    prop. name   | description
- *  -------------------------------------------------------------------------------------------------
- *   inputField    | the ID of an input field to store the date
- *   displayArea   | the ID of a DIV or other element to show the date
- *   button        | ID of a button or other element that will trigger the calendar
- *   eventName     | event that will trigger the calendar, without the "on" prefix (default: "click")
- *   ifFormat      | date format that will be stored in the input field
- *   daFormat      | the date format that will be used to display the date in displayArea
- *   singleClick   | (true/false) wether the calendar is in single click mode or not (default: true)
- *   firstDay      | numeric: 0 to 6.  "0" means display Sunday first, "1" means display Monday first, etc.
- *   align         | alignment (default: "Br"); if you don't know what's this see the calendar documentation
- *   range         | array with 2 elements.  Default: [1900, 2999] -- the range of years available
- *   weekNumbers   | (true/false) if it's true (default) the calendar will display week numbers
- *   flat          | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
- *   flatCallback  | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
- *   disableFunc   | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
- *   onSelect      | function that gets called when a date is selected.  You don't _have_ to supply this (the default is generally okay)
- *   onClose       | function that gets called when the calendar is closed.  [default]
- *   onUpdate      | function that gets called after the date is updated in the input field.  Receives a reference to the calendar.
- *   date          | the date that the calendar will be initially displayed to
- *   showsTime     | default: false; if true the calendar will include a time selector
- *   timeFormat    | the time format; can be "12" or "24", default is "12"
- *   electric      | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close
- *   step          | configures the step of the years in drop-down boxes; default: 2
- *   position      | configures the calendar absolute position; default: null
- *   cache         | if "true" (but default: "false") it will reuse the same calendar object, where possible
- *   showOthers    | if "true" (but default: "false") it will show days from other months too
- *
- *  None of them is required, they all have default values.  However, if you
- *  pass none of "inputField", "displayArea" or "button" you'll get a warning
- *  saying "nothing to setup".
- */
-Calendar.setup = function (params) {
-       function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };
-
-       param_default("inputField",     null);
-       param_default("displayArea",    null);
-       param_default("button",         null);
-       param_default("eventName",      "click");
-       param_default("ifFormat",       "%Y/%m/%d");
-       param_default("daFormat",       "%Y/%m/%d");
-       param_default("singleClick",    true);
-       param_default("disableFunc",    null);
-       param_default("dateStatusFunc", params["disableFunc"]); // takes precedence if both are defined
-       param_default("dateText",       null);
-       param_default("firstDay",       null);
-       param_default("align",          "Br");
-       param_default("range",          [1900, 2999]);
-       param_default("weekNumbers",    true);
-       param_default("flat",           null);
-       param_default("flatCallback",   null);
-       param_default("onSelect",       null);
-       param_default("onClose",        null);
-       param_default("onUpdate",       null);
-       param_default("date",           null);
-       param_default("showsTime",      false);
-       param_default("timeFormat",     "24");
-       param_default("electric",       true);
-       param_default("step",           2);
-       param_default("position",       null);
-       param_default("cache",          false);
-       param_default("showOthers",     false);
-       param_default("multiple",       null);
-
-       var tmp = ["inputField", "displayArea", "button"];
-       for (var i in tmp) {
-               if (typeof params[tmp[i]] == "string") {
-                       params[tmp[i]] = document.getElementById(params[tmp[i]]);
-               }
-       }
-       if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) {
-               alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");
-               return false;
-       }
-
-       function onSelect(cal) {
-               var p = cal.params;
-               var update = (cal.dateClicked || p.electric);
-               if (update && p.inputField) {
-                       p.inputField.value = cal.date.print(p.ifFormat);
-                       if (typeof p.inputField.onchange == "function")
-                               p.inputField.onchange();
-               }
-               if (update && p.displayArea)
-                       p.displayArea.innerHTML = cal.date.print(p.daFormat);
-               if (update && typeof p.onUpdate == "function")
-                       p.onUpdate(cal);
-               if (update && p.flat) {
-                       if (typeof p.flatCallback == "function")
-                               p.flatCallback(cal);
-               }
-               if (update && p.singleClick && cal.dateClicked)
-                       cal.callCloseHandler();
-       };
-
-       if (params.flat != null) {
-               if (typeof params.flat == "string")
-                       params.flat = document.getElementById(params.flat);
-               if (!params.flat) {
-                       alert("Calendar.setup:\n  Flat specified but can't find parent.");
-                       return false;
-               }
-               var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
-               cal.showsOtherMonths = params.showOthers;
-               cal.showsTime = params.showsTime;
-               cal.time24 = (params.timeFormat == "24");
-               cal.params = params;
-               cal.weekNumbers = params.weekNumbers;
-               cal.setRange(params.range[0], params.range[1]);
-               cal.setDateStatusHandler(params.dateStatusFunc);
-               cal.getDateText = params.dateText;
-               if (params.ifFormat) {
-                       cal.setDateFormat(params.ifFormat);
-               }
-               if (params.inputField && typeof params.inputField.value == "string") {
-                       cal.parseDate(params.inputField.value);
-               }
-               cal.create(params.flat);
-               cal.show();
-               return false;
-       }
-
-       var triggerEl = params.button || params.displayArea || params.inputField;
-       triggerEl["on" + params.eventName] = function() {
-               var dateEl = params.inputField || params.displayArea;
-               var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
-               var mustCreate = false;
-               var cal = window.calendar;
-               if (dateEl)
-                       params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
-               if (!(cal && params.cache)) {
-                       window.calendar = cal = new Calendar(params.firstDay,
-                                                            params.date,
-                                                            params.onSelect || onSelect,
-                                                            params.onClose || function(cal) { cal.hide(); });
-                       cal.showsTime = params.showsTime;
-                       cal.time24 = (params.timeFormat == "24");
-                       cal.weekNumbers = params.weekNumbers;
-                       mustCreate = true;
-               } else {
-                       if (params.date)
-                               cal.setDate(params.date);
-                       cal.hide();
-               }
-               if (params.multiple) {
-                       cal.multiple = {};
-                       for (var i = params.multiple.length; --i >= 0;) {
-                               var d = params.multiple[i];
-                               var ds = d.print("%Y%m%d");
-                               cal.multiple[ds] = d;
-                       }
-               }
-               cal.showsOtherMonths = params.showOthers;
-               cal.yearStep = params.step;
-               cal.setRange(params.range[0], params.range[1]);
-               cal.params = params;
-               cal.setDateStatusHandler(params.dateStatusFunc);
-               cal.getDateText = params.dateText;
-               cal.setDateFormat(dateFmt);
-               if (mustCreate)
-                       cal.create();
-               cal.refresh();
-               if (!params.position)
-                       cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
-               else
-                       cal.showAt(params.position[0], params.position[1]);
-               return false;
-       };
-
-       return cal;
-};
diff --git a/public_html/includes/libs/jscalendar/calendar-setup_stripped.js b/public_html/includes/libs/jscalendar/calendar-setup_stripped.js
deleted file mode 100644 (file)
index 91c927f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*  Copyright Mihai Bazon, 2002, 2003  |  http://dynarch.com/mishoo/
- * ---------------------------------------------------------------------------
- *
- * The DHTML Calendar
- *
- * Details and latest version at:
- * http://dynarch.com/mishoo/calendar.epl
- *
- * This script is distributed under the GNU Lesser General Public License.
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
- *
- * This file defines helper functions for setting up the calendar.  They are
- * intended to help non-programmers get a working calendar on their site
- * quickly.  This script should not be seen as part of the calendar.  It just
- * shows you what one can do with the calendar, while in the same time
- * providing a quick and simple method for setting it up.  If you need
- * exhaustive customization of the calendar creation process feel free to
- * modify this code to suit your needs (this is recommended and much better
- * than modifying calendar.js itself).
- */
- Calendar.setup=function(params){function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def;}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("dateText",null);param_default("firstDay",null);param_default("align","Br");param_default("range",[1900,2999]);param_default("weekNumbers",true);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);param_default("multiple",null);var tmp=["inputField","displayArea","button"];for(var i in tmp){if(typeof params[tmp[i]]=="string"){params[tmp[i]]=document.getElementById(params[tmp[i]]);}}if(!(params.flat||params.multiple||params.inputField||params.displayArea||params.button)){alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");return false;}function onSelect(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);if(update&&p.inputField){p.inputField.value=cal.date.print(p.ifFormat);if(typeof p.inputField.onchange=="function")p.inputField.onchange();}if(update&&p.displayArea)p.displayArea.innerHTML=cal.date.print(p.daFormat);if(update&&typeof p.onUpdate=="function")p.onUpdate(cal);if(update&&p.flat){if(typeof p.flatCallback=="function")p.flatCallback(cal);}if(update&&p.singleClick&&cal.dateClicked)cal.callCloseHandler();};if(params.flat!=null){if(typeof params.flat=="string")params.flat=document.getElementById(params.flat);if(!params.flat){alert("Calendar.setup:\n  Flat specified but can't find parent.");return false;}var cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect);cal.showsOtherMonths=params.showOthers;cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.params=params;cal.weekNumbers=params.weekNumbers;cal.setRange(params.range[0],params.range[1]);cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;if(params.ifFormat){cal.setDateFormat(params.ifFormat);}if(params.inputField&&typeof params.inputField.value=="string"){cal.parseDate(params.inputField.value);}cal.create(params.flat);cal.show();return false;}var triggerEl=params.button||params.displayArea||params.inputField;triggerEl["on"+params.eventName]=function(){var dateEl=params.inputField||params.displayArea;var dateFmt=params.inputField?params.ifFormat:params.daFormat;var mustCreate=false;var cal=window.calendar;if(dateEl)params.date=Date.parseDate(dateEl.value||dateEl.innerHTML,dateFmt);if(!(cal&&params.cache)){window.calendar=cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect,params.onClose||function(cal){cal.hide();});cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.weekNumbers=params.weekNumbers;mustCreate=true;}else{if(params.date)cal.setDate(params.date);cal.hide();}if(params.multiple){cal.multiple={};for(var i=params.multiple.length;--i>=0;){var d=params.multiple[i];var ds=d.print("%Y%m%d");cal.multiple[ds]=d;}}cal.showsOtherMonths=params.showOthers;cal.yearStep=params.step;cal.setRange(params.range[0],params.range[1]);cal.params=params;cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;cal.setDateFormat(dateFmt);if(mustCreate)cal.create();cal.refresh();if(!params.position)cal.showAtElement(params.button||params.displayArea||params.inputField,params.align);else cal.showAt(params.position[0],params.position[1]);return false;};return cal;};
\ No newline at end of file
diff --git a/public_html/includes/libs/jscalendar/calendar-system.css b/public_html/includes/libs/jscalendar/calendar-system.css
deleted file mode 100644 (file)
index b224885..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-/* The main calendar widget.  DIV containing a table. */
-
-.calendar {
-  position: relative;
-  display: none;
-  border: 1px solid;
-  border-color: #fff #000 #000 #fff;
-  font-size: 11px;
-  cursor: default;
-  background: Window;
-  color: WindowText;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-.calendar table {
-  border: 1px solid;
-  border-color: #fff #000 #000 #fff;
-  font-size: 11px;
-  cursor: default;
-  background: Window;
-  color: WindowText;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
-  text-align: center;
-  padding: 1px;
-  border: 1px solid;
-  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
-  background: ButtonFace;
-}
-
-.calendar .nav {
-  background: ButtonFace url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
-  font-weight: bold;
-  padding: 1px;
-  border: 1px solid #000;
-  background: ActiveCaption;
-  color: CaptionText;
-  text-align: center;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
-  border-bottom: 1px solid ButtonShadow;
-  padding: 2px;
-  text-align: center;
-  background: ButtonFace;
-  color: ButtonText;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
-  color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
-  border: 2px solid;
-  padding: 0px;
-  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
-  border-width: 1px;
-  padding: 2px 0px 0px 2px;
-  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
-  width: 2em;
-  text-align: right;
-  padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
-  font-size: 80%;
-  color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
-  color: #faa;
-}
-
-.calendar table .wn {
-  padding: 2px 3px 2px 2px;
-  border-right: 1px solid ButtonShadow;
-  background: ButtonFace;
-  color: ButtonText;
-}
-
-.calendar tbody .rowhilite td {
-  background: Highlight;
-  color: HighlightText;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
-  padding: 1px 3px 1px 1px;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
-  padding: 2px 2px 0px 2px;
-  border: 1px solid;
-  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
-}
-
-.calendar tbody td.selected { /* Cell showing selected date */
-  font-weight: bold;
-  border: 1px solid;
-  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
-  padding: 2px 2px 0px 2px;
-  background: ButtonFace;
-  color: ButtonText;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
-  color: #f00;
-}
-
-.calendar tbody td.today { /* Cell showing today date */
-  font-weight: bold;
-  color: #00f;
-}
-
-.calendar tbody td.disabled { color: GrayText; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
-  visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
-  display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
-  background: ButtonFace;
-  padding: 1px;
-  border: 1px solid;
-  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
-  color: ButtonText;
-  text-align: center;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-  padding: 1px;
-  background: #e4e0d8;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
-  padding: 2px 0px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
-  position: absolute;
-  display: none;
-  width: 4em;
-  top: 0px;
-  left: 0px;
-  cursor: default;
-  border: 1px solid;
-  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
-  background: Menu;
-  color: MenuText;
-  font-size: 90%;
-  padding: 1px;
-  z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
-  text-align: center;
-  padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
-  width: 4em;
-}
-
-.calendar .combo .active {
-  padding: 0px;
-  border: 1px solid #000;
-}
-
-.calendar .combo .hilite {
-  background: Highlight;
-  color: HighlightText;
-}
-
-.calendar td.time {
-  border-top: 1px solid ButtonShadow;
-  padding: 1px 0px;
-  text-align: center;
-  background-color: ButtonFace;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
-  padding: 0px 3px 0px 4px;
-  border: 1px solid #889;
-  font-weight: bold;
-  background-color: Menu;
-}
-
-.calendar td.time .ampm {
-  text-align: center;
-}
-
-.calendar td.time .colon {
-  padding: 0px 2px 0px 3px;
-  font-weight: bold;
-}
-
-.calendar td.time span.hilite {
-  border-color: #000;
-  background-color: Highlight;
-  color: HighlightText;
-}
-
-.calendar td.time span.active {
-  border-color: #f00;
-  background-color: #000;
-  color: #0f0;
-}
diff --git a/public_html/includes/libs/jscalendar/calendar-tas.css b/public_html/includes/libs/jscalendar/calendar-tas.css
deleted file mode 100644 (file)
index c2f8721..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-/* The main calendar widget.  DIV containing a table. */
-
-div.calendar { position: relative; }
-
-.calendar, .calendar table {
-  border: 1px solid #655;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #ffd;
-  font-family: tahoma,verdana,sans-serif;
-  filter:
-progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#DDDCCC,EndColorStr=#FFFFFF);
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
-  text-align: center;    /* They are the navigation buttons */
-  padding: 2px;          /* Make the buttons seem like they're pressing */
-  color:#363636;
-}
-
-.calendar .nav {
-  background: #edc url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
-  font-weight: bold;      /* Pressing it will take you to the current date */
-  text-align: center;
-  background: #654;
-  color: #363636;
-  padding: 2px;
-  filter:
-progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffff,EndColorStr=#dddccc);
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-  /*background: #3B86A0;*/
-  color: #363636;
-  font-weight: bold;   
-filter:
-progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffff,EndColorStr=#3b86a0);
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
-  border-bottom: 1px solid #655;
-  padding: 2px;
-  text-align: center;
-  color: #363636;
-    filter:
-progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#DDDCCC,EndColorStr=#FFFFFF);
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
-  color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
-  background-color: #ffcc86;
-  color: #000;
-  border: 1px solid #b59345;
-  padding: 1px;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
-  background-color: #c77;
-  padding: 2px 0px 0px 2px;
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-  background: #fed;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
-  width: 2em;
-  text-align: right;
-  padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
-  font-size: 80%;
-  color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
-  color: #faa;
-}
-
-.calendar table .wn {
-  padding: 2px 3px 2px 2px;
-  border-right: 1px solid #000;
-  background: #fed;
-}
-
-.calendar tbody .rowhilite td {
- background: #ddf;
-  
-}
-
-.calendar tbody .rowhilite td.wn {
-  background: #efe;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
-  background: #ffe;
-  padding: 1px 3px 1px 1px;
-  border: 1px solid #bbb;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
-  background: #ddc;
-  padding: 2px 2px 0px 2px;
-}
-
-.calendar tbody td.selected { /* Cell showing today date */
-  font-weight: bold;
-  border: 1px solid #000;
-  padding: 1px 3px 1px 1px;
-  background: #fea;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
-  color: #f00;
-}
-
-.calendar tbody td.today { font-weight: bold; }
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
-  visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
-  display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-  text-align: center;
-  background: #988;
-  color: #000;
-  
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
-  border-top: 1px solid #655;
-  background: #dcb;
-  color: #363636;
-  font-weight: bold;
-       filter:
-progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#FFFFFF,EndColorStr=#DDDCCC);
-}
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
-  background: #faa;
-  border: 1px solid #f40;
-  padding: 1px;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
-  background: #c77;
-  padding: 2px 0px 0px 2px;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.combo {
-  position: absolute;
-  display: none;
-  top: 0px;
-  left: 0px;
-  width: 4em;
-  cursor: default;
-  border: 1px solid #655;
-  background: #ffe;
-  color: #000;
-  font-size: smaller;
-  z-index: 100;
-}
-
-.combo .label,
-.combo .label-IEfix {
-  text-align: center;
-  padding: 1px;
-}
-
-.combo .label-IEfix {
-  width: 4em;
-}
-
-.combo .hilite {
-  background: #fc8;
-}
-
-.combo .active {
-  border-top: 1px solid #a64;
-  border-bottom: 1px solid #a64;
-  background: #fee;
-  font-weight: bold;
-}
-
-.calendar td.time {
-  border-top: 1px solid #a88;
-  padding: 1px 0px;
-  text-align: center;
-  background-color: #fed;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
-  padding: 0px 3px 0px 4px;
-  border: 1px solid #988;
-  font-weight: bold;
-  background-color: #fff;
-}
-
-.calendar td.time .ampm {
-  text-align: center;
-}
-
-.calendar td.time .colon {
-  padding: 0px 2px 0px 3px;
-  font-weight: bold;
-}
-
-.calendar td.time span.hilite {
-  border-color: #000;
-  background-color: #866;
-  color: #fff;
-}
-
-.calendar td.time span.active {
-  border-color: #f00;
-  background-color: #000;
-  color: #0f0;
-}
diff --git a/public_html/includes/libs/jscalendar/calendar-win2k-1.css b/public_html/includes/libs/jscalendar/calendar-win2k-1.css
deleted file mode 100644 (file)
index 8c5d026..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/* The main calendar widget.  DIV containing a table. */
-
-.calendar {
-  position: relative;
-  display: none;
-  border-top: 2px solid #fff;
-  border-right: 2px solid #000;
-  border-bottom: 2px solid #000;
-  border-left: 2px solid #fff;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #d4d0c8;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-.calendar table {
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #d4d0c8;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
-  text-align: center;
-  padding: 1px;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-}
-
-.calendar .nav {
-  background: transparent url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
-  font-weight: bold;
-  padding: 1px;
-  border: 1px solid #000;
-  background: #848078;
-  color: #fff;
-  text-align: center;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
-  border-bottom: 1px solid #000;
-  padding: 2px;
-  text-align: center;
-  background: #f4f0e8;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
-  color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
-  border-top: 2px solid #fff;
-  border-right: 2px solid #000;
-  border-bottom: 2px solid #000;
-  border-left: 2px solid #fff;
-  padding: 0px;
-  background-color: #e4e0d8;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
-  padding: 2px 0px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  background-color: #c4c0b8;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
-  width: 2em;
-  text-align: right;
-  padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
-  font-size: 80%;
-  color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
-  color: #faa;
-}
-
-.calendar table .wn {
-  padding: 2px 3px 2px 2px;
-  border-right: 1px solid #000;
-  background: #f4f0e8;
-}
-
-.calendar tbody .rowhilite td {
-  background: #e4e0d8;
-}
-
-.calendar tbody .rowhilite td.wn {
-  background: #d4d0c8;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
-  padding: 1px 3px 1px 1px;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
-  padding: 2px 2px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-.calendar tbody td.selected { /* Cell showing selected date */
-  font-weight: bold;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  padding: 2px 2px 0px 2px;
-  background: #e4e0d8;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
-  color: #f00;
-}
-
-.calendar tbody td.today { /* Cell showing today date */
-  font-weight: bold;
-  color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
-  visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
-  display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
-  background: #f4f0e8;
-  padding: 1px;
-  border: 1px solid #000;
-  background: #848078;
-  color: #fff;
-  text-align: center;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-  padding: 1px;
-  background: #e4e0d8;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
-  padding: 2px 0px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
-  position: absolute;
-  display: none;
-  width: 4em;
-  top: 0px;
-  left: 0px;
-  cursor: default;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-  background: #e4e0d8;
-  font-size: 90%;
-  padding: 1px;
-  z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
-  text-align: center;
-  padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
-  width: 4em;
-}
-
-.calendar .combo .active {
-  background: #c4c0b8;
-  padding: 0px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-.calendar .combo .hilite {
-  background: #048;
-  color: #fea;
-}
-
-.calendar td.time {
-  border-top: 1px solid #000;
-  padding: 1px 0px;
-  text-align: center;
-  background-color: #f4f0e8;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
-  padding: 0px 3px 0px 4px;
-  border: 1px solid #889;
-  font-weight: bold;
-  background-color: #fff;
-}
-
-.calendar td.time .ampm {
-  text-align: center;
-}
-
-.calendar td.time .colon {
-  padding: 0px 2px 0px 3px;
-  font-weight: bold;
-}
-
-.calendar td.time span.hilite {
-  border-color: #000;
-  background-color: #766;
-  color: #fff;
-}
-
-.calendar td.time span.active {
-  border-color: #f00;
-  background-color: #000;
-  color: #0f0;
-}
diff --git a/public_html/includes/libs/jscalendar/calendar-win2k-2.css b/public_html/includes/libs/jscalendar/calendar-win2k-2.css
deleted file mode 100644 (file)
index 6f37b7d..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/* The main calendar widget.  DIV containing a table. */
-
-.calendar {
-  position: relative;
-  display: none;
-  border-top: 2px solid #fff;
-  border-right: 2px solid #000;
-  border-bottom: 2px solid #000;
-  border-left: 2px solid #fff;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #d4c8d0;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-.calendar table {
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #d4c8d0;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
-  text-align: center;
-  padding: 1px;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-}
-
-.calendar .nav {
-  background: transparent url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
-  font-weight: bold;
-  padding: 1px;
-  border: 1px solid #000;
-  background: #847880;
-  color: #fff;
-  text-align: center;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
-  border-bottom: 1px solid #000;
-  padding: 2px;
-  text-align: center;
-  background: #f4e8f0;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
-  color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
-  border-top: 2px solid #fff;
-  border-right: 2px solid #000;
-  border-bottom: 2px solid #000;
-  border-left: 2px solid #fff;
-  padding: 0px;
-  background-color: #e4d8e0;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
-  padding: 2px 0px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  background-color: #c4b8c0;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
-  width: 2em;
-  text-align: right;
-  padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
-  font-size: 80%;
-  color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
-  color: #faa;
-}
-
-.calendar table .wn {
-  padding: 2px 3px 2px 2px;
-  border-right: 1px solid #000;
-  background: #f4e8f0;
-}
-
-.calendar tbody .rowhilite td {
-  background: #e4d8e0;
-}
-
-.calendar tbody .rowhilite td.wn {
-  background: #d4c8d0;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
-  padding: 1px 3px 1px 1px;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
-  padding: 2px 2px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-.calendar tbody td.selected { /* Cell showing selected date */
-  font-weight: bold;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  padding: 2px 2px 0px 2px;
-  background: #e4d8e0;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
-  color: #f00;
-}
-
-.calendar tbody td.today { /* Cell showing today date */
-  font-weight: bold;
-  color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
-  visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
-  display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
-  background: #f4e8f0;
-  padding: 1px;
-  border: 1px solid #000;
-  background: #847880;
-  color: #fff;
-  text-align: center;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-  padding: 1px;
-  background: #e4d8e0;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
-  padding: 2px 0px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
-  position: absolute;
-  display: none;
-  width: 4em;
-  top: 0px;
-  left: 0px;
-  cursor: default;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-  background: #e4d8e0;
-  font-size: 90%;
-  padding: 1px;
-  z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
-  text-align: center;
-  padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
-  width: 4em;
-}
-
-.calendar .combo .active {
-  background: #d4c8d0;
-  padding: 0px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-.calendar .combo .hilite {
-  background: #408;
-  color: #fea;
-}
-
-.calendar td.time {
-  border-top: 1px solid #000;
-  padding: 1px 0px;
-  text-align: center;
-  background-color: #f4f0e8;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
-  padding: 0px 3px 0px 4px;
-  border: 1px solid #889;
-  font-weight: bold;
-  background-color: #fff;
-}
-
-.calendar td.time .ampm {
-  text-align: center;
-}
-
-.calendar td.time .colon {
-  padding: 0px 2px 0px 3px;
-  font-weight: bold;
-}
-
-.calendar td.time span.hilite {
-  border-color: #000;
-  background-color: #766;
-  color: #fff;
-}
-
-.calendar td.time span.active {
-  border-color: #f00;
-  background-color: #000;
-  color: #0f0;
-}
diff --git a/public_html/includes/libs/jscalendar/calendar-win2k-cold-1.css b/public_html/includes/libs/jscalendar/calendar-win2k-cold-1.css
deleted file mode 100644 (file)
index fa5c093..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-/* The main calendar widget.  DIV containing a table. */
-
-.calendar {
-  position: relative;
-  display: none;
-  border-top: 2px solid #fff;
-  border-right: 2px solid #000;
-  border-bottom: 2px solid #000;
-  border-left: 2px solid #fff;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #c8d0d4;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-.calendar table {
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #c8d0d4;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
-  text-align: center;
-  padding: 1px;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-}
-
-.calendar .nav {
-  background: transparent url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
-  font-weight: bold;
-  padding: 1px;
-  border: 1px solid #000;
-  background: #788084;
-  color: #fff;
-  text-align: center;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
-  border-bottom: 1px solid #000;
-  padding: 2px;
-  text-align: center;
-  background: #e8f0f4;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
-  color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
-  border-top: 2px solid #fff;
-  border-right: 2px solid #000;
-  border-bottom: 2px solid #000;
-  border-left: 2px solid #fff;
-  padding: 0px;
-  background-color: #d8e0e4;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
-  padding: 2px 0px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  background-color: #b8c0c4;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
-  width: 2em;
-  text-align: right;
-  padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
-  font-size: 80%;
-  color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
-  color: #faa;
-}
-
-.calendar table .wn {
-  padding: 2px 3px 2px 2px;
-  border-right: 1px solid #000;
-  background: #e8f4f0;
-}
-
-.calendar tbody .rowhilite td {
-  background: #d8e4e0;
-}
-
-.calendar tbody .rowhilite td.wn {
-  background: #c8d4d0;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
-  padding: 1px 3px 1px 1px;
-  border: 1px solid;
-  border-color: #fff #000 #000 #fff;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
-  padding: 2px 2px 0px 2px;
-  border: 1px solid;
-  border-color: #000 #fff #fff #000;
-}
-
-.calendar tbody td.selected { /* Cell showing selected date */
-  font-weight: bold;
-  padding: 2px 2px 0px 2px;
-  border: 1px solid;
-  border-color: #000 #fff #fff #000;
-  background: #d8e0e4;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
-  color: #f00;
-}
-
-.calendar tbody td.today { /* Cell showing today date */
-  font-weight: bold;
-  color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
-  visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
-  display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
-  background: #e8f0f4;
-  padding: 1px;
-  border: 1px solid #000;
-  background: #788084;
-  color: #fff;
-  text-align: center;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-  padding: 1px;
-  background: #d8e0e4;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
-  padding: 2px 0px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
-  position: absolute;
-  display: none;
-  width: 4em;
-  top: 0px;
-  left: 0px;
-  cursor: default;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-  background: #d8e0e4;
-  font-size: 90%;
-  padding: 1px;
-  z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
-  text-align: center;
-  padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
-  width: 4em;
-}
-
-.calendar .combo .active {
-  background: #c8d0d4;
-  padding: 0px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-.calendar .combo .hilite {
-  background: #048;
-  color: #aef;
-}
-
-.calendar td.time {
-  border-top: 1px solid #000;
-  padding: 1px 0px;
-  text-align: center;
-  background-color: #e8f0f4;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
-  padding: 0px 3px 0px 4px;
-  border: 1px solid #889;
-  font-weight: bold;
-  background-color: #fff;
-}
-
-.calendar td.time .ampm {
-  text-align: center;
-}
-
-.calendar td.time .colon {
-  padding: 0px 2px 0px 3px;
-  font-weight: bold;
-}
-
-.calendar td.time span.hilite {
-  border-color: #000;
-  background-color: #667;
-  color: #fff;
-}
-
-.calendar td.time span.active {
-  border-color: #f00;
-  background-color: #000;
-  color: #0f0;
-}
diff --git a/public_html/includes/libs/jscalendar/calendar-win2k-cold-2.css b/public_html/includes/libs/jscalendar/calendar-win2k-cold-2.css
deleted file mode 100644 (file)
index 8e930c8..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/* The main calendar widget.  DIV containing a table. */
-
-.calendar {
-  position: relative;
-  display: none;
-  border-top: 2px solid #fff;
-  border-right: 2px solid #000;
-  border-bottom: 2px solid #000;
-  border-left: 2px solid #fff;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #c8d4d0;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-.calendar table {
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #c8d4d0;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
-  text-align: center;
-  padding: 1px;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-}
-
-.calendar .nav {
-  background: transparent url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
-  font-weight: bold;
-  padding: 1px;
-  border: 1px solid #000;
-  background: #788480;
-  color: #fff;
-  text-align: center;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
-  border-bottom: 1px solid #000;
-  padding: 2px;
-  text-align: center;
-  background: #e8f4f0;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
-  color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
-  border-top: 2px solid #fff;
-  border-right: 2px solid #000;
-  border-bottom: 2px solid #000;
-  border-left: 2px solid #fff;
-  padding: 0px;
-  background-color: #d8e4e0;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
-  padding: 2px 0px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  background-color: #b8c4c0;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
-  width: 2em;
-  text-align: right;
-  padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
-  font-size: 80%;
-  color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
-  color: #faa;
-}
-
-.calendar table .wn {
-  padding: 2px 3px 2px 2px;
-  border-right: 1px solid #000;
-  background: #e8f4f0;
-}
-
-.calendar tbody .rowhilite td {
-  background: #d8e4e0;
-}
-
-.calendar tbody .rowhilite td.wn {
-  background: #c8d4d0;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
-  padding: 1px 3px 1px 1px;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
-  padding: 2px 2px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-.calendar tbody td.selected { /* Cell showing selected date */
-  font-weight: bold;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  padding: 2px 2px 0px 2px;
-  background: #d8e4e0;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
-  color: #f00;
-}
-
-.calendar tbody td.today { /* Cell showing today date */
-  font-weight: bold;
-  color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
-  visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
-  display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
-  background: #e8f4f0;
-  padding: 1px;
-  border: 1px solid #000;
-  background: #788480;
-  color: #fff;
-  text-align: center;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-  padding: 1px;
-  background: #d8e4e0;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
-  padding: 2px 0px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
-  position: absolute;
-  display: none;
-  width: 4em;
-  top: 0px;
-  left: 0px;
-  cursor: default;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-  background: #d8e4e0;
-  font-size: 90%;
-  padding: 1px;
-  z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
-  text-align: center;
-  padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
-  width: 4em;
-}
-
-.calendar .combo .active {
-  background: #c8d4d0;
-  padding: 0px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-.calendar .combo .hilite {
-  background: #048;
-  color: #aef;
-}
-
-.calendar td.time {
-  border-top: 1px solid #000;
-  padding: 1px 0px;
-  text-align: center;
-  background-color: #e8f0f4;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
-  padding: 0px 3px 0px 4px;
-  border: 1px solid #889;
-  font-weight: bold;
-  background-color: #fff;
-}
-
-.calendar td.time .ampm {
-  text-align: center;
-}
-
-.calendar td.time .colon {
-  padding: 0px 2px 0px 3px;
-  font-weight: bold;
-}
-
-.calendar td.time span.hilite {
-  border-color: #000;
-  background-color: #667;
-  color: #fff;
-}
-
-.calendar td.time span.active {
-  border-color: #f00;
-  background-color: #000;
-  color: #0f0;
-}
diff --git a/public_html/includes/libs/jscalendar/calendar.js b/public_html/includes/libs/jscalendar/calendar.js
deleted file mode 100644 (file)
index 9088e0e..0000000
+++ /dev/null
@@ -1,1806 +0,0 @@
-/*  Copyright Mihai Bazon, 2002-2005  |  www.bazon.net/mishoo
- * -----------------------------------------------------------
- *
- * The DHTML Calendar, version 1.0 "It is happening again"
- *
- * Details and latest version at:
- * www.dynarch.com/projects/calendar
- *
- * This script is developed by Dynarch.com.  Visit us at www.dynarch.com.
- *
- * This script is distributed under the GNU Lesser General Public License.
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
- */
-
-// $Id: calendar.js,v 1.51 2005/03/07 16:44:31 mishoo Exp $
-
-/** The Calendar object constructor. */
-Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) {
-       // member variables
-       this.activeDiv = null;
-       this.currentDateEl = null;
-       this.getDateStatus = null;
-       this.getDateToolTip = null;
-       this.getDateText = null;
-       this.timeout = null;
-       this.onSelected = onSelected || null;
-       this.onClose = onClose || null;
-       this.dragging = false;
-       this.hidden = false;
-       this.minYear = 1970;
-       this.maxYear = 2050;
-       this.dateFormat = Calendar._TT["DEF_DATE_FORMAT"];
-       this.ttDateFormat = Calendar._TT["TT_DATE_FORMAT"];
-       this.isPopup = true;
-       this.weekNumbers = true;
-       this.firstDayOfWeek = typeof firstDayOfWeek == "number" ? firstDayOfWeek : Calendar._FD; // 0 for Sunday, 1 for Monday, etc.
-       this.showsOtherMonths = false;
-       this.dateStr = dateStr;
-       this.ar_days = null;
-       this.showsTime = false;
-       this.time24 = true;
-       this.yearStep = 2;
-       this.hiliteToday = true;
-       this.multiple = null;
-       // HTML elements
-       this.table = null;
-       this.element = null;
-       this.tbody = null;
-       this.firstdayname = null;
-       // Combo boxes
-       this.monthsCombo = null;
-       this.yearsCombo = null;
-       this.hilitedMonth = null;
-       this.activeMonth = null;
-       this.hilitedYear = null;
-       this.activeYear = null;
-       // Information
-       this.dateClicked = false;
-
-       // one-time initializations
-       if (typeof Calendar._SDN == "undefined") {
-               // table of short day names
-               if (typeof Calendar._SDN_len == "undefined")
-                       Calendar._SDN_len = 3;
-               var ar = new Array();
-               for (var i = 8; i > 0;) {
-                       ar[--i] = Calendar._DN[i].substr(0, Calendar._SDN_len);
-               }
-               Calendar._SDN = ar;
-               // table of short month names
-               if (typeof Calendar._SMN_len == "undefined")
-                       Calendar._SMN_len = 3;
-               ar = new Array();
-               for (var i = 12; i > 0;) {
-                       ar[--i] = Calendar._MN[i].substr(0, Calendar._SMN_len);
-               }
-               Calendar._SMN = ar;
-       }
-};
-
-// ** constants
-
-/// "static", needed for event handlers.
-Calendar._C = null;
-
-/// detect a special case of "web browser"
-Calendar.is_ie = ( /msie/i.test(navigator.userAgent) &&
-                  !/opera/i.test(navigator.userAgent) );
-
-Calendar.is_ie5 = ( Calendar.is_ie && /msie 5\.0/i.test(navigator.userAgent) );
-
-/// detect Opera browser
-Calendar.is_opera = /opera/i.test(navigator.userAgent);
-
-/// detect KHTML-based browsers
-Calendar.is_khtml = /Konqueror|Safari|KHTML/i.test(navigator.userAgent);
-
-// BEGIN: UTILITY FUNCTIONS; beware that these might be moved into a separate
-//        library, at some point.
-
-Calendar.getAbsolutePos = function(el) {
-       var SL = 0, ST = 0;
-       var is_div = /^div$/i.test(el.tagName);
-       if (is_div && el.scrollLeft)
-               SL = el.scrollLeft;
-       if (is_div && el.scrollTop)
-               ST = el.scrollTop;
-       var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
-       if (el.offsetParent) {
-               var tmp = this.getAbsolutePos(el.offsetParent);
-               r.x += tmp.x;
-               r.y += tmp.y;
-       }
-       return r;
-};
-
-Calendar.isRelated = function (el, evt) {
-       var related = evt.relatedTarget;
-       if (!related) {
-               var type = evt.type;
-               if (type == "mouseover") {
-                       related = evt.fromElement;
-               } else if (type == "mouseout") {
-                       related = evt.toElement;
-               }
-       }
-       while (related) {
-               if (related == el) {
-                       return true;
-               }
-               related = related.parentNode;
-       }
-       return false;
-};
-
-Calendar.removeClass = function(el, className) {
-       if (!(el && el.className)) {
-               return;
-       }
-       var cls = el.className.split(" ");
-       var ar = new Array();
-       for (var i = cls.length; i > 0;) {
-               if (cls[--i] != className) {
-                       ar[ar.length] = cls[i];
-               }
-       }
-       el.className = ar.join(" ");
-};
-
-Calendar.addClass = function(el, className) {
-       Calendar.removeClass(el, className);
-       el.className += " " + className;
-};
-
-// FIXME: the following 2 functions totally suck, are useless and should be replaced immediately.
-Calendar.getElement = function(ev) {
-       var f = Calendar.is_ie ? window.event.srcElement : ev.currentTarget;
-       while (f.nodeType != 1 || /^div$/i.test(f.tagName))
-               f = f.parentNode;
-       return f;
-};
-
-Calendar.getTargetElement = function(ev) {
-       var f = Calendar.is_ie ? window.event.srcElement : ev.target;
-       while (f.nodeType != 1)
-               f = f.parentNode;
-       return f;
-};
-
-Calendar.stopEvent = function(ev) {
-       ev || (ev = window.event);
-       if (Calendar.is_ie) {
-               ev.cancelBubble = true;
-               ev.returnValue = false;
-       } else {
-               ev.preventDefault();
-               ev.stopPropagation();
-       }
-       return false;
-};
-
-Calendar.addEvent = function(el, evname, func) {
-       if (el.attachEvent) { // IE
-               el.attachEvent("on" + evname, func);
-       } else if (el.addEventListener) { // Gecko / W3C
-               el.addEventListener(evname, func, true);
-       } else {
-               el["on" + evname] = func;
-       }
-};
-
-Calendar.removeEvent = function(el, evname, func) {
-       if (el.detachEvent) { // IE
-               el.detachEvent("on" + evname, func);
-       } else if (el.removeEventListener) { // Gecko / W3C
-               el.removeEventListener(evname, func, true);
-       } else {
-               el["on" + evname] = null;
-       }
-};
-
-Calendar.createElement = function(type, parent) {
-       var el = null;
-       if (document.createElementNS) {
-               // use the XHTML namespace; IE won't normally get here unless
-               // _they_ "fix" the DOM2 implementation.
-               el = document.createElementNS("http://www.w3.org/1999/xhtml", type);
-       } else {
-               el = document.createElement(type);
-       }
-       if (typeof parent != "undefined") {
-               parent.appendChild(el);
-       }
-       return el;
-};
-
-// END: UTILITY FUNCTIONS
-
-// BEGIN: CALENDAR STATIC FUNCTIONS
-
-/** Internal -- adds a set of events to make some element behave like a button. */
-Calendar._add_evs = function(el) {
-       with (Calendar) {
-               addEvent(el, "mouseover", dayMouseOver);
-               addEvent(el, "mousedown", dayMouseDown);
-               addEvent(el, "mouseout", dayMouseOut);
-               if (is_ie) {
-                       addEvent(el, "dblclick", dayMouseDblClick);
-                       el.setAttribute("unselectable", true);
-               }
-       }
-};
-
-Calendar.findMonth = function(el) {
-       if (typeof el.month != "undefined") {
-               return el;
-       } else if (typeof el.parentNode.month != "undefined") {
-               return el.parentNode;
-       }
-       return null;
-};
-
-Calendar.findYear = function(el) {
-       if (typeof el.year != "undefined") {
-               return el;
-       } else if (typeof el.parentNode.year != "undefined") {
-               return el.parentNode;
-       }
-       return null;
-};
-
-Calendar.showMonthsCombo = function () {
-       var cal = Calendar._C;
-       if (!cal) {
-               return false;
-       }
-       var cal = cal;
-       var cd = cal.activeDiv;
-       var mc = cal.monthsCombo;
-       if (cal.hilitedMonth) {
-               Calendar.removeClass(cal.hilitedMonth, "hilite");
-       }
-       if (cal.activeMonth) {
-               Calendar.removeClass(cal.activeMonth, "active");
-       }
-       var mon = cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];
-       Calendar.addClass(mon, "active");
-       cal.activeMonth = mon;
-       var s = mc.style;
-       s.display = "block";
-       if (cd.navtype < 0)
-               s.left = cd.offsetLeft + "px";
-       else {
-               var mcw = mc.offsetWidth;
-               if (typeof mcw == "undefined")
-                       // Konqueror brain-dead techniques
-                       mcw = 50;
-               s.left = (cd.offsetLeft + cd.offsetWidth - mcw) + "px";
-       }
-       s.top = (cd.offsetTop + cd.offsetHeight) + "px";
-};
-
-Calendar.showYearsCombo = function (fwd) {
-       var cal = Calendar._C;
-       if (!cal) {
-               return false;
-       }
-       var cal = cal;
-       var cd = cal.activeDiv;
-       var yc = cal.yearsCombo;
-       if (cal.hilitedYear) {
-               Calendar.removeClass(cal.hilitedYear, "hilite");
-       }
-       if (cal.activeYear) {
-               Calendar.removeClass(cal.activeYear, "active");
-       }
-       cal.activeYear = null;
-       var Y = cal.date.getFullYear() + (fwd ? 1 : -1);
-       var yr = yc.firstChild;
-       var show = false;
-       for (var i = 12; i > 0; --i) {
-               if (Y >= cal.minYear && Y <= cal.maxYear) {
-                       yr.innerHTML = Y;
-                       yr.year = Y;
-                       yr.style.display = "block";
-                       show = true;
-               } else {
-                       yr.style.display = "none";
-               }
-               yr = yr.nextSibling;
-               Y += fwd ? cal.yearStep : -cal.yearStep;
-       }
-       if (show) {
-               var s = yc.style;
-               s.display = "block";
-               if (cd.navtype < 0)
-                       s.left = cd.offsetLeft + "px";
-               else {
-                       var ycw = yc.offsetWidth;
-                       if (typeof ycw == "undefined")
-                               // Konqueror brain-dead techniques
-                               ycw = 50;
-                       s.left = (cd.offsetLeft + cd.offsetWidth - ycw) + "px";
-               }
-               s.top = (cd.offsetTop + cd.offsetHeight) + "px";
-       }
-};
-
-// event handlers
-
-Calendar.tableMouseUp = function(ev) {
-       var cal = Calendar._C;
-       if (!cal) {
-               return false;
-       }
-       if (cal.timeout) {
-               clearTimeout(cal.timeout);
-       }
-       var el = cal.activeDiv;
-       if (!el) {
-               return false;
-       }
-       var target = Calendar.getTargetElement(ev);
-       ev || (ev = window.event);
-       Calendar.removeClass(el, "active");
-       if (target == el || target.parentNode == el) {
-               Calendar.cellClick(el, ev);
-       }
-       var mon = Calendar.findMonth(target);
-       var date = null;
-       if (mon) {
-               date = new Date(cal.date);
-               if (mon.month != date.getMonth()) {
-                       date.setMonth(mon.month);
-                       cal.setDate(date);
-                       cal.dateClicked = false;
-                       cal.callHandler();
-               }
-       } else {
-               var year = Calendar.findYear(target);
-               if (year) {
-                       date = new Date(cal.date);
-                       if (year.year != date.getFullYear()) {
-                               date.setFullYear(year.year);
-                               cal.setDate(date);
-                               cal.dateClicked = false;
-                               cal.callHandler();
-                       }
-               }
-       }
-       with (Calendar) {
-               removeEvent(document, "mouseup", tableMouseUp);
-               removeEvent(document, "mouseover", tableMouseOver);
-               removeEvent(document, "mousemove", tableMouseOver);
-               cal._hideCombos();
-               _C = null;
-               return stopEvent(ev);
-       }
-};
-
-Calendar.tableMouseOver = function (ev) {
-       var cal = Calendar._C;
-       if (!cal) {
-               return;
-       }
-       var el = cal.activeDiv;
-       var target = Calendar.getTargetElement(ev);
-       if (target == el || target.parentNode == el) {
-               Calendar.addClass(el, "hilite active");
-               Calendar.addClass(el.parentNode, "rowhilite");
-       } else {
-               if (typeof el.navtype == "undefined" || (el.navtype != 50 && (el.navtype == 0 || Math.abs(el.navtype) > 2)))
-                       Calendar.removeClass(el, "active");
-               Calendar.removeClass(el, "hilite");
-               Calendar.removeClass(el.parentNode, "rowhilite");
-       }
-       ev || (ev = window.event);
-       if (el.navtype == 50 && target != el) {
-               var pos = Calendar.getAbsolutePos(el);
-               var w = el.offsetWidth;
-               var x = ev.clientX;
-               var dx;
-               var decrease = true;
-               if (x > pos.x + w) {
-                       dx = x - pos.x - w;
-                       decrease = false;
-               } else
-                       dx = pos.x - x;
-
-               if (dx < 0) dx = 0;
-               var range = el._range;
-               var current = el._current;
-               var count = Math.floor(dx / 10) % range.length;
-               for (var i = range.length; --i >= 0;)
-                       if (range[i] == current)
-                               break;
-               while (count-- > 0)
-                       if (decrease) {
-                               if (--i < 0)
-                                       i = range.length - 1;
-                       } else if ( ++i >= range.length )
-                               i = 0;
-               var newval = range[i];
-               el.innerHTML = newval;
-
-               cal.onUpdateTime();
-       }
-       var mon = Calendar.findMonth(target);
-       if (mon) {
-               if (mon.month != cal.date.getMonth()) {
-                       if (cal.hilitedMonth) {
-                               Calendar.removeClass(cal.hilitedMonth, "hilite");
-                       }
-                       Calendar.addClass(mon, "hilite");
-                       cal.hilitedMonth = mon;
-               } else if (cal.hilitedMonth) {
-                       Calendar.removeClass(cal.hilitedMonth, "hilite");
-               }
-       } else {
-               if (cal.hilitedMonth) {
-                       Calendar.removeClass(cal.hilitedMonth, "hilite");
-               }
-               var year = Calendar.findYear(target);
-               if (year) {
-                       if (year.year != cal.date.getFullYear()) {
-                               if (cal.hilitedYear) {
-                                       Calendar.removeClass(cal.hilitedYear, "hilite");
-                               }
-                               Calendar.addClass(year, "hilite");
-                               cal.hilitedYear = year;
-                       } else if (cal.hilitedYear) {
-                               Calendar.removeClass(cal.hilitedYear, "hilite");
-                       }
-               } else if (cal.hilitedYear) {
-                       Calendar.removeClass(cal.hilitedYear, "hilite");
-               }
-       }
-       return Calendar.stopEvent(ev);
-};
-
-Calendar.tableMouseDown = function (ev) {
-       if (Calendar.getTargetElement(ev) == Calendar.getElement(ev)) {
-               return Calendar.stopEvent(ev);
-       }
-};
-
-Calendar.calDragIt = function (ev) {
-       var cal = Calendar._C;
-       if (!(cal && cal.dragging)) {
-               return false;
-       }
-       var posX;
-       var posY;
-       if (Calendar.is_ie) {
-               posY = window.event.clientY + document.body.scrollTop;
-               posX = window.event.clientX + document.body.scrollLeft;
-       } else {
-               posX = ev.pageX;
-               posY = ev.pageY;
-       }
-       cal.hideShowCovered();
-       var st = cal.element.style;
-       st.left = (posX - cal.xOffs) + "px";
-       st.top = (posY - cal.yOffs) + "px";
-       return Calendar.stopEvent(ev);
-};
-
-Calendar.calDragEnd = function (ev) {
-       var cal = Calendar._C;
-       if (!cal) {
-               return false;
-       }
-       cal.dragging = false;
-       with (Calendar) {
-               removeEvent(document, "mousemove", calDragIt);
-               removeEvent(document, "mouseup", calDragEnd);
-               tableMouseUp(ev);
-       }
-       cal.hideShowCovered();
-};
-
-Calendar.dayMouseDown = function(ev) {
-       var el = Calendar.getElement(ev);
-       if (el.disabled) {
-               return false;
-       }
-       var cal = el.calendar;
-       cal.activeDiv = el;
-       Calendar._C = cal;
-       if (el.navtype != 300) with (Calendar) {
-               if (el.navtype == 50) {
-                       el._current = el.innerHTML;
-                       addEvent(document, "mousemove", tableMouseOver);
-               } else
-                       addEvent(document, Calendar.is_ie5 ? "mousemove" : "mouseover", tableMouseOver);
-               addClass(el, "hilite active");
-               addEvent(document, "mouseup", tableMouseUp);
-       } else if (cal.isPopup) {
-               cal._dragStart(ev);
-       }
-       if (el.navtype == -1 || el.navtype == 1) {
-               if (cal.timeout) clearTimeout(cal.timeout);
-               cal.timeout = setTimeout("Calendar.showMonthsCombo()", 250);
-       } else if (el.navtype == -2 || el.navtype == 2) {
-               if (cal.timeout) clearTimeout(cal.timeout);
-               cal.timeout = setTimeout((el.navtype > 0) ? "Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", 250);
-       } else {
-               cal.timeout = null;
-       }
-       return Calendar.stopEvent(ev);
-};
-
-Calendar.dayMouseDblClick = function(ev) {
-       Calendar.cellClick(Calendar.getElement(ev), ev || window.event);
-       if (Calendar.is_ie) {
-               document.selection.empty();
-       }
-};
-
-Calendar.dayMouseOver = function(ev) {
-       var el = Calendar.getElement(ev);
-       if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) {
-               return false;
-       }
-       if (el.ttip) {
-               if (el.ttip.substr(0, 1) == "_") {
-                       el.ttip = el.caldate.print(el.calendar.ttDateFormat) + el.ttip.substr(1);
-               }
-               el.calendar.tooltips.innerHTML = el.ttip;
-       }
-       if (el.navtype != 300) {
-               Calendar.addClass(el, "hilite");
-               if (el.caldate) {
-                       Calendar.addClass(el.parentNode, "rowhilite");
-               }
-       }
-       return Calendar.stopEvent(ev);
-};
-
-Calendar.dayMouseOut = function(ev) {
-       with (Calendar) {
-               var el = getElement(ev);
-               if (isRelated(el, ev) || _C || el.disabled)
-                       return false;
-               removeClass(el, "hilite");
-               if (el.caldate)
-                       removeClass(el.parentNode, "rowhilite");
-               if (el.calendar)
-                       el.calendar.tooltips.innerHTML = _TT["SEL_DATE"];
-               return stopEvent(ev);
-       }
-};
-
-/**
- *  A generic "click" handler :) handles all types of buttons defined in this
- *  calendar.
- */
-Calendar.cellClick = function(el, ev) {
-       var cal = el.calendar;
-       var closing = false;
-       var newdate = false;
-       var date = null;
-       if (typeof el.navtype == "undefined") {
-               if (cal.currentDateEl) {
-                       Calendar.removeClass(cal.currentDateEl, "selected");
-                       Calendar.addClass(el, "selected");
-                       closing = (cal.currentDateEl == el);
-                       if (!closing) {
-                               cal.currentDateEl = el;
-                       }
-               }
-               cal.date.setDateOnly(el.caldate);
-               date = cal.date;
-               var other_month = !(cal.dateClicked = !el.otherMonth);
-               if (!other_month && !cal.currentDateEl)
-                       cal._toggleMultipleDate(new Date(date));
-               else
-                       newdate = !el.disabled;
-               // a date was clicked
-               if (other_month)
-                       cal._init(cal.firstDayOfWeek, date);
-       } else {
-               if (el.navtype == 200) {
-                       Calendar.removeClass(el, "hilite");
-                       cal.callCloseHandler();
-                       return;
-               }
-               date = new Date(cal.date);
-               if (el.navtype == 0)
-                       date.setDateOnly(new Date()); // TODAY
-               // unless "today" was clicked, we assume no date was clicked so
-               // the selected handler will know not to close the calenar when
-               // in single-click mode.
-               // cal.dateClicked = (el.navtype == 0);
-               cal.dateClicked = false;
-               var year = date.getFullYear();
-               var mon = date.getMonth();
-               function setMonth(m) {
-                       var day = date.getDate();
-                       var max = date.getMonthDays(m);
-                       if (day > max) {
-                               date.setDate(max);
-                       }
-                       date.setMonth(m);
-               };
-               switch (el.navtype) {
-                   case 400:
-                       Calendar.removeClass(el, "hilite");
-                       var text = Calendar._TT["ABOUT"];
-                       if (typeof text != "undefined") {
-                               text += cal.showsTime ? Calendar._TT["ABOUT_TIME"] : "";
-                       } else {
-                               // FIXME: this should be removed as soon as lang files get updated!
-                               text = "Help and about box text is not translated into this language.\n" +
-                                       "If you know this language and you feel generous please update\n" +
-                                       "the corresponding file in \"lang\" subdir to match calendar-en.js\n" +
-                                       "and send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\n" +
-                                       "Thank you!\n" +
-                                       "http://dynarch.com/mishoo/calendar.epl\n";
-                       }
-                       alert(text);
-                       return;
-                   case -2:
-                       if (year > cal.minYear) {
-                               date.setFullYear(year - 1);
-                       }
-                       break;
-                   case -1:
-                       if (mon > 0) {
-                               setMonth(mon - 1);
-                       } else if (year-- > cal.minYear) {
-                               date.setFullYear(year);
-                               setMonth(11);
-                       }
-                       break;
-                   case 1:
-                       if (mon < 11) {
-                               setMonth(mon + 1);
-                       } else if (year < cal.maxYear) {
-                               date.setFullYear(year + 1);
-                               setMonth(0);
-                       }
-                       break;
-                   case 2:
-                       if (year < cal.maxYear) {
-                               date.setFullYear(year + 1);
-                       }
-                       break;
-                   case 100:
-                       cal.setFirstDayOfWeek(el.fdow);
-                       return;
-                   case 50:
-                       var range = el._range;
-                       var current = el.innerHTML;
-                       for (var i = range.length; --i >= 0;)
-                               if (range[i] == current)
-                                       break;
-                       if (ev && ev.shiftKey) {
-                               if (--i < 0)
-                                       i = range.length - 1;
-                       } else if ( ++i >= range.length )
-                               i = 0;
-                       var newval = range[i];
-                       el.innerHTML = newval;
-                       cal.onUpdateTime();
-                       return;
-                   case 0:
-                       // TODAY will bring us here
-                       if ((typeof cal.getDateStatus == "function") &&
-                           cal.getDateStatus(date, date.getFullYear(), date.getMonth(), date.getDate())) {
-                               return false;
-                       }
-                       break;
-               }
-               if (!date.equalsTo(cal.date)) {
-                       cal.setDate(date);
-                       newdate = true;
-               } else if (el.navtype == 0)
-                       newdate = closing = true;
-       }
-       if (newdate) {
-               ev && cal.callHandler();
-       }
-       if (closing) {
-               Calendar.removeClass(el, "hilite");
-               ev && cal.callCloseHandler();
-       }
-};
-
-// END: CALENDAR STATIC FUNCTIONS
-
-// BEGIN: CALENDAR OBJECT FUNCTIONS
-
-/**
- *  This function creates the calendar inside the given parent.  If _par is
- *  null than it creates a popup calendar inside the BODY element.  If _par is
- *  an element, be it BODY, then it creates a non-popup calendar (still
- *  hidden).  Some properties need to be set before calling this function.
- */
-Calendar.prototype.create = function (_par) {
-       var parent = null;
-       if (! _par) {
-               // default parent is the document body, in which case we create
-               // a popup calendar.
-               parent = document.getElementsByTagName("body")[0];
-               this.isPopup = true;
-       } else {
-               parent = _par;
-               this.isPopup = false;
-       }
-       this.date = this.dateStr ? new Date(this.dateStr) : new Date();
-
-       var table = Calendar.createElement("table");
-       this.table = table;
-       table.cellSpacing = 0;
-       table.cellPadding = 0;
-       table.calendar = this;
-       Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown);
-
-       var div = Calendar.createElement("div");
-       this.element = div;
-       div.className = "calendar";
-       if (this.isPopup) {
-               div.style.position = "absolute";
-               div.style.display = "none";
-       }
-       div.appendChild(table);
-
-       var thead = Calendar.createElement("thead", table);
-       var cell = null;
-       var row = null;
-
-       var cal = this;
-       var hh = function (text, cs, navtype) {
-               cell = Calendar.createElement("td", row);
-               cell.colSpan = cs;
-               cell.className = "button";
-               if (navtype != 0 && Math.abs(navtype) <= 2)
-                       cell.className += " nav";
-               Calendar._add_evs(cell);
-               cell.calendar = cal;
-               cell.navtype = navtype;
-               cell.innerHTML = "<div unselectable='on'>" + text + "</div>";
-               return cell;
-       };
-
-       row = Calendar.createElement("tr", thead);
-       var title_length = 6;
-       (this.isPopup) && --title_length;
-       (this.weekNumbers) && ++title_length;
-
-       hh("?", 1, 400).ttip = Calendar._TT["INFO"];
-       this.title = hh("", title_length, 300);
-       this.title.className = "title";
-       if (this.isPopup) {
-               this.title.ttip = Calendar._TT["DRAG_TO_MOVE"];
-               this.title.style.cursor = "move";
-               hh("&#x00d7;", 1, 200).ttip = Calendar._TT["CLOSE"];
-       }
-
-       row = Calendar.createElement("tr", thead);
-       row.className = "headrow";
-
-       this._nav_py = hh("&#x00ab;", 1, -2);
-       this._nav_py.ttip = Calendar._TT["PREV_YEAR"];
-
-       this._nav_pm = hh("&#x2039;", 1, -1);
-       this._nav_pm.ttip = Calendar._TT["PREV_MONTH"];
-
-       this._nav_now = hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, 0);
-       this._nav_now.ttip = Calendar._TT["GO_TODAY"];
-
-       this._nav_nm = hh("&#x203a;", 1, 1);
-       this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"];
-
-       this._nav_ny = hh("&#x00bb;", 1, 2);
-       this._nav_ny.ttip = Calendar._TT["NEXT_YEAR"];
-
-       // day names
-       row = Calendar.createElement("tr", thead);
-       row.className = "daynames";
-       if (this.weekNumbers) {
-               cell = Calendar.createElement("td", row);
-               cell.className = "name wn";
-               cell.innerHTML = Calendar._TT["WK"];
-       }
-       for (var i = 7; i > 0; --i) {
-               cell = Calendar.createElement("td", row);
-               if (!i) {
-                       cell.navtype = 100;
-                       cell.calendar = this;
-                       Calendar._add_evs(cell);
-               }
-       }
-       this.firstdayname = (this.weekNumbers) ? row.firstChild.nextSibling : row.firstChild;
-       this._displayWeekdays();
-
-       var tbody = Calendar.createElement("tbody", table);
-       this.tbody = tbody;
-
-       for (i = 6; i > 0; --i) {
-               row = Calendar.createElement("tr", tbody);
-               if (this.weekNumbers) {
-                       cell = Calendar.createElement("td", row);
-               }
-               for (var j = 7; j > 0; --j) {
-                       cell = Calendar.createElement("td", row);
-                       cell.calendar = this;
-                       Calendar._add_evs(cell);
-               }
-       }
-
-       if (this.showsTime) {
-               row = Calendar.createElement("tr", tbody);
-               row.className = "time";
-
-               cell = Calendar.createElement("td", row);
-               cell.className = "time";
-               cell.colSpan = 2;
-               cell.innerHTML = Calendar._TT["TIME"] || "&nbsp;";
-
-               cell = Calendar.createElement("td", row);
-               cell.className = "time";
-               cell.colSpan = this.weekNumbers ? 4 : 3;
-
-               (function(){
-                       function makeTimePart(className, init, range_start, range_end) {
-                               var part = Calendar.createElement("span", cell);
-                               part.className = className;
-                               part.innerHTML = init;
-                               part.calendar = cal;
-                               part.ttip = Calendar._TT["TIME_PART"];
-                               part.navtype = 50;
-                               part._range = [];
-                               if (typeof range_start != "number")
-                                       part._range = range_start;
-                               else {
-                                       for (var i = range_start; i <= range_end; ++i) {
-                                               var txt;
-                                               if (i < 10 && range_end >= 10) txt = '0' + i;
-                                               else txt = '' + i;
-                                               part._range[part._range.length] = txt;
-                                       }
-                               }
-                               Calendar._add_evs(part);
-                               return part;
-                       };
-                       var hrs = cal.date.getHours();
-                       var mins = cal.date.getMinutes();
-                       var t12 = !cal.time24;
-                       var pm = (hrs > 12);
-                       if (t12 && pm) hrs -= 12;
-                       var H = makeTimePart("hour", hrs, t12 ? 1 : 0, t12 ? 12 : 23);
-                       var span = Calendar.createElement("span", cell);
-                       span.innerHTML = ":";
-                       span.className = "colon";
-                       var M = makeTimePart("minute", mins, 0, 59);
-                       var AP = null;
-                       cell = Calendar.createElement("td", row);
-                       cell.className = "time";
-                       cell.colSpan = 2;
-                       if (t12)
-                               AP = makeTimePart("ampm", pm ? "pm" : "am", ["am", "pm"]);
-                       else
-                               cell.innerHTML = "&nbsp;";
-
-                       cal.onSetTime = function() {
-                               var pm, hrs = this.date.getHours(),
-                                       mins = this.date.getMinutes();
-                               if (t12) {
-                                       pm = (hrs >= 12);
-                                       if (pm) hrs -= 12;
-                                       if (hrs == 0) hrs = 12;
-                                       AP.innerHTML = pm ? "pm" : "am";
-                               }
-                               H.innerHTML = (hrs < 10) ? ("0" + hrs) : hrs;
-                               M.innerHTML = (mins < 10) ? ("0" + mins) : mins;
-                       };
-
-                       cal.onUpdateTime = function() {
-                               var date = this.date;
-                               var h = parseInt(H.innerHTML, 10);
-                               if (t12) {
-                                       if (/pm/i.test(AP.innerHTML) && h < 12)
-                                               h += 12;
-                                       else if (/am/i.test(AP.innerHTML) && h == 12)
-                                               h = 0;
-                               }
-                               var d = date.getDate();
-                               var m = date.getMonth();
-                               var y = date.getFullYear();
-                               date.setHours(h);
-                               date.setMinutes(parseInt(M.innerHTML, 10));
-                               date.setFullYear(y);
-                               date.setMonth(m);
-                               date.setDate(d);
-                               this.dateClicked = false;
-                               this.callHandler();
-                       };
-               })();
-       } else {
-               this.onSetTime = this.onUpdateTime = function() {};
-       }
-
-       var tfoot = Calendar.createElement("tfoot", table);
-
-       row = Calendar.createElement("tr", tfoot);
-       row.className = "footrow";
-
-       cell = hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300);
-       cell.className = "ttip";
-       if (this.isPopup) {
-               cell.ttip = Calendar._TT["DRAG_TO_MOVE"];
-               cell.style.cursor = "move";
-       }
-       this.tooltips = cell;
-
-       div = Calendar.createElement("div", this.element);
-       this.monthsCombo = div;
-       div.className = "combo";
-       for (i = 0; i < Calendar._MN.length; ++i) {
-               var mn = Calendar.createElement("div");
-               mn.className = Calendar.is_ie ? "label-IEfix" : "label";
-               mn.month = i;
-               mn.innerHTML = Calendar._SMN[i];
-               div.appendChild(mn);
-       }
-
-       div = Calendar.createElement("div", this.element);
-       this.yearsCombo = div;
-       div.className = "combo";
-       for (i = 12; i > 0; --i) {
-               var yr = Calendar.createElement("div");
-               yr.className = Calendar.is_ie ? "label-IEfix" : "label";
-               div.appendChild(yr);
-       }
-
-       this._init(this.firstDayOfWeek, this.date);
-       parent.appendChild(this.element);
-};
-
-/** keyboard navigation, only for popup calendars */
-Calendar._keyEvent = function(ev) {
-       var cal = window._dynarch_popupCalendar;
-       if (!cal || cal.multiple)
-               return false;
-       (Calendar.is_ie) && (ev = window.event);
-       var act = (Calendar.is_ie || ev.type == "keypress"),
-               K = ev.keyCode;
-       if (ev.ctrlKey) {
-               switch (K) {
-                   case 37: // KEY left
-                       act && Calendar.cellClick(cal._nav_pm);
-                       break;
-                   case 38: // KEY up
-                       act && Calendar.cellClick(cal._nav_py);
-                       break;
-                   case 39: // KEY right
-                       act && Calendar.cellClick(cal._nav_nm);
-                       break;
-                   case 40: // KEY down
-                       act && Calendar.cellClick(cal._nav_ny);
-                       break;
-                   default:
-                       return false;
-               }
-       } else switch (K) {
-           case 32: // KEY space (now)
-               Calendar.cellClick(cal._nav_now);
-               break;
-           case 27: // KEY esc
-               act && cal.callCloseHandler();
-               break;
-           case 37: // KEY left
-           case 38: // KEY up
-           case 39: // KEY right
-           case 40: // KEY down
-               if (act) {
-                       var prev, x, y, ne, el, step;
-                       prev = K == 37 || K == 38;
-                       step = (K == 37 || K == 39) ? 1 : 7;
-                       function setVars() {
-                               el = cal.currentDateEl;
-                               var p = el.pos;
-                               x = p & 15;
-                               y = p >> 4;
-                               ne = cal.ar_days[y][x];
-                       };setVars();
-                       function prevMonth() {
-                               var date = new Date(cal.date);
-                               date.setDate(date.getDate() - step);
-                               cal.setDate(date);
-                       };
-                       function nextMonth() {
-                               var date = new Date(cal.date);
-                               date.setDate(date.getDate() + step);
-                               cal.setDate(date);
-                       };
-                       while (1) {
-                               switch (K) {
-                                   case 37: // KEY left
-                                       if (--x >= 0)
-                                               ne = cal.ar_days[y][x];
-                                       else {
-                                               x = 6;
-                                               K = 38;
-                                               continue;
-                                       }
-                                       break;
-                                   case 38: // KEY up
-                                       if (--y >= 0)
-                                               ne = cal.ar_days[y][x];
-                                       else {
-                                               prevMonth();
-                                               setVars();
-                                       }
-                                       break;
-                                   case 39: // KEY right
-                                       if (++x < 7)
-                                               ne = cal.ar_days[y][x];
-                                       else {
-                                               x = 0;
-                                               K = 40;
-                                               continue;
-                                       }
-                                       break;
-                                   case 40: // KEY down
-                                       if (++y < cal.ar_days.length)
-                                               ne = cal.ar_days[y][x];
-                                       else {
-                                               nextMonth();
-                                               setVars();
-                                       }
-                                       break;
-                               }
-                               break;
-                       }
-                       if (ne) {
-                               if (!ne.disabled)
-                                       Calendar.cellClick(ne);
-                               else if (prev)
-                                       prevMonth();
-                               else
-                                       nextMonth();
-                       }
-               }
-               break;
-           case 13: // KEY enter
-               if (act)
-                       Calendar.cellClick(cal.currentDateEl, ev);
-               break;
-           default:
-               return false;
-       }
-       return Calendar.stopEvent(ev);
-};
-
-/**
- *  (RE)Initializes the calendar to the given date and firstDayOfWeek
- */
-Calendar.prototype._init = function (firstDayOfWeek, date) {
-       var today = new Date(),
-               TY = today.getFullYear(),
-               TM = today.getMonth(),
-               TD = today.getDate();
-       this.table.style.visibility = "hidden";
-       var year = date.getFullYear();
-       if (year < this.minYear) {
-               year = this.minYear;
-               date.setFullYear(year);
-       } else if (year > this.maxYear) {
-               year = this.maxYear;
-               date.setFullYear(year);
-       }
-       this.firstDayOfWeek = firstDayOfWeek;
-       this.date = new Date(date);
-       var month = date.getMonth();
-       var mday = date.getDate();
-       var no_days = date.getMonthDays();
-
-       // calendar voodoo for computing the first day that would actually be
-       // displayed in the calendar, even if it's from the previous month.
-       // WARNING: this is magic. ;-)
-       date.setDate(1);
-       var day1 = (date.getDay() - this.firstDayOfWeek) % 7;
-       if (day1 < 0)
-               day1 += 7;
-       date.setDate(-day1);
-       date.setDate(date.getDate() + 1);
-
-       var row = this.tbody.firstChild;
-       var MN = Calendar._SMN[month];
-       var ar_days = this.ar_days = new Array();
-       var weekend = Calendar._TT["WEEKEND"];
-       var dates = this.multiple ? (this.datesCells = {}) : null;
-       for (var i = 0; i < 6; ++i, row = row.nextSibling) {
-               var cell = row.firstChild;
-               if (this.weekNumbers) {
-                       cell.className = "day wn";
-                       cell.innerHTML = date.getWeekNumber();
-                       cell = cell.nextSibling;
-               }
-               row.className = "daysrow";
-               var hasdays = false, iday, dpos = ar_days[i] = [];
-               for (var j = 0; j < 7; ++j, cell = cell.nextSibling, date.setDate(iday + 1)) {
-                       iday = date.getDate();
-                       var wday = date.getDay();
-                       cell.className = "day";
-                       cell.pos = i << 4 | j;
-                       dpos[j] = cell;
-                       var current_month = (date.getMonth() == month);
-                       if (!current_month) {
-                               if (this.showsOtherMonths) {
-                                       cell.className += " othermonth";
-                                       cell.otherMonth = true;
-                               } else {
-                                       cell.className = "emptycell";
-                                       cell.innerHTML = "&nbsp;";
-                                       cell.disabled = true;
-                                       continue;
-                               }
-                       } else {
-                               cell.otherMonth = false;
-                               hasdays = true;
-                       }
-                       cell.disabled = false;
-                       cell.innerHTML = this.getDateText ? this.getDateText(date, iday) : iday;
-                       if (dates)
-                               dates[date.print("%Y%m%d")] = cell;
-                       if (this.getDateStatus) {
-                               var status = this.getDateStatus(date, year, month, iday);
-                               if (this.getDateToolTip) {
-                                       var toolTip = this.getDateToolTip(date, year, month, iday);
-                                       if (toolTip)
-                                               cell.title = toolTip;
-                               }
-                               if (status === true) {
-                                       cell.className += " disabled";
-                                       cell.disabled = true;
-                               } else {
-                                       if (/disabled/i.test(status))
-                                               cell.disabled = true;
-                                       cell.className += " " + status;
-                               }
-                       }
-                       if (!cell.disabled) {
-                               cell.caldate = new Date(date);
-                               cell.ttip = "_";
-                               if (!this.multiple && current_month
-                                   && iday == mday && this.hiliteToday) {
-                                       cell.className += " selected";
-                                       this.currentDateEl = cell;
-                               }
-                               if (date.getFullYear() == TY &&
-                                   date.getMonth() == TM &&
-                                   iday == TD) {
-                                       cell.className += " today";
-                                       cell.ttip += Calendar._TT["PART_TODAY"];
-                               }
-                               if (weekend.indexOf(wday.toString()) != -1)
-                                       cell.className += cell.otherMonth ? " oweekend" : " weekend";
-                       }
-               }
-               if (!(hasdays || this.showsOtherMonths))
-                       row.className = "emptyrow";
-       }
-       this.title.innerHTML = Calendar._MN[month] + ", " + year;
-       this.onSetTime();
-       this.table.style.visibility = "visible";
-       this._initMultipleDates();
-       // PROFILE
-       // this.tooltips.innerHTML = "Generated in " + ((new Date()) - today) + " ms";
-};
-
-Calendar.prototype._initMultipleDates = function() {
-       if (this.multiple) {
-               for (var i in this.multiple) {
-                       var cell = this.datesCells[i];
-                       var d = this.multiple[i];
-                       if (!d)
-                               continue;
-                       if (cell)
-                               cell.className += " selected";
-               }
-       }
-};
-
-Calendar.prototype._toggleMultipleDate = function(date) {
-       if (this.multiple) {
-               var ds = date.print("%Y%m%d");
-               var cell = this.datesCells[ds];
-               if (cell) {
-                       var d = this.multiple[ds];
-                       if (!d) {
-                               Calendar.addClass(cell, "selected");
-                               this.multiple[ds] = date;
-                       } else {
-                               Calendar.removeClass(cell, "selected");
-                               delete this.multiple[ds];
-                       }
-               }
-       }
-};
-
-Calendar.prototype.setDateToolTipHandler = function (unaryFunction) {
-       this.getDateToolTip = unaryFunction;
-};
-
-/**
- *  Calls _init function above for going to a certain date (but only if the
- *  date is different than the currently selected one).
- */
-Calendar.prototype.setDate = function (date) {
-       if (!date.equalsTo(this.date)) {
-               this._init(this.firstDayOfWeek, date);
-       }
-};
-
-/**
- *  Refreshes the calendar.  Useful if the "disabledHandler" function is
- *  dynamic, meaning that the list of disabled date can change at runtime.
- *  Just * call this function if you think that the list of disabled dates
- *  should * change.
- */
-Calendar.prototype.refresh = function () {
-       this._init(this.firstDayOfWeek, this.date);
-};
-
-/** Modifies the "firstDayOfWeek" parameter (pass 0 for Synday, 1 for Monday, etc.). */
-Calendar.prototype.setFirstDayOfWeek = function (firstDayOfWeek) {
-       this._init(firstDayOfWeek, this.date);
-       this._displayWeekdays();
-};
-
-/**
- *  Allows customization of what dates are enabled.  The "unaryFunction"
- *  parameter must be a function object that receives the date (as a JS Date
- *  object) and returns a boolean value.  If the returned value is true then
- *  the passed date will be marked as disabled.
- */
-Calendar.prototype.setDateStatusHandler = Calendar.prototype.setDisabledHandler = function (unaryFunction) {
-       this.getDateStatus = unaryFunction;
-};
-
-/** Customization of allowed year range for the calendar. */
-Calendar.prototype.setRange = function (a, z) {
-       this.minYear = a;
-       this.maxYear = z;
-};
-
-/** Calls the first user handler (selectedHandler). */
-Calendar.prototype.callHandler = function () {
-       if (this.onSelected) {
-               this.onSelected(this, this.date.print(this.dateFormat));
-       }
-};
-
-/** Calls the second user handler (closeHandler). */
-Calendar.prototype.callCloseHandler = function () {
-       if (this.onClose) {
-               this.onClose(this);
-       }
-       this.hideShowCovered();
-};
-
-/** Removes the calendar object from the DOM tree and destroys it. */
-Calendar.prototype.destroy = function () {
-       var el = this.element.parentNode;
-       el.removeChild(this.element);
-       Calendar._C = null;
-       window._dynarch_popupCalendar = null;
-};
-
-/**
- *  Moves the calendar element to a different section in the DOM tree (changes
- *  its parent).
- */
-Calendar.prototype.reparent = function (new_parent) {
-       var el = this.element;
-       el.parentNode.removeChild(el);
-       new_parent.appendChild(el);
-};
-
-// This gets called when the user presses a mouse button anywhere in the
-// document, if the calendar is shown.  If the click was outside the open
-// calendar this function closes it.
-Calendar._checkCalendar = function(ev) {
-       var calendar = window._dynarch_popupCalendar;
-       if (!calendar) {
-               return false;
-       }
-       var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
-       for (; el != null && el != calendar.element; el = el.parentNode);
-       if (el == null) {
-               // calls closeHandler which should hide the calendar.
-               window._dynarch_popupCalendar.callCloseHandler();
-               return Calendar.stopEvent(ev);
-       }
-};
-
-/** Shows the calendar. */
-Calendar.prototype.show = function () {
-       var rows = this.table.getElementsByTagName("tr");
-       for (var i = rows.length; i > 0;) {
-               var row = rows[--i];
-               Calendar.removeClass(row, "rowhilite");
-               var cells = row.getElementsByTagName("td");
-               for (var j = cells.length; j > 0;) {
-                       var cell = cells[--j];
-                       Calendar.removeClass(cell, "hilite");
-                       Calendar.removeClass(cell, "active");
-               }
-       }
-       this.element.style.display = "block";
-       this.hidden = false;
-       if (this.isPopup) {
-               window._dynarch_popupCalendar = this;
-               Calendar.addEvent(document, "keydown", Calendar._keyEvent);
-               Calendar.addEvent(document, "keypress", Calendar._keyEvent);
-               Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);
-       }
-       this.hideShowCovered();
-};
-
-/**
- *  Hides the calendar.  Also removes any "hilite" from the class of any TD
- *  element.
- */
-Calendar.prototype.hide = function () {
-       if (this.isPopup) {
-               Calendar.removeEvent(document, "keydown", Calendar._keyEvent);
-               Calendar.removeEvent(document, "keypress", Calendar._keyEvent);
-               Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);
-       }
-       this.element.style.display = "none";
-       this.hidden = true;
-       this.hideShowCovered();
-};
-
-/**
- *  Shows the calendar at a given absolute position (beware that, depending on
- *  the calendar element style -- position property -- this might be relative
- *  to the parent's containing rectangle).
- */
-Calendar.prototype.showAt = function (x, y) {
-       var s = this.element.style;
-       s.left = x + "px";
-       s.top = y + "px";
-       this.show();
-};
-
-/** Shows the calendar near a given element. */
-Calendar.prototype.showAtElement = function (el, opts) {
-       var self = this;
-       var p = Calendar.getAbsolutePos(el);
-       if (!opts || typeof opts != "string") {
-               this.showAt(p.x, p.y + el.offsetHeight);
-               return true;
-       }
-       function fixPosition(box) {
-               if (box.x < 0)
-                       box.x = 0;
-               if (box.y < 0)
-                       box.y = 0;
-               var cp = document.createElement("div");
-               var s = cp.style;
-               s.position = "absolute";
-               s.right = s.bottom = s.width = s.height = "0px";
-               document.body.appendChild(cp);
-               var br = Calendar.getAbsolutePos(cp);
-               document.body.removeChild(cp);
-               if (Calendar.is_ie) {
-                       br.y += document.body.scrollTop;
-                       br.x += document.body.scrollLeft;
-               } else {
-                       br.y += window.scrollY;
-                       br.x += window.scrollX;
-               }
-               var tmp = box.x + box.width - br.x;
-               if (tmp > 0) box.x -= tmp;
-               tmp = box.y + box.height - br.y;
-               if (tmp > 0) box.y -= tmp;
-       };
-       this.element.style.display = "block";
-       Calendar.continuation_for_the_fucking_khtml_browser = function() {
-               var w = self.element.offsetWidth;
-               var h = self.element.offsetHeight;
-               self.element.style.display = "none";
-               var valign = opts.substr(0, 1);
-               var halign = "l";
-               if (opts.length > 1) {
-                       halign = opts.substr(1, 1);
-               }
-               // vertical alignment
-               switch (valign) {
-                   case "T": p.y -= h; break;
-                   case "B": p.y += el.offsetHeight; break;
-                   case "C": p.y += (el.offsetHeight - h) / 2; break;
-                   case "t": p.y += el.offsetHeight - h; break;
-                   case "b": break; // already there
-               }
-               // horizontal alignment
-               switch (halign) {
-                   case "L": p.x -= w; break;
-                   case "R": p.x += el.offsetWidth; break;
-                   case "C": p.x += (el.offsetWidth - w) / 2; break;
-                   case "l": p.x += el.offsetWidth - w; break;
-                   case "r": break; // already there
-               }
-               p.width = w;
-               p.height = h + 40;
-               self.monthsCombo.style.display = "none";
-               fixPosition(p);
-               self.showAt(p.x, p.y);
-       };
-       if (Calendar.is_khtml)
-               setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10);
-       else
-               Calendar.continuation_for_the_fucking_khtml_browser();
-};
-
-/** Customizes the date format. */
-Calendar.prototype.setDateFormat = function (str) {
-       this.dateFormat = str;
-};
-
-/** Customizes the tooltip date format. */
-Calendar.prototype.setTtDateFormat = function (str) {
-       this.ttDateFormat = str;
-};
-
-/**
- *  Tries to identify the date represented in a string.  If successful it also
- *  calls this.setDate which moves the calendar to the given date.
- */
-Calendar.prototype.parseDate = function(str, fmt) {
-       if (!fmt)
-               fmt = this.dateFormat;
-       this.setDate(Date.parseDate(str, fmt));
-};
-
-Calendar.prototype.hideShowCovered = function () {
-       if (!Calendar.is_ie && !Calendar.is_opera)
-               return;
-       function getVisib(obj){
-               var value = obj.style.visibility;
-               if (!value) {
-                       if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
-                               if (!Calendar.is_khtml)
-                                       value = document.defaultView.
-                                               getComputedStyle(obj, "").getPropertyValue("visibility");
-                               else
-                                       value = '';
-                       } else if (obj.currentStyle) { // IE
-                               value = obj.currentStyle.visibility;
-                       } else
-                               value = '';
-               }
-               return value;
-       };
-
-       var tags = new Array("applet", "iframe", "select");
-       var el = this.element;
-
-       var p = Calendar.getAbsolutePos(el);
-       var EX1 = p.x;
-       var EX2 = el.offsetWidth + EX1;
-       var EY1 = p.y;
-       var EY2 = el.offsetHeight + EY1;
-
-       for (var k = tags.length; k > 0; ) {
-               var ar = document.getElementsByTagName(tags[--k]);
-               var cc = null;
-
-               for (var i = ar.length; i > 0;) {
-                       cc = ar[--i];
-
-                       p = Calendar.getAbsolutePos(cc);
-                       var CX1 = p.x;
-                       var CX2 = cc.offsetWidth + CX1;
-                       var CY1 = p.y;
-                       var CY2 = cc.offsetHeight + CY1;
-
-                       if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
-                               if (!cc.__msh_save_visibility) {
-                                       cc.__msh_save_visibility = getVisib(cc);
-                               }
-                               cc.style.visibility = cc.__msh_save_visibility;
-                       } else {
-                               if (!cc.__msh_save_visibility) {
-                                       cc.__msh_save_visibility = getVisib(cc);
-                               }
-                               cc.style.visibility = "hidden";
-                       }
-               }
-       }
-};
-
-/** Internal function; it displays the bar with the names of the weekday. */
-Calendar.prototype._displayWeekdays = function () {
-       var fdow = this.firstDayOfWeek;
-       var cell = this.firstdayname;
-       var weekend = Calendar._TT["WEEKEND"];
-       for (var i = 0; i < 7; ++i) {
-               cell.className = "day name";
-               var realday = (i + fdow) % 7;
-               if (i) {
-                       cell.ttip = Calendar._TT["DAY_FIRST"].replace("%s", Calendar._DN[realday]);
-                       cell.navtype = 100;
-                       cell.calendar = this;
-                       cell.fdow = realday;
-                       Calendar._add_evs(cell);
-               }
-               if (weekend.indexOf(realday.toString()) != -1) {
-                       Calendar.addClass(cell, "weekend");
-               }
-               cell.innerHTML = Calendar._SDN[(i + fdow) % 7];
-               cell = cell.nextSibling;
-       }
-};
-
-/** Internal function.  Hides all combo boxes that might be displayed. */
-Calendar.prototype._hideCombos = function () {
-       this.monthsCombo.style.display = "none";
-       this.yearsCombo.style.display = "none";
-};
-
-/** Internal function.  Starts dragging the element. */
-Calendar.prototype._dragStart = function (ev) {
-       if (this.dragging) {
-               return;
-       }
-       this.dragging = true;
-       var posX;
-       var posY;
-       if (Calendar.is_ie) {
-               posY = window.event.clientY + document.body.scrollTop;
-               posX = window.event.clientX + document.body.scrollLeft;
-       } else {
-               posY = ev.clientY + window.scrollY;
-               posX = ev.clientX + window.scrollX;
-       }
-       var st = this.element.style;
-       this.xOffs = posX - parseInt(st.left);
-       this.yOffs = posY - parseInt(st.top);
-       with (Calendar) {
-               addEvent(document, "mousemove", calDragIt);
-               addEvent(document, "mouseup", calDragEnd);
-       }
-};
-
-// BEGIN: DATE OBJECT PATCHES
-
-/** Adds the number of days array to the Date object. */
-Date._MD = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
-
-/** Constants used for time computations */
-Date.SECOND = 1000 /* milliseconds */;
-Date.MINUTE = 60 * Date.SECOND;
-Date.HOUR   = 60 * Date.MINUTE;
-Date.DAY    = 24 * Date.HOUR;
-Date.WEEK   =  7 * Date.DAY;
-
-Date.parseDate = function(str, fmt) {
-       var today = new Date();
-       var y = 0;
-       var m = -1;
-       var d = 0;
-       var a = str.split(/\W+/);
-       var b = fmt.match(/%./g);
-       var i = 0, j = 0;
-       var hr = 0;
-       var min = 0;
-       for (i = 0; i < a.length; ++i) {
-               if (!a[i])
-                       continue;
-               switch (b[i]) {
-                   case "%d":
-                   case "%e":
-                       d = parseInt(a[i], 10);
-                       break;
-
-                   case "%m":
-                       m = parseInt(a[i], 10) - 1;
-                       break;
-
-                   case "%Y":
-                   case "%y":
-                       y = parseInt(a[i], 10);
-                       (y < 100) && (y += (y > 29) ? 1900 : 2000);
-                       break;
-
-                   case "%b":
-                   case "%B":
-                       for (j = 0; j < 12; ++j) {
-                               if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }
-                       }
-                       break;
-
-                   case "%H":
-                   case "%I":
-                   case "%k":
-                   case "%l":
-                       hr = parseInt(a[i], 10);
-                       break;
-
-                   case "%P":
-                   case "%p":
-                       if (/pm/i.test(a[i]) && hr < 12)
-                               hr += 12;
-                       else if (/am/i.test(a[i]) && hr >= 12)
-                               hr -= 12;
-                       break;
-
-                   case "%M":
-                       min = parseInt(a[i], 10);
-                       break;
-               }
-       }
-       if (isNaN(y)) y = today.getFullYear();
-       if (isNaN(m)) m = today.getMonth();
-       if (isNaN(d)) d = today.getDate();
-       if (isNaN(hr)) hr = today.getHours();
-       if (isNaN(min)) min = today.getMinutes();
-       if (y != 0 && m != -1 && d != 0)
-               return new Date(y, m, d, hr, min, 0);
-       y = 0; m = -1; d = 0;
-       for (i = 0; i < a.length; ++i) {
-               if (a[i].search(/[a-zA-Z]+/) != -1) {
-                       var t = -1;
-                       for (j = 0; j < 12; ++j) {
-                               if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }
-                       }
-                       if (t != -1) {
-                               if (m != -1) {
-                                       d = m+1;
-                               }
-                               m = t;
-                       }
-               } else if (parseInt(a[i], 10) <= 12 && m == -1) {
-                       m = a[i]-1;
-               } else if (parseInt(a[i], 10) > 31 && y == 0) {
-                       y = parseInt(a[i], 10);
-                       (y < 100) && (y += (y > 29) ? 1900 : 2000);
-               } else if (d == 0) {
-                       d = a[i];
-               }
-       }
-       if (y == 0)
-               y = today.getFullYear();
-       if (m != -1 && d != 0)
-               return new Date(y, m, d, hr, min, 0);
-       return today;
-};
-
-/** Returns the number of days in the current month */
-Date.prototype.getMonthDays = function(month) {
-       var year = this.getFullYear();
-       if (typeof month == "undefined") {
-               month = this.getMonth();
-       }
-       if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
-               return 29;
-       } else {
-               return Date._MD[month];
-       }
-};
-
-/** Returns the number of day in the year. */
-Date.prototype.getDayOfYear = function() {
-       var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
-       var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
-       var time = now - then;
-       return Math.floor(time / Date.DAY);
-};
-
-/** Returns the number of the week in year, as defined in ISO 8601. */
-Date.prototype.getWeekNumber = function() {
-       var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
-       var DoW = d.getDay();
-       d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu
-       var ms = d.valueOf(); // GMT
-       d.setMonth(0);
-       d.setDate(4); // Thu in Week 1
-       return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
-};
-
-/** Checks date and time equality */
-Date.prototype.equalsTo = function(date) {
-       return ((this.getFullYear() == date.getFullYear()) &&
-               (this.getMonth() == date.getMonth()) &&
-               (this.getDate() == date.getDate()) &&
-               (this.getHours() == date.getHours()) &&
-               (this.getMinutes() == date.getMinutes()));
-};
-
-/** Set only the year, month, date parts (keep existing time) */
-Date.prototype.setDateOnly = function(date) {
-       var tmp = new Date(date);
-       this.setDate(1);
-       this.setFullYear(tmp.getFullYear());
-       this.setMonth(tmp.getMonth());
-       this.setDate(tmp.getDate());
-};
-
-/** Prints the date in a string according to the given format. */
-Date.prototype.print = function (str) {
-       var m = this.getMonth();
-       var d = this.getDate();
-       var y = this.getFullYear();
-       var wn = this.getWeekNumber();
-       var w = this.getDay();
-       var s = {};
-       var hr = this.getHours();
-       var pm = (hr >= 12);
-       var ir = (pm) ? (hr - 12) : hr;
-       var dy = this.getDayOfYear();
-       if (ir == 0)
-               ir = 12;
-       var min = this.getMinutes();
-       var sec = this.getSeconds();
-       s["%a"] = Calendar._SDN[w]; // abbreviated weekday name [FIXME: I18N]
-       s["%A"] = Calendar._DN[w]; // full weekday name
-       s["%b"] = Calendar._SMN[m]; // abbreviated month name [FIXME: I18N]
-       s["%B"] = Calendar._MN[m]; // full month name
-       // FIXME: %c : preferred date and time representation for the current locale
-       s["%C"] = 1 + Math.floor(y / 100); // the century number
-       s["%d"] = (d < 10) ? ("0" + d) : d; // the day of the month (range 01 to 31)
-       s["%e"] = d; // the day of the month (range 1 to 31)
-       // FIXME: %D : american date style: %m/%d/%y
-       // FIXME: %E, %F, %G, %g, %h (man strftime)
-       s["%H"] = (hr < 10) ? ("0" + hr) : hr; // hour, range 00 to 23 (24h format)
-       s["%I"] = (ir < 10) ? ("0" + ir) : ir; // hour, range 01 to 12 (12h format)
-       s["%j"] = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; // day of the year (range 001 to 366)
-       s["%k"] = hr;           // hour, range 0 to 23 (24h format)
-       s["%l"] = ir;           // hour, range 1 to 12 (12h format)
-       s["%m"] = (m < 9) ? ("0" + (1+m)) : (1+m); // month, range 01 to 12
-       s["%M"] = (min < 10) ? ("0" + min) : min; // minute, range 00 to 59
-       s["%n"] = "\n";         // a newline character
-       s["%p"] = pm ? "PM" : "AM";
-       s["%P"] = pm ? "pm" : "am";
-       // FIXME: %r : the time in am/pm notation %I:%M:%S %p
-       // FIXME: %R : the time in 24-hour notation %H:%M
-       s["%s"] = Math.floor(this.getTime() / 1000);
-       s["%S"] = (sec < 10) ? ("0" + sec) : sec; // seconds, range 00 to 59
-       s["%t"] = "\t";         // a tab character
-       // FIXME: %T : the time in 24-hour notation (%H:%M:%S)
-       s["%U"] = s["%W"] = s["%V"] = (wn < 10) ? ("0" + wn) : wn;
-       s["%u"] = w + 1;        // the day of the week (range 1 to 7, 1 = MON)
-       s["%w"] = w;            // the day of the week (range 0 to 6, 0 = SUN)
-       // FIXME: %x : preferred date representation for the current locale without the time
-       // FIXME: %X : preferred time representation for the current locale without the date
-       s["%y"] = ('' + y).substr(2, 2); // year without the century (range 00 to 99)
-       s["%Y"] = y;            // year with the century
-       s["%%"] = "%";          // a literal '%' character
-
-       var re = /%./g;
-       if (!Calendar.is_ie5 && !Calendar.is_khtml)
-               return str.replace(re, function (par) { return s[par] || par; });
-
-       var a = str.match(re);
-       for (var i = 0; i < a.length; i++) {
-               var tmp = s[a[i]];
-               if (tmp) {
-                       re = new RegExp(a[i], 'g');
-                       str = str.replace(re, tmp);
-               }
-       }
-
-       return str;
-};
-
-Date.prototype.__msh_oldSetFullYear = Date.prototype.setFullYear;
-Date.prototype.setFullYear = function(y) {
-       var d = new Date(this);
-       d.__msh_oldSetFullYear(y);
-       if (d.getMonth() != this.getMonth())
-               this.setDate(28);
-       this.__msh_oldSetFullYear(y);
-};
-
-// END: DATE OBJECT PATCHES
-
-
-// global object that remembers the calendar
-window._dynarch_popupCalendar = null;
diff --git a/public_html/includes/libs/jscalendar/calendar.php b/public_html/includes/libs/jscalendar/calendar.php
deleted file mode 100644 (file)
index 5b9120d..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-
-/**
- *  File: calendar.php | (c) dynarch.com 2004
- *  Distributed as part of "The Coolest DHTML Calendar"
- *  under the same terms.
- *  -----------------------------------------------------------------
- *  This file implements a simple PHP wrapper for the calendar.  It
- *  allows you to easily include all the calendar files and setup the
- *  calendar by instantiating and calling a PHP object.
- */
-
-define('NEWLINE', "\n");
-
-class DHTML_Calendar {
-    var $calendar_lib_path;
-
-    var $calendar_file;
-    var $calendar_lang_file;
-    var $calendar_setup_file;
-    var $calendar_theme_file;
-    var $calendar_options;
-
-    function DHTML_Calendar($calendar_lib_path = '/calendar/',
-                            $lang              = 'en',
-                            $theme             = 'calendar-win2k-1',
-                            $stripped          = true) {
-        if ($stripped) {
-            $this->calendar_file = 'calendar_stripped.js';
-            $this->calendar_setup_file = 'calendar-setup_stripped.js';
-        } else {
-            $this->calendar_file = 'calendar.js';
-            $this->calendar_setup_file = 'calendar-setup.js';
-        }
-        $this->calendar_lang_file = 'lang/calendar-' . $lang . '.js';
-        $this->calendar_theme_file = $theme.'.css';
-        $this->calendar_lib_path = preg_replace('/\/+$/', '/', $calendar_lib_path);
-        $this->calendar_options = array('ifFormat' => '%Y/%m/%d',
-                                        'daFormat' => '%Y/%m/%d');
-    }
-
-    function set_option($name, $value) {
-        $this->calendar_options[$name] = $value;
-    }
-
-    function load_files() {
-        echo $this->get_load_files_code();
-    }
-
-    function get_load_files_code() {
-        $code  = ( '<link rel="stylesheet" type="text/css" media="all" href="' .
-                   $this->calendar_lib_path . $this->calendar_theme_file .
-                   '" />' . NEWLINE );
-        $code .= ( '<script type="text/javascript" src="' .
-                   $this->calendar_lib_path . $this->calendar_file .
-                   '"></script>' . NEWLINE );
-        $code .= ( '<script type="text/javascript" src="' .
-                   $this->calendar_lib_path . $this->calendar_lang_file .
-                   '"></script>' . NEWLINE );
-        $code .= ( '<script type="text/javascript" src="' .
-                   $this->calendar_lib_path . $this->calendar_setup_file .
-                   '"></script>' );
-        return $code;
-    }
-
-    function _make_calendar($other_options = array()) {
-        $js_options = $this->_make_js_hash(array_merge($this->calendar_options, $other_options));
-        $code  = ( '<script type="text/javascript">Calendar.setup({' .
-                   $js_options .
-                   '});</script>' );
-        return $code;
-    }
-
-    function make_input_field($cal_options = array(), $field_attributes = array()) {
-        $id = $this->_gen_id();
-        $attrstr = $this->_make_html_attr(array_merge($field_attributes,
-                                                      array('id'   => $this->_field_id($id),
-                                                            'type' => 'text')));
-        echo '<input ' . $attrstr .'/>';
-        echo '<a href="#" id="'. $this->_trigger_id($id) . '">' .
-            '<img align="middle" border="0" src="' . $this->calendar_lib_path . 'img.gif" alt="" /></a>';
-
-        $options = array_merge($cal_options,
-                               array('inputField' => $this->_field_id($id),
-                                     'button'     => $this->_trigger_id($id)));
-        echo $this->_make_calendar($options);
-    }
-
-    /// PRIVATE SECTION
-
-    function _field_id($id) { return 'f-calendar-field-' . $id; }
-    function _trigger_id($id) { return 'f-calendar-trigger-' . $id; }
-    function _gen_id() { static $id = 0; return ++$id; }
-
-    function _make_js_hash($array) {
-        $jstr = '';
-        reset($array);
-        while (list($key, $val) = each($array)) {
-            if (is_bool($val))
-                $val = $val ? 'true' : 'false';
-            else if (!is_numeric($val))
-                $val = '"'.$val.'"';
-            if ($jstr) $jstr .= ',';
-            $jstr .= '"' . $key . '":' . $val;
-        }
-        return $jstr;
-    }
-
-    function _make_html_attr($array) {
-        $attrstr = '';
-        reset($array);
-        while (list($key, $val) = each($array)) {
-            $attrstr .= $key . '="' . $val . '" ';
-        }
-        return $attrstr;
-    }
-};
-
-?>
\ No newline at end of file
diff --git a/public_html/includes/libs/jscalendar/calendar_stripped.js b/public_html/includes/libs/jscalendar/calendar_stripped.js
deleted file mode 100644 (file)
index 4fe03f1..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*  Copyright Mihai Bazon, 2002-2005  |  www.bazon.net/mishoo
- * -----------------------------------------------------------
- *
- * The DHTML Calendar, version 1.0 "It is happening again"
- *
- * Details and latest version at:
- * www.dynarch.com/projects/calendar
- *
- * This script is developed by Dynarch.com.  Visit us at www.dynarch.com.
- *
- * This script is distributed under the GNU Lesser General Public License.
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
- */
- Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:Calendar._FD;this.showsOtherMonths=false;this.dateStr=dateStr;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined")Calendar._SDN_len=3;var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);}Calendar._SDN=ar;if(typeof Calendar._SMN_len=="undefined")Calendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);}Calendar._SMN=ar;}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft)SL=el.scrollLeft;if(is_div&&el.scrollTop)ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}return r;};Calendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}}while(related){if(related==el){return true;}related=related.parentNode;}return false;};Calendar.removeClass=function(el,className){if(!(el&&el.className)){return;}var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i];}}el.className=ar.join(" ");};Calendar.addClass=function(el,className){Calendar.removeClass(el,className);el.className+=" "+className;};Calendar.getElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName))f=f.parentNode;return f;};Calendar.getTargetElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1)f=f.parentNode;return f;};Calendar.stopEvent=function(ev){ev||(ev=window.event);if(Calendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}return false;};Calendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};Calendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};Calendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);}if(typeof parent!="undefined"){parent.appendChild(el);}return el;};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};Calendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else if(typeof el.parentNode.month!="undefined"){return el.parentNode;}return null;};Calendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else if(typeof el.parentNode.year!="undefined"){return el.parentNode;}return null;};Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}if(cal.activeMonth){Calendar.removeClass(cal.activeMonth,"active");}var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined")mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";};Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}if(cal.activeYear){Calendar.removeClass(cal.activeYear,"active");}cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";}yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;}if(show){var s=yc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined")ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false;}if(cal.timeout){clearTimeout(cal.timeout);}var el=cal.activeDiv;if(!el){return false;}var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev);}var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}}with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev);}};Calendar.tableMouseOver=function(ev){var cal=Calendar._C;if(!cal){return;}var el=cal.activeDiv;var target=Calendar.getTargetElement(ev);if(target==el||target.parentNode==el){Calendar.addClass(el,"hilite active");Calendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2)))Calendar.removeClass(el,"active");Calendar.removeClass(el,"hilite");Calendar.removeClass(el.parentNode,"rowhilite");}ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=Calendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false;}else dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;)if(range[i]==current)break;while(count-->0)if(decrease){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();}var mon=Calendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}Calendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}var year=Calendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}Calendar.addClass(year,"hilite");cal.hilitedYear=year;}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}return Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){return Calendar.stopEvent(ev);}};Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!(cal&&cal.dragging)){return false;}var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posX=ev.pageX;posY=ev.pageY;}cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return Calendar.stopEvent(ev);};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false;}cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev);}cal.hideShowCovered();};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false;}var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300)with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);}if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}return Calendar.stopEvent(ev);};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event);if(Calendar.is_ie){document.selection.empty();}};Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){return false;}if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}el.calendar.tooltips.innerHTML=el.ttip;}if(el.navtype!=300){Calendar.addClass(el,"hilite");if(el.caldate){Calendar.addClass(el.parentNode,"rowhilite");}}return Calendar.stopEvent(ev);};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)return false;removeClass(el,"hilite");if(el.caldate)removeClass(el.parentNode,"rowhilite");if(el.calendar)el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];return stopEvent(ev);}};Calendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}}cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl)cal._toggleMultipleDate(new Date(date));else newdate=!el.disabled;if(other_month)cal._init(cal.firstDayOfWeek,date);}else{if(el.navtype==200){Calendar.removeClass(el,"hilite");cal.callCloseHandler();return;}date=new Date(cal.date);if(el.navtype==0)date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max);}date.setMonth(m);};switch(el.navtype){case 400:Calendar.removeClass(el,"hilite");var text=Calendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?Calendar._TT["ABOUT_TIME"]:"";}else{text="Help and about box text is not translated into this language.\n"+"If you know this language and you feel generous please update\n"+"the corresponding file in \"lang\" subdir to match calendar-en.js\n"+"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\n"+"Thank you!\n"+"http://dynarch.com/mishoo/calendar.epl\n";}alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1);}break;case-1:if(mon>0){setMonth(mon-1);}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11);}break;case 1:if(mon<11){setMonth(mon+1);}else if(year<cal.maxYear){date.setFullYear(year+1);setMonth(0);}break;case 2:if(year<cal.maxYear){date.setFullYear(year+1);}break;case 100:cal.setFirstDayOfWeek(el.fdow);return;case 50:var range=el._range;var current=el.innerHTML;for(var i=range.length;--i>=0;)if(range[i]==current)break;if(ev&&ev.shiftKey){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false;}break;}if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true;}else if(el.navtype==0)newdate=closing=true;}if(newdate){ev&&cal.callHandler();}if(closing){Calendar.removeClass(el,"hilite");ev&&cal.callCloseHandler();}};Calendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true;}else{parent=_par;this.isPopup=false;}this.date=this.dateStr?new Date(this.dateStr):new Date();var table=Calendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown);var div=Calendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none";}div.appendChild(table);var thead=Calendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype){cell=Calendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2)cell.className+=" nav";Calendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="<div unselectable='on'>"+text+"</div>";return cell;};row=Calendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh("?",1,400).ttip=Calendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("&#x00d7;",1,200).ttip=Calendar._TT["CLOSE"];}row=Calendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT["PREV_YEAR"];this._nav_pm=hh("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT["PREV_MONTH"];this._nav_now=hh(Calendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT["GO_TODAY"];this._nav_nm=hh("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];this._nav_ny=hh("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];row=Calendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=Calendar.createElement("td",row);cell.className="name wn";cell.innerHTML=Calendar._TT["WK"];}for(var i=7;i>0;--i){cell=Calendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}}this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();var tbody=Calendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=Calendar.createElement("tr",tbody);if(this.weekNumbers){cell=Calendar.createElement("td",row);}for(var j=7;j>0;--j){cell=Calendar.createElement("td",row);cell.calendar=this;Calendar._add_evs(cell);}}if(this.showsTime){row=Calendar.createElement("tr",tbody);row.className="time";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=Calendar._TT["TIME"]||"&nbsp;";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=Calendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=Calendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number")part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt;}}Calendar._add_evs(part);return part;};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=Calendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12)AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else cell.innerHTML="&nbsp;";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am";}H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins;};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12)h+=12;else if(/am/i.test(AP.innerHTML)&&h==12)h=0;}var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler();};})();}else{this.onSetTime=this.onUpdateTime=function(){};}var tfoot=Calendar.createElement("tfoot",table);row=Calendar.createElement("tr",tfoot);row.className="footrow";cell=hh(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);cell.className="ttip";if(this.isPopup){cell.ttip=Calendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move";}this.tooltips=cell;div=Calendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className=Calendar.is_ie?"label-IEfix":"label";mn.month=i;mn.innerHTML=Calendar._SMN[i];div.appendChild(mn);}div=Calendar.createElement("div",this.element);this.yearsCombo=div;div.className="combo";for(i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className=Calendar.is_ie?"label-IEfix":"label";div.appendChild(yr);}this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element);};Calendar._keyEvent=function(ev){var cal=window._dynarch_popupCalendar;if(!cal||cal.multiple)return false;(Calendar.is_ie)&&(ev=window.event);var act=(Calendar.is_ie||ev.type=="keypress"),K=ev.keyCode;if(ev.ctrlKey){switch(K){case 37:act&&Calendar.cellClick(cal._nav_pm);break;case 38:act&&Calendar.cellClick(cal._nav_py);break;case 39:act&&Calendar.cellClick(cal._nav_nm);break;case 40:act&&Calendar.cellClick(cal._nav_ny);break;default:return false;}}else switch(K){case 32:Calendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;prev=K==37||K==38;step=(K==37||K==39)?1:7;function setVars(){el=cal.currentDateEl;var p=el.pos;x=p&15;y=p>>4;ne=cal.ar_days[y][x];};setVars();function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step);cal.setDate(date);};function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step);cal.setDate(date);};while(1){switch(K){case 37:if(--x>=0)ne=cal.ar_days[y][x];else{x=6;K=38;continue;}break;case 38:if(--y>=0)ne=cal.ar_days[y][x];else{prevMonth();setVars();}break;case 39:if(++x<7)ne=cal.ar_days[y][x];else{x=0;K=40;continue;}break;case 40:if(++y<cal.ar_days.length)ne=cal.ar_days[y][x];else{nextMonth();setVars();}break;}break;}if(ne){if(!ne.disabled)Calendar.cellClick(ne);else if(prev)prevMonth();else nextMonth();}}break;case 13:if(act)Calendar.cellClick(cal.currentDateEl,ev);break;default:return false;}return Calendar.stopEvent(ev);};Calendar.prototype._init=function(firstDayOfWeek,date){var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate();this.table.style.visibility="hidden";var year=date.getFullYear();if(year<this.minYear){year=this.minYear;date.setFullYear(year);}else if(year>this.maxYear){year=this.maxYear;date.setFullYear(year);}this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0)day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=Calendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=Calendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling;}row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true;}else{cell.className="emptycell";cell.innerHTML="&nbsp;";cell.disabled=true;continue;}}else{cell.otherMonth=false;hasdays=true;}cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates)dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip)cell.title=toolTip;}if(status===true){cell.className+=" disabled";cell.disabled=true;}else{if(/disabled/i.test(status))cell.disabled=true;cell.className+=" "+status;}}if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&&current_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell;}if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=Calendar._TT["PART_TODAY"];}if(weekend.indexOf(wday.toString())!=-1)cell.className+=cell.otherMonth?" oweekend":" weekend";}}if(!(hasdays||this.showsOtherMonths))row.className="emptyrow";}this.title.innerHTML=Calendar._MN[month]+", "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates();};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d)continue;if(cell)cell.className+=" selected";}}};Calendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){Calendar.addClass(cell,"selected");this.multiple[ds]=date;}else{Calendar.removeClass(cell,"selected");delete this.multiple[ds];}}}};Calendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};Calendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat));}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this);}this.hideShowCovered();};Calendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};Calendar._checkCalendar=function(ev){var calendar=window._dynarch_popupCalendar;if(!calendar){return false;}var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(ev);}};Calendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];Calendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];Calendar.removeClass(cell,"hilite");Calendar.removeClass(cell,"active");}}this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"keydown",Calendar._keyEvent);Calendar.addEvent(document,"keypress",Calendar._keyEvent);Calendar.addEvent(document,"mousedown",Calendar._checkCalendar);}this.hideShowCovered();};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"keydown",Calendar._keyEvent);Calendar.removeEvent(document,"keypress",Calendar._keyEvent);Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar);}this.element.style.display="none";this.hidden=true;this.hideShowCovered();};Calendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};Calendar.prototype.showAtElement=function(el,opts){var self=this;var p=Calendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true;}function fixPosition(box){if(box.x<0)box.x=0;if(box.y<0)box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=Calendar.getAbsolutePos(cp);document.body.removeChild(cp);if(Calendar.is_ie){br.y+=document.body.scrollTop;br.x+=document.body.scrollLeft;}else{br.y+=window.scrollY;br.x+=window.scrollX;}var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp;};this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1);}switch(valign){case "T":p.y-=h;break;case "B":p.y+=el.offsetHeight;break;case "C":p.y+=(el.offsetHeight-h)/2;break;case "t":p.y+=el.offsetHeight-h;break;case "b":break;}switch(halign){case "L":p.x-=w;break;case "R":p.x+=el.offsetWidth;break;case "C":p.x+=(el.offsetWidth-w)/2;break;case "l":p.x+=el.offsetWidth-w;break;case "r":break;}p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y);};if(Calendar.is_khtml)setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10);else Calendar.continuation_for_the_fucking_khtml_browser();};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};Calendar.prototype.parseDate=function(str,fmt){if(!fmt)fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt));};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera)return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml)value=document.defaultView. getComputedStyle(obj,"").getPropertyValue("visibility");else value='';}else if(obj.currentStyle){value=obj.currentStyle.visibility;}else value='';}return value;};var tags=new Array("applet","iframe","select");var el=this.element;var p=Calendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=Calendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2<EX1)||(CY1>EY2)||(CY2<EY1)){if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility=cc.__msh_save_visibility;}else{if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility="hidden";}}}};Calendar.prototype._displayWeekdays=function(){var fdow=this.firstDayOfWeek;var cell=this.firstdayname;var weekend=Calendar._TT["WEEKEND"];for(var i=0;i<7;++i){cell.className="day name";var realday=(i+fdow)%7;if(i){cell.ttip=Calendar._TT["DAY_FIRST"].replace("%s",Calendar._DN[realday]);cell.navtype=100;cell.calendar=this;cell.fdow=realday;Calendar._add_evs(cell);}if(weekend.indexOf(realday.toString())!=-1){Calendar.addClass(cell,"weekend");}cell.innerHTML=Calendar._SDN[(i+fdow)%7];cell=cell.nextSibling;}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none";};Calendar.prototype._dragStart=function(ev){if(this.dragging){return;}this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX;}var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd);}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(str,fmt){var today=new Date();var y=0;var m=-1;var d=0;var a=str.split(/\W+/);var b=fmt.match(/%./g);var i=0,j=0;var hr=0;var min=0;for(i=0;i<a.length;++i){if(!a[i])continue;switch(b[i]){case "%d":case "%e":d=parseInt(a[i],10);break;case "%m":m=parseInt(a[i],10)-1;break;case "%Y":case "%y":y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);break;case "%b":case "%B":for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}}break;case "%H":case "%I":case "%k":case "%l":hr=parseInt(a[i],10);break;case "%P":case "%p":if(/pm/i.test(a[i])&&hr<12)hr+=12;else if(/am/i.test(a[i])&&hr>=12)hr-=12;break;case "%M":min=parseInt(a[i],10);break;}}if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i<a.length;++i){if(a[i].search(/[a-zA-Z]+/)!=-1){var t=-1;for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break;}}if(t!=-1){if(m!=-1){d=m+1;}m=t;}}else if(parseInt(a[i],10)<=12&&m==-1){m=a[i]-1;}else if(parseInt(a[i],10)>31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);}else if(d==0){d=a[i];}}if(y==0)y=today.getFullYear();if(m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);return today;};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth();}if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY);};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()));};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate());};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0)ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=Calendar._SDN[w];s["%A"]=Calendar._DN[w];s["%b"]=Calendar._SMN[m];s["%B"]=Calendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)return str.replace(re,function(par){return s[par]||par;});var a=str.match(re);for(var i=0;i<a.length;i++){var tmp=s[a[i]];if(tmp){re=new RegExp(a[i],'g');str=str.replace(re,tmp);}}return str;};Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(y){var d=new Date(this);d.__msh_oldSetFullYear(y);if(d.getMonth()!=this.getMonth())this.setDate(28);this.__msh_oldSetFullYear(y);};window._dynarch_popupCalendar=null;
\ No newline at end of file
diff --git a/public_html/includes/libs/jscalendar/lang/calendar-af.js b/public_html/includes/libs/jscalendar/lang/calendar-af.js
deleted file mode 100644 (file)
index aeda581..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// ** I18N Afrikaans
-Calendar._DN = new Array
-("Sondag",
- "Maandag",
- "Dinsdag",
- "Woensdag",
- "Donderdag",
- "Vrydag",
- "Saterdag",
- "Sondag");
-Calendar._MN = new Array
-("Januarie",
- "Februarie",
- "Maart",
- "April",
- "Mei",
- "Junie",
- "Julie",
- "Augustus",
- "September",
- "Oktober",
- "November",
- "Desember");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Verander eerste dag van die week";
-Calendar._TT["PREV_YEAR"] = "Vorige jaar (hou vir keuselys)";
-Calendar._TT["PREV_MONTH"] = "Vorige maand (hou vir keuselys)";
-Calendar._TT["GO_TODAY"] = "Gaan na vandag";
-Calendar._TT["NEXT_MONTH"] = "Volgende maand (hou vir keuselys)";
-Calendar._TT["NEXT_YEAR"] = "Volgende jaar (hou vir keuselys)";
-Calendar._TT["SEL_DATE"] = "Kies datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te skuif";
-Calendar._TT["PART_TODAY"] = " (vandag)";
-Calendar._TT["MON_FIRST"] = "Vertoon Maandag eerste";
-Calendar._TT["SUN_FIRST"] = "Display Sunday first";
-Calendar._TT["CLOSE"] = "Close";
-Calendar._TT["TODAY"] = "Today";
diff --git a/public_html/includes/libs/jscalendar/lang/calendar-al.js b/public_html/includes/libs/jscalendar/lang/calendar-al.js
deleted file mode 100644 (file)
index 4f701cf..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-// Calendar ALBANIAN language
-//author Rigels Gordani rige@hotmail.com
-
-// ditet
-Calendar._DN = new Array
-("E Diele",
-"E Hene",
-"E Marte",
-"E Merkure",
-"E Enjte",
-"E Premte",
-"E Shtune",
-"E Diele");
-
-//ditet shkurt
-Calendar._SDN = new Array
-("Die",
-"Hen",
-"Mar",
-"Mer",
-"Enj",
-"Pre",
-"Sht",
-"Die");
-
-// muajt
-Calendar._MN = new Array
-("Janar",
-"Shkurt",
-"Mars",
-"Prill",
-"Maj",
-"Qeshor",
-"Korrik",
-"Gusht",
-"Shtator",
-"Tetor",
-"Nentor",
-"Dhjetor");
-
-// muajte shkurt
-Calendar._SMN = new Array
-("Jan",
-"Shk",
-"Mar",
-"Pri",
-"Maj",
-"Qes",
-"Kor",
-"Gus",
-"Sht",
-"Tet",
-"Nen",
-"Dhj");
-
-// ndihmesa
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Per kalendarin";
-
-Calendar._TT["ABOUT"] =
-"Zgjedhes i ores/dates ne DHTML \n" +
-"\n\n" +"Zgjedhja e Dates:\n" +
-"- Perdor butonat \xab, \xbb per te zgjedhur vitin\n" +
-"- Perdor  butonat" + String.fromCharCode(0x2039) + ", " + 
-String.fromCharCode(0x203a) +
-" per te  zgjedhur muajin\n" +
-"- Mbani shtypur butonin e mousit per nje zgjedje me te shpejte.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Zgjedhja e kohes:\n" +
-"- Kliko tek ndonje nga pjeset e ores per ta rritur ate\n" +
-"- ose kliko me Shift per ta zvogeluar ate\n" +
-"- ose cliko dhe terhiq per zgjedhje me te shpejte.";
-
-Calendar._TT["PREV_YEAR"] = "Viti i shkuar (prit per menune)";
-Calendar._TT["PREV_MONTH"] = "Muaji i shkuar (prit per menune)";
-Calendar._TT["GO_TODAY"] = "Sot";
-Calendar._TT["NEXT_MONTH"] = "Muaji i ardhshem (prit per menune)";
-Calendar._TT["NEXT_YEAR"] = "Viti i ardhshem (prit per menune)";
-Calendar._TT["SEL_DATE"] = "Zgjidh daten";
-Calendar._TT["DRAG_TO_MOVE"] = "Terhiqe per te levizur";
-Calendar._TT["PART_TODAY"] = " (sot)";
-
-// "%s" eshte dita e pare e javes
-// %s do te zevendesohet me emrin e dite
-Calendar._TT["DAY_FIRST"] = "Trego te %s te paren";
-
-
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Mbyll";
-Calendar._TT["TODAY"] = "Sot";
-Calendar._TT["TIME_PART"] = "Kliko me (Shift-)ose terhiqe per te ndryshuar 
-vleren";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "Java";
-Calendar._TT["TIME"] = "Koha:";
-
diff --git a/public_html/includes/libs/jscalendar/lang/calendar-bg.js b/public_html/includes/libs/jscalendar/lang/calendar-bg.js
deleted file mode 100644 (file)
index 5eb73ec..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-// ** I18N\r
-\r
-// Calendar BG language\r
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>\r
-// Translator: Valentin Sheiretsky, <valio@valio.eu.org>\r
-// Encoding: Windows-1251\r
-// Distributed under the same terms as the calendar itself.\r
-\r
-// For translators: please use UTF-8 if possible.  We strongly believe that\r
-// Unicode is the answer to a real internationalized world.  Also please\r
-// include your contact information in the header, as can be seen above.\r
-\r
-// full day names\r
-Calendar._DN = new Array\r
-("Íåäåëÿ",\r
- "Ïîíåäåëíèê",\r
- "Âòîðíèê",\r
- "Ñðÿäà",\r
- "×åòâúðòúê",\r
- "Ïåòúê",\r
- "Ñúáîòà",\r
- "Íåäåëÿ");\r
-\r
-// Please note that the following array of short day names (and the same goes\r
-// for short month names, _SMN) isn't absolutely necessary.  We give it here\r
-// for exemplification on how one can customize the short day names, but if\r
-// they are simply the first N letters of the full name you can simply say:\r
-//\r
-//   Calendar._SDN_len = N; // short day name length\r
-//   Calendar._SMN_len = N; // short month name length\r
-//\r
-// If N = 3 then this is not needed either since we assume a value of 3 if not\r
-// present, to be compatible with translation files that were written before\r
-// this feature.\r
-\r
-// short day names\r
-Calendar._SDN = new Array\r
-("Íåä",\r
- "Ïîí",\r
- "Âòî",\r
- "Ñðÿ",\r
- "×åò",\r
- "Ïåò",\r
- "Ñúá",\r
- "Íåä");\r
-\r
-// full month names\r
-Calendar._MN = new Array\r
-("ßíóàðè",\r
- "Ôåâðóàðè",\r
- "Ìàðò",\r
- "Àïðèë",\r
- "Ìàé",\r
- "Þíè",\r
- "Þëè",\r
- "Àâãóñò",\r
- "Ñåïòåìâðè",\r
- "Îêòîìâðè",\r
- "Íîåìâðè",\r
- "Äåêåìâðè");\r
-\r
-// short month names\r
-Calendar._SMN = new Array\r
-("ßíó",\r
- "Ôåâ",\r
- "Ìàð",\r
- "Àïð",\r
- "Ìàé",\r
- "Þíè",\r
- "Þëè",\r
- "Àâã",\r
- "Ñåï",\r
- "Îêò",\r
- "Íîå",\r
- "Äåê");\r
-\r
-// tooltips\r
-Calendar._TT = {};\r
-Calendar._TT["INFO"] = "Èíôîðìàöèÿ çà êàëåíäàðà";\r
-\r
-Calendar._TT["ABOUT"] =\r
-"DHTML Date/Time Selector\n" +\r
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)\r
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +\r
-"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +\r
-"\n\n" +\r
-"Date selection:\n" +\r
-"- Use the \xab, \xbb buttons to select year\n" +\r
-"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +\r
-"- Hold mouse button on any of the above buttons for faster selection.";\r
-Calendar._TT["ABOUT_TIME"] = "\n\n" +\r
-"Time selection:\n" +\r
-"- Click on any of the time parts to increase it\n" +\r
-"- or Shift-click to decrease it\n" +\r
-"- or click and drag for faster selection.";\r
-\r
-Calendar._TT["PREV_YEAR"] = "Ïðåäíà ãîäèíà (çàäðúæòå çà ìåíþ)";\r
-Calendar._TT["PREV_MONTH"] = "Ïðåäåí ìåñåö (çàäðúæòå çà ìåíþ)";\r
-Calendar._TT["GO_TODAY"] = "Èçáåðåòå äíåñ";\r
-Calendar._TT["NEXT_MONTH"] = "Ñëåäâàù ìåñåö (çàäðúæòå çà ìåíþ)";\r
-Calendar._TT["NEXT_YEAR"] = "Ñëåäâàùà ãîäèíà (çàäðúæòå çà ìåíþ)";\r
-Calendar._TT["SEL_DATE"] = "Èçáåðåòå äàòà";\r
-Calendar._TT["DRAG_TO_MOVE"] = "Ïðåìåñòâàíå";\r
-Calendar._TT["PART_TODAY"] = " (äíåñ)";\r
-\r
-// the following is to inform that "%s" is to be the first day of week\r
-// %s will be replaced with the day name.\r
-Calendar._TT["DAY_FIRST"] = "%s êàòî ïúðâè äåí";\r
-\r
-// This may be locale-dependent.  It specifies the week-end days, as an array\r
-// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1\r
-// means Monday, etc.\r
-Calendar._TT["WEEKEND"] = "0,6";\r
-\r
-Calendar._TT["CLOSE"] = "Çàòâîðåòå";\r
-Calendar._TT["TODAY"] = "Äíåñ";\r
-Calendar._TT["TIME_PART"] = "(Shift-)Click èëè drag çà äà ïðîìåíèòå ñòîéíîñòòà";\r
-\r
-// date formats\r
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";\r
-Calendar._TT["TT_DATE_FORMAT"] = "%A - %e %B %Y";\r
-\r
-Calendar._TT["WK"] = "Ñåäì";\r
-Calendar._TT["TIME"] = "×àñ:";\r
diff --git a/public_html/includes/libs/jscalendar/lang/calendar-big5-utf8.js b/public_html/includes/libs/jscalendar/lang/calendar-big5-utf8.js
deleted file mode 100644 (file)
index 14e0d5d..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar big5-utf8 language
-// Author: Gary Fu, <gary@garyfu.idv.tw>
-// Encoding: utf8
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-       
-// full day names
-Calendar._DN = new Array
-("星期日",
- "星期一",
- "星期二",
- "星期三",
- "星期四",
- "星期五",
- "星期六",
- "星期日");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("日",
- "一",
- "二",
- "三",
- "四",
- "五",
- "六",
- "日");
-
-// full month names
-Calendar._MN = new Array
-("一月",
- "二月",
- "三月",
- "四月",
- "五月",
- "六月",
- "七月",
- "八月",
- "九月",
- "十月",
- "十一月",
- "十二月");
-
-// short month names
-Calendar._SMN = new Array
-("一月",
- "二月",
- "三月",
- "四月",
- "五月",
- "六月",
- "七月",
- "八月",
- "九月",
- "十月",
- "十一月",
- "十二月");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "關於";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"日期選擇方法:\n" +
-"- 使用 \xab, \xbb 按鈕可選擇年份\n" +
-"- 使用 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " 按鈕可選擇月份\n" +
-"- 按住上面的按鈕可以加快選取";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"時間選擇方法:\n" +
-"- 點擊任何的時間部份可增加其值\n" +
-"- 同時按Shift鍵再點擊可減少其值\n" +
-"- 點擊並拖曳可加快改變的值";
-
-Calendar._TT["PREV_YEAR"] = "上一年 (按住選單)";
-Calendar._TT["PREV_MONTH"] = "下一年 (按住選單)";
-Calendar._TT["GO_TODAY"] = "到今日";
-Calendar._TT["NEXT_MONTH"] = "上一月 (按住選單)";
-Calendar._TT["NEXT_YEAR"] = "下一月 (按住選單)";
-Calendar._TT["SEL_DATE"] = "選擇日期";
-Calendar._TT["DRAG_TO_MOVE"] = "拖曳";
-Calendar._TT["PART_TODAY"] = " (今日)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "將 %s 顯示在前";
-
-// This may be locale-dependent.  It specifies the week-end days, as an array
-// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "關閉";
-Calendar._TT["TODAY"] = "今日";
-Calendar._TT["TIME_PART"] = "點擊or拖曳可改變時間(同時按Shift為減)";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "週";
-Calendar._TT["TIME"] = "Time:";
diff --git a/public_html/includes/libs/jscalendar/lang/calendar-big5.js b/public_html/includes/libs/jscalendar/lang/calendar-big5.js
deleted file mode 100644 (file)
index a589358..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar big5 language
-// Author: Gary Fu, <gary@garyfu.idv.tw>
-// Encoding: big5
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-       
-// full day names
-Calendar._DN = new Array
-("¬P´Á¤é",
- "¬P´Á¤@",
- "¬P´Á¤G",
- "¬P´Á¤T",
- "¬P´Á¥|",
- "¬P´Á¤­",
- "¬P´Á¤»",
- "¬P´Á¤é");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("¤é",
- "¤@",
- "¤G",
- "¤T",
- "¥|",
- "¤­",
- "¤»",
- "¤é");
-
-// full month names
-Calendar._MN = new Array
-("¤@¤ë",
- "¤G¤ë",
- "¤T¤ë",
- "¥|¤ë",
- "¤­¤ë",
- "¤»¤ë",
- "¤C¤ë",
- "¤K¤ë",
- "¤E¤ë",
- "¤Q¤ë",
- "¤Q¤@¤ë",
- "¤Q¤G¤ë");
-
-// short month names
-Calendar._SMN = new Array
-("¤@¤ë",
- "¤G¤ë",
- "¤T¤ë",
- "¥|¤ë",
- "¤­¤ë",
- "¤»¤ë",
- "¤C¤ë",
- "¤K¤ë",
- "¤E¤ë",
- "¤Q¤ë",
- "¤Q¤@¤ë",
- "¤Q¤G¤ë");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Ãö©ó";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"¤é´Á¿ï¾Ü¤èªk:\n" +
-"- ¨Ï¥Î \xab, \xbb «ö¶s¥i¿ï¾Ü¦~¥÷\n" +
-"- ¨Ï¥Î " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " «ö¶s¥i¿ï¾Ü¤ë¥÷\n" +
-"- «ö¦í¤W­±ªº«ö¶s¥i¥H¥[§Ö¿ï¨ú";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"®É¶¡¿ï¾Ü¤èªk:\n" +
-"- ÂIÀ»¥ô¦óªº®É¶¡³¡¥÷¥i¼W¥[¨ä­È\n" +
-"- ¦P®É«öShiftÁä¦AÂIÀ»¥i´î¤Ö¨ä­È\n" +
-"- ÂIÀ»¨Ã©ì¦²¥i¥[§Ö§ïÅܪº­È";
-
-Calendar._TT["PREV_YEAR"] = "¤W¤@¦~ («ö¦í¿ï³æ)";
-Calendar._TT["PREV_MONTH"] = "¤U¤@¦~ («ö¦í¿ï³æ)";
-Calendar._TT["GO_TODAY"] = "¨ì¤µ¤é";
-Calendar._TT["NEXT_MONTH"] = "¤W¤@¤ë («ö¦í¿ï³æ)";
-Calendar._TT["NEXT_YEAR"] = "¤U¤@¤ë («ö¦í¿ï³æ)";
-Calendar._TT["SEL_DATE"] = "¿ï¾Ü¤é´Á";
-Calendar._TT["DRAG_TO_MOVE"] = "©ì¦²";
-Calendar._TT["PART_TODAY"] = " (¤µ¤é)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "±N %s Åã¥Ü¦b«e";
-
-// This may be locale-dependent.  It specifies the week-end days, as an array
-// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Ãö³¬";
-Calendar._TT["TODAY"] = "¤µ¤é";
-Calendar._TT["TIME_PART"] = "ÂIÀ»or©ì¦²¥i§ïÅܮɶ¡(¦P®É«öShift¬°´î)";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "¶g";
-Calendar._TT["TIME"] = "Time:";
diff --git a/public_html/includes/libs/jscalendar/lang/calendar-br.js b/public_html/includes/libs/jscalendar/lang/calendar-br.js
deleted file mode 100644 (file)
index bfb0747..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-// ** I18N
-
-// Calendar pt-BR language
-// Author: Fernando Dourado, <fernando.dourado@ig.com.br>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Domingo",
- "Segunda",
- "Terça",
- "Quarta",
- "Quinta",
- "Sexta",
- "Sabádo",
- "Domingo");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-// [No changes using default values]
-
-// full month names
-Calendar._MN = new Array
-("Janeiro",
- "Fevereiro",
- "Março",
- "Abril",
- "Maio",
- "Junho",
- "Julho",
- "Agosto",
- "Setembro",
- "Outubro",
- "Novembro",
- "Dezembro");
-
-// short month names
-// [No changes using default values]
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Sobre o calendário";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Translate to portuguese Brazil (pt-BR) by Fernando Dourado (fernando.dourado@ig.com.br)\n" +
-"Tradução para o português Brasil (pt-BR) por Fernando Dourado (fernando.dourado@ig.com.br)" +
-"\n\n" +
-"Selecionar data:\n" +
-"- Use as teclas \xab, \xbb para selecionar o ano\n" +
-"- Use as teclas " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para selecionar o mês\n" +
-"- Clique e segure com o mouse em qualquer botão para selecionar rapidamente.";
-
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Selecionar hora:\n" +
-"- Clique em qualquer uma das partes da hora para aumentar\n" +
-"- ou Shift-clique para diminuir\n" +
-"- ou clique e arraste para selecionar rapidamente.";
-
-Calendar._TT["PREV_YEAR"] = "Ano anterior (clique e segure para menu)";
-Calendar._TT["PREV_MONTH"] = "Mês anterior (clique e segure para menu)";
-Calendar._TT["GO_TODAY"] = "Ir para a data atual";
-Calendar._TT["NEXT_MONTH"] = "Próximo mês (clique e segure para menu)";
-Calendar._TT["NEXT_YEAR"] = "Próximo ano (clique e segure para menu)";
-Calendar._TT["SEL_DATE"] = "Selecione uma data";
-Calendar._TT["DRAG_TO_MOVE"] = "Clique e segure para mover";
-Calendar._TT["PART_TODAY"] = " (hoje)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Exibir %s primeiro";
-
-// This may be locale-dependent.  It specifies the week-end days, as an array
-// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Fechar";
-Calendar._TT["TODAY"] = "Hoje";
-Calendar._TT["TIME_PART"] = "(Shift-)Clique ou arraste para mudar o valor";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%d de %B de %Y";
-
-Calendar._TT["WK"] = "sem";
-Calendar._TT["TIME"] = "Hora:";
-
diff --git a/public_html/includes/libs/jscalendar/lang/calendar-ca.js b/public_html/includes/libs/jscalendar/lang/calendar-ca.js
deleted file mode 100644 (file)
index a2121bc..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar CA language
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Diumenge",
- "Dilluns",
- "Dimarts",
- "Dimecres",
- "Dijous",
- "Divendres",
- "Dissabte",
- "Diumenge");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Diu",
- "Dil",
- "Dmt",
- "Dmc",
- "Dij",
- "Div",
- "Dis",
- "Diu");
-
-// full month names
-Calendar._MN = new Array
-("Gener",
- "Febrer",
- "Març",
- "Abril",
- "Maig",
- "Juny",
- "Juliol",
- "Agost",
- "Setembre",
- "Octubre",
- "Novembre",
- "Desembre");
-
-// short month names
-Calendar._SMN = new Array
-("Gen",
- "Feb",
- "Mar",
- "Abr",
- "Mai",
- "Jun",
- "Jul",
- "Ago",
- "Set",
- "Oct",
- "Nov",
- "Des");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Sobre el calendari";
-
-Calendar._TT["ABOUT"] =
-"DHTML Selector de Data/Hora\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Sel.lecció de Dates:\n" +
-"- Fes servir els botons \xab, \xbb per sel.leccionar l'any\n" +
-"- Fes servir els botons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per se.lecciconar el mes\n" +
-"- Manté el ratolí apretat en qualsevol dels anteriors per sel.lecció ràpida.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Time selection:\n" +
-"- claca en qualsevol de les parts de la hora per augmentar-les\n" +
-"- o Shift-click per decrementar-la\n" +
-"- or click and arrastra per sel.lecció ràpida.";
-
-Calendar._TT["PREV_YEAR"] = "Any anterior (Mantenir per menu)";
-Calendar._TT["PREV_MONTH"] = "Mes anterior (Mantenir per menu)";
-Calendar._TT["GO_TODAY"] = "Anar a avui";
-Calendar._TT["NEXT_MONTH"] = "Mes següent (Mantenir per menu)";
-Calendar._TT["NEXT_YEAR"] = "Any següent (Mantenir per menu)";
-Calendar._TT["SEL_DATE"] = "Sel.leccionar data";
-Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar per moure";
-Calendar._TT["PART_TODAY"] = " (avui)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Mostra %s primer";
-
-// This may be locale-dependent.  It specifies the week-end days, as an array
-// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Tanca";
-Calendar._TT["TODAY"] = "Avui";
-Calendar._TT["TIME_PART"] = "(Shift-)Click a arrastra per canviar el valor";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "st";
-Calendar._TT["TIME"] = "Hora:";
diff --git a/public_html/includes/libs/jscalendar/lang/calendar-cs-utf8.js b/public_html/includes/libs/jscalendar/lang/calendar-cs-utf8.js
deleted file mode 100644 (file)
index f6bbbeb..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/* 
-       calendar-cs-win.js
-       language: Czech
-       encoding: windows-1250
-       author: Lubos Jerabek (xnet@seznam.cz)
-               Jan Uhlir (espinosa@centrum.cz)
-*/
-
-// ** I18N
-Calendar._DN  = new Array('Neděle','Pondělí','Úterý','Středa','Čtvrtek','Pátek','Sobota','Neděle');
-Calendar._SDN = new Array('Ne','Po','Út','St','Čt','Pá','So','Ne');
-Calendar._MN  = new Array('Leden','Únor','Březen','Duben','Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec');
-Calendar._SMN = new Array('Led','Úno','Bře','Dub','Kvě','Črv','Čvc','Srp','Zář','Říj','Lis','Pro');
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "O komponentě kalendář";
-Calendar._TT["TOGGLE"] = "Změna prvního dne v týdnu";
-Calendar._TT["PREV_YEAR"] = "Předchozí rok (přidrž pro menu)";
-Calendar._TT["PREV_MONTH"] = "Předchozí měsíc (přidrž pro menu)";
-Calendar._TT["GO_TODAY"] = "Dnešní datum";
-Calendar._TT["NEXT_MONTH"] = "Další měsíc (přidrž pro menu)";
-Calendar._TT["NEXT_YEAR"] = "Další rok (přidrž pro menu)";
-Calendar._TT["SEL_DATE"] = "Vyber datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Chyť a táhni, pro přesun";
-Calendar._TT["PART_TODAY"] = " (dnes)";
-Calendar._TT["MON_FIRST"] = "Ukaž jako první Pondělí";
-//Calendar._TT["SUN_FIRST"] = "Ukaž jako první Neděli";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Výběr datumu:\n" +
-"- Use the \xab, \xbb buttons to select year\n" +
-"- Použijte tlačítka " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " k výběru měsíce\n" +
-"- Podržte tlačítko myši na jakémkoliv z těch tlačítek pro rychlejší výběr.";
-
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Výběr času:\n" +
-"- Klikněte na jakoukoliv z částí výběru času pro zvýšení.\n" +
-"- nebo Shift-click pro snížení\n" +
-"- nebo klikněte a táhněte pro rychlejší výběr.";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Zobraz %s první";
-
-// This may be locale-dependent.  It specifies the week-end days, as an array
-// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Zavřít";
-Calendar._TT["TODAY"] = "Dnes";
-Calendar._TT["TIME_PART"] = "(Shift-)Klikni nebo táhni pro změnu hodnoty";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "wk";
-Calendar._TT["TIME"] = "Čas:";
diff --git a/public_html/includes/libs/jscalendar/lang/calendar-cs-win.js b/public_html/includes/libs/jscalendar/lang/calendar-cs-win.js
deleted file mode 100644 (file)
index 140dff3..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/* 
-       calendar-cs-win.js
-       language: Czech
-       encoding: windows-1250
-       author: Lubos Jerabek (xnet@seznam.cz)
-               Jan Uhlir (espinosa@centrum.cz)
-*/
-
-// ** I18N
-Calendar._DN  = new Array('Nedìle','Pondìlí','Úterý','Støeda','Ètvrtek','Pátek','Sobota','Nedìle');
-Calendar._SDN = new Array('Ne','Po','Út','St','Èt','Pá','So','Ne');
-Calendar._MN  = new Array('Leden','Únor','Bøezen','Duben','Kvìten','Èerven','Èervenec','Srpen','Záøí','Øíjen','Listopad','Prosinec');
-Calendar._SMN = new Array('Led','Úno','Bøe','Dub','Kvì','Èrv','Èvc','Srp','Záø','Øíj','Lis','Pro');
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "O komponentì kalendáø";
-Calendar._TT["TOGGLE"] = "Zmìna prvního dne v týdnu";
-Calendar._TT["PREV_YEAR"] = "Pøedchozí rok (pøidr\9e pro menu)";
-Calendar._TT["PREV_MONTH"] = "Pøedchozí mìsíc (pøidr\9e pro menu)";
-Calendar._TT["GO_TODAY"] = "Dne\9aní datum";
-Calendar._TT["NEXT_MONTH"] = "Dal\9aí mìsíc (pøidr\9e pro menu)";
-Calendar._TT["NEXT_YEAR"] = "Dal\9aí rok (pøidr\9e pro menu)";
-Calendar._TT["SEL_DATE"] = "Vyber datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Chy\9d a táhni, pro pøesun";
-Calendar._TT["PART_TODAY"] = " (dnes)";
-Calendar._TT["MON_FIRST"] = "Uka\9e jako první Pondìlí";
-//Calendar._TT["SUN_FIRST"] = "Uka\9e jako první Nedìli";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Výbìr datumu:\n" +
-"- Use the \xab, \xbb buttons to select year\n" +
-"- Pou\9eijte tlaèítka " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " k výbìru mìsíce\n" +
-"- Podr\9ete tlaèítko my\9ai na jakémkoliv z tìch tlaèítek pro rychlej\9aí výbìr.";
-
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Výbìr èasu:\n" +
-"- Kliknìte na jakoukoliv z èástí výbìru èasu pro zvý\9aení.\n" +
-"- nebo Shift-click pro sní\9eení\n" +
-"- nebo kliknìte a táhnìte pro rychlej\9aí výbìr.";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Zobraz %s první";
-
-// This may be locale-dependent.  It specifies the week-end days, as an array
-// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Zavøít";
-Calendar._TT["TODAY"] = "Dnes";
-Calendar._TT["TIME_PART"] = "(Shift-)Klikni nebo táhni pro zmìnu hodnoty";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "wk";
-Calendar._TT["TIME"] = "Èas:";
diff --git a/public_html/includes/libs/jscalendar/lang/calendar-da.js b/public_html/includes/libs/jscalendar/lang/calendar-da.js
deleted file mode 100644 (file)
index a99b598..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar DA language
-// Author: Michael Thingmand Henriksen, <michael (a) thingmand dot dk>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Søndag",
-"Mandag",
-"Tirsdag",
-"Onsdag",
-"Torsdag",
-"Fredag",
-"Lørdag",
-"Søndag");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Søn",
-"Man",
-"Tir",
-"Ons",
-"Tor",
-"Fre",
-"Lør",
-"Søn");
-
-// full month names
-Calendar._MN = new Array
-("Januar",
-"Februar",
-"Marts",
-"April",
-"Maj",
-"Juni",
-"Juli",
-"August",
-"September",
-"Oktober",
-"November",
-"December");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
-"Feb",
-"Mar",
-"Apr",
-"Maj",
-"Jun",
-"Jul",
-"Aug",
-"Sep",
-"Okt",
-"Nov",
-"Dec");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Om Kalenderen";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For den seneste version besøg: http://www.dynarch.com/projects/calendar/\n"; +
-"Distribueret under GNU LGPL. Se http://gnu.org/licenses/lgpl.html for detajler." +
-"\n\n" +
-"Valg af dato:\n" +
-"- Brug \xab, \xbb knapperne for at vælge år\n" +
-"- Brug " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knapperne for at vælge måned\n" +
-"- Hold knappen på musen nede på knapperne ovenfor for hurtigere valg.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Valg af tid:\n" +
-"- Klik på en vilkårlig del for større værdi\n" +
-"- eller Shift-klik for for mindre værdi\n" +
-"- eller klik og træk for hurtigere valg.";
-
-Calendar._TT["PREV_YEAR"] = "Ét år tilbage (hold for menu)";
-Calendar._TT["PREV_MONTH"] = "Én måned tilbage (hold for menu)";
-Calendar._TT["GO_TODAY"] = "Gå til i dag";
-Calendar._TT["NEXT_MONTH"] = "Én måned frem (hold for menu)";
-Calendar._TT["NEXT_YEAR"] = "Ét år frem (hold for menu)";
-Calendar._TT["SEL_DATE"] = "Vælg dag";
-Calendar._TT["DRAG_TO_MOVE"] = "Træk vinduet";
-Calendar._TT["PART_TODAY"] = " (i dag)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Vis %s først";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Luk";
-Calendar._TT["TODAY"] = "I dag";
-Calendar._TT["TIME_PART"] = "(Shift-)klik eller træk for at ændre værdi";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "Uge";
-Calendar._TT["TIME"] = "Tid:";
diff --git a/public_html/includes/libs/jscalendar/lang/calendar-de.js b/public_html/includes/libs/jscalendar/lang/calendar-de.js
deleted file mode 100644 (file)
index 4bc1137..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-// ** I18N
-
-// Calendar DE language
-// Author: Jack (tR), <jack@jtr.de>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Sonntag",
- "Montag",
- "Dienstag",
- "Mittwoch",
- "Donnerstag",
- "Freitag",
- "Samstag",
- "Sonntag");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("So",
- "Mo",
- "Di",
- "Mi",
- "Do",
- "Fr",
- "Sa",
- "So");
-
-// full month names
-Calendar._MN = new Array
-("Januar",
- "Februar",
- "M\u00e4rz",
- "April",
- "Mai",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "Dezember");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Feb",
- "M\u00e4r",
- "Apr",
- "May",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Dez");
-
-// tooltips
-Calend