From 52892f11cf8a78b5663171714763a174d0a4e562 Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Fri, 10 Apr 2020 11:51:27 +0200
Subject: [PATCH] FEAT #13670 TIME 1 clean files apps/maarch_entreprise

---
 apps/maarch_entreprise/actions/docLocker.php  |  156 -
 apps/maarch_entreprise/css/bootstrapTree.css  |  102 -
 apps/maarch_entreprise/css/chosen.min.css     |   36 -
 .../font-awesome-maarch/css/font-maarch.css   |  383 -
 .../font-awesome-maarch/fonts/FontMaarch.otf  |  Bin 26896 -> 0 bytes
 .../fonts/fontmaarch-webfont.eot              |  Bin 25968 -> 0 bytes
 .../fonts/fontmaarch-webfont.svg              |  439 -
 .../fonts/fontmaarch-webfont.ttf              |  Bin 30416 -> 0 bytes
 .../fonts/fontmaarch-webfont.woff             |  Bin 18376 -> 0 bytes
 .../fonts/fontmaarch-webfont.woff2            |  Bin 12920 -> 0 bytes
 .../css/photoswipe_custom.css                 |    3 -
 apps/maarch_entreprise/css/styles.css         | 3435 --------
 .../definition_mail_categories.php            |  809 --
 .../indexing_searching/manage_query.php       |  116 -
 .../indexing_searching/multiLink.php          |   66 -
 .../indexing_searching/search_adv_error.php   |   98 -
 .../indexing_searching/view_resource.php      |   41 -
 .../view_resource_controler.php               |  281 -
 .../indexing_searching/watermark.php          |  181 -
 apps/maarch_entreprise/js/angularFunctions.js |  213 -
 apps/maarch_entreprise/js/bootstrap-tree.js   |   95 -
 apps/maarch_entreprise/js/controls.js         | 1307 ---
 apps/maarch_entreprise/js/effects.js          | 1123 ---
 apps/maarch_entreprise/js/functions.js        | 2396 ------
 apps/maarch_entreprise/js/indexing.js         |  119 -
 apps/maarch_entreprise/js/prototype.js        | 7588 -----------------
 apps/maarch_entreprise/js/scriptaculous.js    |   68 -
 apps/maarch_entreprise/login.php              |  183 -
 apps/maarch_entreprise/logout.php             |  117 -
 apps/maarch_entreprise/merged_css.php         |   70 -
 apps/maarch_entreprise/merged_js.php          |   21 -
 apps/maarch_entreprise/merged_jsAbstract.php  |  100 -
 apps/maarch_entreprise/reopen.php             |   56 -
 apps/maarch_entreprise/static.php             |   98 -
 .../template/documents_list_attachments.html  |  248 -
 .../documents_list_attachments_simple.html    |  215 -
 .../template/documents_list_search_adv.html   |  194 -
 apps/maarch_entreprise/template/header.html   |   45 -
 .../template/history_list_diff.html           |   95 -
 apps/maarch_entreprise/welcome.php            |   51 -
 40 files changed, 20548 deletions(-)
 delete mode 100755 apps/maarch_entreprise/actions/docLocker.php
 delete mode 100755 apps/maarch_entreprise/css/bootstrapTree.css
 delete mode 100755 apps/maarch_entreprise/css/chosen.min.css
 delete mode 100755 apps/maarch_entreprise/css/font-awesome-maarch/css/font-maarch.css
 delete mode 100755 apps/maarch_entreprise/css/font-awesome-maarch/fonts/FontMaarch.otf
 delete mode 100755 apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.eot
 delete mode 100755 apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.svg
 delete mode 100755 apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.ttf
 delete mode 100755 apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.woff
 delete mode 100755 apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.woff2
 delete mode 100755 apps/maarch_entreprise/css/photoswipe_custom.css
 delete mode 100755 apps/maarch_entreprise/css/styles.css
 delete mode 100755 apps/maarch_entreprise/definition_mail_categories.php
 delete mode 100755 apps/maarch_entreprise/indexing_searching/manage_query.php
 delete mode 100755 apps/maarch_entreprise/indexing_searching/multiLink.php
 delete mode 100755 apps/maarch_entreprise/indexing_searching/search_adv_error.php
 delete mode 100755 apps/maarch_entreprise/indexing_searching/view_resource.php
 delete mode 100755 apps/maarch_entreprise/indexing_searching/view_resource_controler.php
 delete mode 100755 apps/maarch_entreprise/indexing_searching/watermark.php
 delete mode 100755 apps/maarch_entreprise/js/angularFunctions.js
 delete mode 100755 apps/maarch_entreprise/js/bootstrap-tree.js
 delete mode 100755 apps/maarch_entreprise/js/controls.js
 delete mode 100755 apps/maarch_entreprise/js/effects.js
 delete mode 100755 apps/maarch_entreprise/js/functions.js
 delete mode 100755 apps/maarch_entreprise/js/indexing.js
 delete mode 100755 apps/maarch_entreprise/js/prototype.js
 delete mode 100755 apps/maarch_entreprise/js/scriptaculous.js
 delete mode 100755 apps/maarch_entreprise/login.php
 delete mode 100755 apps/maarch_entreprise/logout.php
 delete mode 100755 apps/maarch_entreprise/merged_css.php
 delete mode 100755 apps/maarch_entreprise/merged_js.php
 delete mode 100755 apps/maarch_entreprise/merged_jsAbstract.php
 delete mode 100755 apps/maarch_entreprise/reopen.php
 delete mode 100755 apps/maarch_entreprise/static.php
 delete mode 100755 apps/maarch_entreprise/template/documents_list_attachments.html
 delete mode 100755 apps/maarch_entreprise/template/documents_list_attachments_simple.html
 delete mode 100755 apps/maarch_entreprise/template/documents_list_search_adv.html
 delete mode 100755 apps/maarch_entreprise/template/header.html
 delete mode 100755 apps/maarch_entreprise/template/history_list_diff.html
 delete mode 100755 apps/maarch_entreprise/welcome.php

diff --git a/apps/maarch_entreprise/actions/docLocker.php b/apps/maarch_entreprise/actions/docLocker.php
deleted file mode 100755
index 8e26606b0b5..00000000000
--- a/apps/maarch_entreprise/actions/docLocker.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-
-if ($_REQUEST['AJAX_CALL'] && $_REQUEST['res_id']) {
-    $res_id = $_REQUEST['res_id'];
-    $user_id = ($_REQUEST['user_id']) ? $_REQUEST['user_id'] : false;
-    $table = ($_REQUEST['table']) ? $_REQUEST['table'] : false;
-    $coll_id = ($_REQUEST['coll_id']) ? $_REQUEST['coll_id'] : false;
-
-    $docLocker = new docLocker($res_id, $user_id, $table, $coll_id);
-
-    if ($_REQUEST['lock'])
-        $docLocker->lock();
-    else if ($_REQUEST['unlock'])
-        $docLocker->unlock();
-    else if ($_REQUEST['isLock']) {
-        echo json_encode($docLocker->isLock());
-    }
-}
-
-class docLocker
-{
-    private $res_id  = null;
-    private $user_id = null;
-    private $table   = null;
-    private $coll_id = null;
-
-    public function __construct($res_id, $user_id = false, $table = false, $coll_id = false)
-    {
-        // set properties
-        $this->res_id  = $res_id;
-        $this->user_id = ($user_id) ? $user_id : $_SESSION['user']['UserId'];
-        $this->table   = ($table) ? $table : 'res_letterbox';
-        $this->coll_id = ($coll_id) ? $coll_id : 'letterbox_coll';
-
-        // require
-        $corePath         = $_SESSION['config']['corepath'];
-        $appId            = $_SESSION['config']['app_id'];
-        $customOverrideId = $_SESSION['custom_override_id'];
-
-    }
-
-    public function canOpen()
-    {
-        if (!$this->checkProperties()) return false;
-        if ($this->isLocked() && $this->userLock() != $this->user_id) {
-            $userlock_id = $this->userLock();
-
-            $db = new Database();
-            $stmt = $db->query("SELECT firstname, lastname FROM users WHERE user_id = ?", array($userlock_id));
-            $userLock_info = $stmt->fetchObject();           
-            $_SESSION['userLock'] = $userLock_info->firstname .' '. $userLock_info->lastname;
-
-            return false;
-        }
-
-        return true;
-    }
-
-    public function isLock()
-    {
-        $currentUser = \User\models\UserModel::getByLogin(['login' => $_SESSION['user']['UserId'], 'select' => ['id']]);
-        $resource = \Resource\models\ResModel::getById(['resId' => $this->res_id, 'select' => ['locker_user_id', 'locker_time']]);
-
-        $lock = true;
-        if (empty($resource['locker_user_id'] || empty($resource['locker_time']))) {
-            $lock = false;
-        } elseif ($resource['locker_user_id'] == $currentUser['id']) {
-            $lock = false;
-        } elseif (strtotime($resource['locker_time']) < time()) {
-            $lock = false;
-        }
-
-        $lockBy = '';
-        if ($lock) {
-            $lockBy = \User\models\UserModel::getLabelledUserById(['id' => $resource['locker_user_id']]);
-        }
-
-        return ['lock' => $lock, 'lockBy' => $lockBy];
-    }
-
-    public function lock()
-    {
-        if (!$this->checkProperties())
-            return false;
-
-        $query = "UPDATE res_letterbox SET locker_user_id = ?, locker_time = current_timestamp + interval '1' MINUTE WHERE res_id = ?";
-
-        $user = \User\models\UserModel::getByLogin(['login' => $this->user_id, 'select' => ['id']]);
-
-        $arrayPDO = array($user['id'], $this->res_id);
-
-        $db = new Database();
-        $db->query($query, $arrayPDO);
-
-        return true;
-    }
-
-    public function unlock()
-    {
-        if (!$this->checkProperties())
-            return false;
-
-        \Resource\models\ResModel::update([
-            'set'   => ['locker_user_id' => null, 'locker_time' => null],
-            'where' => ['res_id = ?'],
-            'data'  => [$this->res_id]
-        ]);
-
-        return true;
-    }
-
-    private function checkProperties()
-    {
-        if (is_null($this->res_id))  return false;
-        if (is_null($this->user_id)) return false;
-        if (is_null($this->table))   return false;
-        if (is_null($this->coll_id)) return false;
-
-        return true;
-    }
-
-    private function isLocked()
-    {
-        $query = "SELECT ";
-            $query .= "1 ";
-        $query .= "FROM ";
-            $query .= $this->table . " ";
-        $query .= "WHERE ";
-                $query .= "res_id = ? ";
-            $query .= "AND ";
-                $query .= "locker_time > current_timestamp";
-
-        $arrayPDO = array($this->res_id);
-
-        $db = new Database();
-        $stmt = $db->query($query, $arrayPDO);
-
-        if ($stmt->rowCount() > 0)
-                return true; 
-
-        return false;
-    }
-
-    private function userLock()
-    {
-        $resource = \Resource\models\ResModel::getById(['resId' => $this->res_id, 'select' => ['locker_user_id']]);
-
-        if (empty($resource['locker_user_id'])) {
-            return '';
-        }
-
-        $user = \User\models\UserModel::getById(['id' => $resource['locker_user_id'], 'select' => ['user_id']]);
-
-        return $user['user_id'];
-    }
-}
\ No newline at end of file
diff --git a/apps/maarch_entreprise/css/bootstrapTree.css b/apps/maarch_entreprise/css/bootstrapTree.css
deleted file mode 100755
index f391826c240..00000000000
--- a/apps/maarch_entreprise/css/bootstrapTree.css
+++ /dev/null
@@ -1,102 +0,0 @@
-
-.tree {
-    min-height:20px;
-    margin-bottom:20px;
-}
-.tree > ul {
-    padding-left:2px; 
-}
-
-.tree li {
-    list-style-type:none;
-    margin:0;
-    padding:10px 0px 0 37px;
-    position:relative
-}
-.tree li::before, .tree li::after {
-    content:'';
-    left:14px;
-    position:absolute;
-    right:auto
-}
-.tree li::before {
-    border-left:1px solid #999;
-    bottom:50px;
-    height:100%;
-    top:0;
-    width:1px
-}
-.tree li::after {
-    border-top:1px solid #999;
-    height:20px;
-    top:25px;
-    width:25px
-}
-.tree .dropdown-menu li::before {
-    border-left:none;
-}
-.tree .dropdown-menu li::after {
-    border-top:none;
-}
-.tree button, .tree button::hover{
-    background-color: none;
-    border: none;
-}
-.tree li span {
-    -moz-border-radius:5px;
-    -webkit-border-radius:5px;
-    border:1px solid #dadada;
-    border-radius:5px;
-    display:inline-block;
-    padding:3px 5px;
-    text-decoration:none;
-    max-width : 440px;
-}
-
-.tree li span .icon {
-    width: 10px;
-    height: 10px;
-    padding:0 5px;
-    border: none;
-}
-
-.tree li.parent_li i {
-    cursor:pointer;
-    padding-right:5px;
-}
-.tree>ul>li::before, .tree>ul>li::after {
-    border:0
-}
-.tree li:last-child::before {
-    height:30px
-}
-/*.tree li.parent_li>span:hover, .tree li.parent_li>span:hover+ul li span {
-    background:#eee;
-    border:1px solid #94a0b4;
-    color:#000
-}*/
-
-.tree .parent_li .node {
-    background-color: #3d80ab ;
-}
-
-
-.tree .root{
-    color: white;
-    background-color: #45a469;
-    padding: 8px 8px;
-}
-
-.tree .node, .tree .node span{
-    color: white;
-    background-color: #3d80ab;
-}
-
-.tree .user, .tree .user span{
-    color: white;
-    background-color: #52b7d4;
-}
-
-.tree .node a, .tree .root a, .tree .user a{
-    color: white;
-}
diff --git a/apps/maarch_entreprise/css/chosen.min.css b/apps/maarch_entreprise/css/chosen.min.css
deleted file mode 100755
index cb409d7ba80..00000000000
--- a/apps/maarch_entreprise/css/chosen.min.css
+++ /dev/null
@@ -1,36 +0,0 @@
-/*!
-Chosen, a Select Box Enhancer for jQuery and Prototype
-by Patrick Filler for Harvest, http://getharvest.com
-
-Version 1.8.7
-Full source at https://github.com/harvesthq/chosen
-Copyright (c) 2011-2018 Harvest http://getharvest.com
-
-MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
-This file is generated by `grunt build`, do not edit it by hand.
-*/
-
-.chosen-container {
-    font-size: 10px;
-    text-align: left;
-}
-
-.chosen-container-single .chosen-single abbr {
-    background: url("../../node_modules/chosen-js/chosen-sprite.png") -42px 1px no-repeat;
-}
-
-.chosen-container-single .chosen-single div b {
-    background: url("../../node_modules/chosen-js/chosen-sprite.png") no-repeat 0px 2px;
-}
-
-.chosen-container-single .chosen-search input[type="text"] {
-    background: url("../../node_modules/chosen-js/chosen-sprite.png") no-repeat 100% -20px;
-}
-
-.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
-    background: url("../../node_modules/chosen-js/chosen-sprite.png") -42px 1px no-repeat;
-}
-
-.chosen-rtl .chosen-search input[type="text"] {
-    background: url("../../node_modules/chosen-js/chosen-sprite.png") no-repeat -30px -20px;
-}
diff --git a/apps/maarch_entreprise/css/font-awesome-maarch/css/font-maarch.css b/apps/maarch_entreprise/css/font-awesome-maarch/css/font-maarch.css
deleted file mode 100755
index 37857135e3d..00000000000
--- a/apps/maarch_entreprise/css/font-awesome-maarch/css/font-maarch.css
+++ /dev/null
@@ -1,383 +0,0 @@
-/*!
- *  Font Maarch 4.3.0 by @davegandy - http://fontmaarch.io - @fontmaarch
- *  License - http://fontmaarch.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-/* FONT PATH
- * -------------------------- */
-@font-face {
-  font-family: 'FontMaarch';
-  src: url('../fonts/fontmaarch-webfont.eot?v=4.3.0');
-  src: url('../fonts/fontmaarch-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontmaarch-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontmaarch-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontmaarch-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontmaarch-webfont.svg?v=4.3.0#fontmaarchregular') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-.fm {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontMaarch;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  transform: translate(0, 0);
-}
-
-/* makes the font 33% larger relative to the icon container */
-.fm-lg {
-  font-size: 1.33333333em;
-  line-height: 0.75em;
-  vertical-align: -15%;
-}
-.fm-2x {
-  font-size: 2em;
-}
-.fm-3x {
-  font-size: 3em;
-}
-.fm-4x {
-  font-size: 4em;
-}
-.fm-5x {
-  font-size: 5em;
-}
-.fm-fw {
-  width: 1.28571429em;
-  text-align: center;
-}
-.fm-ul {
-  padding-left: 0;
-  margin-left: 2.14285714em;
-  list-style-type: none;
-}
-.fm-ul > li {
-  position: relative;
-}
-.fm-li {
-  position: absolute;
-  left: -2.14285714em;
-  width: 2.14285714em;
-  top: 0.14285714em;
-  text-align: center;
-}
-.fm-li.fm-lg {
-  left: -1.85714286em;
-}
-.fm-border {
-  padding: .2em .25em .15em;
-  border: solid 0.08em #eeeeee;
-  border-radius: .1em;
-}
-.pull-right {
-  float: right;
-}
-.pull-left {
-  float: left;
-}
-.fm.pull-left {
-  margin-right: .3em;
-}
-.fm.pull-right {
-  margin-left: .3em;
-}
-.fm-spin {
-  -webkit-animation: fa-spin 2s infinite linear;
-  animation: fa-spin 2s infinite linear;
-}
-.fm-pulse {
-  -webkit-animation: fa-spin 1s infinite steps(8);
-  animation: fa-spin 1s infinite steps(8);
-}
-@-webkit-keyframes fa-spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg);
-  }
-  100% {
-    -webkit-transform: rotate(359deg);
-    transform: rotate(359deg);
-  }
-}
-@keyframes fa-spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg);
-  }
-  100% {
-    -webkit-transform: rotate(359deg);
-    transform: rotate(359deg);
-  }
-}
-.fm-rotate-90 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-  -webkit-transform: rotate(90deg);
-  -ms-transform: rotate(90deg);
-  transform: rotate(90deg);
-}
-.fm-rotate-180 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-  -webkit-transform: rotate(180deg);
-  -ms-transform: rotate(180deg);
-  transform: rotate(180deg);
-}
-.fm-rotate-270 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-  -webkit-transform: rotate(270deg);
-  -ms-transform: rotate(270deg);
-  transform: rotate(270deg);
-}
-.fm-flip-horizontal {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-  -webkit-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, 1);
-}
-.fm-flip-vertical {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-  -webkit-transform: scale(1, -1);
-  -ms-transform: scale(1, -1);
-  transform: scale(1, -1);
-}
-:root .fm-rotate-90,
-:root .fm-rotate-180,
-:root .fm-rotate-270,
-:root .fm-flip-horizontal,
-:root .fm-flip-vertical {
-  filter: none;
-}
-.fm-stack {
-  position: relative;
-  display: inline-block;
-  width: 2em;
-  height: 2em;
-  line-height: 2em;
-  vertical-align: middle;
-}
-.fm-stack-1x,
-.fm-stack-2x {
-  position: absolute;
-  left: 0;
-  width: 100%;
-  text-align: center;
-}
-.fm-stack-1x {
-  line-height: inherit;
-}
-.fm-stack-2x {
-  font-size: 2em;
-}
-.fm-inverse {
-  color: #ffffff;
-}
-/* Font Maarch uses the Unicode Private Use Area (PUA) to ensure screen
-   readers do not read off random characters that represent icons */
-
-.fm-contact:before {
-  content: "\f000";
-}
-.fm-contact-add:before {
-  content: "\f001";
-}
-.fm-contact-search:before {
-  content: "\f002";
-}
-.fm-contact-type:before {
-  content: "\f003";
-}
-.fm-contact-denomination:before {
-  content: "\f004";
-}
-.fm-tree:before {
-  content: "\f005";
-}
-.fm-classification-plan:before {
-  content: "\f006";
-}
-.fm-classification-plan-l1:before {
-  content: "\f007";
-}
-.fm-classification-plan-l2:before {
-  content: "\f008";
-}
-.fm-doctypes:before {
-  content: "\f009";
-}
-.fm-status:before {
-  content: "\f00a";
-}
-.fm-actions:before {
-  content: "\f00b";
-}
-.fm-letter-reopen:before {
-  content: "\f00c";
-}
-.fm-docserver:before {
-  content: "\f00d";
-}
-.fm-docserver-location:before {
-  content: "\f00e";
-}
-.fm-docserver-type:before {
-  content: "\f010";
-}
-.fm-letter:before {
-  content: "\f011";
-}
-.fm-letter-add:before {
-  content: "\f012";
-}
-.fm-letter-search:before {
-  content: "\f013";
-}
-.fm-letter-del:before {
-  content: "\f014";
-}
-.fm-letter-incoming:before {
-  content: "\f015";
-}
-.fm-letter-outgoing:before {
-  content: "\f016";
-}
-.fm-letter-internal:before {
-  content: "\f017";
-}
-.fm-letter-status-new:before {
-  content: "\f018";
-}
-.fm-letter-status-wait:before {
-  content: "\f019";
-}
-.fm-letter-status-inprogress:before {
-  content: "\f01a";
-}
-.fm-letter-status-validated:before {
-  content: "\f01b";
-}
-.fm-letter-status-rejected:before {
-  content: "\f01c";
-}
-.fm-letter-status-end:before {
-  content: "\f01d";
-}
-.fm-letter-status-newmail:before {
-  content: "\f01e";
-}
-.fm-letter-status-info:before {
-  content: "\f021";
-}
-.fm-letter-status-attr:before {
-  content: "\f022";
-}
-.fm-letter-status-arev:before {
-  content: "\f023";
-}
-.fm-letter-status-aval:before {
-  content: "\f024";
-}
-.fm-letter-status-aimp:before {
-  content: "\f025";
-}
-.fm-letter-status-imp:before {
-  content: "\f026";
-}
-.fm-letter-status-aenv:before {
-  content: "\f027";
-}
-.fm-letter-status-acla:before {
-  content: "\f028";
-}
-.fm-letter-status-aarch:before {
-  content: "\f029";
-}
-.fm-doc:before {
-  content: "\f02a";
-}
-.fm-doc-add:before {
-  content: "\f02b";
-}
-.fm-doc-search:before {
-  content: "\f02c";
-}
-.fm-doc-del:before {
-  content: "\f02d";
-}
-.fm-archive:before {
-  content: "\f02e";
-}
-.fm-archive-add:before {
-  content: "\f02f";
-}
-.fm-archive-search:before {
-  content: "\f030";
-}
-.fm-archive-del:before {
-  content: "\f031";
-}
-.fm-file-size:before {
-  content: "\f032";
-}
-.fm-file-format:before {
-  content: "\f032";
-}
-.fm-file-fingerprint:before {
-  content: "\f033";
-}
-.fm-folder-type:before {
-  content: "\f034";
-}
-.fm-folder-add:before {
-  content: "\f035";
-}
-.fm-folder-search:before {
-  content: "\f036";
-}
-.fm-folder-view:before {
-  content: "\f037";
-}
-.fm-life-cycle-policy:before {
-  content: "\f038";
-}
-.fm-life-cycle:before {
-  content: "\f039";
-}
-.fm-life-cycle-step:before {
-  content: "\f03a";
-}
-.fm-file-model:before {
-  content: "\f03b"	; 
-} 
-.lds-ring {
-  display: inline-block;
-  position: absolute;
-  width: 64px;
-  height: 64px;
-  margin-top: -60px;
-}
-.lds-ring div {
-  box-sizing: border-box;
-  display: block;
-  position: absolute;
-  width: 51px;
-  height: 51px;
-  margin: 6px;
-  border: 6px solid #135f7f;
-  border-radius: 50%;
-  animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
-  border-color: #135f7f transparent transparent transparent;
-}
-.lds-ring div:nth-child(1) {
-  animation-delay: -0.45s;
-}
-.lds-ring div:nth-child(2) {
-  animation-delay: -0.3s;
-}
-.lds-ring div:nth-child(3) {
-  animation-delay: -0.15s;
-}
-@keyframes lds-ring {
-  0% {
-    transform: rotate(0deg);
-  }
-  100% {
-    transform: rotate(360deg);
-  }
-}
-
diff --git a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/FontMaarch.otf b/apps/maarch_entreprise/css/font-awesome-maarch/fonts/FontMaarch.otf
deleted file mode 100755
index 6aa2a35f93565057f12123113744d4a4f0b1d9a9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 26896
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

diff --git a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.eot b/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.eot
deleted file mode 100755
index dc16334d37267a9c63c6e295b3cb59d1648e5b60..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 25968
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

diff --git a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.svg b/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.svg
deleted file mode 100755
index 31279bb3bcc..00000000000
--- a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.svg
+++ /dev/null
@@ -1,439 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
-<metadata>
-Created by FontForge 20150318 at Fri Apr 24 18:53:58 2015
- By uniteet7
-Copyright Dave Gandy 2015. All rights reserved.
-</metadata>
-<defs>
-<font id="FontMaarch" horiz-adv-x="1536" >
-  <font-face 
-    font-family="FontMaarch"
-    font-weight="400"
-    font-stretch="normal"
-    units-per-em="1792"
-    panose-1="0 0 0 0 0 0 0 0 0 0"
-    ascent="1434"
-    descent="-358"
-    bbox="-0.149097 -329 4142 1413.33"
-    underline-thickness="90"
-    underline-position="-89"
-    stemh="128"
-    stemv="128"
-    unicode-range="U+0020-F065"
-  />
-<missing-glyph horiz-adv-x="448" 
- />
-    <glyph glyph-name=".notdef" horiz-adv-x="448" 
- />
-    <glyph glyph-name="space" unicode=" " horiz-adv-x="448" 
- />
-    <glyph glyph-name="contact" unicode="&#xf000;" horiz-adv-x="1943" 
-d="M1760 1037c29 -40 35 -86 19 -138l-295 -972c-14 -47 -41 -84 -82 -115s-85 -48 -131 -48h-991c-55 0 -109 20 -160 58c-50 38 -86 85 -106 141c-18 48 -19 93 -2 136c0 4 1 13 3 29l4 40c1 12 -7 35 -6 44c1 20 29 48 44 73c16 27 32 60 48 98s27 72 32 98
-c4 14 -3 51 0 63c2 7 9 18 18 30c10 12 16 20 19 24c14 26 30 59 45 99s23 72 27 97c0 6 -1 18 -4 34c-2 16 -2 27 1 30c4 10 12 20 24 32l24 25c14 18 28 49 45 90c16 42 27 78 30 104c1 12 -9 43 -6 56c4 15 33 46 48 67c46 66 52 213 190 175l-1 -4c26 7 45 10 54 10h817
-c53 0 93 -20 122 -60s36 -87 20 -140l-294 -972c-26 -85 -52 -140 -78 -165c-25 -25 -71 -37 -137 -37h-933c-19 0 -33 -5 -41 -16c-7 -11 -8 -27 -1 -46c18 -50 69 -75 155 -75h991c41 0 86 23 97 61l322 1059c5 17 7 37 6 62c26 -11 48 -26 63 -47zM587 1195
-c-52 -52 -77 -114 -77 -188c0 -73 25 -136 77 -188c52 -51 115 -77 188 -77c74 0 136 26 188 77c52 52 78 115 78 188c0 74 -26 136 -78 188s-114 78 -188 78c-73 0 -136 -26 -188 -78zM291 461c-2 -23 -2 -47 -2 -71c0 -55 16 -99 50 -131s78 -48 134 -48h604
-c56 0 101 16 135 48c33 32 50 76 50 131c0 49 -3 93 -12 147c-10 54 -23 98 -48 142c-36 64 -92 107 -179 107c-8 0 -42 -23 -81 -48c-19 -12 -44 -23 -75 -33c-30 -10 -61 -15 -92 -15s-61 5 -92 15s-56 21 -75 33c-38 24 -72 48 -80 48c-116 0 -179 -78 -209 -174
-c-15 -46 -25 -104 -28 -151z" />
-    <glyph glyph-name="contact_add" unicode="&#xf001;" horiz-adv-x="2389" 
-d="M996 417v-206c0 -38 14 -70 41 -97c27 -26 59 -40 96 -40h275v-256c-48 -35 -109 -54 -183 -54h-938c-87 0 -156 25 -209 75c-52 49 -78 117 -78 203c0 38 1 76 3 111c5 73 22 162 44 234c47 149 145 270 324 270c14 0 28 -7 42 -18c113 -87 215 -131 343 -131
-c127 0 230 44 342 131c14 11 28 18 42 18c94 0 172 -34 233 -103h-240c-37 0 -69 -14 -96 -40c-27 -27 -41 -59 -41 -97zM1786 829v-378h378c18 0 34 -16 34 -34v-206c0 -18 -16 -34 -34 -34h-378v-378c0 -18 -16 -35 -34 -35h-206c-19 0 -35 17 -35 35v378h-378
-c-18 0 -34 16 -34 34v206c0 18 16 34 34 34h378v378c0 18 16 35 35 35h206c18 0 34 -17 34 -35zM1046 709c-80 -80 -177 -120 -290 -120c-114 0 -212 40 -292 120c-81 81 -120 178 -120 292s39 210 120 291c80 80 178 121 292 121c113 0 210 -41 290 -121
-c81 -81 122 -177 122 -291s-41 -211 -122 -292z" />
-    <glyph glyph-name="contact_search" unicode="&#xf002;" horiz-adv-x="1511" 
-d="M1492 270c15 -83 19 -151 19 -228c0 -85 -26 -153 -78 -202c-53 -51 -121 -76 -208 -76h-938c-87 0 -156 25 -209 76c-52 49 -78 117 -78 202c0 38 1 76 3 111c5 73 22 162 44 234c47 149 145 270 324 270c7 0 24 -9 47 -24c-5 -9 -11 -18 -15 -28
-c-21 -50 -32 -102 -32 -157c0 -84 23 -161 71 -229l-197 -198c-15 -14 -22 -32 -22 -52s8 -37 22 -52c15 -14 32 -21 52 -21c21 0 38 7 52 21l197 197c69 -47 145 -71 230 -71c55 0 108 10 158 32c100 43 173 116 216 216c21 49 31 103 31 157c0 55 -10 107 -31 157
-c-7 17 -16 32 -25 47c6 3 12 5 15 5c135 0 222 -67 278 -166c38 -68 59 -136 74 -221zM776 706c-71 0 -131 -25 -182 -76c-50 -50 -76 -111 -76 -182s26 -132 76 -182s111 -76 182 -76s132 25 183 76c50 50 75 111 75 182s-25 132 -75 182c-51 51 -112 76 -183 76zM466 707
-l-2 2c-81 80 -120 178 -120 292s39 210 120 291c80 80 178 121 292 121c113 0 210 -41 290 -121c81 -81 122 -177 122 -291c0 -103 -36 -193 -102 -269l-3 3c-36 36 -79 65 -129 86c-50 22 -103 33 -158 33s-107 -11 -157 -33c-50 -21 -93 -50 -130 -86
-c-8 -9 -15 -19 -23 -28z" />
-    <glyph glyph-name="contact_type" unicode="&#xf003;" horiz-adv-x="1511" 
-d="M1492 270c15 -83 19 -151 19 -228c0 -85 -26 -153 -78 -202c-53 -51 -121 -76 -208 -76h-938c-87 0 -156 25 -209 76c-52 49 -78 117 -78 202c0 38 1 76 3 111c5 73 22 162 44 234c47 149 145 270 324 270c13 0 65 -37 125 -75c30 -19 68 -36 116 -51
-c23 -8 45 -13 68 -16v-71h-227v76c0 32 -41 49 -64 26l-152 -151c-14 -15 -14 -39 0 -53l152 -152c23 -23 64 -5 64 27v76h227v-227h-76c-32 0 -49 -42 -26 -65l151 -151c15 -15 38 -15 53 0l152 151c23 23 5 65 -27 65h-76v227h227v-76c0 -32 42 -50 65 -27l151 152
-c15 14 15 38 0 53l-151 151c-23 23 -65 6 -65 -26v-76h-227v71c23 3 45 9 67 16c49 16 87 33 116 51c61 39 113 75 126 75c135 0 222 -67 278 -166c38 -68 59 -136 74 -221zM680 596c-82 14 -154 51 -216 113c-81 80 -120 178 -120 292s39 210 120 291
-c80 80 178 121 292 121c113 0 210 -41 290 -121c81 -81 122 -177 122 -291s-41 -211 -122 -292c-61 -62 -133 -99 -215 -113v75h76c32 0 50 41 27 64l-152 152c-15 14 -38 14 -53 0l-151 -152c-23 -23 -6 -64 26 -64h76v-75z" />
-    <glyph glyph-name="contact_denomination" unicode="&#xf004;" horiz-adv-x="1643" 
-d="M1352 207c16 17 24 36 24 59s-7 43 -24 60l-467 466c-17 17 -39 31 -67 42c-28 12 -54 18 -76 18h-147c23 0 48 -6 77 -18c28 -11 50 -25 66 -42l468 -466c16 -17 24 -37 24 -60s-8 -42 -24 -59l-308 -307c27 -27 42 -38 74 -38c22 0 42 7 59 24zM1492 270
-c15 -83 19 -151 19 -228c0 -85 -26 -153 -78 -202c-53 -51 -121 -76 -208 -76h-938c-87 0 -156 25 -209 76c-52 49 -78 117 -78 202c0 38 1 76 3 111c5 73 22 162 44 234c7 22 16 43 25 64c4 -18 9 -37 17 -57c14 -34 33 -64 57 -88l468 -468c28 -29 65 -44 107 -44
-c41 0 78 15 107 44l19 19c1 -2 2 -3 3 -4c30 -32 62 -59 122 -59c41 0 78 15 107 44l321 321c29 29 44 66 44 107c0 42 -15 79 -44 108l-277 277c8 4 14 6 17 6c135 0 222 -67 278 -166c38 -68 59 -136 74 -221zM595 920c-13 0 -25 -5 -36 -12c-24 7 -47 12 -68 12h-140
-c-5 26 -8 53 -8 81c0 114 40 210 121 291c80 80 178 121 292 121c113 0 210 -41 290 -121c81 -81 122 -177 122 -291c0 -109 -39 -204 -113 -282l-122 121c-23 23 -53 42 -89 57c-38 15 -71 23 -102 23h-147zM1101 326c17 -17 24 -37 24 -60s-8 -42 -24 -59l-321 -321
-c-17 -17 -36 -24 -59 -24s-43 8 -59 24l-467 468c-17 16 -31 38 -43 66c-11 28 -17 53 -17 76v272c0 23 9 43 25 59s36 25 59 25h272c23 0 48 -6 76 -18c28 -11 50 -25 67 -42zM403 583c16 17 25 37 25 60c0 22 -9 42 -25 58c-16 17 -36 25 -59 25s-43 -8 -59 -25
-c-17 -16 -24 -36 -24 -58c0 -23 7 -43 24 -60c16 -16 36 -24 59 -24s43 8 59 24z" />
-    <glyph glyph-name="tree" unicode="&#xf005;" horiz-adv-x="1322" 
-d="M672 1152c4 -7 5 -15 5 -24c0 -14 -5 -29 -16 -42l-105 -129c-10 -13 -23 -23 -41 -32c-17 -8 -33 -12 -49 -12h-386c-22 0 -41 8 -57 24c-15 15 -23 34 -23 56v341c0 21 8 40 23 56c16 15 35 23 57 23h113c22 0 41 -8 56 -23c16 -16 24 -35 24 -56v-12h193
-c21 0 40 -8 56 -23c15 -16 23 -35 23 -56v-57h68c26 0 49 -12 59 -34zM45 1334v-303l91 112c10 12 24 22 41 31c17 8 34 12 50 12h273v57c0 19 -16 34 -34 34h-205c-19 0 -34 15 -34 34v23c0 18 -15 34 -34 34h-113c-19 0 -35 -16 -35 -34zM626 1114c4 6 6 10 6 14
-c0 8 -6 13 -19 13h-386c-9 0 -19 -3 -30 -8s-20 -11 -26 -19l-104 -129c-4 -5 -6 -10 -6 -14c0 -8 6 -12 19 -12h386c9 0 19 2 30 8c11 5 19 11 25 18zM1211 598c4 -7 5 -16 5 -24c0 -15 -5 -29 -16 -43l-105 -129c-10 -12 -23 -23 -41 -31c-17 -8 -34 -12 -49 -12h-387
-c-21 0 -40 8 -56 24c-15 15 -23 34 -23 56v340c0 22 8 41 23 56c16 16 35 24 56 24h114c22 0 40 -8 56 -24c16 -15 23 -34 23 -56v-11h194c21 0 40 -8 56 -23c15 -16 23 -35 23 -56v-57h68c26 0 49 -12 59 -34zM584 779v-302l91 111c10 13 24 23 41 31s34 13 50 13h273v57
-c0 18 -16 34 -34 34h-205c-19 0 -34 15 -34 34v22c0 19 -15 34 -34 34h-114c-18 0 -34 -15 -34 -34zM1165 560c4 5 6 10 6 14c0 8 -6 12 -19 12h-386c-10 0 -19 -2 -30 -8c-11 -5 -20 -11 -26 -18l-104 -129c-5 -5 -6 -10 -6 -14c0 -8 6 -12 18 -12h387c9 0 19 2 30 7
-c11 6 19 12 25 19zM1211 3c4 -7 5 -15 5 -24c0 -14 -5 -29 -16 -42l-105 -129c-10 -13 -23 -23 -41 -31c-17 -9 -34 -13 -49 -13h-387c-21 0 -40 8 -56 24c-15 16 -23 34 -23 56v341c0 21 8 40 23 56c16 15 35 23 56 23h114c22 0 40 -8 56 -23c16 -16 23 -35 23 -56v-12h194
-c21 0 40 -7 56 -23c15 -16 23 -35 23 -56v-57h68c26 0 49 -12 59 -34zM584 185v-303l91 112c10 12 24 22 41 31c17 8 34 12 50 12h273v57c0 19 -16 34 -34 34h-205c-19 0 -34 15 -34 34v23c0 18 -15 34 -34 34h-114c-18 0 -34 -16 -34 -34zM1165 -35c4 6 6 10 6 14
-c0 8 -6 13 -19 13h-386c-10 0 -19 -3 -30 -8s-20 -11 -26 -19l-104 -128c-5 -6 -6 -11 -6 -15c0 -8 6 -12 18 -12h387c9 0 19 2 30 8c11 5 19 11 25 19zM311 -32h-93v945h93v-945zM563 656v-94h-308v94h308zM563 61v-93h-308v93h308z" />
-    <glyph glyph-name="classification_plan" unicode="&#xf006;" horiz-adv-x="1359" 
-d="M0 149h1250v-385h-1250v385zM854 -145v203h-428v-203h110v93h208v-93h110zM0 681h1250v-384h-1250v384zM854 387v204h-428v-204h110v93h208v-93h110zM992 1413l258 -200v-384h-1250v384l258 200h734zM854 919v204h-428v-204h110v93h208v-93h110z" />
-    <glyph glyph-name="classification_plan_l1" unicode="&#xf007;" horiz-adv-x="2118" 
-d="M1948 851v-824c0 -72 -25 -134 -77 -185c-51 -52 -114 -78 -185 -78h-1424c-71 0 -133 26 -185 78c-51 51 -77 113 -77 185v1124c0 71 26 133 77 185c52 51 114 77 185 77h375c71 0 133 -26 185 -77c51 -52 77 -114 77 -185v-38h787c71 0 134 -25 185 -77
-c52 -51 77 -113 77 -185z" />
-    <glyph glyph-name="classification_plan_l2" unicode="&#xf008;" horiz-adv-x="2391" 
-d="M1798 851v-187h-974c-73 0 -149 -20 -230 -56c-81 -37 -145 -84 -192 -140l-395 -464l-6 -7c0 6 -1 24 -1 30v1124c0 71 26 133 77 185c52 51 114 77 185 77h375c71 0 133 -26 185 -77c51 -52 77 -114 77 -185v-38h637c72 0 134 -25 185 -77c52 -51 77 -113 77 -185z
-M2200 448c0 -24 -13 -49 -36 -77l-394 -464c-34 -40 -80 -74 -141 -102c-60 -27 -116 -41 -168 -41h-1274c-52 0 -102 19 -102 66c0 25 13 50 37 77l393 464c34 40 81 74 141 101c61 28 117 42 168 42h1274c53 0 102 -19 102 -66z" />
-    <glyph glyph-name="doctypes" unicode="&#xf009;" horiz-adv-x="2295" 
-d="M1161 537c0 16 5 34 13 54s18 35 29 47l193 193c12 12 28 22 47 30c20 8 38 12 55 12h554c33 0 60 -26 60 -59v-990c0 -33 -27 -60 -60 -60h-831c-33 0 -60 27 -60 60v713zM1478 556v233c-12 -4 -20 -9 -25 -14l-194 -193c-5 -5 -9 -14 -14 -26h233zM1240 477v-633h792
-v950h-475v-257c0 -33 -26 -60 -59 -60h-258zM317 1096v233c-12 -4 -21 -9 -26 -14l-193 -193c-5 -5 -10 -14 -14 -26h233zM950 1110l-79 -25v249h-475v-257c0 -33 -27 -60 -59 -60h-258v-633h539l6 -80h-565c-32 0 -59 27 -59 60v713c0 16 4 34 12 54s18 35 30 47l193 193
-c12 12 27 22 47 30s38 12 55 12h554c33 0 59 -26 59 -59v-244zM886 826v233c-11 -4 -20 -9 -25 -14l-194 -193c-4 -5 -9 -14 -13 -26h232zM1520 844l-79 -28v248h-475v-257c0 -33 -27 -60 -60 -60h-257v-633h559l-1 -80h-578c-33 0 -59 27 -59 60v713c0 16 4 34 12 54
-s18 35 30 47l193 193c12 12 27 22 47 30s38 12 54 12h555c32 0 59 -26 59 -59v-240zM234 899c-22 -24 -33 -50 -33 -80c0 -34 10 -60 30 -79c21 -19 52 -32 95 -40v-161c-33 3 -56 16 -68 38c-7 12 -12 32 -13 59h-52c0 -34 5 -61 16 -81c21 -36 60 -57 117 -61v-57h28v57
-c35 4 63 12 81 25c34 22 51 59 51 111c0 36 -13 64 -39 82c-17 11 -48 23 -93 36v144c27 -1 47 -12 59 -32c7 -11 11 -23 12 -38h52c-1 33 -12 60 -33 80s-51 32 -90 35v38h-28v-39c-40 0 -70 -13 -92 -37zM273 777c-13 11 -19 26 -19 45c0 16 5 32 16 47c11 14 30 22 56 23
-v-138c-22 4 -40 12 -53 23zM423 575c-12 -23 -36 -36 -69 -37v155c24 -7 42 -14 52 -21c18 -13 27 -32 27 -56c0 -16 -3 -30 -10 -41zM983 625h-62v-120l-116 42l-21 -60l117 -38l-73 -101l55 -38l71 105l69 -105l53 38l-72 101l117 38l-22 59l-116 -40v119zM1646 76h1
-c85 0 151 66 151 151c0 83 -68 150 -151 150s-151 -67 -150 -152c0 -84 67 -149 149 -149z" />
-    <glyph glyph-name="status" unicode="&#xf00a;" horiz-adv-x="2295" 
-d="M1161 537c0 16 5 34 13 54s18 35 29 47l193 193c12 12 28 22 47 30c20 8 38 12 55 12h554c33 0 60 -26 60 -59v-990c0 -33 -27 -60 -60 -60h-831c-33 0 -60 27 -60 60v713zM1478 556v233c-12 -4 -20 -9 -25 -14l-194 -193c-5 -5 -9 -14 -14 -26h233zM1240 477v-633h792
-v950h-475v-257c0 -33 -26 -60 -59 -60h-258zM317 1096v233c-12 -4 -21 -9 -26 -14l-193 -193c-5 -5 -10 -14 -14 -26h233zM950 1110l-79 -25v249h-475v-257c0 -33 -27 -60 -59 -60h-258v-633h539l6 -80h-565c-32 0 -59 27 -59 60v713c0 16 4 34 12 54s18 35 30 47l193 193
-c12 12 27 22 47 30s38 12 55 12h554c33 0 59 -26 59 -59v-244zM886 826v233c-11 -4 -20 -9 -25 -14l-194 -193c-4 -5 -9 -14 -13 -26h232zM1520 844l-79 -28v248h-475v-257c0 -33 -27 -60 -60 -60h-257v-633h559l-1 -80h-578c-33 0 -59 27 -59 60v713c0 16 4 34 12 54
-s18 35 30 47l193 193c12 12 27 22 47 30s38 12 54 12h555c32 0 59 -26 59 -59v-240zM543 862l-197 -320l-37 -61c-10 -16 -26 -16 -36 0l-37 61l-99 160c-10 16 -10 44 0 60l37 60c10 17 27 17 37 0l80 -130l178 290c10 17 27 17 37 0l37 -60c10 -16 10 -44 0 -60zM1092 321
-l-41 -42c-11 -11 -30 -11 -41 0l-89 89l-89 -89c-11 -11 -30 -11 -41 0l-42 42c-11 11 -11 30 0 41l89 89l-89 89c-11 11 -11 30 0 41l42 41c11 12 30 12 41 0l89 -89l89 89c11 12 30 12 41 0l41 -41c12 -11 12 -30 0 -41l-89 -89l89 -89c12 -11 12 -30 0 -41zM1779 578
-l-11 -378c0 -18 -12 -32 -25 -32h-97c-14 0 -25 14 -26 32l-10 378c-1 18 10 32 23 32h122c14 0 24 -14 24 -32zM1768 58v-111c0 -17 -12 -31 -25 -31h-97c-14 0 -25 14 -25 31v111c0 17 11 31 25 31h97c13 0 25 -14 25 -31z" />
-    <glyph glyph-name="actions" unicode="&#xf00b;" horiz-adv-x="1792" 
-d="M1773 595l-256 -256c-39 -39 -109 -9 -109 45v128h-1024v-128c0 -54 -70 -84 -109 -45l-256 256c-25 25 -25 65 0 90l256 256c39 39 109 9 109 -45v-128h1024v128c0 54 70 84 109 45l256 -256c25 -25 25 -65 0 -90z" />
-    <glyph glyph-name="letter_reopen" unicode="&#xf00c;" horiz-adv-x="2265" 
-d="M1269 472v-585c0 -13 -11 -25 -24 -25h-1123c-13 0 -24 12 -24 25v585s18 -15 440 -359c65 -52 145 -56 145 -56s81 4 145 56c422 344 441 359 441 359zM259 505v469h849v-469l-425 -350zM1331 802c-7 7 -105 83 -157 124v123h-156c-67 52 -248 197 -263 207
-c-27 18 -54 27 -72 27c-19 0 -45 -9 -73 -27c-14 -10 -196 -155 -263 -207h-154v-122c-65 -51 -123 -97 -159 -125h1c-23 -24 -35 -52 -35 -86v-829c0 -34 12 -63 36 -87c23 -23 52 -36 86 -36h1123c33 0 62 13 86 36c24 24 36 53 36 87v829c0 34 -12 63 -36 86zM896 486
-v107h-531v-107h531zM578 699v106h-213v-106h213zM1182 1196l-93 173c73 30 146 44 220 44c75 0 148 -14 221 -44c73 -29 137 -71 193 -127c106 -106 167 -250 171 -400l140 -1c22 0 37 -9 45 -29c8 -21 5 -38 -10 -54l-242 -241c-19 -19 -50 -19 -69 0l-242 241
-c-15 15 -18 33 -10 54c8 20 23 29 45 29l148 1c-3 98 -43 191 -114 262c-108 108 -266 139 -403 92z" />
-    <glyph glyph-name="docserver" unicode="&#xf00d;" horiz-adv-x="2150" 
-d="M1958 479c14 -42 20 -74 20 -96v-412c0 -57 -20 -106 -60 -146s-89 -61 -146 -61h-1566c-57 0 -106 21 -146 61c-39 40 -60 89 -60 146v412c0 22 7 54 21 96l253 781c15 45 42 82 81 111c40 28 83 42 130 42h1008c47 0 90 -14 130 -42c40 -29 66 -66 81 -111zM431 1210
-l-202 -621h1520l-202 621c-7 21 -30 38 -54 38h-1008c-24 0 -47 -17 -54 -38zM1813 -29v412c0 22 -19 41 -41 41h-1566c-22 0 -41 -19 -41 -41v-412c0 -22 19 -42 41 -42h1566c22 0 41 20 41 42zM1566 72c57 0 103 46 103 103s-46 104 -103 104s-103 -47 -103 -104
-s46 -103 103 -103zM1237 72c57 0 103 46 103 103s-46 104 -103 104s-103 -47 -103 -104s46 -103 103 -103z" />
-    <glyph glyph-name="docserver_location" unicode="&#xf00e;" horiz-adv-x="1272" 
-d="M1072 130v-244c0 -13 -11 -24 -24 -24h-926c-13 0 -25 11 -25 24v244c0 13 12 24 25 24h926c13 0 24 -11 24 -24zM1158 187l-150 462c-9 26 -25 49 -48 65c-18 13 -36 19 -56 22c-14 -31 -29 -63 -44 -94h23c14 0 28 -10 32 -23l119 -367h-898l119 367c4 13 18 23 32 23
-h47c-16 32 -32 65 -46 97h-1c-28 0 -53 -8 -77 -25c-23 -16 -39 -39 -48 -65l-150 -462c-8 -25 -12 -44 -12 -57v-244c0 -33 12 -62 36 -86c23 -23 52 -36 86 -36h926c33 0 62 13 86 36c24 24 36 53 36 86v244c0 13 -4 32 -12 57zM597 1328c-143 0 -259 -116 -259 -259
-c0 -110 163 -418 259 -586c96 168 258 476 258 586c0 143 -116 259 -258 259zM597 356c-15 0 -29 8 -37 20c-31 53 -307 520 -307 693c0 190 154 344 344 344c189 0 344 -154 344 -344c0 -173 -276 -640 -308 -693c-7 -12 -21 -20 -36 -20zM731 -54c-33 0 -61 28 -61 61
-c0 34 28 61 61 61c34 0 61 -27 61 -61c0 -33 -27 -61 -61 -61zM926 -54c-34 0 -61 28 -61 61c0 34 27 61 61 61s61 -27 61 -61c0 -33 -27 -61 -61 -61zM597 971c-54 0 -98 44 -98 98c0 55 44 99 98 99s98 -44 98 -99c0 -54 -44 -98 -98 -98z" />
-    <glyph glyph-name="docserver_type" unicode="&#xf010;" horiz-adv-x="1527" 
-d="M1051 -29c39 0 70 31 70 69c0 39 -31 70 -70 70c-38 0 -69 -31 -69 -70c0 -38 31 -69 69 -69zM830 -29c39 0 70 31 70 69c0 39 -31 70 -70 70c-38 0 -69 -31 -69 -70c0 -38 31 -69 69 -69zM914 1384c16 18 35 27 58 29c22 2 42 -5 60 -20l344 -294c18 -15 27 -34 29 -57
-c1 -23 -5 -43 -20 -60l-429 -501c-15 -17 -35 -33 -62 -47c-27 -13 -52 -21 -75 -23l-270 -21c-23 -1 -43 6 -60 21c-18 14 -28 33 -29 56l-21 270c-2 23 2 49 11 78c9 28 22 51 37 69zM758 613c-4 54 -51 94 -105 90c-53 -5 -93 -51 -89 -105c4 -53 51 -93 105 -89
-c53 4 93 51 89 104zM1180 658l134 -414c10 -28 14 -50 14 -64v-277c0 -38 -14 -71 -41 -98c-26 -27 -59 -41 -97 -41h-1052c-38 0 -71 14 -97 41c-27 27 -41 60 -41 98v277c0 14 5 36 14 64l170 524c10 31 28 56 55 75c26 19 55 28 87 28h89c-7 -12 -12 -25 -17 -40
-c-8 -26 -12 -49 -13 -70h-59c-16 0 -32 -12 -36 -26l-136 -417h1020l-78 241zM1217 -97v277c0 14 -13 27 -27 27h-1052c-14 0 -27 -13 -27 -27v-277c0 -15 13 -28 27 -28h1052c14 0 27 13 27 28z" />
-    <glyph glyph-name="letter" unicode="&#xf011;" horiz-adv-x="2281" 
-d="M2043 1358c36 -36 55 -81 55 -132v-1274c0 -52 -19 -96 -55 -133c-36 -36 -81 -55 -132 -55h-1724c-51 0 -96 19 -132 55c-36 37 -55 81 -55 133v1274c0 51 19 96 55 132s81 55 132 55h1724c51 0 96 -19 132 -55zM1948 -48v899c-24 -28 -51 -54 -80 -77
-c-210 -161 -376 -293 -499 -396c-40 -34 -73 -60 -97 -78c-25 -19 -59 -38 -102 -58c-42 -19 -82 -28 -120 -28h-1h-1c-38 0 -78 9 -121 28c-42 19 -76 39 -100 58c-25 18 -58 44 -98 78c-122 103 -289 235 -498 396c-30 23 -57 49 -81 77v-899c0 -20 17 -38 37 -38h1724
-c20 0 37 18 37 38zM1893 1028c37 57 55 109 55 154c0 11 0 31 -1 44c0 21 -12 37 -36 37h-1724c-20 0 -37 -17 -37 -37c0 -131 57 -243 172 -333c151 -118 307 -242 470 -371c4 -4 18 -16 41 -35c21 -19 40 -33 53 -43c13 -11 30 -23 52 -38c43 -29 78 -42 110 -42h1h1
-c32 0 67 14 109 42c23 15 40 27 53 38c13 10 32 24 54 43s36 31 41 35c163 129 319 253 469 371c43 34 81 78 117 135z" />
-    <glyph glyph-name="letter_add" unicode="&#xf012;" horiz-adv-x="3458" 
-d="M2357 1413c455 0 824 -369 824 -824s-369 -825 -824 -825s-824 370 -824 825s369 824 824 824zM2887 471c31 0 59 28 59 59v118c0 31 -28 59 -59 59h-412v412c0 31 -28 59 -59 59h-118c-31 0 -59 -28 -59 -59v-412h-412c-31 0 -59 -28 -59 -59v-118c0 -31 28 -59 59 -59
-h412v-412c0 -31 28 -59 59 -59h118c31 0 59 28 59 59v412h412zM1731 -85c58 -54 122 -101 192 -138c-17 -6 -35 -9 -54 -9h-1686c-50 0 -94 18 -129 54c-36 35 -54 79 -54 129v1246c0 51 18 94 54 130c35 35 79 54 129 54h1686c6 0 11 -1 17 -2c-68 -40 -130 -89 -186 -145
-h-1517c-19 0 -36 -17 -36 -37c0 -128 56 -237 168 -325c148 -116 300 -237 459 -363c5 -4 18 -15 40 -34s40 -32 53 -43c13 -10 29 -22 50 -36c42 -29 77 -42 108 -42h1h1c31 0 66 14 107 42c22 14 39 26 51 36c13 11 32 24 53 43c22 19 36 30 40 34c55 43 107 84 160 126
-c-1 -15 -2 -30 -2 -46c0 -45 4 -89 10 -133c-38 -31 -75 -61 -107 -88c-39 -33 -71 -58 -95 -77c-24 -18 -57 -37 -100 -56c-41 -18 -80 -27 -117 -27h-1h-1c-37 0 -76 8 -118 27c-41 19 -74 38 -98 56c-24 19 -56 44 -95 77c-120 101 -284 230 -488 387
-c-29 23 -55 48 -79 76v-880c0 -19 17 -36 36 -36h1548z" />
-    <glyph glyph-name="letter_search" unicode="&#xf013;" horiz-adv-x="3458" 
-d="M1731 -85c58 -54 122 -101 192 -138c-17 -6 -35 -9 -54 -9h-1686c-50 0 -94 18 -129 54c-36 35 -54 79 -54 129v1246c0 51 18 94 54 130c35 35 79 54 129 54h1686c6 0 11 -1 17 -2c-68 -40 -130 -89 -186 -145h-1517c-19 0 -36 -17 -36 -37c0 -128 56 -237 168 -325
-c148 -116 300 -237 459 -363c5 -4 18 -15 40 -34s40 -32 53 -43c13 -10 29 -22 50 -36c42 -29 77 -42 108 -42h1h1c31 0 66 14 107 42c22 14 39 26 52 36c12 11 31 24 52 43c22 19 36 30 40 34c55 43 107 84 160 126c-1 -15 -2 -30 -2 -46c0 -45 4 -89 10 -133
-c-38 -31 -75 -61 -107 -88c-39 -33 -71 -58 -95 -77c-24 -18 -57 -37 -100 -56c-41 -18 -80 -27 -117 -27h-1h-1c-37 0 -76 8 -118 27c-41 19 -74 38 -98 56c-24 19 -56 44 -95 77c-120 101 -284 230 -488 387c-29 23 -55 48 -79 76v-880c0 -19 17 -36 36 -36h1548z
-M2357 1413c455 0 824 -369 824 -824s-369 -825 -824 -825s-824 370 -824 825s369 824 824 824zM2436 232c241 0 437 195 437 436s-196 437 -437 437s-436 -196 -436 -437c0 -92 28 -176 77 -247v0l-213 -213c-31 -31 -31 -81 0 -112s81 -30 112 1l213 212v0
-c71 -49 155 -77 247 -77zM2715 667c0 154 -125 279 -279 279s-279 -125 -279 -279s125 -279 279 -279s279 125 279 279z" />
-    <glyph glyph-name="letter_del" unicode="&#xf014;" horiz-adv-x="3181" 
-d="M2357 1413c455 0 824 -369 824 -824s-369 -825 -824 -825s-824 370 -824 825s369 824 824 824zM2880 317l-272 272l272 272c34 34 34 91 0 125l-126 126c-34 34 -91 34 -125 0l-272 -272l-272 272c-34 34 -91 34 -126 0l-125 -126c-35 -34 -35 -91 0 -125l271 -272
-l-271 -272c-35 -34 -35 -92 0 -126l125 -125c35 -35 92 -35 126 0l272 271l272 -271c34 -35 91 -35 125 0l126 125c34 34 34 92 0 126zM1731 -85c58 -54 122 -101 192 -138c-17 -6 -35 -9 -54 -9h-1686c-50 0 -94 18 -129 54c-36 35 -54 79 -54 129v1246c0 51 18 94 54 130
-c35 35 79 54 129 54h1686c6 0 11 -1 17 -2c-68 -40 -130 -89 -186 -145h-1517c-19 0 -36 -17 -36 -37c0 -128 56 -237 168 -325c148 -116 300 -237 459 -363c5 -4 18 -15 40 -34s40 -32 53 -43c13 -10 29 -22 50 -36c42 -29 77 -42 108 -42h1h1c31 0 66 14 107 42
-c22 14 39 26 51 36c13 11 32 24 53 43c22 19 36 30 40 34c55 43 107 84 160 126c-1 -15 -2 -30 -2 -46c0 -45 4 -89 10 -133c-38 -31 -75 -61 -107 -88c-39 -33 -71 -58 -95 -77c-24 -18 -57 -37 -100 -56c-41 -18 -80 -27 -117 -27h-1h-1c-37 0 -76 8 -118 27
-c-41 19 -74 38 -98 56c-24 19 -56 44 -95 77c-120 101 -284 230 -488 387c-29 23 -55 48 -79 76v-880c0 -19 17 -36 36 -36h1548z" />
-    <glyph glyph-name="letter_incoming" unicode="&#xf015;" horiz-adv-x="3181" 
-d="M2357 1413c455 0 824 -369 824 -824s-369 -825 -824 -825s-824 370 -824 825s369 824 824 824zM2931 514c21 21 31 45 31 75s-11 54 -31 74l-535 535c-20 20 -46 31 -75 31c-28 0 -53 -11 -73 -31l-62 -62c-20 -20 -31 -44 -31 -74c0 -29 11 -54 31 -74l241 -241h-579
-c-29 0 -52 -11 -70 -32c-17 -20 -26 -45 -26 -74v-105c0 -29 9 -54 26 -75c18 -20 41 -30 70 -30h579l-241 -241c-21 -20 -31 -46 -31 -75c0 -28 10 -54 31 -74l62 -62c21 -21 46 -30 73 -30c29 0 54 9 75 30zM1731 -85c58 -54 122 -101 192 -138c-17 -6 -35 -9 -54 -9
-h-1686c-50 0 -94 18 -129 54c-36 35 -54 79 -54 129v1246c0 51 18 94 54 130c35 35 79 54 129 54h1686c6 0 11 -1 17 -2c-68 -40 -130 -89 -186 -145h-1517c-19 0 -36 -17 -36 -37c0 -128 56 -237 168 -325c148 -116 300 -237 459 -363c5 -4 18 -15 40 -34s40 -32 53 -43
-c13 -10 29 -22 50 -36c42 -29 77 -42 108 -42h1h1c31 0 66 14 107 42c22 14 39 26 51 36c13 11 32 24 53 43c22 19 36 30 40 34c55 43 107 84 160 126c-1 -15 -2 -30 -2 -46c0 -45 4 -89 10 -133c-38 -31 -75 -61 -107 -88c-39 -33 -71 -58 -95 -77
-c-24 -18 -57 -37 -100 -56c-41 -18 -80 -27 -117 -27h-1h-1c-37 0 -76 8 -118 27c-41 19 -74 38 -98 56c-24 19 -56 44 -95 77c-120 101 -284 230 -488 387c-29 23 -55 48 -79 76v-880c0 -19 17 -36 36 -36h1548z" />
-    <glyph glyph-name="letter_outgoing" unicode="&#xf016;" horiz-adv-x="3181" 
-d="M2357 1413c455 0 824 -369 824 -824s-369 -825 -824 -825s-824 370 -824 825s369 824 824 824zM2935 461c18 21 27 46 27 75v105c0 29 -9 54 -27 74c-17 21 -41 32 -69 32h-579l241 241c20 20 31 45 31 74c0 30 -11 54 -31 74l-62 62c-20 20 -45 31 -74 31
-s-54 -11 -75 -31l-535 -535c-19 -20 -30 -44 -30 -74s10 -54 30 -75l535 -535c21 -21 46 -30 75 -30c28 0 53 9 74 30l62 62c20 20 31 46 31 74c0 29 -11 55 -31 75l-241 241h579c28 0 52 10 69 30zM1731 -85c58 -54 122 -101 192 -138c-17 -6 -35 -9 -54 -9h-1686
-c-50 0 -94 18 -129 54c-36 35 -54 79 -54 129v1246c0 51 18 94 54 130c35 35 79 54 129 54h1686c6 0 11 -1 17 -2c-68 -40 -130 -89 -186 -145h-1517c-19 0 -36 -17 -36 -37c0 -128 56 -237 168 -325c148 -116 300 -237 459 -363c5 -4 18 -15 40 -34s40 -32 53 -43
-c13 -10 29 -22 50 -36c42 -29 77 -42 108 -42h1h1c31 0 66 14 107 42c22 14 39 26 51 36c13 11 32 24 53 43c22 19 36 30 40 34c55 43 107 84 160 126c-1 -15 -2 -30 -2 -46c0 -45 4 -89 10 -133c-38 -31 -75 -61 -107 -88c-39 -33 -71 -58 -95 -77
-c-24 -18 -57 -37 -100 -56c-41 -18 -80 -27 -117 -27h-1h-1c-37 0 -76 8 -118 27c-41 19 -74 38 -98 56c-24 19 -56 44 -95 77c-120 101 -284 230 -488 387c-29 23 -55 48 -79 76v-880c0 -19 17 -36 36 -36h1548z" />
-    <glyph glyph-name="letter_internal" unicode="&#xf017;" horiz-adv-x="3181" 
-d="M2357 1413c455 0 824 -369 824 -824s-369 -825 -824 -825s-824 370 -824 825s369 824 824 824zM2851 133c55 54 97 118 130 193c32 75 48 153 48 235s-16 160 -48 234c-33 75 -75 139 -130 193c-54 55 -118 97 -192 129c-75 33 -153 48 -235 48
-c-154 0 -304 -60 -417 -166l-102 101c-16 16 -34 20 -54 11c-22 -9 -32 -24 -32 -46v-353c0 -28 23 -51 51 -51h352c22 0 38 11 47 32c8 21 5 38 -11 54l-108 109c73 69 171 108 274 108c221 0 403 -182 403 -403c0 -222 -182 -404 -403 -404c-125 0 -242 57 -318 157
-c-4 6 -10 9 -18 10c-8 0 -15 -2 -20 -7l-108 -109c-9 -9 -9 -24 -1 -34c56 -70 126 -123 207 -161c82 -38 167 -57 258 -57c82 0 160 16 235 48c74 32 138 75 192 129zM1731 -85c58 -54 122 -101 192 -138c-17 -6 -35 -9 -54 -9h-1686c-50 0 -94 18 -129 54
-c-36 35 -54 79 -54 129v1246c0 51 18 94 54 130c35 35 79 54 129 54h1686c6 0 11 -1 17 -2c-68 -40 -130 -89 -186 -145h-1517c-19 0 -36 -17 -36 -37c0 -128 56 -237 168 -325c148 -116 300 -237 459 -363c5 -4 18 -15 40 -34s40 -32 53 -43c13 -10 29 -22 50 -36
-c42 -29 77 -42 108 -42h1h1c31 0 66 14 107 42c22 14 39 26 51 36c13 11 32 24 53 43c22 19 36 30 40 34c55 43 107 84 160 126c-1 -15 -2 -30 -2 -46c0 -45 4 -89 10 -133c-38 -31 -75 -61 -107 -88c-39 -33 -71 -58 -95 -77c-24 -18 -57 -37 -100 -56
-c-41 -18 -80 -27 -117 -27h-1h-1c-37 0 -76 8 -118 27c-41 19 -74 38 -98 56c-24 19 -56 44 -95 77c-120 101 -284 230 -488 387c-29 23 -55 48 -79 76v-880c0 -19 17 -36 36 -36h1548z" />
-    <glyph glyph-name="letter_status_new" unicode="&#xf018;" horiz-adv-x="2976" 
-d="M2504 1300l-293 -321l-431 59l215 -377l-190 -391l426 87l313 -301l49 432l383 204l-396 180zM1948 198l150 31v-371c0 -52 -19 -96 -55 -132c-36 -37 -81 -55 -132 -55h-1724c-51 0 -96 18 -132 55c-36 36 -55 80 -55 132v1274c0 51 19 96 55 132s81 55 132 55h1724
-c51 0 96 -19 132 -55s55 -81 55 -132v-37l-150 20c0 6 0 12 -1 17c0 21 -12 37 -36 37h-1724c-20 0 -37 -17 -37 -37c0 -131 57 -243 172 -333c151 -118 307 -242 470 -371c4 -3 18 -15 41 -35c21 -19 40 -33 53 -43c13 -11 30 -23 52 -38c43 -29 78 -42 110 -42h1h1
-c32 0 67 14 109 42c23 15 40 27 53 38c13 10 32 24 54 43c22 20 36 32 41 35c163 129 319 253 469 371c6 5 11 12 17 17l76 -135l-1 -1c-210 -161 -376 -293 -499 -396c-40 -34 -73 -60 -97 -78c-25 -19 -59 -38 -102 -58c-42 -19 -82 -28 -120 -28h-1h-1
-c-38 0 -78 9 -121 28c-42 20 -76 39 -100 58c-25 18 -58 44 -98 78c-122 103 -289 235 -498 396c-30 23 -57 49 -81 77v-899c0 -20 17 -37 37 -37h1724c20 0 37 17 37 37v340z" />
-    <glyph glyph-name="letter_status_wait" unicode="&#xf019;" horiz-adv-x="3056" 
-d="M2344 514c-10 129 -34 161 -34 161c-23 33 -226 249 -240 267c-15 18 -32 47 -9 35c34 -17 130 -97 283 -97c152 0 249 80 283 97c23 12 6 -17 -9 -35s-217 -234 -240 -267c-23 -30 -33 -149 -34 -160c0 3 1 11 1 23c0 0 -1 -15 -1 -24zM2636 51c32 -26 67 -62 35 -82
-c0 0 -91 -59 -327 -59s-327 59 -327 59c-32 20 3 56 35 82s226 117 252 141c27 23 31 44 40 67c9 -23 13 -44 39 -67c27 -24 220 -115 253 -141zM2742 293c47 -47 57 -162 57 -196v-166c0 -132 -286 -167 -455 -167s-455 35 -455 167v164c0 36 10 151 57 198
-c38 38 213 238 229 267c4 9 8 47 -13 65c-30 25 -128 136 -220 240l-22 25c-37 42 -47 140 -32 338c0 9 1 15 1 18v1c0 131 286 166 455 166c166 0 445 -34 454 -160v0c7 -46 38 -278 -29 -362c-21 -26 -201 -231 -243 -266c-21 -18 -17 -56 -12 -67
-c15 -27 190 -227 228 -265zM2344 1327c-236 0 -357 -57 -368 -81c8 -19 99 -63 273 -76c29 -2 61 -3 95 -3c239 0 360 58 369 81c-9 21 -130 79 -369 79zM2713 -65c-1 73 24 240 -32 296c4 -3 6 -6 0 0c-13 14 -6 7 -1 1c-90 90 -307 269 -244 412c32 75 131 148 184 209
-c87 98 111 155 102 294c-198 -104 -555 -101 -752 -2c-4 -90 -13 -166 47 -234c42 -48 84 -96 127 -143c40 -44 103 -90 117 -150c23 -104 -75 -185 -136 -255c-80 -91 -144 -142 -150 -270c-2 -46 -24 -155 23 -181c128 -73 315 -68 456 -57c32 3 259 21 259 80zM1724 -82
-c57 -54 121 -100 190 -138c-17 -5 -34 -8 -53 -8h-1679c-50 0 -93 18 -128 53c-36 36 -54 79 -54 129v1241c0 50 18 93 54 129c35 35 78 53 128 53h1679c6 0 11 -1 16 -1c-67 -41 -129 -89 -184 -145h-1511c-19 0 -36 -17 -36 -36c0 -128 56 -236 168 -324
-c147 -115 298 -236 457 -362c4 -3 18 -15 40 -34c21 -18 40 -32 52 -42c13 -10 29 -22 50 -36c42 -29 77 -42 108 -42h1h1c31 0 65 14 106 42c22 14 39 26 51 36c13 10 31 24 53 42c22 19 35 31 40 34c54 43 106 84 159 126c-1 -15 -3 -31 -3 -46c0 -45 5 -89 11 -132
-c-39 -31 -75 -61 -107 -88c-39 -33 -71 -58 -95 -76c-24 -19 -57 -37 -99 -56c-41 -19 -80 -28 -116 -28h-1h-1c-37 0 -76 9 -118 28c-41 19 -74 37 -98 56c-24 18 -56 43 -95 76c-119 101 -282 229 -485 386c-29 22 -55 47 -79 75v-876c0 -19 17 -36 36 -36h1542zM2344 523
-v-1v1z" />
-    <glyph glyph-name="letter_status_inprogress" unicode="&#xf01a;" horiz-adv-x="3008" 
-d="M1688 -65h-1509c-19 0 -36 17 -36 36v858c23 -27 49 -52 77 -74c200 -154 359 -279 476 -378c38 -32 69 -57 93 -74c23 -18 55 -37 96 -55c41 -19 79 -27 115 -27h1h1c36 0 74 9 114 27c41 19 74 37 97 55c24 17 55 42 93 74c31 27 67 56 105 86c-7 43 -11 86 -11 130
-c0 15 2 30 3 45c-52 -41 -103 -81 -156 -123c-5 -4 -18 -15 -39 -34c-21 -18 -40 -31 -52 -41s-29 -21 -50 -36c-40 -27 -74 -40 -104 -40h-1h-1c-30 0 -64 13 -105 40c-21 14 -37 26 -49 36c-13 10 -31 23 -52 41c-21 19 -34 30 -39 34c-155 122 -304 241 -448 354
-c-109 86 -164 192 -164 317c0 19 17 36 36 36h1479c54 55 115 102 181 141c-5 1 -10 2 -16 2h-1644c-49 0 -92 -18 -126 -53c-35 -34 -53 -77 -53 -126v-1215c0 -49 18 -92 53 -127c34 -34 77 -52 126 -52h1644c19 0 36 3 53 8c-69 37 -131 83 -188 135zM2834 925
-c-96 0 -174 78 -174 174s78 174 174 174s174 -78 174 -174s-78 -174 -174 -174zM2752 -129c-38 0 -70 32 -70 71c0 38 32 70 70 70c39 0 70 -32 70 -70c0 -39 -31 -71 -70 -71zM2404 1082c-92 0 -166 74 -166 165c0 92 74 166 166 166c91 0 166 -74 166 -166
-c0 -91 -75 -165 -166 -165zM2404 -236c-46 0 -84 38 -84 84s38 84 84 84s84 -38 84 -84s-38 -84 -84 -84zM2055 -156c-53 0 -97 44 -97 98c0 53 44 97 97 97c54 0 98 -44 98 -97c0 -54 -44 -98 -98 -98zM1840 17c-62 0 -111 50 -111 111c0 62 49 111 111 111
-c61 0 111 -49 111 -111c0 -61 -50 -111 -111 -111zM1583 428c0 69 56 125 125 125s125 -56 125 -125s-56 -125 -125 -125s-125 56 -125 125zM1753 945c76 0 138 -62 138 -138s-62 -138 -138 -138c-77 0 -139 62 -139 138s62 138 139 138zM1995 1267c84 0 152 -68 152 -152
-s-68 -152 -152 -152s-152 68 -152 152s68 152 152 152z" />
-    <glyph glyph-name="letter_status_validated" unicode="&#xf01b;" horiz-adv-x="3181" 
-d="M2357 1413c455 0 824 -369 824 -824s-369 -825 -824 -825s-824 370 -824 825s369 824 824 824zM2824 791c22 31 22 82 0 112l-83 111c-23 31 -60 31 -83 0l-400 -538l-179 242c-23 30 -61 30 -83 0l-83 -112c-23 -30 -23 -81 0 -111l221 -297l83 -111c22 -31 60 -31 82 0
-l83 111zM1731 -85c58 -54 122 -101 192 -138c-17 -6 -35 -9 -54 -9h-1686c-50 0 -94 18 -129 54c-36 35 -54 79 -54 129v1246c0 51 18 94 54 130c35 35 79 54 129 54h1686c6 0 11 -1 17 -2c-68 -40 -130 -89 -186 -145h-1517c-19 0 -36 -17 -36 -37c0 -128 56 -237 168 -325
-c148 -116 300 -237 459 -363c5 -4 18 -15 40 -34s40 -32 53 -43c13 -10 29 -22 50 -36c42 -29 77 -42 108 -42h1h1c31 0 66 14 107 42c22 14 39 26 51 36c13 11 32 24 53 43c22 19 36 30 40 34c55 43 107 84 160 126c-1 -15 -2 -30 -2 -46c0 -45 4 -89 10 -133
-c-38 -31 -75 -61 -107 -88c-39 -33 -71 -58 -95 -77c-24 -18 -57 -37 -100 -56c-41 -18 -80 -27 -117 -27h-1h-1c-37 0 -76 8 -118 27c-41 19 -74 38 -98 56c-24 19 -56 44 -95 77c-120 101 -284 230 -488 387c-29 23 -55 48 -79 76v-880c0 -19 17 -36 36 -36h1548z" />
-    <glyph glyph-name="letter_status_rejected" unicode="&#xf01c;" horiz-adv-x="3044" 
-d="M1723 -46c57 -53 121 -100 191 -137c-17 -6 -35 -9 -54 -9h-1678c-50 0 -93 18 -128 54c-36 35 -54 78 -54 128v1241c0 50 18 93 54 128c35 36 78 54 128 54h1678c6 0 11 -1 17 -1c-68 -41 -130 -89 -185 -145h-1510c-19 0 -36 -17 -36 -36c0 -128 56 -236 167 -324
-c147 -115 299 -236 458 -361c4 -4 18 -16 40 -35c21 -18 39 -32 52 -42c12 -10 29 -22 50 -36c42 -28 76 -41 107 -41h1h2c30 0 65 13 106 41c21 14 38 26 51 36c12 10 31 24 52 42c22 19 36 31 40 35c55 42 106 84 159 125c-1 -15 -2 -30 -2 -46c0 -45 4 -89 10 -132
-c-38 -31 -74 -61 -106 -88c-39 -32 -71 -58 -95 -76s-57 -37 -99 -56c-41 -18 -80 -27 -116 -27h-2h-1c-36 0 -75 8 -117 27c-41 19 -74 38 -98 56s-56 44 -95 76c-119 101 -282 229 -485 386c-29 22 -55 48 -79 75v-876c0 -19 17 -36 36 -36h1541zM2998 636
-c31 -46 46 -98 46 -153c0 -65 -24 -120 -71 -168c-48 -48 -104 -71 -169 -71h-165c30 -62 45 -122 45 -180c0 -74 -11 -132 -33 -174c-44 -86 -132 -126 -237 -126c-32 0 -60 12 -84 35c-42 41 -68 110 -75 162s-21 113 -45 139c-29 31 -64 71 -100 119
-c-63 81 -106 130 -129 145h-256c-33 0 -62 11 -85 35c-24 23 -35 52 -35 85v599c0 33 11 61 35 85c23 23 52 35 85 35h270c14 0 57 13 129 38c79 27 150 47 209 62c59 14 122 20 187 20h105c87 0 158 -24 212 -74s80 -117 80 -202v-5c38 -48 56 -104 56 -167
-c0 -14 0 -27 -2 -40c23 -42 35 -87 35 -135c0 -22 -3 -44 -8 -64zM1827 981c23 24 23 61 0 85c-23 23 -61 23 -84 0c-24 -24 -24 -61 0 -85c23 -23 61 -23 84 0zM2887 400c25 24 37 52 37 84c0 21 -7 47 -21 76c-13 29 -30 43 -49 44c18 21 32 65 32 96c0 43 -16 81 -49 112
-c11 19 17 41 17 64c0 46 -24 99 -61 118c3 19 4 37 4 53c0 106 -64 156 -173 156h-120c-81 0 -189 -19 -320 -68l-27 -10l-67 -23c-37 -13 -66 -19 -95 -19h-30v-599h30c31 0 69 -31 106 -68c11 -10 24 -24 38 -41c14 -16 24 -29 32 -39l30 -39c12 -15 19 -25 21 -28
-c34 -43 59 -71 72 -85c26 -27 44 -61 56 -103c11 -41 21 -81 29 -117c7 -37 19 -64 35 -80c60 0 100 15 120 44s30 75 30 136c0 37 -15 87 -45 150c-30 64 -45 113 -45 150h330c31 0 59 12 83 36z" />
-    <glyph glyph-name="letter_status_end" unicode="&#xf01d;" horiz-adv-x="3158" 
-d="M2377 1413h99c28 0 50 -27 50 -61v-731c0 -34 -22 -61 -50 -61h-99c-27 0 -50 27 -50 61v731c0 34 23 61 50 61zM1833 -75v0c-6 -11 -18 -19 -30 -19h-1626c-19 0 -36 16 -36 35v849c24 -27 49 -52 77 -73c197 -152 354 -276 470 -374c38 -32 69 -56 92 -74
-c23 -17 55 -36 95 -54s78 -26 114 -26h1h1c35 0 73 8 112 26c41 19 73 37 97 54c23 18 54 42 91 74c54 46 118 97 190 154c-2 20 -3 39 -3 59c0 22 1 43 3 65c2 20 4 40 7 60c-83 -66 -168 -133 -255 -202c-5 -3 -18 -15 -39 -33s-39 -31 -51 -41s-28 -21 -50 -35
-c-39 -27 -72 -40 -102 -40h-1h-1c-30 0 -64 13 -104 40c-21 13 -37 25 -49 35s-30 23 -51 41s-34 30 -38 33c-154 121 -301 239 -443 350c-109 85 -163 190 -163 314c0 19 17 35 36 35h1626c5 0 9 -1 13 -2v0c21 14 42 26 64 38v0c22 11 44 21 67 30v0c-6 8 -12 16 -20 24
-c-34 34 -76 52 -124 52h-1626c-49 0 -91 -18 -125 -52s-52 -76 -52 -125v-1202c0 -48 18 -90 52 -125c34 -34 76 -52 125 -52h1626c48 0 90 18 124 52c15 14 25 30 33 47c-44 16 -86 36 -127 62zM2649 1267v-230c175 -83 296 -261 296 -467c0 -287 -232 -519 -518 -519
-s-518 232 -518 519c0 206 120 384 295 467v230c-295 -95 -509 -371 -509 -697c0 -404 328 -732 732 -732s731 328 731 732c0 326 -213 602 -509 697z" />
-    <glyph glyph-name="letter_status_newmail" unicode="&#xf01e;" horiz-adv-x="2976" 
-d="M1279 38l-26 84c-59 -30 -138 -46 -213 -46c-218 0 -374 139 -374 384c0 279 196 455 420 455c227 0 349 -148 349 -338c0 -168 -79 -249 -141 -247c-41 1 -51 40 -37 127l44 271c-37 20 -110 36 -174 36c-211 0 -343 -162 -343 -341c0 -120 69 -190 164 -190
-c78 0 144 38 189 113h3c7 -78 57 -113 126 -113c158 0 278 135 278 348c0 246 -185 423 -442 423c-331 0 -548 -259 -548 -557c0 -287 214 -461 457 -461c104 0 180 11 268 52zM1149 643l-21 -139c-12 -85 -70 -154 -124 -154c-49 0 -73 35 -73 91c0 112 76 208 172 208
-c19 0 34 -3 46 -6zM2504 1300l-293 -321l-431 59l215 -377l-190 -391l426 87l313 -301l49 432l383 204l-396 180zM1948 198l150 31v-371c0 -52 -19 -96 -55 -132c-36 -37 -81 -55 -132 -55h-1724c-51 0 -96 18 -132 55c-36 36 -55 80 -55 132v1274c0 51 19 96 55 132
-s81 55 132 55h1724c51 0 96 -19 132 -55s55 -81 55 -132v-37l-150 20c0 6 0 12 -1 17c0 21 -12 37 -36 37h-1724c-20 0 -37 -17 -37 -37c0 -131 57 -243 172 -333c55 -43 112 -88 168 -133c-16 -51 -28 -106 -32 -163c-70 55 -144 113 -227 177c-30 23 -57 49 -81 77v-899
-c0 -20 17 -37 37 -37h1724c20 0 37 17 37 37v340zM1633 686c48 38 96 76 143 113c6 5 11 11 17 17l76 -135l-1 -1c-85 -65 -160 -124 -230 -179c3 26 5 53 5 80c0 37 -4 72 -10 105z" />
-    <glyph glyph-name="letter_status_info" unicode="&#xf021;" horiz-adv-x="3181" 
-d="M1731 -85c58 -54 122 -101 192 -138c-17 -6 -35 -9 -54 -9h-1686c-50 0 -94 18 -129 54c-36 35 -54 79 -54 129v1246c0 51 18 94 54 130c35 35 79 54 129 54h1686c6 0 11 -1 17 -2c-68 -40 -130 -89 -186 -145h-1517c-19 0 -36 -17 -36 -37c0 -128 56 -237 168 -325
-c148 -116 300 -237 459 -363c5 -4 18 -15 40 -34s40 -32 53 -43c13 -10 29 -22 50 -36c42 -29 77 -42 108 -42h1h1c31 0 66 14 107 42c22 14 39 26 51 36c13 11 32 24 53 43c22 19 36 30 40 34c55 43 107 84 160 126c-1 -15 -2 -30 -2 -46c0 -45 4 -89 10 -133
-c-38 -31 -75 -61 -107 -88c-39 -33 -71 -58 -95 -77c-24 -18 -57 -37 -100 -56c-41 -18 -80 -27 -117 -27h-1h-1c-37 0 -76 8 -118 27c-41 19 -74 38 -98 56c-24 19 -56 44 -95 77c-120 101 -284 230 -488 387c-29 23 -55 48 -79 76v-880c0 -19 17 -36 36 -36h1548z
-M2357 1413c455 0 824 -369 824 -824s-369 -825 -824 -825s-824 370 -824 825s369 824 824 824zM2509 -119v986h-306v-986h306zM2354 988c101 0 166 69 165 153c-1 89 -64 155 -163 155s-161 -66 -161 -155c0 -84 62 -153 159 -153z" />
-    <glyph glyph-name="letter_status_attr" unicode="&#xf022;" horiz-adv-x="3859" 
-d="M2790 1292c80 -81 121 -177 121 -291s-41 -211 -121 -292c-81 -80 -177 -120 -291 -120s-212 39 -292 120c-81 80 -120 178 -120 292s39 210 120 291c80 80 178 121 292 121s210 -41 291 -121zM3859 636c0 71 -23 135 -67 195c-88 119 -229 188 -368 188
-c-194 0 -341 -85 -443 -255c-12 -19 -9 -36 9 -50l158 -120c6 -4 13 -7 23 -7c13 0 22 5 30 15c41 54 76 91 102 110c28 19 61 28 103 28c38 0 72 -10 102 -31c29 -20 45 -44 45 -70c0 -61 -29 -92 -105 -127c-50 -23 -97 -57 -139 -104c-42 -46 -62 -95 -62 -149v-43
-c0 -23 16 -38 38 -38h230c22 0 38 15 38 38c0 30 38 88 91 118c25 14 45 25 58 33c13 9 33 23 55 42c23 20 41 40 53 58c25 38 49 99 49 169zM1653 -193c12 -12 27 -22 41 -32h-1522c-47 0 -88 17 -122 50c-33 34 -50 74 -50 122v1167c0 48 17 88 50 122c34 33 75 50 122 50
-h1580c47 0 88 -17 121 -50c33 -34 50 -74 50 -122v-305c-50 -11 -96 -31 -137 -59v21c-23 -26 -47 -50 -74 -71c-192 -147 -345 -268 -457 -363c-37 -31 -67 -54 -89 -72c-23 -17 -54 -34 -94 -52c-38 -18 -75 -26 -109 -26h-1h-1c-35 0 -71 8 -111 26c-39 17 -70 35 -92 52
-c-23 18 -53 41 -89 72c-113 95 -266 216 -458 363c-27 21 -51 45 -74 71v-824c0 -19 16 -35 35 -35h1406c19 -39 42 -75 75 -105zM172 1149c-19 0 -35 -16 -35 -35c0 -120 53 -222 158 -304c139 -109 281 -223 431 -341c4 -3 16 -14 37 -32c20 -17 38 -30 50 -40
-c11 -9 27 -21 47 -34c39 -26 72 -39 101 -39h1h1c29 0 61 13 100 39c20 14 36 25 48 34c12 10 29 23 49 40c21 18 34 29 38 32c149 118 292 232 430 341c39 30 75 71 108 123s50 100 50 142c0 9 0 28 -1 39c0 20 -11 35 -33 35h-1580zM3106 -170c0 -12 1 -24 4 -35
-c-41 -19 -87 -31 -142 -31h-938c-87 0 -156 25 -208 76c-53 49 -79 117 -79 202c0 38 1 76 3 111c6 73 22 162 44 234c48 149 145 270 325 270c13 0 65 -37 124 -75c30 -19 69 -36 116 -51c48 -16 96 -23 144 -23s96 8 143 23c48 16 87 33 116 51c42 27 79 52 103 66
-c-1 -45 20 -88 59 -118l143 -108c25 -19 55 -29 88 -29c5 0 11 1 17 1c-41 -55 -62 -117 -62 -182v-39c0 -25 6 -48 17 -69c-11 -20 -17 -43 -17 -68v-206zM3553 -167v230c0 22 -16 38 -38 38h-230c-22 0 -38 -16 -38 -38v-230c0 -22 16 -38 38 -38h230c22 0 38 16 38 38z
-" />
-    <glyph glyph-name="letter_status_arev" unicode="&#xf023;" horiz-adv-x="3247" 
-d="M3247 589c0 -56 -5 -110 -16 -164c9 -12 16 -26 16 -42v-481c0 -30 -14 -51 -43 -63c-28 -12 -52 -7 -74 15l-139 138c-3 -3 -7 -5 -9 -8c-16 -14 -32 -28 -48 -41c-5 -3 -9 -6 -13 -9c-16 -12 -32 -24 -48 -34c-10 -7 -20 -13 -31 -19s-22 -13 -33 -19
-c-15 -8 -29 -14 -44 -21c-8 -4 -15 -8 -22 -11c-3 -1 -5 -2 -7 -3c-12 -4 -23 -8 -34 -12c-16 -6 -31 -12 -47 -16c-2 -1 -5 -2 -8 -2c-47 -14 -96 -24 -146 -29c-26 -2 -52 -4 -78 -4c-30 0 -58 2 -87 5c-12 1 -23 4 -35 5c-16 3 -32 5 -48 8c-17 4 -34 9 -51 13
-c-9 3 -18 5 -28 8c-22 8 -45 16 -67 26c-2 0 -3 0 -4 1c-1 0 -1 0 -2 1c-9 4 -20 7 -29 12c-111 52 -206 124 -284 219v2c-50 60 -91 128 -124 205c-44 102 -66 208 -66 320c0 56 6 110 17 163c-10 12 -17 27 -17 43v481c0 30 14 51 43 63c28 12 52 7 74 -15l140 -138
-c3 2 6 5 9 7c16 15 31 28 48 41c4 4 9 7 13 10c15 12 31 23 48 34l30 18c11 7 22 14 34 20c14 7 29 14 44 21c7 3 14 7 22 11c2 1 5 1 7 2c11 5 23 9 34 13c15 6 31 11 46 16c3 1 6 1 8 2c48 14 97 24 146 28c26 3 52 4 79 4c29 0 58 -2 87 -5c11 -1 23 -3 35 -5
-c16 -2 32 -4 48 -8c17 -3 34 -8 50 -13c10 -2 19 -5 28 -8c23 -7 46 -16 68 -25c1 -1 2 -1 4 -1c0 -1 1 -1 1 -1l30 -12c110 -52 206 -124 283 -219c1 -1 0 -1 1 -2c49 -61 91 -129 124 -205c44 -102 65 -209 65 -320zM2698 451h256c12 44 18 90 18 138
-c0 129 -45 248 -121 342c-5 7 -11 13 -17 20c-65 74 -150 131 -246 162c-3 0 -6 1 -8 2c-15 4 -29 8 -44 11c-6 2 -13 3 -20 4c-12 2 -23 4 -35 5c-14 2 -29 2 -44 3h-14c-6 0 -12 0 -18 -1c-12 0 -24 0 -36 -1c-5 -1 -10 -2 -15 -2c-13 -2 -27 -4 -40 -7c-2 0 -4 -1 -5 -1
-c-99 -21 -187 -69 -259 -136l146 -147c22 -22 27 -46 15 -74c-12 -29 -33 -43 -63 -43h-256c-12 -44 -19 -90 -19 -137c0 -129 46 -248 122 -343c5 -6 11 -13 16 -19c66 -74 150 -131 247 -162c2 -1 5 -2 8 -2c14 -5 29 -8 43 -12c7 -1 14 -2 20 -3c12 -2 24 -4 36 -5
-c14 -2 28 -3 42 -3c5 0 11 -1 16 -1c6 0 12 1 18 1c12 1 24 1 36 2c5 0 9 1 14 2c14 2 28 4 41 6c2 1 3 1 5 2c98 21 187 69 259 135l-147 147c-22 23 -26 46 -15 74c12 29 34 43 64 43zM1709 -20c36 -43 77 -82 121 -118c-24 -12 -50 -19 -78 -19h-1580
-c-47 0 -88 17 -122 50c-33 34 -50 74 -50 122v1167c0 48 17 88 50 122c34 33 75 50 122 50h1332c-11 -24 -19 -50 -19 -78v-59h-1313c-19 0 -35 -16 -35 -35c0 -120 53 -222 158 -304c139 -109 281 -223 431 -341c4 -3 17 -14 37 -32c20 -17 38 -30 50 -40
-c11 -9 27 -21 47 -34c39 -26 72 -39 101 -39h1h1c29 0 61 13 100 39c20 14 36 25 48 34c12 10 29 23 49 40c21 18 34 29 38 32c99 79 195 155 289 229c2 -11 5 -22 9 -32c-7 -47 -11 -94 -11 -142c-89 -71 -167 -133 -230 -187c-37 -31 -67 -54 -89 -72
-c-23 -17 -54 -34 -94 -52c-38 -18 -75 -26 -109 -26h-1h-1c-35 0 -71 8 -111 26c-39 17 -70 35 -92 52c-23 18 -53 41 -89 72c-113 95 -266 216 -458 363c-27 21 -51 45 -74 71v-824c0 -19 16 -35 35 -35h1537z" />
-    <glyph glyph-name="letter_status_aval" unicode="&#xf024;" horiz-adv-x="4142" 
-d="M1731 -85c58 -54 122 -101 192 -138c-17 -6 -35 -9 -54 -9h-1686c-50 0 -94 18 -129 54c-36 35 -54 79 -54 129v1246c0 51 18 94 54 130c35 35 79 54 129 54h1686c6 0 11 -1 17 -2c-68 -40 -130 -89 -186 -145h-1517c-19 0 -36 -17 -36 -37c0 -128 56 -237 168 -325
-c148 -116 300 -237 459 -363c5 -4 18 -15 40 -34s40 -32 53 -43c13 -10 29 -22 50 -36c42 -29 77 -42 108 -42h1h1c31 0 66 14 107 42c22 14 39 26 51 36c13 11 32 24 53 43c22 19 36 30 40 34c55 43 107 84 160 126c-1 -15 -2 -30 -2 -46c0 -45 4 -89 10 -133
-c-38 -31 -75 -61 -107 -88c-39 -33 -71 -58 -95 -77c-24 -18 -57 -37 -100 -56c-41 -18 -80 -27 -117 -27h-1h-1c-37 0 -76 8 -118 27c-41 19 -74 38 -98 56c-24 19 -56 44 -95 77c-120 101 -284 230 -488 387c-29 23 -55 48 -79 76v-880c0 -19 17 -36 36 -36h1548z
-M3318 1413c455 0 824 -369 824 -824s-369 -825 -824 -825c-179 0 -345 59 -480 156c-136 -97 -301 -156 -481 -156c-455 0 -824 370 -824 825s369 824 824 824c180 0 345 -58 481 -155c135 97 301 155 480 155zM2684 791c23 31 23 82 0 112l-83 111c-22 31 -60 31 -83 0
-l-400 -538l-179 242c-23 30 -60 30 -83 0l-83 -112c-22 -30 -22 -81 0 -111l221 -297l83 -111c22 -30 60 -31 83 0l83 111zM3825 321l-268 268l268 268c6 6 9 15 9 25c0 9 -3 17 -9 23l-147 147c-6 6 -14 9 -23 9c-10 0 -19 -3 -25 -9l-268 -268l-268 268c-7 6 -15 9 -25 9
-s-17 -3 -24 -9l-146 -147c-6 -6 -10 -14 -10 -23c0 -10 4 -19 10 -25l268 -268l-268 -268c-6 -7 -10 -15 -10 -25s4 -17 10 -24l146 -146c7 -6 14 -10 24 -10s18 4 25 10l268 268l268 -268c6 -6 15 -10 25 -10c9 0 17 4 23 10l147 146c6 7 9 14 9 24s-3 18 -9 25z" />
-    <glyph glyph-name="letter_status_aimp" unicode="&#xf025;" horiz-adv-x="3325" 
-d="M1695 -88c38 -24 77 -42 118 -57c-7 -15 -17 -30 -30 -43c-32 -31 -71 -48 -116 -48h-1504c-44 0 -83 17 -115 48c-32 32 -48 71 -48 116v1111c0 45 16 84 48 116s71 48 115 48h1504c45 0 84 -16 116 -48c7 -7 12 -14 18 -22v0c-21 -8 -42 -17 -62 -28v0
-c-21 -11 -40 -22 -60 -35v0c-3 1 -7 2 -12 2h-1504c-17 0 -32 -15 -32 -33c0 -114 50 -211 150 -290c132 -103 268 -211 410 -324c4 -3 16 -13 35 -30c20 -17 36 -29 47 -38c12 -9 27 -20 45 -33c38 -25 69 -36 96 -36h1h1c28 0 59 12 95 36c20 14 35 24 46 33
-c12 9 28 21 47 38c20 17 32 27 36 30c81 64 159 126 237 188c-3 -19 -6 -38 -7 -57c-2 -19 -3 -39 -3 -59c0 -19 1 -37 2 -55c-66 -52 -125 -100 -175 -142c-35 -30 -63 -52 -84 -69c-22 -16 -51 -33 -89 -50c-37 -16 -72 -24 -105 -24h-1h-1c-32 0 -67 7 -105 24
-c-37 17 -66 34 -88 50c-21 17 -50 39 -85 69c-107 90 -252 205 -435 345c-26 20 -49 43 -70 68v-785c0 -17 15 -33 32 -33h1504c12 0 23 8 28 17v0zM3267 701c38 -38 58 -84 58 -138v-425c0 -17 -16 -33 -33 -33h-229v-163c0 -54 -44 -98 -98 -98h-981c-54 0 -98 44 -98 98
-v163h-229c-17 0 -32 16 -32 33v425c0 54 19 100 57 138c39 39 85 58 139 58h65v556c0 54 44 98 98 98h687c28 0 57 -7 90 -20c33 -14 58 -30 77 -49l156 -156c19 -19 36 -45 49 -77c13 -33 20 -63 20 -90v-262h66c54 0 99 -20 138 -58zM2933 -25v261h-916v-261h916z
-M2933 628v393h-164c-54 0 -98 44 -98 98v163h-654v-654h916zM3175 517c25 26 25 67 0 92c-26 26 -67 26 -92 0c-26 -25 -26 -66 0 -92c25 -25 66 -25 92 0z" />
-    <glyph glyph-name="letter_status_imp" unicode="&#xf026;" horiz-adv-x="3678" 
-d="M1608 59c36 -23 73 -40 112 -54c-7 -14 -17 -28 -29 -41c-30 -30 -67 -45 -109 -45h-1427c-43 0 -79 15 -109 45s-46 67 -46 110v1054c0 43 16 80 46 110s66 45 109 45h1427c42 0 79 -15 109 -45c7 -7 12 -14 17 -21v0c-20 -8 -39 -17 -59 -26v-1
-c-19 -10 -38 -21 -56 -33v0c-4 1 -7 2 -11 2h-1427c-16 0 -31 -14 -31 -31c0 -108 47 -200 142 -275c125 -98 254 -201 389 -307c4 -3 15 -13 34 -29c18 -16 34 -27 45 -36c10 -9 24 -19 42 -31c36 -24 65 -35 91 -35h1h1c26 0 56 12 90 35c19 12 33 22 44 31s26 20 45 36
-c18 16 30 26 33 29c77 60 152 119 225 177c-3 -17 -5 -35 -7 -53c-1 -19 -2 -37 -2 -57c0 -17 1 -34 2 -51c-63 -50 -119 -96 -166 -135c-33 -28 -60 -50 -81 -65c-20 -16 -48 -31 -84 -48c-35 -15 -68 -23 -99 -23h-1h-1c-31 0 -64 7 -100 23c-35 16 -63 32 -83 48
-c-20 15 -47 37 -80 65c-102 85 -240 194 -413 327c-25 19 -47 41 -67 64v-744c0 -17 15 -31 31 -31h1427c11 0 21 7 26 16v0zM3663 584c21 28 20 74 0 102l-76 102c-21 27 -55 27 -76 0l-502 -648l-163 220c-21 28 -55 28 -76 0l-75 -101c-21 -28 -21 -74 0 -102l201 -270
-l75 -102c21 -27 55 -27 76 0l76 102zM2570 49l92 -124h-780c-51 0 -93 41 -93 93v155h-217c-16 0 -31 14 -31 31v403c0 51 19 95 54 131c37 37 81 55 132 55h62v527c0 51 42 93 93 93h651c27 0 55 -7 86 -19c31 -13 55 -28 73 -47l148 -147c18 -19 34 -43 46 -74
-c13 -31 20 -59 20 -85v-248h62c51 0 94 -19 130 -55s55 -78 55 -128l-144 -194l-31 42c-41 56 -103 88 -170 88s-129 -32 -170 -87l-75 -102c-14 -19 -24 -39 -32 -60h-618v-248h657zM2924 650c-24 -24 -24 -63 0 -87s63 -24 87 0s24 63 0 87c-24 25 -63 25 -87 0z
-M1913 1289v-620h869v372h-155c-52 0 -94 42 -94 93v155h-620z" />
-    <glyph glyph-name="letter_status_aenv" unicode="&#xf027;" horiz-adv-x="2919" 
-d="M1948 36c48 -27 98 -46 150 -60v-24c0 -52 -19 -96 -55 -133c-36 -36 -81 -55 -132 -55h-1724c-51 0 -96 19 -132 55c-36 37 -55 81 -55 133v1274c0 51 19 96 55 132s81 55 132 55h1724c51 0 96 -19 132 -55c35 -35 54 -78 55 -128c-53 -13 -103 -33 -151 -60
-c0 4 1 8 1 12c0 11 0 31 -1 44c0 21 -12 37 -36 37h-1724c-20 0 -37 -17 -37 -37c0 -131 57 -243 172 -333c151 -118 307 -242 470 -371c4 -4 18 -16 41 -35c21 -19 40 -33 53 -43c13 -11 30 -23 52 -38c43 -29 78 -42 110 -42h1h1c32 0 67 14 109 42c23 15 40 27 53 38
-c13 10 32 24 54 43s36 31 41 35c115 91 225 178 334 264c-17 -57 -25 -118 -25 -182c0 -9 0 -17 1 -25c-96 -76 -180 -143 -248 -201c-40 -34 -73 -60 -97 -78c-25 -19 -59 -38 -102 -58c-42 -19 -82 -28 -120 -28h-1h-1c-38 0 -78 9 -121 28c-42 19 -76 39 -100 58
-c-25 18 -58 44 -98 78c-122 103 -289 235 -498 396c-30 23 -57 49 -81 77v-899c0 -20 17 -38 37 -38h1724c20 0 37 18 37 38v84zM2728 1061c127 -127 191 -280 191 -457c0 -178 -64 -331 -191 -459c-125 -125 -279 -189 -457 -189c-177 0 -331 63 -458 189
-c-126 127 -189 281 -189 459c0 177 63 331 189 457c127 127 281 190 458 190c178 0 331 -64 457 -190zM2736 573c17 17 17 44 0 61l-501 501c-17 17 -44 17 -61 0l-112 -112c-17 -17 -17 -44 0 -61l359 -358l-359 -359c-17 -17 -17 -44 0 -61l112 -112c17 -17 44 -17 61 0z
-" />
-    <glyph glyph-name="letter_status_acla" unicode="&#xf028;" horiz-adv-x="3158" 
-d="M1826 174h1332v-410h-1332v410zM2736 -139v217h-457v-217h118v99h221v-99h118zM1826 686h1332v-409h-1332v409zM2736 373v217h-457v-217h118v99h221v-99h118zM2882 1411l276 -212v-410h-1332v410l275 212h781zM2736 885v217h-457v-217h118v99h221v-99h118zM1727 -85v-150
-h-1540c-51 0 -96 19 -132 55s-55 81 -55 132v1274c0 51 19 96 55 132s81 55 132 55h1723c10 0 19 -1 28 -3l-173 -133c-5 -4 -10 -9 -14 -14h-1564c-20 0 -37 -17 -37 -37c0 -131 57 -243 172 -333c151 -118 306 -242 469 -371c5 -3 19 -15 41 -35c22 -19 41 -33 54 -43
-c13 -11 30 -23 52 -37c42 -29 78 -43 110 -43h1h1c32 0 67 14 109 43c22 15 40 26 52 37c13 10 32 24 54 43c23 20 37 32 41 35c146 115 285 226 421 333v-66c0 -19 7 -36 16 -51c-9 -16 -16 -32 -16 -52v-20c-145 -113 -265 -209 -359 -288c-40 -33 -72 -59 -97 -78
-c-24 -19 -58 -38 -102 -57c-42 -19 -82 -28 -119 -28h-1h-1c-38 0 -78 8 -121 28c-42 19 -76 38 -101 57c-24 19 -57 45 -97 78c-123 104 -289 235 -498 396c-30 23 -57 49 -81 77v-899c0 -20 17 -37 37 -37h1540z" />
-    <glyph glyph-name="letter_status_aarch" unicode="&#xf029;" horiz-adv-x="3293" 
-d="M2567 438c76 0 137 61 137 137s-61 137 -137 137s-137 -61 -137 -137s61 -137 137 -137zM2080 976c14 0 25 -11 25 -25v-122c0 -13 -11 -25 -25 -25h-193v-39c0 -14 -11 -25 -25 -25h-98c-14 0 -25 11 -25 25v250c0 14 11 25 25 25h98c14 0 25 -11 25 -25v-39h193z
-M2080 352c14 0 25 -11 25 -25v-122c0 -14 -11 -25 -25 -25h-193v-39c0 -14 -11 -25 -25 -25h-98c-14 0 -25 11 -25 25v250c0 14 11 25 25 25h98c14 0 25 -11 25 -25v-39h193zM2587 804v130h-40v-130h40zM2587 216v130h-40v-130h40zM2416 749l32 23l-76 105l-32 -23z
-M2762 273l32 23l-76 105l-32 -23zM2343 627l12 38l-123 40l-12 -38zM2902 446l12 37l-123 40l-12 -37zM2232 446l123 40l-12 37l-123 -40zM2791 627l123 40l-12 38l-123 -40zM2372 273l76 105l-32 23l-76 -105zM2718 749l76 105l-32 23l-76 -105zM2567 1063
-c270 0 488 -218 488 -488c0 -269 -218 -488 -488 -488s-488 219 -488 488c0 270 218 488 488 488zM2567 203c206 0 372 167 372 372c0 206 -166 372 -372 372s-372 -166 -372 -372c0 -205 166 -372 372 -372zM3218 1413c42 0 75 -34 75 -75v-1498c0 -42 -33 -76 -75 -76
-h-1516c-42 0 -76 34 -76 76v1498c0 41 34 75 76 75h1516zM3118 21v1139c0 41 -33 75 -75 75h-1157c-41 0 -75 -34 -75 -75v-75h-47c-39 0 -70 -31 -70 -70v-250c0 -38 31 -70 70 -70h47v-234h-47c-39 0 -70 -32 -70 -70v-250c0 -38 31 -70 70 -70h47v-50
-c0 -41 34 -75 75 -75h1157c42 0 75 34 75 75zM1533 -160c0 -15 3 -28 6 -42h-1363c-48 0 -90 18 -124 52s-52 76 -52 124v1198c0 48 18 90 52 124s76 52 124 52h1358c0 -4 -1 -7 -1 -10v-131h-1357c-19 0 -35 -17 -35 -35c0 -124 54 -228 162 -313
-c142 -111 288 -228 441 -349c4 -3 17 -14 39 -33c20 -18 38 -31 50 -41c12 -9 28 -21 49 -35c40 -27 73 -39 103 -39h1h1c30 0 63 13 103 39c21 14 37 26 49 35c12 10 30 23 51 41c21 19 34 30 38 33c105 83 206 163 305 241v-177c-95 -75 -179 -142 -246 -199
-c-38 -32 -69 -56 -92 -74c-23 -17 -55 -35 -95 -54c-40 -18 -78 -26 -113 -26h-1h-1c-35 0 -73 8 -113 26s-72 37 -95 54c-23 18 -54 42 -91 74c-116 97 -273 221 -469 372c-28 21 -53 46 -76 73v-846c0 -18 16 -35 35 -35h1357v-99z" />
-    <glyph glyph-name="doc" unicode="&#xf02a;" horiz-adv-x="1413" 
-d="M1395 994c12 -30 18 -57 18 -81v-1060c0 -49 -39 -89 -88 -89h-1237c-48 0 -88 40 -88 89v1472c0 49 40 88 88 88h825c25 0 51 -6 81 -18c29 -12 52 -27 70 -44l287 -287c17 -18 32 -41 44 -70zM942 1288v-346h346c-6 18 -13 30 -20 38l-288 288c-8 7 -20 14 -38 20z
-M1295 -118v942h-382c-49 0 -89 40 -89 89v382h-706v-1413h1177z" />
-    <glyph glyph-name="doc_add" unicode="&#xf02b;" horiz-adv-x="2151" 
-d="M2001 721c99 -99 150 -219 150 -359c0 -139 -50 -260 -150 -360c-99 -99 -220 -149 -359 -149c-140 0 -261 50 -360 149c-100 100 -149 221 -149 360c0 140 50 261 149 359c99 100 220 150 360 150c139 0 259 -50 359 -150zM1969 290c19 0 36 17 36 36v73
-c0 19 -17 36 -36 36h-255v255c0 19 -17 36 -36 36h-73c-19 0 -36 -17 -36 -36v-255h-255c-19 0 -36 -17 -36 -36v-73c0 -19 17 -36 36 -36h255v-255c0 -19 17 -36 36 -36h73c19 0 36 17 36 36v255h255zM1295 -10c37 -35 76 -62 118 -84v-53c0 -49 -39 -89 -88 -89h-1237
-c-48 0 -88 40 -88 89v1472c0 49 40 88 88 88h825c25 0 51 -6 81 -18c29 -12 52 -27 70 -44l287 -287c17 -18 32 -41 44 -70c12 -30 18 -57 18 -81v-95c-42 -22 -81 -50 -118 -84v90h-382c-49 0 -89 40 -89 89v382h-706v-1413h1177v108zM942 1288v-346h346
-c-6 18 -13 30 -20 38l-288 288c-8 7 -20 14 -38 20z" />
-    <glyph glyph-name="doc_search" unicode="&#xf02c;" horiz-adv-x="2151" 
-d="M1830 269c37 37 55 82 55 134s-18 97 -55 134s-82 56 -134 56s-97 -19 -134 -56s-56 -82 -56 -134s19 -97 56 -134s82 -55 134 -55s97 18 134 55zM2001 708c99 -99 150 -219 150 -359s-50 -260 -150 -360c-99 -99 -220 -149 -359 -149c-140 0 -261 50 -360 149
-c-100 99 -149 220 -149 360s50 260 149 359c99 100 220 150 360 150c139 0 259 -51 359 -150zM1970 287c16 37 24 76 24 116s-8 79 -24 116c-15 36 -37 68 -63 95c-27 26 -59 48 -95 63c-37 16 -76 24 -116 24s-79 -8 -116 -24c-37 -15 -68 -37 -95 -63
-c-27 -27 -48 -59 -63 -95c-16 -37 -24 -76 -24 -116c0 -62 17 -118 52 -169l-145 -145c-10 -10 -15 -23 -15 -38s5 -27 16 -38c10 -10 23 -16 38 -16s28 6 38 16l145 145c50 -35 107 -53 169 -53c40 0 79 8 116 24c73 31 127 85 158 158zM1295 -24c37 -34 76 -62 118 -83
-v-40c0 -49 -39 -89 -88 -89h-1237c-48 0 -88 40 -88 89v1472c0 49 40 88 88 88h825c25 0 51 -6 81 -18c29 -12 52 -27 70 -44l287 -287c17 -18 32 -41 44 -70c12 -30 18 -57 18 -81v-109c-42 -21 -81 -49 -118 -83v103h-382c-49 0 -89 40 -89 89v382h-706v-1413h1177v94z
-M942 1288v-346h346c-6 18 -13 30 -20 38l-288 288c-8 7 -20 14 -38 20z" />
-    <glyph glyph-name="doc_del" unicode="&#xf02d;" horiz-adv-x="2151" 
-d="M2001 699c99 -99 150 -219 150 -359c0 -139 -50 -260 -150 -360c-99 -99 -220 -149 -359 -149c-140 0 -261 50 -360 149c-100 100 -149 221 -149 360c0 140 50 260 149 359c99 100 220 150 360 150c139 0 259 -50 359 -150zM1993 292v96c0 27 -22 48 -48 48h-607
-c-26 0 -47 -21 -47 -48v-96c0 -26 21 -48 47 -48h607c26 0 48 22 48 48zM1295 -32c37 -35 76 -63 118 -84v-31c0 -49 -39 -89 -88 -89h-1237c-48 0 -88 40 -88 89v1472c0 49 40 88 88 88h825c25 0 51 -6 81 -18c29 -12 52 -27 70 -44l287 -287c17 -18 32 -41 44 -70
-c12 -30 18 -57 18 -81v-117c-42 -22 -81 -50 -118 -84v112h-382c-49 0 -89 40 -89 89v382h-706v-1413h1177v86zM942 1288v-346h346c-6 18 -13 30 -20 38l-288 288c-8 7 -20 14 -38 20z" />
-    <glyph glyph-name="archive" unicode="&#xf02e;" horiz-adv-x="1786" 
-d="M1786 1344v-274c0 -38 -31 -69 -69 -69h-1648c-38 0 -69 31 -69 69v274c0 38 31 69 69 69h1648c38 0 69 -31 69 -69zM1649 932c37 0 68 -31 68 -68v-1031c0 -37 -31 -69 -68 -69h-1512c-37 0 -68 32 -68 69v1031c0 37 31 68 68 68h1512zM1030 589c38 0 69 31 69 68
-c0 38 -31 69 -69 69h-274c-38 0 -69 -31 -69 -69c0 -37 31 -68 69 -68h274z" />
-    <glyph glyph-name="archive_add" unicode="&#xf02f;" horiz-adv-x="2855" 
-d="M2644 1057c139 -140 211 -308 211 -505s-71 -366 -211 -507c-140 -139 -309 -210 -506 -210s-367 70 -507 210s-209 310 -209 507s70 366 209 505c141 141 310 211 507 211s366 -71 506 -211zM2599 450c27 0 51 24 51 51v102c0 27 -24 51 -51 51h-359v359
-c0 27 -24 51 -51 51h-102c-27 0 -51 -24 -51 -51v-359h-358c-28 0 -52 -24 -52 -51v-102c0 -27 24 -51 52 -51h358v-359c0 -27 24 -51 51 -51h102c27 0 51 24 51 51v359h359zM1535 1154c-48 -48 -88 -99 -122 -153h-1344c-38 0 -69 31 -69 69v274c0 38 31 69 69 69h1648
-c38 0 69 -31 69 -69v-14c-91 -42 -175 -100 -251 -176zM1535 -51c55 -55 115 -101 178 -138c-9 -27 -35 -47 -64 -47h-1512c-37 0 -68 32 -68 69v1031c0 37 31 68 68 68h1237c-59 -115 -89 -242 -89 -380c0 -235 84 -438 250 -603zM1030 589c38 0 69 31 69 68
-c0 38 -31 69 -69 69h-274c-38 0 -69 -31 -69 -69c0 -37 31 -68 69 -68h274z" />
-    <glyph glyph-name="archive_search" unicode="&#xf030;" horiz-adv-x="2984" 
-d="M2508 449c47 47 70 104 70 171c0 66 -23 123 -70 170c-48 47 -105 71 -171 71s-123 -24 -170 -71c-48 -47 -72 -104 -72 -170c0 -67 24 -124 72 -171c46 -47 104 -71 170 -71s123 24 171 71zM2773 1056c140 -140 211 -309 211 -505c0 -197 -70 -366 -211 -507
-c-139 -139 -308 -210 -505 -210s-367 70 -507 210s-210 310 -210 507c0 196 71 366 210 505c141 141 310 211 507 211s365 -71 505 -211zM2687 472c20 47 29 96 29 148c0 51 -10 100 -29 147c-20 47 -47 87 -81 121s-75 61 -122 81c-46 20 -96 30 -147 30s-100 -10 -147 -30
-s-88 -47 -122 -81c-33 -34 -60 -74 -80 -121s-31 -96 -31 -147c0 -80 23 -151 67 -215l-185 -185c-13 -14 -19 -30 -19 -49s7 -35 20 -48c13 -14 30 -21 48 -21c20 0 36 8 49 21l185 184c64 -45 136 -67 215 -67c51 0 101 10 147 30c94 40 162 109 203 202zM1665 -53
-c17 -17 34 -32 52 -48v-66c0 -37 -31 -69 -68 -69h-1512c-37 0 -68 32 -68 69v1031c0 37 31 68 68 68h1367c-59 -115 -89 -243 -89 -381c0 -235 84 -438 250 -604zM1030 589c38 0 69 31 69 68c0 38 -31 69 -69 69h-274c-38 0 -69 -31 -69 -69c0 -37 31 -68 69 -68h274z
-M1665 1152c-48 -47 -88 -98 -122 -151h-1474c-38 0 -69 31 -69 69v274c0 38 31 69 69 69h1648c38 0 69 -31 69 -69v-90c-42 -29 -83 -63 -121 -102z" />
-    <glyph glyph-name="archive_del" unicode="&#xf031;" horiz-adv-x="2968" 
-d="M2757 1017c140 -140 211 -309 211 -506c0 -196 -70 -366 -211 -507c-139 -139 -308 -209 -505 -209s-367 70 -507 209c-140 140 -209 311 -209 507c0 197 70 367 209 506c141 140 310 211 507 211s365 -71 505 -211zM2707 275l-236 236l236 237c29 29 29 79 0 109
-l-110 109c-29 30 -79 30 -109 0l-236 -236l-236 236c-30 30 -80 30 -110 0l-109 -109c-30 -30 -30 -80 0 -109l236 -237l-236 -236c-30 -30 -30 -80 0 -109l109 -110c30 -29 80 -29 110 0l236 237l236 -237c30 -29 80 -29 109 0l110 110c29 29 29 79 0 109zM1649 1113
-c-36 -36 -67 -73 -95 -112h-1485c-38 0 -69 31 -69 69v274c0 38 31 69 69 69h1648c38 0 69 -31 69 -69v-118c-48 -32 -94 -70 -137 -113zM1649 -92c22 -22 45 -43 68 -62v-13c0 -37 -31 -69 -68 -69h-1512c-37 0 -68 32 -68 69v1031c0 37 31 68 68 68h1373
-c-73 -125 -111 -266 -111 -421c0 -235 84 -438 250 -603zM1030 589c38 0 69 31 69 68c0 38 -31 69 -69 69h-274c-38 0 -69 -31 -69 -69c0 -37 31 -68 69 -68h274z" />
-    <glyph glyph-name="file_format" unicode="&#xf032;" horiz-adv-x="2004" 
-d="M501 1413v-304c0 -30 24 -54 54 -54h304v-590c0 -30 -24 -54 -54 -54h-751c-30 0 -54 24 -54 54v894c0 30 24 54 54 54h447zM837 1127h-264v264c8 -5 15 -11 20 -16l228 -228c5 -5 11 -12 16 -20zM1074 1090v-304c0 -30 24 -54 53 -54h304v-591c0 -29 -24 -53 -53 -53
-h-752c-30 0 -54 24 -54 53v895c0 30 24 54 54 54h448zM1409 804h-264v264c9 -5 15 -11 20 -16l228 -228c5 -5 11 -12 16 -20zM1646 767v-305c0 -29 24 -53 54 -53h304v-591c0 -29 -24 -54 -54 -54h-751c-30 0 -54 25 -54 54v895c0 30 24 54 54 54h447zM1982 480h-264v264
-c8 -5 15 -10 20 -15l228 -229c5 -5 10 -11 16 -20zM271 1012c-20 -22 -30 -46 -30 -73c0 -30 9 -54 28 -71c18 -17 46 -29 85 -36v-145c-30 2 -51 13 -62 33c-6 12 -10 29 -11 54h-48c0 -31 6 -55 16 -73c18 -33 53 -52 105 -55v-52h25v52c32 4 57 11 74 22
-c31 20 46 53 46 101c0 32 -12 57 -36 74c-15 10 -43 21 -84 32v130c25 -1 43 -10 54 -28c6 -10 9 -22 11 -35h46c-1 30 -10 54 -29 72c-19 19 -46 29 -82 32v35h-25v-36c-36 0 -64 -11 -83 -33zM307 901c-12 10 -18 24 -18 41c0 15 5 29 15 42s26 21 50 21v-125
-c-20 4 -36 11 -47 21zM442 719c-11 -21 -32 -32 -63 -34v140c22 -6 38 -12 48 -19c16 -11 24 -28 24 -50c0 -14 -3 -27 -9 -37zM960 719h-57v-109l-104 38l-19 -54l106 -34l-66 -92l49 -34l64 95l63 -95l48 34l-65 92l105 34l-19 53l-105 -36v108zM1573 56h1
-c77 0 136 60 136 136c0 75 -61 136 -136 136s-137 -61 -136 -137c1 -77 61 -135 135 -135z" />
-    <glyph glyph-name="file_fingerprint" unicode="&#xf033;" horiz-adv-x="1204" 
-d="M938 1140c-62 30 -154 42 -201 39c-430 -31 -626 -348 -678 -731c-25 78 -27 98 -41 159c18 137 149 400 312 503c164 104 307 155 505 135c24 -10 73 -68 103 -105zM1099 662c37 -28 -138 106 0 0c34 -26 65 -54 93 -86c7 -42 11 -85 12 -128
-c-111 142 -251 273 -446 253c-173 -18 -338 -127 -396 -294c-58 -164 -23 -358 109 -474c166 -146 436 -185 603 -22c-117 -163 -320 -179 -494 -102c-90 39 -170 99 -239 168c-56 85 -77 187 -75 287c10 416 504 650 833 398zM983 585c92 -49 -93 48 0 0
-c70 -38 166 -131 220 -230c-1 -41 0 -76 -18 -168c-20 250 -331 480 -565 338c-193 -118 -164 -464 28 -569c87 -48 210 -63 291 3c110 90 79 244 5 347c-57 80 -226 154 -268 18c-36 -116 20 -266 151 -280c145 -16 53 172 15 227c-94 77 -97 -26 -45 -82
-c25 -18 53 -7 71 -31c28 -37 0 -53 -30 -52c-95 5 -163 100 -140 193c26 111 165 67 210 -2c47 -73 106 -190 45 -271c-73 -96 -224 -45 -292 30c-55 61 -70 169 -60 247c15 125 135 193 254 156c105 -33 175 -136 207 -237c73 -228 -107 -414 -336 -367
-c-231 47 -340 287 -296 507c52 254 340 335 553 223zM98 1080c119 180 325 289 477 317c48 -13 94 -33 138 -59c-178 9 -354 -75 -477 -200c-128 -130 -202 -304 -225 -483c-23 166 -13 348 63 502c71 145 204 251 369 256c-164 -49 -279 -179 -345 -333zM1118 834
-c20 -47 38 -96 51 -145c-169 210 -453 212 -675 82c-200 -117 -306 -336 -330 -560c-16 27 -33 56 -44 85c-27 51 -36 75 -41 99c24 153 95 361 184 464c140 160 255 243 535 255c63 3 125 -10 185 -33c26 -37 50 -76 72 -116c-194 133 -479 93 -653 -58
-c-115 -100 -184 -240 -224 -387c19 40 42 79 67 115c88 123 117 173 355 259c116 42 245 53 365 17c55 -16 107 -42 153 -77z" />
-    <glyph glyph-name="folder_type" unicode="&#xf034;" horiz-adv-x="2056" 
-d="M886 556v-438h-265c-41 0 -76 15 -105 44c-30 30 -45 65 -45 106v642c0 41 15 76 45 105c29 30 64 45 105 45h214c41 0 76 -15 106 -45c29 -29 44 -64 44 -105v-22h449c41 0 77 -14 106 -44c29 -29 44 -65 44 -105v-148h-74c-7 42 -27 80 -58 111c-39 40 -90 61 -145 61
-h-214c-56 0 -106 -21 -146 -61s-61 -90 -61 -146zM415 910v-438h-265c-41 0 -76 14 -106 44c-29 29 -44 65 -44 105v642c0 41 15 77 44 106c30 29 65 44 106 44h214c41 0 76 -15 105 -44c30 -29 45 -65 45 -106v-21h449c41 0 76 -15 105 -44c30 -30 45 -65 45 -106v-147h-74
-c-7 42 -27 79 -58 110c-40 40 -90 61 -146 61h-214c-55 0 -106 -21 -145 -61c-40 -39 -61 -90 -61 -145zM98 1077c-24 -26 -35 -55 -35 -87c0 -37 11 -65 33 -85c22 -21 56 -35 102 -44v-173c-36 2 -61 16 -74 40c-8 13 -12 35 -14 64h-56c0 -37 6 -66 18 -87
-c22 -40 64 -62 126 -66v-62h30v62c38 4 68 13 88 26c37 24 55 64 55 121c0 39 -14 68 -43 88c-17 12 -51 25 -100 39v155c29 -1 51 -12 64 -34c7 -11 12 -25 13 -41h56c-1 36 -13 65 -36 87c-22 22 -55 34 -97 37v42h-30v-43c-43 0 -76 -13 -100 -39zM141 944
-c-14 12 -21 28 -21 49c0 18 6 34 18 50s32 25 60 26v-150c-24 5 -43 13 -57 25zM303 726c-14 -25 -39 -38 -75 -40v167c26 -7 45 -14 57 -22c19 -14 29 -34 29 -61c0 -17 -4 -31 -11 -44zM717 685h-67v-130l-125 45l-23 -64l127 -41l-79 -109l59 -41l76 113l76 -113l57 41
-l-78 109l126 41l-23 64l-126 -44v129zM2056 385v-471c0 -41 -15 -76 -45 -105c-29 -30 -64 -45 -105 -45h-813c-41 0 -77 15 -106 45c-29 29 -44 64 -44 105v642c0 41 15 76 44 106c29 29 65 44 106 44h214c40 0 76 -15 105 -44c30 -30 44 -65 44 -106v-21h450
-c41 0 76 -15 105 -44c30 -30 45 -65 45 -106zM1484 -32h1c92 0 163 71 163 163c0 90 -73 163 -163 163c-89 0 -163 -73 -162 -165c0 -91 73 -161 161 -161z" />
-    <glyph glyph-name="folder_add" unicode="&#xf035;" horiz-adv-x="3107" 
-d="M2889 1030c145 -145 218 -320 218 -523c0 -204 -72 -380 -218 -525c-144 -145 -320 -218 -524 -218c-203 0 -380 73 -525 218c-145 144 -217 321 -217 525c0 203 73 379 217 523c146 146 322 218 525 218c204 0 379 -73 524 -218zM2842 401c29 0 53 24 53 52v106
-c0 29 -24 54 -53 54h-371v371c0 28 -24 53 -53 53h-106c-28 0 -53 -25 -53 -53v-371h-371c-28 0 -53 -25 -53 -54v-106c0 -28 25 -52 53 -52h371v-371c0 -29 25 -54 53 -54h106c29 0 53 25 53 54v371h371zM1553 507c0 -223 79 -415 235 -572c-4 -5 -7 -9 -12 -14
-c-48 -49 -107 -73 -175 -73h-1352c-68 0 -127 24 -176 73s-73 108 -73 176v1067c0 68 24 127 73 176s108 73 176 73h356c68 0 126 -24 175 -73s74 -108 74 -176v-36h747c65 0 123 -23 171 -69c-145 -154 -219 -339 -219 -552z" />
-    <glyph glyph-name="folder_search" unicode="&#xf036;" horiz-adv-x="3215" 
-d="M2716 408c49 49 74 109 74 179c0 69 -25 129 -74 178c-50 49 -110 74 -179 74s-129 -25 -178 -74c-50 -50 -75 -109 -75 -178c0 -70 25 -130 75 -179c49 -49 109 -74 178 -74s130 24 179 74zM2994 1043c146 -146 221 -323 221 -529c0 -205 -74 -383 -221 -530
-c-146 -146 -323 -220 -529 -220s-384 73 -531 220c-146 146 -219 325 -219 530c0 206 74 384 219 529c148 148 325 221 531 221s382 -74 529 -221zM2903 432c21 49 31 101 31 155c0 53 -10 104 -31 154c-21 49 -49 91 -84 126c-36 36 -78 64 -127 85s-101 32 -155 32
-s-105 -11 -154 -32s-91 -49 -127 -85c-35 -35 -64 -77 -84 -126c-21 -50 -32 -101 -32 -154c0 -83 23 -158 70 -225l-194 -194c-14 -14 -20 -31 -20 -51c0 -19 7 -36 21 -50c14 -15 31 -22 51 -22s37 8 51 22l193 192c67 -46 142 -70 225 -70c54 0 106 10 155 32
-c97 42 169 113 211 211zM1644 514c0 -206 68 -387 201 -538c-12 -25 -28 -49 -50 -71c-49 -49 -109 -74 -177 -74h-1366c-69 0 -128 25 -178 74c-49 50 -74 109 -74 178v1078c0 69 25 129 74 178c50 49 109 74 178 74h359c69 0 128 -25 178 -74c49 -49 74 -109 74 -178v-36
-h755c68 0 128 -24 177 -74c10 -9 17 -19 25 -29c-117 -145 -176 -315 -176 -508z" />
-    <glyph glyph-name="folder_view" unicode="&#xf037;" horiz-adv-x="3582" 
-d="M3560 506c29 -48 29 -94 0 -141c-93 -157 -223 -282 -384 -376c-160 -94 -330 -141 -509 -141c-178 0 -348 47 -509 142c-161 94 -290 218 -384 375c-28 47 -28 93 0 141c94 156 223 280 384 375s331 141 509 141c179 0 349 -47 509 -141c161 -95 291 -219 384 -375z
-M2448 784c-60 -60 -91 -134 -91 -218c0 -28 22 -49 49 -49c28 0 49 21 49 49c0 58 21 108 62 150c42 41 92 62 150 62c28 0 49 21 49 49c0 27 -21 49 -49 49c-84 0 -158 -31 -219 -92zM3110 102c136 83 250 194 340 333c-103 160 -232 281 -388 360c42 -70 62 -147 62 -229
-c0 -126 -45 -234 -134 -323s-197 -134 -323 -134c-125 0 -234 44 -323 134c-89 89 -133 197 -133 323c0 82 20 159 62 229c-156 -79 -286 -200 -389 -360c91 -139 204 -251 340 -333c136 -83 284 -124 443 -124s307 42 443 124zM1710 327c63 -105 144 -197 238 -277v-23
-c0 -72 -25 -134 -77 -185c-51 -52 -113 -78 -185 -78h-1424c-71 0 -133 26 -185 78c-51 51 -77 113 -77 185v1124c0 71 26 133 77 185c52 51 114 77 185 77h375c71 0 133 -26 185 -77c51 -52 77 -114 77 -185v-38h787c71 0 134 -25 185 -77c52 -51 77 -113 77 -185v-31
-c-94 -80 -175 -171 -238 -276c-42 -71 -42 -146 0 -217z" />
-    <glyph glyph-name="life_cycle_policy" unicode="&#xf038;" horiz-adv-x="2557" 
-d="M1850 -106c-106 0 -206 23 -301 67c-94 45 -177 106 -243 188c-9 11 -8 29 2 40l126 126c6 6 14 9 23 9c10 -1 16 -5 21 -11c89 -117 226 -183 372 -183c258 0 471 212 471 471c0 258 -213 471 -471 471c-121 0 -235 -45 -320 -126l126 -127c19 -19 23 -40 13 -64
-c-11 -24 -29 -37 -55 -37h-412c-32 0 -59 27 -59 59v413c0 25 12 44 37 54c24 10 45 6 64 -13l119 -119c132 124 307 195 487 195c96 0 187 -18 274 -56c88 -38 162 -87 225 -151c64 -63 114 -138 151 -225c38 -88 57 -179 57 -274c0 -96 -19 -187 -57 -274
-c-37 -88 -87 -162 -151 -226c-63 -63 -137 -113 -225 -151c-87 -37 -178 -56 -274 -56zM1413 393c-15 -6 -26 -15 -34 -23l-84 -84v355h118v-248zM1144 317c9 -65 12 -119 12 -178c0 -68 -16 -121 -47 -160s-72 -58 -124 -58h-557c-52 0 -93 19 -124 58s-47 92 -47 160
-c0 29 1 59 2 86c3 58 13 128 27 184c28 117 86 212 192 212c8 0 39 -29 74 -59c18 -15 41 -28 69 -40c29 -12 57 -18 86 -18c28 0 56 6 84 18c29 12 52 26 69 40c36 30 67 59 75 59c80 0 132 -53 165 -130c23 -53 35 -107 44 -174zM707 -74l121 139l-121 433l-122 -433z
-M853 996c43 0 77 -35 77 -77s-34 -77 -77 -77c-42 0 -76 35 -76 77s34 77 76 77zM491 997c-25 17 -55 22 -84 17c15 38 39 73 70 105c64 63 140 95 230 95c89 0 165 -32 228 -95c31 -32 55 -66 71 -104c-26 4 -54 -1 -77 -14c-20 18 -47 30 -76 30c-32 0 -61 -14 -81 -36
-c-36 24 -84 24 -121 1c-21 21 -49 35 -81 35c-31 0 -59 -13 -79 -34zM494 919c0 42 34 77 76 77c43 0 77 -35 77 -77s-34 -77 -77 -77c-42 0 -76 35 -76 77zM950 973c21 11 46 13 68 4c7 -28 12 -56 12 -86c0 -89 -32 -166 -95 -229s-139 -95 -228 -95
-c-90 0 -166 32 -230 95c-63 63 -94 140 -94 229c0 30 5 58 12 85c25 10 54 8 76 -7c-8 -15 -12 -32 -12 -50c0 -62 50 -112 111 -112c62 0 112 50 112 112c0 18 -4 34 -12 49c26 15 58 15 82 -2c-6 -14 -11 -30 -11 -47c0 -62 51 -112 112 -112c62 0 112 50 112 112
-c0 20 -6 38 -15 54zM1299 1286c-2 1 -3 2 -4 3v6h-8c-30 25 -61 32 -83 32c-18 0 -36 -4 -54 -11c-13 -6 -24 -13 -35 -21h-526v-35c-43 -14 -82 -36 -118 -65v93c-17 -6 -30 -13 -38 -20l-288 -288c-7 -8 -13 -20 -20 -38h189l-2 -4l20 3c-2 -13 -3 -26 -3 -39
-c0 -27 4 -53 9 -78h-220v-942h1177v164c36 -36 75 -68 118 -96v-97c0 -49 -39 -89 -88 -89h-1237c-48 0 -88 40 -88 89v1060c0 24 6 51 18 81c12 29 27 52 45 70l287 287c17 17 40 32 70 44c29 12 56 18 80 18h825c49 0 88 -39 88 -88v-74c-16 -10 -31 -21 -46 -33z" />
-    <glyph glyph-name="life_cycle" unicode="&#xf039;" horiz-adv-x="2355" 
-d="M1491 241h117v395h-117v-395zM1119 241h117v395h-117v-395zM747 241h117v395h-117v-395zM351 438c0 -96 -79 -175 -176 -175c-96 0 -175 79 -175 175c0 97 79 176 175 176c97 0 176 -79 176 -176zM2355 438c0 -96 -78 -175 -175 -175s-175 79 -175 175
-c0 97 78 176 175 176s175 -79 175 -176zM923 380v117h138v-117h-138zM1433 497v-117h-138v117h138zM1667 497h545v-117h-545v117zM689 497v-117h-545v117h545zM589 824v-269h-118v358c0 24 7 51 19 81c11 29 26 52 44 70l287 287c17 17 40 32 70 44c29 12 56 18 81 18h824
-c49 0 88 -39 88 -88v-770h-117v740h-707v-382c0 -49 -40 -89 -88 -89h-383zM616 980c-7 -8 -13 -20 -20 -38h346v346c-17 -6 -30 -13 -38 -20zM1767 322h117v-469c0 -49 -39 -89 -88 -89h-1237c-48 0 -88 40 -88 89v469h118v-440h1178v440z" />
-    <glyph glyph-name="life_cycle_step" unicode="&#xf03a;" horiz-adv-x="2355" 
-d="M351 438c0 -96 -79 -175 -176 -175c-96 0 -175 79 -175 175c0 97 79 176 175 176c97 0 176 -79 176 -176zM2355 438c0 -96 -78 -175 -175 -175s-175 79 -175 175c0 97 78 176 175 176s175 -79 175 -176zM1119 241h117v395h-117v-395zM769 297h73v283h-73v-283zM1513 297
-h74v283h-74v-283zM711 497v-117h-567v117h567zM1061 497v-117h-160v117h160zM1455 497v-117h-160v117h160zM1645 497h567v-117h-567v117zM1767 -118v440h117v-469c0 -49 -39 -89 -88 -89h-1237c-48 0 -88 40 -88 89v469h118v-440h1178zM1796 1413c49 0 88 -39 88 -88v-770
-h-117v740h-707v-382c0 -49 -40 -89 -88 -89h-383v-269h-118v358c0 24 7 51 19 81c12 29 26 52 44 70l287 287c17 17 40 32 70 44c29 12 56 18 81 18h824zM942 942v346c-17 -6 -30 -13 -38 -20l-288 -288c-7 -8 -13 -20 -20 -38h346z" />
-    <glyph glyph-name="file_model" unicode="&#xf03b;" horiz-adv-x="1413" 
-d="M1413 265c0 -25 -6 -52 -18 -81s-27 -52 -44 -70l-287 -287c-18 -17 -41 -32 -70 -44c-30 -12 -56 -19 -81 -19h-825c-48 0 -88 40 -88 89v1472c0 49 40 88 88 88h1237c49 0 88 -39 88 -88v-1060zM942 236v-346c18 6 30 12 38 20l288 288c7 7 14 20 20 38h-346zM1295 353
-v942h-1177v-1413h706v383c0 49 40 88 89 88h382zM934 632v236c0 127 -47 259 -241 259c-80 0 -155 -22 -208 -56l26 -76c45 29 106 47 165 47c130 0 144 -94 144 -146v-13c-245 1 -381 -83 -381 -236c0 -91 66 -181 194 -181c90 0 158 44 194 94h3l10 -80h104
-c-8 43 -10 97 -10 152zM823 803v-110c0 -12 -3 -25 -7 -37c-18 -53 -71 -105 -153 -105c-59 0 -108 35 -108 109c0 123 142 146 268 143z" />
-    <glyph glyph-name="picture" unicode="&#xf03e;" horiz-adv-x="1920" 
- />
-    <glyph glyph-name="pencil" unicode="&#xf040;" 
- />
-    <glyph glyph-name="map_marker" unicode="&#xf041;" horiz-adv-x="1024" 
- />
-    <glyph glyph-name="adjust" unicode="&#xf042;" 
- />
-    <glyph glyph-name="tint" unicode="&#xf043;" horiz-adv-x="1024" 
- />
-    <glyph glyph-name="share" unicode="&#xf045;" horiz-adv-x="1664" 
- />
-    <glyph glyph-name="check" unicode="&#xf046;" horiz-adv-x="1664" 
- />
-    <glyph glyph-name="step_backward" unicode="&#xf048;" horiz-adv-x="1024" 
- />
-    <glyph glyph-name="backward" unicode="&#xf04a;" horiz-adv-x="1664" 
- />
-    <glyph glyph-name="play" unicode="&#xf04b;" horiz-adv-x="1408" 
- />
-    <glyph glyph-name="pause" unicode="&#xf04c;" 
- />
-    <glyph glyph-name="stop" unicode="&#xf04d;" 
- />
-    <glyph glyph-name="forward" unicode="&#xf04e;" horiz-adv-x="1664" 
- />
-    <glyph glyph-name="step_forward" unicode="&#xf051;" horiz-adv-x="1024" 
- />
-    <glyph glyph-name="eject" unicode="&#xf052;" horiz-adv-x="1538" 
- />
-    <glyph glyph-name="chevron_left" unicode="&#xf053;" horiz-adv-x="1280" 
- />
-    <glyph glyph-name="chevron_right" unicode="&#xf054;" horiz-adv-x="1280" 
- />
-    <glyph glyph-name="plus_sign" unicode="&#xf055;" 
- />
-    <glyph glyph-name="minus_sign" unicode="&#xf056;" 
- />
-    <glyph glyph-name="remove_sign" unicode="&#xf057;" 
- />
-    <glyph glyph-name="ok_sign" unicode="&#xf058;" 
- />
-    <glyph glyph-name="question_sign" unicode="&#xf059;" 
- />
-    <glyph glyph-name="info_sign" unicode="&#xf05a;" 
- />
-    <glyph glyph-name="screenshot" unicode="&#xf05b;" 
- />
-    <glyph glyph-name="remove_circle" unicode="&#xf05c;" 
- />
-    <glyph glyph-name="ok_circle" unicode="&#xf05d;" 
- />
-    <glyph glyph-name="ban_circle" unicode="&#xf05e;" 
- />
-    <glyph glyph-name="arrow_left" unicode="&#xf060;" 
- />
-    <glyph glyph-name="arrow_right" unicode="&#xf061;" 
- />
-    <glyph glyph-name="arrow_up" unicode="&#xf062;" horiz-adv-x="1664" 
- />
-    <glyph glyph-name="arrow_down" unicode="&#xf063;" horiz-adv-x="1664" 
- />
-    <glyph glyph-name="resize_full" unicode="&#xf065;" 
- />
-  </font>
-</defs></svg>
diff --git a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.ttf b/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.ttf
deleted file mode 100755
index 52d3162f27101d929b02ff4533d08645d392ed1b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 30416
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

diff --git a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.woff b/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.woff
deleted file mode 100755
index 3874ac49bf290a6b3158a0dc2e62e832fb9b40e6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 18376
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

diff --git a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.woff2 b/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.woff2
deleted file mode 100755
index db8b5162ccd67215bb352e1c788c8eeb4bc7d91b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12920
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

diff --git a/apps/maarch_entreprise/css/photoswipe_custom.css b/apps/maarch_entreprise/css/photoswipe_custom.css
deleted file mode 100755
index 65ba3e515fa..00000000000
--- a/apps/maarch_entreprise/css/photoswipe_custom.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.pswp__bg {
-  background: #FFF;
-}
\ No newline at end of file
diff --git a/apps/maarch_entreprise/css/styles.css b/apps/maarch_entreprise/css/styles.css
deleted file mode 100755
index b966aedac21..00000000000
--- a/apps/maarch_entreprise/css/styles.css
+++ /dev/null
@@ -1,3435 +0,0 @@
-/* misc */
-
-
-html {
-    height: 100%;
-}
-
-.func {
-
-    background: #F2F2F2;
-    border: 1px solid #666;
-    border-bottom: 0;
-    cursor: pointer;
-    display: inline;
-    float: right;
-    margin: 2px 0 0 -1px;
-    padding: 2px 5px;
-    position: relative;
-    font-size: 14px;
-}
-
-.diffusion-list {
-
-    background: #F2F2F2;
-    border: 1px solid #666;
-    border-bottom: 0;
-    cursor: pointer;
-    display: inline;
-    float: right;
-    margin: 2px 0 0 -1px;
-    padding: 2px 5px;
-    position: relative;
-    font-size: 14px;
-}
-
-.history {
-    background: #F2F2F2;
-    border: 1px solid #666;
-    border-bottom: 0;
-    cursor: pointer;
-    display: inline;
-    float: right;
-    margin: 2px 0 0 -1px;
-    padding: 2px 5px;
-    position: relative;
-    font-size: 14px;
-}
-
-.notes {
-    background: #F2F2F2;
-    border: 1px solid #666;
-    border-bottom: 0;
-    cursor: pointer;
-    display: inline;
-    float: right;
-    margin: 2px 0 0 -1px;
-    padding: 2px 5px;
-    position: relative;
-    font-size: 14px;
-}
-
-.matter {
-    background: #F2F2F2;
-    border: 1px solid #666;
-    border-bottom: 0;
-    cursor: pointer;
-    display: inline;
-    float: right;
-    margin: 2px 0 0 -1px;
-    padding: 2px 5px;
-    position: relative;
-    font-size: 14px;
-}
-
-.email {
-    background: #F2F2F2;
-    border: 1px solid #666;
-    border-bottom: 0;
-    cursor: pointer;
-    display: inline;
-    float: right;
-    margin: 2px 0 0 -1px;
-    padding: 2px 5px;
-    position: relative;
-    font-size: 14px;
-}
-
-.versions {
-    background: #F2F2F2;
-    border: 1px solid #666;
-    border-bottom: 0;
-    cursor: pointer;
-    display: inline;
-    float: right;
-    margin: 2px 0 0 -1px;
-    padding: 2px 5px;
-    position: relative;
-    font-size: 14px;
-}
-
-.links {
-    background: #F2F2F2;
-    border: 1px solid #666;
-    border-bottom: 0;
-    cursor: pointer;
-    display: inline;
-    float: right;
-    margin: 2px 0 0 -1px;
-    padding: 2px 5px;
-    position: relative;
-    font-size: 14px;
-}
-
-body {
-    color: #666;
-    /*background: white url(static.php?filename=bg_body.gif) top center repeat-y;*/
-    font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
-    font-size: 12px;
-    font-weight: normal;
-    letter-spacing: 0.02em;
-    margin: 0;
-    padding: 0;
-    text-align: left;
-    width: 99.9%;
-    height: 99%;
-}
-
-select {
-    background: white;
-    border: solid 1px #135F7F;
-}
-
-#validation_page {
-    background: white;
-    background-image: none;
-}
-
-div,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-p,
-ul,
-ol,
-li {
-    margin: 0;
-    padding: 0;
-    list-style: none;
-}
-
-h2 {
-    font-size: 16px;
-    clear: both;
-}
-
-h3 {
-    font-size: 14px;
-}
-
-.small_text {
-    font-size: 10px;
-}
-
-table {
-    font-size: 1em;
-}
-
-img {
-    border: none;
-}
-
-a,
-a:link,
-a:visited,
-a:hover {
-    color: #666;
-    text-decoration: none;
-}
-
-a:hover {
-    color: #135F7F;
-}
-
-.bloc {
-    padding: 0px 0;
-    margin: 0 12px;
-}
-
-#admin_structures {
-    background: url(static.php?filename=manage_structures.gif) no-repeat 2px top;
-    width: 315px;
-    min-height: 110px;
-    float: left;
-    padding-top: 0px;
-    padding-right: 18px;
-    padding-bottom: 0px;
-    padding-left: 0px;
-    margin: 0px 0px 15px;
-    position: relative;
-    display: block;
-}
-
-#admin_subfolders {
-    background: url(static.php?filename=manage_subfolders.gif) no-repeat 2px top;
-    width: 315px;
-    min-height: 110px;
-    float: left;
-    padding-top: 0px;
-    padding-right: 18px;
-    padding-bottom: 0px;
-    padding-left: 0px;
-    margin: 0px 0px 15px;
-    position: relative;
-    display: block;
-}
-
-/* floated blocks */
-
-.clear {
-    clear: both;
-    height: 0;
-    font-size: 0;
-    line-height: 0;
-    display: block;
-    overflow: hidden;
-}
-
-.inline {
-    display: inline !important;
-}
-
-/* Typos */
-
-acronym,
-abbr {
-    border: none;
-}
-
-.maarch,
-a.maarch {
-    color: #135F7F;
-}
-
-.maarch2,
-a.maarch2 {
-    color: #F99830;
-}
-
-.oblig {
-    text-align: right;
-    float: right;
-}
-
-.nota {
-    font-size: .9em;
-    font-style: italic;
-    text-align: right;
-}
-
-.close {
-    clear: both;
-    text-align: center;
-    padding-top: 20px;
-}
-
-
-.sstit {
-    color: #135F7F;
-    font-size: 1em;
-    font-weight: normal;
-    padding-bottom: 1em;
-}
-
-.text {
-    padding-bottom: 1em;
-}
-
-.text li {
-    list-style-image: url(static.php?filename=puce.gif);
-    margin-left: 30px;
-}
-
-a.next,
-a.change,
-a.suspend,
-a.delete,
-a.authorize,
-a.prev,
-a.up,
-a.down,
-a.view {
-    padding-left: 20px;
-    background: transparent 10px center no-repeat;
-    color: #135F7F;
-}
-
-a.up {
-    background-image: url(static.php?filename=arrow_up.gif);
-}
-
-a.down {
-    background-image: url(static.php?filename=arrow_down.gif);
-}
-
-a.prev {
-    background-position: center left;
-    padding-left: 10px;
-}
-
-a.change,
-a.suspend,
-a.delete,
-a.authorize,
-a.up,
-a.down,
-a.view {
-    padding: 5px 0 5px 20px;
-    background-position: center left;
-}
-
-a.change {
-    /*background-image: url(static.php?filename=picto_change.gif);*/
-    padding-left: 25px;
-}
-
-a.suspend {
-    background-image: url(static.php?filename=picto_suspend.gif);
-}
-
-a.delete {
-    background-image: url(static.php?filename=picto_delete.gif);
-}
-
-a.view {
-    background-image: url(static.php?filename=picto_view.gif);
-}
-
-a.authorize {
-    background-image: url(static.php?filename=picto_authorize.gif);
-}
-
-.add {
-    background: transparent url(static.php?filename=bg_but_add_left.gif) top left no-repeat;
-    padding: 0 0px 6px 21px;
-    display: block;
-    float: right;
-    font-size: 11px;
-}
-
-.add a {
-    padding: 5px 10px 6px 0;
-    background: transparent url(static.php?filename=bg_but_add_right.gif) top right no-repeat;
-    float: left;
-}
-
-.add span {
-    padding: 4px 0 5px 4px;
-    background-color: White;
-    border: 1px solid #F99830;
-    border-left: none;
-    border-right: none;
-}
-
-.error {
-    /*color: #ea0000;*/
-    text-align: center;
-    font-size: 1.5em;
-    display: none;
-    width: 250px;
-    /*height: 50px;*/
-    /*min-height: 50px;*/
-    position: fixed;
-    z-index: 1011;
-    vertical-align: middle;
-    right: 10px;
-    top: 10px;
-    opacity: 0.9;
-    cursor: pointer;
-    background: #A94442;
-    color: #ffffff;
-    padding: 10px;
-    -moz-box-shadow: 0px 0px 5px 0px #656565;
-    -webkit-box-shadow: 0px 0px 5px 0px #656565;
-    -o-box-shadow: 0px 0px 5px 0px #656565;
-    box-shadow: 0px 0px 5px 0px #656565;
-    filter: progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=NaN, Strength=5);
-    min-height: 0px;
-}
-
-.info {
-    /*color: #ea0000;*/
-    text-align: center;
-    font-size: 1.5em;
-    display: none;
-    width: 250px;
-    /*height: 50px;*/
-    /*min-height: 50px;*/
-    position: fixed;
-    z-index: 1011;
-    vertical-align: middle;
-    right: 10px;
-    top: 10px;
-    opacity: 0.9;
-    cursor: pointer;
-    background: #45AE52;
-    color: #ffffff;
-    padding: 10px;
-    -moz-box-shadow: 0px 0px 5px 0px #656565;
-    -webkit-box-shadow: 0px 0px 5px 0px #656565;
-    -o-box-shadow: 0px 0px 5px 0px #656565;
-    box-shadow: 0px 0px 5px 0px #656565;
-    filter: progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=NaN, Strength=5);
-    min-height: 0px;
-}
-
-.infoBasket {
-    /*color: #ea0000;*/
-    text-align: center;
-    font-size: 1.5em;
-    display: none;
-    width: 250px;
-    /*height: 50px;*/
-    /*min-height: 50px;*/
-    position: fixed;
-    z-index: 10;
-    vertical-align: middle;
-    right: 10px;
-    top: 10px;
-    opacity: 0.9;
-    cursor: pointer;
-    background: #45AE52;
-    color: #ffffff;
-    padding: 10px;
-    -moz-box-shadow: 0px 0px 5px 0px #656565;
-    -webkit-box-shadow: 0px 0px 5px 0px #656565;
-    -o-box-shadow: 0px 0px 5px 0px #656565;
-    box-shadow: 0px 0px 5px 0px #656565;
-    filter: progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=NaN, Strength=5);
-    min-height: 0px;
-}
-
-/* Forms */
-
-form,
-fieldset {
-    padding: 0;
-    margin: 0;
-    border: 0px solid white;
-}
-
-.addforms,
-.addformsmall {
-    width: 500px;
-}
-
-.addforms2 {
-    width: 460px;
-}
-
-.addformsProcess {
-    width: 300px;
-}
-
-.indexingform {
-    width: 450px;
-}
-
-.physicalform {
-    width: 900px;
-}
-
-label,
-.label {
-    cursor: pointer;
-    vertical-align: middle;
-}
-
-input,
-select,
-textarea,
-.forms img {
-    vertical-align: middle;
-    font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
-    font-size: .9em;
-}
-
-.forms input,
-.forms select,
-.forms textarea,
-.smallforms select,
-.smallforms input {
-    background-color: White;
-    border: 1px solid #999;
-    color: #666;
-    width: 200px;
-    text-align: left;
-}
-
-.formsProcess input,
-.forms select,
-.forms textarea,
-.smallforms select,
-.smallforms input {
-    background-color: White;
-    border: 1px solid #999;
-    color: #666;
-    /*width: 150px;*/
-    text-align: left;
-}
-
-.formsProcess input {
-    width: 150px;
-
-}
-
-.physicalform input,
-.physicalform select,
-.physicalform textarea {
-    background-color: White;
-    border: 1px solid #999;
-    color: #666;
-    width: 500px;
-    text-align: left;
-}
-
-.forms input,
-.forms textarea {
-    padding: 0.1em 0.2em;
-}
-
-.formsProcess input,
-.formsProcess textarea {
-    padding: 0.1em 0.2em;
-}
-
-
-.physicalform input,
-.physicalform textarea {
-    padding: 0.1em 0.2em;
-}
-
-.forms select {
-    width: 206px;
-}
-
-.physicalform select {
-    width: 196px;
-}
-
-input.small {
-    width: 20px;
-}
-
-input.year {
-    width: 35px;
-}
-
-select.small {
-    width: 5em;
-}
-
-select.medium {
-    width: 7em;
-}
-
-input.medium {
-    width: 120px;
-}
-
-input.medium2 {
-    width: 100px;
-}
-
-#newpage1,
-#newpage2 {
-    text-align: center;
-    color: #135F7F;
-}
-
-input.detail_box {
-    width: 260px;
-    font-size: 1em;
-}
-
-#startpage {
-    margin-right: 10px;
-}
-
-#frmletters a:hover,
-#frmletters a.on {
-    color: #135F7F;
-}
-
-#frmletters fieldset {
-    float: right;
-}
-
-.button {
-    margin-top: 4px;
-    text-align: center;
-}
-
-
-/* particular cases */
-
-#dates label,
-#where label,
-.forms label.nofloat {
-    float: none;
-    display: inline;
-    width: auto;
-    margin: 0;
-    font-size: .9em;
-}
-
-#dates .label,
-#fordate label {
-    padding-top: .5em;
-}
-
-#doctype {
-    min-height: 10em;
-    height: auto;
-    border: 1px solid #CCC;
-    border-left: none;
-    border-right: none;
-    padding: 10px;
-}
-
-#doctype .label {
-    padding: 3em 0;
-}
-
-/* form quicksearch */
-
-#quicksearchform input.button,
-input.radio {
-    border: none;
-    background-color: transparent;
-    background-image: none;
-    padding: 0;
-    margin: 0;
-    width: auto;
-}
-
-/* more particular cases  */
-
-input.button {
-
-    border: 1px solid #F8BB30;
-    color: #756666;
-
-    background-color: #F8BB30;
-
-    border-radius: 3px;
-    cursor: pointer;
-    width: auto;
-    padding: 0.2em 0.5em;
-    text-align: left;
-}
-
-.forms2 .single {
-    margin-left: auto;
-    margin-right: auto;
-    width: 40%;
-}
-
-
-.forms label,
-.forms .label {
-    float: left;
-    display: block;
-    text-align: left;
-    width: 40%;
-    margin-right: 1em;
-    vertical-align: middle;
-}
-
-
-.physicalform label,
-.physicalform .label {
-    float: left;
-    display: block;
-    text-align: left;
-    width: 40%;
-    margin-right: 1em;
-    vertical-align: middle;
-}
-
-.forms p {
-    clear: left;
-}
-
-.physicalform p {
-    clear: left;
-}
-
-.forms p.buttons {
-    /*margin-left: 41.3%;*/
-}
-
-.physicalform p.buttons {
-    margin-left: 41.3%;
-}
-
-/* tables */
-
-.listing,
-.spec {
-    margin: 10px 0px 0;
-    /*min-width: 990px;*/
-}
-
-.listingIndex {
-    margin: 0px 0px 0;
-    width: 400px;
-}
-
-.detailtabricatordebug {
-    width: 90%;
-}
-
-.listingsmall,
-.specsmall {
-    margin: 10px 12px 0 12px;
-    width: 100%;
-}
-
-#diff_list_div .listingsmall,
-.specsmall {
-    margin: 0;
-    width: 420px;
-}
-
-#iframe .listing {
-    margin: 5px 8px 0 5px;
-    width: 340px;
-}
-
-#iframe .listingsmall {
-    margin: 5px 8px 0 5px;
-    width: 340px;
-}
-
-#iframe .listing2 {
-    margin: 5px 8px 0 5px;
-    width: 98%;
-}
-
-#iframe .listing3 {
-    margin: 5px 8px 0 5px;
-    width: 98%;
-}
-
-.addforms .listing {
-    width: 300px;
-}
-
-.addforms .listingsmall {
-    width: 300px;
-}
-
-.addforms2 .listing {
-    width: 520px;
-}
-
-.addformsProcess .listing {
-    width: 300px;
-}
-
-.addforms2 .listingsmall {
-    width: 450px;
-}
-
-.addformsProcess .listingsmall {
-    width: 300px;
-}
-
-#hist_iframe .listing,
-#missing_iframe .listing,
-#contract_history_frame .listing,
-#filling_res_frame .listing,
-#users_popup .listing {
-    margin: 5px 8px 0 5px;
-    width: 90%;
-}
-
-#hist_courrier_frame .listing {
-    width: 770px;
-
-}
-
-.listing th {
-    color: #135F7F;
-}
-
-.listingIndex th {
-    color: #135F7F;
-}
-
-.listingsmall th {
-    color: #135F7F;
-}
-
-.listing2 th {
-    color: #135F7F;
-}
-
-.listing3 th {
-    color: #135F7F;
-}
-
-.listing th .add {
-    font-weight: normal;
-}
-
-.listingIndex th .add {
-    font-weight: normal;
-}
-
-.listing2 th .add {
-    font-weight: normal;
-}
-
-.listing3 th .add {
-    font-weight: normal;
-}
-
-.listingsmall th .add {
-    font-weight: normal;
-}
-
-.listing th,
-.listing td {
-    text-align: left;
-    padding: 5px 10px 6px 20px;
-    vertical-align: middle;
-}
-
-.listingIndex th,
-.listingIndex td {
-    text-align: left;
-    padding: 5px 10px 6px 20px;
-    vertical-align: middle;
-}
-
-
-.listing2 th,
-.listing2 td {
-    text-align: left;
-    padding: 5px 10px 6px 20px;
-    vertical-align: middle;
-}
-
-.listing3 th,
-.listing3 td {
-    text-align: left;
-    padding: 5px 10px 6px 10px;
-    vertical-align: middle;
-}
-
-.listingsmall th,
-.listingsmall td {
-    text-align: left;
-    padding: 5px 10px 6px 20px;
-    vertical-align: middle;
-}
-
-.spec th,
-.spec td {
-    padding: 5px 10px 6px 10px;
-}
-
-.specsmall th,
-.specsmall td {
-    padding: 5px 10px 6px 10px;
-}
-
-.spec th {
-    font-weight: normal;
-    font-size: 9px;
-    text-transform: uppercase;
-    vertical-align: bottom;
-}
-
-.specsmall th {
-    font-weight: normal;
-    text-transform: uppercase;
-}
-
-.spec th a {
-    text-transform: none;
-}
-
-.specsmall th a {
-    text-transform: none;
-}
-
-.listing td {
-    background-color: #135F7F33;
-}
-
-.listingIndex td {
-    background-color: #135F7F33;
-}
-
-.listing2 td {
-    background-color: #F2F2F2;
-}
-
-.listing3 td {
-    background-color: #F2F2F2;
-}
-
-.listingsmall td {
-    background-color: #135F7F33;
-}
-
-.listing .col td {
-    background-color: #F2F2F2;
-}
-
-.listingIndex .col td {
-    background-color: #F2F2F2;
-}
-
-.listing .white td {
-    background-color: #FFFFFF;
-}
-
-.listing2 .col td {
-    background-color: #135F7F33;
-}
-
-.listing3 .col td {
-    background-color: #135F7F33;
-}
-
-.listingsmall .col td {
-    background-color: #F2F2F2;
-}
-
-td.picto,
-th.picto,
-td.action {
-    text-align: center;
-    padding: 0 0.2em 0;
-    width: 4%;
-}
-
-th.ref {
-    padding: 0;
-    width: 100px;
-}
-
-.listing .price {
-    text-align: right;
-    padding-right: 0;
-    padding-bottom: 0;
-
-}
-
-.listingsmall .price {
-    text-align: right;
-    padding-right: 0;
-    padding-bottom: 0;
-
-}
-
-.listing tfoot .price {
-    background-color: transparent;
-}
-
-.listingsmall tfoot .price {
-    background-color: transparent;
-}
-
-.listing .title {
-    width: 180px;
-}
-
-.listingsmall .title {
-    width: 180px;
-}
-
-.listing .type {
-    width: 150px;
-}
-
-.listingsmall .type {
-    width: 150px;
-}
-
-.listing .type2 {
-    width: 100px;
-}
-
-.listingsmall .type2 {
-    width: 100px;
-}
-
-.listing td.picto {
-    width: 60px;
-    padding: 5px 0 6px 0;
-}
-
-.listing .action {
-    width: 90px;
-    font-size: 10px;
-}
-
-.listingsmall .action {
-    width: 90px;
-    font-size: 10px;
-}
-
-.listing .date {
-    width: 60px;
-
-}
-
-.listingsmall .date {
-    width: 60px;
-
-}
-
-.listing .lastn,
-.listing .mail {
-    width: 75px
-}
-
-.listingsmall .lastn,
-.listingsmall .mail {
-    width: 75px
-}
-
-.listing .id,
-.listing .descr {
-    width: 140px;
-}
-
-.listingsmall .id,
-.listingsmall .descr {
-    width: 140px;
-}
-
-.listing .user {
-    width: 115px;
-}
-
-.listingsmall .user {
-    width: 115px;
-}
-
-.listing .emetteur {
-    width: 100px;
-}
-
-.listingsmall .emetteur {
-    width: 100px;
-}
-
-.spec .user {
-    width: auto;
-}
-
-.specsmall .user {
-    width: auto;
-}
-
-.listing .comment {
-    width: 310px;
-}
-
-.listingsmall .comment {
-    width: 310px;
-}
-
-.prioritiesTable td {
-    padding-bottom: 3%;
-}
-
-.prioritiesTable th {
-    padding-bottom: 2%;
-}
-
-.prioritiesTable select {
-    border-radius: 4px;
-}
-
-/* Document details */
-
-
-.detail {
-    margin-bottom: 1em;
-    margin-top: 0;
-}
-
-.detail td {
-    padding: 8px 5px 9px 5px;
-}
-
-.detail th {
-    background-color: #135F7F33;
-    width: 110px;
-    font-weight: normal;
-    color: #666;
-    padding: 8px 0 9px 5px;
-    text-align: right;
-}
-
-.detail th.int {
-    width: 140px;
-    text-align: left;
-}
-
-.detail .col th {
-    background-color: #F2F2F2;
-}
-
-.detail td.void {
-    width: 15px;
-    padding: 0;
-    background-color: transparent;
-}
-
-#viewdoc {
-    padding-bottom: 0px !important;
-    float: right;
-    text-align: right;
-    margin-right: 0px;
-}
-
-#viewdoc img {
-    vertical-align: middle;
-}
-
-#back_list {
-    vertical-align: middle;
-    height: 38px;
-    float: left;
-    margin-right: 0px;
-    padding: 0px;
-    margin: -5px 0px 0px;
-}
-
-#back_list img {
-    vertical-align: middle;
-}
-
-#detaildescr .label {
-    width: 31%;
-    margin-right: .5em;
-}
-
-#detaildescr textarea {
-    width: 295px;
-    height: 80px;
-}
-
-/* Structure */
-
-#container {
-    min-width: 1000px;
-    margin: 0 auto;
-    padding-left: 10px;
-    padding-right: 10px;
-    text-align: left;
-    min-height: 400px;
-    height: auto;
-}
-
-#head {
-    padding-top: 1px;
-    width: 100%;
-    background-color: #135F7F;
-    height: 70px;
-}
-
-#logo {
-    float: right;
-    margin: 0px;
-    padding-right: 0px;
-    padding-top: 0px;
-}
-
-#logo img {
-    width: 100%;
-}
-
-#nav #logo {
-    float: right;
-    right: 0px;
-    position: absolute;
-    margin: 0px;
-    padding-right: 0px;
-    padding-top: 0px;
-    height: 70px;
-    width: 236px;
-    background: url(static.php?filename=logo_white.svg) #135F7F;
-    background-size: 80%;
-    background-position: center;
-    background-repeat: no-repeat;
-    /*border-radius: 10px;*/
-}
-
-#gauchemenu {
-    position: absolute;
-    margin: 0px;
-    padding-right: 0px;
-    padding-top: 0px;
-    background: #f2f2f2;
-    width: 80%;
-    height: 40px;
-    top: 30px;
-    border-top-left-radius: 3px;
-    left: 262px;
-}
-
-#help {
-    text-align: right;
-    padding-right: 12px;
-    margin-top: 52px;
-    float: right;
-}
-
-
-/* navigation bar */
-
-#nav {
-    clear: both;
-    position: relative;
-    width: 99.8%;
-    margin-bottom: 0px;
-    margin-left: 1px;
-    height: 64px;
-    margin-top: 0px;
-    min-width: 1000px;
-    border: solid 2px #135F7F;
-    background: #135F7F;
-    /*border-radius: 10px;*/
-}
-
-#foot {
-    clear: both;
-    position: relative;
-    width: 100%;
-    margin-bottom: 0px;
-    height: 30px;
-    background: url(static.php?filename=bando_foot2.gif) repeat-x left top;
-    margin-top: 305px;
-    min-width: 1000px;
-    float: left;
-}
-
-#nav #baskets {
-    text-align: right;
-    float: right;
-    color: White;
-    font-weight: bold;
-    padding: 3px 20px 6px 25px;
-    height: 20px;
-}
-
-#nav #no_baskets {
-    text-align: right;
-    float: right;
-    padding: 3px 20px 6px 25px;
-    height: 20px;
-    color: #FFFFFF;
-}
-
-/* pop-up menu */
-
-#menu {
-    position: absolute;
-    width: 250px;
-    margin-left: 10px;
-    margin-top: 40px;
-}
-
-#menu p {
-    height: 28px;
-    overflow: hidden;
-    cursor: pointer;
-}
-
-.menunav {
-    overflow: hidden;
-    width: 260px;
-    background: #F2F2F2;
-    position: absolute;
-    padding: 0px;
-    z-index: 10;
-    margin: 0px;
-    border: 2px solid #135F7F;
-    top: 45px;
-    border-top: solid 3px #135F7F;
-}
-
-.menunav li {
-    padding: 5px;
-}
-
-.menunav li a {
-    padding-right: 3px;
-    color: #135F7F;
-    display: block;
-    position: relative;
-}
-
-.menunav li span {
-    display: block;
-    padding-left: 3px;
-}
-
-.menunav li span span {
-    background: transparent bottom left no-repeat;
-    /*padding: 6px 10px 5px 30px;*/
-    display: inline;
-    position: relative;
-    margin: 0px;
-}
-
-.menunav li.on {
-    padding-left: 3px;
-}
-
-.menunav li.on a {
-    color: white;
-    text-decoration: none;
-}
-
-.menunav li.on {
-    background: #135F7F;
-}
-
-.menunav li ol {
-    font-size: .9em;
-}
-
-.menunav li ol {
-    display: none;
-}
-
-.menunav ol li {
-    padding-bottom: 2px;
-    margin-bottom: 0;
-}
-
-.menunav ol li,
-.menunav ol li a,
-.menunav ol li a span span,
-.menunav ol li a span,
-.menunav li.on ol li,
-.menunav li.on ol li a,
-.menunav li.on ol li a span,
-.menunav li.on ol li a span span {
-    background-image: none;
-}
-
-.menunav li ol li a,
-.menunav li.on ol li a {
-    color: #135F7F;
-    display: inline;
-}
-
-.menunav li ol li a:hover {
-    text-decoration: underline;
-}
-
-
-/* ariane */
-
-#ariane {
-    color: #666;
-    margin: 0px;
-    padding: 5px;
-    left: 5px;
-    top: 5px;
-    font-size: 0.8em;
-    height: 18px;
-}
-
-
-#ariane a {
-    color: #135F7F;
-}
-
-/* content */
-
-#content {
-    min-width: 1000px;
-}
-
-#iframe #content {
-
-    width: 816px;
-}
-
-#scansnap #content {
-
-    width: 510px;
-
-}
-
-#inner_content {
-    border-top: none;
-    border-bottom: none;
-    padding: 0px 0px 0px;
-    min-width: 1000px;
-    min-height: 370px;
-    height: auto;
-    margin-left: 0px;
-}
-
-#content h1 {
-    display: flex;
-    align-items: center;
-    color: white;
-    font-weight: bold;
-    font-size: 1.3em;
-    text-align: left;
-    letter-spacing: 0.1em;
-    height: 1.6em;
-    position: absolute;
-    padding: 0px;
-    top: 24px;
-    left: 200px;
-    width: auto;
-}
-
-#content h1 i {
-    padding-right: 5px;
-
-}
-
-#nav h1 {
-    color: #135F7F;
-    font-style: italic;
-    font-weight: bold;
-    font-size: 1.5em;
-    text-align: left;
-    letter-spacing: 0.1em;
-    position: absolute;
-    padding: 0px;
-    top: 37px;
-    left: 195px;
-}
-
-#nav h1 span {
-    font-size: 0.5em;
-    color: #FFFFFF;
-}
-
-#nav h1 a {
-    color: White;
-}
-
-#nav h1 img {
-    margin-right: 8px;
-    height: 32px;
-    vertical-align: middle;
-}
-
-#content h1 img {
-    vertical-align: middle;
-    /*      margin-right: 8px;
-    */
-    margin-top: -1px;
-
-}
-
-#content h1 span {
-    font-size: .5em;
-}
-
-/* Special case : back link in the title */
-
-#content h1.titdetail {
-    text-align: left;
-    padding-left: 0px;
-    padding-right: 0px;
-}
-
-#content h1 a {
-    color: White;
-}
-
-#content h1 a:hover {
-    color: White;
-    text-decoration: underline;
-}
-
-
-
-#content p,
-#bodylogin .forms p {
-    padding-bottom: 1em;
-}
-
-
-/* footer */
-
-#footer {
-    clear: both;
-    position: absolute;
-    text-align: right;
-    font-size: 0.8em;
-    color: #CCC;
-    padding: 18px 0 0px;
-    margin: 0 20px;
-}
-
-/* Home */
-
-#bodylogin {
-    background: White url(static.php?filename=logo_maarch_only.svg) center center no-repeat;
-    background-size: 90%;
-    height: auto;
-    text-align: left;
-}
-
-#bodyloginCustom0 {
-    background: url(static.php?filename=bodylogin.jpg) fixed 0 0 no-repeat;
-    background-size: 100% 100%;
-    display: flex;
-}
-
-#bodyloginCustom {
-    width: 600px;
-    /*height: 320px;*/
-    /*color: #b5b5b5;*/
-    /*margin: auto;*/
-    /*margin-top: 50px;*/
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    margin: auto;
-    border-radius: 5px;
-    border: 2px #24b0ed solid;
-    /*position: absolute;
-    margin: auto;*/
-    position: relative;
-    padding: 10px;
-}
-
-#bodyloginCustom:before {
-    content: '';
-    background: url(static.php?filename=bodylogin.jpg) fixed 0 0 no-repeat;
-    background-size: 100% 100%;
-    -webkit-filter: blur(15px);
-    -moz-filter: blur(15px);
-    -ms-filter: blur(15px);
-    -o-filter: blur(15px);
-    filter: blur(15px);
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    z-index: -1;
-}
-
-
-#loginpage {
-    /*width: 300px;*/
-    /*margin-left: auto;
-    margin-right: auto;*/
-    /*margin-top: 50vh;
-    transform: translateY(-25%);*/
-    color: white;
-}
-
-#formlogin {
-    margin-left: auto;
-    margin-right: auto;
-    width: 255px;
-}
-
-/* #formlogin input {
-    width: 120px;
-}
-
-#formlogin input.button {
-    width: auto;
-    margin: 0;
-} */
-
-#formlogin p.buttons,
-#post .forms .buttons {
-    text-align: right;
-    margin: 0;
-}
-
-/* #formlogin select {
-    width: 140px;
-} */
-
-
-
-/* Post Indexing Popup */
-
-#post {
-    background-image: none;
-}
-
-#post #content {
-    padding-top: 10px;
-}
-
-#post #container {
-    background: transparent url(static.php?filename=bg_ht_content.gif) top center no-repeat;
-    margin-top: 15px;
-}
-
-#post #inner_content {
-    padding: 0 4px 0px 0px;
-}
-
-#post #post_indexing {
-    float: left;
-    clear: left;
-    width: 266px;
-    margin-left: 5px;
-}
-
-#post_indexing label,
-#post_indexing .label {
-    width: 30%;
-}
-
-#post_indexing input.textbox {
-    width: 169px;
-}
-
-#post_indexing input.small {
-    width: 20px;
-}
-
-#post_indexing select.small {
-    width: 5em;
-}
-
-#post_indexing #subs #labelsub2 {
-    float: none;
-    width: auto;
-    text-align: left;
-    display: inline;
-    margin: 0 0 0 1em;
-}
-
-#post_indexing div {
-    margin-left: 85px;
-}
-
-#post_indexing div label {
-    width: 2.1em;
-    margin-right: .5em;
-    letter-spacing: normal;
-}
-
-#post_indexing div ul {
-    float: left;
-    width: 31%;
-    margin-left: 2px
-}
-
-#post_indexing div li {
-    margin-bottom: 8px;
-}
-
-#post_indexing .buttons {}
-
-#post #pdf {
-    border: 1px solid #999;
-    width: 520px;
-    margin-left: 285px;
-}
-
-
-/* browse by folder/post indexing */
-
-#desc_box,
-#type_box {
-    border: 1px solid #999;
-    background-color: White;
-    float: right;
-    width: 465px;
-    margin: 0 10px 0 0;
-    padding: 20px 25px;
-}
-
-#ugc,
-#user_box,
-#group_box {
-    border: 0px;
-    float: right;
-    width: 465px;
-    margin: 0 10px 0 13px;
-}
-
-#desc_box p,
-#desc_box ul,
-#user_box p,
-#user_box ul {
-    padding-bottom: 1em;
-}
-
-#list {
-    padding: 21px 10px;
-}
-
-#list .tit {
-    padding-bottom: .5em;
-}
-
-#list .file {
-    margin-bottom: 2.4em;
-}
-
-#list .file li {
-    padding-left: 13px;
-    background: transparent url(static.php?filename=case.gif) left .2em no-repeat;
-    margin-bottom: .3em;
-}
-
-#list .file li.on {
-    background-image: url(static.php?filename=case_on.gif);
-    margin-bottom: 1em;
-}
-
-#list .file li.on li {
-    background-image: url(static.php?filename=case_ins_on.gif);
-    background-position: top left;
-    padding: 4px 0 4px 35px;
-    margin-left: 5px;
-}
-
-#list .file a {
-    padding-left: 23px;
-    background: transparent url(static.php?filename=file.gif) center left no-repeat;
-}
-
-#list .file a.no_doc {
-    padding-left: 15px;
-    background: none;
-    margin-bottom: 4px;
-
-}
-
-#list .file .on a {
-    color: #135F7F;
-}
-
-#list .file .on li a {
-    color: #666;
-}
-
-
-/* User Profile */
-
-#user_box {
-    width: 310px;
-}
-
-#frmuser .buttons {
-    margin-left: 0%;
-}
-
-
-/* iframes in forms */
-
-#iframe {
-    text-align: left;
-}
-
-#iframe ul,
-#iframe ul {
-    margin-bottom: 1em;
-}
-
-.frameform {
-    height: 2.1em;
-}
-
-.frameform2 {
-    height: 10em;
-}
-
-/* add/change a group, user or document type (width iframes) */
-
-#ugc {
-    height: 350px;
-    width: 18%;
-}
-
-#group_box {
-    width: 400px;
-    height: 360px;
-}
-
-#type_box {
-    width: 350px;
-    height: 360px;
-}
-
-#ugc .frameform2 {
-    height: 360px;
-
-}
-
-#type_box .frameform2 {
-    width: 60px;
-    height: 360px;
-
-}
-
-#iframe .forms .listing {
-    width: 100%;
-    margin: 0 0 10px 0;
-}
-
-#iframe .forms .listing td,
-#iframe .forms .listing th {
-    padding: 5px;
-}
-
-.multiple_list {
-    height: 250px;
-    width: 150px;
-}
-
-/* admin summary */
-
-#summary {
-    padding: 10px 100px;
-}
-
-#summary li {
-    width: 0px;
-    text-align: center;
-    margin-bottom: 20px;
-}
-
-/* admin core board */
-
-.sum_margin {
-    margin-left: 85px;
-}
-
-#summary .imp {
-    margin-right: 90px;
-}
-
-#summary h2 {
-    font-size: 1.3em;
-}
-
-#summary li span {
-    display: block;
-    font-size: 1.1em;
-    margin-top: .5em;
-    color: #666;
-}
-
-#summary a {
-    color: #135F7F;
-}
-
-#summary a:hover {
-    color: #666;
-}
-
-#summary img {
-    display: block;
-    margin: 0 auto;
-}
-
-/* calendar*/
-
-#basis {
-    position: absolute;
-    display: inline;
-}
-
-#calender {
-    width: 214px;
-    background-color: #fff;
-    border: 1px solid #73BDFF;
-    padding: 5px;
-    z-index: 10;
-    text-align: center;
-    position: relative;
-    top: 17px;
-    left: 0px;
-    margin-left: 0px;
-}
-
-#calender .controlPlus {
-    padding: 0 5px;
-}
-
-#calender #close {
-    margin-bottom: 1px;
-}
-
-#img_close {
-    margin-bottom: 3px;
-}
-
-#calender .close_window {
-    text-align: right;
-    font-size: 9px;
-    margin-left: 130px;
-    border: 1px solid #BBBBBB;
-}
-
-#calender table {
-    width: 180px;
-    margin: 0 auto;
-}
-
-#calender td {
-    padding: 1px 0 2px 0;
-}
-
-#calender .weekdays td {
-    color: white;
-    font-weight: bold;
-    background-color: #73BDFF;
-}
-
-#calender .week td {
-    cursor: pointer;
-}
-
-#calender .week .today {
-    background-color: #dbf0fb;
-    font-weight: bold;
-    color: #135F7F;
-}
-
-#calender .week .holiday {
-    font-weight: bold;
-    color: #CCC;
-}
-
-#calender .week .hoverEle {
-    background-color: #dbf0fb;
-    color: #135F7F;
-}
-
-#basis #calender select {
-    width: auto;
-    margin: 2px;
-}
-
-#dates #basis {
-    left: 680px;
-}
-
-/* popups */
-
-#pop {
-    padding: 2em;
-    text-align: left;
-}
-
-#pop label,
-#pop .label {
-    width: 30%;
-}
-
-#pop .buttons {
-    margin-left: 32.7%;
-}
-
-#formgroup .buttons {
-    /*margin-left: 30%;*/
-}
-
-#pop .forms p {
-    margin-bottom: 1em;
-}
-
-
-/* clearfix */
-
-.clearfix:after {
-    content: ".";
-    display: block;
-    height: 0;
-    clear: both;
-    visibility: hidden;
-}
-
-.clearfix {
-    display: block;
-}
-
-/* Hides from IE-mac \*/
-* html .clearfix {
-    display: block;
-}
-
-/* End hide from IE-mac */
-
-
-#pop_up p {
-    margin-left: 5%;
-    margin-right: 5%;
-    text-align: left;
-}
-
-#pop_up .buttons {
-    text-align: center;
-}
-
-
-.form_title {
-    font-weight: bold;
-    /*text-align: left;
-    width: 50%;
-    height:auto;
-    float: left*/
-}
-
-.form_title_process {
-    font-size: 10px;
-    /*text-align: left;
-    width: 50%;
-    height:auto;
-    float: left*/
-}
-
-
-.indexingform .form_title {
-    font-weight: normal;
-    width: 150px;
-}
-
-.indexingformBusiness .form_title {
-    font-weight: normal;
-    width: 165px;
-}
-
-.indexingform .form_title_process {
-    font-weight: normal;
-    width: 100px;
-}
-
-.indexingformBusiness .form_title_process {
-    font-weight: normal;
-    width: 100px;
-}
-
-.indexingform .indexing_field {
-    text-align: right;
-    width: 220px;
-}
-
-.indexingformBusiness .indexing_field {
-    text-align: right;
-}
-
-.contact_field_margin {
-    margin-left: -1%;
-}
-
-.address_modification_field {
-    margin-left: -0.5%;
-}
-
-.salutation_modification_field {
-    margin-left: 6%;
-}
-
-.address_modification_field_frame {
-    margin-left: 6%;
-}
-
-.salutation_modification_field_frame {
-    margin-left: 6%;
-}
-
-#rep {
-    width: 40%;
-    float: left;
-    text-align: right;
-}
-
-.red_asterisk {
-    color: #F99830;
-    font-weight: bold;
-    font-size: 7px;
-    vertical-align: middle;
-}
-
-.green_asterisk {
-    color: #45AE52;
-    font-weight: bold;
-    font-size: 7px;
-    vertical-align: top;
-}
-
-.blue_asterisk {
-    color: #135F7F;
-    font-weight: bold;
-    font-size: 14px;
-    vertical-align: top;
-}
-
-#baskets_list {
-    width: 300px;
-    height: 45px;
-    padding-top: 10px;
-    padding-bottom: 10px;
-    float: right;
-    margin-top: 20px;
-}
-
-/*************************************************************************/
-
-#guide_summary .chapitre {
-    margin-bottom: 25px;
-    margin-left: 200px;
-}
-
-#guide_summary .chapitre h3 {
-    margin-left: 50px;
-    color: #990000;
-}
-
-.list {
-    margin-bottom: 20px;
-}
-
-.list li {
-    margin-left: 25px;
-    list-style: circle;
-    text-align: left;
-}
-
-
-#prev {
-    text-align: left;
-    margin-right: 282px;
-}
-
-#next {
-    text-align: right;
-    margin-left: 282px;
-}
-
-#gestion_rep .listing {
-    width: 40%;
-}
-
-#gestion_rep p {
-    float: right;
-    margin-top: -40px;
-    clear: both;
-    text-align: right;
-}
-
-.forms .readonly {
-    background-color: #E6E6E6;
-}
-
-.formsProcess .readonly {
-    background-color: #E6E6E6;
-}
-
-
-#guide_summary .tit a {
-    color: #135F7F;
-}
-
-#guide_summary .tit a:hover {
-    color: #666;
-}
-
-.listing a:hover {
-    color: #666665;
-}
-
-.listingsmall a:hover {
-    color: #666665;
-}
-
-#gestion_rep .listing {
-    width: 400px;
-    margin: 0px 0px 0 0px;
-}
-
-#gestion_rep .listing .file_name {
-    width: 120px;
-}
-
-#liste_emetteur,
-#type_choice,
-#date_limite {
-    height: 25px;
-    margin-top: 2px;
-
-}
-
-#allowed_actions li {
-    text-align: left;
-    border: none;
-}
-
-#serviceslist,
-#services_chosen,
-#groupslist,
-#groups {
-    width: 150px;
-}
-
-hr {
-    text-align: center;
-    margin-top: 15px;
-    margin-bottom: 15px;
-    width: 80%;
-    clear: both;
-}
-
-#abs {
-    margin-left: 10px;
-
-}
-
-#welcome_desc #basket {
-    margin-left: 150px;
-}
-
-
-#validleft {
-    /*width: 47%;*/
-    padding-left: 5px;
-    padding-right: 5px;
-    float: left;
-    /*margin: 0 2em 1em 0;*/
-    position: relative;
-}
-
-#validleftprocess {
-    width: 16%;
-    /*width:300px;*/
-    padding-left: 1px;
-    padding-right: 1px;
-    float: left;
-    /*margin: 0 2em 1em 0;*/
-    position: relative;
-}
-
-#validright {
-    /*width: 70% !important;*/
-    padding-left: 5px;
-    padding-right: 5px;
-    vertical-align: top;
-    float: right;
-    /*margin: 0 0 1em 2em;*/
-    position: relative;
-}
-
-#search_mail,
-#exp2 {
-    margin-left: 330px;
-}
-
-#info_user .button,
-#select_folder .button {
-    width: 125px;
-}
-
-#select_folder {
-    background: white;
-    background-image: none;
-}
-
-#folder_tree {
-
-    border: 1px solid #F99830;
-    padding: 2px 5px 5px 2px;
-    vertical-align: top;
-
-}
-
-#folder_search {
-    text-align: left;
-}
-
-#form1 {
-    border: 1px solid #F99830;
-    padding-top: 10px;
-    margin-bottom: 10px;
-
-}
-
-#form2 {
-    border: 1px solid #F99830;
-    padding-top: 10px;
-    text-align: left;
-    padding-left: 5px;
-}
-
-.selected {
-    /*font-weight: bold;*/
-    /* color:rgb(22, 173, 235); */
-    font-size: 12px;
-}
-
-#link_right {
-    text-align: right;
-    margin-left: 100px;
-}
-
-.selectlist {
-    width: 200px;
-}
-
-.forms2 input,
-.forms2 select,
-.forms2 textarea {
-    background-color: White;
-    border: 1px solid #999;
-    color: #666;
-    width: 170px;
-    text-align: left;
-}
-
-.forms2 input,
-.forms textarea {
-    padding: 0.1em 0.2em;
-}
-
-.forms2 select {
-    width: 176px;
-}
-
-.forms2 .rightpart {
-    width: 50%;
-    vertical-align: top;
-    float: left;
-    float: right;
-
-}
-
-.forms2 .leftpart {
-    width: 49%;
-    /*float: left;*/
-}
-
-.forms2 .leftpart2 {
-    width: 70%;
-
-}
-
-.forms2 .leftpart2 span {
-    width: 70%;
-}
-
-#frame .forms2 .leftpart2 {
-    width: 80%;
-}
-
-.forms2 .leftpart label,
-.forms2 .rightpart label,
-.forms2 .leftpart2 label {
-    float: left;
-    display: block;
-    text-align: left;
-    width: 30%;
-    margin-right: 1em;
-    padding-left: 25px;
-}
-
-
-
-.forms2 .leftpart .colon,
-.forms2 .rightpart .colon,
-.forms2 .leftpart2 .colon {
-    margin-right: 7%;
-}
-
-.forms2 p {
-    clear: left;
-}
-
-.forms2 p.buttons {
-    margin-left: 41.3%;
-}
-
-.forms2 .date_small {
-    width: 174px;
-}
-
-.forms2 .datespart {
-    width: 100%;
-}
-
-.forms2 .datespart p .mainlabel {
-    padding-left: 26px;
-    width: 150px;
-    display: block;
-    float: left;
-}
-
-.forms2 .datespart .period_start,
-.forms2 .datespart .period_end {
-    padding-left: 40px;
-    width: 33%;
-}
-
-.forms2 .datespart p {
-    width: 100%;
-    height: 20px;
-    clear: both;
-    vertical-align: top;
-}
-
-.indexingform input,
-.indexingform textarea {
-    width: 220px;
-}
-
-.indexingformBusiness input,
-.indexingform textarea {
-    width: 220px;
-}
-
-.indexingform select {
-    width: 226px;
-}
-
-.indexingform .amountLeft {
-    text-align: right;
-    width: 89px;
-}
-
-.indexingform .amountRight {
-    text-align: right;
-    width: 120px;
-}
-
-#indexingfrmcontact {
-    width: 480px;
-    margin-left: auto;
-    margin-right: auto;
-    margin-bottom: 10px;
-}
-
-#indexingfrmcontact input,
-#indexingfrmcontact textarea {
-    width: 180px;
-}
-
-#indexingfrmcontact .button {
-    width: 60px;
-}
-
-#indexingfrmcontact select {
-    width: 186px;
-}
-
-#indexingfrmcontact .check {
-    border: none;
-    width: 20px;
-}
-
-#indexingfrmcontact .small {
-    width: 50px;
-}
-
-#indexingfrmcontact .medium {
-    width: 140px;
-}
-
-input[type="checkbox"],
-input[type="radio"] {
-    border: none;
-    width: 20px;
-}
-
-.addforms2 .check {
-    border: none;
-    width: 20px;
-}
-
-.addforms .check {
-    border: none;
-    width: 20px;
-}
-
-.addforms3 .check {
-    border: none;
-    width: 20px;
-}
-
-.listing td input[type="radio"] {
-    background-color: #135F7F33;
-}
-
-.listingsmall td input[type="radio"] {
-    background-color: #135F7F33;
-}
-
-.listing .col td input[type="radio"] {
-    background-color: #F2F2F2;
-}
-
-.listingsmall .col td input[type="radio"] {
-    background-color: #F2F2F2;
-}
-
-#folder_out_form {
-    width: 90%;
-}
-
-
-#stats_list li {
-    list-style-type: disc;
-    margin-left: 80px;
-}
-
-.block
-
-/* Propriétés qui s'appliquent au cadre d'habillage en général */
-    {
-    padding: 0px;
-    color: #666;
-    background-color: #F2F2F2;
-    border-top: solid 2px #F99830;
-    border-bottom: solid 2px #F99830;
-    padding: 10px;
-}
-
-.block h2 {
-    /*background-color: #2980b9;*/
-    background-color: #135F7F;
-    padding: 0.5em;
-    margin-left: -10px;
-    margin-right: -10px;
-    margin-top: -10px;
-    margin-bottom: 10px;
-    color: #ffffff;
-}
-
-.block .content
-
-/* Propriétés qui s'appliquent au cadre d'habillage en général */
-    {
-    color: #666;
-    padding: 10px;
-}
-
-
-.block_bottom {
-    background-image: url("static.php?filename=border_bottom.gif");
-    background-repeat: repeat-x;
-    background-position: bottom center;
-    padding-top: 5px;
-    padding-left: 5px;
-    padding-right: 5px;
-    padding-bottom: 5px;
-    background-color: #F2F2F2;
-}
-
-.block_end {
-    background-image: url("static.php?filename=border_bottom.gif");
-    /*background-repeat:repeat_x;*/
-    background-position: bottom;
-    padding-bottom: 7px;
-    /*margin-left: 12px;
-margin-right: 12px;*/
-    display: none;
-}
-
-.blank_space {
-    height: 30px;
-}
-
-.advertissement {
-    width: 95%;
-    border: 1px;
-    /*background-color: #ffe09b;*/
-    color: #333333;
-    /*font-style: italic;*/
-    font-weight: bold;
-    letter-spacing: 0.1em;
-    border: 1px solid #F99830;
-    position: absolute;
-    padding: 2px;
-    top: 0px;
-    left: 5px;
-}
-
-.admin {
-    width: 450px;
-}
-
-.block_light {
-    background-repeat: repeat-x;
-    background-position: top center;
-    padding-top: 8px;
-    padding-left: 5px;
-    padding-right: 5px;
-    background-color: #fefeee;
-}
-
-.bighome_search_adv,
-.bighome_userinfo,
-.bighome_workflow,
-.bighome_indexing,
-.bighome_physical_archive,
-.bighome_createio {
-    width: 187px;
-    height: 64px;
-    color: #1B98C5;
-    font-weight: bold;
-    font-size: 1.1em;
-    letter-spacing: 0.1em;
-    cursor: pointer;
-    text-align: center;
-    vertical-align: middle;
-}
-
-.bighome_search_adv span,
-.bighome_userinfo span,
-.bighome_workflow span,
-.bighome_indexing span,
-.bighome_physical_archive span,
-.bighome_createio span {
-    vertical-align: middle;
-    margin-top: 15px;
-    margin-left: 55px;
-    display: block;
-    color: #135F7F;
-}
-
-.welcome {
-    margin-right: 120px;
-    font-size: 14px;
-}
-
-.footer_menu {
-    background-color: #135F7F;
-    width: 100%;
-    font-weight: bold;
-    font-size: 0.8em;
-    text-align: right;
-    padding: 5px;
-    position: relative;
-    bottom: 0;
-}
-
-.footer_menu span {
-    display: inline-block;
-    min-width: 10px;
-    padding: 3px 7px;
-    font-size: 12px;
-    font-weight: 700;
-    line-height: 1;
-    color: #135f7f;
-    text-align: center;
-    white-space: nowrap;
-    vertical-align: middle;
-    background-color: white;
-    border-radius: 10px;
-}
-
-.footer_menu a {
-    padding-left: 5px;
-    padding-right: 10px;
-}
-
-.img_credits_maarch_box {
-    width: 100%;
-    position: relative;
-    text-align: center;
-    bottom: 0;
-
-}
-
-/*Automplete*/
-div.autocomplete {
-    position: absolute;
-    width: 500px;
-    background-color: white;
-    border: 1px solid #888;
-    margin: 0px;
-    padding: 0px;
-    z-index: 3;
-}
-
-div.autocomplete ul {
-    list-style-type: none;
-    margin: 0px;
-    padding: 0px;
-    max-height: 20em;
-    overflow: auto;
-}
-
-div.autocomplete ul li.selected {
-    background-color: #135F7F33;
-}
-
-div.autocomplete ul li {
-    list-style-type: none;
-    display: block;
-    margin: 0;
-    padding: 2px;
-    cursor: pointer;
-    text-align: left;
-}
-
-div.autocomplete ul li span.informal {
-    color: grey;
-}
-
-/* HR */
-hr {
-    border: none;
-    background-color: #F99830;
-    height: 2px;
-    width: 100%;
-}
-
-.hr_process {
-    width: 80%;
-    text-align: center;
-}
-
-/***** PROTOHUDS *****/
-.protohud {
-    font-size: 12px;
-    height: 0;
-    margin: 0;
-    padding: 1px 16px 0 0;
-    position: absolute;
-    top: 0px;
-    left: 20px;
-    right: 400px;
-    text-align: right;
-    z-index: 1000;
-}
-
-.protohud .trig {
-    display: inline-block;
-    border: 2px double #4a2c02;
-    border-top: 0;
-    color: #f5f5f5;
-    cursor: pointer;
-    font-weight: bold;
-    letter-spacing: 0.1em;
-    margin: 0 2px;
-    padding: 10px 5px 2px 5px;
-    position: relative;
-    top: -8px;
-    z-index: 1000;
-    background: #135F7F33;
-}
-
-.protohud .open {
-    background-color: #f1f1f1;
-    color: #000;
-    top: -1px;
-    padding: 10px 5px 2px 5px;
-}
-
-.protohud .trig:hover {
-    background-color: #f9f9f9;
-    color: #000;
-    outline: 0;
-}
-
-.protohud .trig:active,
-.protohud .trig:focus {
-    outline: 0;
-}
-
-.protohud .targ {
-    background: rgba(255, 255, 255, 0.8);
-    border: 1px solid #4b0802;
-    border-top: 0;
-    border-bottom-width: 3px;
-    bottom: 100%;
-    color: #4b0802;
-    left: 0;
-    margin: 0;
-    overflow: auto;
-    overflow-x: hidden;
-    padding: 0 5px 5px;
-    position: absolute;
-    right: 0;
-    text-align: left;
-    text-indent: 0;
-    z-index: 1;
-}
-
-.protohud dt {
-    display: inline-block;
-}
-
-/* admin services board */
-
-.admin_item {
-    width: 16.6%;
-    min-height: 80px;
-    /*margin: 0px 0px 15px;*/
-    display: block;
-    float: left;
-    cursor: pointer;
-    /*background-color: #F2F2F2;*/
-    text-align: center;
-}
-
-.admin_item:hover {
-    color: #135F7F;
-}
-
-.admin_item div {
-    height: 80px;
-    margin-top: 20px;
-}
-
-#admin_users {
-    background-image: url(static.php?filename=manage_users.gif);
-    background-repeat: no-repeat;
-    background-position: 2px top;
-    /*background:  url(static.php?filename=manage_users.gif) no-repeat 2px top;*/
-}
-
-#admin_groups {
-    /*background:  url(static.php?filename=manage_groups.gif) no-repeat 2px top;*/
-    background-image: url(static.php?filename=manage_groups.gif);
-    background-repeat: no-repeat;
-    background-position: 2px top;
-}
-
-#admin_contacts {
-    /*  background:  url(static.php?filename=manage_architecture.gif) no-repeat 2px top;*/
-    background-image: url(static.php?filename=manage_contacts.gif);
-    background-repeat: no-repeat;
-    background-position: 2px top;
-}
-
-#admin_parameters {
-    /*  background:  url(static.php?filename=manage_architecture.gif) no-repeat 2px top;*/
-    background-image: url(static.php?filename=manage_parameters.gif);
-    background-repeat: no-repeat;
-    background-position: 2px top;
-}
-
-#view_history,
-#view_history_batch {
-    /*background:  url(static.php?filename=view_history.gif) no-repeat 2px top;*/
-    background-image: url(static.php?filename=view_history.gif);
-    background-repeat: no-repeat;
-    background-position: 2px top;
-}
-
-#xml_param_services {
-    /*background:  url(static.php?filename=manage_structures2.gif) no-repeat 2px top;*/
-    background-image: url(static.php?filename=manage_structures2.gif);
-    background-repeat: no-repeat;
-    background-position: 2px top;
-}
-
-#admin_structures {
-    background: url(static.php?filename=manage_structures.gif) no-repeat 2px top;
-}
-
-#admin_subfolders {
-    background: url(static.php?filename=manage_subfolders.gif) no-repeat 2px top;
-
-}
-
-#admin_actions {
-    background-image: url(static.php?filename=manage_actions.gif);
-    background-repeat: no-repeat;
-    background-position: 2px top;
-    /*background:  url(static.php?filename=manage_users.gif) no-repeat 2px top;*/
-}
-
-#admin_status {
-    background-image: url(static.php?filename=manage_status.gif);
-    background-repeat: no-repeat;
-    background-position: 2px top;
-    /*background:  url(static.php?filename=manage_users.gif) no-repeat 2px top;*/
-}
-
-.admin_subtitle {
-    margin-top: 10px;
-    margin-bottom: 10px;
-    height: 30px;
-    /*color: #135F7F;*/
-    /*text-decoration: underline;*/
-    font-weight: bold;
-    font-size: 18px;
-    /*background-color: #CFD3FF;*/
-    text-align: center;
-    background-color: #F2F2F2;
-}
-
-/* Modal */
-div.lb1-layer {
-    text-align: center;
-    position: absolute;
-    display: none;
-    /*background:url(static.php?filename=lb1/fond2.png);*/
-    background: white;
-    /*#555555;*/
-    /*background-color: transparent;*/
-    /*z-index:1000;*/
-    top: 0;
-    left: 0;
-    /*width: 100%;
-height: 100%;*/
-}
-
-.modal {
-    position: absolute;
-    display: block;
-    padding: 10px;
-    /*z-index:3000;*/
-    margin-left: auto;
-    margin-right: auto;
-    background-color: white;
-    background-color: #F2F2F2;
-    border-top: solid 2px #F99830;
-    border-bottom: solid 2px #F99830;
-    overflow: auto;
-    -webkit-box-shadow: 0px 0px 21px 0px rgba(0, 0, 0, 0.75);
-    -moz-box-shadow: 0px 0px 21px 0px rgba(0, 0, 0, 0.75);
-    box-shadow: 0px 0px 21px 0px rgba(0, 0, 0, 0.75);
-    filter: progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=NaN, Strength=5);
-}
-
-.modal h2 {
-    background-color: #135F7F;
-    padding: 0.5em;
-    color: #ffffff;
-    margin-top: -10px;
-    margin-left: -10px;
-    margin-right: -10px;
-    margin-bottom: 10px;
-}
-
-#hist_courrier_frame .listing {
-    width: 100%;
-}
-
-#hist_action_frame .listing {
-    width: 550px;
-}
-
-#content h1 a.back {
-    float: right;
-    display: block;
-    /*margin-top: 1.1em;*/
-    font-size: 14px;
-    color: #666;
-    text-align: right;
-}
-
-.thisword {
-    background-color: #ffff59;
-    color: #000000;
-}
-
-.scroll_div {
-    overflow: auto;
-}
-
-input.button_search_adv {
-    border: 1px solid #44b2bf;
-    color: #007583;
-    background: white url(static.php?filename=search_button.gif) top left repeat-x;
-    cursor: pointer;
-    width: 100px;
-    height: 75px;
-    padding: 0.2em 0.1em;
-    text-align: center;
-}
-
-input.button_search_adv_text {
-    border: 1px solid #44b2bf;
-    color: #007583;
-    cursor: pointer;
-    width: 100px;
-    text-align: center;
-}
-
-#query_name {
-    width: 150px;
-}
-
-/*Automplete*/
-div.autocomplete {
-    position: absolute;
-    width: 500px;
-    background-color: white;
-    border: 1px solid #888;
-    margin: 0px;
-    padding: 0px;
-}
-
-div.autocomplete ul {
-    list-style-type: none;
-    margin: 0px;
-    padding: 0px;
-    max-height: 20em;
-    overflow: auto;
-}
-
-div.autocomplete ul li.selected {
-    background-color: #ffb;
-}
-
-div.autocomplete ul li {
-    /*background-color: #F2F2F2;*/
-    list-style-type: none;
-    display: block;
-    margin: 0;
-    padding: 2px;
-    cursor: pointer;
-    text-align: left;
-}
-
-div.autocomplete ul li span.informal {
-    color: grey;
-}
-
-/*****/
-
-#frmcontact p,
-#frmuserdata p {
-    margin-bottom: 4px;
-}
-
-.zero_padding td {
-    padding: 4px 3px 1px 1px;
-}
-
-.block .check {
-    background-color: #F2F2F2;
-}
-
-.indexing_error {
-    font-size: 14px;
-    color: #ea0000;
-    font-weight: bold;
-    text-align: center;
-}
-
-#index_doc select {
-    width: 206px;
-}
-
-#frmcontact .indexing_field {
-    text-align: right;
-}
-
-.listing td.picto {
-    width: 50px;
-    margin: 0px;
-    padding: 5px 0px;
-}
-
-td.picto,
-th.picto,
-td.action {
-    text-align: center;
-    padding: 0 0.2em 0;
-    width: 4%;
-}
-
-#comp_indexes {
-    display: block;
-    width: 450px;
-}
-
-.tafelTree table {
-    border-collapse: collapse;
-}
-
-/**
-Gestion du style de la legende (Ajout yck)
-**/
-a.legend {
-    text-decoration: none;
-    color: black;
-    /* font-size: 15px; */
-}
-
-a.legend span {
-    display: none;
-    font-size: 10px;
-    font-weight: normal;
-}
-
-a.legend:hover,
-a.legend:focus,
-a.legend:active {
-    background: none;
-    /* correction d'un bug IE */
-}
-
-a.legend:hover span,
-a.legend:focus span,
-a.legend:active span {
-    display: inline;
-    position: absolute;
-    z-index: 500;
-    margin: 0.2em 0 0 0.1em;
-    background: #FBF7D4;
-    text-align: left;
-    color: gray;
-    padding: 2px;
-    width: 200px;
-    border: 1px solid #F4EAA2;
-}
-
-a.legend hr {
-    height: 0.2em;
-    margin: 0.2em 0 0.2em 0;
-    padding: 0;
-    color: gray;
-    background-color: gray;
-    border: 0.2em gray;
-}
-
-.task {
-    background-color: #EFFAFF;
-    width: 50%;
-    float: left;
-    height: 41px;
-}
-
-#welcome_title {
-    font-size: 14px;
-}
-
-.center {
-    margin: auto auto;
-}
-
-.h2_title {
-    margin: 0;
-    padding: 0;
-    font-size: 16px;
-    font-weight: bold;
-    clear: both;
-}
-
-#myTree {
-    /*width: 520px;*/
-}
-
-.listletter {
-    padding: 4px 0 4px 0px;
-}
-
-.selectedLetter {
-    background: #135F7F;
-    color: #FFFFFF;
-    padding: 2px;
-}
-
-.highlighted {
-    background: #FFFF99;
-    color: #000000;
-}
-
-.listing .disabled td {
-    background-color: #E1E1E1;
-    color: #FFFFFF;
-}
-
-table.listing {
-    overflow-x: hidden;
-    overflow-y: auto;
-}
-
-.separator1 {
-    color: #999999;
-}
-
-.separator2 {
-    border-top: 1px solid #999999;
-}
-
-/*** NEW WF ***/
-
-.largerList {
-    margin: 0;
-    min-width: 900px;
-    width: 100%;
-}
-
-/*added by lgi*/
-a.actionList {
-    padding-left: 20px;
-    background: transparent 10px center no-repeat;
-    color: #135F7F;
-}
-
-.nbResZero {
-    background: #666;
-    color: white;
-    padding: 3px;
-    border-radius: 7px;
-}
-
-.nbRes {
-    background: #F99830;
-    color: white;
-    padding: 3px;
-    border-radius: 7px;
-}
-
-.mCdarkGrey {
-    color: #58585A;
-}
-
-.mClightGrey {
-    color: #87888A;
-}
-
-.mCdarkBlue {
-    color: #0487C1;
-}
-
-.mCdarkMediumBlue {
-    color: #1C99C5;
-}
-
-.mClightMediumBlue {
-    color: #135F7F33;
-}
-
-.mClightBlue {
-    color: #F2F2F2;
-}
-
-.mCpaleBlue {
-    color: #F2F2F2;
-}
-
-.mCdarkOrange {
-    color: #F99830;
-}
-
-.mCsoDarkOrange {
-    color: #DF7401;
-}
-
-.mClightOrange {
-    color: #FFE09B;
-}
-
-.mCyellow {
-    color: #FFDC1F;
-}
-
-.mCdarkBlack {
-    color: #070B19;
-}
-
-#nbLines_chosen {
-    margin-top: -11px;
-}
-
-input.button {
-    width: auto;
-}
-
-#frmsearch2 .autocomplete,
-#frmcontact .autocomplete {
-    top: auto !important;
-}
-
-.attachmentIcon .iconDoc a i {
-    color: #135F7F;
-}
-
-.typeahead__list {
-    min-width: 150px !important;
-}
-
-.iconDoc span {
-    display: none;
-}
-
-.iconDoc:hover span {
-    display: block;
-    position: fixed;
-    left: 10px;
-    top: 10px;
-    -moz-box-shadow: 0px 0px 5px 0px #656565;
-    -webkit-box-shadow: 0px 0px 5px 0px #656565;
-    -o-box-shadow: 0px 0px 5px 0px #656565;
-    box-shadow: 0px 0px 5px 0px #656565;
-    filter: progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=NaN, Strength=5);
-    z-index: 100;
-    height: auto;
-    width: auto;
-}
-
-.iconDoc:hover span img {
-    height: auto;
-    width: auto;
-}
-
-.maarchToolButton {
-    padding: 10px;
-}
-
-.maarchToolButton:hover {
-    transition: background-color 0.5s ease;
-    background-color: rgba(0, 0, 0, .12);
-}
-
-.listResultContent .actionsTool {
-    display: flex;
-}
-
-.listResultContent .actionsTool .fa {
-    font-size: 24px;
-}
-
-.listResultContent .actionsTool a,
-.listResultContent .actionsTool div,
-.listResultContent .actionsTool i {
-    flex: 1;
-}
-
-.listResultContent .fa {
-    font-size: 16px;
-}
-
-.indexing_field .typeahead__field input {
-    min-height: 0px;
-    height: 17px;
-    font-size: 10.5px;
-    padding-right: 22px !important;
-    padding-left: 5px !important;
-    border: 1px solid #999;
-}
-
-#sender_recipient_tr .typeahead__field input {
-    width: 225px;
-    margin-left: 17px;
-}
-
-#sender_recipient_tr .typeahead__list {
-    width: 225px;
-    margin-left: 17px;
-}
-
-.typeahead__list {
-    font-size: 12px;
-}
-
-.typeahead__cancel-button {
-    padding: 0px !important;
-    padding-right: 10px !important;
-}
-
-.adv_search_field_content {
-    display: flex;
-    padding-left: 30px;
-    padding-right: 30px;
-}
-
-.adv_search_field_content .adv_search_field {
-    flex: 1;
-    padding: 10px;
-}
-
-.adv_search_field_content .adv_search_field .typeahead__container {
-    width: 206px;
-}
-
-.adv_search_field_content .adv_search_field .required::before {
-    position: absolute;
-    left: -10px;
-    top: 0;
-    content: '*';
-    color: red;
-}
-
-.submitButton {
-    background-color: #24b0ed !important;
-    color: white !important;
-    border: none !important;
-    box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);
-    padding: 5px 10px !important;
-    border-radius: 4px !important;
-    font-size: 13px;
-    font-weight: 500;
-    width: 100% !important;
-    height: 32px;
-    text-align: center !important;
-}
-
-.submitButton:active {
-    box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12);
-    transition: all 0.2s;
-}
-
-.submitButton:focus {
-    transition: all 0.2s;
-    outline: none;
-}
-
-.submitButton::-moz-focus-inner {
-    border: 0;
-}
-
-.standardConnectInput {
-    width: 100% !important; 
-    height: 32px; 
-    padding: 6px 12px !important; 
-    font-size: 14px; 
-    border: 1px solid #cccccc !important; 
-    border-radius: 4px;
-}
diff --git a/apps/maarch_entreprise/definition_mail_categories.php b/apps/maarch_entreprise/definition_mail_categories.php
deleted file mode 100755
index 75e1a468f65..00000000000
--- a/apps/maarch_entreprise/definition_mail_categories.php
+++ /dev/null
@@ -1,809 +0,0 @@
-<?php
-/*
-*    Copyright 2008-2016 Maarch
-*
-*  This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*    along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
- * @brief   Contains data structure used to get the proper index for a given category, to checks data and to loads in db (indexing, process, validation, details, ...) and the function to access it
- *
- * @file
- *
- * @author Claire Figueras <dev@maarch.org>
- * @date $date$
- *
- * @version $Revision$
- * @ingroup apps
- */
-
-///////////////////// Pattern to check dates
-$_ENV['date_pattern'] = '/^[0-3][0-9]-[0-1][0-9]-[1-2][0-9][0-9][0-9]$/';
-
-/*
- * Categories are described in a global variable : $_ENV['categories']
- * $_ENV['categories'][category_id]
- *      ['img_cat'] : url of the icon category
- *      [id_field] // id_field must be an identifier of a field in the form and in the database
- *          ['type_form'] = Form type field: 'integer', 'date', 'string', 'yes_no', 'special'
- *          ['type_field'] = Database type field :'integer', 'date', 'string', 'yes_no', 'special'
- *          ['mandatory'] = true or false
- *          ['label'] = label of the field
- *          ['img'] = Image url (optional)
- *          ['table'] = keyword : 'res' = field in the res_x like table
- *                                'coll_ext' = field in collection ext table (ex : mlb_ext_coll)
- *                                'none' = field in no table, only in form for special functionnality
- *                                'special' = field in other table, handled in the code
- *          ['modify'] = true or false (optional) : can we modify this field (used in details.php)
- *          ['form_show'] = keyword (used with modify = true)
- *                           'select' = displayed in a select item
- *                           'textfield' = displayed in text input
- *                           'date' = displayed in a date input (with calendar activated)
- *      ['other_cases'] // particular cases handled in code
- *            [identifier] // keyword handled in the code
- *                  ['type_form'] = Form type field:'integer', 'date', 'string', 'yes_no', 'special'
- *                  ['type_field'] = Databse type field :'integer', 'date', 'string', 'yes_no', 'special'
- *                  ['mandatory'] = true or false
- *                  ['label'] = label of the field
- *                  ['table'] = keyword : 'res' = field in the res_x like table
- *                                        'coll_ext' = field in collection ext table (ex : mlb_ext_coll)
- *                                        'none' = field in no table, only in form for special functionnality
- *                                        'special' = field in another table, handled in the code
- *                  ['modify'] = true or false (optional) : can we modify this field (used in details.php)
- *                  ['form_show'] = keyword (used with modify = true)
- *                              'select' = displayed in a select item
- *                              'textfield' = keyword : 'date' = date input field
- *                              'date' = displayed in a date input (with calendar activated)
- *
- */
-
-/**************************** Categories descriptions******************************/
-$_ENV['categories'] = array();
-
-///////////////////////////// INCOMING ////////////////////////////////////////////////
-$_ENV['categories']['incoming'] = array();
-$_ENV['categories']['incoming']['img_cat'] = '<i class="fa fa-arrow-right fa-2x"></i>';
-$_ENV['categories']['incoming']['other_cases'] = array();
-$_ENV['categories']['incoming']['priority'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => false,
-    'label' => _PRIORITY,
-    'table' => 'res',
-    'img' => 'exclamation',
-    'modify' => true,
-    'form_show' => 'select',
-);
-$_ENV['categories']['incoming']['type_id'] = array(
-    'type_form' => 'integer',
-    'type_field' => 'integer',
-    'mandatory' => true,
-    'label' => _DOCTYPE_MAIL,
-    'table' => 'res',
-    'img' => 'file',
-    'modify' => true,
-    'form_show' => 'select',
-);
-$_ENV['categories']['incoming']['doc_date'] = array(
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'mandatory' => true,
-    'label' => _MAIL_DATE,
-    'table' => 'res',
-    'img' => 'calendar',
-    'modify' => true,
-    'form_show' => 'date',
-);
-$_ENV['categories']['incoming']['admission_date'] = array(
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'mandatory' => true,
-    'label' => _RECEIVING_DATE,
-    'table' => 'coll_ext',
-    'img' => 'calendar',
-    'modify' => true,
-    'form_show' => 'date',
-);
-$_ENV['categories']['incoming']['departure_date'] = array (
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'mandatory' => false,
-    'label' => _EXP_DATE,
-    'table' => 'res',
-    'img' => 'calendar',
-    'modify' => true,
-    'form_show' => 'date'
-);
-// $_ENV['categories']['incoming']['description'] = array (
-//     'type_form' => 'string',
-//     'type_field' => 'string',
-//     'mandatory' => false,
-//     'label' => _OTHERS_INFORMATIONS,
-//     'table' => 'res',
-//     'img' => 'info-circle',
-//     'modify' => true,
-//     'form_show' => 'textarea'
-// );
-$_ENV['categories']['incoming']['subject'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _SUBJECT,
-    'table' => 'res',
-    'img' => 'info',
-    'modify' => true,
-    'form_show' => 'textarea',
-);
-$_ENV['categories']['incoming']['process_limit_date_use'] = array(
-    'type_form' => 'radio',
-    'mandatory' => true,
-    'label' => _PROCESS_LIMIT_DATE_USE,
-    'table' => 'none',
-    'values' => array(
-        'Y',
-        'N',
-    ),
-    'modify' => false,
-);
-$_ENV['categories']['incoming']['other_cases']['process_limit_date'] = array(
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'label' => _PROCESS_LIMIT_DATE,
-    'table' => 'coll_ext',
-    'img' => 'bell',
-    'modify' => true,
-    'form_show' => 'date',
-);
-$_ENV['categories']['incoming']['type_contact'] = array(
-    'type_form' => 'radio',
-    'mandatory' => true,
-    'label' => _SHIPPER_TYPE,
-    'table' => 'none',
-    'values' => array(
-        'internal',
-        'external',
-        'multi_external',
-    ),
-    'modify' => false,
-);
-$_ENV['categories']['incoming']['other_cases']['contact'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _SHIPPER,
-    'table' => 'coll_ext',
-    'special' => 'exp_user_id,exp_contact_id,is_multicontacts',
-    'modify' => true,
-    'img' => 'book',
-    'form_show' => 'textfield',
-);
-$_ENV['categories']['incoming']['other_cases']['resourceContact'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _DEST,
-    'table' => 'res',
-    'special' => '',
-    'modify' => true,
-    'img' => 'book',
-    'form_show' => 'textfield',
-);
-$_ENV['categories']['incoming']['department_number_id'] = array (
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => false,
-    'label' => _DEPARTMENT_NUMBER,
-    'table' => 'res',
-    'img' => 'road',
-    'modify' => false,
-    'form_show' => 'textfield'
-);
-$_ENV['categories']['incoming']['barcode'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => false,
-    'label' => _BARCODE,
-    'table' => 'res',
-    'img' => 'barcode',
-    'modify' => false,
-    'form_show' => 'textfield',
-);
-$_ENV['categories']['incoming']['confidentiality'] = array(
-    'type_form' => 'radio',
-    'type_field' => 'string',
-    'mandatory' => false,
-    'label' => _CONFIDENTIALITY,
-    'table' => 'res',
-    'values' => array(
-        'Y',
-        'N',
-    ),
-    'img' => 'exclamation-triangle',
-    'modify' => true,
-);
-
-///////////////////////////// OUTGOING ////////////////////////////////////////////////
-$_ENV['categories']['outgoing'] = array();
-$_ENV['categories']['outgoing']['img_cat'] = '<i class="fa fa-arrow-left fa-2x"></i>';
-$_ENV['categories']['outgoing']['other_cases'] = array();
-$_ENV['categories']['outgoing']['priority'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => false,
-    'label' => _PRIORITY,
-    'table' => 'res',
-    'img' => 'exclamation',
-    'modify' => true,
-    'form_show' => 'select',
-);
-$_ENV['categories']['outgoing']['type_id'] = array(
-    'type_form' => 'integer',
-    'type_field' => 'integer',
-    'mandatory' => true,
-    'label' => _DOCTYPE_MAIL,
-    'table' => 'res',
-    'img' => 'file',
-    'modify' => true,
-    'form_show' => 'select',
-);
-$_ENV['categories']['outgoing']['doc_date'] = array(
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'mandatory' => true,
-    'label' => _MAIL_DATE,
-    'table' => 'res',
-    'img' => 'calendar',
-    'modify' => true,
-    'form_show' => 'date',
-);
-$_ENV['categories']['outgoing']['departure_date'] = array (
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'mandatory' => false,
-    'label' => _EXP_DATE,
-    'table' => 'res',
-    'img' => 'calendar',
-    'modify' => true,
-    'form_show' => 'date'
-);
-// $_ENV['categories']['outgoing']['description'] = array (
-//     'type_form' => 'string',
-//     'type_field' => 'string',
-//     'mandatory' => false,
-//     'label' => _OTHERS_INFORMATIONS,
-//     'table' => 'res',
-//     'img' => 'info-circle',
-//     'modify' => true,
-//     'form_show' => 'textarea'
-// );
-$_ENV['categories']['outgoing']['department_number_id'] = array (
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => false,
-    'label' => _DEPARTMENT_NUMBER,
-    'table' => 'res',
-    'img' => 'road',
-    'modify' => false,
-    'form_show' => 'textfield'
-);
-$_ENV['categories']['outgoing']['barcode'] = array (
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => false,
-    'label' => _BARCODE,
-    'table' => 'res',
-    'img' => 'barcode',
-    'modify' => false,
-    'form_show' => 'textfield',
-);
-$_ENV['categories']['outgoing']['subject'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _SUBJECT,
-    'table' => 'res',
-    'img' => 'info',
-    'modify' => true,
-    'form_show' => 'textarea',
-);
-$_ENV['categories']['outgoing']['process_limit_date_use'] = array(
-    'type_form' => 'radio',
-    'mandatory' => true,
-    'label' => _PROCESS_LIMIT_DATE_USE,
-    'table' => 'none',
-    'values' => array(
-        'Y',
-        'N',
-    ),
-    'modify' => false,
-);
-$_ENV['categories']['outgoing']['other_cases']['process_limit_date'] = array(
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'label' => _PROCESS_LIMIT_DATE,
-    'table' => 'coll_ext',
-    'img' => 'bell',
-    'modify' => true,
-    'form_show' => 'date',
-);
-$_ENV['categories']['outgoing']['type_contact'] = array(
-    'type_form' => 'radio',
-    'mandatory' => true,
-    'label' => _DEST_TYPE,
-    'table' => 'none',
-    'values' => array(
-        'internal',
-        'external',
-        'multi_external',
-    ),
-    'modify' => false,
-);
-$_ENV['categories']['outgoing']['other_cases']['contact'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _DEST,
-    'table' => 'coll_ext',
-    'special' => 'dest_user_id,dest_contact_id,is_multicontacts',
-    'img' => 'book',
-    'modify' => true,
-    'img' => 'book',
-    'form_show' => 'textfield',
-);
-$_ENV['categories']['outgoing']['other_cases']['resourceContact'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _SENDER,
-    'table' => 'res',
-    'special' => '',
-    'modify' => true,
-    'img' => 'book',
-    'form_show' => 'textfield',
-);
-$_ENV['categories']['outgoing']['confidentiality'] = array(
-    'type_form' => 'radio',
-    'type_field' => 'string',
-    'mandatory' => false,
-    'label' => _CONFIDENTIALITY,
-    'table' => 'res',
-    'values' => array(
-        'Y',
-        'N',
-    ),
-    'img' => 'exclamation-triangle',
-    'modify' => true,
-);
-
-///////////////////////////// INTERNAL ////////////////////////////////////////////////
-$_ENV['categories']['internal'] = array();
-$_ENV['categories']['internal']['img_cat'] = '<i class="fa fa-arrow-down fa-2x"></i>';
-$_ENV['categories']['internal']['other_cases'] = array();
-$_ENV['categories']['internal']['priority'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => false,
-    'label' => _PRIORITY,
-    'table' => 'res',
-    'img' => 'exclamation',
-    'modify' => true,
-    'form_show' => 'select',
-);
-$_ENV['categories']['internal']['type_id'] = array(
-    'type_form' => 'integer',
-    'type_field' => 'integer',
-    'mandatory' => true,
-    'label' => _DOCTYPE_MAIL,
-    'table' => 'res',
-    'img' => 'file',
-    'modify' => true,
-    'form_show' => 'select',
-);
-$_ENV['categories']['internal']['doc_date'] = array(
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'mandatory' => true,
-    'label' => _MAIL_DATE,
-    'table' => 'res',
-    'img' => 'calendar',
-    'modify' => true,
-    'form_show' => 'date',
-);
-$_ENV['categories']['internal']['subject'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _SUBJECT,
-    'table' => 'res',
-    'img' => 'info',
-    'modify' => true,
-    'form_show' => 'textarea',
-);
-$_ENV['categories']['internal']['process_limit_date_use'] = array(
-    'type_form' => 'radio',
-    'mandatory' => true,
-    'label' => _PROCESS_LIMIT_DATE_USE,
-    'table' => 'none',
-    'values' => array(
-        'Y',
-        'N',
-    ),
-    'modify' => false,
-);
-$_ENV['categories']['internal']['other_cases']['process_limit_date'] = array(
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'label' => _PROCESS_LIMIT_DATE,
-    'table' => 'coll_ext',
-    'img' => 'bell',
-    'modify' => false,
-);
-$_ENV['categories']['internal']['type_contact'] = array(
-    'type_form' => 'radio',
-    'mandatory' => true,
-    'label' => _SHIPPER_TYPE,
-    'table' => 'none',
-    'values' => array(
-        'internal',
-        'external',
-        'multi_external'
-    ),
-    'modify' => false,
-);
-$_ENV['categories']['internal']['other_cases']['contact'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _SHIPPER,
-    'table' => 'coll_ext',
-    'special' => 'exp_user_id,exp_contact_id,is_multicontacts',
-    'modify' => true,
-    'img' => 'book',
-    'form_show' => 'textfield',
-);
-$_ENV['categories']['internal']['other_cases']['resourceContact'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _DEST,
-    'table' => 'res',
-    'special' => '',
-    'modify' => true,
-    'img' => 'book',
-    'form_show' => 'textfield',
-);
-
-///////////////////////////// RECONCILIATION ////////////////////////////////////////////////
-
-$_ENV['categories']['attachment'] = array();
-$_ENV['categories']['attachment']['img_cat'] = '<i class="fa fa-paperclip fa-2x"></i>';
-$_ENV['categories']['attachment']['other_cases'] = array();
-$_ENV['categories']['attachment']['other_cases']['chrono_number'] = array(
-    'type_form' => 'integer',
-    'type_field' => 'integer',
-    'mandatory' => false,
-    'label' => _CHRONO_NUMBER,
-    'table' => 'none',
-    'img' => 'compass',
-    'modify' => false,
-    'form_show' => 'textfield',
-);
-$_ENV['categories']['attachment']['other_cases']['contact'] = array (
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _DEST,
-    'table' => 'coll_ext',
-    'special' => 'dest_user_id,dest_contact_id',
-    'img' => 'book',
-    'modify' => false
-);
-$_ENV['categories']['attachment']['type_id'] = array(
-    'type_form' => 'integer',
-    'type_field' => 'integer',
-    'mandatory' => true,
-    'label' => _DOCTYPE_MAIL,
-    'table' => 'res',
-    'img' => 'file',
-    'modify' => true,
-    'form_show' => 'select',
-);
-$_ENV['categories']['attachment']['destination'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _DEPARTMENT_EXP,
-    'table' => 'res',
-    'img' => 'sitemap',
-    'modify' => false,
-    'form_show' => 'textarea',
-);
-$_ENV['categories']['attachment']['other_cases']['contact'] = array (
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => false,
-    'label' => _DEST,
-    'table' => 'coll_ext',
-    'special' => 'dest_user_id,dest_contact_id,is_multicontacts',
-    'img' => 'book',
-    'modify' => false
-);
-///////////////////////////// GED DOC ////////////////////////////////////////////////
-$_ENV['categories']['ged_doc'] = array();
-$_ENV['categories']['ged_doc']['img_cat'] = '<i class="fa fa-arrow-right fa-2x"></i>';
-$_ENV['categories']['ged_doc']['other_cases'] = array();
-$_ENV['categories']['ged_doc']['type_id'] = array(
-    'type_form' => 'integer',
-    'type_field' => 'integer',
-    'mandatory' => true,
-    'label' => _DOCTYPE,
-    'table' => 'res',
-    'img' => 'file',
-    'modify' => true,
-    'form_show' => 'select',
-);
-$_ENV['categories']['ged_doc']['doc_date'] = array(
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'mandatory' => true,
-    'label' => _DOC_DATE,
-    'table' => 'res',
-    'img' => 'calendar',
-    'modify' => true,
-    'form_show' => 'date',
-);
-
-$_ENV['categories']['ged_doc']['subject'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _SUBJECT,
-    'table' => 'res',
-    'img' => 'info',
-    'modify' => true,
-    'form_show' => 'textarea',
-);
-$_ENV['categories']['ged_doc']['type_contact'] = array(
-    'type_form' => 'radio',
-    'mandatory' => true,
-    'label' => 'type de contact',
-    'table' => 'none',
-    'values' => array(
-        'internal',
-        'external',
-    ),
-    'modify' => false,
-);
-$_ENV['categories']['ged_doc']['other_cases']['contact'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _AUTHOR_DOC,
-    'table' => 'coll_ext',
-    'special' => 'exp_user_id,exp_contact_id',
-    'modify' => false,
-    'img' => 'book',
-    'form_show' => 'textfield',
-);
-
-$_ENV['categories']['ged_doc']['confidentiality'] = array(
-    'type_form' => 'radio',
-    'type_field' => 'string',
-    'mandatory' => false,
-    'label' => _CONFIDENTIALITY,
-    'table' => 'res',
-    'values' => array(
-        'Y',
-        'N',
-    ),
-    'img' => 'exclamation-triangle',
-    'modify' => true,
-);
-
-/////////////////////////////FOLDER DOCUMENT////////////////////////////////////////////////
-$_ENV['categories']['folder_document'] = array();
-$_ENV['categories']['folder_document']['img_cat'] = '<i class="fa fa-folder fa-2x"></i>';
-$_ENV['categories']['folder_document']['other_cases'] = array();
-$_ENV['categories']['folder_document']['type_id'] = array(
-    'type_form' => 'integer',
-    'type_field' => 'integer',
-    'mandatory' => true,
-    'label' => _DOCTYPE,
-    'table' => 'res',
-    'img' => 'file',
-    'modify' => true,
-    'form_show' => 'select',
-);
-$_ENV['categories']['folder_document']['doc_date'] = array(
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'mandatory' => true,
-    'label' => _DOC_DATE,
-    'table' => 'res',
-    'img' => 'calendar',
-    'modify' => true,
-    'form_show' => 'date',
-);
-$_ENV['categories']['folder_document']['subject'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _SUBJECT,
-    'table' => 'res',
-    'img' => 'info',
-    'modify' => true,
-    'form_show' => 'textarea',
-);
-$_ENV['categories']['folder_document']['author'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _AUTHOR,
-    'table' => 'res',
-    'img' => 'edit',
-    'modify' => true,
-    'form_show' => 'textfield',
-);
-
-/////////////////////////////EMPTY////////////////////////////////////////////////
-$_ENV['categories']['empty'] = array();
-$_ENV['categories']['empty']['img_cat'] = '<i class="fa fa-circle fa-2x"></i>';
-$_ENV['categories']['empty']['other_cases'] = array();
-$_ENV['categories']['empty']['type_id'] = array(
-    'type_form' => 'integer',
-    'type_field' => 'integer',
-    'mandatory' => true,
-    'label' => _DOCTYPE,
-    'table' => 'res',
-    'img' => 'file',
-    'modify' => true,
-    'form_show' => 'select',
-);
-$_ENV['categories']['empty']['doc_date'] = array(
-    'type_form' => 'date',
-    'type_field' => 'date',
-    'mandatory' => true,
-    'label' => _DOC_DATE,
-    'table' => 'res',
-    'img' => 'calendar',
-    'modify' => true,
-    'form_show' => 'date',
-);
-$_ENV['categories']['empty']['title'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _INVOICE_NUMBER,
-    'table' => 'res',
-    'img' => 'info',
-    'modify' => true,
-    'form_show' => 'textfield',
-);
-$_ENV['categories']['empty']['identifier'] = array(
-    'type_form' => 'string',
-    'type_field' => 'string',
-    'mandatory' => true,
-    'label' => _INVOICE_NUMBER,
-    'table' => 'res',
-    'img' => 'compass',
-    'modify' => true,
-    'form_show' => 'textfield',
-);
-
-/////////////////////////////MODULES SPECIFIC////////////////////////////////////////////////
-$core = new core_tools();
-if ($core->is_module_loaded('entities')) {
-    //Entities module (incoming)
-    $_ENV['categories']['incoming']['destination'] = array(
-        'type_form' => 'string',
-        'type_field' => 'string',
-        'mandatory' => true,
-        'label' => _DEPARTMENT_DEST,
-        'table' => 'res',
-        'img' => 'sitemap',
-        'modify' => false,
-        'form_show' => 'textarea',
-    );
-    $_ENV['categories']['incoming']['other_cases']['diff_list'] = array(
-        'type' => 'special',
-        'mandatory' => true,
-        'label' => _DIFF_LIST,
-        'table' => 'special',
-    );
-
-    // Entities module (outgoing)
-    $_ENV['categories']['outgoing']['destination'] = array(
-        'type_form' => 'string',
-        'type_field' => 'string',
-        'mandatory' => true,
-        'label' => _DEPARTMENT_EXP,
-        'table' => 'res',
-        'img' => 'sitemap',
-        'modify' => false,
-        'form_show' => 'textarea',
-    );
-    $_ENV['categories']['outgoing']['other_cases']['diff_list'] = array(
-        'type' => 'special',
-        'mandatory' => true,
-        'label' => _DIFF_LIST,
-        'table' => 'special',
-    );
-
-    // Entities module (internal)
-    $_ENV['categories']['internal']['destination'] = array(
-        'type_form' => 'string',
-        'type_field' => 'string',
-        'mandatory' => true,
-        'label' => _DEPARTMENT_DEST,
-        'table' => 'res',
-        'img' => 'sitemap',
-        'modify' => false,
-        'form_show' => 'textarea',
-    );
-    $_ENV['categories']['internal']['other_cases']['diff_list'] = array(
-        'type' => 'special',
-        'mandatory' => true,
-        'label' => _DIFF_LIST,
-        'table' => 'special',
-    );
-
-    //Entities module (ged doc)
-    $_ENV['categories']['ged_doc']['destination'] = array(
-        'type_form' => 'string',
-        'type_field' => 'string',
-        'mandatory' => true,
-        'label' => _DEPARTMENT_OWNER,
-        'table' => 'res',
-        'img' => 'sitemap',
-        'modify' => false,
-        'form_show' => 'textarea',
-    );
-
-    $_ENV['categories']['ged_doc']['destination'] = array(
-        'type_form' => 'string',
-        'type_field' => 'string',
-        'mandatory' => true,
-        'label' => _DEPARTMENT_OWNER,
-        'table' => 'res',
-        'img' => 'sitemap',
-        'modify' => false,
-        'form_show' => 'textarea',
-    );
-}
-
-/************************* END *************************************************************/
-
-
-/**
- * Returns the icon for the given category or the default icon.
- *
- * @param $cat_id string Category identifiert
- *
- * @return string Icon Url
- **/
-function get_img_cat($cat_id)
-{
-    $default = '<i class="fa fa-times fa-2x"></i>';
-    if (empty($cat_id)) {
-        return $default;
-    } else {
-        if (!empty($_ENV['categories'][$cat_id]['img_cat'])) {
-            return $_ENV['categories'][$cat_id]['img_cat'];
-        } else {
-            return $default;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/indexing_searching/manage_query.php b/apps/maarch_entreprise/indexing_searching/manage_query.php
deleted file mode 100755
index fc4483520e2..00000000000
--- a/apps/maarch_entreprise/indexing_searching/manage_query.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-/*
-*    Copyright 2008,2009 Maarch
-*
-*  This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*    along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
-* @brief  Script used by an Ajax object to manage saved queries(create, modify and delete)
-*
-* @file manage_query.php
-* @author Claire Figueras <dev@maarch.org>
-* @date $date$
-* @version $Revision$
-* @ingroup indexing_searching_mlb
-*/
-require_once 'core/class/class_request.php';
-$core_tools = new core_tools();
-$core_tools->load_lang();
-$db = new Database();
-$req = new request();
-$tmp = false;
-
-if ($_POST['action'] == 'creation') {
-    if (isset($_POST['name']) && !empty($_POST['name'])) {
-        $name = preg_replace('/[\'"]/', '', $_POST['name']);
-
-        $stmt = $db->query(
-            'SELECT query_id FROM ' . $_SESSION['tablename']['saved_queries']
-            . " WHERE user_id = ? and query_name= ?",
-            array($_SESSION['user']['UserId'], $_POST['name'])
-        );
-
-        if ($stmt->rowCount() < 1) {
-            $tmp = $db->query(
-                'INSERT INTO ' . $_SESSION['tablename']['saved_queries']
-                . ' (user_id, query_name, creation_date, created_by, '
-                . " query_type, query_txt) VALUES (?, ?, CURRENT_TIMESTAMP, ?, 'my_search', ? )",
-                array($_SESSION['user']['UserId'], $_POST['name'], $_SESSION['user']['UserId'], $_SESSION['current_search_query']), true
-            );
-        } else {
-            if ($stmt->rowCount() >= 1) {
-                //si il existe déjà une ligne dans la base avec les mêmes infos, on va demander confirmation
-                $_SESSION['seekName'] = $_POST['name'];
-                echo '{status : 4}';
-                exit();
-            }
-            $res = $stmt->fetchObject();
-            $id = $res->query_id;
-            $tmp = $db->query(
-                'UPDATE ' . $_SESSION['tablename']['saved_queries']
-                . " SET query_txt = ?, last_modification_date = CURRENT_TIMESTAMP WHERE user_id = ? and query_name= ?"
-                , array ($_SESSION['current_search_query'], $_SESSION['user']['UserId'], $_POST['name']), true
-            );
-        }
-        if (!$tmp) {
-            echo "{status : 2, 'query':'".$tmp->debugDumpParams()."'}";
-            exit();
-        } else {
-            echo '{status : 0}';
-            exit();
-        }
-    } else {
-        echo '{status : 3}';
-    }
-} elseif ($_POST['action'] == 'load') {
-    if (isset($_POST['id']) && !empty($_POST['id'])) {
-        $tmp = $db->query(
-            'SELECT query_txt FROM ' . $_SESSION['tablename']['saved_queries']
-            . " WHERE query_id = ?", array($_POST['id']), true
-        );
-    }
-    if (!$tmp) {
-        echo "{'status' : 2, 'query':'".$tmp->debugDumpParams()."'}";
-    } else {
-        $res = $tmp->fetchObject();
-        echo "{'status' : 0, 'query':".$res->query_txt."}";
-    }
-} elseif ($_POST['action'] == 'delete') {
-    if (isset($_POST['id']) && !empty($_POST['id'])) {
-        $tmp = $db->query(
-            'DELETE FROM ' . $_SESSION['tablename']['saved_queries']
-            . " WHERE query_id = ?", array($_POST['id']), true
-        );
-    }
-    if (!$tmp) {
-        echo "{'status' : 2, 'query':'".$tmp->debugDumpParams()."'}";
-    } else {
-        echo "{'status' : 0}";
-    }
-} elseif ($_POST['action'] == 'creation_ok') {
-
-            $tmp = $db->query(
-                'UPDATE ' . $_SESSION['tablename']['saved_queries']
-                . " SET query_txt = ?, last_modification_date = CURRENT_TIMESTAMP WHERE user_id = ? and query_name= ?"
-                , array($_SESSION['current_search_query'], $_SESSION['user']['UserId'], $_SESSION['seekName']), true
-            );
-          $_SESSION['seekName'] = null;
-        echo "{'status' : 0}";
-} else {
-    echo "{status : 1}";
-}
-exit();
diff --git a/apps/maarch_entreprise/indexing_searching/multiLink.php b/apps/maarch_entreprise/indexing_searching/multiLink.php
deleted file mode 100755
index 5ab59db7424..00000000000
--- a/apps/maarch_entreprise/indexing_searching/multiLink.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
-*    Copyright 2014-2015 Maarch
-*
-*  This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*    along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*
-* @brief   Displays contacts list in search mode
-*
-* @file
-* @author <dev@maarch.org>
-* @date $date$
-* @version $Revision$
-*/
-
-/*
-* Fichier appelé par la function ajax multiLink. Elle permet de mettre en session les données lorsqu'on clique sur le checkbox. 
-*/
-
-//$_SESSION['stockCheckbox'] = null;
-if(isset($_REQUEST['uncheckAll'])){
-  unset($_SESSION['stockCheckbox']);
-}else if (isset($_REQUEST['courrier_purpose'])) {
-	  $key=false;
-    # Append something onto the $name variable so that you can see that it passed through your PHP script.
-   $courrier = functions::xssafe($_REQUEST['courrier_purpose']);
-
-   if(!empty($_SESSION['stockCheckbox'])){
-		$key = in_array($courrier, $_SESSION['stockCheckbox']);
-		if($key ==true){
-			unset($_SESSION['stockCheckbox'][array_search($courrier, $_SESSION['stockCheckbox'])]);
-			$_SESSION['stockCheckbox']=array_values($_SESSION['stockCheckbox']);
-			echo json_encode($_SESSION['stockCheckbox']);
-			exit();
-		}
-   }
-
-   if(empty($_SESSION['stockCheckbox'])){
-   	$tableau[] = $courrier;
-   	$_SESSION['stockCheckbox'] = $tableau;
-   	echo json_encode($_SESSION['stockCheckbox']);
-   }elseif($key==false and !empty($_SESSION['stockCheckbox'])){
-   	array_push($_SESSION['stockCheckbox'],$courrier);
-   	echo json_encode($_SESSION['stockCheckbox']);
-   }
-   
-    # I'm sending back a json structure in case there are multiple pieces of information you'd like
-    # to pass back.
-    
-  }
-
-exit;
-?>
\ No newline at end of file
diff --git a/apps/maarch_entreprise/indexing_searching/search_adv_error.php b/apps/maarch_entreprise/indexing_searching/search_adv_error.php
deleted file mode 100755
index fc8ca045cf7..00000000000
--- a/apps/maarch_entreprise/indexing_searching/search_adv_error.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-/*
-*    Copyright 2008,2009 Maarch
-*
-*  This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*    along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
-* @brief  Advanced search form error page
-*
-* @file search_adv_error.php
-* @author Claire Figueras <dev@maarch.org>
-* @date $date$
-* @version $Revision$
-* @ingroup indexing_searching_mlb
-*/
-require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_request.php");
-
-$core_tools = new core_tools();
-$core_tools->test_user();
-$core_tools->load_lang();
-
-$mode = 'normal';
-if(isset($_REQUEST['mode'])&& !empty($_REQUEST['mode']))
-{
-    $mode = $core_tools->wash($_REQUEST['mode'], "alphanum", _MODE);
-}
-if($mode == 'normal')
-{
-    $core_tools->test_service('adv_search_mlb', 'apps');
-/****************Management of the location bar  ************/
-$init = false;
-if(isset($_REQUEST['reinit']) && $_REQUEST['reinit'] == "true")
-{
-    $init = true;
-}
-$level = "3";
-if(isset($_REQUEST['level'] ) && ($_REQUEST['level'] == 2 || $_REQUEST['level'] == 3 || $_REQUEST['level'] == 4 || $_REQUEST['level'] == 1))
-{
-    $level = 3 ;
-}
-$page_path = $_SESSION['config']['businessappurl'].'index.php?page=search_adv_result&dir=indexing_searching';
-$page_label = _RESULTS;
-$page_id = "search_adv_result_apps";
-$core_tools->manage_location_bar($page_path, $page_label, $page_id, $init, $level);
-/***********************************************************/
-}
-elseif($mode == 'popup' || $mode == 'frame')
-{
-    $core_tools->load_html();
-    $core_tools->load_header();
-    $time = $core_tools->get_session_time_expire('', true, false);
-    ?><body>
-    <div id="container">
-
-            <div class="error" id="main_error">
-                <?php functions::xecho($_SESSION['error']);?>
-            </div>
-            <div class="info" id="main_info">
-                <?php functions::xecho($_SESSION['info']);?>
-            </div><?php
-}
-?>
-<h1><i class="fa fa-search fa-2x"></i> <?php echo _ADV_SEARCH_TITLE;?></h1>
-<div id="inner_content">
-    <p>&nbsp;</p>
-    <p>&nbsp;</p>
-    <p>&nbsp;</p>
-    <p>&nbsp;</p>
-    <p>&nbsp;</p>
-    <p>&nbsp;</p>
-    <?php echo($_SESSION['error_search']);
-    $_SESSION['error_search'] = "";
-    ?>
-</div>
-<?php if($mode == 'popup' || $mode == 'frame')
-{
-    echo '</div>';
-    if($mode == 'popup')
-    {
-    ?><br/><div align="center"><input type="button" name="close" class="button" value="<?php echo _CLOSE_WINDOW;?>" onclick="self.close();" /></div> <?php
-    }
-    $core_tools->load_js();
-    echo '</body></html>';
-}
diff --git a/apps/maarch_entreprise/indexing_searching/view_resource.php b/apps/maarch_entreprise/indexing_searching/view_resource.php
deleted file mode 100755
index 81d7383513f..00000000000
--- a/apps/maarch_entreprise/indexing_searching/view_resource.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/* View */
-if ($viewResourceArr['status'] <> 'ko') {
-    if (strtolower($viewResourceArr['mime_type']) == 'application/maarch') {
-        ?>
-        <head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"></head>
-        <!--<body id="validation_page" 
-        onload="javascript:moveTo(0,0);">
-            <div id="template_content" style="width:100%;">-->
-            <?php echo $content;?>
-            <!--</div>
-        </body>
-        </html>-->
-        <?php
-    } else {
-        if(strtolower($viewResourceArr['ext']) == 'txt'){
-            $viewResourceArr['mime_type'] = 'text/plain';
-        }
-        header('Pragma: public');
-        header('Expires: 0');
-        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
-        header('Cache-Control: public');
-        header('Content-Description: File Transfer');
-        header('Content-Type: ' . strtolower($viewResourceArr['mime_type']));
-        header('Content-Disposition: inline; filename=' . basename(
-                    'maarch.' . strtolower($viewResourceArr['ext'])
-               )
-               . ';');
-        header('Content-Transfer-Encoding: binary');
-        readfile($filePathOnTmp);
-        exit();
-    }
-} else {
-    $core_tools->load_html();
-    $core_tools->load_header('', true, false);
-    echo '<body>';
-    echo '<br/><div class="indexing_error">' . $viewResourceArr['error'] . '</div>';
-    echo '</body></html>';
-    exit();
-}
diff --git a/apps/maarch_entreprise/indexing_searching/view_resource_controler.php b/apps/maarch_entreprise/indexing_searching/view_resource_controler.php
deleted file mode 100755
index 9c919b43494..00000000000
--- a/apps/maarch_entreprise/indexing_searching/view_resource_controler.php
+++ /dev/null
@@ -1,281 +0,0 @@
-<?php
-
-/*
-*   Copyright 2008-2015 Maarch
-*
-*   This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*   along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
-* @brief  controler of the view resource page
-*
-* @file view_resource_controler.php
-* @author Laurent Giovannoni <dev@maarch.org>
-* @date $date$
-* @version $Revision$
-* @ingroup indexing_searching
-*/
-$_SESSION['HTTP_REFERER'] = Url::requestUri();
-if (!isset($_SESSION['user']['UserId']) && $_SESSION['user']['UserId'] == '') {
-    if (trim($_SERVER['argv'][0]) <> '') {
-        header('location: reopen.php?' . $_SERVER['argv'][0]);
-    } else {
-        header('location: reopen.php');
-    }
-    exit();
-}
-unset($_SESSION['HTTP_REFERER']);
-
-try {
-    require_once('core' . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR 
-        . 'class_request.php');
-    require_once('core' . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR 
-        . 'class_security.php');
-    require_once('core' . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR 
-        . 'class_resource.php');
-    require_once('core' . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR 
-        . 'docservers_controler.php');
-} catch (Exception $e) {
-    functions::xecho($e->getMessage());
-}
-$core_tools = new core_tools();
-$core_tools->test_user();
-$core_tools->load_lang();
-$function = new functions();
-$sec = new security();
-$mode = '';
-$calledByWS = false;
-//1:test the request ID
-if (isset($_REQUEST['id'])) {
-    $s_id = functions::xssafe($_REQUEST['id']);
-} else {
-    $s_id = '';
-}
-if (isset($_REQUEST['resIdMaster'])) {
-    $resIdMaster = $_REQUEST['resIdMaster'];
-} else {
-    $resIdMaster = '';
-}
-if ($s_id == '') {
-    $_SESSION['error'] = _THE_DOC . ' ' . _IS_EMPTY;
-    header('location: ' . $_SESSION['config']['businessappurl'] . 'index.php');
-    exit();
-} else if (!is_numeric($s_id)) {
-    $_SESSION['error'] = _FORMAT . ' ' . _UNKNOWN;
-    header('location: ' . $_SESSION['config']['businessappurl'] . 'index.php');
-    exit();
-} else {
-    //2:retrieve the view
-    $table = '';
-    if (isset($_REQUEST['collid']) && $_REQUEST['collid'] <> '') {
-        $_SESSION['collection_id_choice'] = $_REQUEST['collid'];
-    } else if (isset($_REQUEST['coll_id']) && $_REQUEST['coll_id'] <> '') {
-        $_SESSION['collection_id_choice'] = $_REQUEST['coll_id'];
-    }
-    
-    if (isset($_SESSION['collection_id_choice']) 
-        && !empty($_SESSION['collection_id_choice'])
-    ) {
-        $table = $sec->retrieve_view_from_coll_id(
-            $_SESSION['collection_id_choice']
-        );
-        if (!$table) {
-            $table = $sec->retrieve_table_from_coll(
-                $_SESSION['collection_id_choice']
-            );
-        }
-    } else {
-        
-        if (isset($_SESSION['collections'][0]['view']) 
-            && !empty($_SESSION['collections'][0]['view'])
-        ) {
-            $table = $_SESSION['collections'][0]['view'];
-        } else {
-            $table = $_SESSION['collections'][0]['table'];
-        }
-        $_SESSION['collection_id_choice'] = $_SESSION['collections'][0]['id'];
-    }
-
-    // Test courrier départ spontanné
-    if ($resIdMaster == '') {
-        $db = new Database();
-        $stmt = $db->query("SELECT category_id, source FROM "
-            . $table . " WHERE res_id = ? ", array($s_id));
-        $res_outgoing = $stmt->fetchObject(); 
-
-        if ($res_outgoing->category_id == 'outgoing') {
-            if(!empty($_REQUEST['editingMode'])){
-                $stmt = $db->query("SELECT res_id FROM res_attachments WHERE status <> 'DEL' and status <> 'OBS' "
-                    . "and res_id_master = ? and attachment_type = 'outgoing_mail' order by res_id desc", 
-                    array($s_id));
-                $res_att = $stmt->fetchObject();
-                if ($stmt->rowCount() > 0) { ?>
-                    <script type="text/javascript">
-                    window.location.href = 'index.php?display=true&editingMode=true&module=attachments&page=view_attachment&res_id_master=<?php echo $s_id;?>&id=<?php echo $res_att->res_id;?>'
-                    </script>
-                    <?php exit();
-                }
-            } else {
-            $stmt = $db->query("SELECT res_id FROM res_attachments WHERE status <> 'DEL' and status <> 'OBS' "
-                . "and res_id_master = ? and ((attachment_type = 'converted_pdf' and type_id = 1) "
-                . "OR (attachment_type = 'outgoing_mail' and format = 'pdf')"
-                . "OR (attachment_type = 'signed_response' and format = 'pdf')) order by res_id desc", 
-                array($s_id));
-            $res_att = $stmt->fetchObject();
-            if ($stmt->rowCount() > 0) {
-                if($_REQUEST['watermark_outgoing']=='true'){?>
-                        <script type="text/javascript">
-                            window.location.href = '<?php
-                                echo $_SESSION['config']['businessappurl'];
-                                ?>index.php?display=true&module=attachments&page=view_attachment&res_id_master=<?php echo $s_id;?>&id=<?php echo $res_att->res_id;?>&watermark_outgoing=true'
-                        </script>
-                    <?php } else { ?>
-                        <script type="text/javascript">
-                            window.location.href = 'index.php?display=true&editingMode=true&module=attachments&page=view_attachment&res_id_master=<?php echo $s_id;?>&id=<?php echo $res_att->res_id;?>'
-                        </script>
-                    <?php 
-                    }
-                    ?>                    
-                    <?php exit();
-                exit();
-            }  else {
-            	$stmt = $db->query("SELECT res_id FROM res_attachments WHERE status <> 'DEL' and status <> 'OBS' "
-                    . "and res_id_master = ? and ((attachment_type = 'converted_pdf' and (type_id = 1 or type_id = 0)) "
-                    . "OR (attachment_type = 'outgoing_mail' and format = 'pdf')"
-                    . "OR (attachment_type = 'signed_response' and format = 'pdf')) order by res_id desc",
-                    array($s_id, $_SESSION['collection_id_choice']));
-            	$res_att = $stmt->fetchObject();
-            	if ($stmt->rowCount() > 0) {
-	            ?>
-	            <script type="text/javascript">
-	                window.location.href = '<?php
-	                echo $_SESSION['config']['businessappurl'];
-	                ?>index.php?display=true&module=attachments&page=view_attachment&res_id_master=<?php 
-                        echo $s_id;?>&id=<?php echo $res_att->res_id;?>'
-	            </script>
-	            <?php
-	            exit();
-	        }
-            }
-            }
-        }
-    }
-
-    for ($cptColl = 0;$cptColl < count($_SESSION['collections']);$cptColl++) {
-        if ($table == $_SESSION['collections'][$cptColl]['table'] 
-            || $table == $_SESSION['collections'][$cptColl]['view']
-        ) {
-            $adrTable = $_SESSION['collections'][$cptColl]['adr'];
-        }
-    }
-    if ($adrTable == '') {
-        $adrTable = $_SESSION['collections'][0]['adr'];
-    }
-    
-    $versionTable = $sec->retrieve_version_table_from_coll_id(
-        $_SESSION['collection_id_choice']
-    );
-    //SECURITY PATCH
-    require_once 'core/class/class_security.php';
-    if ($resIdMaster <> '') {
-        $idToTest = $resIdMaster;
-    } else {
-        $idToTest = $s_id;
-    }
-    $security = new security();
-    $right = $security->test_right_doc(
-        $_SESSION['collection_id_choice'], 
-        $idToTest
-    );
-	
-    //$_SESSION['error'] = 'coll '.$coll_id.', res_id : '.$s_id;
-	if($_SESSION['origin'] = 'search_folder_tree'){
-		$_SESSION['origin'] = 'search_folder_tree';
-	}else{
-		$_SESSION['origin'] = '';
-	}	
-    if (!$right) {
-        $_SESSION['error'] = _NO_RIGHT_TXT;
-        ?>
-        <script type="text/javascript">
-        window.top.location.href = '<?php
-            echo $_SESSION['config']['businessappurl'];
-            ?>index.php';
-        </script>
-        <?php
-        exit();
-    }
-    if(isset($_REQUEST['aVersion'])) {
-        $table = $versionTable;
-    }
-    $docserverControler = new docservers_controler();
-    $viewResourceArr = array();
-    
-    $viewResourceArr = $docserverControler->viewResource(
-        $s_id, 
-        $table, 
-        $adrTable, 
-        false
-    );
-    if ($viewResourceArr['error'] <> '') {
-        //...
-    } else {
-        //$core_tools->show_array($viewResourceArr);
-        if (strtoupper($viewResourceArr['ext']) == 'HTML' 
-            && $viewResourceArr['mime_type'] == "text/plain"
-        ) {
-            $viewResourceArr['mime_type'] = "text/html";
-        }
-
-        //WATERMARK
-        if (strtoupper($viewResourceArr['ext']) == 'PDF') {
-            if ($_SESSION['features']['watermark']['enabled'] == 'true') {
-                try{
-                    include 'apps/maarch_entreprise/indexing_searching/watermark.php';
-                } catch(Exception $e) {
-                    $logger = Logger::getLogger('loggerTechnique');
-                    $logger->warn(
-                        "[{$_SESSION['user']['UserId']}][View_resource_controler] Watermark has failed :("
-                    );
-                }
-            }
-        }
-
-        if ($viewResourceArr['called_by_ws']) {
-            $fileContent = base64_decode($viewResourceArr['file_content']);
-            $fileNameOnTmp = 'tmp_file_' . rand() . '_' 
-                . md5($fileContent) . '.' 
-                . strtolower($viewResourceArr['ext']);
-            $filePathOnTmp = $_SESSION['config']['tmppath'] 
-                . DIRECTORY_SEPARATOR . $fileNameOnTmp;
-            $inF = fopen($filePathOnTmp, 'w');
-            fwrite($inF, $fileContent);
-            fclose($inF);
-        } else {
-            $filePathOnTmp = $viewResourceArr['file_path'];
-        }
-        if (strtolower(
-            $viewResourceArr['mime_type']
-        ) == 'application/maarch'
-        ) {
-            $myfile = fopen($filePathOnTmp, 'r');
-            $data = fread($myfile, filesize($filePathOnTmp));
-            fclose($myfile);
-            $content = stripslashes($data);
-        }
-    }
-    include('view_resource.php');
-}
diff --git a/apps/maarch_entreprise/indexing_searching/watermark.php b/apps/maarch_entreprise/indexing_searching/watermark.php
deleted file mode 100755
index b8eb8c3fd98..00000000000
--- a/apps/maarch_entreprise/indexing_searching/watermark.php
+++ /dev/null
@@ -1,181 +0,0 @@
-<?php
-
-/*
-*   Copyright 2008-2015 Maarch
-*
-*   This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*   along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
-* @brief  watermark a pdf
-*
-* @file watermark.php
-* @author Laurent Giovannoni <dev@maarch.org>
-* @date $date$
-* @version $Revision$
-* @ingroup indexing_searching
-*/
-require_once 'apps/maarch_entreprise/class/class_pdf.php';
-
-if ($table == '') {
-	$table = 'res_view_letterbox';
-}
-if (isset($watermarkForAttachments) && $watermarkForAttachments) {
-    $filePathOnTmp = $file;
-    $filePathOnTmpResult = $file;
-    $watermarkTab = $_SESSION['modules_loaded']['attachments']['watermark'];
-    $s_id = $sId;
-} else {
-    $filePathOnTmp = $viewResourceArr['file_path'];
-    $filePathOnTmpResult = $viewResourceArr['file_path'];
-    $watermarkTab = $_SESSION['features']['watermark'];
-}
-
-if ($watermarkTab['text'] == '') {
-    $watermark = 'watermark by ' . $_SESSION['user']['UserId'];
-} elseif ($watermarkTab['text'] <> '') {
-	$watermark = $watermarkTab['text'];
-	preg_match_all('/\[(.*?)\]/i', $watermarkTab['text'], $matches);
-    $date_now = '';
-    $sqlArr = array();
-    for ($z=0;$z<count($matches[1]);$z++) {
-    	$currentText = '';
-    	if ($matches[1][$z] == 'date_now') {
-    		$currentText = date('d-m-Y');
-    	} elseif ($matches[1][$z] == 'hour_now') {
-    		$currentText = date('H:i');
-    	} elseif($matches[1][$z] == 'alt_identifier'){
-            
-            if($_REQUEST['watermark_outgoing'] == "true"){
-                $res_id = $_REQUEST['res_id_master'];
-            } else {
-                $res_id = $s_id;
-            }
-
-            $dbView = new Database();
-		    $query = " select " . $matches[1][$z] 
-		        . " as thecolumn from res_letterbox where res_id = ?";
-		    $stmt = $dbView->query($query, array($res_id));
-            $returnQuery = $stmt->fetchObject();
-            $currentText = $returnQuery->thecolumn;
-        } else {
-		    $dbView = new Database();
-		    $query = " select " . $matches[1][$z] 
-		        . " as thecolumn from " . $table . " where res_id = ?";
-		    $stmt = $dbView->query($query, array($s_id));
-		    $returnQuery = $stmt->fetchObject();
-		    $currentText = $returnQuery->thecolumn;
-    	}
-    	$watermark = str_replace(
-    		'[' . $matches[1][$z] . ']', 
-    		$currentText, 
-    		$watermark
-    	);
-    }  
-}
-$positionDefault = array();
-$position = array();
-$positionDefault['X'] = 50;
-$positionDefault['Y'] = 450;
-$positionDefault['angle'] = 30;
-$positionDefault['opacity'] = 0.5;
-if ($watermarkTab['position'] == '') {
-    $position = $positionDefault;
-} else {
-    $arrayPos = explode(',', $watermarkTab['position']);
-    if (count($arrayPos) == 4) {
-        $position['X'] = trim($arrayPos[0]);
-        $position['Y'] = trim($arrayPos[1]);
-        $position['angle'] = trim($arrayPos[2]);
-        $position['opacity'] = trim($arrayPos[3]);
-    } else {
-        $position = $positionDefault;
-    }
-}
-$fontDefault = array();
-$font = array();
-$fontDefault['fontName'] = 'helvetica';
-$fontDefault['fontSize'] = '10';
-if ($watermarkTab['font'] == '') {
-    $font = $fontDefault;
-} else {
-    $arrayFont = explode(',', $watermarkTab['font']);
-    
-    if (count($arrayFont) == 2) {
-        $font['fontName'] = trim($arrayFont[0]);
-        $font['fontSize'] = trim($arrayFont[1]);
-    } else {
-        $font = $fontDefault;
-    }
-}
-$colorDefault = array();
-$color = array();
-$colorDefault['color1'] = '192';
-$colorDefault['color2'] = '192';
-$colorDefault['color3'] = '192';
-if ($watermarkTab['text_color'] == '') {
-    $color = $colorDefault;
-} else {
-    $arrayColor = explode(',', $watermarkTab['text_color']);
-    if (count($arrayColor) == 3) {
-        $color['color1'] = trim($arrayColor[0]);
-        $color['color2'] = trim($arrayColor[1]);
-        $color['color3'] = trim($arrayColor[2]);
-    } else {
-        $color = $colorDefault;
-    }
-}
-
-// Get original PDF File size
-$pdf = new FPDI('P','pt');
-$pdf->setSourceFile($filePathOnTmp);
-$tplidx = $pdf->ImportPage(1);
-$size = $pdf->getTemplateSize($tplidx);
-
-// Create a PDF object and set up the properties
-$pdf = new PDF("p", "pt", array($size['h'],$size['w']));
-$pdf->SetAuthor("MAARCH");
-$pdf->SetTitle("MAARCH document");
-$pdf->SetTextColor($color['color1'],$color['color2'],$color['color3']);
-
-$pdf->SetFont($font['fontName'], '', $font['fontSize']);
-//$stringWatermark = substr($watermark, 0, 11);
-//$stringWatermark = $watermark;
-$stringWatermark = explode(',', $watermark);
-// Load the base PDF into template
-$nbPages = $pdf->setSourceFile($filePathOnTmp);
-//For each pages add the watermark
-for ($cpt=1;$cpt<=$nbPages;$cpt++) {
-    $tplidx = $pdf->ImportPage($cpt);
-    $specs = $pdf->getTemplateSize($tplidx);
-     //Add new page & use the base PDF as template
-    $pdf->addPage($specs['h'] > $specs['w'] ? 'P' : 'L');
-    $pdf->useTemplate($tplidx);
-    //Set opacity
-    $pdf->SetAlpha($position['opacity']);
-    //Add Watermark
-     for ($i=0; $i< 5; $i++) {
-		//$position['Y'] = $position['Y']+10;
-		$pdf->TextWithRotation(
-			$position['X'], 
-			$position['Y'], 
-			utf8_decode($stringWatermark[$i]), 
-			$position['angle']
-		);
-	}
-}
-$pdf->Output($filePathOnTmpResult, "F");
-
diff --git a/apps/maarch_entreprise/js/angularFunctions.js b/apps/maarch_entreprise/js/angularFunctions.js
deleted file mode 100755
index 0dd0b1c96cc..00000000000
--- a/apps/maarch_entreprise/js/angularFunctions.js
+++ /dev/null
@@ -1,213 +0,0 @@
-var $j = jQuery.noConflict();
-var angularGlobals = {};
-var alreadyLoaded = false;
-var cookieExpiration;
-var lockInterval;
-
-function triggerAngular(locationToGo) {
-    var myApp = $j('<my-app style="height: 100%;display:none;"></my-app>');
-    myApp.appendTo('body');
-    $j('body').removeAttr("id");
-    $j('body').removeAttr("style");
-    $j('body').removeAttr("onload");
-    $j('#bodyloginCustom').remove();
-    $j.ajax({
-        url: '../../rest/initialize',
-        type: 'GET',
-        dataType: 'json',
-        success: function (answer) {
-            angularGlobals = answer;
-
-            if (!alreadyLoaded) {
-                var head = document.getElementsByTagName('head')[0];
-                $j('body').css({'margin':'0','padding':'0'});
-                $j('#maarch_content').remove();
-                var loading = $j('<div id="loadingAngularContent" style="position:absolute;width:100%;color: #666;height: 100%;padding: 0;margin: 0;display: flex;align-items: center;justify-content: center;"><div style="opacity:0.5;display: flex;justify-content: center;padding: 5px;height: 20px;margin: 10px;line-height: 20px;font-weight: bold;font-size: 2em;text-align: center;"><div class="lds-ring"><div></div><div></div><div></div><div></div></div><div style=\'font-family: Roboto,"Helvetica Neue",sans-serif;\'>Chargement en cours ...</div></div></div>');
-                loading.appendTo('body');
-
-                answer['scriptsToinject'].forEach(function (element, i) {
-                    var script = document.createElement('script');
-                    script.type = 'text/javascript';
-                    script.src = "../../dist/" + element;
-
-                    if ((i + 1) === answer['scriptsToinject'].length) {
-                        script.onreadystatechange = changeLocationToAngular(locationToGo);
-                        script.onload = changeLocationToAngular(locationToGo);
-                    }
-
-                    // Fire the loading
-                    if (i === 2) {
-                        setTimeout(function () {
-                            head.appendChild(script);
-                        }, 400);
-                    } else {
-                        head.appendChild(script);
-                    }
-                });
-                var style = document.createElement('link');
-                style.rel = 'stylesheet';
-                style.href = "../../node_modules/jstree-bootstrap-theme/dist/themes/proton/style.min.css";
-                style.media = "screen";
-                head.appendChild(style);
-
-                var meta = document.createElement('meta');
-                meta.name = 'viewport';
-                meta.content = "width=device-width, initial-scale=1.0";
-                head.appendChild(meta);
-
-                alreadyLoaded = true;
-            } else {
-                location.href = locationToGo;
-            }
-        }
-    });
-}
-
-function changeLocationToAngular(locationToGo) {
-    location.href = locationToGo;
-}
-
-function islockForSignatureBook(resId, basketId, groupId) {
-    $j.ajax({
-        url: 'index.php?display=true&dir=actions&page=docLocker',
-        type: 'POST',
-        data: {
-            AJAX_CALL: true,
-            isLock: true,
-            res_id: resId
-        },
-        success: function (result) {
-            var response = JSON.parse(result);
-
-            if (response.lock) {
-                alert("Courrier verrouillé par " + response.lockBy);
-            } else {
-                triggerAngular("#/groups/" + groupId + "/baskets/" + basketId + "/signatureBook/" + resId);
-            }
-        }
-    });
-}
-
-var disablePrototypeJS = function (method, pluginsToDisable) {
-    var handler = function (event) {
-        event.target[method] = undefined;
-        setTimeout(function () {
-            delete event.target[method];
-        }, 0);
-    };
-    pluginsToDisable.each(function (plugin) {
-        $j(window).on(method + '.bs.' + plugin, handler);
-    });
-};
-
-function setAttachmentInSignatureBook(id) {
-    $j.ajax({
-        url: '../../rest/attachments/' + id + '/inSignatureBook',
-        type: 'PUT',
-        dataType: 'json',
-        data: {
-        },
-        success: function (answer) {
-            if (typeof window.parent['angularSignatureBookComponent'] !== "undefined") {
-                // window.parent.angularSignatureBookComponent.componentAfterAttach("left");
-            }
-        },
-        error: function (err) {
-            alert("Une erreur s'est produite : " + err.responseJSON.exception[0].message);
-        }
-    });
-}
-
-function displayThumbnail(resId) {
-    $j('#thumb_' + resId).html('<img src="../../rest/resources/' + resId + '/thumbnail">');
-}
-
-var koKeys = [38, 38, 40, 40, 37, 39, 37, 39, 66, 65];
-var koNb = 0;
-$j(document).keydown(function (e) {
-    if (e.keyCode === koKeys[koNb++]) {
-        if (koNb === koKeys.length) {
-            $j('my-app').hide();
-            var img = $j('<img id="konami" style="position: absolute; display: none">'); //Equivalent: $(document.createElement('img'))
-            img.attr('src', 'img/konami.png');
-            img.appendTo('body');
-            var audio = new Audio('img/konami.mp3');
-            audio.play();
-            var konami = $j("#konami");
-            konami.css('top', '200px');
-            konami.show();
-            var pos = 100;
-            var rot = 0;
-            var id = setInterval(frame, 10);
-
-            function frame() {
-                if (pos > 1400) {
-                    clearInterval(id);
-                    konami.remove();
-                    konami.css('left', '200px');
-                    $j('my-app').show();
-                } else {
-                    pos += 5;
-                    konami.css('left', pos + 'px');
-                    if (pos == 0 || pos == 400) {
-                        konami.css({
-                            '-webkit-transform': 'rotate(-15deg)',
-                            '-moz-transform': 'rotate(-15deg)',
-                            '-ms-transform': 'rotate(-15deg)',
-                            'transform': 'rotate(-15deg)'
-                        });
-                    } else if (pos == 200 || pos == 600) {
-                        konami.css({
-                            '-webkit-transform': 'rotate(15deg)',
-                            '-moz-transform': 'rotate((15degg)',
-                            '-ms-transform': 'rotate((15deg)',
-                            'transform': 'rotate((15deg)'
-                        });
-                    }
-                    if (pos > 800) {
-                        rot += 5;
-                        konami.css({
-                            '-webkit-transform': 'rotate(' + rot + 'deg)',
-                            '-moz-transform': 'rotate(' + rot + 'deg)',
-                            '-ms-transform': 'rotate(' + rot + 'deg)',
-                            'transform': 'rotate(' + rot + 'deg)'
-                        });
-                    }
-
-                }
-            }
-            koNb = 0;
-        }
-    } else {
-        koNb = 0;
-    }
-});
-
-function getCookie(name) {
-    var nameEQ = name + "=";
-    var ca = document.cookie.split(';');
-    for (var i = 0; i < ca.length; i++) {
-        var c = ca[i];
-        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
-        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
-    }
-    return null;
-}
-
-/**
- * Logout if cookie auth is expired (checked every minute)
- *
- */
-function checkCookieAuth() {
-    $cookieAuth = getCookie('maarchCourrierAuth');
-
-    if ($cookieAuth === null) {
-        var localTime = new Date();
-        var hours = localTime.getHours();
-        var minutes = localTime.getMinutes();
-        var text = hours + ":" + minutes;
-        alert('Vous avez été déconnecté à ' + text + ' (temps d\'inactivité trop long)\n\nVeuillez vous reconnecter');
-        location.href = 'index.php?display=true&page=logout&logout=true';
-    }
-    cookieExpiration = setTimeout('checkCookieAuth()', 1 * 60 * 1000);
-}
diff --git a/apps/maarch_entreprise/js/bootstrap-tree.js b/apps/maarch_entreprise/js/bootstrap-tree.js
deleted file mode 100755
index 28b3227533e..00000000000
--- a/apps/maarch_entreprise/js/bootstrap-tree.js
+++ /dev/null
@@ -1,95 +0,0 @@
-var BootstrapTree = {
-    init: function(tree, opened, closed) {
-        tree.find('li')
-            .children('ul')
-            .parent()
-            .addClass('parent_li')
-            .find('> span')
-            .find('i:first')
-            .on('click', BootstrapTree.toggleNode);
-
-        $j('.parent_li').find('span:first').find('.fa:first').addClass(closed);
-        $j('.parent_li').find(' > ul > li').hide();
-    },
-
-    addRoot: function(tree, element) {
-        if (!element || !tree) {
-            return;
-        }
-
-        var ul = $j('<ul/>')
-
-        element.appendTo(ul);
-        ul.appendTo(tree);
-    },
-
-    addNode: function(parent, element, opened, closed) {
-
-        if (!element || !parent) {
-            return;
-        }
-
-        var ul = parent.find('> ul');
-        if (ul.length == 0) {
-            ul = $j('<ul/>').appendTo(parent);
-
-            parent.addClass('parent_li')
-              .find('span:first')
-              .find('.fa:first')
-              .prop('class',opened)
-              .on('click', BootstrapTree.toggleNode);
-        }
-        //this.openNode(ul);
-        element.appendTo(ul);
-    },
-
-    removeNode: function(element) {
-
-        if (element.prop("tagName") != 'LI') {
-            return;
-        }
-
-        var ul = element.closest('ul');
-        var li = ul.closest('li');
-
-        if (ul.find('>li').length <= 1) {
-            ul.remove();
-            li.find('i.fa').removeClass('fa-minus-square fa-plus-square');
-        } else {
-            element.remove();
-        }
-
-        this.openNode(li);
-    },
-    
-    //enleve les enfant de l' <ul> passée en paramètre
-    removeSons: function(ulElement){
-            ulElement.find('li').hide('fast');
-        setTimeout(function(){            
-            ulElement.children().remove();
-        },500);
-    },
-
-    openNode: function(element) {
-        element.parents('li').find('i.'+closed+':first').click();
-    },
-
-    toggleNode: function(event) { 
-        var children = $j(this).closest('li.parent_li').find(' > ul > li');
-        if (children.is(':visible')) {
-            children.hide('fast');
-            $j(this).parent().find(' > i').addClass('fa-plus-square').removeClass('fa-minus-square');
-        }
-        else {
-            children.show('fast');
-            $j(this).parent().find(' > i').addClass('fa-minus-square').removeClass('fa-plus-square');
-        }
-        event.stopPropagation();
-        $j('.tree').find('.hideTreeElement').css('display', 'none');
-    },
-
-    findNode: function(tree, text) {
-        //tree.find('i.fa-minus-square').click();
-        this.openNode(tree.find("li:contains('"+text+"')"));
-    }
-}
diff --git a/apps/maarch_entreprise/js/controls.js b/apps/maarch_entreprise/js/controls.js
deleted file mode 100755
index ac128661cb1..00000000000
--- a/apps/maarch_entreprise/js/controls.js
+++ /dev/null
@@ -1,1307 +0,0 @@
-// script.aculo.us controls.js v1.9.0, Thu Dec 23 16:54:48 -0500 2010
-
-// Copyright (c) 2005-2010 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//           (c) 2005-2010 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
-//           (c) 2005-2010 Jon Tirsen (http://www.tirsen.com)
-// Contributors:
-//  Richard Livsey
-//  Rahul Bhargava
-//  Rob Wills
-// 
-// script.aculo.us is freely distributable under the terms of an MIT-style license.
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-// Autocompleter.Base handles all the autocompletion functionality 
-// that's independent of the data source for autocompletion. This
-// includes drawing the autocompletion menu, observing keyboard
-// and mouse events, and similar.
-//
-// Specific autocompleters need to provide, at the very least, 
-// a getUpdatedChoices function that will be invoked every time
-// the text inside the monitored textbox changes. This method 
-// should get the text for which to provide autocompletion by
-// invoking this.getToken(), NOT by directly accessing
-// this.element.value. This is to allow incremental tokenized
-// autocompletion. Specific auto-completion logic (AJAX, etc)
-// belongs in getUpdatedChoices.
-//
-// Tokenized incremental autocompletion is enabled automatically
-// when an autocompleter is instantiated with the 'tokens' option
-// in the options parameter, e.g.:
-// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' });
-// will incrementally autocomplete with a comma as the token.
-// Additionally, ',' in the above example can be replaced with
-// a token array, e.g. { tokens: [',', '\n'] } which
-// enables autocompletion on multiple tokens. This is most 
-// useful when one of the tokens is \n (a newline), as it 
-// allows smart autocompletion after linebreaks.
-
-if(typeof Effect == 'undefined')
-  throw("controls.js requires including script.aculo.us' effects.js library");
-
-var Autocompleter = { };
-Autocompleter.Base = Class.create({
-  baseInitialize: function(element, update, options) {
-    element          = $(element);
-    this.element     = element; 
-    this.update      = $(update);  
-    this.hasFocus    = false; 
-    this.changed     = false; 
-    this.active      = false; 
-    this.index       = 0;     
-    this.entryCount  = 0;
-    this.oldElementValue = this.element.value;
-
-    if(this.setOptions)
-      this.setOptions(options);
-    else
-      this.options = options || { };
-
-    this.options.paramName    = this.options.paramName || this.element.name;
-    this.options.tokens       = this.options.tokens || [];
-    this.options.frequency    = this.options.frequency || 0.4;
-    this.options.minChars     = this.options.minChars || 1;
-    this.options.onShow       = this.options.onShow || 
-      function(element, update){ 
-        if(!update.style.position || update.style.position=='absolute') {
-          update.style.position = 'absolute';
-          Position.clone(element, update, {
-            setHeight: false, 
-            offsetTop: element.offsetHeight
-          });
-        }
-        Effect.Appear(update,{duration:0.15});
-      };
-    this.options.onHide = this.options.onHide || 
-      function(element, update){ new Effect.Fade(update,{duration:0.15}) };
-
-    if(typeof(this.options.tokens) == 'string') 
-      this.options.tokens = new Array(this.options.tokens);
-    // Force carriage returns as token delimiters anyway
-    if (!this.options.tokens.include('\n'))
-      this.options.tokens.push('\n');
-
-    this.observer = null;
-    
-    this.element.setAttribute('autocomplete','off');
-
-    Element.hide(this.update);
-
-    Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this));
-    Event.observe(this.element, 'keydown', this.onKeyPress.bindAsEventListener(this));
-  },
-
-  show: function() {
-    if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update);
-    if(!this.iefix && 
-      (Prototype.Browser.IE) &&
-      (Element.getStyle(this.update, 'position')=='absolute')) {
-      new Insertion.After(this.update, 
-       '<iframe id="' + this.update.id + '_iefix" '+
-       'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +
-       'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
-      this.iefix = $(this.update.id+'_iefix');
-    }
-    if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);
-  },
-  
-  fixIEOverlapping: function() {
-    Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)});
-    this.iefix.style.zIndex = 1;
-    this.update.style.zIndex = 2;
-    Element.show(this.iefix);
-  },
-
-  hide: function() {
-    this.stopIndicator();
-    if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update);
-    if(this.iefix) Element.hide(this.iefix);
-  },
-
-  startIndicator: function() {
-    if(this.options.indicator) Element.show(this.options.indicator);
-  },
-
-  stopIndicator: function() {
-    if(this.options.indicator) Element.hide(this.options.indicator);
-  },
-
-  onKeyPress: function(event) {
-    if(this.active)
-      switch(event.keyCode) {
-       case Event.KEY_TAB:
-       case Event.KEY_RETURN:
-         this.selectEntry();
-         Event.stop(event);
-       case Event.KEY_ESC:
-         this.hide();
-         this.active = false;
-         Event.stop(event);
-         return;
-       case Event.KEY_LEFT:
-       case Event.KEY_RIGHT:
-         return;
-       case Event.KEY_UP:
-         this.markPrevious();
-         this.render();
-         Event.stop(event);
-         return;
-       case Event.KEY_DOWN:
-         this.markNext();
-         this.render();
-         Event.stop(event);
-         return;
-      }
-     else 
-       if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || 
-         (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return;
-
-    this.changed = true;
-    this.hasFocus = true;
-
-    if(this.observer) clearTimeout(this.observer);
-      this.observer = 
-        setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000);
-  },
-
-  activate: function() {
-    this.changed = false;
-    this.hasFocus = true;
-    this.getUpdatedChoices();
-  },
-
-  onHover: function(event) {
-    var element = Event.findElement(event, 'LI');
-    if(this.index != element.autocompleteIndex) 
-    {
-        this.index = element.autocompleteIndex;
-        this.render();
-    }
-    Event.stop(event);
-  },
-  
-  onClick: function(event) {
-    var element = Event.findElement(event, 'LI');
-    this.index = element.autocompleteIndex;
-    this.selectEntry();
-    this.hide();
-  },
-  
-  onBlur: function(event) {
-    // needed to make click events working
-    setTimeout(this.hide.bind(this), 250);
-    this.hasFocus = false;
-    this.active = false;     
-  }, 
-  
-  render: function() {
-    if(this.entryCount > 0) {
-      for (var i = 0; i < this.entryCount; i++)
-        this.index==i ? 
-          Element.addClassName(this.getEntry(i),"selected") : 
-          Element.removeClassName(this.getEntry(i),"selected");
-      if(this.hasFocus) { 
-        this.show();
-        this.active = true;
-      }
-    } else {
-      this.active = false;
-      this.hide();
-    }
-  },
-  
-  markPrevious: function() {
-    if(this.index > 0) this.index--;
-      else this.index = this.entryCount-1;
-    this.getEntry(this.index).scrollIntoView(true);
-  },
-  
-  markNext: function() {
-    if(this.index < this.entryCount-1) this.index++;
-      else this.index = 0;
-    this.getEntry(this.index).scrollIntoView(false);
-  },
-  
-  getEntry: function(index) {
-    return this.update.firstChild.childNodes[index];
-  },
-  
-  getCurrentEntry: function() {
-    return this.getEntry(this.index);
-  },
-  
-  selectEntry: function() {
-    this.active = false;
-    this.updateElement(this.getCurrentEntry());
-  },
-
-  updateElement: function(selectedElement) {
-    if (this.options.updateElement) {
-      this.options.updateElement(selectedElement);
-      return;
-    }
-    var value = '';
-    if (this.options.select) {
-      var nodes = $(selectedElement).select('.' + this.options.select) || [];
-      if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select);
-    } else
-      value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');
-    
-    var bounds = this.getTokenBounds();
-    if (bounds[0] != -1) {
-      var newValue = this.element.value.substr(0, bounds[0]);
-      var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/);
-      if (whitespace)
-        newValue += whitespace[0];
-      this.element.value = newValue + value + this.element.value.substr(bounds[1]);
-    } else {
-      this.element.value = value;
-    }
-    this.oldElementValue = this.element.value;
-    this.element.focus();
-    
-    if (this.options.afterUpdateElement)
-      this.options.afterUpdateElement(this.element, selectedElement);
-  },
-
-  updateChoices: function(choices) {
-    if(!this.changed && this.hasFocus) {
-      this.update.innerHTML = choices;
-      Element.cleanWhitespace(this.update);
-      Element.cleanWhitespace(this.update.down());
-
-      if(this.update.firstChild && this.update.down().childNodes) {
-        this.entryCount = 
-          this.update.down().childNodes.length;
-        for (var i = 0; i < this.entryCount; i++) {
-          var entry = this.getEntry(i);
-          entry.autocompleteIndex = i;
-          this.addObservers(entry);
-        }
-      } else { 
-        this.entryCount = 0;
-      }
-
-      this.stopIndicator();
-      this.index = 0;
-      
-      if(this.entryCount==1 && this.options.autoSelect) {
-        this.selectEntry();
-        this.hide();
-      } else {
-        this.render();
-      }
-    }
-  },
-
-  addObservers: function(element) {
-    Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this));
-    Event.observe(element, "click", this.onClick.bindAsEventListener(this));
-  },
-
-  onObserverEvent: function() {
-    this.changed = false;   
-    this.tokenBounds = null;
-    if(this.getToken().length>=this.options.minChars) {
-      this.getUpdatedChoices();
-    } else {
-      this.active = false;
-      this.hide();
-    }
-    this.oldElementValue = this.element.value;
-  },
-
-  getToken: function() {
-    var bounds = this.getTokenBounds();
-    return this.element.value.substring(bounds[0], bounds[1]).strip();
-  },
-
-  getTokenBounds: function() {
-    if (null != this.tokenBounds) return this.tokenBounds;
-    var value = this.element.value;
-    if (value.strip().empty()) return [-1, 0];
-    var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue);
-    var offset = (diff == this.oldElementValue.length ? 1 : 0);
-    var prevTokenPos = -1, nextTokenPos = value.length;
-    var tp;
-    for (var index = 0, l = this.options.tokens.length; index < l; ++index) {
-      tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1);
-      if (tp > prevTokenPos) prevTokenPos = tp;
-      tp = value.indexOf(this.options.tokens[index], diff + offset);
-      if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp;
-    }
-    return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]);
-  }
-});
-
-Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) {
-  var boundary = Math.min(newS.length, oldS.length);
-  for (var index = 0; index < boundary; ++index)
-    if (newS[index] != oldS[index])
-      return index;
-  return boundary;
-};
-
-Ajax.Autocompleter = Class.create(Autocompleter.Base, {
-  initialize: function(element, update, url, options) {
-    this.baseInitialize(element, update, options);
-    this.options.asynchronous  = true;
-    this.options.onComplete    = this.onComplete.bind(this);
-    this.options.defaultParams = this.options.parameters || null;
-    this.url                   = url;
-  },
-
-  getUpdatedChoices: function() {
-    this.startIndicator();
-    
-    var entry = encodeURIComponent(this.options.paramName) + '=' + 
-      encodeURIComponent(this.getToken());
-
-    this.options.parameters = this.options.callback ?
-      this.options.callback(this.element, entry) : entry;
-
-    if(this.options.defaultParams) 
-      this.options.parameters += '&' + this.options.defaultParams;
-    
-    new Ajax.Request(this.url, this.options);
-  },
-
-  onComplete: function(request) {
-    this.updateChoices(request.responseText);
-  }
-});
-
-var Autocompleter2 = { };
-
-Autocompleter2.Base2 = Class.create({
-  baseInitialize: function(element, update, options) {
-    if(parent.$(element) != undefined){
-        element = parent.$(element);
-    }else{
-        element = parent.parent.$(element);
-    }
-    this.element     = element; 
-    if(parent.$(update) != undefined){
-        update = parent.$(update);
-    }else{
-        update = parent.parent.$(update);
-    }
-    this.update      = update;  
-    this.hasFocus    = false; 
-    this.changed     = false; 
-    this.active      = false; 
-    this.index       = 0;     
-    this.entryCount  = 0;
-    this.oldElementValue = this.element.value;
-
-    if(this.setOptions)
-      this.setOptions(options);
-    else
-      this.options = options || { };
-
-    this.options.paramName    = this.options.paramName || this.element.name;
-    this.options.tokens       = this.options.tokens || [];
-    this.options.frequency    = this.options.frequency || 0.4;
-    this.options.minChars     = this.options.minChars || 1;
-    this.options.onShow       = this.options.onShow || 
-      function(element, update){ 
-        if(!update.style.position || update.style.position=='absolute') {
-          update.style.position = 'absolute';
-          Position.clone(element, update, {
-            setHeight: false, 
-            offsetTop: element.offsetHeight
-          });
-        }
-        Effect.Appear(update,{duration:0.15});
-      };
-    this.options.onHide = this.options.onHide || 
-      function(element, update){ new Effect.Fade(update,{duration:0.15}) };
-
-    if(typeof(this.options.tokens) == 'string') 
-      this.options.tokens = new Array(this.options.tokens);
-    // Force carriage returns as token delimiters anyway
-    if (!this.options.tokens.include('\n'))
-      this.options.tokens.push('\n');
-
-    this.observer = null;
-    
-    this.element.setAttribute('autocomplete','off');
-
-    Element.hide(this.update);
-
-    Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this));
-    Event.observe(this.element, 'keydown', this.onKeyPress.bindAsEventListener(this));
-  },
-
-  show: function() {
-    if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update);
-    if(!this.iefix && 
-      (Prototype.Browser.IE) &&
-      (Element.getStyle(this.update, 'position')=='absolute')) {
-      new Insertion.After(this.update, 
-       '<iframe id="' + this.update.id + '_iefix" '+
-       'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +
-       'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
-      this.iefix = $(this.update.id+'_iefix');
-    }
-    if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);
-  },
-  
-  fixIEOverlapping: function() {
-    Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)});
-    this.iefix.style.zIndex = 1;
-    this.update.style.zIndex = 2;
-    Element.show(this.iefix);
-  },
-
-  hide: function() {
-    this.stopIndicator();
-    if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update);
-    if(this.iefix) Element.hide(this.iefix);
-  },
-
-  startIndicator: function() {
-    if(this.options.indicator) Element.show(this.options.indicator);
-  },
-
-  stopIndicator: function() {
-    if(this.options.indicator) Element.hide(this.options.indicator);
-  },
-
-  onKeyPress: function(event) {
-    if(this.active)
-      switch(event.keyCode) {
-       case Event.KEY_TAB:
-       case Event.KEY_RETURN:
-         this.selectEntry();
-         Event.stop(event);
-       case Event.KEY_ESC:
-         this.hide();
-         this.active = false;
-         Event.stop(event);
-         return;
-       case Event.KEY_LEFT:
-       case Event.KEY_RIGHT:
-         return;
-       case Event.KEY_UP:
-         this.markPrevious();
-         this.render();
-         Event.stop(event);
-         return;
-       case Event.KEY_DOWN:
-         this.markNext();
-         this.render();
-         Event.stop(event);
-         return;
-      }
-     else 
-       if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || 
-         (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return;
-
-    this.changed = true;
-    this.hasFocus = true;
-
-    if(this.observer) clearTimeout(this.observer);
-      this.observer = 
-        setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000);
-  },
-
-  activate: function() {
-    this.changed = false;
-    this.hasFocus = true;
-    this.getUpdatedChoices();
-  },
-
-  onHover: function(event) {
-    var element = parent.Event.findElement(event, 'LI');
-    if(this.index != element.autocompleteIndex) 
-    {
-        this.index = element.autocompleteIndex;
-        this.render();
-    }
-    Event.stop(event);
-  },
-  
-  onClick: function(event) {
-    var element = parent.Event.findElement(event, 'LI');
-    this.index = element.autocompleteIndex;
-    this.selectEntry();
-    this.hide();
-  },
-  
-  onBlur: function(event) {
-    // needed to make click events working
-    setTimeout(this.hide.bind(this), 250);
-    this.hasFocus = false;
-    this.active = false;     
-  }, 
-  
-  render: function() {
-    if(this.entryCount > 0) {
-      for (var i = 0; i < this.entryCount; i++)
-        this.index==i ? 
-          Element.addClassName(this.getEntry(i),"selected") : 
-          Element.removeClassName(this.getEntry(i),"selected");
-      if(this.hasFocus) { 
-        this.show();
-        this.active = true;
-      }
-    } else {
-      this.active = false;
-      this.hide();
-    }
-  },
-  
-  markPrevious: function() {
-    if(this.index > 0) this.index--;
-      else this.index = this.entryCount-1;
-    this.getEntry(this.index).scrollIntoView(true);
-  },
-  
-  markNext: function() {
-    if(this.index < this.entryCount-1) this.index++;
-      else this.index = 0;
-    this.getEntry(this.index).scrollIntoView(false);
-  },
-  
-  getEntry: function(index) {
-    return this.update.firstChild.childNodes[index];
-  },
-  
-  getCurrentEntry: function() {
-    return this.getEntry(this.index);
-  },
-  
-  selectEntry: function() {
-    this.active = false;
-    this.updateElement(this.getCurrentEntry());
-  },
-
-  updateElement: function(selectedElement) {
-    if (this.options.updateElement) {
-      this.options.updateElement(selectedElement);
-      return;
-    }
-    var value = '';
-    if (this.options.select) {
-      var nodes = $(selectedElement).select('.' + this.options.select) || [];
-      if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select);
-    } else
-      value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');
-    
-    var bounds = this.getTokenBounds();
-    if (bounds[0] != -1) {
-      var newValue = this.element.value.substr(0, bounds[0]);
-      var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/);
-      if (whitespace)
-        newValue += whitespace[0];
-      this.element.value = newValue + value + this.element.value.substr(bounds[1]);
-    } else {
-      this.element.value = value;
-    }
-    this.oldElementValue = this.element.value;
-    this.element.focus();
-    
-    if (this.options.afterUpdateElement)
-      this.options.afterUpdateElement(this.element, selectedElement);
-  },
-
-  updateChoices: function(choices) {
-    if(!this.changed && this.hasFocus) {
-      this.update.innerHTML = choices;
-      Element.cleanWhitespace(this.update);
-      Element.cleanWhitespace(this.update.down());
-
-      if(this.update.firstChild && this.update.down().childNodes) {
-        this.entryCount = 
-          this.update.down().childNodes.length;
-        for (var i = 0; i < this.entryCount; i++) {
-          var entry = this.getEntry(i);
-          entry.autocompleteIndex = i;
-          this.addObservers(entry);
-        }
-      } else { 
-        this.entryCount = 0;
-      }
-
-      this.stopIndicator();
-      this.index = 0;
-      
-      if(this.entryCount==1 && this.options.autoSelect) {
-        this.selectEntry();
-        this.hide();
-      } else {
-        this.render();
-      }
-    }
-  },
-
-  addObservers: function(element) {
-    Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this));
-    Event.observe(element, "click", this.onClick.bindAsEventListener(this));
-  },
-
-  onObserverEvent: function() {
-    this.changed = false;   
-    this.tokenBounds = null;
-    if(this.getToken().length>=this.options.minChars) {
-      this.getUpdatedChoices();
-    } else {
-      this.active = false;
-      this.hide();
-    }
-    this.oldElementValue = this.element.value;
-  },
-
-  getToken: function() {
-    var bounds = this.getTokenBounds();
-    return this.element.value.substring(bounds[0], bounds[1]).strip();
-  },
-
-  getTokenBounds: function() {
-    if (null != this.tokenBounds) return this.tokenBounds;
-    var value = this.element.value;
-    if (value.strip().empty()) return [-1, 0];
-    var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue);
-    var offset = (diff == this.oldElementValue.length ? 1 : 0);
-    var prevTokenPos = -1, nextTokenPos = value.length;
-    var tp;
-    for (var index = 0, l = this.options.tokens.length; index < l; ++index) {
-      tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1);
-      if (tp > prevTokenPos) prevTokenPos = tp;
-      tp = value.indexOf(this.options.tokens[index], diff + offset);
-      if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp;
-    }
-    return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]);
-  }
-});
-
-Autocompleter2.Base2.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) {
-  var boundary = Math.min(newS.length, oldS.length);
-  for (var index = 0; index < boundary; ++index)
-    if (newS[index] != oldS[index])
-      return index;
-  return boundary;
-};
-
-Ajax.Autocompleter2 = Class.create(Autocompleter2.Base2, {
-  initialize: function(element, update, url, options) {
-    this.baseInitialize(element, update, options);
-    this.options.asynchronous  = true;
-    this.options.onComplete    = this.onComplete.bind(this);
-    this.options.defaultParams = this.options.parameters || null;
-    this.url                   = url;
-  },
-
-  getUpdatedChoices: function() {
-    this.startIndicator();
-    
-    var entry = encodeURIComponent(this.options.paramName) + '=' + 
-      encodeURIComponent(this.getToken());
-
-    this.options.parameters = this.options.callback ?
-      this.options.callback(this.element, entry) : entry;
-
-    if(this.options.defaultParams) 
-      this.options.parameters += '&' + this.options.defaultParams;
-    
-    new Ajax.Request(this.url, this.options);
-  },
-
-  onComplete: function(request) {
-    this.updateChoices(request.responseText);
-  }
-});
-
-// The local array autocompleter. Used when you'd prefer to
-// inject an array of autocompletion options into the page, rather
-// than sending out Ajax queries, which can be quite slow sometimes.
-//
-// The constructor takes four parameters. The first two are, as usual,
-// the id of the monitored textbox, and id of the autocompletion menu.
-// The third is the array you want to autocomplete from, and the fourth
-// is the options block.
-//
-// Extra local autocompletion options:
-// - choices - How many autocompletion choices to offer
-//
-// - partialSearch - If false, the autocompleter will match entered
-//                    text only at the beginning of strings in the 
-//                    autocomplete array. Defaults to true, which will
-//                    match text at the beginning of any *word* in the
-//                    strings in the autocomplete array. If you want to
-//                    search anywhere in the string, additionally set
-//                    the option fullSearch to true (default: off).
-//
-// - fullSsearch - Search anywhere in autocomplete array strings.
-//
-// - partialChars - How many characters to enter before triggering
-//                   a partial match (unlike minChars, which defines
-//                   how many characters are required to do any match
-//                   at all). Defaults to 2.
-//
-// - ignoreCase - Whether to ignore case when autocompleting.
-//                 Defaults to true.
-//
-// It's possible to pass in a custom function as the 'selector' 
-// option, if you prefer to write your own autocompletion logic.
-// In that case, the other options above will not apply unless
-// you support them.
-
-Autocompleter.Local = Class.create(Autocompleter.Base, {
-  initialize: function(element, update, array, options) {
-    this.baseInitialize(element, update, options);
-    this.options.array = array;
-  },
-
-  getUpdatedChoices: function() {
-    this.updateChoices(this.options.selector(this));
-  },
-
-  setOptions: function(options) {
-    this.options = Object.extend({
-      choices: 10,
-      partialSearch: true,
-      partialChars: 2,
-      ignoreCase: true,
-      fullSearch: false,
-      selector: function(instance) {
-        var ret       = []; // Beginning matches
-        var partial   = []; // Inside matches
-        var entry     = instance.getToken();
-        var count     = 0;
-
-        for (var i = 0; i < instance.options.array.length &&  
-          ret.length < instance.options.choices ; i++) { 
-
-          var elem = instance.options.array[i];
-          var foundPos = instance.options.ignoreCase ? 
-            elem.toLowerCase().indexOf(entry.toLowerCase()) : 
-            elem.indexOf(entry);
-
-          while (foundPos != -1) {
-            if (foundPos == 0 && elem.length != entry.length) { 
-              ret.push("<li><strong>" + elem.substr(0, entry.length) + "</strong>" + 
-                elem.substr(entry.length) + "</li>");
-              break;
-            } else if (entry.length >= instance.options.partialChars && 
-              instance.options.partialSearch && foundPos != -1) {
-              if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {
-                partial.push("<li>" + elem.substr(0, foundPos) + "<strong>" +
-                  elem.substr(foundPos, entry.length) + "</strong>" + elem.substr(
-                  foundPos + entry.length) + "</li>");
-                break;
-              }
-            }
-
-            foundPos = instance.options.ignoreCase ? 
-              elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : 
-              elem.indexOf(entry, foundPos + 1);
-
-          }
-        }
-        if (partial.length)
-          ret = ret.concat(partial.slice(0, instance.options.choices - ret.length));
-        return "<ul>" + ret.join('') + "</ul>";
-      }
-    }, options || { });
-  }
-});
-
-// AJAX in-place editor and collection editor
-// Full rewrite by Christophe Porteneuve <tdd@tddsworld.com> (April 2007).
-
-// Use this if you notice weird scrolling problems on some browsers,
-// the DOM might be a bit confused when this gets called so do this
-// waits 1 ms (with setTimeout) until it does the activation
-Field.scrollFreeActivate = function(field) {
-  setTimeout(function() {
-    Field.activate(field);
-  }, 1);
-};
-
-Ajax.InPlaceEditor = Class.create({
-  initialize: function(element, url, options) {
-    this.url = url;
-    this.element = element = $(element);
-    this.prepareOptions();
-    this._controls = { };
-    arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!!
-    Object.extend(this.options, options || { });
-    if (!this.options.formId && this.element.id) {
-      this.options.formId = this.element.id + '-inplaceeditor';
-      if ($(this.options.formId))
-        this.options.formId = '';
-    }
-    if (this.options.externalControl)
-      this.options.externalControl = $(this.options.externalControl);
-    if (!this.options.externalControl)
-      this.options.externalControlOnly = false;
-    this._originalBackground = this.element.getStyle('background-color') || 'transparent';
-    this.element.title = this.options.clickToEditText;
-    this._boundCancelHandler = this.handleFormCancellation.bind(this);
-    this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this);
-    this._boundFailureHandler = this.handleAJAXFailure.bind(this);
-    this._boundSubmitHandler = this.handleFormSubmission.bind(this);
-    this._boundWrapperHandler = this.wrapUp.bind(this);
-    this.registerListeners();
-  },
-  checkForEscapeOrReturn: function(e) {
-    if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return;
-    if (Event.KEY_ESC == e.keyCode)
-      this.handleFormCancellation(e);
-    else if (Event.KEY_RETURN == e.keyCode)
-      this.handleFormSubmission(e);
-  },
-  createControl: function(mode, handler, extraClasses) {
-    var control = this.options[mode + 'Control'];
-    var text = this.options[mode + 'Text'];
-    if ('button' == control) {
-      var btn = document.createElement('input');
-      btn.type = 'submit';
-      btn.value = text;
-      btn.className = 'editor_' + mode + '_button';
-      if ('cancel' == mode)
-        btn.onclick = this._boundCancelHandler;
-      this._form.appendChild(btn);
-      this._controls[mode] = btn;
-    } else if ('link' == control) {
-      var link = document.createElement('a');
-      link.href = '#';
-      link.appendChild(document.createTextNode(text));
-      link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler;
-      link.className = 'editor_' + mode + '_link';
-      if (extraClasses)
-        link.className += ' ' + extraClasses;
-      this._form.appendChild(link);
-      this._controls[mode] = link;
-    }
-  },
-  createEditField: function() {
-    var text = (this.options.loadTextURL ? this.options.loadingText : this.getText());
-    var fld;
-    if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) {
-      fld = document.createElement('input');
-      fld.type = 'text';
-      var size = this.options.size || this.options.cols || 0;
-      if (0 < size) fld.size = size;
-    } else {
-      fld = document.createElement('textarea');
-      fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows);
-      fld.cols = this.options.cols || 40;
-    }
-    fld.name = this.options.paramName;
-    fld.value = text; // No HTML breaks conversion anymore
-    fld.className = 'editor_field';
-    if (this.options.submitOnBlur)
-      fld.onblur = this._boundSubmitHandler;
-    this._controls.editor = fld;
-    if (this.options.loadTextURL)
-      this.loadExternalText();
-    this._form.appendChild(this._controls.editor);
-  },
-  createForm: function() {
-    var ipe = this;
-    function addText(mode, condition) {
-      var text = ipe.options['text' + mode + 'Controls'];
-      if (!text || condition === false) return;
-      ipe._form.appendChild(document.createTextNode(text));
-    };
-    this._form = $(document.createElement('form'));
-    this._form.id = this.options.formId;
-    this._form.addClassName(this.options.formClassName);
-    this._form.onsubmit = this._boundSubmitHandler;
-    this.createEditField();
-    if ('textarea' == this._controls.editor.tagName.toLowerCase())
-      this._form.appendChild(document.createElement('br'));
-    if (this.options.onFormCustomization)
-      this.options.onFormCustomization(this, this._form);
-    addText('Before', this.options.okControl || this.options.cancelControl);
-    this.createControl('ok', this._boundSubmitHandler);
-    addText('Between', this.options.okControl && this.options.cancelControl);
-    this.createControl('cancel', this._boundCancelHandler, 'editor_cancel');
-    addText('After', this.options.okControl || this.options.cancelControl);
-  },
-  destroy: function() {
-    if (this._oldInnerHTML)
-      this.element.innerHTML = this._oldInnerHTML;
-    this.leaveEditMode();
-    this.unregisterListeners();
-  },
-  enterEditMode: function(e) {
-    if (this._saving || this._editing) return;
-    this._editing = true;
-    this.triggerCallback('onEnterEditMode');
-    if (this.options.externalControl)
-      this.options.externalControl.hide();
-    this.element.hide();
-    this.createForm();
-    this.element.parentNode.insertBefore(this._form, this.element);
-    if (!this.options.loadTextURL)
-      this.postProcessEditField();
-    if (e) Event.stop(e);
-  },
-  enterHover: function(e) {
-    if (this.options.hoverClassName)
-      this.element.addClassName(this.options.hoverClassName);
-    if (this._saving) return;
-    this.triggerCallback('onEnterHover');
-  },
-  getText: function() {
-    return this.element.innerHTML.unescapeHTML();
-  },
-  handleAJAXFailure: function(transport) {
-    this.triggerCallback('onFailure', transport);
-    if (this._oldInnerHTML) {
-      this.element.innerHTML = this._oldInnerHTML;
-      this._oldInnerHTML = null;
-    }
-  },
-  handleFormCancellation: function(e) {
-    this.wrapUp();
-    if (e) Event.stop(e);
-  },
-  handleFormSubmission: function(e) {
-    var form = this._form;
-    var value = $F(this._controls.editor);
-    this.prepareSubmission();
-    var params = this.options.callback(form, value) || '';
-    if (Object.isString(params))
-      params = params.toQueryParams();
-    params.editorId = this.element.id;
-    if (this.options.htmlResponse) {
-      var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions);
-      Object.extend(options, {
-        parameters: params,
-        onComplete: this._boundWrapperHandler,
-        onFailure: this._boundFailureHandler
-      });
-      new Ajax.Updater({ success: this.element }, this.url, options);
-    } else {
-      var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
-      Object.extend(options, {
-        parameters: params,
-        onComplete: this._boundWrapperHandler,
-        onFailure: this._boundFailureHandler
-      });
-      new Ajax.Request(this.url, options);
-    }
-    if (e) Event.stop(e);
-  },
-  leaveEditMode: function() {
-    this.element.removeClassName(this.options.savingClassName);
-    this.removeForm();
-    this.leaveHover();
-    this.element.style.backgroundColor = this._originalBackground;
-    this.element.show();
-    if (this.options.externalControl)
-      this.options.externalControl.show();
-    this._saving = false;
-    this._editing = false;
-    this._oldInnerHTML = null;
-    this.triggerCallback('onLeaveEditMode');
-  },
-  leaveHover: function(e) {
-    if (this.options.hoverClassName)
-      this.element.removeClassName(this.options.hoverClassName);
-    if (this._saving) return;
-    this.triggerCallback('onLeaveHover');
-  },
-  loadExternalText: function() {
-    this._form.addClassName(this.options.loadingClassName);
-    this._controls.editor.disabled = true;
-    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
-    Object.extend(options, {
-      parameters: 'editorId=' + encodeURIComponent(this.element.id),
-      onComplete: Prototype.emptyFunction,
-      onSuccess: function(transport) {
-        this._form.removeClassName(this.options.loadingClassName);
-        var text = transport.responseText;
-        if (this.options.stripLoadedTextTags)
-          text = text.stripTags();
-        this._controls.editor.value = text;
-        this._controls.editor.disabled = false;
-        this.postProcessEditField();
-      }.bind(this),
-      onFailure: this._boundFailureHandler
-    });
-    new Ajax.Request(this.options.loadTextURL, options);
-  },
-  postProcessEditField: function() {
-    var fpc = this.options.fieldPostCreation;
-    if (fpc)
-      $(this._controls.editor)['focus' == fpc ? 'focus' : 'activate']();
-  },
-  prepareOptions: function() {
-    this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions);
-    Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks);
-    [this._extraDefaultOptions].flatten().compact().each(function(defs) {
-      Object.extend(this.options, defs);
-    }.bind(this));
-  },
-  prepareSubmission: function() {
-    this._saving = true;
-    this.removeForm();
-    this.leaveHover();
-    this.showSaving();
-  },
-  registerListeners: function() {
-    this._listeners = { };
-    var listener;
-    $H(Ajax.InPlaceEditor.Listeners).each(function(pair) {
-      listener = this[pair.value].bind(this);
-      this._listeners[pair.key] = listener;
-      if (!this.options.externalControlOnly)
-        this.element.observe(pair.key, listener);
-      if (this.options.externalControl)
-        this.options.externalControl.observe(pair.key, listener);
-    }.bind(this));
-  },
-  removeForm: function() {
-    if (!this._form) return;
-    this._form.remove();
-    this._form = null;
-    this._controls = { };
-  },
-  showSaving: function() {
-    this._oldInnerHTML = this.element.innerHTML;
-    this.element.innerHTML = this.options.savingText;
-    this.element.addClassName(this.options.savingClassName);
-    this.element.style.backgroundColor = this._originalBackground;
-    this.element.show();
-  },
-  triggerCallback: function(cbName, arg) {
-    if ('function' == typeof this.options[cbName]) {
-      this.options[cbName](this, arg);
-    }
-  },
-  unregisterListeners: function() {
-    $H(this._listeners).each(function(pair) {
-      if (!this.options.externalControlOnly)
-        this.element.stopObserving(pair.key, pair.value);
-      if (this.options.externalControl)
-        this.options.externalControl.stopObserving(pair.key, pair.value);
-    }.bind(this));
-  },
-  wrapUp: function(transport) {
-    this.leaveEditMode();
-    // Can't use triggerCallback due to backward compatibility: requires
-    // binding + direct element
-    this._boundComplete(transport, this.element);
-  }
-});
-
-Object.extend(Ajax.InPlaceEditor.prototype, {
-  dispose: Ajax.InPlaceEditor.prototype.destroy
-});
-
-Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, {
-  initialize: function($super, element, url, options) {
-    this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions;
-    $super(element, url, options);
-  },
-
-  createEditField: function() {
-    var list = document.createElement('select');
-    list.name = this.options.paramName;
-    list.size = 1;
-    this._controls.editor = list;
-    this._collection = this.options.collection || [];
-    if (this.options.loadCollectionURL)
-      this.loadCollection();
-    else
-      this.checkForExternalText();
-    this._form.appendChild(this._controls.editor);
-  },
-
-  loadCollection: function() {
-    this._form.addClassName(this.options.loadingClassName);
-    this.showLoadingText(this.options.loadingCollectionText);
-    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
-    Object.extend(options, {
-      parameters: 'editorId=' + encodeURIComponent(this.element.id),
-      onComplete: Prototype.emptyFunction,
-      onSuccess: function(transport) {
-        var js = transport.responseText.strip();
-        if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check
-          throw('Server returned an invalid collection representation.');
-        this._collection = eval(js);
-        this.checkForExternalText();
-      }.bind(this),
-      onFailure: this.onFailure
-    });
-    new Ajax.Request(this.options.loadCollectionURL, options);
-  },
-
-  showLoadingText: function(text) {
-    this._controls.editor.disabled = true;
-    var tempOption = this._controls.editor.firstChild;
-    if (!tempOption) {
-      tempOption = document.createElement('option');
-      tempOption.value = '';
-      this._controls.editor.appendChild(tempOption);
-      tempOption.selected = true;
-    }
-    tempOption.update((text || '').stripScripts().stripTags());
-  },
-
-  checkForExternalText: function() {
-    this._text = this.getText();
-    if (this.options.loadTextURL)
-      this.loadExternalText();
-    else
-      this.buildOptionList();
-  },
-
-  loadExternalText: function() {
-    this.showLoadingText(this.options.loadingText);
-    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
-    Object.extend(options, {
-      parameters: 'editorId=' + encodeURIComponent(this.element.id),
-      onComplete: Prototype.emptyFunction,
-      onSuccess: function(transport) {
-        this._text = transport.responseText.strip();
-        this.buildOptionList();
-      }.bind(this),
-      onFailure: this.onFailure
-    });
-    new Ajax.Request(this.options.loadTextURL, options);
-  },
-
-  buildOptionList: function() {
-    this._form.removeClassName(this.options.loadingClassName);
-    this._collection = this._collection.map(function(entry) {
-      return 2 === entry.length ? entry : [entry, entry].flatten();
-    });
-    var marker = ('value' in this.options) ? this.options.value : this._text;
-    var textFound = this._collection.any(function(entry) {
-      return entry[0] == marker;
-    }.bind(this));
-    this._controls.editor.update('');
-    var option;
-    this._collection.each(function(entry, index) {
-      option = document.createElement('option');
-      option.value = entry[0];
-      option.selected = textFound ? entry[0] == marker : 0 == index;
-      option.appendChild(document.createTextNode(entry[1]));
-      this._controls.editor.appendChild(option);
-    }.bind(this));
-    this._controls.editor.disabled = false;
-    Field.scrollFreeActivate(this._controls.editor);
-  }
-});
-
-//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! ****
-//**** This only  exists for a while,  in order to  let ****
-//**** users adapt to  the new API.  Read up on the new ****
-//**** API and convert your code to it ASAP!            ****
-
-Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) {
-  if (!options) return;
-  function fallback(name, expr) {
-    if (name in options || expr === undefined) return;
-    options[name] = expr;
-  };
-  fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' :
-    options.cancelLink == options.cancelButton == false ? false : undefined)));
-  fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' :
-    options.okLink == options.okButton == false ? false : undefined)));
-  fallback('highlightColor', options.highlightcolor);
-  fallback('highlightEndColor', options.highlightendcolor);
-};
-
-Object.extend(Ajax.InPlaceEditor, {
-  DefaultOptions: {
-    ajaxOptions: { },
-    autoRows: 3,                                // Use when multi-line w/ rows == 1
-    cancelControl: 'link',                      // 'link'|'button'|false
-    cancelText: 'cancel',
-    clickToEditText: 'Click to edit',
-    externalControl: null,                      // id|elt
-    externalControlOnly: false,
-    fieldPostCreation: 'activate',              // 'activate'|'focus'|false
-    formClassName: 'inplaceeditor-form',
-    formId: null,                               // id|elt
-    highlightColor: '#ffff99',
-    highlightEndColor: '#ffffff',
-    hoverClassName: '',
-    htmlResponse: true,
-    loadingClassName: 'inplaceeditor-loading',
-    loadingText: 'Loading...',
-    okControl: 'button',                        // 'link'|'button'|false
-    okText: 'ok',
-    paramName: 'value',
-    rows: 1,                                    // If 1 and multi-line, uses autoRows
-    savingClassName: 'inplaceeditor-saving',
-    savingText: 'Saving...',
-    size: 0,
-    stripLoadedTextTags: false,
-    submitOnBlur: false,
-    textAfterControls: '',
-    textBeforeControls: '',
-    textBetweenControls: ''
-  },
-  DefaultCallbacks: {
-    callback: function(form) {
-      return Form.serialize(form);
-    },
-    onComplete: function(transport, element) {
-      // For backward compatibility, this one is bound to the IPE, and passes
-      // the element directly.  It was too often customized, so we don't break it.
-      new Effect.Highlight(element, {
-        startcolor: this.options.highlightColor, keepBackgroundImage: true });
-    },
-    onEnterEditMode: null,
-    onEnterHover: function(ipe) {
-      ipe.element.style.backgroundColor = ipe.options.highlightColor;
-      if (ipe._effect)
-        ipe._effect.cancel();
-    },
-    onFailure: function(transport, ipe) {
-      alert('Error communication with the server: ' + transport.responseText.stripTags());
-    },
-    onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls.
-    onLeaveEditMode: null,
-    onLeaveHover: function(ipe) {
-      ipe._effect = new Effect.Highlight(ipe.element, {
-        startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor,
-        restorecolor: ipe._originalBackground, keepBackgroundImage: true
-      });
-    }
-  },
-  Listeners: {
-    click: 'enterEditMode',
-    keydown: 'checkForEscapeOrReturn',
-    mouseover: 'enterHover',
-    mouseout: 'leaveHover'
-  }
-});
-
-Ajax.InPlaceCollectionEditor.DefaultOptions = {
-  loadingCollectionText: 'Loading options...'
-};
-
-// Delayed observer, like Form.Element.Observer, 
-// but waits for delay after last key input
-// Ideal for live-search fields
-
-Form.Element.DelayedObserver = Class.create({
-  initialize: function(element, delay, callback) {
-    this.delay     = delay || 0.5;
-    this.element   = $(element);
-    this.callback  = callback;
-    this.timer     = null;
-    this.lastValue = $F(this.element); 
-    Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));
-  },
-  delayedListener: function(event) {
-    if(this.lastValue == $F(this.element)) return;
-    if(this.timer) clearTimeout(this.timer);
-    this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000);
-    this.lastValue = $F(this.element);
-  },
-  onTimerEvent: function() {
-    this.timer = null;
-    this.callback(this.element, $F(this.element));
-  }
-});
\ No newline at end of file
diff --git a/apps/maarch_entreprise/js/effects.js b/apps/maarch_entreprise/js/effects.js
deleted file mode 100755
index f325ffcaae3..00000000000
--- a/apps/maarch_entreprise/js/effects.js
+++ /dev/null
@@ -1,1123 +0,0 @@
-// script.aculo.us effects.js v1.9.0, Thu Dec 23 16:54:48 -0500 2010
-
-// Copyright (c) 2005-2010 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-// Contributors:
-//  Justin Palmer (http://encytemedia.com/)
-//  Mark Pilgrim (http://diveintomark.org/)
-//  Martin Bialasinki
-//
-// script.aculo.us is freely distributable under the terms of an MIT-style license.
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-// converts rgb() and #xxx to #xxxxxx format,
-// returns self (or first argument) if not convertable
-String.prototype.parseColor = function() {
-  var color = '#';
-  if (this.slice(0,4) == 'rgb(') {
-    var cols = this.slice(4,this.length-1).split(',');
-    var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);
-  } else {
-    if (this.slice(0,1) == '#') {
-      if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();
-      if (this.length==7) color = this.toLowerCase();
-    }
-  }
-  return (color.length==7 ? color : (arguments[0] || this));
-};
-
-/*--------------------------------------------------------------------------*/
-
-Element.collectTextNodes = function(element) {
-  return $A($(element).childNodes).collect( function(node) {
-    return (node.nodeType==3 ? node.nodeValue :
-      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));
-  }).flatten().join('');
-};
-
-Element.collectTextNodesIgnoreClass = function(element, className) {
-  return $A($(element).childNodes).collect( function(node) {
-    return (node.nodeType==3 ? node.nodeValue :
-      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ?
-        Element.collectTextNodesIgnoreClass(node, className) : ''));
-  }).flatten().join('');
-};
-
-Element.setContentZoom = function(element, percent) {
-  element = $(element);
-  element.setStyle({fontSize: (percent/100) + 'em'});
-  if (Prototype.Browser.WebKit) window.scrollBy(0,0);
-  return element;
-};
-
-Element.getInlineOpacity = function(element){
-  return $(element).style.opacity || '';
-};
-
-Element.forceRerendering = function(element) {
-  try {
-    element = $(element);
-    var n = document.createTextNode(' ');
-    element.appendChild(n);
-    element.removeChild(n);
-  } catch(e) { }
-};
-
-/*--------------------------------------------------------------------------*/
-
-var Effect = {
-  _elementDoesNotExistError: {
-    name: 'ElementDoesNotExistError',
-    message: 'The specified DOM element does not exist, but is required for this effect to operate'
-  },
-  Transitions: {
-    linear: Prototype.K,
-    sinoidal: function(pos) {
-      return (-Math.cos(pos*Math.PI)/2) + .5;
-    },
-    reverse: function(pos) {
-      return 1-pos;
-    },
-    flicker: function(pos) {
-      var pos = ((-Math.cos(pos*Math.PI)/4) + .75) + Math.random()/4;
-      return pos > 1 ? 1 : pos;
-    },
-    wobble: function(pos) {
-      return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5;
-    },
-    pulse: function(pos, pulses) {
-      return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5;
-    },
-    spring: function(pos) {
-      return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6));
-    },
-    none: function(pos) {
-      return 0;
-    },
-    full: function(pos) {
-      return 1;
-    }
-  },
-  DefaultOptions: {
-    duration:   0.3,   // seconds
-    fps:        100,   // 100= assume 66fps max.
-    sync:       false, // true for combining
-    from:       0.0,
-    to:         1.0,
-    delay:      0.0,
-    queue:      'parallel'
-  },
-  tagifyText: function(element) {
-    var tagifyStyle = 'position:relative';
-    if (Prototype.Browser.IE) tagifyStyle += ';zoom:1';
-
-    element = $(element);
-    $A(element.childNodes).each( function(child) {
-      if (child.nodeType==3) {
-        child.nodeValue.toArray().each( function(character) {
-          element.insertBefore(
-            new Element('span', {style: tagifyStyle}).update(
-              character == ' ' ? String.fromCharCode(160) : character),
-              child);
-        });
-        Element.remove(child);
-      }
-    });
-  },
-  multiple: function(element, effect) {
-    var elements;
-    if (((typeof element == 'object') ||
-        Object.isFunction(element)) &&
-       (element.length))
-      elements = element;
-    else
-      elements = $(element).childNodes;
-
-    var options = Object.extend({
-      speed: 0.1,
-      delay: 0.0
-    }, arguments[2] || { });
-    var masterDelay = options.delay;
-
-    $A(elements).each( function(element, index) {
-      new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay }));
-    });
-  },
-  PAIRS: {
-    'slide':  ['SlideDown','SlideUp'],
-    'blind':  ['BlindDown','BlindUp'],
-    'appear': ['Appear','Fade']
-  },
-  toggle: function(element, effect, options) {
-    element = $(element);
-    effect  = (effect || 'appear').toLowerCase();
-    
-    return Effect[ Effect.PAIRS[ effect ][ element.visible() ? 1 : 0 ] ](element, Object.extend({
-      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }
-    }, options || {}));
-  }
-};
-
-Effect.DefaultOptions.transition = Effect.Transitions.sinoidal;
-
-/* ------------- core effects ------------- */
-
-Effect.ScopedQueue = Class.create(Enumerable, {
-  initialize: function() {
-    this.effects  = [];
-    this.interval = null;
-  },
-  _each: function(iterator) {
-    this.effects._each(iterator);
-  },
-  add: function(effect) {
-    var timestamp = new Date().getTime();
-
-    var position = Object.isString(effect.options.queue) ?
-      effect.options.queue : effect.options.queue.position;
-
-    switch(position) {
-      case 'front':
-        // move unstarted effects after this effect
-        this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) {
-            e.startOn  += effect.finishOn;
-            e.finishOn += effect.finishOn;
-          });
-        break;
-      case 'with-last':
-        timestamp = this.effects.pluck('startOn').max() || timestamp;
-        break;
-      case 'end':
-        // start effect after last queued effect has finished
-        timestamp = this.effects.pluck('finishOn').max() || timestamp;
-        break;
-    }
-
-    effect.startOn  += timestamp;
-    effect.finishOn += timestamp;
-
-    if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit))
-      this.effects.push(effect);
-
-    if (!this.interval)
-      this.interval = setInterval(this.loop.bind(this), 15);
-  },
-  remove: function(effect) {
-    this.effects = this.effects.reject(function(e) { return e==effect });
-    if (this.effects.length == 0) {
-      clearInterval(this.interval);
-      this.interval = null;
-    }
-  },
-  loop: function() {
-    var timePos = new Date().getTime();
-    for(var i=0, len=this.effects.length;i<len;i++)
-      this.effects[i] && this.effects[i].loop(timePos);
-  }
-});
-
-Effect.Queues = {
-  instances: $H(),
-  get: function(queueName) {
-    if (!Object.isString(queueName)) return queueName;
-
-    return this.instances.get(queueName) ||
-      this.instances.set(queueName, new Effect.ScopedQueue());
-  }
-};
-Effect.Queue = Effect.Queues.get('global');
-
-Effect.Base = Class.create({
-  position: null,
-  start: function(options) {
-    if (options && options.transition === false) options.transition = Effect.Transitions.linear;
-    this.options      = Object.extend(Object.extend({ },Effect.DefaultOptions), options || { });
-    this.currentFrame = 0;
-    this.state        = 'idle';
-    this.startOn      = this.options.delay*1000;
-    this.finishOn     = this.startOn+(this.options.duration*1000);
-    this.fromToDelta  = this.options.to-this.options.from;
-    this.totalTime    = this.finishOn-this.startOn;
-    this.totalFrames  = this.options.fps*this.options.duration;
-
-    this.render = (function() {
-      function dispatch(effect, eventName) {
-        if (effect.options[eventName + 'Internal'])
-          effect.options[eventName + 'Internal'](effect);
-        if (effect.options[eventName])
-          effect.options[eventName](effect);
-      }
-
-      return function(pos) {
-        if (this.state === "idle") {
-          this.state = "running";
-          dispatch(this, 'beforeSetup');
-          if (this.setup) this.setup();
-          dispatch(this, 'afterSetup');
-        }
-        if (this.state === "running") {
-          pos = (this.options.transition(pos) * this.fromToDelta) + this.options.from;
-          this.position = pos;
-          dispatch(this, 'beforeUpdate');
-          if (this.update) this.update(pos);
-          dispatch(this, 'afterUpdate');
-        }
-      };
-    })();
-
-    this.event('beforeStart');
-    if (!this.options.sync)
-      Effect.Queues.get(Object.isString(this.options.queue) ?
-        'global' : this.options.queue.scope).add(this);
-  },
-  loop: function(timePos) {
-    if (timePos >= this.startOn) {
-      if (timePos >= this.finishOn) {
-        this.render(1.0);
-        this.cancel();
-        this.event('beforeFinish');
-        if (this.finish) this.finish();
-        this.event('afterFinish');
-        return;
-      }
-      var pos   = (timePos - this.startOn) / this.totalTime,
-          frame = (pos * this.totalFrames).round();
-      if (frame > this.currentFrame) {
-        this.render(pos);
-        this.currentFrame = frame;
-      }
-    }
-  },
-  cancel: function() {
-    if (!this.options.sync)
-      Effect.Queues.get(Object.isString(this.options.queue) ?
-        'global' : this.options.queue.scope).remove(this);
-    this.state = 'finished';
-  },
-  event: function(eventName) {
-    if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this);
-    if (this.options[eventName]) this.options[eventName](this);
-  },
-  inspect: function() {
-    var data = $H();
-    for(property in this)
-      if (!Object.isFunction(this[property])) data.set(property, this[property]);
-    return '#<Effect:' + data.inspect() + ',options:' + $H(this.options).inspect() + '>';
-  }
-});
-
-Effect.Parallel = Class.create(Effect.Base, {
-  initialize: function(effects) {
-    this.effects = effects || [];
-    this.start(arguments[1]);
-  },
-  update: function(position) {
-    this.effects.invoke('render', position);
-  },
-  finish: function(position) {
-    this.effects.each( function(effect) {
-      effect.render(1.0);
-      effect.cancel();
-      effect.event('beforeFinish');
-      if (effect.finish) effect.finish(position);
-      effect.event('afterFinish');
-    });
-  }
-});
-
-Effect.Tween = Class.create(Effect.Base, {
-  initialize: function(object, from, to) {
-    object = Object.isString(object) ? $(object) : object;
-    var args = $A(arguments), method = args.last(),
-      options = args.length == 5 ? args[3] : null;
-    this.method = Object.isFunction(method) ? method.bind(object) :
-      Object.isFunction(object[method]) ? object[method].bind(object) :
-      function(value) { object[method] = value };
-    this.start(Object.extend({ from: from, to: to }, options || { }));
-  },
-  update: function(position) {
-    this.method(position);
-  }
-});
-
-Effect.Event = Class.create(Effect.Base, {
-  initialize: function() {
-    this.start(Object.extend({ duration: 0 }, arguments[0] || { }));
-  },
-  update: Prototype.emptyFunction
-});
-
-Effect.Opacity = Class.create(Effect.Base, {
-  initialize: function(element) {
-    this.element = $(element);
-    if (!this.element) throw(Effect._elementDoesNotExistError);
-    // make this work on IE on elements without 'layout'
-    if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
-      this.element.setStyle({zoom: 1});
-    var options = Object.extend({
-      from: this.element.getOpacity() || 0.0,
-      to:   1.0
-    }, arguments[1] || { });
-    this.start(options);
-  },
-  update: function(position) {
-    this.element.setOpacity(position);
-  }
-});
-
-Effect.Move = Class.create(Effect.Base, {
-  initialize: function(element) {
-    this.element = $(element);
-    if (!this.element) throw(Effect._elementDoesNotExistError);
-    var options = Object.extend({
-      x:    0,
-      y:    0,
-      mode: 'relative'
-    }, arguments[1] || { });
-    this.start(options);
-  },
-  setup: function() {
-    this.element.makePositioned();
-    this.originalLeft = parseFloat(this.element.getStyle('left') || '0');
-    this.originalTop  = parseFloat(this.element.getStyle('top')  || '0');
-    if (this.options.mode == 'absolute') {
-      this.options.x = this.options.x - this.originalLeft;
-      this.options.y = this.options.y - this.originalTop;
-    }
-  },
-  update: function(position) {
-    this.element.setStyle({
-      left: (this.options.x  * position + this.originalLeft).round() + 'px',
-      top:  (this.options.y  * position + this.originalTop).round()  + 'px'
-    });
-  }
-});
-
-// for backwards compatibility
-Effect.MoveBy = function(element, toTop, toLeft) {
-  return new Effect.Move(element,
-    Object.extend({ x: toLeft, y: toTop }, arguments[3] || { }));
-};
-
-Effect.Scale = Class.create(Effect.Base, {
-  initialize: function(element, percent) {
-    this.element = $(element);
-    if (!this.element) throw(Effect._elementDoesNotExistError);
-    var options = Object.extend({
-      scaleX: true,
-      scaleY: true,
-      scaleContent: true,
-      scaleFromCenter: false,
-      scaleMode: 'box',        // 'box' or 'contents' or { } with provided values
-      scaleFrom: 100.0,
-      scaleTo:   percent
-    }, arguments[2] || { });
-    this.start(options);
-  },
-  setup: function() {
-    this.restoreAfterFinish = this.options.restoreAfterFinish || false;
-    this.elementPositioning = this.element.getStyle('position');
-
-    this.originalStyle = { };
-    ['top','left','width','height','fontSize'].each( function(k) {
-      this.originalStyle[k] = this.element.style[k];
-    }.bind(this));
-
-    this.originalTop  = this.element.offsetTop;
-    this.originalLeft = this.element.offsetLeft;
-
-    var fontSize = this.element.getStyle('font-size') || '100%';
-    ['em','px','%','pt'].each( function(fontSizeType) {
-      if (fontSize.indexOf(fontSizeType)>0) {
-        this.fontSize     = parseFloat(fontSize);
-        this.fontSizeType = fontSizeType;
-      }
-    }.bind(this));
-
-    this.factor = (this.options.scaleTo - this.options.scaleFrom)/100;
-
-    this.dims = null;
-    if (this.options.scaleMode=='box')
-      this.dims = [this.element.offsetHeight, this.element.offsetWidth];
-    if (/^content/.test(this.options.scaleMode))
-      this.dims = [this.element.scrollHeight, this.element.scrollWidth];
-    if (!this.dims)
-      this.dims = [this.options.scaleMode.originalHeight,
-                   this.options.scaleMode.originalWidth];
-  },
-  update: function(position) {
-    var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position);
-    if (this.options.scaleContent && this.fontSize)
-      this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType });
-    this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale);
-  },
-  finish: function(position) {
-    if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle);
-  },
-  setDimensions: function(height, width) {
-    var d = { };
-    if (this.options.scaleX) d.width = width.round() + 'px';
-    if (this.options.scaleY) d.height = height.round() + 'px';
-    if (this.options.scaleFromCenter) {
-      var topd  = (height - this.dims[0])/2;
-      var leftd = (width  - this.dims[1])/2;
-      if (this.elementPositioning == 'absolute') {
-        if (this.options.scaleY) d.top = this.originalTop-topd + 'px';
-        if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px';
-      } else {
-        if (this.options.scaleY) d.top = -topd + 'px';
-        if (this.options.scaleX) d.left = -leftd + 'px';
-      }
-    }
-    this.element.setStyle(d);
-  }
-});
-
-Effect.Highlight = Class.create(Effect.Base, {
-  initialize: function(element) {
-    this.element = $(element);
-    if (!this.element) throw(Effect._elementDoesNotExistError);
-    var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { });
-    this.start(options);
-  },
-  setup: function() {
-    // Prevent executing on elements not in the layout flow
-    if (this.element.getStyle('display')=='none') { this.cancel(); return; }
-    // Disable background image during the effect
-    this.oldStyle = { };
-    if (!this.options.keepBackgroundImage) {
-      this.oldStyle.backgroundImage = this.element.getStyle('background-image');
-      this.element.setStyle({backgroundImage: 'none'});
-    }
-    if (!this.options.endcolor)
-      this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');
-    if (!this.options.restorecolor)
-      this.options.restorecolor = this.element.getStyle('background-color');
-    // init color calculations
-    this._base  = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));
-    this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));
-  },
-  update: function(position) {
-    this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){
-      return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) });
-  },
-  finish: function() {
-    this.element.setStyle(Object.extend(this.oldStyle, {
-      backgroundColor: this.options.restorecolor
-    }));
-  }
-});
-
-Effect.ScrollTo = function(element) {
-  var options = arguments[1] || { },
-  scrollOffsets = document.viewport.getScrollOffsets(),
-  elementOffsets = $(element).cumulativeOffset();
-
-  if (options.offset) elementOffsets[1] += options.offset;
-
-  return new Effect.Tween(null,
-    scrollOffsets.top,
-    elementOffsets[1],
-    options,
-    function(p){ scrollTo(scrollOffsets.left, p.round()); }
-  );
-};
-
-/* ------------- combination effects ------------- */
-
-Effect.Fade = function(element) {
-  element = $(element);
-  var oldOpacity = element.getInlineOpacity();
-  var options = Object.extend({
-    from: element.getOpacity() || 1.0,
-    to:   0.0,
-    afterFinishInternal: function(effect) {
-      if (effect.options.to!=0) return;
-      effect.element.hide().setStyle({opacity: oldOpacity});
-    }
-  }, arguments[1] || { });
-  return new Effect.Opacity(element,options);
-};
-
-Effect.Appear = function(element) {
-  element = $(element);
-  var options = Object.extend({
-  from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0),
-  to:   1.0,
-  // force Safari to render floated elements properly
-  afterFinishInternal: function(effect) {
-    effect.element.forceRerendering();
-  },
-  beforeSetup: function(effect) {
-    effect.element.setOpacity(effect.options.from).show();
-  }}, arguments[1] || { });
-  return new Effect.Opacity(element,options);
-};
-
-Effect.Puff = function(element) {
-  element = $(element);
-  var oldStyle = {
-    opacity: element.getInlineOpacity(),
-    position: element.getStyle('position'),
-    top:  element.style.top,
-    left: element.style.left,
-    width: element.style.width,
-    height: element.style.height
-  };
-  return new Effect.Parallel(
-   [ new Effect.Scale(element, 200,
-      { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }),
-     new Effect.Opacity(element, { sync: true, to: 0.0 } ) ],
-     Object.extend({ duration: 1.0,
-      beforeSetupInternal: function(effect) {
-        Position.absolutize(effect.effects[0].element);
-      },
-      afterFinishInternal: function(effect) {
-         effect.effects[0].element.hide().setStyle(oldStyle); }
-     }, arguments[1] || { })
-   );
-};
-
-Effect.BlindUp = function(element) {
-  element = $(element);
-  element.makeClipping();
-  return new Effect.Scale(element, 0,
-    Object.extend({ scaleContent: false,
-      scaleX: false,
-      restoreAfterFinish: true,
-      afterFinishInternal: function(effect) {
-        effect.element.hide().undoClipping();
-      }
-    }, arguments[1] || { })
-  );
-};
-
-Effect.BlindDown = function(element) {
-  element = $(element);
-  var elementDimensions = element.getDimensions();
-  return new Effect.Scale(element, 100, Object.extend({
-    scaleContent: false,
-    scaleX: false,
-    scaleFrom: 0,
-    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
-    restoreAfterFinish: true,
-    afterSetup: function(effect) {
-      effect.element.makeClipping().setStyle({height: '0px'}).show();
-    },
-    afterFinishInternal: function(effect) {
-      effect.element.undoClipping();
-    }
-  }, arguments[1] || { }));
-};
-
-Effect.SwitchOff = function(element) {
-  element = $(element);
-  var oldOpacity = element.getInlineOpacity();
-  return new Effect.Appear(element, Object.extend({
-    duration: 0.4,
-    from: 0,
-    transition: Effect.Transitions.flicker,
-    afterFinishInternal: function(effect) {
-      new Effect.Scale(effect.element, 1, {
-        duration: 0.3, scaleFromCenter: true,
-        scaleX: false, scaleContent: false, restoreAfterFinish: true,
-        beforeSetup: function(effect) {
-          effect.element.makePositioned().makeClipping();
-        },
-        afterFinishInternal: function(effect) {
-          effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity});
-        }
-      });
-    }
-  }, arguments[1] || { }));
-};
-
-Effect.DropOut = function(element) {
-  element = $(element);
-  var oldStyle = {
-    top: element.getStyle('top'),
-    left: element.getStyle('left'),
-    opacity: element.getInlineOpacity() };
-  return new Effect.Parallel(
-    [ new Effect.Move(element, {x: 0, y: 100, sync: true }),
-      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
-    Object.extend(
-      { duration: 0.5,
-        beforeSetup: function(effect) {
-          effect.effects[0].element.makePositioned();
-        },
-        afterFinishInternal: function(effect) {
-          effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
-        }
-      }, arguments[1] || { }));
-};
-
-Effect.Shake = function(element) {
-  element = $(element);
-  var options = Object.extend({
-    distance: 20,
-    duration: 0.5
-  }, arguments[1] || {});
-  var distance = parseFloat(options.distance);
-  var split = parseFloat(options.duration) / 10.0;
-  var oldStyle = {
-    top: element.getStyle('top'),
-    left: element.getStyle('left') };
-    return new Effect.Move(element,
-      { x:  distance, y: 0, duration: split, afterFinishInternal: function(effect) {
-    new Effect.Move(effect.element,
-      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
-    new Effect.Move(effect.element,
-      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
-    new Effect.Move(effect.element,
-      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
-    new Effect.Move(effect.element,
-      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
-    new Effect.Move(effect.element,
-      { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) {
-        effect.element.undoPositioned().setStyle(oldStyle);
-  }}); }}); }}); }}); }}); }});
-};
-
-Effect.SlideDown = function(element) {
-  element = $(element).cleanWhitespace();
-  // SlideDown need to have the content of the element wrapped in a container element with fixed height!
-  var oldInnerBottom = element.down().getStyle('bottom');
-  var elementDimensions = element.getDimensions();
-  return new Effect.Scale(element, 100, Object.extend({
-    scaleContent: false,
-    scaleX: false,
-    scaleFrom: window.opera ? 0 : 1,
-    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
-    restoreAfterFinish: true,
-    afterSetup: function(effect) {
-      effect.element.makePositioned();
-      effect.element.down().makePositioned();
-      if (window.opera) effect.element.setStyle({top: ''});
-      effect.element.makeClipping().setStyle({height: '0px'}).show();
-    },
-    afterUpdateInternal: function(effect) {
-      effect.element.down().setStyle({bottom:
-        (effect.dims[0] - effect.element.clientHeight) + 'px' });
-    },
-    afterFinishInternal: function(effect) {
-      effect.element.undoClipping().undoPositioned();
-      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); }
-    }, arguments[1] || { })
-  );
-};
-
-Effect.SlideUp = function(element) {
-  element = $(element).cleanWhitespace();
-  var oldInnerBottom = element.down().getStyle('bottom');
-  var elementDimensions = element.getDimensions();
-  return new Effect.Scale(element, window.opera ? 0 : 1,
-   Object.extend({ scaleContent: false,
-    scaleX: false,
-    scaleMode: 'box',
-    scaleFrom: 100,
-    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
-    restoreAfterFinish: true,
-    afterSetup: function(effect) {
-      effect.element.makePositioned();
-      effect.element.down().makePositioned();
-      if (window.opera) effect.element.setStyle({top: ''});
-      effect.element.makeClipping().show();
-    },
-    afterUpdateInternal: function(effect) {
-      effect.element.down().setStyle({bottom:
-        (effect.dims[0] - effect.element.clientHeight) + 'px' });
-    },
-    afterFinishInternal: function(effect) {
-      effect.element.hide().undoClipping().undoPositioned();
-      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom});
-    }
-   }, arguments[1] || { })
-  );
-};
-
-// Bug in opera makes the TD containing this element expand for a instance after finish
-Effect.Squish = function(element) {
-  return new Effect.Scale(element, window.opera ? 1 : 0, {
-    restoreAfterFinish: true,
-    beforeSetup: function(effect) {
-      effect.element.makeClipping();
-    },
-    afterFinishInternal: function(effect) {
-      effect.element.hide().undoClipping();
-    }
-  });
-};
-
-Effect.Grow = function(element) {
-  element = $(element);
-  var options = Object.extend({
-    direction: 'center',
-    moveTransition: Effect.Transitions.sinoidal,
-    scaleTransition: Effect.Transitions.sinoidal,
-    opacityTransition: Effect.Transitions.full
-  }, arguments[1] || { });
-  var oldStyle = {
-    top: element.style.top,
-    left: element.style.left,
-    height: element.style.height,
-    width: element.style.width,
-    opacity: element.getInlineOpacity() };
-
-  var dims = element.getDimensions();
-  var initialMoveX, initialMoveY;
-  var moveX, moveY;
-
-  switch (options.direction) {
-    case 'top-left':
-      initialMoveX = initialMoveY = moveX = moveY = 0;
-      break;
-    case 'top-right':
-      initialMoveX = dims.width;
-      initialMoveY = moveY = 0;
-      moveX = -dims.width;
-      break;
-    case 'bottom-left':
-      initialMoveX = moveX = 0;
-      initialMoveY = dims.height;
-      moveY = -dims.height;
-      break;
-    case 'bottom-right':
-      initialMoveX = dims.width;
-      initialMoveY = dims.height;
-      moveX = -dims.width;
-      moveY = -dims.height;
-      break;
-    case 'center':
-      initialMoveX = dims.width / 2;
-      initialMoveY = dims.height / 2;
-      moveX = -dims.width / 2;
-      moveY = -dims.height / 2;
-      break;
-  }
-
-  return new Effect.Move(element, {
-    x: initialMoveX,
-    y: initialMoveY,
-    duration: 0.01,
-    beforeSetup: function(effect) {
-      effect.element.hide().makeClipping().makePositioned();
-    },
-    afterFinishInternal: function(effect) {
-      new Effect.Parallel(
-        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }),
-          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),
-          new Effect.Scale(effect.element, 100, {
-            scaleMode: { originalHeight: dims.height, originalWidth: dims.width },
-            sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})
-        ], Object.extend({
-             beforeSetup: function(effect) {
-               effect.effects[0].element.setStyle({height: '0px'}).show();
-             },
-             afterFinishInternal: function(effect) {
-               effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);
-             }
-           }, options)
-      );
-    }
-  });
-};
-
-Effect.Shrink = function(element) {
-  element = $(element);
-  var options = Object.extend({
-    direction: 'center',
-    moveTransition: Effect.Transitions.sinoidal,
-    scaleTransition: Effect.Transitions.sinoidal,
-    opacityTransition: Effect.Transitions.none
-  }, arguments[1] || { });
-  var oldStyle = {
-    top: element.style.top,
-    left: element.style.left,
-    height: element.style.height,
-    width: element.style.width,
-    opacity: element.getInlineOpacity() };
-
-  var dims = element.getDimensions();
-  var moveX, moveY;
-
-  switch (options.direction) {
-    case 'top-left':
-      moveX = moveY = 0;
-      break;
-    case 'top-right':
-      moveX = dims.width;
-      moveY = 0;
-      break;
-    case 'bottom-left':
-      moveX = 0;
-      moveY = dims.height;
-      break;
-    case 'bottom-right':
-      moveX = dims.width;
-      moveY = dims.height;
-      break;
-    case 'center':
-      moveX = dims.width / 2;
-      moveY = dims.height / 2;
-      break;
-  }
-
-  return new Effect.Parallel(
-    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),
-      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),
-      new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })
-    ], Object.extend({
-         beforeStartInternal: function(effect) {
-           effect.effects[0].element.makePositioned().makeClipping();
-         },
-         afterFinishInternal: function(effect) {
-           effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); }
-       }, options)
-  );
-};
-
-Effect.Pulsate = function(element) {
-  element = $(element);
-  var options    = arguments[1] || { },
-    oldOpacity = element.getInlineOpacity(),
-    transition = options.transition || Effect.Transitions.linear,
-    reverser   = function(pos){
-      return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5);
-    };
-
-  return new Effect.Opacity(element,
-    Object.extend(Object.extend({  duration: 2.0, from: 0,
-      afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); }
-    }, options), {transition: reverser}));
-};
-
-Effect.Fold = function(element) {
-  element = $(element);
-  var oldStyle = {
-    top: element.style.top,
-    left: element.style.left,
-    width: element.style.width,
-    height: element.style.height };
-  element.makeClipping();
-  return new Effect.Scale(element, 5, Object.extend({
-    scaleContent: false,
-    scaleX: false,
-    afterFinishInternal: function(effect) {
-    new Effect.Scale(element, 1, {
-      scaleContent: false,
-      scaleY: false,
-      afterFinishInternal: function(effect) {
-        effect.element.hide().undoClipping().setStyle(oldStyle);
-      } });
-  }}, arguments[1] || { }));
-};
-
-Effect.Morph = Class.create(Effect.Base, {
-  initialize: function(element) {
-    this.element = $(element);
-    if (!this.element) throw(Effect._elementDoesNotExistError);
-    var options = Object.extend({
-      style: { }
-    }, arguments[1] || { });
-
-    if (!Object.isString(options.style)) this.style = $H(options.style);
-    else {
-      if (options.style.include(':'))
-        this.style = options.style.parseStyle();
-      else {
-        this.element.addClassName(options.style);
-        this.style = $H(this.element.getStyles());
-        this.element.removeClassName(options.style);
-        var css = this.element.getStyles();
-        this.style = this.style.reject(function(style) {
-          return style.value == css[style.key];
-        });
-        options.afterFinishInternal = function(effect) {
-          effect.element.addClassName(effect.options.style);
-          effect.transforms.each(function(transform) {
-            effect.element.style[transform.style] = '';
-          });
-        };
-      }
-    }
-    this.start(options);
-  },
-
-  setup: function(){
-    function parseColor(color){
-      if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff';
-      color = color.parseColor();
-      return $R(0,2).map(function(i){
-        return parseInt( color.slice(i*2+1,i*2+3), 16 );
-      });
-    }
-    this.transforms = this.style.map(function(pair){
-      var property = pair[0], value = pair[1], unit = null;
-
-      if (value.parseColor('#zzzzzz') != '#zzzzzz') {
-        value = value.parseColor();
-        unit  = 'color';
-      } else if (property == 'opacity') {
-        value = parseFloat(value);
-        if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
-          this.element.setStyle({zoom: 1});
-      } else if (Element.CSS_LENGTH.test(value)) {
-          var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/);
-          value = parseFloat(components[1]);
-          unit = (components.length == 3) ? components[2] : null;
-      }
-
-      var originalValue = this.element.getStyle(property);
-      return {
-        style: property.camelize(),
-        originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0),
-        targetValue: unit=='color' ? parseColor(value) : value,
-        unit: unit
-      };
-    }.bind(this)).reject(function(transform){
-      return (
-        (transform.originalValue == transform.targetValue) ||
-        (
-          transform.unit != 'color' &&
-          (isNaN(transform.originalValue) || isNaN(transform.targetValue))
-        )
-      );
-    });
-  },
-  update: function(position) {
-    var style = { }, transform, i = this.transforms.length;
-    while(i--)
-      style[(transform = this.transforms[i]).style] =
-        transform.unit=='color' ? '#'+
-          (Math.round(transform.originalValue[0]+
-            (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() +
-          (Math.round(transform.originalValue[1]+
-            (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() +
-          (Math.round(transform.originalValue[2]+
-            (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() :
-        (transform.originalValue +
-          (transform.targetValue - transform.originalValue) * position).toFixed(3) +
-            (transform.unit === null ? '' : transform.unit);
-    this.element.setStyle(style, true);
-  }
-});
-
-Effect.Transform = Class.create({
-  initialize: function(tracks){
-    this.tracks  = [];
-    this.options = arguments[1] || { };
-    this.addTracks(tracks);
-  },
-  addTracks: function(tracks){
-    tracks.each(function(track){
-      track = $H(track);
-      var data = track.values().first();
-      this.tracks.push($H({
-        ids:     track.keys().first(),
-        effect:  Effect.Morph,
-        options: { style: data }
-      }));
-    }.bind(this));
-    return this;
-  },
-  play: function(){
-    return new Effect.Parallel(
-      this.tracks.map(function(track){
-        var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options');
-        var elements = [$(ids) || $$(ids)].flatten();
-        return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) });
-      }).flatten(),
-      this.options
-    );
-  }
-});
-
-Element.CSS_PROPERTIES = $w(
-  'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' +
-  'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +
-  'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +
-  'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +
-  'fontSize fontWeight height left letterSpacing lineHeight ' +
-  'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+
-  'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +
-  'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +
-  'right textIndent top width wordSpacing zIndex');
-
-Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;
-
-String.__parseStyleElement = document.createElement('div');
-String.prototype.parseStyle = function(){
-  var style, styleRules = $H();
-  if (Prototype.Browser.WebKit)
-    style = new Element('div',{style:this}).style;
-  else {
-    String.__parseStyleElement.innerHTML = '<div style="' + this + '"></div>';
-    style = String.__parseStyleElement.childNodes[0].style;
-  }
-
-  Element.CSS_PROPERTIES.each(function(property){
-    if (style[property]) styleRules.set(property, style[property]);
-  });
-
-  if (Prototype.Browser.IE && this.include('opacity'))
-    styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);
-
-  return styleRules;
-};
-
-if (document.defaultView && document.defaultView.getComputedStyle) {
-  Element.getStyles = function(element) {
-    var css = document.defaultView.getComputedStyle($(element), null);
-    return Element.CSS_PROPERTIES.inject({ }, function(styles, property) {
-      styles[property] = css[property];
-      return styles;
-    });
-  };
-} else {
-  Element.getStyles = function(element) {
-    element = $(element);
-    var css = element.currentStyle, styles;
-    styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) {
-      results[property] = css[property];
-      return results;
-    });
-    if (!styles.opacity) styles.opacity = element.getOpacity();
-    return styles;
-  };
-}
-
-Effect.Methods = {
-  morph: function(element, style) {
-    element = $(element);
-    new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { }));
-    return element;
-  },
-  visualEffect: function(element, effect, options) {
-    element = $(element);
-    var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1);
-    new Effect[klass](element, options);
-    return element;
-  },
-  highlight: function(element, options) {
-    element = $(element);
-    new Effect.Highlight(element, options);
-    return element;
-  }
-};
-
-$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+
-  'pulsate shake puff squish switchOff dropOut').each(
-  function(effect) {
-    Effect.Methods[effect] = function(element, options){
-      element = $(element);
-      Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options);
-      return element;
-    };
-  }
-);
-
-$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(
-  function(f) { Effect.Methods[f] = Element[f]; }
-);
-
-Element.addMethods(Effect.Methods);
\ No newline at end of file
diff --git a/apps/maarch_entreprise/js/functions.js b/apps/maarch_entreprise/js/functions.js
deleted file mode 100755
index 7da3be77fb3..00000000000
--- a/apps/maarch_entreprise/js/functions.js
+++ /dev/null
@@ -1,2396 +0,0 @@
-var isAlreadyClick = false;
-
-page_result_final = '';
-
-function whatIsTheDivStatus(theDiv, divStatus) {
-    if ($j('#' + theDiv).css('display') == 'none') {
-        $j('#' + divStatus).html('<i class="fa fa-minus-square"></i>');
-    } else {
-        $j('#' + divStatus).html('<i class="fa fa-plus-square"></i>');
-    }
-}
-
-function repost(php_file, update_divs, fields, action, timeout) {
-    var event_count = 0;
-
-    //Observe fields
-    for (var i = 0; i < fields.length; ++i) {
-        $(fields[i]).observe(action, send);
-    }
-
-    function send(event) {
-        var params = '';
-        event_count++;
-
-        for (var i = 0; i < fields.length; ++i) {
-            params += $(fields[i]).serialize() + '&';
-        }
-
-        setTimeout(function () {
-            event_count--;
-
-            if (event_count == 0)
-                new Ajax.Request(php_file, {
-                    method: 'post',
-                    onSuccess: function (transport) {
-
-                        var response = transport.responseText;
-                        var reponse_div = new Element("div");
-                        reponse_div.innerHTML = response;
-                        var replace_div = reponse_div.select('div');
-
-                        for (var i = 0; i < replace_div.length; ++i)
-                            for (var j = 0; j < update_divs.length; ++j) {
-                                if (replace_div[i].id == update_divs[j])
-                                    $(update_divs[j]).replace(replace_div[i]);
-                            }
-                    },
-                    onFailure: function () {
-                        alert('Something went wrong...');
-                    },
-                    parameters: params
-                });
-        }, timeout);
-    }
-}
-
-/**
- * List used for autocompletion
- *
- */
-var initList = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv) {
-    new Ajax.Autocompleter(
-        idField,
-        idList,
-        theUrlToListScript, {
-            paramName: paramNameSrv,
-            minChars: minCharsSrv
-        });
-};
-
-/**
- * List used for autocompletion and set id in hidden input
- *
- */
-var initList_hidden_input = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv, new_value) {
-    new Ajax.Autocompleter(
-        idField,
-        idList,
-        theUrlToListScript, {
-            paramName: paramNameSrv,
-            minChars: minCharsSrv,
-            afterUpdateElement: function (text, li) {
-                $j('#' + new_value).val(li.id);
-            }
-        });
-};
-
-
-/*********** Init vars for the calendar ****************/
-var allMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-var allNameOfWeekDays = ["Lu", "Ma", "Me", "Je", "Ve", "Sa", "Di"];
-var allNameOfMonths = ["Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre"];
-var newDate = new Date();
-var yearZero = newDate.getFullYear();
-var monthZero = newDate.getMonth();
-var day = newDate.getDate();
-var currentDay = 0,
-    currentDayZero = 0;
-var month = monthZero,
-    year = yearZero;
-var yearMin = 1910,
-    yearMax = 2060;
-var target = '';
-var hoverEle = false;
-/***************************************
-
-/***********Functions used by the calendar ****************/
-function setTarget(e) {
-    if (e) return e.target;
-    if (event) return event.srcElement;
-}
-
-function newElement(type, attrs, content, toNode) {
-    var ele = document.createElement(type);
-
-    if (attrs) {
-        for (var i = 0; i < attrs.length; i++) {
-            eval('ele.' + attrs[i][0] + (attrs[i][2] ? '=\u0027' : '=') + attrs[i][1] + (attrs[i][2] ? '\u0027' : ''));
-        }
-    }
-    if (content) ele.appendChild(document.createTextNode(content));
-    if (toNode) toNode.appendChild(ele);
-    return ele;
-}
-
-function setMonth(ele) {
-    month = parseInt(ele.value);
-    calender()
-}
-
-function setYear(ele) {
-    year = parseInt(ele.value);
-    calender()
-}
-
-function setValue(ele) {
-    if (ele.parentNode.className == 'week' && ele.firstChild) {
-        var dayOut = ele.firstChild.nodeValue;
-        if (dayOut < 10) dayOut = '0' + dayOut;
-        var monthOut = month + 1;
-        if (monthOut < 10) monthOut = '0' + monthOut;
-        target.value = dayOut + '-' + monthOut + '-' + year;
-
-        target.focus();
-        removeCalender();
-    }
-}
-
-function removeCalender() {
-    var parentEle = $("calender");
-    while (parentEle.firstChild) parentEle.removeChild(parentEle.firstChild);
-    $('basis').parentNode.removeChild($('basis'));
-}
-
-function calender() {
-    var parentEle = $("calender");
-    parentEle.onmouseover = function (e) {
-        var ele = setTarget(e);
-        if (ele.parentNode.className == 'week' && ele.firstChild && ele != hoverEle) {
-            if (hoverEle) hoverEle.className = hoverEle.className.replace(/hoverEle ?/, '');
-            hoverEle = ele;
-            ele.className = 'hoverEle ' + ele.className;
-        } else {
-            if (hoverEle) {
-                hoverEle.className = hoverEle.className.replace(/hoverEle ?/, '');
-                hoverEle = false;
-            }
-        }
-    };
-    while (parentEle.firstChild) parentEle.removeChild(parentEle.firstChild);
-
-    function check() {
-        if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) allMonth[1] = 29;
-        else allMonth[1] = 28;
-    }
-
-    function addClass(name) {
-        if (!currentClass) {
-            currentClass = name
-        } else {
-            currentClass += ' ' + name
-        }
-    };
-    if (month < 0) {
-        month += 12;
-        year -= 1
-    }
-    if (month > 11) {
-        month -= 12;
-        year += 1
-    }
-    if (year == yearMax - 1) yearMax += 1;
-    if (year == yearMin) yearMin -= 1;
-    check();
-    var close_window = newElement('p', [
-        ['id', 'close', 1]
-    ], false, parentEle);
-
-    var close_link = newElement('a', [
-        ['href', 'javascript:removeCalender()', 1],
-        ['className', 'close_window', 1]
-    ], 'Fermer', close_window);
-    var img_close = newElement('img', [
-        ['src', 'img/close_small.gif', 1],
-        ['id', 'img_close', 1]
-    ], false, close_link);
-    var control = newElement('p', [
-        ['id', 'control', 1]
-    ], false, parentEle);
-    var controlPlus = newElement('a', [
-        ['href', 'javascript:month=month-1;calender()', 1],
-        ['className', 'controlPlus', 1]
-    ], '<', control);
-    var select = newElement('select', [
-        ['onchange', function () {
-            setMonth(this)
-        }]
-    ], false, control);
-    for (var i = 0; i < allNameOfMonths.length; i++) newElement('option', [
-        ['value', i, 1]
-    ], allNameOfMonths[i], select);
-    select.selectedIndex = month;
-    select = newElement('select', [
-        ['onchange', function () {
-            setYear(this)
-        }]
-    ], false, control);
-    for (var i = yearMin; i < yearMax; i++) newElement('option', [
-        ['value', i, 1]
-    ], i, select);
-    select.selectedIndex = year - yearMin;
-    controlPlus = newElement('a', [
-        ['href', 'javascript:month++;calender()', 1],
-        ['className', 'controlPlus', 1]
-    ], '>', control);
-    check();
-    currentDay = 1 - new Date(year, month, 1).getDay();
-    if (currentDay > 0) currentDay -= 7;
-    currentDayZero = currentDay;
-    var newMonth = newElement('table', [
-        ['cellSpacing', 0, 1],
-        ['onclick', function (e) {
-            setValue(setTarget(e))
-        }]
-    ], false, parentEle);
-    var newMonthBody = newElement('tbody', false, false, newMonth);
-    var tr = newElement('tr', [
-        ['className', 'head', 1]
-    ], false, newMonthBody);
-    tr = newElement('tr', [
-        ['className', 'weekdays', 1]
-    ], false, newMonthBody);
-    for (i = 0; i < 7; i++) td = newElement('td', false, allNameOfWeekDays[i], tr);
-    tr = newElement('tr', [
-        ['className', 'week', 1]
-    ], false, newMonthBody);
-    for (i = 0; i < allMonth[month] - currentDayZero; i++) {
-        var currentClass = false;
-        currentDay++;
-        if (currentDay == day && month == monthZero && year == yearZero) addClass('today');
-        if (currentDay <= 0) {
-            if (currentDayZero != -7) td = newElement('td', false, false, tr);
-        } else {
-            if ((currentDay - currentDayZero) % 7 == 0) addClass('holiday');
-            td = newElement('td', (!currentClass ? false : [
-                ['className', currentClass, 1]
-            ]), currentDay, tr);
-            if ((currentDay - currentDayZero) % 7 == 0) tr = newElement('tr', [
-                ['className', 'week', 1]
-            ], false, newMonthBody);
-        }
-        if (i == allMonth[month] - currentDayZero - 1) {
-            i++;
-            while (i % 7 != 0) {
-                i++;
-                td = newElement('td', false, false, tr)
-            };
-        }
-    }
-
-}
-
-function showCalender(ele) {
-    if ($j('#basis')[0]) {
-        removeCalender()
-    } else {
-        target = $(ele.id.replace(/for_/, ''));
-        var basis = ele.parentNode.insertBefore(document.createElement('div'), ele);
-        basis.id = 'basis';
-        newElement('div', [
-            ['id', 'calender', 1]
-        ], false, basis);
-        calender();
-    }
-}
-
-
-if (!window.Node) {
-    var Node = {
-        ELEMENT_NODE: 1,
-        TEXT_NODE: 3
-    };
-}
-
-function checkNode(node, filter) {
-    return (filter == null || node.nodeType == Node[filter] || node.nodeName.toUpperCase() == filter.toUpperCase());
-}
-
-function getChildren(node, filter) {
-    var result = new Array();
-    if (node != null) {
-        var children = node.childNodes;
-        for (var i = 0; i < children.length; i++) {
-            if (checkNode(children[i], filter)) result[result.length] = children[i];
-        }
-    }
-    return result;
-}
-
-function getChildrenByElement(node) {
-    return getChildren(node, "ELEMENT_NODE");
-}
-
-function getFirstChild(node, filter) {
-    var child;
-    var children = node.childNodes;
-    for (var i = 0; i < children.length; i++) {
-        child = children[i];
-        if (checkNode(child, filter)) return child;
-    }
-    return null;
-}
-
-function getFirstChildByText(node) {
-    return getFirstChild(node, "TEXT_NODE");
-}
-
-function getNextSibling(node, filter) {
-    for (var sibling = node.nextSibling; sibling != null; sibling = sibling.nextSibling) {
-        if (checkNode(sibling, filter)) return sibling;
-    }
-    return null;
-}
-
-function getNextSiblingByElement(node) {
-    return getNextSibling(node, "ELEMENT_NODE");
-}
-/****************************************/
-
-
-/********** Menu Functions & Properties   ******************/
-
-var activeMenu = null;
-
-function showMenu() {
-    if (activeMenu) {
-        activeMenu.className = "";
-        getNextSiblingByElement(activeMenu).style.display = "none";
-    }
-    if (this == activeMenu) {
-        activeMenu = null;
-    } else {
-        this.className = "on";
-        getNextSiblingByElement(this).style.display = "block";
-        activeMenu = this;
-    }
-    return false;
-}
-
-function initMenu() {
-    var menus, menu, text, aRef, i;
-    if ($("menu")) {
-        menus = getChildrenByElement($("menu"));
-        for (i = 0; i < menus.length; i++) {
-            menu = menus[i];
-            text = getFirstChildByText(menu);
-            aRef = document.createElement("a");
-            if (aRef == null) {
-                menu.replaceChild(aRef, text);
-                aRef.appendChild(text);
-                aRef.href = "#";
-                aRef.onclick = showMenu;
-                aRef.onfocus = function () {
-                    this.blur()
-                };
-            }
-        }
-    }
-}
-
-if (document.createElement) window.onload = initMenu;
-
-/************** Fonction utilisées pour la gestion des listes multiples  ***********/
-
-/**
- * Move item(s) from a multiple list to another
- *
- * @param  list1 Select Object Source list
- * @param  list2 Select Object Destination list
- */
-function Move(list1, list2) {
-    for (i = 0; i < list1.length; i++) {
-        if (list1[i].selected) {
-            o = new Option(list1.options[list1.options.selectedIndex].text, list1.options[list1.options.selectedIndex].value, false, true);
-            list2.options[list2.options.length] = o;
-            list1.options[list1.options.selectedIndex] = null;
-            i--;
-        }
-    }
-}
-
-/**
- * Move an item from a multiple list to another
- *
- * @param  list1 Select Object Source list
- * @param  list2 Select Object Destination list
- */
-function moveclick(list1, list2) {
-    o = new Option(list1.options[list1.options.selectedIndex].text, list1.options[list1.options.selectedIndex].value, false, true);
-    list2.options[list2.options.length] = o;
-    list1.options[list1.options.selectedIndex] = null;
-}
-
-/**
- * Select all items from a multiple list
- *
- * @param  list Select Object Source list
- */
-function selectall(list) {
-    for (i = 0; i < list.length; i++) {
-        list[i].selected = true;
-    }
-}
-
-/**
- * Move an item from a multiple list to another
- *
- * @param  list1 Select identifier of the Source list
- * @param  list2 Select identifier of the Destination list
- */
-function moveclick_ext(id_list1, id_list2) {
-    var list1 = $(id_list1);
-    var list2 = $(id_list2);
-
-    if (list1.options.length == 1 && list1.options[0].value == '') {
-        return;
-    }
-    moveclick(list1, list2);
-}
-
-/**
- * Select all items from a multiple list
- *
- * @param  list Select identifier of the Source list
- */
-function selectall_ext(id_list) {
-    var list = $(id_list);
-    selectall(list);
-}
-
-/**
- * Move item(s) from a multiple list to another
- *
- * @param  list1 Select identifier of the Source list
- * @param  list2 Select identifier of the Destination list
- */
-function Move_ext(id_list1, id_list2) {
-    var list1 = $(id_list1);
-    var list2 = $(id_list2);
-
-    if (list1.options.length == 1 && list1.options[0].value == '') {
-        return;
-    }
-    Move(list1, list2);
-}
-/*********************************************************/
-
-
-var BrowserDetect = {
-    init: function () {
-        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
-        this.version = this.searchVersion(navigator.userAgent) ||
-            this.searchVersion(navigator.appVersion) ||
-            "an unknown version";
-        this.OS = this.searchString(this.dataOS) || "an unknown OS";
-    },
-    searchString: function (data) {
-        for (var i = 0; i < data.length; i++) {
-            var dataString = data[i].string;
-            var dataProp = data[i].prop;
-            this.versionSearchString = data[i].versionSearch || data[i].identity;
-            if (dataString) {
-                if (dataString.indexOf(data[i].subString) != -1)
-                    return data[i].identity;
-            } else if (dataProp)
-                return data[i].identity;
-        }
-    },
-    searchVersion: function (dataString) {
-        var index = dataString.indexOf(this.versionSearchString);
-        if (index == -1) return;
-        return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
-    },
-    dataBrowser: [{
-            string: navigator.userAgent,
-            subString: "Chrome",
-            identity: "Chrome"
-        },
-        {
-            string: navigator.userAgent,
-            subString: "OmniWeb",
-            versionSearch: "OmniWeb/",
-            identity: "OmniWeb"
-        },
-        {
-            string: navigator.vendor,
-            subString: "Apple",
-            identity: "Safari",
-            versionSearch: "Version"
-        },
-        {
-            prop: window.opera,
-            identity: "Opera"
-        },
-        {
-            string: navigator.vendor,
-            subString: "iCab",
-            identity: "iCab"
-        },
-        {
-            string: navigator.vendor,
-            subString: "KDE",
-            identity: "Konqueror"
-        },
-        {
-            string: navigator.userAgent,
-            subString: "Firefox",
-            identity: "Firefox"
-        },
-        {
-            string: navigator.vendor,
-            subString: "Camino",
-            identity: "Camino"
-        },
-        { // for newer Netscapes (6+)
-            string: navigator.userAgent,
-            subString: "Netscape",
-            identity: "Netscape"
-        },
-        {
-            string: navigator.userAgent,
-            subString: "MSIE",
-            identity: "Explorer",
-            versionSearch: "MSIE"
-        },
-        {
-            string: navigator.userAgent,
-            subString: "Gecko",
-            identity: "Mozilla",
-            versionSearch: "rv"
-        },
-        { // for older Netscapes (4-)
-            string: navigator.userAgent,
-            subString: "Mozilla",
-            identity: "Netscape",
-            versionSearch: "Mozilla"
-        }
-    ],
-    dataOS: [{
-            string: navigator.platform,
-            subString: "Win",
-            identity: "Windows"
-        },
-        {
-            string: navigator.platform,
-            subString: "Mac",
-            identity: "Mac"
-        },
-        {
-            string: navigator.userAgent,
-            subString: "iPhone",
-            identity: "iPhone/iPod"
-        },
-        {
-            string: navigator.platform,
-            subString: "Linux",
-            identity: "Linux"
-        }
-    ]
-
-};
-
-BrowserDetect.init();
-
-/*************** Tabs functions *****************/
-
-function opentab(eleframe, url) {
-    var eleframe1 = $(eleframe);
-    eleframe1.src = url;
-}
-
-/********************************/
-
-/*************** Modal functions *****************/
-
-function displayModal(url, id_mod, height, width, mode_frm) {
-    new Ajax.Request(url, {
-        method: 'post',
-        parameters: {},
-        onSuccess: function (answer) {
-            createModal(answer.responseText, id_mod, height, width, mode_frm);
-        },
-        onFailure: function () {}
-    });
-}
-
-/**
- * Create a modal window
- *
- * @param txt String Text of the modal (innerHTML)
- * @param id_mod String Modal identifier
- * @param height String Modal Height in px
- * @param width String Modal width in px
- * @param mode_frm String Modal mode : fullscreen or ''
- * @param iframe_container_id Iframe container if function is called in a frame : id_frame or ''
- */
-function createModal(txt, id_mod, height, width, mode_frm, iframe_container_id) {
-    if (height == undefined || height == '') {
-        height = '100px';
-    }
-    if (width == undefined || width == '') {
-        width = '400px';
-    }
-    if (iframe_container_id == undefined || iframe_container_id == '') {
-        iframe_container_id = '';
-    }
-    if (mode_frm == 'fullscreen') {
-        width = (screen.availWidth) + 'px';
-        height = (screen.availHeight) + 'px';
-    }
-
-    if (id_mod && id_mod != '') {
-        id_layer = id_mod + '_layer';
-    } else {
-        id_mod = 'modal';
-        id_layer = 'lb1-layer';
-    }
-    var tmp_width = width;
-    var tmp_height = height;
-
-    //aor : ne prend pas toute la hauteur de la fenetre (certain bouton peuvent etre accessible!)
-    //var layer_height = $('container').clientHeight;
-    var layer_height = document.body.clientHeight;
-
-    //lgi : à quoi cela sert ?
-    /*if(layer_height < $('container').scrollHeight)
-    {
-        layer_height = 5 * layer_height;
-    }
-    else if(layer_height = $('container').scrollHeight)
-    {
-        layer_height = 2 * layer_height;
-    }*/
-    //lgi
-    var layer_width = document.getElementsByTagName('html')[0].offsetWidth - 5;
-    var layer = new Element('div', {
-        'id': id_layer,
-        'class': 'lb1-layer',
-        'style': "display:block;filter:alpha(opacity=70);opacity:.70;z-index:" + get_z_indexes()['layer'] + ';width :' + (layer_width) + "px;height:" + layer_height + 'px;'
-    });
-
-
-    if (mode_frm == 'fullscreen') {
-        var fenetre = new Element('div', {
-            'id': id_mod,
-            'class': 'modal',
-            'style': 'top:0px;left:0px;width:' + width + ';height:' + height + ";z-index:" + get_z_indexes()['modal'] + ";position:absolute;"
-        });
-    } else {
-        var fenetre = new Element('div', {
-            'id': id_mod,
-            'class': 'modal',
-            'style': 'top:0px;left:0px;' + 'width:' + width + ';height:' + height + ";z-index:" + get_z_indexes()['modal'] + ";margin-top:0px;margin-left:0px;position:absolute;"
-        });
-    }
-
-    if (iframe_container_id != '') {
-        var iframe_container = document.getElementById(iframe_container_id);
-        Element.insert(iframe_container.contentWindow.document.body, layer);
-        Element.insert(iframe_container.contentWindow.document.body, fenetre);
-    } else {
-
-        Element.insert(document.body, layer);
-        Element.insert(document.body, fenetre);
-    }
-
-    if (mode_frm == 'fullscreen') {
-        navName = BrowserDetect.browser;
-        if (navName == 'Explorer') {
-            if (width == '1080px') {
-                fenetre.style.width = (document.getElementsByTagName('html')[0].offsetWidth - 55) + "px";
-            }
-        } else {
-            fenetre.style.width = (document.getElementsByTagName('html')[0].offsetWidth - 30) + "px";
-        }
-        fenetre.style.height = (document.getElementsByTagName('body')[0].offsetHeight - 20) + "px";
-    }
-
-    Element.update(fenetre, txt);
-    Event.observe(layer, 'mousewheel', function (event) {
-        Event.stop(event);
-    }.bindAsEventListener(), true);
-    Event.observe(layer, 'DOMMouseScroll', function (event) {
-        Event.stop(event);
-    }.bindAsEventListener(), false);
-    $(id_mod).focus();
-    $j("input[type='button']").prop("disabled", false).css("opacity", "1");
-}
-
-/**
- * Destroy a modal window
- *
- * @param id_mod String Modal identifier
- */
-function destroyModal(id_mod) {
-    if ($j('#divList')) {
-        $j('#divList').css("display", "block");
-    }
-    if (id_mod == undefined || id_mod == '') {
-        id_mod = 'modal';
-        id_layer = 'lb1-layer';
-    } else {
-        id_layer = id_mod + '_layer';
-    }
-    if (isAlreadyClick) {
-        isAlreadyClick = false;
-    }
-    document.getElementsByTagName('body')[0].removeChild($j("#" + id_mod)[0]);
-    document.getElementsByTagName('body')[0].removeChild($j("#" + id_layer)[0]);
-    $j("input[type='button']").prop("disabled", false).css("opacity", "1");
-    $j('body', window.top.window.document).css("overflow", "auto");
-
-    // FIX IE 11
-    if ($j('#leftPanelShowDocumentIframe')) {
-        $j('#leftPanelShowDocumentIframe').show();
-    }
-    if ($j('#rightPanelShowDocumentIframe')) {
-        $j('#rightPanelShowDocumentIframe').show();
-    }
-}
-
-/**
- * Calculs the z indexes for a modal
- *
- * @return array The z indexes of the layer and the modal
- */
-function get_z_indexes() {
-
-    var elem = document.getElementsByClassName('modal');
-    if (elem == undefined || elem == NaN) {
-        return {
-            layer: 995,
-            modal: 1000
-        };
-    } else {
-        var max_modal = 1000;
-        for (var i = 0; i < elem.length; i++) {
-            if (elem[i].style.zIndex >= max_modal) {
-                max_modal = elem[i].style.zIndex;
-            }
-        }
-        max_layer = max_modal + 5;
-        max_modal = max_modal + 10;
-
-        return {
-            layer: max_layer,
-            modal: max_modal
-        };
-    }
-}
-
-/***********************************************************************/
-
-/*************** Actions management functions and vars *****************/
-
-/**
- * Pile of the actions to be executed
- * Object
- */
-var pile_actions = {
-    values: [],
-    action_push: function (val) {
-        this.values.push(val);
-    },
-    action_pop: function () {
-        return this.values.pop();
-    }
-};
-var res_ids = '';
-var do_nothing = false;
-
-var actions_status = {
-    values: [],
-    action_push: function (val) {
-        this.values.push(val);
-    },
-    action_pop: function () {
-        return this.values.pop();
-    }
-};
-/**
- * Executes the last actions in the actions pile
- *
- */
-function end_actions() {
-    var req_action = pile_actions.action_pop();
-    if (req_action) {
-        if (req_action.match('to_define')) {
-            req_action = req_action.replace('to_define', res_ids);
-            do_nothing = true;
-        }
-        try {
-            eval(req_action);
-        } catch (e) {
-            alert('Error during pop action : ' + req_action);
-        }
-    }
-
-}
-
-/**
- * If the action has open a modal, destroy the action modal, and if this is the last action of the pile, reload the opener window
- *
- */
-function close_action(id_action, page, path_manage_script, mode_req, res_id_values, tablename, id_coll) {
-    var modal = $('modal_' + id_action);
-    if (modal) {
-        destroyModal('modal_' + id_action);
-    }
-    if (pile_actions.values.length == 0) {
-        if (actions_status.values.length > 0) {
-            var status = actions_status.values[actions_status.values.length - 1];
-            action_done = action_change_status(path_manage_script, mode_req, res_id_values, tablename, id_coll, status, page);
-            if (typeof window['angularSignatureBookComponent'] != "undefined") {
-                actions_status.values = [];
-            }
-        } else {
-            if (page != '' && page != NaN && page && page != null) {
-                if (typeof window['angularSignatureBookComponent'] != "undefined") {
-                    // window.angularSignatureBookComponent.componentAfterAction();
-                } else {
-                    do_nothing = false;
-                    window.top.location.href = page;
-                }
-
-            } else if (do_nothing == false) {
-                if (typeof window['angularSignatureBookComponent'] != "undefined") {
-                    // window.angularSignatureBookComponent.componentAfterAction();
-                } else {
-                    window.top.location.hash = "";
-                    window.top.location.reload();
-                }
-
-
-            }
-            do_nothing = false;
-        }
-
-    }
-}
-
-/**
- * Sends the first ajax request to create a form or resolve a simple action
- *
- * @param path_manage_script String  Path to the php script called in the Ajax object
- * @param mode_req String Action mode : mass or page
- * @param id_action String  Action identifier
- * @param res_id_values String  Action do something on theses items listed in this string
- * @param tablename String  Table used for the action
- * @param modulename String  Action is this module
- * @param id_coll String  Collection identifier
- */
-function action_send_first_request(path_manage_script, mode_req, id_action, res_id_values, tablename, modulename, id_coll) {
-    if (id_action == undefined || id_action == null || id_action == '') {
-        window.top.$('main_error').innerHTML = arr_msg_error['choose_action'];
-    }
-    if (res_id_values == undefined || res_id_values == null || res_id_values == '') {
-        window.top.$('main_error').innerHTML += '<br/>' + arr_msg_error['choose_one_doc'];
-    }
-
-    if (res_id_values != '' && id_action != '' && tablename != '' && modulename != '' && id_coll != '' && (mode_req == 'page' || mode_req == 'mass')) {
-
-        $j.ajax({
-            url: path_manage_script,
-            //dataType: "json",
-            type: 'POST',
-            data: {
-                values: res_id_values,
-                action_id: id_action,
-                mode: mode_req,
-                req: 'first_request',
-                table: tablename,
-                coll_id: id_coll,
-                module: modulename
-            },
-            beforeSend: function () {
-                //show loading image in toolbar
-                $j("input[type='button']").prop("disabled", true).css("opacity", "0.5");
-
-            },
-            success: function (answer) {
-                eval("response = " + answer);
-
-                if (response.status == 0) {
-                    var page_result = response.page_result;
-
-                    if (response.action_status != '' && response.action_status != 'NONE') {
-                        actions_status.action_push(response.action_status);
-                    }
-                    end_actions();
-                    if (response.newResultId != '') {
-                        res_id_values = response.newResultId;
-                    }
-                    close_action(id_action, page_result, path_manage_script, mode_req, res_id_values, tablename, id_coll);
-
-                } else if (response.status == 2) { // Confirm asked to the user
-                    var modal_txt = '<div class=h2_title>' + response.confirm_content + '</div>';
-                    modal_txt += '<p class="buttons">';
-                    modal_txt += '<input type="button" name="submit" id="submit" value="' + response.validate + '" class="button" onclick="if(response.action_status != \'\' && response.action_status != \'NONE\'){actions_status.action_push(response.action_status);}action_send_form_confirm_result( \'' + path_manage_script + '\', \'' + mode_req + '\',\'' + id_action + '\', \'' + res_id_values + '\', \'' + tablename + '\', \'' + modulename + '\', \'' + id_coll + '\', \'\', \'Y\');"/>';
-                    modal_txt += ' <input type="button" name="cancel" id="cancel" value="' + response.cancel + '" class="button" onclick="pile_actions.action_pop();destroyModal(\'modal_' + id_action + '\');"/></p>';
-                    window.top.createModal(modal_txt, 'modal_' + id_action, '150px', '300px');
-                } else if (response.status == 3) { // Form to fill by the user
-                    if (response.action_status != '' && response.action_status != 'NONE') {
-                        actions_status.action_push(response.action_status);
-                    }
-                    window.top.createModal(response.form_content, 'modal_' + id_action, response.height, response.width, response.mode_frm);
-                } else if (response.status == 4) { // Confirm asked to the user (for visa)
-                    var modal_txt = '<div class=h2_title>' + response.error + '</div>';
-                    modal_txt += '<p class="buttons">';
-                    modal_txt += '<input type="button" name="submit" id="submit" value="' + response.validate + '" class="button" onclick="destroyModal(\'modal_' + id_action + '\')"/>';
-                    window.top.createModal(modal_txt, 'modal_' + id_action, '100px', '300px');
-                } else { // Param errors
-                    if (console) {
-                        console.log('param error');
-                    } else {
-                        alert('param error');
-                    }
-                    //close_action(id_action,  page_result);
-                }
-
-                /*$('send_mass').disabled = false;
-                $('send_mass').style.opacity = "1";
-                $('send_mass').value = "Valider";*/
-            },
-            error: function () {
-                //alert('erreur');
-            }
-        });
-    }
-}
-
-/**
- * Sends the second ajax request to process a form
- *
- * @param path_manage_script String  Path to the php script called in the Ajax object
- * @param mode_req String Action mode : mass or page
- * @param id_action String  Action identifier
- * @param res_id_values String  Action do something on theses items listed in this string
- * @param tablename String  Table used for the action
- * @param modulename String  Action is this module
- * @param id_coll String  Collection identifier
- * @param values_new_form String  Values of the form to process
- */
-function action_send_form_confirm_result(path_manage_script, mode_req, id_action, res_id_values, tablename, modulename, id_coll, values_new_form, hist) {
-    if (res_id_values != '' && (mode_req == 'mass' || mode_req == 'page') &&
-        id_action != '' && tablename != '' &&
-        modulename != '' && id_coll != '') {
-
-        new Ajax.Request(path_manage_script, {
-            method: 'post',
-            parameters: {
-                values: res_id_values,
-                action_id: id_action,
-                mode: mode_req,
-                req: 'second_request',
-                table: tablename,
-                coll_id: id_coll,
-                module: modulename,
-                form_values: values_new_form,
-                hist: hist
-            },
-            onCreate: function (answer) {
-                //show loading image in toolbar
-                $j("input[type='button']").prop("disabled", true).css("opacity", "0.5");
-            },
-            onSuccess: function (answer) {
-                eval('response=' + answer.responseText);
-                if (response.status == 0) //Form or confirm processed ok
-                {
-                    /*res_ids = response.result_id;
-                    if(res_id_values == 'none' && res_ids != '')
-                    {
-                        res_id_values = res_ids;
-                    }
-                    end_actions();
-                    var table_name = tablename;
-                    if(response.table && response.table != '')
-                    {
-                        table_name = response.table;
-                    }
-                    var page_result = response.page_result;
-                    page_result_final = response.page_result;
-                    close_action(id_action, page_result, path_manage_script, mode_req, res_id_values, table_name, id_coll);*/
-                    var modal = $('modal_' + id_action);
-                    if (modal) {
-                        destroyModal('modal_' + id_action);
-                    }
-                    if (pile_actions.values.length > 0) {
-                        end_actions();
-                    } else {
-                        res_ids = response.result_id;
-                        if (res_id_values == 'none' && res_ids != '') {
-                            res_id_values = res_ids;
-                        }
-                        var table_name = tablename;
-                        if (response.table && response.table != '') {
-                            table_name = response.table;
-                        }
-                        var page_result = response.page_result;
-                        page_result_final = response.page_result;
-                        close_action(id_action, page_result, path_manage_script, mode_req, res_id_values, table_name, id_coll);
-                    }
-                } else //  Form Params errors
-                {
-                    try {
-                        $('frm_error').innerHTML = response.error_txt;
-                        $j("input[type='button']").prop("disabled", true).css("opacity", "0.5");
-                    } catch (e) {}
-                }
-            },
-            onFailure: function () {}
-        });
-    }
-}
-
-function action_change_status(path_manage_script, mode_req, res_id_values, tablename, id_coll, status, page) {
-    if (res_id_values != '' && (mode_req == 'mass' || mode_req == 'page') && tablename != '' && id_coll != '') {
-
-        $j.ajax({
-            cache: false,
-            url: path_manage_script,
-            type: 'POST',
-            data: {
-                values: res_id_values,
-                mode: mode_req,
-                req: 'change_status',
-                table: tablename,
-                coll_id: id_coll,
-                new_status: status
-            },
-            success: function (answer) {
-                // setTimeout(function(){
-                if (answer.status == 0) {
-                    actions_status.values = [];
-                    // Status changed
-                } else {
-                    try {
-                        $('frm_error').innerHTML = answer.error_txt;
-                    } catch (e) {}
-                }
-                if (page != '' && page != NaN && page && page != null) {
-                    do_nothing = false;
-                    window.top.location.href = page;
-
-                } else if (do_nothing == false) {
-
-                    var cur_url = window.top.location.href;
-                    if (cur_url.indexOf("&directLinkToAction") != -1) {
-                        if (typeof window['angularSignatureBookComponent'] != "undefined") {
-                            // window.angularSignatureBookComponent.componentAfterAction();
-                        } else {
-                            window.top.location = cur_url.replace("&directLinkToAction", "");
-                        }
-                    } else {
-                        if (typeof window['angularSignatureBookComponent'] != "undefined") {
-                            // window.angularSignatureBookComponent.componentAfterAction();
-                        } else {
-                            
-                            var arr = window.top.location.href.split('&');
-                            arr.shift();
-
-                            var urlV2Param = {
-                                moduleId : '',
-                                resId : '',
-                                userId : '',
-                                groupId : '',
-                                basket_id : '',
-                                basketId : '',
-                                actionId : '',
-                            }
-
-                            arr.forEach(element => {
-                                if (element == 'module=basket') {
-                                    urlV2Param.moduleId = element.split('=')[1];
-                                }
-                                if (element.indexOf('baskets=') > -1 ) {
-                                    urlV2Param.basket_id = element.split('=')[1];
-                                }                                
-                                if (element.indexOf('basketId=') > -1 ) {
-                                    urlV2Param.basketId = element.split('=')[1];
-                                }
-                                if (element.indexOf('resId=') > -1 ) {
-                                    urlV2Param.resId = element.split('=')[1];
-                                }
-                                if (element.indexOf('userId=') > -1 ) {
-                                    urlV2Param.userId = element.split('=')[1];
-                                }
-                                if (element.indexOf('groupIdSer=') > -1 ) {
-                                    urlV2Param.groupId = element.split('=')[1];
-                                }
-                                if (element.indexOf('defaultAction=') > -1 ) {
-                                    urlV2Param.actionId = element.split('=')[1];
-                                    urlV2Param.actionId = urlV2Param.actionId.split('#')[0];
-                                }
-                            });
-
-                            if (urlV2Param.basket_id.length > 0 && urlV2Param.moduleId.length > 0 && urlV2Param.resId.length > 0 && urlV2Param.userId.length > 0 &&  urlV2Param.groupId.length > 0 && urlV2Param.basketId.length > 0 && urlV2Param.actionId.length > 0) {
-                                triggerAngular('#/basketList/users/'+urlV2Param.userId+'/groups/'+urlV2Param.groupId+'/baskets/' + urlV2Param.basketId);
-                            } else {
-                                window.top.location.hash = "";
-                                window.top.location.reload();
-                            }
-                            
-                        }
-                    }
-                }
-
-                // fix for Chrome and firefox
-                if (page_result_final != '') {
-                    window.top.location.href = page_result_final;
-                }
-
-                do_nothing = false;
-                // }, 200);
-            }
-        });
-    }
-    return true;
-}
-/***********************************************************************/
-
-
-/*************** Xml management functions : used with tiny_mce to load mapping_file *****************/
-
-/**
- * Resize the current window
- *
- * @param x Integer  X size
- * @param y Integer  Y size
- */
-function resize(x, y) {
-    parent.window.resizeTo(x, y);
-}
-
-/**
- * Sets the current window to fullscreen
- */
-function fullscreen() {
-    parent.window.moveTo(0, 0);
-    resize(screen.width - 10, screen.height - 30);
-}
-
-/**
- * Displays in a string all items of an array + its methods
- *
- */
-function print_r(x, max, sep, l) {
-
-    l = l || 0;
-    max = max || 10;
-    sep = sep || ' ';
-
-    if (l > max) {
-        return "[WARNING: Too much recursion]\n";
-    }
-
-    var
-        i,
-        r = '',
-        t = typeof x,
-        tab = '';
-
-    if (x === null) {
-        r += "(null)\n";
-    } else if (t == 'object') {
-
-        l++;
-
-        for (i = 0; i < l; i++) {
-            tab += sep;
-        }
-
-        if (x && x.length) {
-            t = 'array';
-        }
-
-        r += '(' + t + ") :\n";
-
-        for (i in x) {
-            try {
-                r += tab + '[' + i + '] : ' + print_r(x[i], max, sep, (l + 1));
-            } catch (e) {
-                return "[ERROR: " + e + "]\n";
-            }
-        }
-
-    } else {
-
-        if (t == 'string') {
-            if (x == '') {
-                x = '(empty)';
-            }
-        }
-
-        r += '(' + t + ') ' + x + "\n";
-
-    }
-
-    return r;
-
-}
-
-/**
- * Unlock a basket using Ajax
- *
- * @param path_script String Path to the Ajax script
- * @param id String Basket id to unlock
- * @param coll String Collection identifier of the basket
- **/
-function unlock(path_script, id, coll) // A FAIRE
-{
-    if (path_script && res_id && coll_id) {
-        new Ajax.Request(path_script, {
-            method: 'post',
-            parameters: {
-                res_id: id,
-                coll_id: coll
-            },
-            onSuccess: function (answer) {
-
-                eval('response=' + answer.responseText);
-                if (response.status != 0) {
-                    if (console) {
-                        console.log('Pb unlock');
-                    } else {
-                        alert('Pb unlock');
-                    }
-                }
-            },
-            onFailure: function () {}
-        });
-    }
-}
-
-/**
- * Launch the Ajax autocomplete object to activate autocompletion on a field and then update an input field
- *
- * @param path_script String Path to the Ajax script
- **/
-function launch_autocompleter_update(path_script, id_text, id_div, minCharSearch, updateElement) {
-    var input = id_text || 'contact';
-    var div = id_div || 'show_contacts';
-    var minCharSearch = minCharSearch || 2;
-
-    contact_autocompleter = new Ajax.Autocompleter(input, div, path_script, {
-        method: 'get',
-        paramName: 'what',
-        minChars: minCharSearch,
-        afterUpdateElement: function (text, li) {
-            $(updateElement).value = li.id;
-        }
-    });
-}
-
-function updateContent(url, id_div_to_update, onComplete_callback) {
-    new Ajax.Updater(id_div_to_update, url, {
-        parameters: {},
-        onComplete: function () {
-            if (onComplete_callback) {
-                eval(onComplete_callback);
-            }
-        }
-    });
-}
-
-function checkAll() {
-    $$('input[type=checkbox]').without($('all')).each(
-        function (e) {
-            if(e.id != ''){ // No check subentities checkbox
-                if (e.checked != true) {
-                    stockCheckbox('index.php?display=true&dir=indexing_searching&page=multiLink', e.value);
-                }
-                e.checked = true;
-            }
-        }
-    )
-}
-
-
-function unCheckAll() {
-    $$('input[type=checkbox]').without($('all')).each(
-        function (e) {
-            e.checked = false;
-            stockCheckbox('index.php?display=true&dir=indexing_searching&page=multiLink&uncheckAll', e.value);
-        }
-    )
-}
-
-function addLinks(path_manage_script, child, parent, action, tableHist) {
-    //window.alert('child : '+child+', parent : '+parent+', action : '+action);
-    var divName = 'loadLinks';
-
-    if (child != '' && parent != '' && action != '') {
-        new Ajax.Request(path_manage_script, {
-            method: 'post',
-            parameters: {
-                res_id: parent,
-                res_id_child: child,
-                mode: action,
-                tableHist: tableHist
-
-            },
-            onSuccess: function (answer) {
-
-                eval("response = " + answer.responseText);
-                if (response.status == 0 || response.status == 1) {
-                    if (typeof window.parent['angularSignatureBookComponent'] != "undefined") {
-                        // window.parent.angularSignatureBookComponent.componentAfterLinks();
-                    }
-                    if (response.status == 0) {
-                        $(divName).innerHTML = response.links;
-
-                        eval(response.exec_js);
-
-                    } else {
-                        //
-                    }
-                } else {
-                    try {
-                        $(divName).innerHTML = response.error_txt;
-                    } catch (e) {}
-                }
-            }
-        });
-    }
-}
-
-function stockCheckbox(url, value) {
-    if (value != '') {
-        new Ajax.Request(url, {
-            method: 'post',
-            parameters: {
-                courrier_purpose: value
-            },
-            onSuccess: function (answer) {
-
-                monTableauJS = JSON.parse(answer.responseText);
-
-
-            }
-        })
-    }
-
-}
-
-function loadRepList(id, option) {
-    if ($('repList_' + id).style.display != 'none') {
-        new Effect.toggle('repList_' + id, 'appear', {
-            delay: 0.2
-        });
-    } else {
-        new Effect.toggle('repList_' + id, 'appear', {
-            delay: 0.2
-        });
-
-        var path_manage_script = 'index.php?page=loadRepList&display=true';
-
-        if (typeof option == 'undefined')
-            option = '';
-
-        new Ajax.Request(path_manage_script, {
-            method: 'post',
-            parameters: {
-                res_id_master: id,
-                option: option
-            },
-            onSuccess: function (answer) {
-                eval("response = " + answer.responseText);
-                $('divRepList_' + id).innerHTML = response.toShow;
-            }
-        });
-    }
-
-}
-
-function previsualiseAdminRead(e, json) {
-    if ($('identifierDetailFrame')) {
-        if ($('identifierDetailFrame').value == json.identifierDetailFrame) {
-            return;
-        }
-    }
-
-    var DocRef;
-    if (e) {
-        mouseX = e.pageX;
-        mouseY = e.pageY;
-    } else {
-        mouseX = event.clientX;
-        mouseY = event.clientY;
-
-        if (document.documentElement && document.documentElement.clientWidth) {
-            DocRef = document.documentElement;
-        } else {
-            DocRef = document.body;
-        }
-
-        mouseX += DocRef.scrollLeft;
-        mouseY += DocRef.scrollTop;
-    }
-    var topPosition = mouseY + 10;
-    var leftPosition = mouseX - 200;
-
-    var writeHTML = '<table cellpadding="2">';
-    for (i in json) {
-        if (i != 'identifierDetailFrame') {
-            writeHTML += '<tr>';
-            writeHTML += '<td>';
-            writeHTML += i;
-            writeHTML += '</td>';
-            writeHTML += '<td>';
-            writeHTML += ' : ';
-            writeHTML += '</td>';
-            writeHTML += '<td>';
-            writeHTML += json[i];
-            writeHTML += '</td>';
-            writeHTML += '</tr>';
-        } else {
-            writeHTML += '<input type="hidden" id="identifierDetailFrame" value="' + json[i] + '" />';
-        }
-    }
-    writeHTML += '</table>'
-    $('return_previsualise').update(writeHTML);
-    $('return_previsualise').innerHTML;
-
-    var divWidth = $('return_previsualise').getWidth();
-    if (divWidth > 0) {
-        leftPosition = mouseX - (divWidth + 40);
-    }
-    if (leftPosition < 0) {
-        leftPosition = -leftPosition;
-    }
-    var divHeight = $('return_previsualise').getHeight();
-    if (divHeight > 0) {
-        topPosition = mouseY - (divHeight - 2);
-    }
-
-    if (topPosition < 0) {
-        topPosition = 10;
-    }
-
-    //var scrollY = (document.all ? document.scrollTop : window.pageYOffset);
-    var scrollY = f_filterResults(
-        window.pageYOffset ? window.pageYOffset : 0,
-        document.documentElement ? document.documentElement.scrollTop : 0,
-        document.body ? document.body.scrollTop : 0
-    );
-
-    if (topPosition < scrollY) {
-        topPosition = scrollY + 10;
-    }
-
-    $('return_previsualise').style.top = topPosition + 'px';
-    $('return_previsualise').style.left = leftPosition + 'px';
-
-    $('return_previsualise').style.maxWidth = '600px';
-    $('return_previsualise').style.maxHeight = '600px';
-    $('return_previsualise').style.overflowY = 'scroll';
-    $('return_previsualise').style.display = 'block';
-
-}
-
-function goTo(where) {
-    window.location.href = where;
-}
-
-function f_filterResults(n_win, n_docel, n_body) {
-    var n_result = n_win ? n_win : 0;
-    if (n_docel && (!n_result || (n_result > n_docel)))
-        n_result = n_docel;
-    return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
-}
-
-/************************************ LISTS ****************************************/
-var globalEval = function (script) {
-    if (window.execScript) {
-        return window.execScript(script);
-    } else if (navigator.userAgent.indexOf('KHTML') != -1) { //safari, konqueror..
-        var s = document.createElement('script');
-        s.type = 'text/javascript';
-        s.innerHTML = script;
-        document.getElementsByTagName('head')[0].appendChild(s);
-    } else {
-        return window.eval(script);
-    }
-};
-
-//
-function evalMyScripts(targetId) {
-    var myScripts = document.getElementById(targetId).getElementsByTagName('script');
-    for (var i = 0; i < myScripts.length; i++) {
-        // alert(myScripts[i].innerHTML);
-        globalEval(myScripts[i].innerHTML);
-    }
-}
-
-/*
- *  Converts \n newline chars into <br> chars s.t. they are visible
- *  inside HTML
- */
-function convertToHTMLVisibleNewline(value) {
-    if (value != null && value != "") {
-        return value.replace(/\\n /g, "<br/>");
-    } else {
-        return value;
-    }
-}
-
-/*
- *  Converts \\n chars into \n newline chars s.t. they are visible
- *  inside text edit boxes
- */
-function convertToTextVisibleNewLine(value) {
-    if (value != null && value != "") {
-        return value.replace(/\\n /g, "\n");
-    } else {
-        return value;
-    }
-}
-
-function loadList(path, inDiv, modeReturn, init) {
-
-    // alert (modeReturn);
-    if (typeof (inDiv) === 'undefined') {
-        var div = 'divList';
-    } else {
-        var div = inDiv;
-    }
-    if (typeof (modeReturn) === 'undefined') {
-        var modeReturn = false;
-    }
-    if (typeof (init) === 'undefined' && window.top.$('main_error') != null) {
-        window.top.$('main_error').innerHTML = '';
-        window.top.$('main_info').innerHTML = '';
-    }
-    path = path.replace('#', '%23');
-    new Ajax.Request(path, {
-        method: 'post',
-        parameters: {
-            url: path
-        },
-        onCreate: function (answer) {
-            //show loading image in toolbar
-            if (document.getElementById("loading")) {
-                var loader = $j('<div style="position: absolute;margin-top: -15px;"><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px" height="30px" viewBox="0 0 24 30" style="enable-background:new 0 0 50 50;" xml:space="preserve"><rect x="0" y="10" width="4" height="10" fill="#135F7F" opacity="0.2">  <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0s" dur="0.6s" repeatCount="indefinite" /><animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0s" dur="0.6s" repeatCount="indefinite" />  <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0s" dur="0.6s" repeatCount="indefinite" /></rect><rect x="8" y="10" width="4" height="10" fill="#135F7F"  opacity="0.2">  <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0.15s" dur="0.6s" repeatCount="indefinite" />  <animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0.15s" dur="0.6s" repeatCount="indefinite" />  <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0.15s" dur="0.6s" repeatCount="indefinite" /></rect><rect x="16" y="10" width="4" height="10" fill="#135F7F"  opacity="0.2">  <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0.3s" dur="0.6s" repeatCount="indefinite" />  <animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0.3s" dur="0.6s" repeatCount="indefinite" />  <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0.3s" dur="0.6s" repeatCount="indefinite" /></rect></svg></div>');
-                loader.appendTo('#loading');
-                document.getElementById("loading").style.display = 'block';
-            }
-
-        },
-        onSuccess: function (answer) {
-
-            if (modeReturn !== false) {
-                eval("response = " + answer.responseText);
-                if (response.status == 0) {
-                    $j('#' + div).html(convertToHTMLVisibleNewline(response.content));
-                    // Old Way
-                    //$(div).innerHTML = convertToHTMLVisibleNewline(response.content);
-                    //evalMyScripts(div);
-
-                    if (document.getElementById("loading")) {
-                        loader.remove();
-                        document.getElementById("loading").style.display = 'none';
-                    }
-                } else {
-                    window.top.$('divList').innerHTML = response.error;
-                    window.location.href = 'index.php';
-                }
-            } else {
-                $(div).innerHTML = answer.responseText;
-                evalMyScripts(div);
-            }
-
-        }
-    });
-}
-
-function loadList2(path, inDiv, modeReturn, init) {
-
-    //alert (modeReturn);
-    if (typeof (inDiv) === 'undefined') {
-        var div = 'divList';
-    } else {
-        var div = inDiv;
-    }
-    if (typeof (modeReturn) === 'undefined') {
-        var modeReturn = false;
-    }
-    if (typeof (init) === 'undefined') {
-        window.top.$('main_error').innerHTML = '';
-        window.top.$('main_info').innerHTML = '';
-    }
-    path = path.replace('#', '%23');
-    new Ajax.Request(path, {
-        method: 'post',
-        parameters: {
-            url: path
-        },
-        /* onLoading: function(answer) {
-                 //show loading image in toolbar
-                 $('loading').style.display='block';
-         },*/
-        onSuccess: function (answer) {
-            if (modeReturn !== false) {
-                eval("response = " + answer.responseText);
-                if (response.status == 0) {
-                    $(div).innerHTML = convertToHTMLVisibleNewline(response.content);
-                    evalMyScripts(div);
-                } else {
-                    window.top.$('main_error').innerHTML = response.error;
-                }
-            } else {
-                $(div).innerHTML = answer.responseText;
-                evalMyScripts(div);
-            }
-            // $('loading').style.display='none';
-        }
-    });
-}
-
-function loadValueInDiv(theId, url) {
-
-    new Effect.toggle('subList_' + theId, 'appear', {
-        delay: 0.2
-    });
-
-    new Ajax.Request(url, {
-        method: 'post',
-        parameters: {
-            id: theId
-        },
-        onSuccess: function (answer) {
-            // alert(answer.responseText);
-            eval("response = " + answer.responseText);
-            if (response.status == 0) {
-                $('div_' + theId).innerHTML = response.content;
-                evalMyScripts('div_' + theId);
-            } else {
-                window.top.$('main_error').innerHTML = response.error;
-            }
-        }
-    });
-}
-
-function CheckUncheckAll(id) {
-    if ($(id).checked) {
-        checkAll();
-
-    } else {
-        unCheckAll();
-    }
-}
-
-function loadDiffList(id) {
-    new Effect.toggle('diffList_' + id, 'appear', {
-        delay: 0.2
-    });
-    var path_manage_script = 'index.php?module=entities&page=loadDiffList&display=true';
-    new Ajax.Request(path_manage_script, {
-        method: 'post',
-        parameters: {
-            res_id: id
-        },
-        onSuccess: function (answer) {
-            eval("response = " + answer.responseText);
-            $('divDiffList_' + id).innerHTML = '<fieldset style="border: 1px dashed rgb(0, 157, 197);width:100%;"><legend>Liste de diffusion:</legend>' + response.toShow + '</fieldset>';
-            new Ajax.Request(path_manage_script, {
-                method: 'post',
-                parameters: {
-                    res_id: id,
-                    typeList: 'VISA_CIRCUIT',
-                    showStatus: true
-                },
-                onSuccess: function (answer) {
-                    eval("response = " + answer.responseText);
-                    if (!response.toShow.match(/<div style="font-style:italic;text-align:center;color:#ea0000;margin:10px;">/)) {
-                        $('divDiffList_' + id).innerHTML += '<fieldset id="visa_fieldset" style="border: 1px dashed rgb(0, 157, 197);width:100%;"><legend>Circuit de visa:</legend>' + response.toShow + '</fieldset>';
-                        $j('#divDiffList_' + id).css({
-                            "width": "97%",
-                            "display": "table"
-                        });
-                        $j('#divDiffList_' + id).children().css({
-                            "width": "48%",
-                            "display": "table-cell",
-                            "vertical-align": "top",
-                            "padding": "5px",
-                            "margin": "5px"
-                        });
-                    }
-                    new Ajax.Request(path_manage_script, {
-                        method: 'post',
-                        parameters: {
-                            res_id: id,
-                            typeList: 'AVIS_CIRCUIT',
-                            showStatus: true
-                        },
-                        onSuccess: function (answer) {
-                            eval("response = " + answer.responseText);
-                            if (!response.toShow.match(/<div style="font-style:italic;text-align:center;color:#ea0000;margin:10px;">/)) {
-                                $('divDiffList_' + id).innerHTML += '<fieldset style="border: 1px dashed rgb(0, 157, 197);width:100%;"><legend>Circuit d\'avis:</legend>' + response.toShow + '</fieldset>';
-                                $j('#divDiffList_' + id).css({
-                                    "width": "97%",
-                                    "display": "table",
-                                    "white-space": "nowrap"
-                                });
-                                $j('#divDiffList_' + id + " fieldset").css({
-                                    "white-space": "normal"
-                                });
-                                if ($j('#visa_fieldset').length) {
-                                    $j('#divDiffList_' + id).children().css({
-                                        "width": "32%",
-                                        "display": "table-cell",
-                                        "vertical-align": "top",
-                                        "padding": "5px",
-                                        "margin": "5px"
-                                    });
-                                } else {
-                                    $j('#divDiffList_' + id).children().css({
-                                        "width": "48%",
-                                        "display": "table-cell",
-                                        "vertical-align": "top",
-                                        "padding": "5px",
-                                        "margin": "5px"
-                                    });
-                                }
-                            }
-
-                        }
-                    });
-                }
-            });
-        }
-    });
-
-}
-
-function loadNoteList(id) {
-    new Effect.toggle('noteList_' + id, 'appear', {
-        delay: 0.2
-    });
-
-    var path_manage_script = 'index.php?page=loadNoteList&display=true';
-
-    new Ajax.Request(path_manage_script, {
-        method: 'post',
-        parameters: {
-            identifier: id
-        },
-        onSuccess: function (answer) {
-            eval("response = " + answer.responseText);
-            $('divNoteList_' + id).innerHTML = response.toShow;
-        }
-    });
-}
-
-function showPreviousAttachments(path_manage_script, id) {
-    new Effect.toggle('attachList_' + id, 'appear', {
-        delay: 0.2
-    });
-
-    new Ajax.Request(path_manage_script, {
-        method: 'post',
-        parameters: {
-            res_id: id
-        },
-        onSuccess: function (answer) {
-            eval("response = " + answer.responseText);
-            $('divAttachList_' + id).innerHTML = response.toShow;
-        }
-    });
-}
-
-function erase_contact_external_id(id, erase_id) {
-    if ($j('#' + id).val() == '') {
-        $j('#' + erase_id).val('');
-        if (id == "contact") {
-            $j('#contact').css("background-color", "");
-        }
-    }
-}
-
-function simpleAjax(url) {
-    new Ajax.Request(url, {
-        method: 'post'
-    });
-}
-
-function loadDiffListHistory(listinstance_history_id) {
-    new Effect.toggle('diffListHistory_' + listinstance_history_id, 'appear', {
-        delay: 0.2
-    });
-
-    var path_manage_script = 'index.php?module=entities&page=loadDiffListHistory&display=true';
-
-    new Ajax.Request(path_manage_script, {
-        method: 'post',
-        parameters: {
-            listinstance_history_id: listinstance_history_id
-        },
-        onSuccess: function (answer) {
-            eval("response = " + answer.responseText);
-            $('divDiffListHistory_' + listinstance_history_id).innerHTML = response.toShow;
-        }
-    });
-}
-
-//LOAD BADGES TOOLBAR
-function loadToolbarBadge(targetTab, path_manage_script) {
-
-    $j.ajax({
-        url: path_manage_script,
-        type: 'POST',
-        //dataType: 'JSON',
-        data: {
-            targetTab: targetTab
-        },
-        success: function (answer) {
-            eval("response = " + answer);
-            if (response.status == 0) {
-                if (response.nav != '') {
-                    $j('#' + response.nav).css('paddingRight', '0px');
-                }
-                eval(response.exec_js);
-            }
-        },
-        error: function (error) {
-            alert(error);
-        }
-    })
-}
-
-function resetSelect(id) {
-    $j('#' + id).val("");
-    $j('#' + id).trigger("chosen:updated");
-}
-
-function titleWithTooltipster(id) {
-    $j(document).ready(function () {
-        $j('#' + id).tooltipster({
-            delay: 0
-        });
-    });
-}
-
-function titleWithTooltipsterClass(className) {
-    $j(document).ready(function () {
-        $j('.' + className).tooltipster({
-            delay: 0
-        });
-    });
-}
-
-/** Advanced Search **/
-
-/**
- * Fills inputs fields of text type in the search form whith value
- *
- * @param values Array Values of the search criteria which must be displayed
- **/
-function fill_field_input_text(values) {
-    for (var key in values) {
-        var tmp_elem = $(key);
-        tmp_elem.value = values[key];
-    }
-}
-
-/**
- * Fills inputs fields of textarea type in the search form whith value
- *
- * @param values Array Values of the search criteria which must be displayed
- **/
-function fill_field_textarea(values) {
-    for (var key in values) {
-        var tmp_elem = $(key);
-        tmp_elem.value = values[key];
-    }
-}
-
-/**
- * Fills date range in the search form whith value
- *
- * @param values Array Values of the search criteria which must be displayed
- **/
-function fill_field_date_range(values) {
-    for (var key in values) {
-        var tmp_elem = $(key);
-        tmp_elem.value = values[key][0];
-    }
-}
-
-/**
- * Fills num range in the search form whith value
- *
- * @param values Array Values of the search criteria which must be displayed
- **/
-function fill_field_num_range(values) {
-    for (var key in values) {
-        var tmp_elem = $(key);
-        tmp_elem.value = values[key][0];
-    }
-}
-
-/**
- * Selects items in a mutiple list (html select object with multiple) in the search form
- *
- * @param values Array Values of the search criteria which must be displayed
- **/
-function fill_field_select_multiple(values) {
-    for (var key in values) {
-        if (key.indexOf('_chosen') >= 0) {
-            var available = key.substring(0, key.length - 7) + '_available';
-            var available_list = $(available);
-            for (var j = 0; j < values[key].length; j++) {
-                for (var i = 0; i < available_list.options.length; i++) {
-                    if (values[key][j] == available_list.options[i].value) {
-                        available_list.options[i].selected = 'selected';
-                    }
-                }
-            }
-            Move_ext(available, key);
-        }
-        if (key.indexOf('_targetlist') >= 0) {
-            var available = key.substring(0, key.length - 7) + '_sourcelist';
-            var available_list = $(available);
-            for (var j = 0; j < values[key].length; j++) {
-                if (available_list) {
-                    for (var i = 0; i < available_list.options.length; i++) {
-                        if (values[key][j] == available_list.options[i].value) {
-                            available_list.options[i].selected = 'selected';
-                        }
-                    }
-                }
-            }
-            if (available) {
-                Move_ext(available, key);
-            }
-        }
-    }
-}
-
-/**
- * Selects an item in a simple list (html select object) in the search form
- *
- * @param values Array Values of the search criteria which must be displayed
- **/
-function fill_field_select_simple(values) {
-    for (var key in values) {
-        var tmp_elem = $(key);
-        for (var j = 0; j < values[key].length; j++) {
-            for (var i = 0; i < tmp_elem.options.length; i++) {
-                if (values[key][j] == tmp_elem.options[i].value) {
-                    tmp_elem.options[i].selected = 'selected';
-                }
-            }
-        }
-    }
-}
-
-/**
- * Load a query in the Advanced Search page
- *
- * @param valeurs Array Values of the search criteria which must be displayed
- * @param loaded_query Array Values of the search criteria
- * @param id_form String Search form identifier
- * @param ie_browser Bool Browser is internet explorer or not
- * @param error_ie_txt String Error message specific to ie browser
- **/
-function load_query(valeurs, loaded_query, id_form, ie_browser, error_ie_txt) {
-    for (var critere in loaded_query) {
-        if (valeurs[critere] != undefined) // in the valeurs array
-        {
-            add_criteria('option_' + critere, id_form, ie_browser, error_ie_txt);
-        }
-        eval("processingFunction=fill_field_" + loaded_query[critere]['type']);
-        if (typeof (processingFunction) == 'function') // test if the funtion exists
-        {
-            processingFunction(loaded_query[critere]['fields']);
-        }
-    }
-}
-
-/**
- * Adds criteria in the search form
- *
- * @param elem_comp String Identifier of the option of the criteria list to displays in the search form
- * @param id_form String Search form identifier
- * @param ie_browser Bool Is the browser internet explorer or not
- * @param error_txt_ie String Error message specific to ie browser
- **/
-function add_criteria(elem_comp, id_form, ie_browser, error_txt_ie) {
-    // Takes the id of the chosen option which must be one of the valeurs array
-    var elem = elem_comp.substring(7, elem_comp.length);
-    var form = window.$(id_form);
-    var valeur = valeurs[elem];
-    if (ie_browser) {
-        var div_node = $j('#search_parameters_' + elem);
-    }
-    if (typeof (valeur) != 'undefined') {
-        if (ie_browser == true && typeof (div_node) != 'undefined' && div_node != null) {
-            alert(error_txt_ie);
-        } else {
-            var node = document.createElement('div');
-            node.setAttribute('id', 'search_parameters_' + elem);
-            var tmp = '<table width="100%" border="0"><tr><td width="30%">';
-            tmp += '<i class="fa fa-angle-right"></i> ' + valeur['label'];
-            tmp += '</td><td>';
-            tmp += valeur['value'];
-            tmp += '</td><td width="30px">';
-            tmp += '<a href="#" onclick="delete_criteria(\'' + elem + '\', \'';
-            tmp += id_form + '\');return false;">';
-            tmp += '<i class="fa fa-times fa-2x"></i></a>';
-            tmp += '</td></tr></table>';
-            // Loading content in the page
-            node.innerHTML = tmp;
-            form.appendChild(node);
-            var label = $(elem_comp);
-            if (elem_comp == 'option_signatory_name' || elem_comp == 'option_visa_user') {
-                loadAutocompletionScript(elem_comp);
-            }
-
-            label.parentNode.selectedIndex = 0;
-            label.style.display = 'none';
-        }
-    }
-}
-
-function loadAutocompletionScript(optionId) {
-    infos = $j('#' + optionId).data('load');
-    initList_hidden_input(infos.id, infos.idList, infos.config + 'index.php?display=true&dir=indexing_searching&page=users_list_by_name_search', 'what', "2", infos.autocompleteId);
-}
-
-
-/**
- * Deletes a criteria in the search form
- *
- * @param elem_comp String Identifier of the option of the criteria list to delete in the search form
- * @param id_form String Search form identifier
- **/
-function delete_criteria(id_elem, id_form) {
-    var form = $(id_form);
-    var tmp = (id_elem.indexOf('option_') >= 0) ? id_elem : 'option_' + id_elem;
-    var label = $(tmp);
-    label.style.display = '';
-    //  label.disabled = !label.disabled;
-    tmp = (id_elem.indexOf('option_') >= 0) ? id_elem.substring(7, id_elem.length) : id_elem;
-    //form.removeChild($('search_parameters_'+tmp));
-    $('search_parameters_' + tmp).parentElement.removeChild($('search_parameters_' + tmp));
-}
-
-/**
- * Validates the search form, selects all list options ending with _chosen (type select_multiple) to avoid missing elements
- *
- * @param id_form String Search form identifier
- **/
-function valid_search_form(id_form) {
-    var frm = $(id_form);
-    var selects = frm.getElementsByTagName('select'); //Array
-    for (var i = 0; i < selects.length; i++) {
-        if (selects[i].multiple && (selects[i].id.indexOf('_chosen') >= 0 ||
-                selects[i].id.indexOf('_targetlist') >= 0)) {
-            selectall_ext(selects[i].id);
-        }
-    }
-}
-
-/**
- * Clears the search form : delete all optional criteria in the form
- *
- * @param id_form String Search form identifier
- * @param id_list String Criteria list identifier
- **/
-function clear_search_form(id_form, id_list) {
-    var list = $(id_list);
-    for (var i = 0; i < list.options.length; i++) {
-        if (list.options[i].style.display == 'none') {
-            delete_criteria(list.options[i].id, id_form);
-        }
-    }
-    var elems = document.getElementsByTagName('INPUT');
-    for (var i = 0; i < elems.length; i++) {
-        if (elems[i].type == 'text') {
-            elems[i].value = '';
-        }
-    }
-    var lists = document.getElementsByTagName('SELECT');
-    for (var i = 0; i < lists.length; i++) {
-        lists[i].selectedIndex = 0;
-    }
-    var copie_false = $('copies_false');
-    if (copie_false) {
-        copie_false.checked = true;
-    }
-}
-
-/**
- * Clears the queries list : remove an option in this list
- *
- * @param item_value String Identifier of the item to remove
- **/
-function clear_q_list(item_value) {
-    var query = $('query');
-
-    if (item_value && item_value != '' && query) {
-        var item = $('query_' + item_value);
-        if (item) {
-            query.removeChild(item);
-        }
-    }
-    if (query && query.options.length > 1) {
-        var q_list = $('default_query');
-        if (q_list) {
-            q_list.selected = 'selected';
-        }
-        var del_button = $('del_query');
-        if (del_button) {
-            del_button.style.display = 'none';
-        }
-    } else {
-        var div_query = $('div_query');
-        if (div_query) {
-            div_query.style.display = 'none';
-        }
-    }
-}
-
-/**
- * Load a saved query in the Advanced Search page (using Ajax)
- *
- * @param id_query String Identifier of the saved query to load
- * @param id_form_to_load String Identifier of the search form
- * @param sql_error_txt String SQL error message
- * @param server_error_txt String Server error message
- * @param manage_script String Ajax script
- **/
-function load_query_db(id_query, id_list, id_form_to_load, sql_error_txt, server_error_txt, manage_script) {
-    if (id_query != '') {
-        new Ajax.Request(
-            manage_script, {
-                method: 'post',
-                parameters: {
-                    id: id_query,
-                    action: 'load'
-                },
-                onSuccess: function (answer) {
-                    eval("response = " + answer.responseText + ';');
-                    if (response.status == 0) {
-                        clear_search_form(id_form_to_load, id_list);
-                        //Clears the search form
-                        if (response.query instanceof Object &&
-                            response.query != {}) {
-                            load_query(valeurs, response.query, id_form_to_load);
-                        }
-                        $j("#del_query").css("display", "inline");
-                        $j("#query_" + id_query)[0].selected = true;
-                    } else if (response.status == 2) {
-                        $('error').update(sql_error_txt);
-                    } else {
-                        $('error').update(server_error_txt);
-                    }
-                },
-                onFailure: function () {
-                    $('error').update(server_error_txt);
-                }
-            });
-    }
-}
-
-/**
- * Delete a saved query in the database (using Ajax)
- *
- * @param id_query String Identifier of the saved query to delete
- * @param id_list String Identifier of the queries list
- * @param id_form_to_load String Identifier of the search form
- * @param sql_error_txt String SQL error message
- * @param server_error_txt String Server error message
- * @param path_script String Ajax script
- **/
-function del_query_db(id_query, id_list, id_form_to_load, sql_error_txt, server_error_txt, path_script) {
-    if (id_query != '') {
-        var query_object = new Ajax.Request(
-            path_script, {
-                method: 'post',
-                parameters: {
-                    id: id_query.value,
-                    action: "delete"
-                },
-                onSuccess: function (answer) {
-
-                    eval("response = " + answer.responseText + ';');
-                    if (response.status == 0) {
-                        clear_search_form(id_form_to_load, id_list); //Clears search form
-                        clear_q_list(id_query.value);
-                    } else if (response.status == 2) {
-                        $('error').update(sql_error_txt);
-                    } else {
-                        $('error').update(server_error_txt);
-                    }
-                },
-                onFailure: function () {
-                    $('error').update(server_error_txt);
-                }
-            });
-    }
-}
-
-/** Old MaarchJs **/
-
-// Fonction pour gérer les changements dynamiques de sous-menu.
-// Prend en variable le numéro du sous-menu à afficher.
-
-function ChangeH2(objet) {
-    if (objet.getElementsByTagName('img')[0].src.indexOf("plus") > -1) {
-        objet.getElementsByTagName('img')[0].src = "img/moins.png";
-        objet.getElementsByTagName('span')[0].firstChild.nodeValue = " ";
-    } else {
-        objet.getElementsByTagName('img')[0].src = "img/plus.png";
-        objet.getElementsByTagName('span')[0].firstChild.nodeValue = " ";
-    }
-}
-
-var initialized = 0;
-var etat = new Array();
-
-function reinit() {
-    initialized = 0;
-    etat = new Array();
-}
-
-function initialise() {
-    for (var i = 0; i < 500; i++) {
-        etat[i] = new Array();
-        etat[i]["h2"] = document.getElementById('h2' + i);
-        etat[i]["desc"] = document.getElementById('desc' + i);
-        etat[i]["etat"] = 0;
-    }
-    initialized = 1;
-}
-
-function ferme(id) {
-    Effect.SlideUp(etat[id]["desc"]);
-    ChangeH2(etat[id]["h2"]);
-    etat[id]["etat"] = 0;
-}
-
-function ouvre(id) {
-    Effect.SlideDown(etat[id]["desc"]);
-    ChangeH2(etat[id]["h2"]);
-    etat[id]["etat"] = 1;
-}
-
-function ferme3(id) {
-    Effect.SlideUp(etat[id]["desc"]);
-    etat[id]["etat"] = 0;
-}
-
-function ouvre3(id) {
-    Effect.SlideDown(etat[id]["desc"]);
-    etat[id]["etat"] = 1;
-}
-
-function change(id) {
-    if (!initialized) {
-        initialise()
-    }
-    // alert(etat[id]["etat"]);
-    if (etat[id]["etat"]) {
-        ferme(id);
-    } else {
-        for (var i = 0; i < etat.length; i++) {
-            if (etat[i]["etat"]) {
-                ferme(i);
-            }
-        }
-        ouvre(id);
-    }
-}
-
-function change3(id) {
-    if (!initialized) {
-        initialise()
-    }
-    // alert(etat[id]["etat"]);
-    if (etat[id]["etat"]) {
-        ferme3(id);
-    } else {
-        for (var i = 0; i < etat.length; i++) {
-            if (etat[i]["etat"]) {
-                ferme3(i);
-            }
-        }
-        ouvre3(id);
-    }
-}
-
-function print_current_result_list(path) {
-    alert("Cela imprimera la liste actuellement affichée");
-    var mywindow = window.open('', 'my div', 'height=400,width=600');
-    mywindow.document.write('<html><head><title>MAARCH</title>');
-    mywindow.document.write('<link rel="stylesheet" href="../../node_modules/@fortawesome/fontawesome-free/css/all.css" type="text/css" media="all"/>');
-    mywindow.document.write('<link rel="stylesheet" href="' + path + '/css/font-awesome-maarch/css/font-maarch.css" type="text/css" media="all"/>');
-    mywindow.document.write('<link rel="stylesheet" href="' + path + '/merged_css.php" type="text/css" media="all"/>');
-    mywindow.document.write('</head><body >');
-    mywindow.document.write('<style>.check,#checkUncheck{display:none;}</style>');
-    mywindow.document.write($j('<div/>').append($j('#extended_list').clone()).html());
-    mywindow.document.write('</body></html>');
-    mywindow.document.close();
-    mywindow.focus();
-    setTimeout(function () {
-        mywindow.print();
-    }, 500);
-    window.onfocus = function () {
-        setTimeout(function () {
-            mywindow.close();
-        }, 500);
-    }
-}
-
-function writeLocationBar(path,label,level) {
-    if ($j('#ariane a:last').length == 0) {
-        var home = $j('<a href="'+path+'" onclick="localStorage.setItem(\'PreviousV2Route\', \'/home\');">'+label+'</a>');
-        home.appendTo('#ariane');
-    } else {
-        var elem = $j('<a href="'+path+'&level='+level+'">'+label+'</a>');
-        elem.insertAfter('#ariane a:last');
-        var separator = $j('<span> > </span>');
-        separator.insertBefore(elem);
-    }    
-}
-
-function setSendAttachment(id) {
-    $j.ajax({
-        url: '../../rest/attachments/' + id + '/inSendAttachment',
-        type: 'PUT',
-        dataType: 'json',
-        data: {
-        },
-        success: function (answer) {
-            if (typeof window.parent['angularSignatureBookComponent'] !== "undefined") {
-                // window.parent.angularSignatureBookComponent.componentAfterAttach("left");
-            }
-        },
-        error: function (err) {
-            alert("Une erreur s'est produite : " + err.responseJSON.exception[0].message);
-        }
-    });
-}
-
-function loadContactsList(id, mode) {
-    new Effect.toggle('contactsList_' + mode + '_' + id, 'appear', {
-        delay: 0.2
-    });
-
-    var path_manage_script = '../../rest/contacts/formatV1';
-
-
-    new Ajax.Request(path_manage_script, {
-        method: 'post',
-        parameters: {
-            resId: id,
-            mode: mode
-        },
-        onSuccess: function (answer) {
-            eval("response = " + answer.responseText);
-            $('divContactsList_' + mode + '_' + id).innerHTML = response.toShow;
-        }
-    });
-}
diff --git a/apps/maarch_entreprise/js/indexing.js b/apps/maarch_entreprise/js/indexing.js
deleted file mode 100755
index 9b7853f5d70..00000000000
--- a/apps/maarch_entreprise/js/indexing.js
+++ /dev/null
@@ -1,119 +0,0 @@
-
-var $j = jQuery.noConflict();
-
-/** Declaration of the autocompleter object used for the contacts*/
-var contact_autocompleter;
-
-function clear_error(id_error)
-{
-    //console.log("'"+id_error+"'");
-    var error_div = $(id_error);
-    //console.log(error_div);
-    if(error_div)
-    {
-        error_div.update();
-    }
-}
-
-function changeCycle(path_manage_script)
-{
-    var policy_id = $('policy_id');
-    if(policy_id.value != '') {
-        new Ajax.Request(path_manage_script,
-        {
-            method:'post',
-            parameters: { policy_id : policy_id.value
-                        },
-                onSuccess: function(answer){
-                eval("response = "+answer.responseText);
-                if(response.status == 0 || response.status == 1) {
-                    if(response.status == 0) {
-                        //response.selectClient;
-                        $('cycle_div').innerHTML = response.selectCycle;
-                    } else {
-                        //
-                    }
-                } else {
-                    try {
-                        $('frm_error').innerHTML = response.error_txt;
-                    }
-                    catch(e){}
-                }
-            }
-        });
-    } //else {
-        //if($('policy_id')) {
-            //Element.setStyle($('policy_id'), {display : 'none'})
-        //}
-    //}
-}
-
-function initSenderRecipientAutocomplete(inputId, mode, alternateVersion, cardId) {
-    var route = '../../rest/autocomplete/correspondents';
-
-    $j("#" + inputId).typeahead({
-        // order: "asc",
-        display: ["company", "firstname", "lastname"],
-        templateValue: "{{company}} {{firstname}} {{lastname}}",
-        emptyTemplate: "Aucune donnée pour <b>{{query}}</b>",
-        minLength: 3,
-        dynamic: true,
-        filter: false,
-        source: {
-            ajax: function (query) {
-                return {
-                    type: "GET",
-                    url: route,
-                    data: {
-                        search              : query,
-                        noContactsGroups    : true,
-                        color               : !alternateVersion
-                    }
-                }
-            }
-        },
-        callback: {
-            onClickAfter: function (node, li, item) {
-                $j("#" + inputId + "_id").val(item.id);
-                $j("#" + inputId + "_type").val(item.type);
-
-                if (!alternateVersion) {
-                    if (li[0].getStyle('background-color') == 'rgba(0, 0, 0, 0)') {
-                        $j("#" + inputId).css('background-color', 'white');
-                    } else {
-                        $j("#" + inputId).css('background-color', li[0].getStyle('background-color'));
-                    }
-                    
-                }
-                if(typeof cardId != 'undefined'){
-                    $j("#" + cardId).css('visibility', 'visible');
-                }
-            },
-            onCancel: function () {
-                $j("#" + inputId + "_id").val('');
-                $j("#" + inputId + "_type").val('');
-                $j("#" + inputId).css('background-color', "");
-                if(typeof cardId != 'undefined'){
-                    $j("#" + cardId).css('visibility', 'hidden');
-                }
-            },
-            onLayoutBuiltBefore: function (node, query, result, resultHtmlList) {
-                if (typeof resultHtmlList != "undefined" && result.length > 0) {
-                    $j.each(resultHtmlList.find('li'), function (i, target) {
-                        if (result[i]['type'] == "contact" && result[i]["rateColor"] != "") {
-                            $j(target).css({"background-color" : result[i]["rateColor"]});
-                        }
-                        if (result[i]['type'] == "contact") {
-                            $j(target).find('span').before("<i class='fa fa-building fa-1x'></i>&nbsp;&nbsp;");
-                        } else if (result[i]['type'] == "user") {
-                            $j(target).find('span').before("<i class='fa fa-user fa-1x'></i>&nbsp;&nbsp;");
-                        } else if (result[i]['type'] == "onlyContact") {
-                            $j(target).find('span').before("<i class='fa fa-address-card fa-1x'></i>&nbsp;&nbsp;");
-                        }
-                    });
-                }
-                return resultHtmlList;
-            }
-        }
-    });
-}
diff --git a/apps/maarch_entreprise/js/prototype.js b/apps/maarch_entreprise/js/prototype.js
deleted file mode 100755
index cc89dafcd6a..00000000000
--- a/apps/maarch_entreprise/js/prototype.js
+++ /dev/null
@@ -1,7588 +0,0 @@
-/*  Prototype JavaScript framework, version 1.7.3
- *  (c) 2005-2010 Sam Stephenson
- *
- *  Prototype is freely distributable under the terms of an MIT-style license.
- *  For details, see the Prototype web site: http://www.prototypejs.org/
- *
- *--------------------------------------------------------------------------*/
-
-var Prototype = {
-
-  Version: '1.7.3',
-
-  Browser: (function(){
-    var ua = navigator.userAgent;
-    var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]';
-    return {
-      IE:             !!window.attachEvent && !isOpera,
-      Opera:          isOpera,
-      WebKit:         ua.indexOf('AppleWebKit/') > -1,
-      Gecko:          ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1,
-      MobileSafari:   /Apple.*Mobile/.test(ua)
-    }
-  })(),
-
-  BrowserFeatures: {
-    XPath: !!document.evaluate,
-
-    SelectorsAPI: !!document.querySelector,
-
-    ElementExtensions: (function() {
-      var constructor = window.Element || window.HTMLElement;
-      return !!(constructor && constructor.prototype);
-    })(),
-    SpecificElementExtensions: (function() {
-      if (typeof window.HTMLDivElement !== 'undefined')
-        return true;
-
-      var div = document.createElement('div'),
-          form = document.createElement('form'),
-          isSupported = false;
-
-      if (div['__proto__'] && (div['__proto__'] !== form['__proto__'])) {
-        isSupported = true;
-      }
-
-      div = form = null;
-
-      return isSupported;
-    })()
-  },
-
-  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script\\s*>',
-  JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
-
-  emptyFunction: function() { },
-
-  K: function(x) { return x }
-};
-
-if (Prototype.Browser.MobileSafari)
-  Prototype.BrowserFeatures.SpecificElementExtensions = false;
-/* Based on Alex Arnell's inheritance implementation. */
-
-var Class = (function() {
-
-  var IS_DONTENUM_BUGGY = (function(){
-    for (var p in { toString: 1 }) {
-      if (p === 'toString') return false;
-    }
-    return true;
-  })();
-
-  function subclass() {};
-  function create() {
-    var parent = null, properties = $A(arguments);
-    if (Object.isFunction(properties[0]))
-      parent = properties.shift();
-
-    function klass() {
-      this.initialize.apply(this, arguments);
-    }
-
-    Object.extend(klass, Class.Methods);
-    klass.superclass = parent;
-    klass.subclasses = [];
-
-    if (parent) {
-      subclass.prototype = parent.prototype;
-      klass.prototype = new subclass;
-      parent.subclasses.push(klass);
-    }
-
-    for (var i = 0, length = properties.length; i < length; i++)
-      klass.addMethods(properties[i]);
-
-    if (!klass.prototype.initialize)
-      klass.prototype.initialize = Prototype.emptyFunction;
-
-    klass.prototype.constructor = klass;
-    return klass;
-  }
-
-  function addMethods(source) {
-    var ancestor   = this.superclass && this.superclass.prototype,
-        properties = Object.keys(source);
-
-    if (IS_DONTENUM_BUGGY) {
-      if (source.toString != Object.prototype.toString)
-        properties.push("toString");
-      if (source.valueOf != Object.prototype.valueOf)
-        properties.push("valueOf");
-    }
-
-    for (var i = 0, length = properties.length; i < length; i++) {
-      var property = properties[i], value = source[property];
-      if (ancestor && Object.isFunction(value) &&
-          value.argumentNames()[0] == "$super") {
-        var method = value;
-        value = (function(m) {
-          return function() { return ancestor[m].apply(this, arguments); };
-        })(property).wrap(method);
-
-        value.valueOf = (function(method) {
-          return function() { return method.valueOf.call(method); };
-        })(method);
-
-        value.toString = (function(method) {
-          return function() { return method.toString.call(method); };
-        })(method);
-      }
-      this.prototype[property] = value;
-    }
-
-    return this;
-  }
-
-  return {
-    create: create,
-    Methods: {
-      addMethods: addMethods
-    }
-  };
-})();
-(function() {
-
-  var _toString = Object.prototype.toString,
-      _hasOwnProperty = Object.prototype.hasOwnProperty,
-      NULL_TYPE = 'Null',
-      UNDEFINED_TYPE = 'Undefined',
-      BOOLEAN_TYPE = 'Boolean',
-      NUMBER_TYPE = 'Number',
-      STRING_TYPE = 'String',
-      OBJECT_TYPE = 'Object',
-      FUNCTION_CLASS = '[object Function]',
-      BOOLEAN_CLASS = '[object Boolean]',
-      NUMBER_CLASS = '[object Number]',
-      STRING_CLASS = '[object String]',
-      ARRAY_CLASS = '[object Array]',
-      DATE_CLASS = '[object Date]',
-      NATIVE_JSON_STRINGIFY_SUPPORT = window.JSON &&
-        typeof JSON.stringify === 'function' &&
-        JSON.stringify(0) === '0' &&
-        typeof JSON.stringify(Prototype.K) === 'undefined';
-
-
-
-  var DONT_ENUMS = ['toString', 'toLocaleString', 'valueOf',
-   'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];
-
-  var IS_DONTENUM_BUGGY = (function(){
-    for (var p in { toString: 1 }) {
-      if (p === 'toString') return false;
-    }
-    return true;
-  })();
-
-  function Type(o) {
-    switch(o) {
-      case null: return NULL_TYPE;
-      case (void 0): return UNDEFINED_TYPE;
-    }
-    var type = typeof o;
-    switch(type) {
-      case 'boolean': return BOOLEAN_TYPE;
-      case 'number':  return NUMBER_TYPE;
-      case 'string':  return STRING_TYPE;
-    }
-    return OBJECT_TYPE;
-  }
-
-  function extend(destination, source) {
-    for (var property in source)
-      destination[property] = source[property];
-    return destination;
-  }
-
-  function inspect(object) {
-    try {
-      if (isUndefined(object)) return 'undefined';
-      if (object === null) return 'null';
-      return object.inspect ? object.inspect() : String(object);
-    } catch (e) {
-      if (e instanceof RangeError) return '...';
-      throw e;
-    }
-  }
-
-  function toJSON(value) {
-    return Str('', { '': value }, []);
-  }
-
-  function Str(key, holder, stack) {
-    var value = holder[key];
-    if (Type(value) === OBJECT_TYPE && typeof value.toJSON === 'function') {
-      value = value.toJSON(key);
-    }
-
-    var _class = _toString.call(value);
-
-    switch (_class) {
-      case NUMBER_CLASS:
-      case BOOLEAN_CLASS:
-      case STRING_CLASS:
-        value = value.valueOf();
-    }
-
-    switch (value) {
-      case null: return 'null';
-      case true: return 'true';
-      case false: return 'false';
-    }
-
-    var type = typeof value;
-    switch (type) {
-      case 'string':
-        return value.inspect(true);
-      case 'number':
-        return isFinite(value) ? String(value) : 'null';
-      case 'object':
-
-        for (var i = 0, length = stack.length; i < length; i++) {
-          if (stack[i] === value) {
-            throw new TypeError("Cyclic reference to '" + value + "' in object");
-          }
-        }
-        stack.push(value);
-
-        var partial = [];
-        if (_class === ARRAY_CLASS) {
-          for (var i = 0, length = value.length; i < length; i++) {
-            var str = Str(i, value, stack);
-            partial.push(typeof str === 'undefined' ? 'null' : str);
-          }
-          partial = '[' + partial.join(',') + ']';
-        } else {
-          var keys = Object.keys(value);
-          for (var i = 0, length = keys.length; i < length; i++) {
-            var key = keys[i], str = Str(key, value, stack);
-            if (typeof str !== "undefined") {
-               partial.push(key.inspect(true)+ ':' + str);
-             }
-          }
-          partial = '{' + partial.join(',') + '}';
-        }
-        stack.pop();
-        return partial;
-    }
-  }
-
-  function stringify(object) {
-    return JSON.stringify(object);
-  }
-
-  function toQueryString(object) {
-    return $H(object).toQueryString();
-  }
-
-  function toHTML(object) {
-    return object && object.toHTML ? object.toHTML() : String.interpret(object);
-  }
-
-  function keys(object) {
-    if (Type(object) !== OBJECT_TYPE) { throw new TypeError(); }
-    var results = [];
-    for (var property in object) {
-      if (_hasOwnProperty.call(object, property))
-        results.push(property);
-    }
-
-    if (IS_DONTENUM_BUGGY) {
-      for (var i = 0; property = DONT_ENUMS[i]; i++) {
-        if (_hasOwnProperty.call(object, property))
-          results.push(property);
-      }
-    }
-
-    return results;
-  }
-
-  function values(object) {
-    var results = [];
-    for (var property in object)
-      results.push(object[property]);
-    return results;
-  }
-
-  function clone(object) {
-    return extend({ }, object);
-  }
-
-  function isElement(object) {
-    return !!(object && object.nodeType == 1);
-  }
-
-  function isArray(object) {
-    return _toString.call(object) === ARRAY_CLASS;
-  }
-
-  var hasNativeIsArray = (typeof Array.isArray == 'function')
-    && Array.isArray([]) && !Array.isArray({});
-
-  if (hasNativeIsArray) {
-    isArray = Array.isArray;
-  }
-
-  function isHash(object) {
-    return object instanceof Hash;
-  }
-
-  function isFunction(object) {
-    return _toString.call(object) === FUNCTION_CLASS;
-  }
-
-  function isString(object) {
-    return _toString.call(object) === STRING_CLASS;
-  }
-
-  function isNumber(object) {
-    return _toString.call(object) === NUMBER_CLASS;
-  }
-
-  function isDate(object) {
-    return _toString.call(object) === DATE_CLASS;
-  }
-
-  function isUndefined(object) {
-    return typeof object === "undefined";
-  }
-
-  extend(Object, {
-    extend:        extend,
-    inspect:       inspect,
-    toJSON:        NATIVE_JSON_STRINGIFY_SUPPORT ? stringify : toJSON,
-    toQueryString: toQueryString,
-    toHTML:        toHTML,
-    keys:          Object.keys || keys,
-    values:        values,
-    clone:         clone,
-    isElement:     isElement,
-    isArray:       isArray,
-    isHash:        isHash,
-    isFunction:    isFunction,
-    isString:      isString,
-    isNumber:      isNumber,
-    isDate:        isDate,
-    isUndefined:   isUndefined
-  });
-})();
-Object.extend(Function.prototype, (function() {
-  var slice = Array.prototype.slice;
-
-  function update(array, args) {
-    var arrayLength = array.length, length = args.length;
-    while (length--) array[arrayLength + length] = args[length];
-    return array;
-  }
-
-  function merge(array, args) {
-    array = slice.call(array, 0);
-    return update(array, args);
-  }
-
-  function argumentNames() {
-    var names = this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1]
-      .replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g, '')
-      .replace(/\s+/g, '').split(',');
-    return names.length == 1 && !names[0] ? [] : names;
-  }
-
-
-  function bind(context) {
-    if (arguments.length < 2 && Object.isUndefined(arguments[0]))
-      return this;
-
-    if (!Object.isFunction(this))
-      throw new TypeError("The object is not callable.");
-
-    var nop = function() {};
-    var __method = this, args = slice.call(arguments, 1);
-
-    var bound = function() {
-      var a = merge(args, arguments);
-      var c = this instanceof bound ? this : context;
-      return __method.apply(c, a);
-    };
-
-    nop.prototype   = this.prototype;
-    bound.prototype = new nop();
-
-    return bound;
-  }
-
-  function bindAsEventListener(context) {
-    var __method = this, args = slice.call(arguments, 1);
-    return function(event) {
-      var a = update([event || window.event], args);
-      return __method.apply(context, a);
-    }
-  }
-
-  function curry() {
-    if (!arguments.length) return this;
-    var __method = this, args = slice.call(arguments, 0);
-    return function() {
-      var a = merge(args, arguments);
-      return __method.apply(this, a);
-    }
-  }
-
-  function delay(timeout) {
-    var __method = this, args = slice.call(arguments, 1);
-    timeout = timeout * 1000;
-    return window.setTimeout(function() {
-      return __method.apply(__method, args);
-    }, timeout);
-  }
-
-  function defer() {
-    var args = update([0.01], arguments);
-    return this.delay.apply(this, args);
-  }
-
-  function wrap(wrapper) {
-    var __method = this;
-    return function() {
-      var a = update([__method.bind(this)], arguments);
-      return wrapper.apply(this, a);
-    }
-  }
-
-  function methodize() {
-    if (this._methodized) return this._methodized;
-    var __method = this;
-    return this._methodized = function() {
-      var a = update([this], arguments);
-      return __method.apply(null, a);
-    };
-  }
-
-  var extensions = {
-    argumentNames:       argumentNames,
-    bindAsEventListener: bindAsEventListener,
-    curry:               curry,
-    delay:               delay,
-    defer:               defer,
-    wrap:                wrap,
-    methodize:           methodize
-  };
-
-  if (!Function.prototype.bind)
-    extensions.bind = bind;
-
-  return extensions;
-})());
-
-
-
-(function(proto) {
-
-
-  function toISOString() {
-    return this.getUTCFullYear() + '-' +
-      (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
-      this.getUTCDate().toPaddedString(2) + 'T' +
-      this.getUTCHours().toPaddedString(2) + ':' +
-      this.getUTCMinutes().toPaddedString(2) + ':' +
-      this.getUTCSeconds().toPaddedString(2) + 'Z';
-  }
-
-
-  function toJSON() {
-    return this.toISOString();
-  }
-
-  if (!proto.toISOString) proto.toISOString = toISOString;
-  if (!proto.toJSON) proto.toJSON = toJSON;
-
-})(Date.prototype);
-
-
-RegExp.prototype.match = RegExp.prototype.test;
-
-RegExp.escape = function(str) {
-  return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
-};
-var PeriodicalExecuter = Class.create({
-  initialize: function(callback, frequency) {
-    this.callback = callback;
-    this.frequency = frequency;
-    this.currentlyExecuting = false;
-
-    this.registerCallback();
-  },
-
-  registerCallback: function() {
-    this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
-  },
-
-  execute: function() {
-    this.callback(this);
-  },
-
-  stop: function() {
-    if (!this.timer) return;
-    clearInterval(this.timer);
-    this.timer = null;
-  },
-
-  onTimerEvent: function() {
-    if (!this.currentlyExecuting) {
-      try {
-        this.currentlyExecuting = true;
-        this.execute();
-        this.currentlyExecuting = false;
-      } catch(e) {
-        this.currentlyExecuting = false;
-        throw e;
-      }
-    }
-  }
-});
-Object.extend(String, {
-  interpret: function(value) {
-    return value == null ? '' : String(value);
-  },
-  specialChar: {
-    '\b': '\\b',
-    '\t': '\\t',
-    '\n': '\\n',
-    '\f': '\\f',
-    '\r': '\\r',
-    '\\': '\\\\'
-  }
-});
-
-Object.extend(String.prototype, (function() {
-  var NATIVE_JSON_PARSE_SUPPORT = window.JSON &&
-    typeof JSON.parse === 'function' &&
-    JSON.parse('{"test": true}').test;
-
-  function prepareReplacement(replacement) {
-    if (Object.isFunction(replacement)) return replacement;
-    var template = new Template(replacement);
-    return function(match) { return template.evaluate(match) };
-  }
-
-  function isNonEmptyRegExp(regexp) {
-    return regexp.source && regexp.source !== '(?:)';
-  }
-
-
-  function gsub(pattern, replacement) {
-    var result = '', source = this, match;
-    replacement = prepareReplacement(replacement);
-
-    if (Object.isString(pattern))
-      pattern = RegExp.escape(pattern);
-
-    if (!(pattern.length || isNonEmptyRegExp(pattern))) {
-      replacement = replacement('');
-      return replacement + source.split('').join(replacement) + replacement;
-    }
-
-    while (source.length > 0) {
-      match = source.match(pattern)
-      if (match && match[0].length > 0) {
-        result += source.slice(0, match.index);
-        result += String.interpret(replacement(match));
-        source  = source.slice(match.index + match[0].length);
-      } else {
-        result += source, source = '';
-      }
-    }
-    return result;
-  }
-
-  function sub(pattern, replacement, count) {
-    replacement = prepareReplacement(replacement);
-    count = Object.isUndefined(count) ? 1 : count;
-
-    return this.gsub(pattern, function(match) {
-      if (--count < 0) return match[0];
-      return replacement(match);
-    });
-  }
-
-  function scan(pattern, iterator) {
-    this.gsub(pattern, iterator);
-    return String(this);
-  }
-
-  function truncate(length, truncation) {
-    length = length || 30;
-    truncation = Object.isUndefined(truncation) ? '...' : truncation;
-    return this.length > length ?
-      this.slice(0, length - truncation.length) + truncation : String(this);
-  }
-
-  function strip() {
-    return this.replace(/^\s+/, '').replace(/\s+$/, '');
-  }
-
-  function stripTags() {
-    return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?(\/)?>|<\/\w+>/gi, '');
-  }
-
-  function stripScripts() {
-    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
-  }
-
-  function extractScripts() {
-    var matchAll = new RegExp(Prototype.ScriptFragment, 'img'),
-        matchOne = new RegExp(Prototype.ScriptFragment, 'im');
-    return (this.match(matchAll) || []).map(function(scriptTag) {
-      return (scriptTag.match(matchOne) || ['', ''])[1];
-    });
-  }
-
-  function evalScripts() {
-    return this.extractScripts().map(function(script) { return eval(script); });
-  }
-
-  function escapeHTML() {
-    return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
-  }
-
-  function unescapeHTML() {
-    return this.stripTags().replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');
-  }
-
-
-  function toQueryParams(separator) {
-    var match = this.strip().match(/([^?#]*)(#.*)?$/);
-    if (!match) return { };
-
-    return match[1].split(separator || '&').inject({ }, function(hash, pair) {
-      if ((pair = pair.split('='))[0]) {
-        var key = decodeURIComponent(pair.shift()),
-            value = pair.length > 1 ? pair.join('=') : pair[0];
-
-        if (value != undefined) {
-          value = value.gsub('+', ' ');
-          value = decodeURIComponent(value);
-        }
-
-        if (key in hash) {
-          if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
-          hash[key].push(value);
-        }
-        else hash[key] = value;
-      }
-      return hash;
-    });
-  }
-
-  function toArray() {
-    return this.split('');
-  }
-
-  function succ() {
-    return this.slice(0, this.length - 1) +
-      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
-  }
-
-  function times(count) {
-    return count < 1 ? '' : new Array(count + 1).join(this);
-  }
-
-  function camelize() {
-    return this.replace(/-+(.)?/g, function(match, chr) {
-      return chr ? chr.toUpperCase() : '';
-    });
-  }
-
-  function capitalize() {
-    return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
-  }
-
-  function underscore() {
-    return this.replace(/::/g, '/')
-               .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
-               .replace(/([a-z\d])([A-Z])/g, '$1_$2')
-               .replace(/-/g, '_')
-               .toLowerCase();
-  }
-
-  function dasherize() {
-    return this.replace(/_/g, '-');
-  }
-
-  function inspect(useDoubleQuotes) {
-    var escapedString = this.replace(/[\x00-\x1f\\]/g, function(character) {
-      if (character in String.specialChar) {
-        return String.specialChar[character];
-      }
-      return '\\u00' + character.charCodeAt().toPaddedString(2, 16);
-    });
-    if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
-    return "'" + escapedString.replace(/'/g, '\\\'') + "'";
-  }
-
-  function unfilterJSON(filter) {
-    return this.replace(filter || Prototype.JSONFilter, '$1');
-  }
-
-  function isJSON() {
-    var str = this;
-    if (str.blank()) return false;
-    str = str.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@');
-    str = str.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
-    str = str.replace(/(?:^|:|,)(?:\s*\[)+/g, '');
-    return (/^[\],:{}\s]*$/).test(str);
-  }
-
-  function evalJSON(sanitize) {
-    var json = this.unfilterJSON(),
-        cx = /[\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff\u0000]/g;
-    if (cx.test(json)) {
-      json = json.replace(cx, function (a) {
-        return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
-      });
-    }
-    try {
-      if (!sanitize || json.isJSON()) return eval('(' + json + ')');
-    } catch (e) { }
-    throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
-  }
-
-  function parseJSON() {
-    var json = this.unfilterJSON();
-    return JSON.parse(json);
-  }
-
-  function include(pattern) {
-    return this.indexOf(pattern) > -1;
-  }
-
-  function startsWith(pattern, position) {
-    position = Object.isNumber(position) ? position : 0;
-    return this.lastIndexOf(pattern, position) === position;
-  }
-
-  function endsWith(pattern, position) {
-    pattern = String(pattern);
-    position = Object.isNumber(position) ? position : this.length;
-    if (position < 0) position = 0;
-    if (position > this.length) position = this.length;
-    var d = position - pattern.length;
-    return d >= 0 && this.indexOf(pattern, d) === d;
-  }
-
-  function empty() {
-    return this == '';
-  }
-
-  function blank() {
-    return /^\s*$/.test(this);
-  }
-
-  function interpolate(object, pattern) {
-    return new Template(this, pattern).evaluate(object);
-  }
-
-  return {
-    gsub:           gsub,
-    sub:            sub,
-    scan:           scan,
-    truncate:       truncate,
-    strip:          String.prototype.trim || strip,
-    stripTags:      stripTags,
-    stripScripts:   stripScripts,
-    extractScripts: extractScripts,
-    evalScripts:    evalScripts,
-    escapeHTML:     escapeHTML,
-    unescapeHTML:   unescapeHTML,
-    toQueryParams:  toQueryParams,
-    parseQuery:     toQueryParams,
-    toArray:        toArray,
-    succ:           succ,
-    times:          times,
-    camelize:       camelize,
-    capitalize:     capitalize,
-    underscore:     underscore,
-    dasherize:      dasherize,
-    inspect:        inspect,
-    unfilterJSON:   unfilterJSON,
-    isJSON:         isJSON,
-    evalJSON:       NATIVE_JSON_PARSE_SUPPORT ? parseJSON : evalJSON,
-    include:        include,
-    startsWith:     String.prototype.startsWith || startsWith,
-    endsWith:       String.prototype.endsWith || endsWith,
-    empty:          empty,
-    blank:          blank,
-    interpolate:    interpolate
-  };
-})());
-
-var Template = Class.create({
-  initialize: function(template, pattern) {
-    this.template = template.toString();
-    this.pattern = pattern || Template.Pattern;
-  },
-
-  evaluate: function(object) {
-    if (object && Object.isFunction(object.toTemplateReplacements))
-      object = object.toTemplateReplacements();
-
-    return this.template.gsub(this.pattern, function(match) {
-      if (object == null) return (match[1] + '');
-
-      var before = match[1] || '';
-      if (before == '\\') return match[2];
-
-      var ctx = object, expr = match[3],
-          pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
-
-      match = pattern.exec(expr);
-      if (match == null) return before;
-
-      while (match != null) {
-        var comp = match[1].startsWith('[') ? match[2].replace(/\\\\]/g, ']') : match[1];
-        ctx = ctx[comp];
-        if (null == ctx || '' == match[3]) break;
-        expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
-        match = pattern.exec(expr);
-      }
-
-      return before + String.interpret(ctx);
-    });
-  }
-});
-Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
-
-var $break = { };
-
-var Enumerable = (function() {
-  function each(iterator, context) {
-    try {
-      this._each(iterator, context);
-    } catch (e) {
-      if (e != $break) throw e;
-    }
-    return this;
-  }
-
-  function eachSlice(number, iterator, context) {
-    var index = -number, slices = [], array = this.toArray();
-    if (number < 1) return array;
-    while ((index += number) < array.length)
-      slices.push(array.slice(index, index+number));
-    return slices.collect(iterator, context);
-  }
-
-  function all(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var result = true;
-    this.each(function(value, index) {
-      result = result && !!iterator.call(context, value, index, this);
-      if (!result) throw $break;
-    }, this);
-    return result;
-  }
-
-  function any(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var result = false;
-    this.each(function(value, index) {
-      if (result = !!iterator.call(context, value, index, this))
-        throw $break;
-    }, this);
-    return result;
-  }
-
-  function collect(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var results = [];
-    this.each(function(value, index) {
-      results.push(iterator.call(context, value, index, this));
-    }, this);
-    return results;
-  }
-
-  function detect(iterator, context) {
-    var result;
-    this.each(function(value, index) {
-      if (iterator.call(context, value, index, this)) {
-        result = value;
-        throw $break;
-      }
-    }, this);
-    return result;
-  }
-
-  function findAll(iterator, context) {
-    var results = [];
-    this.each(function(value, index) {
-      if (iterator.call(context, value, index, this))
-        results.push(value);
-    }, this);
-    return results;
-  }
-
-  function grep(filter, iterator, context) {
-    iterator = iterator || Prototype.K;
-    var results = [];
-
-    if (Object.isString(filter))
-      filter = new RegExp(RegExp.escape(filter));
-
-    this.each(function(value, index) {
-      if (filter.match(value))
-        results.push(iterator.call(context, value, index, this));
-    }, this);
-    return results;
-  }
-
-  function include(object) {
-    if (Object.isFunction(this.indexOf) && this.indexOf(object) != -1)
-      return true;
-
-    var found = false;
-    this.each(function(value) {
-      if (value == object) {
-        found = true;
-        throw $break;
-      }
-    });
-    return found;
-  }
-
-  function inGroupsOf(number, fillWith) {
-    fillWith = Object.isUndefined(fillWith) ? null : fillWith;
-    return this.eachSlice(number, function(slice) {
-      while(slice.length < number) slice.push(fillWith);
-      return slice;
-    });
-  }
-
-  function inject(memo, iterator, context) {
-    this.each(function(value, index) {
-      memo = iterator.call(context, memo, value, index, this);
-    }, this);
-    return memo;
-  }
-
-  function invoke(method) {
-    var args = $A(arguments).slice(1);
-    return this.map(function(value) {
-      return value[method].apply(value, args);
-    });
-  }
-
-  function max(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var result;
-    this.each(function(value, index) {
-      value = iterator.call(context, value, index, this);
-      if (result == null || value >= result)
-        result = value;
-    }, this);
-    return result;
-  }
-
-  function min(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var result;
-    this.each(function(value, index) {
-      value = iterator.call(context, value, index, this);
-      if (result == null || value < result)
-        result = value;
-    }, this);
-    return result;
-  }
-
-  function partition(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var trues = [], falses = [];
-    this.each(function(value, index) {
-      (iterator.call(context, value, index, this) ?
-        trues : falses).push(value);
-    }, this);
-    return [trues, falses];
-  }
-
-  function pluck(property) {
-    var results = [];
-    this.each(function(value) {
-      results.push(value[property]);
-    });
-    return results;
-  }
-
-  function reject(iterator, context) {
-    var results = [];
-    this.each(function(value, index) {
-      if (!iterator.call(context, value, index, this))
-        results.push(value);
-    }, this);
-    return results;
-  }
-
-  function sortBy(iterator, context) {
-    return this.map(function(value, index) {
-      return {
-        value: value,
-        criteria: iterator.call(context, value, index, this)
-      };
-    }, this).sort(function(left, right) {
-      var a = left.criteria, b = right.criteria;
-      return a < b ? -1 : a > b ? 1 : 0;
-    }).pluck('value');
-  }
-
-  function toArray() {
-    return this.map();
-  }
-
-  function zip() {
-    var iterator = Prototype.K, args = $A(arguments);
-    if (Object.isFunction(args.last()))
-      iterator = args.pop();
-
-    var collections = [this].concat(args).map($A);
-    return this.map(function(value, index) {
-      return iterator(collections.pluck(index));
-    });
-  }
-
-  function size() {
-    return this.toArray().length;
-  }
-
-  function inspect() {
-    return '#<Enumerable:' + this.toArray().inspect() + '>';
-  }
-
-
-
-
-
-
-
-
-
-  return {
-    each:       each,
-    eachSlice:  eachSlice,
-    all:        all,
-    every:      all,
-    any:        any,
-    some:       any,
-    collect:    collect,
-    map:        collect,
-    detect:     detect,
-    findAll:    findAll,
-    select:     findAll,
-    filter:     findAll,
-    grep:       grep,
-    include:    include,
-    member:     include,
-    inGroupsOf: inGroupsOf,
-    inject:     inject,
-    invoke:     invoke,
-    max:        max,
-    min:        min,
-    partition:  partition,
-    pluck:      pluck,
-    reject:     reject,
-    sortBy:     sortBy,
-    toArray:    toArray,
-    entries:    toArray,
-    zip:        zip,
-    size:       size,
-    inspect:    inspect,
-    find:       detect
-  };
-})();
-
-function $A(iterable) {
-  if (!iterable) return [];
-  if ('toArray' in Object(iterable)) return iterable.toArray();
-  var length = iterable.length || 0, results = new Array(length);
-  while (length--) results[length] = iterable[length];
-  return results;
-}
-
-
-function $w(string) {
-  if (!Object.isString(string)) return [];
-  string = string.strip();
-  return string ? string.split(/\s+/) : [];
-}
-
-Array.from = $A;
-
-
-(function() {
-  var arrayProto = Array.prototype,
-      slice = arrayProto.slice,
-      _each = arrayProto.forEach; // use native browser JS 1.6 implementation if available
-
-  function each(iterator, context) {
-    for (var i = 0, length = this.length >>> 0; i < length; i++) {
-      if (i in this) iterator.call(context, this[i], i, this);
-    }
-  }
-  if (!_each) _each = each;
-
-  function clear() {
-    this.length = 0;
-    return this;
-  }
-
-  function first() {
-    return this[0];
-  }
-
-  function last() {
-    return this[this.length - 1];
-  }
-
-  function compact() {
-    return this.select(function(value) {
-      return value != null;
-    });
-  }
-
-  function flatten() {
-    return this.inject([], function(array, value) {
-      if (Object.isArray(value))
-        return array.concat(value.flatten());
-      array.push(value);
-      return array;
-    });
-  }
-
-  function without() {
-    var values = slice.call(arguments, 0);
-    return this.select(function(value) {
-      return !values.include(value);
-    });
-  }
-
-  function reverse(inline) {
-    return (inline === false ? this.toArray() : this)._reverse();
-  }
-
-  function uniq(sorted) {
-    return this.inject([], function(array, value, index) {
-      if (0 == index || (sorted ? array.last() != value : !array.include(value)))
-        array.push(value);
-      return array;
-    });
-  }
-
-  function intersect(array) {
-    return this.uniq().findAll(function(item) {
-      return array.indexOf(item) !== -1;
-    });
-  }
-
-
-  function clone() {
-    return slice.call(this, 0);
-  }
-
-  function size() {
-    return this.length;
-  }
-
-  function inspect() {
-    return '[' + this.map(Object.inspect).join(', ') + ']';
-  }
-
-  function indexOf(item, i) {
-    if (this == null) throw new TypeError();
-
-    var array = Object(this), length = array.length >>> 0;
-    if (length === 0) return -1;
-
-    i = Number(i);
-    if (isNaN(i)) {
-      i = 0;
-    } else if (i !== 0 && isFinite(i)) {
-      i = (i > 0 ? 1 : -1) * Math.floor(Math.abs(i));
-    }
-
-    if (i > length) return -1;
-
-    var k = i >= 0 ? i : Math.max(length - Math.abs(i), 0);
-    for (; k < length; k++)
-      if (k in array && array[k] === item) return k;
-    return -1;
-  }
-
-
-  function lastIndexOf(item, i) {
-    if (this == null) throw new TypeError();
-
-    var array = Object(this), length = array.length >>> 0;
-    if (length === 0) return -1;
-
-    if (!Object.isUndefined(i)) {
-      i = Number(i);
-      if (isNaN(i)) {
-        i = 0;
-      } else if (i !== 0 && isFinite(i)) {
-        i = (i > 0 ? 1 : -1) * Math.floor(Math.abs(i));
-      }
-    } else {
-      i = length;
-    }
-
-    var k = i >= 0 ? Math.min(i, length - 1) :
-     length - Math.abs(i);
-
-    for (; k >= 0; k--)
-      if (k in array && array[k] === item) return k;
-    return -1;
-  }
-
-  function concat(_) {
-    var array = [], items = slice.call(arguments, 0), item, n = 0;
-    items.unshift(this);
-    for (var i = 0, length = items.length; i < length; i++) {
-      item = items[i];
-      if (Object.isArray(item) && !('callee' in item)) {
-        for (var j = 0, arrayLength = item.length; j < arrayLength; j++) {
-          if (j in item) array[n] = item[j];
-          n++;
-        }
-      } else {
-        array[n++] = item;
-      }
-    }
-    array.length = n;
-    return array;
-  }
-
-
-  function wrapNative(method) {
-    return function() {
-      if (arguments.length === 0) {
-        return method.call(this, Prototype.K);
-      } else if (arguments[0] === undefined) {
-        var args = slice.call(arguments, 1);
-        args.unshift(Prototype.K);
-        return method.apply(this, args);
-      } else {
-        return method.apply(this, arguments);
-      }
-    };
-  }
-
-
-  function map(iterator) {
-    if (this == null) throw new TypeError();
-    iterator = iterator || Prototype.K;
-
-    var object = Object(this);
-    var results = [], context = arguments[1], n = 0;
-
-    for (var i = 0, length = object.length >>> 0; i < length; i++) {
-      if (i in object) {
-        results[n] = iterator.call(context, object[i], i, object);
-      }
-      n++;
-    }
-    results.length = n;
-    return results;
-  }
-
-  if (arrayProto.map) {
-    map = wrapNative(Array.prototype.map);
-  }
-
-  function filter(iterator) {
-    if (this == null || !Object.isFunction(iterator))
-      throw new TypeError();
-
-    var object = Object(this);
-    var results = [], context = arguments[1], value;
-
-    for (var i = 0, length = object.length >>> 0; i < length; i++) {
-      if (i in object) {
-        value = object[i];
-        if (iterator.call(context, value, i, object)) {
-          results.push(value);
-        }
-      }
-    }
-    return results;
-  }
-
-  if (arrayProto.filter) {
-    filter = Array.prototype.filter;
-  }
-
-  function some(iterator) {
-    if (this == null) throw new TypeError();
-    iterator = iterator || Prototype.K;
-    var context = arguments[1];
-
-    var object = Object(this);
-    for (var i = 0, length = object.length >>> 0; i < length; i++) {
-      if (i in object && iterator.call(context, object[i], i, object)) {
-        return true;
-      }
-    }
-
-    return false;
-  }
-
-  if (arrayProto.some) {
-    some = wrapNative(Array.prototype.some);
-  }
-
-  function every(iterator) {
-    if (this == null) throw new TypeError();
-    iterator = iterator || Prototype.K;
-    var context = arguments[1];
-
-    var object = Object(this);
-    for (var i = 0, length = object.length >>> 0; i < length; i++) {
-      if (i in object && !iterator.call(context, object[i], i, object)) {
-        return false;
-      }
-    }
-
-    return true;
-  }
-
-  if (arrayProto.every) {
-    every = wrapNative(Array.prototype.every);
-  }
-
-
-  Object.extend(arrayProto, Enumerable);
-
-  if (arrayProto.entries === Enumerable.entries) {
-    delete arrayProto.entries;
-  }
-
-  if (!arrayProto._reverse)
-    arrayProto._reverse = arrayProto.reverse;
-
-  Object.extend(arrayProto, {
-    _each:     _each,
-
-    map:       map,
-    collect:   map,
-    select:    filter,
-    filter:    filter,
-    findAll:   filter,
-    some:      some,
-    any:       some,
-    every:     every,
-    all:       every,
-
-    clear:     clear,
-    first:     first,
-    last:      last,
-    compact:   compact,
-    flatten:   flatten,
-    without:   without,
-    reverse:   reverse,
-    uniq:      uniq,
-    intersect: intersect,
-    clone:     clone,
-    toArray:   clone,
-    size:      size,
-    inspect:   inspect
-  });
-
-  var CONCAT_ARGUMENTS_BUGGY = (function() {
-    return [].concat(arguments)[0][0] !== 1;
-  })(1,2);
-
-  if (CONCAT_ARGUMENTS_BUGGY) arrayProto.concat = concat;
-
-  if (!arrayProto.indexOf) arrayProto.indexOf = indexOf;
-  if (!arrayProto.lastIndexOf) arrayProto.lastIndexOf = lastIndexOf;
-})();
-function $H(object) {
-  return new Hash(object);
-};
-
-var Hash = Class.create(Enumerable, (function() {
-  function initialize(object) {
-    this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
-  }
-
-
-  function _each(iterator, context) {
-    var i = 0;
-    for (var key in this._object) {
-      var value = this._object[key], pair = [key, value];
-      pair.key = key;
-      pair.value = value;
-      iterator.call(context, pair, i);
-      i++;
-    }
-  }
-
-  function set(key, value) {
-    return this._object[key] = value;
-  }
-
-  function get(key) {
-    if (this._object[key] !== Object.prototype[key])
-      return this._object[key];
-  }
-
-  function unset(key) {
-    var value = this._object[key];
-    delete this._object[key];
-    return value;
-  }
-
-  function toObject() {
-    return Object.clone(this._object);
-  }
-
-
-
-  function keys() {
-    return this.pluck('key');
-  }
-
-  function values() {
-    return this.pluck('value');
-  }
-
-  function index(value) {
-    var match = this.detect(function(pair) {
-      return pair.value === value;
-    });
-    return match && match.key;
-  }
-
-  function merge(object) {
-    return this.clone().update(object);
-  }
-
-  function update(object) {
-    return new Hash(object).inject(this, function(result, pair) {
-      result.set(pair.key, pair.value);
-      return result;
-    });
-  }
-
-  function toQueryPair(key, value) {
-    if (Object.isUndefined(value)) return key;
-
-    value = String.interpret(value);
-
-    value = value.gsub(/(\r)?\n/, '\r\n');
-    value = encodeURIComponent(value);
-    value = value.gsub(/%20/, '+');
-    return key + '=' + value;
-  }
-
-  function toQueryString() {
-    return this.inject([], function(results, pair) {
-      var key = encodeURIComponent(pair.key), values = pair.value;
-
-      if (values && typeof values == 'object') {
-        if (Object.isArray(values)) {
-          var queryValues = [];
-          for (var i = 0, len = values.length, value; i < len; i++) {
-            value = values[i];
-            queryValues.push(toQueryPair(key, value));
-          }
-          return results.concat(queryValues);
-        }
-      } else results.push(toQueryPair(key, values));
-      return results;
-    }).join('&');
-  }
-
-  function inspect() {
-    return '#<Hash:{' + this.map(function(pair) {
-      return pair.map(Object.inspect).join(': ');
-    }).join(', ') + '}>';
-  }
-
-  function clone() {
-    return new Hash(this);
-  }
-
-  return {
-    initialize:             initialize,
-    _each:                  _each,
-    set:                    set,
-    get:                    get,
-    unset:                  unset,
-    toObject:               toObject,
-    toTemplateReplacements: toObject,
-    keys:                   keys,
-    values:                 values,
-    index:                  index,
-    merge:                  merge,
-    update:                 update,
-    toQueryString:          toQueryString,
-    inspect:                inspect,
-    toJSON:                 toObject,
-    clone:                  clone
-  };
-})());
-
-Hash.from = $H;
-Object.extend(Number.prototype, (function() {
-  function toColorPart() {
-    return this.toPaddedString(2, 16);
-  }
-
-  function succ() {
-    return this + 1;
-  }
-
-  function times(iterator, context) {
-    $R(0, this, true).each(iterator, context);
-    return this;
-  }
-
-  function toPaddedString(length, radix) {
-    var string = this.toString(radix || 10);
-    return '0'.times(length - string.length) + string;
-  }
-
-  function abs() {
-    return Math.abs(this);
-  }
-
-  function round() {
-    return Math.round(this);
-  }
-
-  function ceil() {
-    return Math.ceil(this);
-  }
-
-  function floor() {
-    return Math.floor(this);
-  }
-
-  return {
-    toColorPart:    toColorPart,
-    succ:           succ,
-    times:          times,
-    toPaddedString: toPaddedString,
-    abs:            abs,
-    round:          round,
-    ceil:           ceil,
-    floor:          floor
-  };
-})());
-
-function $R(start, end, exclusive) {
-  return new ObjectRange(start, end, exclusive);
-}
-
-var ObjectRange = Class.create(Enumerable, (function() {
-  function initialize(start, end, exclusive) {
-    this.start = start;
-    this.end = end;
-    this.exclusive = exclusive;
-  }
-
-  function _each(iterator, context) {
-    var value = this.start, i;
-    for (i = 0; this.include(value); i++) {
-      iterator.call(context, value, i);
-      value = value.succ();
-    }
-  }
-
-  function include(value) {
-    if (value < this.start)
-      return false;
-    if (this.exclusive)
-      return value < this.end;
-    return value <= this.end;
-  }
-
-  return {
-    initialize: initialize,
-    _each:      _each,
-    include:    include
-  };
-})());
-
-
-
-var Abstract = { };
-
-
-var Try = {
-  these: function() {
-    var returnValue;
-
-    for (var i = 0, length = arguments.length; i < length; i++) {
-      var lambda = arguments[i];
-      try {
-        returnValue = lambda();
-        break;
-      } catch (e) { }
-    }
-
-    return returnValue;
-  }
-};
-
-var Ajax = {
-  getTransport: function() {
-    return Try.these(
-      function() {return new XMLHttpRequest()},
-      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
-      function() {return new ActiveXObject('Microsoft.XMLHTTP')}
-    ) || false;
-  },
-
-  activeRequestCount: 0
-};
-
-Ajax.Responders = {
-  responders: [],
-
-  _each: function(iterator, context) {
-    this.responders._each(iterator, context);
-  },
-
-  register: function(responder) {
-    if (!this.include(responder))
-      this.responders.push(responder);
-  },
-
-  unregister: function(responder) {
-    this.responders = this.responders.without(responder);
-  },
-
-  dispatch: function(callback, request, transport, json) {
-    this.each(function(responder) {
-      if (Object.isFunction(responder[callback])) {
-        try {
-          responder[callback].apply(responder, [request, transport, json]);
-        } catch (e) { }
-      }
-    });
-  }
-};
-
-Object.extend(Ajax.Responders, Enumerable);
-
-Ajax.Responders.register({
-  onCreate:   function() { Ajax.activeRequestCount++ },
-  onComplete: function() { Ajax.activeRequestCount-- }
-});
-Ajax.Base = Class.create({
-  initialize: function(options) {
-    this.options = {
-      method:       'post',
-      asynchronous: true,
-      contentType:  'application/x-www-form-urlencoded',
-      encoding:     'UTF-8',
-      parameters:   '',
-      evalJSON:     true,
-      evalJS:       true
-    };
-    Object.extend(this.options, options || { });
-
-    this.options.method = this.options.method.toLowerCase();
-
-    if (Object.isHash(this.options.parameters))
-      this.options.parameters = this.options.parameters.toObject();
-  }
-});
-Ajax.Request = Class.create(Ajax.Base, {
-  _complete: false,
-
-  initialize: function($super, url, options) {
-    $super(options);
-    this.transport = Ajax.getTransport();
-    this.request(url);
-  },
-
-  request: function(url) {
-    this.url = url;
-    this.method = this.options.method;
-    var params = Object.isString(this.options.parameters) ?
-          this.options.parameters :
-          Object.toQueryString(this.options.parameters);
-
-    if (!['get', 'post'].include(this.method)) {
-      params += (params ? '&' : '') + "_method=" + this.method;
-      this.method = 'post';
-    }
-
-    if (params && this.method === 'get') {
-      this.url += (this.url.include('?') ? '&' : '?') + params;
-    }
-
-    this.parameters = params.toQueryParams();
-
-    try {
-      var response = new Ajax.Response(this);
-      if (this.options.onCreate) this.options.onCreate(response);
-      Ajax.Responders.dispatch('onCreate', this, response);
-
-      this.transport.open(this.method.toUpperCase(), this.url,
-        this.options.asynchronous);
-
-      if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);
-
-      this.transport.onreadystatechange = this.onStateChange.bind(this);
-      this.setRequestHeaders();
-
-      this.body = this.method == 'post' ? (this.options.postBody || params) : null;
-      this.transport.send(this.body);
-
-      /* Force Firefox to handle ready state 4 for synchronous requests */
-      if (!this.options.asynchronous && this.transport.overrideMimeType)
-        this.onStateChange();
-
-    }
-    catch (e) {
-      this.dispatchException(e);
-    }
-  },
-
-  onStateChange: function() {
-    var readyState = this.transport.readyState;
-    if (readyState > 1 && !((readyState == 4) && this._complete))
-      this.respondToReadyState(this.transport.readyState);
-  },
-
-  setRequestHeaders: function() {
-    var headers = {
-      'X-Requested-With': 'XMLHttpRequest',
-      'X-Prototype-Version': Prototype.Version,
-      'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
-    };
-
-    if (this.method == 'post') {
-      headers['Content-type'] = this.options.contentType +
-        (this.options.encoding ? '; charset=' + this.options.encoding : '');
-
-      /* Force "Connection: close" for older Mozilla browsers to work
-       * around a bug where XMLHttpRequest sends an incorrect
-       * Content-length header. See Mozilla Bugzilla #246651.
-       */
-      if (this.transport.overrideMimeType &&
-          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
-            headers['Connection'] = 'close';
-    }
-
-    if (typeof this.options.requestHeaders == 'object') {
-      var extras = this.options.requestHeaders;
-
-      if (Object.isFunction(extras.push))
-        for (var i = 0, length = extras.length; i < length; i += 2)
-          headers[extras[i]] = extras[i+1];
-      else
-        $H(extras).each(function(pair) { headers[pair.key] = pair.value });
-    }
-
-    for (var name in headers)
-      if (headers[name] != null)
-        this.transport.setRequestHeader(name, headers[name]);
-  },
-
-  success: function() {
-    var status = this.getStatus();
-    return !status || (status >= 200 && status < 300) || status == 304;
-  },
-
-  getStatus: function() {
-    try {
-      if (this.transport.status === 1223) return 204;
-      return this.transport.status || 0;
-    } catch (e) { return 0 }
-  },
-
-  respondToReadyState: function(readyState) {
-    var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);
-
-    if (state == 'Complete') {
-      try {
-        this._complete = true;
-        (this.options['on' + response.status]
-         || this.options['on' + (this.success() ? 'Success' : 'Failure')]
-         || Prototype.emptyFunction)(response, response.headerJSON);
-      } catch (e) {
-        this.dispatchException(e);
-      }
-
-      var contentType = response.getHeader('Content-type');
-      if (this.options.evalJS == 'force'
-          || (this.options.evalJS && this.isSameOrigin() && contentType
-          && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
-        this.evalResponse();
-    }
-
-    try {
-      (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
-      Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
-    } catch (e) {
-      this.dispatchException(e);
-    }
-
-    if (state == 'Complete') {
-      this.transport.onreadystatechange = Prototype.emptyFunction;
-    }
-  },
-
-  isSameOrigin: function() {
-    var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
-    return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
-      protocol: location.protocol,
-      domain: document.domain,
-      port: location.port ? ':' + location.port : ''
-    }));
-  },
-
-  getHeader: function(name) {
-    try {
-      return this.transport.getResponseHeader(name) || null;
-    } catch (e) { return null; }
-  },
-
-  evalResponse: function() {
-    try {
-      return eval((this.transport.responseText || '').unfilterJSON());
-    } catch (e) {
-      this.dispatchException(e);
-    }
-  },
-
-  dispatchException: function(exception) {
-    (this.options.onException || Prototype.emptyFunction)(this, exception);
-    Ajax.Responders.dispatch('onException', this, exception);
-  }
-});
-
-Ajax.Request.Events =
-  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
-
-
-
-
-
-
-
-
-Ajax.Response = Class.create({
-  initialize: function(request){
-    this.request = request;
-    var transport  = this.transport  = request.transport,
-        readyState = this.readyState = transport.readyState;
-
-    if ((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
-      this.status       = this.getStatus();
-      this.statusText   = this.getStatusText();
-      this.responseText = String.interpret(transport.responseText);
-      this.headerJSON   = this._getHeaderJSON();
-    }
-
-    if (readyState == 4) {
-      var xml = transport.responseXML;
-      this.responseXML  = Object.isUndefined(xml) ? null : xml;
-      this.responseJSON = this._getResponseJSON();
-    }
-  },
-
-  status:      0,
-
-  statusText: '',
-
-  getStatus: Ajax.Request.prototype.getStatus,
-
-  getStatusText: function() {
-    try {
-      return this.transport.statusText || '';
-    } catch (e) { return '' }
-  },
-
-  getHeader: Ajax.Request.prototype.getHeader,
-
-  getAllHeaders: function() {
-    try {
-      return this.getAllResponseHeaders();
-    } catch (e) { return null }
-  },
-
-  getResponseHeader: function(name) {
-    return this.transport.getResponseHeader(name);
-  },
-
-  getAllResponseHeaders: function() {
-    return this.transport.getAllResponseHeaders();
-  },
-
-  _getHeaderJSON: function() {
-    var json = this.getHeader('X-JSON');
-    if (!json) return null;
-
-    try {
-      json = decodeURIComponent(escape(json));
-    } catch(e) {
-    }
-
-    try {
-      return json.evalJSON(this.request.options.sanitizeJSON ||
-        !this.request.isSameOrigin());
-    } catch (e) {
-      this.request.dispatchException(e);
-    }
-  },
-
-  _getResponseJSON: function() {
-    var options = this.request.options;
-    if (!options.evalJSON || (options.evalJSON != 'force' &&
-      !(this.getHeader('Content-type') || '').include('application/json')) ||
-        this.responseText.blank())
-          return null;
-    try {
-      return this.responseText.evalJSON(options.sanitizeJSON ||
-        !this.request.isSameOrigin());
-    } catch (e) {
-      this.request.dispatchException(e);
-    }
-  }
-});
-
-Ajax.Updater = Class.create(Ajax.Request, {
-  initialize: function($super, container, url, options) {
-    this.container = {
-      success: (container.success || container),
-      failure: (container.failure || (container.success ? null : container))
-    };
-
-    options = Object.clone(options);
-    var onComplete = options.onComplete;
-    options.onComplete = (function(response, json) {
-      this.updateContent(response.responseText);
-      if (Object.isFunction(onComplete)) onComplete(response, json);
-    }).bind(this);
-
-    $super(url, options);
-  },
-
-  updateContent: function(responseText) {
-    var receiver = this.container[this.success() ? 'success' : 'failure'],
-        options = this.options;
-
-    if (!options.evalScripts) responseText = responseText.stripScripts();
-
-    if (receiver = $(receiver)) {
-      if (options.insertion) {
-        if (Object.isString(options.insertion)) {
-          var insertion = { }; insertion[options.insertion] = responseText;
-          receiver.insert(insertion);
-        }
-        else options.insertion(receiver, responseText);
-      }
-      else receiver.update(responseText);
-    }
-  }
-});
-
-Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
-  initialize: function($super, container, url, options) {
-    $super(options);
-    this.onComplete = this.options.onComplete;
-
-    this.frequency = (this.options.frequency || 2);
-    this.decay = (this.options.decay || 1);
-
-    this.updater = { };
-    this.container = container;
-    this.url = url;
-
-    this.start();
-  },
-
-  start: function() {
-    this.options.onComplete = this.updateComplete.bind(this);
-    this.onTimerEvent();
-  },
-
-  stop: function() {
-    this.updater.options.onComplete = undefined;
-    clearTimeout(this.timer);
-    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
-  },
-
-  updateComplete: function(response) {
-    if (this.options.decay) {
-      this.decay = (response.responseText == this.lastText ?
-        this.decay * this.options.decay : 1);
-
-      this.lastText = response.responseText;
-    }
-    this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
-  },
-
-  onTimerEvent: function() {
-    this.updater = new Ajax.Updater(this.container, this.url, this.options);
-  }
-});
-
-(function(GLOBAL) {
-
-  var UNDEFINED;
-  var SLICE = Array.prototype.slice;
-
-  var DIV = document.createElement('div');
-
-
-  function $(element) {
-    if (arguments.length > 1) {
-      for (var i = 0, elements = [], length = arguments.length; i < length; i++)
-        elements.push($(arguments[i]));
-      return elements;
-    }
-
-    if (Object.isString(element))
-      element = document.getElementById(element);
-    return Element.extend(element);
-  }
-
-  GLOBAL.$ = $;
-
-
-  if (!GLOBAL.Node) GLOBAL.Node = {};
-
-  if (!GLOBAL.Node.ELEMENT_NODE) {
-    Object.extend(GLOBAL.Node, {
-      ELEMENT_NODE:                1,
-      ATTRIBUTE_NODE:              2,
-      TEXT_NODE:                   3,
-      CDATA_SECTION_NODE:          4,
-      ENTITY_REFERENCE_NODE:       5,
-      ENTITY_NODE:                 6,
-      PROCESSING_INSTRUCTION_NODE: 7,
-      COMMENT_NODE:                8,
-      DOCUMENT_NODE:               9,
-      DOCUMENT_TYPE_NODE:         10,
-      DOCUMENT_FRAGMENT_NODE:     11,
-      NOTATION_NODE:              12
-    });
-  }
-
-  var ELEMENT_CACHE = {};
-
-  function shouldUseCreationCache(tagName, attributes) {
-    if (tagName === 'select') return false;
-    if ('type' in attributes) return false;
-    return true;
-  }
-
-  var HAS_EXTENDED_CREATE_ELEMENT_SYNTAX = (function(){
-    try {
-      var el = document.createElement('<input name="x">');
-      return el.tagName.toLowerCase() === 'input' && el.name === 'x';
-    }
-    catch(err) {
-      return false;
-    }
-  })();
-
-
-  var oldElement = GLOBAL.Element;
-  function Element(tagName, attributes) {
-    attributes = attributes || {};
-    tagName = tagName.toLowerCase();
-
-    if (HAS_EXTENDED_CREATE_ELEMENT_SYNTAX && attributes.name) {
-      tagName = '<' + tagName + ' name="' + attributes.name + '">';
-      delete attributes.name;
-      return Element.writeAttribute(document.createElement(tagName), attributes);
-    }
-
-    if (!ELEMENT_CACHE[tagName])
-      ELEMENT_CACHE[tagName] = Element.extend(document.createElement(tagName));
-
-    var node = shouldUseCreationCache(tagName, attributes) ?
-     ELEMENT_CACHE[tagName].cloneNode(false) : document.createElement(tagName);
-
-    return Element.writeAttribute(node, attributes);
-  }
-
-  GLOBAL.Element = Element;
-
-  Object.extend(GLOBAL.Element, oldElement || {});
-  if (oldElement) GLOBAL.Element.prototype = oldElement.prototype;
-
-  Element.Methods = { ByTag: {}, Simulated: {} };
-
-  var methods = {};
-
-  var INSPECT_ATTRIBUTES = { id: 'id', className: 'class' };
-  function inspect(element) {
-    element = $(element);
-    var result = '<' + element.tagName.toLowerCase();
-
-    var attribute, value;
-    for (var property in INSPECT_ATTRIBUTES) {
-      attribute = INSPECT_ATTRIBUTES[property];
-      value = (element[property] || '').toString();
-      if (value) result += ' ' + attribute + '=' + value.inspect(true);
-    }
-
-    return result + '>';
-  }
-
-  methods.inspect = inspect;
-
-
-  function visible(element) {
-    return $(element).getStyle('display') !== 'none';
-  }
-
-  function toggle(element, bool) {
-    element = $(element);
-    if (typeof bool !== 'boolean')
-      bool = !Element.visible(element);
-    Element[bool ? 'show' : 'hide'](element);
-
-    return element;
-  }
-
-  function hide(element) {
-    element = $(element);
-    element.style.display = 'none';
-    return element;
-  }
-
-  function show(element) {
-    element = $(element);
-    element.style.display = '';
-    return element;
-  }
-
-
-  Object.extend(methods, {
-    visible: visible,
-    toggle:  toggle,
-    hide:    hide,
-    show:    show
-  });
-
-
-  function remove(element) {
-    element = $(element);
-    element.parentNode.removeChild(element);
-    return element;
-  }
-
-  var SELECT_ELEMENT_INNERHTML_BUGGY = (function(){
-    var el = document.createElement("select"),
-        isBuggy = true;
-    el.innerHTML = "<option value=\"test\">test</option>";
-    if (el.options && el.options[0]) {
-      isBuggy = el.options[0].nodeName.toUpperCase() !== "OPTION";
-    }
-    el = null;
-    return isBuggy;
-  })();
-
-  var TABLE_ELEMENT_INNERHTML_BUGGY = (function(){
-    try {
-      var el = document.createElement("table");
-      if (el && el.tBodies) {
-        el.innerHTML = "<tbody><tr><td>test</td></tr></tbody>";
-        var isBuggy = typeof el.tBodies[0] == "undefined";
-        el = null;
-        return isBuggy;
-      }
-    } catch (e) {
-      return true;
-    }
-  })();
-
-  var LINK_ELEMENT_INNERHTML_BUGGY = (function() {
-    try {
-      var el = document.createElement('div');
-      el.innerHTML = "<link />";
-      var isBuggy = (el.childNodes.length === 0);
-      el = null;
-      return isBuggy;
-    } catch(e) {
-      return true;
-    }
-  })();
-
-  var ANY_INNERHTML_BUGGY = SELECT_ELEMENT_INNERHTML_BUGGY ||
-   TABLE_ELEMENT_INNERHTML_BUGGY || LINK_ELEMENT_INNERHTML_BUGGY;
-
-  var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING = (function () {
-    var s = document.createElement("script"),
-        isBuggy = false;
-    try {
-      s.appendChild(document.createTextNode(""));
-      isBuggy = !s.firstChild ||
-        s.firstChild && s.firstChild.nodeType !== 3;
-    } catch (e) {
-      isBuggy = true;
-    }
-    s = null;
-    return isBuggy;
-  })();
-
-  function update(element, content) {
-    element = $(element);
-
-    var descendants = element.getElementsByTagName('*'),
-     i = descendants.length;
-    while (i--) purgeElement(descendants[i]);
-
-    if (content && content.toElement)
-      content = content.toElement();
-
-    if (Object.isElement(content))
-      return element.update().insert(content);
-
-
-    content = Object.toHTML(content);
-    var tagName = element.tagName.toUpperCase();
-
-    if (tagName === 'SCRIPT' && SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING) {
-      element.text = content;
-      return element;
-    }
-
-    if (ANY_INNERHTML_BUGGY) {
-      if (tagName in INSERTION_TRANSLATIONS.tags) {
-        while (element.firstChild)
-          element.removeChild(element.firstChild);
-
-        var nodes = getContentFromAnonymousElement(tagName, content.stripScripts());
-        for (var i = 0, node; node = nodes[i]; i++)
-          element.appendChild(node);
-
-      } else if (LINK_ELEMENT_INNERHTML_BUGGY && Object.isString(content) && content.indexOf('<link') > -1) {
-        while (element.firstChild)
-          element.removeChild(element.firstChild);
-
-        var nodes = getContentFromAnonymousElement(tagName,
-         content.stripScripts(), true);
-
-        for (var i = 0, node; node = nodes[i]; i++)
-          element.appendChild(node);
-      } else {
-        element.innerHTML = content.stripScripts();
-      }
-    } else {
-      element.innerHTML = content.stripScripts();
-    }
-
-    content.evalScripts.bind(content).defer();
-    return element;
-  }
-
-  function replace(element, content) {
-    element = $(element);
-
-    if (content && content.toElement) {
-      content = content.toElement();
-    } else if (!Object.isElement(content)) {
-      content = Object.toHTML(content);
-      var range = element.ownerDocument.createRange();
-      range.selectNode(element);
-      content.evalScripts.bind(content).defer();
-      content = range.createContextualFragment(content.stripScripts());
-    }
-
-    element.parentNode.replaceChild(content, element);
-    return element;
-  }
-
-  var INSERTION_TRANSLATIONS = {
-    before: function(element, node) {
-      element.parentNode.insertBefore(node, element);
-    },
-    top: function(element, node) {
-      element.insertBefore(node, element.firstChild);
-    },
-    bottom: function(element, node) {
-      element.appendChild(node);
-    },
-    after: function(element, node) {
-      element.parentNode.insertBefore(node, element.nextSibling);
-    },
-
-    tags: {
-      TABLE:  ['<table>',                '</table>',                   1],
-      TBODY:  ['<table><tbody>',         '</tbody></table>',           2],
-      TR:     ['<table><tbody><tr>',     '</tr></tbody></table>',      3],
-      TD:     ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
-      SELECT: ['<select>',               '</select>',                  1]
-    }
-  };
-
-  var tags = INSERTION_TRANSLATIONS.tags;
-
-  Object.extend(tags, {
-    THEAD: tags.TBODY,
-    TFOOT: tags.TBODY,
-    TH:    tags.TD
-  });
-
-  function replace_IE(element, content) {
-    element = $(element);
-    if (content && content.toElement)
-      content = content.toElement();
-    if (Object.isElement(content)) {
-      element.parentNode.replaceChild(content, element);
-      return element;
-    }
-
-    content = Object.toHTML(content);
-    var parent = element.parentNode, tagName = parent.tagName.toUpperCase();
-
-    if (tagName in INSERTION_TRANSLATIONS.tags) {
-      var nextSibling = Element.next(element);
-      var fragments = getContentFromAnonymousElement(
-       tagName, content.stripScripts());
-
-      parent.removeChild(element);
-
-      var iterator;
-      if (nextSibling)
-        iterator = function(node) { parent.insertBefore(node, nextSibling) };
-      else
-        iterator = function(node) { parent.appendChild(node); }
-
-      fragments.each(iterator);
-    } else {
-      element.outerHTML = content.stripScripts();
-    }
-
-    content.evalScripts.bind(content).defer();
-    return element;
-  }
-
-  if ('outerHTML' in document.documentElement)
-    replace = replace_IE;
-
-  function isContent(content) {
-    if (Object.isUndefined(content) || content === null) return false;
-
-    if (Object.isString(content) || Object.isNumber(content)) return true;
-    if (Object.isElement(content)) return true;
-    if (content.toElement || content.toHTML) return true;
-
-    return false;
-  }
-
-  function insertContentAt(element, content, position) {
-    position   = position.toLowerCase();
-    var method = INSERTION_TRANSLATIONS[position];
-
-    if (content && content.toElement) content = content.toElement();
-    if (Object.isElement(content)) {
-      method(element, content);
-      return element;
-    }
-
-    content = Object.toHTML(content);
-    var tagName = ((position === 'before' || position === 'after') ?
-     element.parentNode : element).tagName.toUpperCase();
-
-    var childNodes = getContentFromAnonymousElement(tagName, content.stripScripts());
-
-    if (position === 'top' || position === 'after') childNodes.reverse();
-
-    for (var i = 0, node; node = childNodes[i]; i++)
-      method(element, node);
-
-    content.evalScripts.bind(content).defer();
-  }
-
-  function insert(element, insertions) {
-    element = $(element);
-
-    if (isContent(insertions))
-      insertions = { bottom: insertions };
-
-    for (var position in insertions)
-      insertContentAt(element, insertions[position], position);
-
-    return element;
-  }
-
-  function wrap(element, wrapper, attributes) {
-    element = $(element);
-
-    if (Object.isElement(wrapper)) {
-      $(wrapper).writeAttribute(attributes || {});
-    } else if (Object.isString(wrapper)) {
-      wrapper = new Element(wrapper, attributes);
-    } else {
-      wrapper = new Element('div', wrapper);
-    }
-
-    if (element.parentNode)
-      element.parentNode.replaceChild(wrapper, element);
-
-    wrapper.appendChild(element);
-
-    return wrapper;
-  }
-
-  function cleanWhitespace(element) {
-    element = $(element);
-    var node = element.firstChild;
-
-    while (node) {
-      var nextNode = node.nextSibling;
-      if (node.nodeType === Node.TEXT_NODE && !/\S/.test(node.nodeValue))
-        element.removeChild(node);
-      node = nextNode;
-    }
-    return element;
-  }
-
-  function empty(element) {
-    return $(element).innerHTML.blank();
-  }
-
-  function getContentFromAnonymousElement(tagName, html, force) {
-    var t = INSERTION_TRANSLATIONS.tags[tagName], div = DIV;
-
-    var workaround = !!t;
-    if (!workaround && force) {
-      workaround = true;
-      t = ['', '', 0];
-    }
-
-    if (workaround) {
-      div.innerHTML = '&#160;' + t[0] + html + t[1];
-      div.removeChild(div.firstChild);
-      for (var i = t[2]; i--; )
-        div = div.firstChild;
-    } else {
-      div.innerHTML = html;
-    }
-
-    return $A(div.childNodes);
-  }
-
-  function clone(element, deep) {
-    if (!(element = $(element))) return;
-    var clone = element.cloneNode(deep);
-    if (!HAS_UNIQUE_ID_PROPERTY) {
-      clone._prototypeUID = UNDEFINED;
-      if (deep) {
-        var descendants = Element.select(clone, '*'),
-         i = descendants.length;
-        while (i--)
-          descendants[i]._prototypeUID = UNDEFINED;
-      }
-    }
-    return Element.extend(clone);
-  }
-
-  function purgeElement(element) {
-    var uid = getUniqueElementID(element);
-    if (uid) {
-      Element.stopObserving(element);
-      if (!HAS_UNIQUE_ID_PROPERTY)
-        element._prototypeUID = UNDEFINED;
-      delete Element.Storage[uid];
-    }
-  }
-
-  function purgeCollection(elements) {
-    var i = elements.length;
-    while (i--)
-      purgeElement(elements[i]);
-  }
-
-  function purgeCollection_IE(elements) {
-    var i = elements.length, element, uid;
-    while (i--) {
-      element = elements[i];
-      uid = getUniqueElementID(element);
-      delete Element.Storage[uid];
-      delete Event.cache[uid];
-    }
-  }
-
-  if (HAS_UNIQUE_ID_PROPERTY) {
-    purgeCollection = purgeCollection_IE;
-  }
-
-
-  function purge(element) {
-    if (!(element = $(element))) return;
-    purgeElement(element);
-
-    var descendants = element.getElementsByTagName('*'),
-     i = descendants.length;
-
-    while (i--) purgeElement(descendants[i]);
-
-    return null;
-  }
-
-  Object.extend(methods, {
-    remove:  remove,
-    update:  update,
-    replace: replace,
-    insert:  insert,
-    wrap:    wrap,
-    cleanWhitespace: cleanWhitespace,
-    empty:   empty,
-    clone:   clone,
-    purge:   purge
-  });
-
-
-
-  function recursivelyCollect(element, property, maximumLength) {
-    element = $(element);
-    maximumLength = maximumLength || -1;
-    var elements = [];
-
-    while (element = element[property]) {
-      if (element.nodeType === Node.ELEMENT_NODE)
-        elements.push(Element.extend(element));
-
-      if (elements.length === maximumLength) break;
-    }
-
-    return elements;
-  }
-
-
-  function ancestors(element) {
-    return recursivelyCollect(element, 'parentNode');
-  }
-
-  function descendants(element) {
-    return Element.select(element, '*');
-  }
-
-  function firstDescendant(element) {
-    element = $(element).firstChild;
-    while (element && element.nodeType !== Node.ELEMENT_NODE)
-      element = element.nextSibling;
-
-    return $(element);
-  }
-
-  function immediateDescendants(element) {
-    var results = [], child = $(element).firstChild;
-
-    while (child) {
-      if (child.nodeType === Node.ELEMENT_NODE)
-        results.push(Element.extend(child));
-
-      child = child.nextSibling;
-    }
-
-    return results;
-  }
-
-  function previousSiblings(element) {
-    return recursivelyCollect(element, 'previousSibling');
-  }
-
-  function nextSiblings(element) {
-    return recursivelyCollect(element, 'nextSibling');
-  }
-
-  function siblings(element) {
-    element = $(element);
-    var previous = previousSiblings(element),
-     next = nextSiblings(element);
-    return previous.reverse().concat(next);
-  }
-
-  function match(element, selector) {
-    element = $(element);
-
-    if (Object.isString(selector))
-      return Prototype.Selector.match(element, selector);
-
-    return selector.match(element);
-  }
-
-
-  function _recursivelyFind(element, property, expression, index) {
-    element = $(element), expression = expression || 0, index = index || 0;
-    if (Object.isNumber(expression)) {
-      index = expression, expression = null;
-    }
-
-    while (element = element[property]) {
-      if (element.nodeType !== 1) continue;
-      if (expression && !Prototype.Selector.match(element, expression))
-        continue;
-      if (--index >= 0) continue;
-
-      return Element.extend(element);
-    }
-  }
-
-
-  function up(element, expression, index) {
-    element = $(element);
-
-    if (arguments.length === 1) return $(element.parentNode);
-    return _recursivelyFind(element, 'parentNode', expression, index);
-  }
-
-  function down(element, expression, index) {
-    if (arguments.length === 1) return firstDescendant(element);
-    element = $(element), expression = expression || 0, index = index || 0;
-
-    if (Object.isNumber(expression))
-      index = expression, expression = '*';
-
-    var node = Prototype.Selector.select(expression, element)[index];
-    return Element.extend(node);
-  }
-
-  function previous(element, expression, index) {
-    return _recursivelyFind(element, 'previousSibling', expression, index);
-  }
-
-  function next(element, expression, index) {
-    return _recursivelyFind(element, 'nextSibling', expression, index);
-  }
-
-  function select(element) {
-    element = $(element);
-    var expressions = SLICE.call(arguments, 1).join(', ');
-    return Prototype.Selector.select(expressions, element);
-  }
-
-  function adjacent(element) {
-    element = $(element);
-    var expressions = SLICE.call(arguments, 1).join(', ');
-    var siblings = Element.siblings(element), results = [];
-    for (var i = 0, sibling; sibling = siblings[i]; i++) {
-      if (Prototype.Selector.match(sibling, expressions))
-        results.push(sibling);
-    }
-
-    return results;
-  }
-
-  function descendantOf_DOM(element, ancestor) {
-    element = $(element), ancestor = $(ancestor);
-    if (!element || !ancestor) return false;
-    while (element = element.parentNode)
-      if (element === ancestor) return true;
-    return false;
-  }
-
-  function descendantOf_contains(element, ancestor) {
-    element = $(element), ancestor = $(ancestor);
-    if (!element || !ancestor) return false;
-    if (!ancestor.contains) return descendantOf_DOM(element, ancestor);
-    return ancestor.contains(element) && ancestor !== element;
-  }
-
-  function descendantOf_compareDocumentPosition(element, ancestor) {
-    element = $(element), ancestor = $(ancestor);
-    if (!element || !ancestor) return false;
-    return (element.compareDocumentPosition(ancestor) & 8) === 8;
-  }
-
-  var descendantOf;
-  if (DIV.compareDocumentPosition) {
-    descendantOf = descendantOf_compareDocumentPosition;
-  } else if (DIV.contains) {
-    descendantOf = descendantOf_contains;
-  } else {
-    descendantOf = descendantOf_DOM;
-  }
-
-
-  Object.extend(methods, {
-    recursivelyCollect:   recursivelyCollect,
-    ancestors:            ancestors,
-    descendants:          descendants,
-    firstDescendant:      firstDescendant,
-    immediateDescendants: immediateDescendants,
-    previousSiblings:     previousSiblings,
-    nextSiblings:         nextSiblings,
-    siblings:             siblings,
-    match:                match,
-    up:                   up,
-    down:                 down,
-    previous:             previous,
-    next:                 next,
-    select:               select,
-    adjacent:             adjacent,
-    descendantOf:         descendantOf,
-
-    getElementsBySelector: select,
-
-    childElements:         immediateDescendants
-  });
-
-
-  var idCounter = 1;
-  function identify(element) {
-    element = $(element);
-    var id = Element.readAttribute(element, 'id');
-    if (id) return id;
-
-    do { id = 'anonymous_element_' + idCounter++ } while ($(id));
-
-    Element.writeAttribute(element, 'id', id);
-    return id;
-  }
-
-
-  function readAttribute(element, name) {
-    return $(element).getAttribute(name);
-  }
-
-  function readAttribute_IE(element, name) {
-    element = $(element);
-
-    var table = ATTRIBUTE_TRANSLATIONS.read;
-    if (table.values[name])
-      return table.values[name](element, name);
-
-    if (table.names[name]) name = table.names[name];
-
-    if (name.include(':')) {
-      if (!element.attributes || !element.attributes[name]) return null;
-      return element.attributes[name].value;
-    }
-
-    return element.getAttribute(name);
-  }
-
-  function readAttribute_Opera(element, name) {
-    if (name === 'title') return element.title;
-    return element.getAttribute(name);
-  }
-
-  var PROBLEMATIC_ATTRIBUTE_READING = (function() {
-    DIV.setAttribute('onclick', []);
-    var value = DIV.getAttribute('onclick');
-    var isFunction = Object.isArray(value);
-    DIV.removeAttribute('onclick');
-    return isFunction;
-  })();
-
-  if (PROBLEMATIC_ATTRIBUTE_READING) {
-    readAttribute = readAttribute_IE;
-  } else if (Prototype.Browser.Opera) {
-    readAttribute = readAttribute_Opera;
-  }
-
-
-  function writeAttribute(element, name, value) {
-    element = $(element);
-    var attributes = {}, table = ATTRIBUTE_TRANSLATIONS.write;
-
-    if (typeof name === 'object') {
-      attributes = name;
-    } else {
-      attributes[name] = Object.isUndefined(value) ? true : value;
-    }
-
-    for (var attr in attributes) {
-      name = table.names[attr] || attr;
-      value = attributes[attr];
-      if (table.values[attr]) {
-        value = table.values[attr](element, value);
-        if (Object.isUndefined(value)) continue;
-      }
-      if (value === false || value === null)
-        element.removeAttribute(name);
-      else if (value === true)
-        element.setAttribute(name, name);
-      else element.setAttribute(name, value);
-    }
-
-    return element;
-  }
-
-  var PROBLEMATIC_HAS_ATTRIBUTE_WITH_CHECKBOXES = (function () {
-    if (!HAS_EXTENDED_CREATE_ELEMENT_SYNTAX) {
-      return false;
-    }
-    var checkbox = document.createElement('<input type="checkbox">');
-    checkbox.checked = true;
-    var node = checkbox.getAttributeNode('checked');
-    return !node || !node.specified;
-  })();
-
-  function hasAttribute(element, attribute) {
-    attribute = ATTRIBUTE_TRANSLATIONS.has[attribute] || attribute;
-    var node = $(element).getAttributeNode(attribute);
-    return !!(node && node.specified);
-  }
-
-  function hasAttribute_IE(element, attribute) {
-    if (attribute === 'checked') {
-      return element.checked;
-    }
-    return hasAttribute(element, attribute);
-  }
-
-  GLOBAL.Element.Methods.Simulated.hasAttribute =
-   PROBLEMATIC_HAS_ATTRIBUTE_WITH_CHECKBOXES ?
-   hasAttribute_IE : hasAttribute;
-
-  function classNames(element) {
-    return new Element.ClassNames(element);
-  }
-
-  var regExpCache = {};
-  function getRegExpForClassName(className) {
-    if (regExpCache[className]) return regExpCache[className];
-
-    var re = new RegExp("(^|\\s+)" + className + "(\\s+|$)");
-    regExpCache[className] = re;
-    return re;
-  }
-
-  function hasClassName(element, className) {
-    if (!(element = $(element))) return;
-
-    var elementClassName = element.className;
-
-    if (elementClassName.length === 0) return false;
-    if (elementClassName === className) return true;
-
-    return getRegExpForClassName(className).test(elementClassName);
-  }
-
-  function addClassName(element, className) {
-    if (!(element = $(element))) return;
-
-    if (!hasClassName(element, className))
-      element.className += (element.className ? ' ' : '') + className;
-
-    return element;
-  }
-
-  function removeClassName(element, className) {
-    if (!(element = $(element))) return;
-
-    element.className = element.className.replace(
-     getRegExpForClassName(className), ' ').strip();
-
-    return element;
-  }
-
-  function toggleClassName(element, className, bool) {
-    if (!(element = $(element))) return;
-
-    if (Object.isUndefined(bool))
-      bool = !hasClassName(element, className);
-
-    var method = Element[bool ? 'addClassName' : 'removeClassName'];
-    return method(element, className);
-  }
-
-  var ATTRIBUTE_TRANSLATIONS = {};
-
-  var classProp = 'className', forProp = 'for';
-
-  DIV.setAttribute(classProp, 'x');
-  if (DIV.className !== 'x') {
-    DIV.setAttribute('class', 'x');
-    if (DIV.className === 'x')
-      classProp = 'class';
-  }
-
-  var LABEL = document.createElement('label');
-  LABEL.setAttribute(forProp, 'x');
-  if (LABEL.htmlFor !== 'x') {
-    LABEL.setAttribute('htmlFor', 'x');
-    if (LABEL.htmlFor === 'x')
-      forProp = 'htmlFor';
-  }
-  LABEL = null;
-
-  function _getAttr(element, attribute) {
-    return element.getAttribute(attribute);
-  }
-
-  function _getAttr2(element, attribute) {
-    return element.getAttribute(attribute, 2);
-  }
-
-  function _getAttrNode(element, attribute) {
-    var node = element.getAttributeNode(attribute);
-    return node ? node.value : '';
-  }
-
-  function _getFlag(element, attribute) {
-    return $(element).hasAttribute(attribute) ? attribute : null;
-  }
-
-  DIV.onclick = Prototype.emptyFunction;
-  var onclickValue = DIV.getAttribute('onclick');
-
-  var _getEv;
-
-  if (String(onclickValue).indexOf('{') > -1) {
-    _getEv = function(element, attribute) {
-      var value = element.getAttribute(attribute);
-      if (!value) return null;
-      value = value.toString();
-      value = value.split('{')[1];
-      value = value.split('}')[0];
-      return value.strip();
-    };
-  }
-  else if (onclickValue === '') {
-    _getEv = function(element, attribute) {
-      var value = element.getAttribute(attribute);
-      if (!value) return null;
-      return value.strip();
-    };
-  }
-
-  ATTRIBUTE_TRANSLATIONS.read = {
-    names: {
-      'class':     classProp,
-      'className': classProp,
-      'for':       forProp,
-      'htmlFor':   forProp
-    },
-
-    values: {
-      style: function(element) {
-        return element.style.cssText.toLowerCase();
-      },
-      title: function(element) {
-        return element.title;
-      }
-    }
-  };
-
-  ATTRIBUTE_TRANSLATIONS.write = {
-    names: {
-      className:   'class',
-      htmlFor:     'for',
-      cellpadding: 'cellPadding',
-      cellspacing: 'cellSpacing'
-    },
-
-    values: {
-      checked: function(element, value) {
-        value = !!value;
-        element.checked = value;
-        return value ? 'checked' : null;
-      },
-
-      style: function(element, value) {
-        element.style.cssText = value ? value : '';
-      }
-    }
-  };
-
-  ATTRIBUTE_TRANSLATIONS.has = { names: {} };
-
-  Object.extend(ATTRIBUTE_TRANSLATIONS.write.names,
-   ATTRIBUTE_TRANSLATIONS.read.names);
-
-  var CAMEL_CASED_ATTRIBUTE_NAMES = $w('colSpan rowSpan vAlign dateTime ' +
-   'accessKey tabIndex encType maxLength readOnly longDesc frameBorder');
-
-  for (var i = 0, attr; attr = CAMEL_CASED_ATTRIBUTE_NAMES[i]; i++) {
-    ATTRIBUTE_TRANSLATIONS.write.names[attr.toLowerCase()] = attr;
-    ATTRIBUTE_TRANSLATIONS.has.names[attr.toLowerCase()]   = attr;
-  }
-
-  Object.extend(ATTRIBUTE_TRANSLATIONS.read.values, {
-    href:        _getAttr2,
-    src:         _getAttr2,
-    type:        _getAttr,
-    action:      _getAttrNode,
-    disabled:    _getFlag,
-    checked:     _getFlag,
-    readonly:    _getFlag,
-    multiple:    _getFlag,
-    onload:      _getEv,
-    onunload:    _getEv,
-    onclick:     _getEv,
-    ondblclick:  _getEv,
-    onmousedown: _getEv,
-    onmouseup:   _getEv,
-    onmouseover: _getEv,
-    onmousemove: _getEv,
-    onmouseout:  _getEv,
-    onfocus:     _getEv,
-    onblur:      _getEv,
-    onkeypress:  _getEv,
-    onkeydown:   _getEv,
-    onkeyup:     _getEv,
-    onsubmit:    _getEv,
-    onreset:     _getEv,
-    onselect:    _getEv,
-    onchange:    _getEv
-  });
-
-
-  Object.extend(methods, {
-    identify:        identify,
-    readAttribute:   readAttribute,
-    writeAttribute:  writeAttribute,
-    classNames:      classNames,
-    hasClassName:    hasClassName,
-    addClassName:    addClassName,
-    removeClassName: removeClassName,
-    toggleClassName: toggleClassName
-  });
-
-
-  function normalizeStyleName(style) {
-    if (style === 'float' || style === 'styleFloat')
-      return 'cssFloat';
-    return style.camelize();
-  }
-
-  function normalizeStyleName_IE(style) {
-    if (style === 'float' || style === 'cssFloat')
-      return 'styleFloat';
-    return style.camelize();
-  }
-
-  function setStyle(element, styles) {
-    element = $(element);
-    var elementStyle = element.style, match;
-
-    if (Object.isString(styles)) {
-      elementStyle.cssText += ';' + styles;
-      if (styles.include('opacity')) {
-        var opacity = styles.match(/opacity:\s*(\d?\.?\d*)/)[1];
-        Element.setOpacity(element, opacity);
-      }
-      return element;
-    }
-
-    for (var property in styles) {
-      if (property === 'opacity') {
-        Element.setOpacity(element, styles[property]);
-      } else {
-        var value = styles[property];
-        if (property === 'float' || property === 'cssFloat') {
-          property = Object.isUndefined(elementStyle.styleFloat) ?
-           'cssFloat' : 'styleFloat';
-        }
-        elementStyle[property] = value;
-      }
-    }
-
-    return element;
-  }
-
-
-  function getStyle(element, style) {
-    element = $(element);
-    style = normalizeStyleName(style);
-
-    var value = element.style[style];
-    if (!value || value === 'auto') {
-      var css = document.defaultView.getComputedStyle(element, null);
-      value = css ? css[style] : null;
-    }
-
-    if (style === 'opacity') return value ? parseFloat(value) : 1.0;
-    return value === 'auto' ? null : value;
-  }
-
-  function getStyle_Opera(element, style) {
-    switch (style) {
-      case 'height': case 'width':
-        if (!Element.visible(element)) return null;
-
-        var dim = parseInt(getStyle(element, style), 10);
-
-        if (dim !== element['offset' + style.capitalize()])
-          return dim + 'px';
-
-        return Element.measure(element, style);
-
-      default: return getStyle(element, style);
-    }
-  }
-
-  function getStyle_IE(element, style) {
-    element = $(element);
-    style = normalizeStyleName_IE(style);
-
-    var value = element.style[style];
-    if (!value && element.currentStyle) {
-      value = element.currentStyle[style];
-    }
-
-    if (style === 'opacity') {
-      if (!STANDARD_CSS_OPACITY_SUPPORTED)
-        return getOpacity_IE(element);
-      else return value ? parseFloat(value) : 1.0;
-    }
-
-    if (value === 'auto') {
-      if ((style === 'width' || style === 'height') && Element.visible(element))
-        return Element.measure(element, style) + 'px';
-      return null;
-    }
-
-    return value;
-  }
-
-  function stripAlphaFromFilter_IE(filter) {
-    return (filter || '').replace(/alpha\([^\)]*\)/gi, '');
-  }
-
-  function hasLayout_IE(element) {
-    if (!element.currentStyle || !element.currentStyle.hasLayout)
-      element.style.zoom = 1;
-    return element;
-  }
-
-  var STANDARD_CSS_OPACITY_SUPPORTED = (function() {
-    DIV.style.cssText = "opacity:.55";
-    return /^0.55/.test(DIV.style.opacity);
-  })();
-
-  function setOpacity(element, value) {
-    element = $(element);
-    if (value == 1 || value === '') value = '';
-    else if (value < 0.00001) value = 0;
-    element.style.opacity = value;
-    return element;
-  }
-
-  function setOpacity_IE(element, value) {
-    if (STANDARD_CSS_OPACITY_SUPPORTED)
-      return setOpacity(element, value);
-
-    element = hasLayout_IE($(element));
-    var filter = Element.getStyle(element, 'filter'),
-     style = element.style;
-
-    if (value == 1 || value === '') {
-      filter = stripAlphaFromFilter_IE(filter);
-      if (filter) style.filter = filter;
-      else style.removeAttribute('filter');
-      return element;
-    }
-
-    if (value < 0.00001) value = 0;
-
-    style.filter = stripAlphaFromFilter_IE(filter) +
-     ' alpha(opacity=' + (value * 100) + ')';
-
-    return element;
-  }
-
-
-  function getOpacity(element) {
-    return Element.getStyle(element, 'opacity');
-  }
-
-  function getOpacity_IE(element) {
-    if (STANDARD_CSS_OPACITY_SUPPORTED)
-      return getOpacity(element);
-
-    var filter = Element.getStyle(element, 'filter');
-    if (filter.length === 0) return 1.0;
-    var match = (filter || '').match(/alpha\(opacity=(.*)\)/i);
-    if (match && match[1]) return parseFloat(match[1]) / 100;
-    return 1.0;
-  }
-
-
-  Object.extend(methods, {
-    setStyle:   setStyle,
-    getStyle:   getStyle,
-    setOpacity: setOpacity,
-    getOpacity: getOpacity
-  });
-
-  if ('styleFloat' in DIV.style) {
-    methods.getStyle = getStyle_IE;
-    methods.setOpacity = setOpacity_IE;
-    methods.getOpacity = getOpacity_IE;
-  }
-
-  var UID = 0;
-
-  GLOBAL.Element.Storage = { UID: 1 };
-
-  function getUniqueElementID(element) {
-    if (element === window) return 0;
-
-    if (typeof element._prototypeUID === 'undefined')
-      element._prototypeUID = Element.Storage.UID++;
-    return element._prototypeUID;
-  }
-
-  function getUniqueElementID_IE(element) {
-    if (element === window) return 0;
-    if (element == document) return 1;
-    return element.uniqueID;
-  }
-
-  var HAS_UNIQUE_ID_PROPERTY = ('uniqueID' in DIV);
-  if (HAS_UNIQUE_ID_PROPERTY)
-    getUniqueElementID = getUniqueElementID_IE;
-
-  function getStorage(element) {
-    if (!(element = $(element))) return;
-
-    var uid = getUniqueElementID(element);
-
-    if (!Element.Storage[uid])
-      Element.Storage[uid] = $H();
-
-    return Element.Storage[uid];
-  }
-
-  function store(element, key, value) {
-    if (!(element = $(element))) return;
-    var storage = getStorage(element);
-    if (arguments.length === 2) {
-      storage.update(key);
-    } else {
-      storage.set(key, value);
-    }
-    return element;
-  }
-
-  function retrieve(element, key, defaultValue) {
-    if (!(element = $(element))) return;
-    var storage = getStorage(element), value = storage.get(key);
-
-    if (Object.isUndefined(value)) {
-      storage.set(key, defaultValue);
-      value = defaultValue;
-    }
-
-    return value;
-  }
-
-
-  Object.extend(methods, {
-    getStorage: getStorage,
-    store:      store,
-    retrieve:   retrieve
-  });
-
-
-  var Methods = {}, ByTag = Element.Methods.ByTag,
-   F = Prototype.BrowserFeatures;
-
-  if (!F.ElementExtensions && ('__proto__' in DIV)) {
-    GLOBAL.HTMLElement = {};
-    GLOBAL.HTMLElement.prototype = DIV['__proto__'];
-    F.ElementExtensions = true;
-  }
-
-  function checkElementPrototypeDeficiency(tagName) {
-    if (typeof window.Element === 'undefined') return false;
-    if (!HAS_EXTENDED_CREATE_ELEMENT_SYNTAX) return false;
-    var proto = window.Element.prototype;
-    if (proto) {
-      var id = '_' + (Math.random() + '').slice(2),
-       el = document.createElement(tagName);
-      proto[id] = 'x';
-      var isBuggy = (el[id] !== 'x');
-      delete proto[id];
-      el = null;
-      return isBuggy;
-    }
-
-    return false;
-  }
-
-  var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY =
-   checkElementPrototypeDeficiency('object');
-
-  function extendElementWith(element, methods) {
-    for (var property in methods) {
-      var value = methods[property];
-      if (Object.isFunction(value) && !(property in element))
-        element[property] = value.methodize();
-    }
-  }
-
-  var EXTENDED = {};
-  function elementIsExtended(element) {
-    var uid = getUniqueElementID(element);
-    return (uid in EXTENDED);
-  }
-
-  function extend(element) {
-    if (!element || elementIsExtended(element)) return element;
-    if (element.nodeType !== Node.ELEMENT_NODE || element == window)
-      return element;
-
-    var methods = Object.clone(Methods),
-     tagName = element.tagName.toUpperCase();
-
-    if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
-
-    extendElementWith(element, methods);
-    EXTENDED[getUniqueElementID(element)] = true;
-    return element;
-  }
-
-  function extend_IE8(element) {
-    if (!element || elementIsExtended(element)) return element;
-
-    var t = element.tagName;
-    if (t && (/^(?:object|applet|embed)$/i.test(t))) {
-      extendElementWith(element, Element.Methods);
-      extendElementWith(element, Element.Methods.Simulated);
-      extendElementWith(element, Element.Methods.ByTag[t.toUpperCase()]);
-    }
-
-    return element;
-  }
-
-  if (F.SpecificElementExtensions) {
-    extend = HTMLOBJECTELEMENT_PROTOTYPE_BUGGY ? extend_IE8 : Prototype.K;
-  }
-
-  function addMethodsToTagName(tagName, methods) {
-    tagName = tagName.toUpperCase();
-    if (!ByTag[tagName]) ByTag[tagName] = {};
-    Object.extend(ByTag[tagName], methods);
-  }
-
-  function mergeMethods(destination, methods, onlyIfAbsent) {
-    if (Object.isUndefined(onlyIfAbsent)) onlyIfAbsent = false;
-    for (var property in methods) {
-      var value = methods[property];
-      if (!Object.isFunction(value)) continue;
-      if (!onlyIfAbsent || !(property in destination))
-        destination[property] = value.methodize();
-    }
-  }
-
-  function findDOMClass(tagName) {
-    var klass;
-    var trans = {
-      "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
-      "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
-      "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
-      "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
-      "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
-      "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
-      "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
-      "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
-      "FrameSet", "IFRAME": "IFrame"
-    };
-    if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
-    if (window[klass]) return window[klass];
-    klass = 'HTML' + tagName + 'Element';
-    if (window[klass]) return window[klass];
-    klass = 'HTML' + tagName.capitalize() + 'Element';
-    if (window[klass]) return window[klass];
-
-    var element = document.createElement(tagName),
-     proto = element['__proto__'] || element.constructor.prototype;
-
-    element = null;
-    return proto;
-  }
-
-  function addMethods(methods) {
-    if (arguments.length === 0) addFormMethods();
-
-    if (arguments.length === 2) {
-      var tagName = methods;
-      methods = arguments[1];
-    }
-
-    if (!tagName) {
-      Object.extend(Element.Methods, methods || {});
-    } else {
-      if (Object.isArray(tagName)) {
-        for (var i = 0, tag; tag = tagName[i]; i++)
-          addMethodsToTagName(tag, methods);
-      } else {
-        addMethodsToTagName(tagName, methods);
-      }
-    }
-
-    var ELEMENT_PROTOTYPE = window.HTMLElement ? HTMLElement.prototype :
-     Element.prototype;
-
-    if (F.ElementExtensions) {
-      mergeMethods(ELEMENT_PROTOTYPE, Element.Methods);
-      mergeMethods(ELEMENT_PROTOTYPE, Element.Methods.Simulated, true);
-    }
-
-    if (F.SpecificElementExtensions) {
-      for (var tag in Element.Methods.ByTag) {
-        var klass = findDOMClass(tag);
-        if (Object.isUndefined(klass)) continue;
-        mergeMethods(klass.prototype, ByTag[tag]);
-      }
-    }
-
-    Object.extend(Element, Element.Methods);
-    Object.extend(Element, Element.Methods.Simulated);
-    delete Element.ByTag;
-    delete Element.Simulated;
-
-    Element.extend.refresh();
-
-    ELEMENT_CACHE = {};
-  }
-
-  Object.extend(GLOBAL.Element, {
-    extend:     extend,
-    addMethods: addMethods
-  });
-
-  if (extend === Prototype.K) {
-    GLOBAL.Element.extend.refresh = Prototype.emptyFunction;
-  } else {
-    GLOBAL.Element.extend.refresh = function() {
-      if (Prototype.BrowserFeatures.ElementExtensions) return;
-      Object.extend(Methods, Element.Methods);
-      Object.extend(Methods, Element.Methods.Simulated);
-
-      EXTENDED = {};
-    };
-  }
-
-  function addFormMethods() {
-    Object.extend(Form, Form.Methods);
-    Object.extend(Form.Element, Form.Element.Methods);
-    Object.extend(Element.Methods.ByTag, {
-      "FORM":     Object.clone(Form.Methods),
-      "INPUT":    Object.clone(Form.Element.Methods),
-      "SELECT":   Object.clone(Form.Element.Methods),
-      "TEXTAREA": Object.clone(Form.Element.Methods),
-      "BUTTON":   Object.clone(Form.Element.Methods)
-    });
-  }
-
-  Element.addMethods(methods);
-
-  function destroyCache_IE() {
-    DIV = null;
-    ELEMENT_CACHE = null;
-  }
-
-  if (window.attachEvent)
-    window.attachEvent('onunload', destroyCache_IE);
-
-})(this);
-(function() {
-
-  function toDecimal(pctString) {
-    var match = pctString.match(/^(\d+)%?$/i);
-    if (!match) return null;
-    return (Number(match[1]) / 100);
-  }
-
-  function getRawStyle(element, style) {
-    element = $(element);
-
-    var value = element.style[style];
-    if (!value || value === 'auto') {
-      var css = document.defaultView.getComputedStyle(element, null);
-      value = css ? css[style] : null;
-    }
-
-    if (style === 'opacity') return value ? parseFloat(value) : 1.0;
-    return value === 'auto' ? null : value;
-  }
-
-  function getRawStyle_IE(element, style) {
-    var value = element.style[style];
-    if (!value && element.currentStyle) {
-      value = element.currentStyle[style];
-    }
-    return value;
-  }
-
-  function getContentWidth(element, context) {
-    var boxWidth = element.offsetWidth;
-
-    var bl = getPixelValue(element, 'borderLeftWidth',  context) || 0;
-    var br = getPixelValue(element, 'borderRightWidth', context) || 0;
-    var pl = getPixelValue(element, 'paddingLeft',      context) || 0;
-    var pr = getPixelValue(element, 'paddingRight',     context) || 0;
-
-    return boxWidth - bl - br - pl - pr;
-  }
-
-  if (!Object.isUndefined(document.documentElement.currentStyle) && !Prototype.Browser.Opera) {
-    getRawStyle = getRawStyle_IE;
-  }
-
-
-  function getPixelValue(value, property, context) {
-    var element = null;
-    if (Object.isElement(value)) {
-      element = value;
-      value = getRawStyle(element, property);
-    }
-
-    if (value === null || Object.isUndefined(value)) {
-      return null;
-    }
-
-    if ((/^(?:-)?\d+(\.\d+)?(px)?$/i).test(value)) {
-      return window.parseFloat(value);
-    }
-
-    var isPercentage = value.include('%'), isViewport = (context === document.viewport);
-
-    if (/\d/.test(value) && element && element.runtimeStyle && !(isPercentage && isViewport)) {
-      var style = element.style.left, rStyle = element.runtimeStyle.left;
-      element.runtimeStyle.left = element.currentStyle.left;
-      element.style.left = value || 0;
-      value = element.style.pixelLeft;
-      element.style.left = style;
-      element.runtimeStyle.left = rStyle;
-
-      return value;
-    }
-
-    if (element && isPercentage) {
-      context = context || element.parentNode;
-      var decimal = toDecimal(value), whole = null;
-
-      var isHorizontal = property.include('left') || property.include('right') ||
-       property.include('width');
-
-      var isVertical   = property.include('top') || property.include('bottom') ||
-        property.include('height');
-
-      if (context === document.viewport) {
-        if (isHorizontal) {
-          whole = document.viewport.getWidth();
-        } else if (isVertical) {
-          whole = document.viewport.getHeight();
-        }
-      } else {
-        if (isHorizontal) {
-          whole = $(context).measure('width');
-        } else if (isVertical) {
-          whole = $(context).measure('height');
-        }
-      }
-
-      return (whole === null) ? 0 : whole * decimal;
-    }
-
-    return 0;
-  }
-
-  function toCSSPixels(number) {
-    if (Object.isString(number) && number.endsWith('px'))
-      return number;
-    return number + 'px';
-  }
-
-  function isDisplayed(element) {
-    while (element && element.parentNode) {
-      var display = element.getStyle('display');
-      if (display === 'none') {
-        return false;
-      }
-      element = $(element.parentNode);
-    }
-    return true;
-  }
-
-  var hasLayout = Prototype.K;
-  if ('currentStyle' in document.documentElement) {
-    hasLayout = function(element) {
-      if (!element.currentStyle.hasLayout) {
-        element.style.zoom = 1;
-      }
-      return element;
-    };
-  }
-
-  function cssNameFor(key) {
-    if (key.include('border')) key = key + '-width';
-    return key.camelize();
-  }
-
-  Element.Layout = Class.create(Hash, {
-    initialize: function($super, element, preCompute) {
-      $super();
-      this.element = $(element);
-
-      Element.Layout.PROPERTIES.each( function(property) {
-        this._set(property, null);
-      }, this);
-
-      if (preCompute) {
-        this._preComputing = true;
-        this._begin();
-        Element.Layout.PROPERTIES.each( this._compute, this );
-        this._end();
-        this._preComputing = false;
-      }
-    },
-
-    _set: function(property, value) {
-      return Hash.prototype.set.call(this, property, value);
-    },
-
-    set: function(property, value) {
-      throw "Properties of Element.Layout are read-only.";
-    },
-
-    get: function($super, property) {
-      var value = $super(property);
-      return value === null ? this._compute(property) : value;
-    },
-
-    _begin: function() {
-      if (this._isPrepared()) return;
-
-      var element = this.element;
-      if (isDisplayed(element)) {
-        this._setPrepared(true);
-        return;
-      }
-
-
-      var originalStyles = {
-        position:   element.style.position   || '',
-        width:      element.style.width      || '',
-        visibility: element.style.visibility || '',
-        display:    element.style.display    || ''
-      };
-
-      element.store('prototype_original_styles', originalStyles);
-
-      var position = getRawStyle(element, 'position'), width = element.offsetWidth;
-
-      if (width === 0 || width === null) {
-        element.style.display = 'block';
-        width = element.offsetWidth;
-      }
-
-      var context = (position === 'fixed') ? document.viewport :
-       element.parentNode;
-
-      var tempStyles = {
-        visibility: 'hidden',
-        display:    'block'
-      };
-
-      if (position !== 'fixed') tempStyles.position = 'absolute';
-
-      element.setStyle(tempStyles);
-
-      var positionedWidth = element.offsetWidth, newWidth;
-      if (width && (positionedWidth === width)) {
-        newWidth = getContentWidth(element, context);
-      } else if (position === 'absolute' || position === 'fixed') {
-        newWidth = getContentWidth(element, context);
-      } else {
-        var parent = element.parentNode, pLayout = $(parent).getLayout();
-
-        newWidth = pLayout.get('width') -
-         this.get('margin-left') -
-         this.get('border-left') -
-         this.get('padding-left') -
-         this.get('padding-right') -
-         this.get('border-right') -
-         this.get('margin-right');
-      }
-
-      element.setStyle({ width: newWidth + 'px' });
-
-      this._setPrepared(true);
-    },
-
-    _end: function() {
-      var element = this.element;
-      var originalStyles = element.retrieve('prototype_original_styles');
-      element.store('prototype_original_styles', null);
-      element.setStyle(originalStyles);
-      this._setPrepared(false);
-    },
-
-    _compute: function(property) {
-      var COMPUTATIONS = Element.Layout.COMPUTATIONS;
-      if (!(property in COMPUTATIONS)) {
-        throw "Property not found.";
-      }
-
-      return this._set(property, COMPUTATIONS[property].call(this, this.element));
-    },
-
-    _isPrepared: function() {
-      return this.element.retrieve('prototype_element_layout_prepared', false);
-    },
-
-    _setPrepared: function(bool) {
-      return this.element.store('prototype_element_layout_prepared', bool);
-    },
-
-    toObject: function() {
-      var args = $A(arguments);
-      var keys = (args.length === 0) ? Element.Layout.PROPERTIES :
-       args.join(' ').split(' ');
-      var obj = {};
-      keys.each( function(key) {
-        if (!Element.Layout.PROPERTIES.include(key)) return;
-        var value = this.get(key);
-        if (value != null) obj[key] = value;
-      }, this);
-      return obj;
-    },
-
-    toHash: function() {
-      var obj = this.toObject.apply(this, arguments);
-      return new Hash(obj);
-    },
-
-    toCSS: function() {
-      var args = $A(arguments);
-      var keys = (args.length === 0) ? Element.Layout.PROPERTIES :
-       args.join(' ').split(' ');
-      var css = {};
-
-      keys.each( function(key) {
-        if (!Element.Layout.PROPERTIES.include(key)) return;
-        if (Element.Layout.COMPOSITE_PROPERTIES.include(key)) return;
-
-        var value = this.get(key);
-        if (value != null) css[cssNameFor(key)] = value + 'px';
-      }, this);
-      return css;
-    },
-
-    inspect: function() {
-      return "#<Element.Layout>";
-    }
-  });
-
-  Object.extend(Element.Layout, {
-    PROPERTIES: $w('height width top left right bottom border-left border-right border-top border-bottom padding-left padding-right padding-top padding-bottom margin-top margin-bottom margin-left margin-right padding-box-width padding-box-height border-box-width border-box-height margin-box-width margin-box-height'),
-
-    COMPOSITE_PROPERTIES: $w('padding-box-width padding-box-height margin-box-width margin-box-height border-box-width border-box-height'),
-
-    COMPUTATIONS: {
-      'height': function(element) {
-        if (!this._preComputing) this._begin();
-
-        var bHeight = this.get('border-box-height');
-        if (bHeight <= 0) {
-          if (!this._preComputing) this._end();
-          return 0;
-        }
-
-        var bTop = this.get('border-top'),
-         bBottom = this.get('border-bottom');
-
-        var pTop = this.get('padding-top'),
-         pBottom = this.get('padding-bottom');
-
-        if (!this._preComputing) this._end();
-
-        return bHeight - bTop - bBottom - pTop - pBottom;
-      },
-
-      'width': function(element) {
-        if (!this._preComputing) this._begin();
-
-        var bWidth = this.get('border-box-width');
-        if (bWidth <= 0) {
-          if (!this._preComputing) this._end();
-          return 0;
-        }
-
-        var bLeft = this.get('border-left'),
-         bRight = this.get('border-right');
-
-        var pLeft = this.get('padding-left'),
-         pRight = this.get('padding-right');
-
-        if (!this._preComputing) this._end();
-        return bWidth - bLeft - bRight - pLeft - pRight;
-      },
-
-      'padding-box-height': function(element) {
-        var height = this.get('height'),
-         pTop = this.get('padding-top'),
-         pBottom = this.get('padding-bottom');
-
-        return height + pTop + pBottom;
-      },
-
-      'padding-box-width': function(element) {
-        var width = this.get('width'),
-         pLeft = this.get('padding-left'),
-         pRight = this.get('padding-right');
-
-        return width + pLeft + pRight;
-      },
-
-      'border-box-height': function(element) {
-        if (!this._preComputing) this._begin();
-        var height = element.offsetHeight;
-        if (!this._preComputing) this._end();
-        return height;
-      },
-
-      'border-box-width': function(element) {
-        if (!this._preComputing) this._begin();
-        var width = element.offsetWidth;
-        if (!this._preComputing) this._end();
-        return width;
-      },
-
-      'margin-box-height': function(element) {
-        var bHeight = this.get('border-box-height'),
-         mTop = this.get('margin-top'),
-         mBottom = this.get('margin-bottom');
-
-        if (bHeight <= 0) return 0;
-
-        return bHeight + mTop + mBottom;
-      },
-
-      'margin-box-width': function(element) {
-        var bWidth = this.get('border-box-width'),
-         mLeft = this.get('margin-left'),
-         mRight = this.get('margin-right');
-
-        if (bWidth <= 0) return 0;
-
-        return bWidth + mLeft + mRight;
-      },
-
-      'top': function(element) {
-        var offset = element.positionedOffset();
-        return offset.top;
-      },
-
-      'bottom': function(element) {
-        var offset = element.positionedOffset(),
-         parent = element.getOffsetParent(),
-         pHeight = parent.measure('height');
-
-        var mHeight = this.get('border-box-height');
-
-        return pHeight - mHeight - offset.top;
-      },
-
-      'left': function(element) {
-        var offset = element.positionedOffset();
-        return offset.left;
-      },
-
-      'right': function(element) {
-        var offset = element.positionedOffset(),
-         parent = element.getOffsetParent(),
-         pWidth = parent.measure('width');
-
-        var mWidth = this.get('border-box-width');
-
-        return pWidth - mWidth - offset.left;
-      },
-
-      'padding-top': function(element) {
-        return getPixelValue(element, 'paddingTop');
-      },
-
-      'padding-bottom': function(element) {
-        return getPixelValue(element, 'paddingBottom');
-      },
-
-      'padding-left': function(element) {
-        return getPixelValue(element, 'paddingLeft');
-      },
-
-      'padding-right': function(element) {
-        return getPixelValue(element, 'paddingRight');
-      },
-
-      'border-top': function(element) {
-        return getPixelValue(element, 'borderTopWidth');
-      },
-
-      'border-bottom': function(element) {
-        return getPixelValue(element, 'borderBottomWidth');
-      },
-
-      'border-left': function(element) {
-        return getPixelValue(element, 'borderLeftWidth');
-      },
-
-      'border-right': function(element) {
-        return getPixelValue(element, 'borderRightWidth');
-      },
-
-      'margin-top': function(element) {
-        return getPixelValue(element, 'marginTop');
-      },
-
-      'margin-bottom': function(element) {
-        return getPixelValue(element, 'marginBottom');
-      },
-
-      'margin-left': function(element) {
-        return getPixelValue(element, 'marginLeft');
-      },
-
-      'margin-right': function(element) {
-        return getPixelValue(element, 'marginRight');
-      }
-    }
-  });
-
-  if ('getBoundingClientRect' in document.documentElement) {
-    Object.extend(Element.Layout.COMPUTATIONS, {
-      'right': function(element) {
-        var parent = hasLayout(element.getOffsetParent());
-        var rect = element.getBoundingClientRect(),
-         pRect = parent.getBoundingClientRect();
-
-        return (pRect.right - rect.right).round();
-      },
-
-      'bottom': function(element) {
-        var parent = hasLayout(element.getOffsetParent());
-        var rect = element.getBoundingClientRect(),
-         pRect = parent.getBoundingClientRect();
-
-        return (pRect.bottom - rect.bottom).round();
-      }
-    });
-  }
-
-  Element.Offset = Class.create({
-    initialize: function(left, top) {
-      this.left = left.round();
-      this.top  = top.round();
-
-      this[0] = this.left;
-      this[1] = this.top;
-    },
-
-    relativeTo: function(offset) {
-      return new Element.Offset(
-        this.left - offset.left,
-        this.top  - offset.top
-      );
-    },
-
-    inspect: function() {
-      return "#<Element.Offset left: #{left} top: #{top}>".interpolate(this);
-    },
-
-    toString: function() {
-      return "[#{left}, #{top}]".interpolate(this);
-    },
-
-    toArray: function() {
-      return [this.left, this.top];
-    }
-  });
-
-  function getLayout(element, preCompute) {
-    return new Element.Layout(element, preCompute);
-  }
-
-  function measure(element, property) {
-    return $(element).getLayout().get(property);
-  }
-
-  function getHeight(element) {
-    return Element.getDimensions(element).height;
-  }
-
-  function getWidth(element) {
-    return Element.getDimensions(element).width;
-  }
-
-  function getDimensions(element) {
-    element = $(element);
-    var display = Element.getStyle(element, 'display');
-
-    if (display && display !== 'none') {
-      return { width: element.offsetWidth, height: element.offsetHeight };
-    }
-
-    var style = element.style;
-    var originalStyles = {
-      visibility: style.visibility,
-      position:   style.position,
-      display:    style.display
-    };
-
-    var newStyles = {
-      visibility: 'hidden',
-      display:    'block'
-    };
-
-    if (originalStyles.position !== 'fixed')
-      newStyles.position = 'absolute';
-
-    Element.setStyle(element, newStyles);
-
-    var dimensions = {
-      width:  element.offsetWidth,
-      height: element.offsetHeight
-    };
-
-    Element.setStyle(element, originalStyles);
-
-    return dimensions;
-  }
-
-  function getOffsetParent(element) {
-    element = $(element);
-
-    function selfOrBody(element) {
-      return isHtml(element) ? $(document.body) : $(element);
-    }
-
-    if (isDocument(element) || isDetached(element) || isBody(element) || isHtml(element))
-      return $(document.body);
-
-    var isInline = (Element.getStyle(element, 'display') === 'inline');
-    if (!isInline && element.offsetParent) return selfOrBody(element.offsetParent);
-
-    while ((element = element.parentNode) && element !== document.body) {
-      if (Element.getStyle(element, 'position') !== 'static') {
-        return selfOrBody(element);
-      }
-    }
-
-    return $(document.body);
-  }
-
-
-  function cumulativeOffset(element) {
-    element = $(element);
-    var valueT = 0, valueL = 0;
-    if (element.parentNode) {
-      do {
-        valueT += element.offsetTop  || 0;
-        valueL += element.offsetLeft || 0;
-        element = element.offsetParent;
-      } while (element);
-    }
-    return new Element.Offset(valueL, valueT);
-  }
-
-  function positionedOffset(element) {
-    element = $(element);
-
-    var layout = element.getLayout();
-
-    var valueT = 0, valueL = 0;
-    do {
-      valueT += element.offsetTop  || 0;
-      valueL += element.offsetLeft || 0;
-      element = element.offsetParent;
-      if (element) {
-        if (isBody(element)) break;
-        var p = Element.getStyle(element, 'position');
-        if (p !== 'static') break;
-      }
-    } while (element);
-
-    valueL -= layout.get('margin-left');
-    valueT -= layout.get('margin-top');
-
-    return new Element.Offset(valueL, valueT);
-  }
-
-  function cumulativeScrollOffset(element) {
-    var valueT = 0, valueL = 0;
-    do {
-      if (element === document.body) {
-        var bodyScrollNode = document.documentElement || document.body.parentNode || document.body;
-        valueT += !Object.isUndefined(window.pageYOffset) ? window.pageYOffset : bodyScrollNode.scrollTop || 0;
-        valueL += !Object.isUndefined(window.pageXOffset) ? window.pageXOffset : bodyScrollNode.scrollLeft || 0;
-        break;
-      } else {
-        valueT += element.scrollTop  || 0;
-        valueL += element.scrollLeft || 0;
-        element = element.parentNode;
-      }
-    } while (element);
-    return new Element.Offset(valueL, valueT);
-  }
-
-  function viewportOffset(forElement) {
-    var valueT = 0, valueL = 0, docBody = document.body;
-
-    forElement = $(forElement);
-    var element = forElement;
-    do {
-      valueT += element.offsetTop  || 0;
-      valueL += element.offsetLeft || 0;
-      if (element.offsetParent == docBody &&
-        Element.getStyle(element, 'position') == 'absolute') break;
-    } while (element = element.offsetParent);
-
-    element = forElement;
-    do {
-      if (element != docBody) {
-        valueT -= element.scrollTop  || 0;
-        valueL -= element.scrollLeft || 0;
-      }
-    } while (element = element.parentNode);
-    return new Element.Offset(valueL, valueT);
-  }
-
-  function absolutize(element) {
-    element = $(element);
-
-    if (Element.getStyle(element, 'position') === 'absolute') {
-      return element;
-    }
-
-    var offsetParent = getOffsetParent(element);
-    var eOffset = element.viewportOffset(),
-     pOffset = offsetParent.viewportOffset();
-
-    var offset = eOffset.relativeTo(pOffset);
-    var layout = element.getLayout();
-
-    element.store('prototype_absolutize_original_styles', {
-      position: element.getStyle('position'),
-      left:     element.getStyle('left'),
-      top:      element.getStyle('top'),
-      width:    element.getStyle('width'),
-      height:   element.getStyle('height')
-    });
-
-    element.setStyle({
-      position: 'absolute',
-      top:    offset.top + 'px',
-      left:   offset.left + 'px',
-      width:  layout.get('width') + 'px',
-      height: layout.get('height') + 'px'
-    });
-
-    return element;
-  }
-
-  function relativize(element) {
-    element = $(element);
-    if (Element.getStyle(element, 'position') === 'relative') {
-      return element;
-    }
-
-    var originalStyles =
-     element.retrieve('prototype_absolutize_original_styles');
-
-    if (originalStyles) element.setStyle(originalStyles);
-    return element;
-  }
-
-
-  function scrollTo(element) {
-    element = $(element);
-    var pos = Element.cumulativeOffset(element);
-    window.scrollTo(pos.left, pos.top);
-    return element;
-  }
-
-
-  function makePositioned(element) {
-    element = $(element);
-    var position = Element.getStyle(element, 'position'), styles = {};
-    if (position === 'static' || !position) {
-      styles.position = 'relative';
-      if (Prototype.Browser.Opera) {
-        styles.top  = 0;
-        styles.left = 0;
-      }
-      Element.setStyle(element, styles);
-      Element.store(element, 'prototype_made_positioned', true);
-    }
-    return element;
-  }
-
-  function undoPositioned(element) {
-    element = $(element);
-    var storage = Element.getStorage(element),
-     madePositioned = storage.get('prototype_made_positioned');
-
-    if (madePositioned) {
-      storage.unset('prototype_made_positioned');
-      Element.setStyle(element, {
-        position: '',
-        top:      '',
-        bottom:   '',
-        left:     '',
-        right:    ''
-      });
-    }
-    return element;
-  }
-
-  function makeClipping(element) {
-    element = $(element);
-
-    var storage = Element.getStorage(element),
-     madeClipping = storage.get('prototype_made_clipping');
-
-    if (Object.isUndefined(madeClipping)) {
-      var overflow = Element.getStyle(element, 'overflow');
-      storage.set('prototype_made_clipping', overflow);
-      if (overflow !== 'hidden')
-        element.style.overflow = 'hidden';
-    }
-
-    return element;
-  }
-
-  function undoClipping(element) {
-    element = $(element);
-    var storage = Element.getStorage(element),
-     overflow = storage.get('prototype_made_clipping');
-
-    if (!Object.isUndefined(overflow)) {
-      storage.unset('prototype_made_clipping');
-      element.style.overflow = overflow || '';
-    }
-
-    return element;
-  }
-
-  function clonePosition(element, source, options) {
-    options = Object.extend({
-      setLeft:    true,
-      setTop:     true,
-      setWidth:   true,
-      setHeight:  true,
-      offsetTop:  0,
-      offsetLeft: 0
-    }, options || {});
-
-    var docEl = document.documentElement;
-
-    source  = $(source);
-    element = $(element);
-    var p, delta, layout, styles = {};
-
-    if (options.setLeft || options.setTop) {
-      p = Element.viewportOffset(source);
-      delta = [0, 0];
-      if (Element.getStyle(element, 'position') === 'absolute') {
-        var parent = Element.getOffsetParent(element);
-        if (parent !== document.body) delta = Element.viewportOffset(parent);
-      }
-    }
-
-    function pageScrollXY() {
-      var x = 0, y = 0;
-      if (Object.isNumber(window.pageXOffset)) {
-        x = window.pageXOffset;
-        y = window.pageYOffset;
-      } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
-        x = document.body.scrollLeft;
-        y = document.body.scrollTop;
-      } else if (docEl && (docEl.scrollLeft || docEl.scrollTop)) {
-        x = docEl.scrollLeft;
-        y = docEl.scrollTop;
-      }
-      return { x: x, y: y };
-    }
-
-    var pageXY = pageScrollXY();
-
-
-    if (options.setWidth || options.setHeight) {
-      layout = Element.getLayout(source);
-    }
-
-    if (options.setLeft)
-      styles.left = (p[0] + pageXY.x - delta[0] + options.offsetLeft) + 'px';
-    if (options.setTop)
-      styles.top  = (p[1] + pageXY.y - delta[1] + options.offsetTop)  + 'px';
-
-    var currentLayout = element.getLayout();
-
-    if (options.setWidth) {
-      styles.width = layout.get('width')  + 'px';
-    }
-    if (options.setHeight) {
-      styles.height = layout.get('height') + 'px';
-    }
-
-    return Element.setStyle(element, styles);
-  }
-
-
-  if (Prototype.Browser.IE) {
-    getOffsetParent = getOffsetParent.wrap(
-      function(proceed, element) {
-        element = $(element);
-
-        if (isDocument(element) || isDetached(element) || isBody(element) || isHtml(element))
-          return $(document.body);
-
-        var position = element.getStyle('position');
-        if (position !== 'static') return proceed(element);
-
-        element.setStyle({ position: 'relative' });
-        var value = proceed(element);
-        element.setStyle({ position: position });
-        return value;
-      }
-    );
-
-    positionedOffset = positionedOffset.wrap(function(proceed, element) {
-      element = $(element);
-      if (!element.parentNode) return new Element.Offset(0, 0);
-      var position = element.getStyle('position');
-      if (position !== 'static') return proceed(element);
-
-      var offsetParent = element.getOffsetParent();
-      if (offsetParent && offsetParent.getStyle('position') === 'fixed')
-        hasLayout(offsetParent);
-
-      element.setStyle({ position: 'relative' });
-      var value = proceed(element);
-      element.setStyle({ position: position });
-      return value;
-    });
-  } else if (Prototype.Browser.Webkit) {
-    cumulativeOffset = function(element) {
-      element = $(element);
-      var valueT = 0, valueL = 0;
-      do {
-        valueT += element.offsetTop  || 0;
-        valueL += element.offsetLeft || 0;
-        if (element.offsetParent == document.body) {
-          if (Element.getStyle(element, 'position') == 'absolute') break;
-        }
-
-        element = element.offsetParent;
-      } while (element);
-
-      return new Element.Offset(valueL, valueT);
-    };
-  }
-
-
-  Element.addMethods({
-    getLayout:              getLayout,
-    measure:                measure,
-    getWidth:               getWidth,
-    getHeight:              getHeight,
-    getDimensions:          getDimensions,
-    getOffsetParent:        getOffsetParent,
-    cumulativeOffset:       cumulativeOffset,
-    positionedOffset:       positionedOffset,
-    cumulativeScrollOffset: cumulativeScrollOffset,
-    viewportOffset:         viewportOffset,
-    absolutize:             absolutize,
-    relativize:             relativize,
-    scrollTo:               scrollTo,
-    makePositioned:         makePositioned,
-    undoPositioned:         undoPositioned,
-    makeClipping:           makeClipping,
-    undoClipping:           undoClipping,
-    clonePosition:          clonePosition
-  });
-
-  function isBody(element) {
-    return element.nodeName.toUpperCase() === 'BODY';
-  }
-
-  function isHtml(element) {
-    return element.nodeName.toUpperCase() === 'HTML';
-  }
-
-  function isDocument(element) {
-    return element.nodeType === Node.DOCUMENT_NODE;
-  }
-
-  function isDetached(element) {
-    return element !== document.body &&
-     !Element.descendantOf(element, document.body);
-  }
-
-  if ('getBoundingClientRect' in document.documentElement) {
-    Element.addMethods({
-      viewportOffset: function(element) {
-        element = $(element);
-        if (isDetached(element)) return new Element.Offset(0, 0);
-
-        var rect = element.getBoundingClientRect(),
-         docEl = document.documentElement;
-        return new Element.Offset(rect.left - docEl.clientLeft,
-         rect.top - docEl.clientTop);
-      }
-    });
-  }
-
-
-})();
-
-(function() {
-
-  var IS_OLD_OPERA = Prototype.Browser.Opera &&
-   (window.parseFloat(window.opera.version()) < 9.5);
-  var ROOT = null;
-  function getRootElement() {
-    if (ROOT) return ROOT;
-    ROOT = IS_OLD_OPERA ? document.body : document.documentElement;
-    return ROOT;
-  }
-
-  function getDimensions() {
-    return { width: this.getWidth(), height: this.getHeight() };
-  }
-
-  function getWidth() {
-    return getRootElement().clientWidth;
-  }
-
-  function getHeight() {
-    return getRootElement().clientHeight;
-  }
-
-  function getScrollOffsets() {
-    var x = window.pageXOffset || document.documentElement.scrollLeft ||
-     document.body.scrollLeft;
-    var y = window.pageYOffset || document.documentElement.scrollTop ||
-     document.body.scrollTop;
-
-    return new Element.Offset(x, y);
-  }
-
-  document.viewport = {
-    getDimensions:    getDimensions,
-    getWidth:         getWidth,
-    getHeight:        getHeight,
-    getScrollOffsets: getScrollOffsets
-  };
-
-})();
-window.$$ = function() {
-  var expression = $A(arguments).join(', ');
-  return Prototype.Selector.select(expression, document);
-};
-
-Prototype.Selector = (function() {
-
-  function select() {
-    throw new Error('Method "Prototype.Selector.select" must be defined.');
-  }
-
-  function match() {
-    throw new Error('Method "Prototype.Selector.match" must be defined.');
-  }
-
-  function find(elements, expression, index) {
-    index = index || 0;
-    var match = Prototype.Selector.match, length = elements.length, matchIndex = 0, i;
-
-    for (i = 0; i < length; i++) {
-      if (match(elements[i], expression) && index == matchIndex++) {
-        return Element.extend(elements[i]);
-      }
-    }
-  }
-
-  function extendElements(elements) {
-    for (var i = 0, length = elements.length; i < length; i++) {
-      Element.extend(elements[i]);
-    }
-    return elements;
-  }
-
-
-  var K = Prototype.K;
-
-  return {
-    select: select,
-    match: match,
-    find: find,
-    extendElements: (Element.extend === K) ? K : extendElements,
-    extendElement: Element.extend
-  };
-})();
-Prototype._original_property = window.Sizzle;
-
-;(function () {
-  function fakeDefine(fn) {
-    Prototype._actual_sizzle = fn();
-  }
-  fakeDefine.amd = true;
-
-  if (typeof define !== 'undefined' && define.amd) {
-    Prototype._original_define = define;
-    Prototype._actual_sizzle = null;
-    window.define = fakeDefine;
-  }
-})();
-
-/*!
- * Sizzle CSS Selector Engine v1.10.18
- * http://sizzlejs.com/
- *
- * Copyright 2013 jQuery Foundation, Inc. and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2014-02-05
- */
-(function( window ) {
-
-var i,
-	support,
-	Expr,
-	getText,
-	isXML,
-	compile,
-	select,
-	outermostContext,
-	sortInput,
-	hasDuplicate,
-
-	setDocument,
-	document,
-	docElem,
-	documentIsHTML,
-	rbuggyQSA,
-	rbuggyMatches,
-	matches,
-	contains,
-
-	expando = "sizzle" + -(new Date()),
-	preferredDoc = window.document,
-	dirruns = 0,
-	done = 0,
-	classCache = createCache(),
-	tokenCache = createCache(),
-	compilerCache = createCache(),
-	sortOrder = function( a, b ) {
-		if ( a === b ) {
-			hasDuplicate = true;
-		}
-		return 0;
-	},
-
-	strundefined = typeof undefined,
-	MAX_NEGATIVE = 1 << 31,
-
-	hasOwn = ({}).hasOwnProperty,
-	arr = [],
-	pop = arr.pop,
-	push_native = arr.push,
-	push = arr.push,
-	slice = arr.slice,
-	indexOf = arr.indexOf || function( elem ) {
-		var i = 0,
-			len = this.length;
-		for ( ; i < len; i++ ) {
-			if ( this[i] === elem ) {
-				return i;
-			}
-		}
-		return -1;
-	},
-
-	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
-
-
-	whitespace = "[\\x20\\t\\r\\n\\f]",
-	characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
-
-	identifier = characterEncoding.replace( "w", "w#" ),
-
-	attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
-		"*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
-
-	pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)",
-
-	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
-
-	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
-	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
-
-	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
-
-	rpseudo = new RegExp( pseudos ),
-	ridentifier = new RegExp( "^" + identifier + "$" ),
-
-	matchExpr = {
-		"ID": new RegExp( "^#(" + characterEncoding + ")" ),
-		"CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
-		"TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
-		"ATTR": new RegExp( "^" + attributes ),
-		"PSEUDO": new RegExp( "^" + pseudos ),
-		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
-			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
-			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
-		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
-		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
-			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
-	},
-
-	rinputs = /^(?:input|select|textarea|button)$/i,
-	rheader = /^h\d$/i,
-
-	rnative = /^[^{]+\{\s*\[native \w/,
-
-	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
-
-	rsibling = /[+~]/,
-	rescape = /'|\\/g,
-
-	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
-	funescape = function( _, escaped, escapedWhitespace ) {
-		var high = "0x" + escaped - 0x10000;
-		return high !== high || escapedWhitespace ?
-			escaped :
-			high < 0 ?
-				String.fromCharCode( high + 0x10000 ) :
-				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
-	};
-
-try {
-	push.apply(
-		(arr = slice.call( preferredDoc.childNodes )),
-		preferredDoc.childNodes
-	);
-	arr[ preferredDoc.childNodes.length ].nodeType;
-} catch ( e ) {
-	push = { apply: arr.length ?
-
-		function( target, els ) {
-			push_native.apply( target, slice.call(els) );
-		} :
-
-		function( target, els ) {
-			var j = target.length,
-				i = 0;
-			while ( (target[j++] = els[i++]) ) {}
-			target.length = j - 1;
-		}
-	};
-}
-
-function Sizzle( selector, context, results, seed ) {
-	var match, elem, m, nodeType,
-		i, groups, old, nid, newContext, newSelector;
-
-	if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
-		setDocument( context );
-	}
-
-	context = context || document;
-	results = results || [];
-
-	if ( !selector || typeof selector !== "string" ) {
-		return results;
-	}
-
-	if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
-		return [];
-	}
-
-	if ( documentIsHTML && !seed ) {
-
-		if ( (match = rquickExpr.exec( selector )) ) {
-			if ( (m = match[1]) ) {
-				if ( nodeType === 9 ) {
-					elem = context.getElementById( m );
-					if ( elem && elem.parentNode ) {
-						if ( elem.id === m ) {
-							results.push( elem );
-							return results;
-						}
-					} else {
-						return results;
-					}
-				} else {
-					if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
-						contains( context, elem ) && elem.id === m ) {
-						results.push( elem );
-						return results;
-					}
-				}
-
-			} else if ( match[2] ) {
-				push.apply( results, context.getElementsByTagName( selector ) );
-				return results;
-
-			} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {
-				push.apply( results, context.getElementsByClassName( m ) );
-				return results;
-			}
-		}
-
-		if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
-			nid = old = expando;
-			newContext = context;
-			newSelector = nodeType === 9 && selector;
-
-			if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
-				groups = tokenize( selector );
-
-				if ( (old = context.getAttribute("id")) ) {
-					nid = old.replace( rescape, "\\$&" );
-				} else {
-					context.setAttribute( "id", nid );
-				}
-				nid = "[id='" + nid + "'] ";
-
-				i = groups.length;
-				while ( i-- ) {
-					groups[i] = nid + toSelector( groups[i] );
-				}
-				newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
-				newSelector = groups.join(",");
-			}
-
-			if ( newSelector ) {
-				try {
-					push.apply( results,
-						newContext.querySelectorAll( newSelector )
-					);
-					return results;
-				} catch(qsaError) {
-				} finally {
-					if ( !old ) {
-						context.removeAttribute("id");
-					}
-				}
-			}
-		}
-	}
-
-	return select( selector.replace( rtrim, "$1" ), context, results, seed );
-}
-
-/**
- * Create key-value caches of limited size
- * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
- *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
- *	deleting the oldest entry
- */
-function createCache() {
-	var keys = [];
-
-	function cache( key, value ) {
-		if ( keys.push( key + " " ) > Expr.cacheLength ) {
-			delete cache[ keys.shift() ];
-		}
-		return (cache[ key + " " ] = value);
-	}
-	return cache;
-}
-
-/**
- * Mark a function for special use by Sizzle
- * @param {Function} fn The function to mark
- */
-function markFunction( fn ) {
-	fn[ expando ] = true;
-	return fn;
-}
-
-/**
- * Support testing using an element
- * @param {Function} fn Passed the created div and expects a boolean result
- */
-function assert( fn ) {
-	var div = document.createElement("div");
-
-	try {
-		return !!fn( div );
-	} catch (e) {
-		return false;
-	} finally {
-		if ( div.parentNode ) {
-			div.parentNode.removeChild( div );
-		}
-		div = null;
-	}
-}
-
-/**
- * Adds the same handler for all of the specified attrs
- * @param {String} attrs Pipe-separated list of attributes
- * @param {Function} handler The method that will be applied
- */
-function addHandle( attrs, handler ) {
-	var arr = attrs.split("|"),
-		i = attrs.length;
-
-	while ( i-- ) {
-		Expr.attrHandle[ arr[i] ] = handler;
-	}
-}
-
-/**
- * Checks document order of two siblings
- * @param {Element} a
- * @param {Element} b
- * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
- */
-function siblingCheck( a, b ) {
-	var cur = b && a,
-		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
-			( ~b.sourceIndex || MAX_NEGATIVE ) -
-			( ~a.sourceIndex || MAX_NEGATIVE );
-
-	if ( diff ) {
-		return diff;
-	}
-
-	if ( cur ) {
-		while ( (cur = cur.nextSibling) ) {
-			if ( cur === b ) {
-				return -1;
-			}
-		}
-	}
-
-	return a ? 1 : -1;
-}
-
-/**
- * Returns a function to use in pseudos for input types
- * @param {String} type
- */
-function createInputPseudo( type ) {
-	return function( elem ) {
-		var name = elem.nodeName.toLowerCase();
-		return name === "input" && elem.type === type;
-	};
-}
-
-/**
- * Returns a function to use in pseudos for buttons
- * @param {String} type
- */
-function createButtonPseudo( type ) {
-	return function( elem ) {
-		var name = elem.nodeName.toLowerCase();
-		return (name === "input" || name === "button") && elem.type === type;
-	};
-}
-
-/**
- * Returns a function to use in pseudos for positionals
- * @param {Function} fn
- */
-function createPositionalPseudo( fn ) {
-	return markFunction(function( argument ) {
-		argument = +argument;
-		return markFunction(function( seed, matches ) {
-			var j,
-				matchIndexes = fn( [], seed.length, argument ),
-				i = matchIndexes.length;
-
-			while ( i-- ) {
-				if ( seed[ (j = matchIndexes[i]) ] ) {
-					seed[j] = !(matches[j] = seed[j]);
-				}
-			}
-		});
-	});
-}
-
-/**
- * Checks a node for validity as a Sizzle context
- * @param {Element|Object=} context
- * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
- */
-function testContext( context ) {
-	return context && typeof context.getElementsByTagName !== strundefined && context;
-}
-
-support = Sizzle.support = {};
-
-/**
- * Detects XML nodes
- * @param {Element|Object} elem An element or a document
- * @returns {Boolean} True iff elem is a non-HTML XML node
- */
-isXML = Sizzle.isXML = function( elem ) {
-	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
-	return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-/**
- * Sets document-related variables once based on the current document
- * @param {Element|Object} [doc] An element or document object to use to set the document
- * @returns {Object} Returns the current document
- */
-setDocument = Sizzle.setDocument = function( node ) {
-	var hasCompare,
-		doc = node ? node.ownerDocument || node : preferredDoc,
-		parent = doc.defaultView;
-
-	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
-		return document;
-	}
-
-	document = doc;
-	docElem = doc.documentElement;
-
-	documentIsHTML = !isXML( doc );
-
-	if ( parent && parent !== parent.top ) {
-		if ( parent.addEventListener ) {
-			parent.addEventListener( "unload", function() {
-				setDocument();
-			}, false );
-		} else if ( parent.attachEvent ) {
-			parent.attachEvent( "onunload", function() {
-				setDocument();
-			});
-		}
-	}
-
-	/* Attributes
-	---------------------------------------------------------------------- */
-
-	support.attributes = assert(function( div ) {
-		div.className = "i";
-		return !div.getAttribute("className");
-	});
-
-	/* getElement(s)By*
-	---------------------------------------------------------------------- */
-
-	support.getElementsByTagName = assert(function( div ) {
-		div.appendChild( doc.createComment("") );
-		return !div.getElementsByTagName("*").length;
-	});
-
-	support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) {
-		div.innerHTML = "<div class='a'></div><div class='a i'></div>";
-
-		div.firstChild.className = "i";
-		return div.getElementsByClassName("i").length === 2;
-	});
-
-	support.getById = assert(function( div ) {
-		docElem.appendChild( div ).id = expando;
-		return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
-	});
-
-	if ( support.getById ) {
-		Expr.find["ID"] = function( id, context ) {
-			if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
-				var m = context.getElementById( id );
-				return m && m.parentNode ? [m] : [];
-			}
-		};
-		Expr.filter["ID"] = function( id ) {
-			var attrId = id.replace( runescape, funescape );
-			return function( elem ) {
-				return elem.getAttribute("id") === attrId;
-			};
-		};
-	} else {
-		delete Expr.find["ID"];
-
-		Expr.filter["ID"] =  function( id ) {
-			var attrId = id.replace( runescape, funescape );
-			return function( elem ) {
-				var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
-				return node && node.value === attrId;
-			};
-		};
-	}
-
-	Expr.find["TAG"] = support.getElementsByTagName ?
-		function( tag, context ) {
-			if ( typeof context.getElementsByTagName !== strundefined ) {
-				return context.getElementsByTagName( tag );
-			}
-		} :
-		function( tag, context ) {
-			var elem,
-				tmp = [],
-				i = 0,
-				results = context.getElementsByTagName( tag );
-
-			if ( tag === "*" ) {
-				while ( (elem = results[i++]) ) {
-					if ( elem.nodeType === 1 ) {
-						tmp.push( elem );
-					}
-				}
-
-				return tmp;
-			}
-			return results;
-		};
-
-	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
-		if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {
-			return context.getElementsByClassName( className );
-		}
-	};
-
-	/* QSA/matchesSelector
-	---------------------------------------------------------------------- */
-
-
-	rbuggyMatches = [];
-
-	rbuggyQSA = [];
-
-	if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
-		assert(function( div ) {
-			div.innerHTML = "<select t=''><option selected=''></option></select>";
-
-			if ( div.querySelectorAll("[t^='']").length ) {
-				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
-			}
-
-			if ( !div.querySelectorAll("[selected]").length ) {
-				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
-			}
-
-			if ( !div.querySelectorAll(":checked").length ) {
-				rbuggyQSA.push(":checked");
-			}
-		});
-
-		assert(function( div ) {
-			var input = doc.createElement("input");
-			input.setAttribute( "type", "hidden" );
-			div.appendChild( input ).setAttribute( "name", "D" );
-
-			if ( div.querySelectorAll("[name=d]").length ) {
-				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
-			}
-
-			if ( !div.querySelectorAll(":enabled").length ) {
-				rbuggyQSA.push( ":enabled", ":disabled" );
-			}
-
-			div.querySelectorAll("*,:x");
-			rbuggyQSA.push(",.*:");
-		});
-	}
-
-	if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||
-		docElem.mozMatchesSelector ||
-		docElem.oMatchesSelector ||
-		docElem.msMatchesSelector) )) ) {
-
-		assert(function( div ) {
-			support.disconnectedMatch = matches.call( div, "div" );
-
-			matches.call( div, "[s!='']:x" );
-			rbuggyMatches.push( "!=", pseudos );
-		});
-	}
-
-	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
-	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
-
-	/* Contains
-	---------------------------------------------------------------------- */
-	hasCompare = rnative.test( docElem.compareDocumentPosition );
-
-	contains = hasCompare || rnative.test( docElem.contains ) ?
-		function( a, b ) {
-			var adown = a.nodeType === 9 ? a.documentElement : a,
-				bup = b && b.parentNode;
-			return a === bup || !!( bup && bup.nodeType === 1 && (
-				adown.contains ?
-					adown.contains( bup ) :
-					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
-			));
-		} :
-		function( a, b ) {
-			if ( b ) {
-				while ( (b = b.parentNode) ) {
-					if ( b === a ) {
-						return true;
-					}
-				}
-			}
-			return false;
-		};
-
-	/* Sorting
-	---------------------------------------------------------------------- */
-
-	sortOrder = hasCompare ?
-	function( a, b ) {
-
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-		}
-
-		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
-		if ( compare ) {
-			return compare;
-		}
-
-		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
-			a.compareDocumentPosition( b ) :
-
-			1;
-
-		if ( compare & 1 ||
-			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
-
-			if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
-				return -1;
-			}
-			if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
-				return 1;
-			}
-
-			return sortInput ?
-				( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
-				0;
-		}
-
-		return compare & 4 ? -1 : 1;
-	} :
-	function( a, b ) {
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-		}
-
-		var cur,
-			i = 0,
-			aup = a.parentNode,
-			bup = b.parentNode,
-			ap = [ a ],
-			bp = [ b ];
-
-		if ( !aup || !bup ) {
-			return a === doc ? -1 :
-				b === doc ? 1 :
-				aup ? -1 :
-				bup ? 1 :
-				sortInput ?
-				( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
-				0;
-
-		} else if ( aup === bup ) {
-			return siblingCheck( a, b );
-		}
-
-		cur = a;
-		while ( (cur = cur.parentNode) ) {
-			ap.unshift( cur );
-		}
-		cur = b;
-		while ( (cur = cur.parentNode) ) {
-			bp.unshift( cur );
-		}
-
-		while ( ap[i] === bp[i] ) {
-			i++;
-		}
-
-		return i ?
-			siblingCheck( ap[i], bp[i] ) :
-
-			ap[i] === preferredDoc ? -1 :
-			bp[i] === preferredDoc ? 1 :
-			0;
-	};
-
-	return doc;
-};
-
-Sizzle.matches = function( expr, elements ) {
-	return Sizzle( expr, null, null, elements );
-};
-
-Sizzle.matchesSelector = function( elem, expr ) {
-	if ( ( elem.ownerDocument || elem ) !== document ) {
-		setDocument( elem );
-	}
-
-	expr = expr.replace( rattributeQuotes, "='$1']" );
-
-	if ( support.matchesSelector && documentIsHTML &&
-		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
-		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
-
-		try {
-			var ret = matches.call( elem, expr );
-
-			if ( ret || support.disconnectedMatch ||
-					elem.document && elem.document.nodeType !== 11 ) {
-				return ret;
-			}
-		} catch(e) {}
-	}
-
-	return Sizzle( expr, document, null, [elem] ).length > 0;
-};
-
-Sizzle.contains = function( context, elem ) {
-	if ( ( context.ownerDocument || context ) !== document ) {
-		setDocument( context );
-	}
-	return contains( context, elem );
-};
-
-Sizzle.attr = function( elem, name ) {
-	if ( ( elem.ownerDocument || elem ) !== document ) {
-		setDocument( elem );
-	}
-
-	var fn = Expr.attrHandle[ name.toLowerCase() ],
-		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
-			fn( elem, name, !documentIsHTML ) :
-			undefined;
-
-	return val !== undefined ?
-		val :
-		support.attributes || !documentIsHTML ?
-			elem.getAttribute( name ) :
-			(val = elem.getAttributeNode(name)) && val.specified ?
-				val.value :
-				null;
-};
-
-Sizzle.error = function( msg ) {
-	throw new Error( "Syntax error, unrecognized expression: " + msg );
-};
-
-/**
- * Document sorting and removing duplicates
- * @param {ArrayLike} results
- */
-Sizzle.uniqueSort = function( results ) {
-	var elem,
-		duplicates = [],
-		j = 0,
-		i = 0;
-
-	hasDuplicate = !support.detectDuplicates;
-	sortInput = !support.sortStable && results.slice( 0 );
-	results.sort( sortOrder );
-
-	if ( hasDuplicate ) {
-		while ( (elem = results[i++]) ) {
-			if ( elem === results[ i ] ) {
-				j = duplicates.push( i );
-			}
-		}
-		while ( j-- ) {
-			results.splice( duplicates[ j ], 1 );
-		}
-	}
-
-	sortInput = null;
-
-	return results;
-};
-
-/**
- * Utility function for retrieving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
-getText = Sizzle.getText = function( elem ) {
-	var node,
-		ret = "",
-		i = 0,
-		nodeType = elem.nodeType;
-
-	if ( !nodeType ) {
-		while ( (node = elem[i++]) ) {
-			ret += getText( node );
-		}
-	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
-		if ( typeof elem.textContent === "string" ) {
-			return elem.textContent;
-		} else {
-			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
-				ret += getText( elem );
-			}
-		}
-	} else if ( nodeType === 3 || nodeType === 4 ) {
-		return elem.nodeValue;
-	}
-
-	return ret;
-};
-
-Expr = Sizzle.selectors = {
-
-	cacheLength: 50,
-
-	createPseudo: markFunction,
-
-	match: matchExpr,
-
-	attrHandle: {},
-
-	find: {},
-
-	relative: {
-		">": { dir: "parentNode", first: true },
-		" ": { dir: "parentNode" },
-		"+": { dir: "previousSibling", first: true },
-		"~": { dir: "previousSibling" }
-	},
-
-	preFilter: {
-		"ATTR": function( match ) {
-			match[1] = match[1].replace( runescape, funescape );
-
-			match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape );
-
-			if ( match[2] === "~=" ) {
-				match[3] = " " + match[3] + " ";
-			}
-
-			return match.slice( 0, 4 );
-		},
-
-		"CHILD": function( match ) {
-			/* matches from matchExpr["CHILD"]
-				1 type (only|nth|...)
-				2 what (child|of-type)
-				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
-				4 xn-component of xn+y argument ([+-]?\d*n|)
-				5 sign of xn-component
-				6 x of xn-component
-				7 sign of y-component
-				8 y of y-component
-			*/
-			match[1] = match[1].toLowerCase();
-
-			if ( match[1].slice( 0, 3 ) === "nth" ) {
-				if ( !match[3] ) {
-					Sizzle.error( match[0] );
-				}
-
-				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
-				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
-
-			} else if ( match[3] ) {
-				Sizzle.error( match[0] );
-			}
-
-			return match;
-		},
-
-		"PSEUDO": function( match ) {
-			var excess,
-				unquoted = !match[5] && match[2];
-
-			if ( matchExpr["CHILD"].test( match[0] ) ) {
-				return null;
-			}
-
-			if ( match[3] && match[4] !== undefined ) {
-				match[2] = match[4];
-
-			} else if ( unquoted && rpseudo.test( unquoted ) &&
-				(excess = tokenize( unquoted, true )) &&
-				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
-
-				match[0] = match[0].slice( 0, excess );
-				match[2] = unquoted.slice( 0, excess );
-			}
-
-			return match.slice( 0, 3 );
-		}
-	},
-
-	filter: {
-
-		"TAG": function( nodeNameSelector ) {
-			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
-			return nodeNameSelector === "*" ?
-				function() { return true; } :
-				function( elem ) {
-					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
-				};
-		},
-
-		"CLASS": function( className ) {
-			var pattern = classCache[ className + " " ];
-
-			return pattern ||
-				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
-				classCache( className, function( elem ) {
-					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
-				});
-		},
-
-		"ATTR": function( name, operator, check ) {
-			return function( elem ) {
-				var result = Sizzle.attr( elem, name );
-
-				if ( result == null ) {
-					return operator === "!=";
-				}
-				if ( !operator ) {
-					return true;
-				}
-
-				result += "";
-
-				return operator === "=" ? result === check :
-					operator === "!=" ? result !== check :
-					operator === "^=" ? check && result.indexOf( check ) === 0 :
-					operator === "*=" ? check && result.indexOf( check ) > -1 :
-					operator === "$=" ? check && result.slice( -check.length ) === check :
-					operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
-					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
-					false;
-			};
-		},
-
-		"CHILD": function( type, what, argument, first, last ) {
-			var simple = type.slice( 0, 3 ) !== "nth",
-				forward = type.slice( -4 ) !== "last",
-				ofType = what === "of-type";
-
-			return first === 1 && last === 0 ?
-
-				function( elem ) {
-					return !!elem.parentNode;
-				} :
-
-				function( elem, context, xml ) {
-					var cache, outerCache, node, diff, nodeIndex, start,
-						dir = simple !== forward ? "nextSibling" : "previousSibling",
-						parent = elem.parentNode,
-						name = ofType && elem.nodeName.toLowerCase(),
-						useCache = !xml && !ofType;
-
-					if ( parent ) {
-
-						if ( simple ) {
-							while ( dir ) {
-								node = elem;
-								while ( (node = node[ dir ]) ) {
-									if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
-										return false;
-									}
-								}
-								start = dir = type === "only" && !start && "nextSibling";
-							}
-							return true;
-						}
-
-						start = [ forward ? parent.firstChild : parent.lastChild ];
-
-						if ( forward && useCache ) {
-							outerCache = parent[ expando ] || (parent[ expando ] = {});
-							cache = outerCache[ type ] || [];
-							nodeIndex = cache[0] === dirruns && cache[1];
-							diff = cache[0] === dirruns && cache[2];
-							node = nodeIndex && parent.childNodes[ nodeIndex ];
-
-							while ( (node = ++nodeIndex && node && node[ dir ] ||
-
-								(diff = nodeIndex = 0) || start.pop()) ) {
-
-								if ( node.nodeType === 1 && ++diff && node === elem ) {
-									outerCache[ type ] = [ dirruns, nodeIndex, diff ];
-									break;
-								}
-							}
-
-						} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
-							diff = cache[1];
-
-						} else {
-							while ( (node = ++nodeIndex && node && node[ dir ] ||
-								(diff = nodeIndex = 0) || start.pop()) ) {
-
-								if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
-									if ( useCache ) {
-										(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
-									}
-
-									if ( node === elem ) {
-										break;
-									}
-								}
-							}
-						}
-
-						diff -= last;
-						return diff === first || ( diff % first === 0 && diff / first >= 0 );
-					}
-				};
-		},
-
-		"PSEUDO": function( pseudo, argument ) {
-			var args,
-				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
-					Sizzle.error( "unsupported pseudo: " + pseudo );
-
-			if ( fn[ expando ] ) {
-				return fn( argument );
-			}
-
-			if ( fn.length > 1 ) {
-				args = [ pseudo, pseudo, "", argument ];
-				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
-					markFunction(function( seed, matches ) {
-						var idx,
-							matched = fn( seed, argument ),
-							i = matched.length;
-						while ( i-- ) {
-							idx = indexOf.call( seed, matched[i] );
-							seed[ idx ] = !( matches[ idx ] = matched[i] );
-						}
-					}) :
-					function( elem ) {
-						return fn( elem, 0, args );
-					};
-			}
-
-			return fn;
-		}
-	},
-
-	pseudos: {
-		"not": markFunction(function( selector ) {
-			var input = [],
-				results = [],
-				matcher = compile( selector.replace( rtrim, "$1" ) );
-
-			return matcher[ expando ] ?
-				markFunction(function( seed, matches, context, xml ) {
-					var elem,
-						unmatched = matcher( seed, null, xml, [] ),
-						i = seed.length;
-
-					while ( i-- ) {
-						if ( (elem = unmatched[i]) ) {
-							seed[i] = !(matches[i] = elem);
-						}
-					}
-				}) :
-				function( elem, context, xml ) {
-					input[0] = elem;
-					matcher( input, null, xml, results );
-					return !results.pop();
-				};
-		}),
-
-		"has": markFunction(function( selector ) {
-			return function( elem ) {
-				return Sizzle( selector, elem ).length > 0;
-			};
-		}),
-
-		"contains": markFunction(function( text ) {
-			return function( elem ) {
-				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
-			};
-		}),
-
-		"lang": markFunction( function( lang ) {
-			if ( !ridentifier.test(lang || "") ) {
-				Sizzle.error( "unsupported lang: " + lang );
-			}
-			lang = lang.replace( runescape, funescape ).toLowerCase();
-			return function( elem ) {
-				var elemLang;
-				do {
-					if ( (elemLang = documentIsHTML ?
-						elem.lang :
-						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
-
-						elemLang = elemLang.toLowerCase();
-						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
-					}
-				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
-				return false;
-			};
-		}),
-
-		"target": function( elem ) {
-			var hash = window.location && window.location.hash;
-			return hash && hash.slice( 1 ) === elem.id;
-		},
-
-		"root": function( elem ) {
-			return elem === docElem;
-		},
-
-		"focus": function( elem ) {
-			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
-		},
-
-		"enabled": function( elem ) {
-			return elem.disabled === false;
-		},
-
-		"disabled": function( elem ) {
-			return elem.disabled === true;
-		},
-
-		"checked": function( elem ) {
-			var nodeName = elem.nodeName.toLowerCase();
-			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
-		},
-
-		"selected": function( elem ) {
-			if ( elem.parentNode ) {
-				elem.parentNode.selectedIndex;
-			}
-
-			return elem.selected === true;
-		},
-
-		"empty": function( elem ) {
-			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
-				if ( elem.nodeType < 6 ) {
-					return false;
-				}
-			}
-			return true;
-		},
-
-		"parent": function( elem ) {
-			return !Expr.pseudos["empty"]( elem );
-		},
-
-		"header": function( elem ) {
-			return rheader.test( elem.nodeName );
-		},
-
-		"input": function( elem ) {
-			return rinputs.test( elem.nodeName );
-		},
-
-		"button": function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return name === "input" && elem.type === "button" || name === "button";
-		},
-
-		"text": function( elem ) {
-			var attr;
-			return elem.nodeName.toLowerCase() === "input" &&
-				elem.type === "text" &&
-
-				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
-		},
-
-		"first": createPositionalPseudo(function() {
-			return [ 0 ];
-		}),
-
-		"last": createPositionalPseudo(function( matchIndexes, length ) {
-			return [ length - 1 ];
-		}),
-
-		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
-			return [ argument < 0 ? argument + length : argument ];
-		}),
-
-		"even": createPositionalPseudo(function( matchIndexes, length ) {
-			var i = 0;
-			for ( ; i < length; i += 2 ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		}),
-
-		"odd": createPositionalPseudo(function( matchIndexes, length ) {
-			var i = 1;
-			for ( ; i < length; i += 2 ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		}),
-
-		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
-			var i = argument < 0 ? argument + length : argument;
-			for ( ; --i >= 0; ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		}),
-
-		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
-			var i = argument < 0 ? argument + length : argument;
-			for ( ; ++i < length; ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		})
-	}
-};
-
-Expr.pseudos["nth"] = Expr.pseudos["eq"];
-
-for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
-	Expr.pseudos[ i ] = createInputPseudo( i );
-}
-for ( i in { submit: true, reset: true } ) {
-	Expr.pseudos[ i ] = createButtonPseudo( i );
-}
-
-function setFilters() {}
-setFilters.prototype = Expr.filters = Expr.pseudos;
-Expr.setFilters = new setFilters();
-
-function tokenize( selector, parseOnly ) {
-	var matched, match, tokens, type,
-		soFar, groups, preFilters,
-		cached = tokenCache[ selector + " " ];
-
-	if ( cached ) {
-		return parseOnly ? 0 : cached.slice( 0 );
-	}
-
-	soFar = selector;
-	groups = [];
-	preFilters = Expr.preFilter;
-
-	while ( soFar ) {
-
-		if ( !matched || (match = rcomma.exec( soFar )) ) {
-			if ( match ) {
-				soFar = soFar.slice( match[0].length ) || soFar;
-			}
-			groups.push( (tokens = []) );
-		}
-
-		matched = false;
-
-		if ( (match = rcombinators.exec( soFar )) ) {
-			matched = match.shift();
-			tokens.push({
-				value: matched,
-				type: match[0].replace( rtrim, " " )
-			});
-			soFar = soFar.slice( matched.length );
-		}
-
-		for ( type in Expr.filter ) {
-			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
-				(match = preFilters[ type ]( match ))) ) {
-				matched = match.shift();
-				tokens.push({
-					value: matched,
-					type: type,
-					matches: match
-				});
-				soFar = soFar.slice( matched.length );
-			}
-		}
-
-		if ( !matched ) {
-			break;
-		}
-	}
-
-	return parseOnly ?
-		soFar.length :
-		soFar ?
-			Sizzle.error( selector ) :
-			tokenCache( selector, groups ).slice( 0 );
-}
-
-function toSelector( tokens ) {
-	var i = 0,
-		len = tokens.length,
-		selector = "";
-	for ( ; i < len; i++ ) {
-		selector += tokens[i].value;
-	}
-	return selector;
-}
-
-function addCombinator( matcher, combinator, base ) {
-	var dir = combinator.dir,
-		checkNonElements = base && dir === "parentNode",
-		doneName = done++;
-
-	return combinator.first ?
-		function( elem, context, xml ) {
-			while ( (elem = elem[ dir ]) ) {
-				if ( elem.nodeType === 1 || checkNonElements ) {
-					return matcher( elem, context, xml );
-				}
-			}
-		} :
-
-		function( elem, context, xml ) {
-			var oldCache, outerCache,
-				newCache = [ dirruns, doneName ];
-
-			if ( xml ) {
-				while ( (elem = elem[ dir ]) ) {
-					if ( elem.nodeType === 1 || checkNonElements ) {
-						if ( matcher( elem, context, xml ) ) {
-							return true;
-						}
-					}
-				}
-			} else {
-				while ( (elem = elem[ dir ]) ) {
-					if ( elem.nodeType === 1 || checkNonElements ) {
-						outerCache = elem[ expando ] || (elem[ expando ] = {});
-						if ( (oldCache = outerCache[ dir ]) &&
-							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
-
-							return (newCache[ 2 ] = oldCache[ 2 ]);
-						} else {
-							outerCache[ dir ] = newCache;
-
-							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
-								return true;
-							}
-						}
-					}
-				}
-			}
-		};
-}
-
-function elementMatcher( matchers ) {
-	return matchers.length > 1 ?
-		function( elem, context, xml ) {
-			var i = matchers.length;
-			while ( i-- ) {
-				if ( !matchers[i]( elem, context, xml ) ) {
-					return false;
-				}
-			}
-			return true;
-		} :
-		matchers[0];
-}
-
-function multipleContexts( selector, contexts, results ) {
-	var i = 0,
-		len = contexts.length;
-	for ( ; i < len; i++ ) {
-		Sizzle( selector, contexts[i], results );
-	}
-	return results;
-}
-
-function condense( unmatched, map, filter, context, xml ) {
-	var elem,
-		newUnmatched = [],
-		i = 0,
-		len = unmatched.length,
-		mapped = map != null;
-
-	for ( ; i < len; i++ ) {
-		if ( (elem = unmatched[i]) ) {
-			if ( !filter || filter( elem, context, xml ) ) {
-				newUnmatched.push( elem );
-				if ( mapped ) {
-					map.push( i );
-				}
-			}
-		}
-	}
-
-	return newUnmatched;
-}
-
-function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
-	if ( postFilter && !postFilter[ expando ] ) {
-		postFilter = setMatcher( postFilter );
-	}
-	if ( postFinder && !postFinder[ expando ] ) {
-		postFinder = setMatcher( postFinder, postSelector );
-	}
-	return markFunction(function( seed, results, context, xml ) {
-		var temp, i, elem,
-			preMap = [],
-			postMap = [],
-			preexisting = results.length,
-
-			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
-
-			matcherIn = preFilter && ( seed || !selector ) ?
-				condense( elems, preMap, preFilter, context, xml ) :
-				elems,
-
-			matcherOut = matcher ?
-				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
-
-					[] :
-
-					results :
-				matcherIn;
-
-		if ( matcher ) {
-			matcher( matcherIn, matcherOut, context, xml );
-		}
-
-		if ( postFilter ) {
-			temp = condense( matcherOut, postMap );
-			postFilter( temp, [], context, xml );
-
-			i = temp.length;
-			while ( i-- ) {
-				if ( (elem = temp[i]) ) {
-					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
-				}
-			}
-		}
-
-		if ( seed ) {
-			if ( postFinder || preFilter ) {
-				if ( postFinder ) {
-					temp = [];
-					i = matcherOut.length;
-					while ( i-- ) {
-						if ( (elem = matcherOut[i]) ) {
-							temp.push( (matcherIn[i] = elem) );
-						}
-					}
-					postFinder( null, (matcherOut = []), temp, xml );
-				}
-
-				i = matcherOut.length;
-				while ( i-- ) {
-					if ( (elem = matcherOut[i]) &&
-						(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
-
-						seed[temp] = !(results[temp] = elem);
-					}
-				}
-			}
-
-		} else {
-			matcherOut = condense(
-				matcherOut === results ?
-					matcherOut.splice( preexisting, matcherOut.length ) :
-					matcherOut
-			);
-			if ( postFinder ) {
-				postFinder( null, results, matcherOut, xml );
-			} else {
-				push.apply( results, matcherOut );
-			}
-		}
-	});
-}
-
-function matcherFromTokens( tokens ) {
-	var checkContext, matcher, j,
-		len = tokens.length,
-		leadingRelative = Expr.relative[ tokens[0].type ],
-		implicitRelative = leadingRelative || Expr.relative[" "],
-		i = leadingRelative ? 1 : 0,
-
-		matchContext = addCombinator( function( elem ) {
-			return elem === checkContext;
-		}, implicitRelative, true ),
-		matchAnyContext = addCombinator( function( elem ) {
-			return indexOf.call( checkContext, elem ) > -1;
-		}, implicitRelative, true ),
-		matchers = [ function( elem, context, xml ) {
-			return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
-				(checkContext = context).nodeType ?
-					matchContext( elem, context, xml ) :
-					matchAnyContext( elem, context, xml ) );
-		} ];
-
-	for ( ; i < len; i++ ) {
-		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
-			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
-		} else {
-			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
-
-			if ( matcher[ expando ] ) {
-				j = ++i;
-				for ( ; j < len; j++ ) {
-					if ( Expr.relative[ tokens[j].type ] ) {
-						break;
-					}
-				}
-				return setMatcher(
-					i > 1 && elementMatcher( matchers ),
-					i > 1 && toSelector(
-						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
-					).replace( rtrim, "$1" ),
-					matcher,
-					i < j && matcherFromTokens( tokens.slice( i, j ) ),
-					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
-					j < len && toSelector( tokens )
-				);
-			}
-			matchers.push( matcher );
-		}
-	}
-
-	return elementMatcher( matchers );
-}
-
-function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
-	var bySet = setMatchers.length > 0,
-		byElement = elementMatchers.length > 0,
-		superMatcher = function( seed, context, xml, results, outermost ) {
-			var elem, j, matcher,
-				matchedCount = 0,
-				i = "0",
-				unmatched = seed && [],
-				setMatched = [],
-				contextBackup = outermostContext,
-				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
-				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
-				len = elems.length;
-
-			if ( outermost ) {
-				outermostContext = context !== document && context;
-			}
-
-			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
-				if ( byElement && elem ) {
-					j = 0;
-					while ( (matcher = elementMatchers[j++]) ) {
-						if ( matcher( elem, context, xml ) ) {
-							results.push( elem );
-							break;
-						}
-					}
-					if ( outermost ) {
-						dirruns = dirrunsUnique;
-					}
-				}
-
-				if ( bySet ) {
-					if ( (elem = !matcher && elem) ) {
-						matchedCount--;
-					}
-
-					if ( seed ) {
-						unmatched.push( elem );
-					}
-				}
-			}
-
-			matchedCount += i;
-			if ( bySet && i !== matchedCount ) {
-				j = 0;
-				while ( (matcher = setMatchers[j++]) ) {
-					matcher( unmatched, setMatched, context, xml );
-				}
-
-				if ( seed ) {
-					if ( matchedCount > 0 ) {
-						while ( i-- ) {
-							if ( !(unmatched[i] || setMatched[i]) ) {
-								setMatched[i] = pop.call( results );
-							}
-						}
-					}
-
-					setMatched = condense( setMatched );
-				}
-
-				push.apply( results, setMatched );
-
-				if ( outermost && !seed && setMatched.length > 0 &&
-					( matchedCount + setMatchers.length ) > 1 ) {
-
-					Sizzle.uniqueSort( results );
-				}
-			}
-
-			if ( outermost ) {
-				dirruns = dirrunsUnique;
-				outermostContext = contextBackup;
-			}
-
-			return unmatched;
-		};
-
-	return bySet ?
-		markFunction( superMatcher ) :
-		superMatcher;
-}
-
-compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
-	var i,
-		setMatchers = [],
-		elementMatchers = [],
-		cached = compilerCache[ selector + " " ];
-
-	if ( !cached ) {
-		if ( !match ) {
-			match = tokenize( selector );
-		}
-		i = match.length;
-		while ( i-- ) {
-			cached = matcherFromTokens( match[i] );
-			if ( cached[ expando ] ) {
-				setMatchers.push( cached );
-			} else {
-				elementMatchers.push( cached );
-			}
-		}
-
-		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
-
-		cached.selector = selector;
-	}
-	return cached;
-};
-
-/**
- * A low-level selection function that works with Sizzle's compiled
- *  selector functions
- * @param {String|Function} selector A selector or a pre-compiled
- *  selector function built with Sizzle.compile
- * @param {Element} context
- * @param {Array} [results]
- * @param {Array} [seed] A set of elements to match against
- */
-select = Sizzle.select = function( selector, context, results, seed ) {
-	var i, tokens, token, type, find,
-		compiled = typeof selector === "function" && selector,
-		match = !seed && tokenize( (selector = compiled.selector || selector) );
-
-	results = results || [];
-
-	if ( match.length === 1 ) {
-
-		tokens = match[0] = match[0].slice( 0 );
-		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
-				support.getById && context.nodeType === 9 && documentIsHTML &&
-				Expr.relative[ tokens[1].type ] ) {
-
-			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
-			if ( !context ) {
-				return results;
-
-			} else if ( compiled ) {
-				context = context.parentNode;
-			}
-
-			selector = selector.slice( tokens.shift().value.length );
-		}
-
-		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
-		while ( i-- ) {
-			token = tokens[i];
-
-			if ( Expr.relative[ (type = token.type) ] ) {
-				break;
-			}
-			if ( (find = Expr.find[ type ]) ) {
-				if ( (seed = find(
-					token.matches[0].replace( runescape, funescape ),
-					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
-				)) ) {
-
-					tokens.splice( i, 1 );
-					selector = seed.length && toSelector( tokens );
-					if ( !selector ) {
-						push.apply( results, seed );
-						return results;
-					}
-
-					break;
-				}
-			}
-		}
-	}
-
-	( compiled || compile( selector, match ) )(
-		seed,
-		context,
-		!documentIsHTML,
-		results,
-		rsibling.test( selector ) && testContext( context.parentNode ) || context
-	);
-	return results;
-};
-
-
-support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
-
-support.detectDuplicates = !!hasDuplicate;
-
-setDocument();
-
-support.sortDetached = assert(function( div1 ) {
-	return div1.compareDocumentPosition( document.createElement("div") ) & 1;
-});
-
-if ( !assert(function( div ) {
-	div.innerHTML = "<a href='#'></a>";
-	return div.firstChild.getAttribute("href") === "#" ;
-}) ) {
-	addHandle( "type|href|height|width", function( elem, name, isXML ) {
-		if ( !isXML ) {
-			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
-		}
-	});
-}
-
-if ( !support.attributes || !assert(function( div ) {
-	div.innerHTML = "<input/>";
-	div.firstChild.setAttribute( "value", "" );
-	return div.firstChild.getAttribute( "value" ) === "";
-}) ) {
-	addHandle( "value", function( elem, name, isXML ) {
-		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
-			return elem.defaultValue;
-		}
-	});
-}
-
-if ( !assert(function( div ) {
-	return div.getAttribute("disabled") == null;
-}) ) {
-	addHandle( booleans, function( elem, name, isXML ) {
-		var val;
-		if ( !isXML ) {
-			return elem[ name ] === true ? name.toLowerCase() :
-					(val = elem.getAttributeNode( name )) && val.specified ?
-					val.value :
-				null;
-		}
-	});
-}
-
-if ( typeof define === "function" && define.amd ) {
-	define(function() { return Sizzle; });
-} else if ( typeof module !== "undefined" && module.exports ) {
-	module.exports = Sizzle;
-} else {
-	window.Sizzle = Sizzle;
-}
-
-})( window );
-
-;(function() {
-  if (typeof Sizzle !== 'undefined') {
-    return;
-  }
-
-  if (typeof define !== 'undefined' && define.amd) {
-    window.Sizzle = Prototype._actual_sizzle;
-    window.define = Prototype._original_define;
-    delete Prototype._actual_sizzle;
-    delete Prototype._original_define;
-  } else if (typeof module !== 'undefined' && module.exports) {
-    window.Sizzle = module.exports;
-    module.exports = {};
-  }
-})();
-
-;(function(engine) {
-  var extendElements = Prototype.Selector.extendElements;
-
-  function select(selector, scope) {
-    return extendElements(engine(selector, scope || document));
-  }
-
-  function match(element, selector) {
-    return engine.matches(selector, [element]).length == 1;
-  }
-
-  Prototype.Selector.engine = engine;
-  Prototype.Selector.select = select;
-  Prototype.Selector.match = match;
-})(Sizzle);
-
-window.Sizzle = Prototype._original_property;
-delete Prototype._original_property;
-
-var Form = {
-  reset: function(form) {
-    form = $(form);
-    form.reset();
-    return form;
-  },
-
-  serializeElements: function(elements, options) {
-    if (typeof options != 'object') options = { hash: !!options };
-    else if (Object.isUndefined(options.hash)) options.hash = true;
-    var key, value, submitted = false, submit = options.submit, accumulator, initial;
-
-    if (options.hash) {
-      initial = {};
-      accumulator = function(result, key, value) {
-        if (key in result) {
-          if (!Object.isArray(result[key])) result[key] = [result[key]];
-          result[key] = result[key].concat(value);
-        } else result[key] = value;
-        return result;
-      };
-    } else {
-      initial = '';
-      accumulator = function(result, key, values) {
-        if (!Object.isArray(values)) {values = [values];}
-        if (!values.length) {return result;}
-        var encodedKey = encodeURIComponent(key).gsub(/%20/, '+');
-        return result + (result ? "&" : "") + values.map(function (value) {
-          value = value.gsub(/(\r)?\n/, '\r\n');
-          value = encodeURIComponent(value);
-          value = value.gsub(/%20/, '+');
-          return encodedKey + "=" + value;
-        }).join("&");
-      };
-    }
-
-    return elements.inject(initial, function(result, element) {
-      if (!element.disabled && element.name) {
-        key = element.name; value = $(element).getValue();
-        if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
-            submit !== false && (!submit || key == submit) && (submitted = true)))) {
-          result = accumulator(result, key, value);
-        }
-      }
-      return result;
-    });
-  }
-};
-
-Form.Methods = {
-  serialize: function(form, options) {
-    return Form.serializeElements(Form.getElements(form), options);
-  },
-
-
-  getElements: function(form) {
-    var elements = $(form).getElementsByTagName('*');
-    var element, results = [], serializers = Form.Element.Serializers;
-
-    for (var i = 0; element = elements[i]; i++) {
-      if (serializers[element.tagName.toLowerCase()])
-        results.push(Element.extend(element));
-    }
-    return results;
-  },
-
-  getInputs: function(form, typeName, name) {
-    form = $(form);
-    var inputs = form.getElementsByTagName('input');
-
-    if (!typeName && !name) return $A(inputs).map(Element.extend);
-
-    for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
-      var input = inputs[i];
-      if ((typeName && input.type != typeName) || (name && input.name != name))
-        continue;
-      matchingInputs.push(Element.extend(input));
-    }
-
-    return matchingInputs;
-  },
-
-  disable: function(form) {
-    form = $(form);
-    Form.getElements(form).invoke('disable');
-    return form;
-  },
-
-  enable: function(form) {
-    form = $(form);
-    Form.getElements(form).invoke('enable');
-    return form;
-  },
-
-  findFirstElement: function(form) {
-    var elements = $(form).getElements().findAll(function(element) {
-      return 'hidden' != element.type && !element.disabled;
-    });
-    var firstByIndex = elements.findAll(function(element) {
-      return element.hasAttribute('tabIndex') && element.tabIndex >= 0;
-    }).sortBy(function(element) { return element.tabIndex }).first();
-
-    return firstByIndex ? firstByIndex : elements.find(function(element) {
-      return /^(?:input|select|textarea)$/i.test(element.tagName);
-    });
-  },
-
-  focusFirstElement: function(form) {
-    form = $(form);
-    var element = form.findFirstElement();
-    if (element) element.activate();
-    return form;
-  },
-
-  request: function(form, options) {
-    form = $(form), options = Object.clone(options || { });
-
-    var params = options.parameters, action = form.readAttribute('action') || '';
-    if (action.blank()) action = window.location.href;
-    options.parameters = form.serialize(true);
-
-    if (params) {
-      if (Object.isString(params)) params = params.toQueryParams();
-      Object.extend(options.parameters, params);
-    }
-
-    if (form.hasAttribute('method') && !options.method)
-      options.method = form.method;
-
-    return new Ajax.Request(action, options);
-  }
-};
-
-/*--------------------------------------------------------------------------*/
-
-
-Form.Element = {
-  focus: function(element) {
-    $(element).focus();
-    return element;
-  },
-
-  select: function(element) {
-    $(element).select();
-    return element;
-  }
-};
-
-Form.Element.Methods = {
-
-  serialize: function(element) {
-    element = $(element);
-    if (!element.disabled && element.name) {
-      var value = element.getValue();
-      if (value != undefined) {
-        var pair = { };
-        pair[element.name] = value;
-        return Object.toQueryString(pair);
-      }
-    }
-    return '';
-  },
-
-  getValue: function(element) {
-    element = $(element);
-    var method = element.tagName.toLowerCase();
-    return Form.Element.Serializers[method](element);
-  },
-
-  setValue: function(element, value) {
-    element = $(element);
-    var method = element.tagName.toLowerCase();
-    Form.Element.Serializers[method](element, value);
-    return element;
-  },
-
-  clear: function(element) {
-    $(element).value = '';
-    return element;
-  },
-
-  present: function(element) {
-    return $(element).value != '';
-  },
-
-  activate: function(element) {
-    element = $(element);
-    try {
-      element.focus();
-      if (element.select && (element.tagName.toLowerCase() != 'input' ||
-          !(/^(?:button|reset|submit)$/i.test(element.type))))
-        element.select();
-    } catch (e) { }
-    return element;
-  },
-
-  disable: function(element) {
-    element = $(element);
-    element.disabled = true;
-    return element;
-  },
-
-  enable: function(element) {
-    element = $(element);
-    element.disabled = false;
-    return element;
-  }
-};
-
-/*--------------------------------------------------------------------------*/
-
-var Field = Form.Element;
-
-var $F = Form.Element.Methods.getValue;
-
-/*--------------------------------------------------------------------------*/
-
-Form.Element.Serializers = (function() {
-  function input(element, value) {
-    switch (element.type.toLowerCase()) {
-      case 'checkbox':
-      case 'radio':
-        return inputSelector(element, value);
-      default:
-        return valueSelector(element, value);
-    }
-  }
-
-  function inputSelector(element, value) {
-    if (Object.isUndefined(value))
-      return element.checked ? element.value : null;
-    else element.checked = !!value;
-  }
-
-  function valueSelector(element, value) {
-    if (Object.isUndefined(value)) return element.value;
-    else element.value = value;
-  }
-
-  function select(element, value) {
-    if (Object.isUndefined(value))
-      return (element.type === 'select-one' ? selectOne : selectMany)(element);
-
-    var opt, currentValue, single = !Object.isArray(value);
-    for (var i = 0, length = element.length; i < length; i++) {
-      opt = element.options[i];
-      currentValue = this.optionValue(opt);
-      if (single) {
-        if (currentValue == value) {
-          opt.selected = true;
-          return;
-        }
-      }
-      else opt.selected = value.include(currentValue);
-    }
-  }
-
-  function selectOne(element) {
-    var index = element.selectedIndex;
-    return index >= 0 ? optionValue(element.options[index]) : null;
-  }
-
-  function selectMany(element) {
-    var values, length = element.length;
-    if (!length) return null;
-
-    for (var i = 0, values = []; i < length; i++) {
-      var opt = element.options[i];
-      if (opt.selected) values.push(optionValue(opt));
-    }
-    return values;
-  }
-
-  function optionValue(opt) {
-    return Element.hasAttribute(opt, 'value') ? opt.value : opt.text;
-  }
-
-  return {
-    input:         input,
-    inputSelector: inputSelector,
-    textarea:      valueSelector,
-    select:        select,
-    selectOne:     selectOne,
-    selectMany:    selectMany,
-    optionValue:   optionValue,
-    button:        valueSelector
-  };
-})();
-
-/*--------------------------------------------------------------------------*/
-
-
-Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
-  initialize: function($super, element, frequency, callback) {
-    $super(callback, frequency);
-    this.element   = $(element);
-    this.lastValue = this.getValue();
-  },
-
-  execute: function() {
-    var value = this.getValue();
-    if (Object.isString(this.lastValue) && Object.isString(value) ?
-        this.lastValue != value : String(this.lastValue) != String(value)) {
-      this.callback(this.element, value);
-      this.lastValue = value;
-    }
-  }
-});
-
-Form.Element.Observer = Class.create(Abstract.TimedObserver, {
-  getValue: function() {
-    return Form.Element.getValue(this.element);
-  }
-});
-
-Form.Observer = Class.create(Abstract.TimedObserver, {
-  getValue: function() {
-    return Form.serialize(this.element);
-  }
-});
-
-/*--------------------------------------------------------------------------*/
-
-Abstract.EventObserver = Class.create({
-  initialize: function(element, callback) {
-    this.element  = $(element);
-    this.callback = callback;
-
-    this.lastValue = this.getValue();
-    if (this.element.tagName.toLowerCase() == 'form')
-      this.registerFormCallbacks();
-    else
-      this.registerCallback(this.element);
-  },
-
-  onElementEvent: function() {
-    var value = this.getValue();
-    if (this.lastValue != value) {
-      this.callback(this.element, value);
-      this.lastValue = value;
-    }
-  },
-
-  registerFormCallbacks: function() {
-    Form.getElements(this.element).each(this.registerCallback, this);
-  },
-
-  registerCallback: function(element) {
-    if (element.type) {
-      switch (element.type.toLowerCase()) {
-        case 'checkbox':
-        case 'radio':
-          Event.observe(element, 'click', this.onElementEvent.bind(this));
-          break;
-        default:
-          Event.observe(element, 'change', this.onElementEvent.bind(this));
-          break;
-      }
-    }
-  }
-});
-
-Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
-  getValue: function() {
-    return Form.Element.getValue(this.element);
-  }
-});
-
-Form.EventObserver = Class.create(Abstract.EventObserver, {
-  getValue: function() {
-    return Form.serialize(this.element);
-  }
-});
-(function(GLOBAL) {
-  var DIV = document.createElement('div');
-  var docEl = document.documentElement;
-  var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED = 'onmouseenter' in docEl
-   && 'onmouseleave' in docEl;
-
-  var Event = {
-    KEY_BACKSPACE: 8,
-    KEY_TAB:       9,
-    KEY_RETURN:   13,
-    KEY_ESC:      27,
-    KEY_LEFT:     37,
-    KEY_UP:       38,
-    KEY_RIGHT:    39,
-    KEY_DOWN:     40,
-    KEY_DELETE:   46,
-    KEY_HOME:     36,
-    KEY_END:      35,
-    KEY_PAGEUP:   33,
-    KEY_PAGEDOWN: 34,
-    KEY_INSERT:   45
-  };
-
-
-  var isIELegacyEvent = function(event) { return false; };
-
-  if (window.attachEvent) {
-    if (window.addEventListener) {
-      isIELegacyEvent = function(event) {
-        return !(event instanceof window.Event);
-      };
-    } else {
-      isIELegacyEvent = function(event) { return true; };
-    }
-  }
-
-  var _isButton;
-
-  function _isButtonForDOMEvents(event, code) {
-    return event.which ? (event.which === code + 1) : (event.button === code);
-  }
-
-  var legacyButtonMap = { 0: 1, 1: 4, 2: 2 };
-  function _isButtonForLegacyEvents(event, code) {
-    return event.button === legacyButtonMap[code];
-  }
-
-  function _isButtonForWebKit(event, code) {
-    switch (code) {
-      case 0: return event.which == 1 && !event.metaKey;
-      case 1: return event.which == 2 || (event.which == 1 && event.metaKey);
-      case 2: return event.which == 3;
-      default: return false;
-    }
-  }
-
-  if (window.attachEvent) {
-    if (!window.addEventListener) {
-      _isButton = _isButtonForLegacyEvents;
-    } else {
-      _isButton = function(event, code) {
-        return isIELegacyEvent(event) ? _isButtonForLegacyEvents(event, code) :
-         _isButtonForDOMEvents(event, code);
-      }
-    }
-  } else if (Prototype.Browser.WebKit) {
-    _isButton = _isButtonForWebKit;
-  } else {
-    _isButton = _isButtonForDOMEvents;
-  }
-
-  function isLeftClick(event)   { return _isButton(event, 0) }
-
-  function isMiddleClick(event) { return _isButton(event, 1) }
-
-  function isRightClick(event)  { return _isButton(event, 2) }
-
-  function element(event) {
-    return Element.extend(_element(event));
-  }
-
-  function _element(event) {
-    event = Event.extend(event);
-
-    var node = event.target, type = event.type,
-     currentTarget = event.currentTarget;
-
-    if (currentTarget && currentTarget.tagName) {
-      if (type === 'load' || type === 'error' ||
-        (type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
-          && currentTarget.type === 'radio'))
-            node = currentTarget;
-    }
-
-    return node.nodeType == Node.TEXT_NODE ? node.parentNode : node;
-  }
-
-  function findElement(event, expression) {
-    var element = _element(event), selector = Prototype.Selector;
-    if (!expression) return Element.extend(element);
-    while (element) {
-      if (Object.isElement(element) && selector.match(element, expression))
-        return Element.extend(element);
-      element = element.parentNode;
-    }
-  }
-
-  function pointer(event) {
-    return { x: pointerX(event), y: pointerY(event) };
-  }
-
-  function pointerX(event) {
-    var docElement = document.documentElement,
-     body = document.body || { scrollLeft: 0 };
-
-    return event.pageX || (event.clientX +
-      (docElement.scrollLeft || body.scrollLeft) -
-      (docElement.clientLeft || 0));
-  }
-
-  function pointerY(event) {
-    var docElement = document.documentElement,
-     body = document.body || { scrollTop: 0 };
-
-    return  event.pageY || (event.clientY +
-       (docElement.scrollTop || body.scrollTop) -
-       (docElement.clientTop || 0));
-  }
-
-
-  function stop(event) {
-    Event.extend(event);
-    event.preventDefault();
-    event.stopPropagation();
-
-    event.stopped = true;
-  }
-
-
-  Event.Methods = {
-    isLeftClick:   isLeftClick,
-    isMiddleClick: isMiddleClick,
-    isRightClick:  isRightClick,
-
-    element:     element,
-    findElement: findElement,
-
-    pointer:  pointer,
-    pointerX: pointerX,
-    pointerY: pointerY,
-
-    stop: stop
-  };
-
-  var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
-    m[name] = Event.Methods[name].methodize();
-    return m;
-  });
-
-  if (window.attachEvent) {
-    function _relatedTarget(event) {
-      var element;
-      switch (event.type) {
-        case 'mouseover':
-        case 'mouseenter':
-          element = event.fromElement;
-          break;
-        case 'mouseout':
-        case 'mouseleave':
-          element = event.toElement;
-          break;
-        default:
-          return null;
-      }
-      return Element.extend(element);
-    }
-
-    var additionalMethods = {
-      stopPropagation: function() { this.cancelBubble = true },
-      preventDefault:  function() { this.returnValue = false },
-      inspect: function() { return '[object Event]' }
-    };
-
-    Event.extend = function(event, element) {
-      if (!event) return false;
-
-      if (!isIELegacyEvent(event)) return event;
-
-      if (event._extendedByPrototype) return event;
-      event._extendedByPrototype = Prototype.emptyFunction;
-
-      var pointer = Event.pointer(event);
-
-      Object.extend(event, {
-        target: event.srcElement || element,
-        relatedTarget: _relatedTarget(event),
-        pageX:  pointer.x,
-        pageY:  pointer.y
-      });
-
-      Object.extend(event, methods);
-      Object.extend(event, additionalMethods);
-
-      return event;
-    };
-  } else {
-    Event.extend = Prototype.K;
-  }
-
-  if (window.addEventListener) {
-    Event.prototype = window.Event.prototype || document.createEvent('HTMLEvents').__proto__;
-    Object.extend(Event.prototype, methods);
-  }
-
-  var EVENT_TRANSLATIONS = {
-    mouseenter: 'mouseover',
-    mouseleave: 'mouseout'
-  };
-
-  function getDOMEventName(eventName) {
-    return EVENT_TRANSLATIONS[eventName] || eventName;
-  }
-
-  if (MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED)
-    getDOMEventName = Prototype.K;
-
-  function getUniqueElementID(element) {
-    if (element === window) return 0;
-
-    if (typeof element._prototypeUID === 'undefined')
-      element._prototypeUID = Element.Storage.UID++;
-    return element._prototypeUID;
-  }
-
-  function getUniqueElementID_IE(element) {
-    if (element === window) return 0;
-    if (element == document) return 1;
-    return element.uniqueID;
-  }
-
-  if ('uniqueID' in DIV)
-    getUniqueElementID = getUniqueElementID_IE;
-
-  function isCustomEvent(eventName) {
-    return eventName.include(':');
-  }
-
-  Event._isCustomEvent = isCustomEvent;
-
-  function getOrCreateRegistryFor(element, uid) {
-    var CACHE = GLOBAL.Event.cache;
-    if (Object.isUndefined(uid))
-      uid = getUniqueElementID(element);
-    if (!CACHE[uid]) CACHE[uid] = { element: element };
-    return CACHE[uid];
-  }
-
-  function destroyRegistryForElement(element, uid) {
-    if (Object.isUndefined(uid))
-      uid = getUniqueElementID(element);
-    delete GLOBAL.Event.cache[uid];
-  }
-
-
-  function register(element, eventName, handler) {
-    var registry = getOrCreateRegistryFor(element);
-    if (!registry[eventName]) registry[eventName] = [];
-    var entries = registry[eventName];
-
-    var i = entries.length;
-    while (i--)
-      if (entries[i].handler === handler) return null;
-
-    var uid = getUniqueElementID(element);
-    var responder = GLOBAL.Event._createResponder(uid, eventName, handler);
-    var entry = {
-      responder: responder,
-      handler:   handler
-    };
-
-    entries.push(entry);
-    return entry;
-  }
-
-  function unregister(element, eventName, handler) {
-    var registry = getOrCreateRegistryFor(element);
-    var entries = registry[eventName] || [];
-
-    var i = entries.length, entry;
-    while (i--) {
-      if (entries[i].handler === handler) {
-        entry = entries[i];
-        break;
-      }
-    }
-
-    if (entry) {
-      var index = entries.indexOf(entry);
-      entries.splice(index, 1);
-    }
-
-    if (entries.length === 0) {
-      delete registry[eventName];
-      if (Object.keys(registry).length === 1 && ('element' in registry))
-        destroyRegistryForElement(element);
-    }
-
-    return entry;
-  }
-
-
-  function observe(element, eventName, handler) {
-    element = $(element);
-    var entry = register(element, eventName, handler);
-
-    if (entry === null) return element;
-
-    var responder = entry.responder;
-    if (isCustomEvent(eventName))
-      observeCustomEvent(element, eventName, responder);
-    else
-      observeStandardEvent(element, eventName, responder);
-
-    return element;
-  }
-
-  function observeStandardEvent(element, eventName, responder) {
-    var actualEventName = getDOMEventName(eventName);
-    if (element.addEventListener) {
-      element.addEventListener(actualEventName, responder, false);
-    } else {
-      element.attachEvent('on' + actualEventName, responder);
-    }
-  }
-
-  function observeCustomEvent(element, eventName, responder) {
-    if (element.addEventListener) {
-      element.addEventListener('dataavailable', responder, false);
-    } else {
-      element.attachEvent('ondataavailable', responder);
-      element.attachEvent('onlosecapture',   responder);
-    }
-  }
-
-  function stopObserving(element, eventName, handler) {
-    element = $(element);
-    var handlerGiven = !Object.isUndefined(handler),
-     eventNameGiven = !Object.isUndefined(eventName);
-
-    if (!eventNameGiven && !handlerGiven) {
-      stopObservingElement(element);
-      return element;
-    }
-
-    if (!handlerGiven) {
-      stopObservingEventName(element, eventName);
-      return element;
-    }
-
-    var entry = unregister(element, eventName, handler);
-
-    if (!entry) return element;
-    removeEvent(element, eventName, entry.responder);
-    return element;
-  }
-
-  function stopObservingStandardEvent(element, eventName, responder) {
-    var actualEventName = getDOMEventName(eventName);
-    if (element.removeEventListener) {
-      element.removeEventListener(actualEventName, responder, false);
-    } else {
-      element.detachEvent('on' + actualEventName, responder);
-    }
-  }
-
-  function stopObservingCustomEvent(element, eventName, responder) {
-    if (element.removeEventListener) {
-      element.removeEventListener('dataavailable', responder, false);
-    } else {
-      element.detachEvent('ondataavailable', responder);
-      element.detachEvent('onlosecapture',   responder);
-    }
-  }
-
-
-
-  function stopObservingElement(element) {
-    var uid = getUniqueElementID(element), registry = GLOBAL.Event.cache[uid];
-    if (!registry) return;
-
-    destroyRegistryForElement(element, uid);
-
-    var entries, i;
-    for (var eventName in registry) {
-      if (eventName === 'element') continue;
-
-      entries = registry[eventName];
-      i = entries.length;
-      while (i--)
-        removeEvent(element, eventName, entries[i].responder);
-    }
-  }
-
-  function stopObservingEventName(element, eventName) {
-    var registry = getOrCreateRegistryFor(element);
-    var entries = registry[eventName];
-    if (entries) {
-      delete registry[eventName];
-    }
-
-    entries = entries || [];
-
-    var i = entries.length;
-    while (i--)
-      removeEvent(element, eventName, entries[i].responder);
-
-    for (var name in registry) {
-      if (name === 'element') continue;
-      return; // There is another registered event
-    }
-
-    destroyRegistryForElement(element);
-  }
-
-
-  function removeEvent(element, eventName, handler) {
-    if (isCustomEvent(eventName))
-      stopObservingCustomEvent(element, eventName, handler);
-    else
-      stopObservingStandardEvent(element, eventName, handler);
-  }
-
-
-
-  function getFireTarget(element) {
-    if (element !== document) return element;
-    if (document.createEvent && !element.dispatchEvent)
-      return document.documentElement;
-    return element;
-  }
-
-  function fire(element, eventName, memo, bubble) {
-    element = getFireTarget($(element));
-    if (Object.isUndefined(bubble)) bubble = true;
-    memo = memo || {};
-
-    var event = fireEvent(element, eventName, memo, bubble);
-    return Event.extend(event);
-  }
-
-  function fireEvent_DOM(element, eventName, memo, bubble) {
-    var event = document.createEvent('HTMLEvents');
-    event.initEvent('dataavailable', bubble, true);
-
-    event.eventName = eventName;
-    event.memo = memo;
-
-    element.dispatchEvent(event);
-    return event;
-  }
-
-  function fireEvent_IE(element, eventName, memo, bubble) {
-    var event = document.createEventObject();
-    event.eventType = bubble ? 'ondataavailable' : 'onlosecapture';
-
-    event.eventName = eventName;
-    event.memo = memo;
-
-    element.fireEvent(event.eventType, event);
-    return event;
-  }
-
-  var fireEvent = document.createEvent ? fireEvent_DOM : fireEvent_IE;
-
-
-
-  Event.Handler = Class.create({
-    initialize: function(element, eventName, selector, callback) {
-      this.element   = $(element);
-      this.eventName = eventName;
-      this.selector  = selector;
-      this.callback  = callback;
-      this.handler   = this.handleEvent.bind(this);
-    },
-
-
-    start: function() {
-      Event.observe(this.element, this.eventName, this.handler);
-      return this;
-    },
-
-    stop: function() {
-      Event.stopObserving(this.element, this.eventName, this.handler);
-      return this;
-    },
-
-    handleEvent: function(event) {
-      var element = Event.findElement(event, this.selector);
-      if (element) this.callback.call(this.element, event, element);
-    }
-  });
-
-  function on(element, eventName, selector, callback) {
-    element = $(element);
-    if (Object.isFunction(selector) && Object.isUndefined(callback)) {
-      callback = selector, selector = null;
-    }
-
-    return new Event.Handler(element, eventName, selector, callback).start();
-  }
-
-  Object.extend(Event, Event.Methods);
-
-  Object.extend(Event, {
-    fire:          fire,
-    observe:       observe,
-    stopObserving: stopObserving,
-    on:            on
-  });
-
-  Element.addMethods({
-    fire:          fire,
-
-    observe:       observe,
-
-    stopObserving: stopObserving,
-
-    on:            on
-  });
-
-  Object.extend(document, {
-    fire:          fire.methodize(),
-
-    observe:       observe.methodize(),
-
-    stopObserving: stopObserving.methodize(),
-
-    on:            on.methodize(),
-
-    loaded:        false
-  });
-
-  if (GLOBAL.Event) Object.extend(window.Event, Event);
-  else GLOBAL.Event = Event;
-
-  GLOBAL.Event.cache = {};
-
-  function destroyCache_IE() {
-    GLOBAL.Event.cache = null;
-  }
-
-  if (window.attachEvent)
-    window.attachEvent('onunload', destroyCache_IE);
-
-  DIV = null;
-  docEl = null;
-})(this);
-
-(function(GLOBAL) {
-  /* Code for creating leak-free event responders is based on work by
-   John-David Dalton. */
-
-  var docEl = document.documentElement;
-  var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED = 'onmouseenter' in docEl
-    && 'onmouseleave' in docEl;
-
-  function isSimulatedMouseEnterLeaveEvent(eventName) {
-    return !MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED &&
-     (eventName === 'mouseenter' || eventName === 'mouseleave');
-  }
-
-  function createResponder(uid, eventName, handler) {
-    if (Event._isCustomEvent(eventName))
-      return createResponderForCustomEvent(uid, eventName, handler);
-    if (isSimulatedMouseEnterLeaveEvent(eventName))
-      return createMouseEnterLeaveResponder(uid, eventName, handler);
-
-    return function(event) {
-      if (!Event.cache) return;
-
-      var element = Event.cache[uid].element;
-      Event.extend(event, element);
-      handler.call(element, event);
-    };
-  }
-
-  function createResponderForCustomEvent(uid, eventName, handler) {
-    return function(event) {
-      var cache = Event.cache[uid];
-      var element =  cache && cache.element;
-
-      if (Object.isUndefined(event.eventName))
-        return false;
-
-      if (event.eventName !== eventName)
-        return false;
-
-      Event.extend(event, element);
-      handler.call(element, event);
-    };
-  }
-
-  function createMouseEnterLeaveResponder(uid, eventName, handler) {
-    return function(event) {
-      var element = Event.cache[uid].element;
-
-      Event.extend(event, element);
-      var parent = event.relatedTarget;
-
-      while (parent && parent !== element) {
-        try { parent = parent.parentNode; }
-        catch(e) { parent = element; }
-      }
-
-      if (parent === element) return;
-      handler.call(element, event);
-    }
-  }
-
-  GLOBAL.Event._createResponder = createResponder;
-  docEl = null;
-})(this);
-
-(function(GLOBAL) {
-  /* Support for the DOMContentLoaded event is based on work by Dan Webb,
-     Matthias Miller, Dean Edwards, John Resig, and Diego Perini. */
-
-  var TIMER;
-
-  function fireContentLoadedEvent() {
-    if (document.loaded) return;
-    if (TIMER) window.clearTimeout(TIMER);
-    document.loaded = true;
-    document.fire('dom:loaded');
-  }
-
-  function checkReadyState() {
-    if (document.readyState === 'complete') {
-      document.detachEvent('onreadystatechange', checkReadyState);
-      fireContentLoadedEvent();
-    }
-  }
-
-  function pollDoScroll() {
-    try {
-      document.documentElement.doScroll('left');
-    } catch (e) {
-      TIMER = pollDoScroll.defer();
-      return;
-    }
-
-    fireContentLoadedEvent();
-  }
-
-
-  if (document.readyState === 'complete') {
-    fireContentLoadedEvent();
-    return;
-  }
-
-  if (document.addEventListener) {
-    document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);
-  } else {
-    document.attachEvent('onreadystatechange', checkReadyState);
-    if (window == top) TIMER = pollDoScroll.defer();
-  }
-
-  Event.observe(window, 'load', fireContentLoadedEvent);
-})(this);
-
-
-Element.addMethods();
-/*------------------------------- DEPRECATED -------------------------------*/
-
-Hash.toQueryString = Object.toQueryString;
-
-var Toggle = { display: Element.toggle };
-
-Element.addMethods({
-  childOf: Element.Methods.descendantOf
-});
-
-var Insertion = {
-  Before: function(element, content) {
-    return Element.insert(element, {before:content});
-  },
-
-  Top: function(element, content) {
-    return Element.insert(element, {top:content});
-  },
-
-  Bottom: function(element, content) {
-    return Element.insert(element, {bottom:content});
-  },
-
-  After: function(element, content) {
-    return Element.insert(element, {after:content});
-  }
-};
-
-var $continue = new Error('"throw $continue" is deprecated, use "return" instead');
-
-var Position = {
-  includeScrollOffsets: false,
-
-  prepare: function() {
-    this.deltaX =  window.pageXOffset
-                || document.documentElement.scrollLeft
-                || document.body.scrollLeft
-                || 0;
-    this.deltaY =  window.pageYOffset
-                || document.documentElement.scrollTop
-                || document.body.scrollTop
-                || 0;
-  },
-
-  within: function(element, x, y) {
-    if (this.includeScrollOffsets)
-      return this.withinIncludingScrolloffsets(element, x, y);
-    this.xcomp = x;
-    this.ycomp = y;
-    this.offset = Element.cumulativeOffset(element);
-
-    return (y >= this.offset[1] &&
-            y <  this.offset[1] + element.offsetHeight &&
-            x >= this.offset[0] &&
-            x <  this.offset[0] + element.offsetWidth);
-  },
-
-  withinIncludingScrolloffsets: function(element, x, y) {
-    var offsetcache = Element.cumulativeScrollOffset(element);
-
-    this.xcomp = x + offsetcache[0] - this.deltaX;
-    this.ycomp = y + offsetcache[1] - this.deltaY;
-    this.offset = Element.cumulativeOffset(element);
-
-    return (this.ycomp >= this.offset[1] &&
-            this.ycomp <  this.offset[1] + element.offsetHeight &&
-            this.xcomp >= this.offset[0] &&
-            this.xcomp <  this.offset[0] + element.offsetWidth);
-  },
-
-  overlap: function(mode, element) {
-    if (!mode) return 0;
-    if (mode == 'vertical')
-      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
-        element.offsetHeight;
-    if (mode == 'horizontal')
-      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
-        element.offsetWidth;
-  },
-
-
-  cumulativeOffset: Element.Methods.cumulativeOffset,
-
-  positionedOffset: Element.Methods.positionedOffset,
-
-  absolutize: function(element) {
-    Position.prepare();
-    return Element.absolutize(element);
-  },
-
-  relativize: function(element) {
-    Position.prepare();
-    return Element.relativize(element);
-  },
-
-  realOffset: Element.Methods.cumulativeScrollOffset,
-
-  offsetParent: Element.Methods.getOffsetParent,
-
-  page: Element.Methods.viewportOffset,
-
-  clone: function(source, target, options) {
-    options = options || { };
-    return Element.clonePosition(target, source, options);
-  }
-};
-
-/*--------------------------------------------------------------------------*/
-
-if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
-  function iter(name) {
-    return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
-  }
-
-  instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
-  function(element, className) {
-    className = className.toString().strip();
-    var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
-    return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
-  } : function(element, className) {
-    className = className.toString().strip();
-    var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
-    if (!classNames && !className) return elements;
-
-    var nodes = $(element).getElementsByTagName('*');
-    className = ' ' + className + ' ';
-
-    for (var i = 0, child, cn; child = nodes[i]; i++) {
-      if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
-          (classNames && classNames.all(function(name) {
-            return !name.toString().blank() && cn.include(' ' + name + ' ');
-          }))))
-        elements.push(Element.extend(child));
-    }
-    return elements;
-  };
-
-  return function(className, parentElement) {
-    return $(parentElement || document.body).getElementsByClassName(className);
-  };
-}(Element.Methods);
-
-/*--------------------------------------------------------------------------*/
-
-Element.ClassNames = Class.create();
-Element.ClassNames.prototype = {
-  initialize: function(element) {
-    this.element = $(element);
-  },
-
-  _each: function(iterator, context) {
-    this.element.className.split(/\s+/).select(function(name) {
-      return name.length > 0;
-    })._each(iterator, context);
-  },
-
-  set: function(className) {
-    this.element.className = className;
-  },
-
-  add: function(classNameToAdd) {
-    if (this.include(classNameToAdd)) return;
-    this.set($A(this).concat(classNameToAdd).join(' '));
-  },
-
-  remove: function(classNameToRemove) {
-    if (!this.include(classNameToRemove)) return;
-    this.set($A(this).without(classNameToRemove).join(' '));
-  },
-
-  toString: function() {
-    return $A(this).join(' ');
-  }
-};
-
-Object.extend(Element.ClassNames.prototype, Enumerable);
-
-/*--------------------------------------------------------------------------*/
-
-(function() {
-  window.Selector = Class.create({
-    initialize: function(expression) {
-      this.expression = expression.strip();
-    },
-
-    findElements: function(rootElement) {
-      return Prototype.Selector.select(this.expression, rootElement);
-    },
-
-    match: function(element) {
-      return Prototype.Selector.match(element, this.expression);
-    },
-
-    toString: function() {
-      return this.expression;
-    },
-
-    inspect: function() {
-      return "#<Selector: " + this.expression + ">";
-    }
-  });
-
-  Object.extend(Selector, {
-    matchElements: function(elements, expression) {
-      var match = Prototype.Selector.match,
-          results = [];
-
-      for (var i = 0, length = elements.length; i < length; i++) {
-        var element = elements[i];
-        if (match(element, expression)) {
-          results.push(Element.extend(element));
-        }
-      }
-      return results;
-    },
-
-    findElement: function(elements, expression, index) {
-      index = index || 0;
-      var matchIndex = 0, element;
-      for (var i = 0, length = elements.length; i < length; i++) {
-        element = elements[i];
-        if (Prototype.Selector.match(element, expression) && index === matchIndex++) {
-          return Element.extend(element);
-        }
-      }
-    },
-
-    findChildElements: function(element, expressions) {
-      var selector = expressions.toArray().join(', ');
-      return Prototype.Selector.select(selector, element || document);
-    }
-  });
-})();
diff --git a/apps/maarch_entreprise/js/scriptaculous.js b/apps/maarch_entreprise/js/scriptaculous.js
deleted file mode 100755
index 0ea5c445700..00000000000
--- a/apps/maarch_entreprise/js/scriptaculous.js
+++ /dev/null
@@ -1,68 +0,0 @@
-// script.aculo.us scriptaculous.js v1.9.0, Thu Dec 23 16:54:48 -0500 2010
-
-// Copyright (c) 2005-2010 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-var Scriptaculous = {
-  Version: '1.9.0',
-  require: function(libraryName) {
-    try{
-      // inserting via DOM fails in Safari 2.0, so brute force approach
-      document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
-    } catch(e) {
-      // for xhtml+xml served content, fall back to DOM methods
-      var script = document.createElement('script');
-      script.type = 'text/javascript';
-      script.src = libraryName;
-      document.getElementsByTagName('head')[0].appendChild(script);
-    }
-  },
-  REQUIRED_PROTOTYPE: '1.6.0.3',
-  load: function() {
-    function convertVersionString(versionString) {
-      var v = versionString.replace(/_.*|\./g, '');
-      v = parseInt(v + '0'.times(4-v.length));
-      return versionString.indexOf('_') > -1 ? v-1 : v;
-    }
-
-    if((typeof Prototype=='undefined') ||
-       (typeof Element == 'undefined') ||
-       (typeof Element.Methods=='undefined') ||
-       (convertVersionString(Prototype.Version) <
-        convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
-       throw("script.aculo.us requires the Prototype JavaScript framework >= " +
-        Scriptaculous.REQUIRED_PROTOTYPE);
-
-    var js = /scriptaculous\.js(\?.*)?$/;
-    $$('script[src]').findAll(function(s) {
-      return s.src.match(js);
-    }).each(function(s) {
-      var path = s.src.replace(js, ''),
-      includes = s.src.match(/\?.*load=([a-z,]*)/);
-      (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider,sound').split(',').each(
-       function(include) { Scriptaculous.require(path+include+'.js') });
-    });
-  }
-};
-
-Scriptaculous.load();
\ No newline at end of file
diff --git a/apps/maarch_entreprise/login.php b/apps/maarch_entreprise/login.php
deleted file mode 100755
index 690967c457f..00000000000
--- a/apps/maarch_entreprise/login.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-
-*
-* @brief   login
-*
-* @author  dev <dev@maarch.org>
-* @ingroup apps
-*/
-if (isset($_GET['target_page']) && trim($_GET['target_page']) != '') {
-    $_SESSION['target_page'] = $_GET['target_page'];
-    if (trim($_GET['target_module']) != '') {
-        $_SESSION['target_module'] = $_GET['target_module'];
-    } elseif (trim($_GET['target_admin']) != '') {
-        $_SESSION['target_admin'] = $_GET['target_admin'];
-    }
-}
-
-$serverPath = '';
-
-echo '<script>';
-echo "localStorage.removeItem('PreviousV2Route');";
-echo '</script>';
-
-if (strtoupper(substr(PHP_OS, 0, 3)) != 'WIN'
-    && strtoupper(substr(PHP_OS, 0, 3)) != 'WINNT'
-) {
-    $serverPath = str_replace('\\', DIRECTORY_SEPARATOR, $serverPath);
-} else {
-    $serverPath = str_replace('/', DIRECTORY_SEPARATOR, $serverPath);
-}
-$_SESSION['slash_env'] = DIRECTORY_SEPARATOR;
-$tmpPath = explode(
-    DIRECTORY_SEPARATOR,
-    str_replace(
-        '/',
-        DIRECTORY_SEPARATOR,
-        $_SERVER['SCRIPT_FILENAME']
-    )
-);
-$serverPath = implode(
-    DIRECTORY_SEPARATOR,
-    array_slice(
-        $tmpPath,
-        0,
-        array_search('apps', $tmpPath)
-    )
-).DIRECTORY_SEPARATOR;
-
-$_SESSION['urltomodules'] = $_SESSION['config']['coreurl'].'modules/';
-$_SESSION['urltocore'] = $_SESSION['config']['coreurl'].'core/';
-
-if (isset($_SESSION['config']['corepath'])
-    && !empty($_SESSION['config']['corepath'])
-) {
-    require_once 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id']
-        .DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR
-        .'class_business_app_tools.php';
-    require_once 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id']
-        .DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR
-        .'class_login.php';
-    $configCorePath = 'core'.DIRECTORY_SEPARATOR.'xml'
-                      .DIRECTORY_SEPARATOR.'config.xml';
-} else {
-    require_once 'class'.DIRECTORY_SEPARATOR.'class_business_app_tools.php';
-    require_once 'class'.DIRECTORY_SEPARATOR.'class_login.php';
-    $configCorePath = '..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR
-                      .'core'.DIRECTORY_SEPARATOR.'xml'
-                      .DIRECTORY_SEPARATOR.'config.xml';
-}
-
-$core = new core_tools();
-$businessAppTools = new business_app_tools();
-$func = new functions();
-
-$core->build_core_config($configCorePath);
-$businessAppTools->build_business_app_config();
-
-$core->load_modules_config($_SESSION['modules']);
-$core->load_lang();
-$core->load_app_services();
-$core->load_modules_services($_SESSION['modules']);
-
-//Reading base version
-$businessAppTools->compare_base_version(
-    'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id']
-    .DIRECTORY_SEPARATOR.'xml'.DIRECTORY_SEPARATOR.'applicationVersion.xml'
-);
-
-$core->load_html();
-$core->load_header('', true, false);
-$time = $core->get_session_time_expire();
-
-$loginObj = new login();
-$loginMethods = array();
-$loginMethods = $loginObj->build_login_method();
-if (isset($_SESSION['error'])) {
-    $error = $_SESSION['error'];
-} else {
-    $error = '';
-}
-$core->load_js();
-
-if (
-    file_exists('apps/maarch_entreprise/img/bodylogin.jpg') ||
-    file_exists('custom/' . $_SESSION['custom_override_id'] . '/apps/maarch_entreprise/img/bodylogin.jpg')
-
-) {
-    echo "<body id='bodyloginCustom0'>";
-} else {
-    echo "<body id='bodylogin'>";
-}
-
-echo '<div id="bodyloginCustom">';
-
-if (isset($_SESSION['error'])) {
-    echo '<div class="error" id="main_error_popup" onclick="this.hide();">';
-    echo $_SESSION['error'];
-    echo '</div>';
-}
-
-if (isset($_SESSION['info'])) {
-    echo '<div class="info" id="main_info" onclick="this.hide();">';
-    echo $_SESSION['info'];
-    echo '</div>';
-}
-
-
-//retrieve login message version
-$db = new Database();
-$query = "SELECT param_value_string FROM parameters WHERE id = 'loginpage_message'";
-$stmt = $db->query($query, []);
-$loginMessage = $stmt->fetchObject();
-
-echo '<div id="loginpage">';
-echo "<p id='logo'><img src='{$_SESSION['config']['businessappurl']}static.php?filename=logo.svg' alt='Maarch'/></p>";
-
-echo '<div align="center">';
-
-if ($loginMessage->param_value_string <> '') {
-    echo $loginMessage->param_value_string;
-}
-
-echo '<h3>';
-echo $_SESSION['config']['applicationname'];
-echo '</h3>';
-echo '</div>';
-
-if (isset($_SESSION['error']) && $_SESSION['error'] != '') {
-    echo '<script>';
-    echo "var main_error = $('main_error_popup');";
-    echo 'if (main_error != null) {';
-    echo "main_error.style.display = 'table-cell';";
-    echo "Element.hide.delay(10, 'main_error_popup');";
-    echo '}';
-    echo '</script>';
-}
-
-if (isset($_SESSION['info']) && $_SESSION['info'] != '') {
-    echo '<script>';
-    echo "var main_info = $('main_info');";
-    echo 'if (main_info != null) {';
-    echo "main_info.style.display = 'table-cell';";
-    echo "Element.hide.delay(10, 'main_info');";
-    echo '}';
-    echo '</script>';
-}
-$loginObj->execute_login_script($loginMethods);
-if ($_GET['update-password-token']) {
-    echo "<script>";
-    echo "triggerAngular('#/update-password?token=". $_REQUEST['update-password-token']."')";
-    echo "</script>";
-}
-
-echo '</div>';
-
-echo '</div>';
-
-echo '</body>';
-echo '</html>';
diff --git a/apps/maarch_entreprise/logout.php b/apps/maarch_entreprise/logout.php
deleted file mode 100755
index cbc84a1d3f5..00000000000
--- a/apps/maarch_entreprise/logout.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-/**
-* File : deco.php
-*
-* use this to terminate your session
-*
-* @package  Maarch PeopleBox 1.0
-* @version 2.1
-* @since 10/2005
-* @license GPL
-* @author  Claire Figueras  <dev@maarch.org>
-*/
-
-require_once 'core/class/class_history.php';
-require_once 'core/core_tables.php';
-$core = new core_tools();
-$core->load_lang();
-//$name = 'maarch';
-
-if (!empty($_SESSION['user']['UserId'])) {
-    $user = \User\models\UserModel::getByLogin(['login' => $_SESSION['user']['UserId'], 'select' => ['id']]);
-    \Resource\models\ResModel::update(['set' => ['locker_user_id' => null, 'locker_time' => null], 'where' => ['locker_user_id = ?'], 'data' => [$user['id']]]);
-}
-$name = $_SESSION['sessionName'];
-
-setcookie($name, "", 1);
-setcookie($name, false);
-unset($_COOKIE[$name]);
-
-$_SESSION['error'] = _NOW_LOGOUT;
-if (isset($_GET['abs_mode'])) {
-    $_SESSION['error'] .= ', ' . _ABS_LOG_OUT;
-}
-
-if ($core->is_module_loaded('content_management')) {
-    require_once 'modules/content_management/class/class_content_manager_tools.php';
-    $cM = new content_management_tools();
-    $cM->deleteUserCM();
-}
-
-if ($_SESSION['history']['userlogout'] == "true"
-    && isset($_SESSION['user']['UserId'])
-) {
-    $hist = new history();
-    if ($_SERVER['REMOTE_ADDR'] == '::1') {
-        $ip = 'localhost';
-    } else {
-        $ip = $_SERVER['REMOTE_ADDR'];
-    }
-    $navigateur = addslashes($_SERVER['HTTP_USER_AGENT']);
-    //$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
-    $host = $_SERVER['REMOTE_ADDR'];
-    $hist->add(
-        USERS_TABLE, $_SESSION['user']['UserId'], "LOGOUT", 'userlogout',
-        _LOGOUT_HISTORY . ' '. $_SESSION['user']['UserId'] . ' IP : ' . $ip,
-        $_SESSION['config']['databasetype']
-    );
-}
-
-$custom   = $_SESSION['custom_override_id'];
-$corePath = $_SESSION['config']['corepath'];
-$appUrl   = $_SESSION['config']['businessappurl'];
-$appId    = $_SESSION['config']['app_id'];
-
-// Destruction du cookie. La session est entièrement détruite et revenir sur le site attribuera un nouvel identifiant
-$args = session_get_cookie_params();
-$args['lifetime'] = time() - 3600;
-if (PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 3) {
-    setcookie(session_name(), '', $args);
-} else {
-    setcookie(session_name(), '', $args['lifetime'], $args['path'], $args['domain'], $args['secure'], $args['httponly']);
-}
-
-if (isset($_SESSION['web_sso_url'])) {
-    $webSSOurl = $_SESSION['web_sso_url'];
-} elseif (isset($_SESSION['web_cas_url'])) {
-    $webSSOurl = $_SESSION['web_cas_url'];
-}
-
-if (!empty($_SESSION['keycloak']['accessToken'])) {
-    $accessToken = $_SESSION['keycloak']['accessToken'];
-}
-
-session_unset();
-session_destroy(); // Suppression physique de la session
-unset($_SESSION['sessionName']);
-
-$_SESSION = [];
-$_SESSION['custom_override_id'] = $custom;
-$_SESSION['config']['corepath'] = $corePath ;
-$_SESSION['config']['app_id'] = $appId ;
-
-if (isset($_GET['logout']) && $_GET['logout']) {
-    $logoutExtension = "&logout=true";
-} else {
-    $logoutExtension = "";
-}
-\SrcCore\models\AuthenticationModel::deleteCookieAuth();
-
-if (isset($webSSOurl) && $webSSOurl <> '') {
-    header("location: " . $webSSOurl);
-    exit();
-} elseif (!empty($accessToken)) {
-    $keycloakConfig = \SrcCore\models\CoreConfigModel::getKeycloakConfiguration();
-
-    $provider = new \Stevenmaguire\OAuth2\Client\Provider\Keycloak($keycloakConfig);
-
-    $url = $provider->getLogoutUrl(['client_id' => $keycloakConfig['clientId'], 'refresh_token' => $accessToken]);
-
-    header("location: " . $url);
-} else {
-    header(
-     "location: " . $appUrl . "index.php?display=true&page=login"
-     . $logoutExtension
-    );
-    exit();
-}
diff --git a/apps/maarch_entreprise/merged_css.php b/apps/maarch_entreprise/merged_css.php
deleted file mode 100755
index 2400b5f9f26..00000000000
--- a/apps/maarch_entreprise/merged_css.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-
-*
-* @brief   merged_css
-*
-* @author  dev <dev@maarch.org>
-* @ingroup apps
-*/
-require_once '../../core/init.php';
-
-function compress($buffer)
-{
-    /* remove comments */
-    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
-    /* remove tabs, spaces, newlines, etc. */
-    $buffer = str_replace(
-        array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer
-    );
-    $buffer = preg_replace('! ?([:}{,;]) ?!', '$1', $buffer);
-
-    return $buffer;
-}
-
-$date = mktime(0, 0, 0, date('m') + 2, date('d'), date('Y'));
-$date = date('D, d M Y H:i:s', $date);
-$time = 30 * 12 * 60 * 60;
-header('Pragma: public');
-header('Cache-Control: no-cache, must-revalidate');
-header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
-//header("Expires: ".$date." GMT");
-//header("Cache-Control: max-age=".$time.", must-revalidate");
-header('Content-type: text/css; charset=utf-8');
-
-ob_start('compress');
-
-require 'apps/'.$_SESSION['config']['app_id'].'/css/styles.css';
-
-foreach (array_keys($_SESSION['modules_loaded']) as $value) {
-    if (file_exists(
-        $_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR
-        .$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'modules'
-        .DIRECTORY_SEPARATOR.$_SESSION['modules_loaded'][$value]['name']
-        .DIRECTORY_SEPARATOR.'css'.DIRECTORY_SEPARATOR.'module.css'
-    ) || file_exists(
-        $_SESSION['config']['corepath'].'modules'.DIRECTORY_SEPARATOR
-        .$_SESSION['modules_loaded'][$value]['name'].DIRECTORY_SEPARATOR
-        .'css'.DIRECTORY_SEPARATOR.'module.css'
-    )
-    ) {
-        include 'modules/'.$_SESSION['modules_loaded'][$value]['name']
-            .'/css/module.css';
-    }
-}
-
-require_once 'apps/'.$_SESSION['config']['app_id'].'/css/bootstrapTree.css';
-
-//Dependencies
-readfile('node_modules/tooltipster/dist/css/tooltipster.bundle.min.css');
-readfile('node_modules/jquery-typeahead/dist/jquery.typeahead.min.css');
-readfile('node_modules/chosen-js/chosen.min.css');
-readfile('apps/maarch_entreprise/css/chosen.min.css');
-readfile('node_modules/photoswipe/dist/photoswipe.css');
-readfile('node_modules/photoswipe/dist/default-skin/default-skin.css');
-readfile('apps/maarch_entreprise/css/photoswipe_custom.css');
-
-ob_end_flush();
diff --git a/apps/maarch_entreprise/merged_js.php b/apps/maarch_entreprise/merged_js.php
deleted file mode 100755
index 5faf5140027..00000000000
--- a/apps/maarch_entreprise/merged_js.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-
-* @brief   merged_js
-* @author  dev <dev@maarch.org>
-* @ingroup apps
-*/
-
-require_once '../../core/init.php';
-require_once $_SESSION['config']['corepath'].DIRECTORY_SEPARATOR.'apps/maarch_entreprise'.DIRECTORY_SEPARATOR.'merged_jsAbstract.php';
-
-class MergedJs extends MergedJsAbstract
-{
-    // Your stuff her
-}
-
-$oMergedJs = new MergedJs();
-$oMergedJs->merge();
diff --git a/apps/maarch_entreprise/merged_jsAbstract.php b/apps/maarch_entreprise/merged_jsAbstract.php
deleted file mode 100755
index 44f862fdd03..00000000000
--- a/apps/maarch_entreprise/merged_jsAbstract.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-
-*
-* @brief   merged_jsAbstract
-*
-* @author  dev <dev@maarch.org>
-* @ingroup apps
-*/
-class MergedJsAbstract
-{
-    public function header()
-    {
-        if (empty($_GET['debug'])) {
-            $date = mktime(0, 0, 0, date('m') + 2, date('d'), date('Y'));
-            $date = date('D, d M Y H:i:s', $date);
-            $time = 30 * 12 * 60 * 60;
-            header('Pragma: public');
-            header('Expires: '.$date.' GMT');
-            header('Cache-Control: max-age='.$time.', must-revalidate');
-            header('Content-type: text/javascript');
-        }
-    }
-
-    public function start()
-    {
-        ob_start();
-    }
-
-    public function end()
-    {
-        ob_end_flush();
-    }
-
-    public function merge_lib()
-    {
-        readfile('apps/maarch_entreprise/js/prototype.js');
-
-        //scriptaculous (prototype)
-        readfile('apps/maarch_entreprise/js/scriptaculous.js');
-        readfile('apps/maarch_entreprise/js/effects.js');
-        readfile('apps/maarch_entreprise/js/controls.js');
-
-        //Dependencies
-        readfile('node_modules/jquery/dist/jquery.min.js');
-        readfile('node_modules/zone.js/dist/zone.min.js'); //V2 - Angular
-        readfile('node_modules/bootstrap/dist/js/bootstrap.min.js'); //V2
-        readfile('node_modules/tinymce/tinymce.min.js');
-        readfile('node_modules/jquery.nicescroll/dist/jquery.nicescroll.min.js'); //V2
-        readfile('node_modules/tooltipster/dist/js/tooltipster.bundle.min.js'); //V2
-        readfile('node_modules/jquery-typeahead/dist/jquery.typeahead.min.js'); //V2
-        readfile('node_modules/chosen-js/chosen.jquery.min.js');
-        readfile('node_modules/jstree-bootstrap-theme/dist/jstree.js'); //V2
-        readfile('apps/maarch_entreprise/js/bootstrap-tree.js'); //DEPRECATED use jstree instead
-
-        //Mobile
-        readfile('node_modules/photoswipe/dist/photoswipe.min.js');
-        readfile('node_modules/photoswipe/dist/photoswipe-ui-default.min.js');
-
-        //Maarch
-        include 'apps/maarch_entreprise/js/functions.js';
-        include 'apps/maarch_entreprise/js/indexing.js';
-        readfile('apps/maarch_entreprise/js/angularFunctions.js');
-
-        echo "\n";
-    }
-
-    public function merge_module()
-    {
-        if (!empty($_SESSION['modules_loaded'])) {
-            foreach (array_keys($_SESSION['modules_loaded']) as $value) {
-                if (file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'modules'.DIRECTORY_SEPARATOR.$_SESSION['modules_loaded'][$value]['name'].DIRECTORY_SEPARATOR.'js'.DIRECTORY_SEPARATOR.'functions.js')
-                    || file_exists($_SESSION['config']['corepath'].'modules'.DIRECTORY_SEPARATOR.$_SESSION['modules_loaded'][$value]['name'].DIRECTORY_SEPARATOR.'js'.DIRECTORY_SEPARATOR.'functions.js')
-                ) {
-                    include 'modules/'.$_SESSION['modules_loaded'][$value]['name'].'/js/functions.js';
-                }
-            }
-        }
-    }
-
-    public function merge()
-    {
-        if (empty($_GET['html'])) {
-            $this->header();
-            $this->start();
-            $this->merge_lib();
-            $this->merge_module();
-            $this->end();
-        } else {
-            echo '<html><body><script>';
-            $this->merge_lib();
-            $this->merge_module();
-            echo '</script></body></html>';
-            exit;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/reopen.php b/apps/maarch_entreprise/reopen.php
deleted file mode 100755
index 16e658acb54..00000000000
--- a/apps/maarch_entreprise/reopen.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/**
-* File : reopen.php
-*
-* Identification with cookie
-*
-* @package  Maarch PeopleBox 1.0
-* @version 2.1
-* @since 10/2005
-* @license GPL
-* @author  Claire Figueras  <dev@maarch.org>
-*/
-include_once('../../core/class/class_functions.php');
-include('../../core/init.php');
-
-//$_SESSION['slash_env'] = DIRECTORY_SEPARATOR;
-
-$path_tmp = explode('/',$_SERVER['SCRIPT_FILENAME']);
-$path_server = implode('/',array_slice($path_tmp,0,array_search('apps',$path_tmp))).'/';
-if (isset($_SESSION['config']['coreurl'])) {
-    $_SESSION['urltomodules'] = $_SESSION['config']['coreurl']."/modules/";
-}
-$_SESSION['config']['corepath'] = $path_server;
-chdir($_SESSION['config']['corepath']);
-if(!isset($_SESSION['config']['app_id']) || empty($_SESSION['config']['app_id']))
-{
-    $_SESSION['config']['app_id'] = $path_tmp[count($path_tmp) -2];
-}
-
-$func = new functions();
-$cookie = explode("&", $_COOKIE['maarch']);
-$user = explode("=",$cookie[0]);
-$thekey = explode("=",$cookie[1]);
-$s_UserId = strtolower($func->wash($user[1],"no","","yes"));
-$s_key =strtolower($func->wash($thekey[1],"no","","yes"));
-$_SESSION['arg_page'] = '';
-
-if(!empty($_SESSION['error']) || ($s_UserId == "1" && $s_key == ""))
-{
-    header("location: ".$_SESSION['config']['businessappurl']."index.php?display=true&page=login");
-    exit();
-}
-else
-{
-
-    if(trim($_SERVER['argv'][0]) <> "")
-    {
-        $_SESSION['requestUri'] = $_SERVER['argv'][0];
-        header("location: ".$_SESSION['config']['businessappurl']."index.php?display=true&page=login");
-    }
-    else
-    {
-        header("location: ".$_SESSION['config']['businessappurl']."index.php?display=true&page=login");
-    }
-    exit();
-}
diff --git a/apps/maarch_entreprise/static.php b/apps/maarch_entreprise/static.php
deleted file mode 100755
index 3faafdeeea0..00000000000
--- a/apps/maarch_entreprise/static.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-include_once '../../core/init.php';
-
-if (isset($_GET['filename']) && !empty($_GET['filename'])) {
-    $_GET['filename'] = str_replace('\\', '', $_GET['filename']);
-    $_GET['filename'] = str_replace('/', '', $_GET['filename']);
-    $_GET['filename'] = str_replace('..', '', $_GET['filename']);
-    $filename = trim($_GET['filename']);
-    $items = explode('.', $filename);
-    $ext = array_pop($items);
-    $dir = '';
-    $module = '';
-    $path = '';
-
-    if (isset($_GET['module']) && !empty($_GET['module'])) {
-        $module = trim($_GET['module']);
-    }
-    switch (strtoupper($ext)) {
-        case 'CSS':
-            $mime_type = 'text/css';
-            $dir = 'css'.DIRECTORY_SEPARATOR;
-            break;
-        case 'JS':
-            $mime_type = 'text/javascript';
-            $dir = 'js'.DIRECTORY_SEPARATOR;
-            break;
-        case 'HTML':
-            $mime_type = 'text/html';
-            break;
-/*
-        case 'XML' :
-            $mime_type = 'text/xml';
-            break;
-*/
-        case 'PNG':
-            $mime_type = 'image/png';
-            $dir = 'img'.DIRECTORY_SEPARATOR;
-            break;
-        case 'JPEG':
-            $mime_type = 'image/jpeg ';
-            $dir = 'img'.DIRECTORY_SEPARATOR;
-            break;
-        case 'JPG':
-            $mime_type = 'image/jpeg ';
-            $dir = 'img'.DIRECTORY_SEPARATOR;
-            break;
-        case 'GIF':
-            $mime_type = 'image/gif ';
-            $dir = 'img'.DIRECTORY_SEPARATOR;
-            break;
-        case 'SVG':
-            $mime_type = 'image/svg+xml ';
-            $dir = 'img'.DIRECTORY_SEPARATOR;
-            break;
-        default:
-            $mime_type = '';
-    }
-    if (isset($_GET['dir']) && !empty($_GET['dir'])) {
-        $dir = trim($_GET['dir']).DIRECTORY_SEPARATOR;
-    }
-    if (!empty($module) && $module != 'core') {
-        if (file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'modules'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$dir.$filename)) {
-            $path = $_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'modules'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$dir.$filename;
-        } elseif (file_exists($_SESSION['config']['corepath'].'modules'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$dir.$filename)) {
-            $path = $_SESSION['config']['corepath'].'modules'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$dir.$filename;
-        }
-    } elseif ($module == 'core') {
-        if (file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'core'.DIRECTORY_SEPARATOR.$dir.$filename)) {
-            $path = $_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'core'.DIRECTORY_SEPARATOR.$dir.$filename;
-        } elseif (file_exists($_SESSION['config']['corepath'].'core'.DIRECTORY_SEPARATOR.$dir.$filename)) {
-            $path = $_SESSION['config']['corepath'].'core'.DIRECTORY_SEPARATOR.$dir.$filename;
-        }
-    } else {
-        if (file_exists($_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$dir.$filename)) {
-            $path = $_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id'].DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$dir.$filename;
-        } elseif (file_exists($_SESSION['config']['corepath'].'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$dir.$filename)) {
-            $path = $_SESSION['config']['corepath'].'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.$dir.$filename;
-        }
-    }
-
-    if (!empty($mime_type) && !empty($path)) {
-        $date = mktime(0, 0, 0, date('m') + 2, date('d'), date('Y'));
-        $date = date('D, d M Y H:i:s', $date);
-        $time = 30 * 12 * 60 * 60;
-        header('Pragma: public');
-        header('Expires: '.$date.' GMT');
-        header('Cache-Control: max-age='.$time.', must-revalidate');
-        //header("Cache-Control: public");
-        header('Content-Description: File Transfer');
-        header('Content-Type: '.$mime_type);
-        header('Content-Disposition: inline; filename='.$filename.';');
-        header('Content-Transfer-Encoding: binary');
-        readfile($path);
-    }
-}
-
-exit();
diff --git a/apps/maarch_entreprise/template/documents_list_attachments.html b/apps/maarch_entreprise/template/documents_list_attachments.html
deleted file mode 100755
index 5c54d7e0eb7..00000000000
--- a/apps/maarch_entreprise/template/documents_list_attachments.html
+++ /dev/null
@@ -1,248 +0,0 @@
-<!--
-
-* list attachments
-*
-*
-* @package  Maarch Entreprise 1.5
-* @version 1.5
-* @since 11/2014
-* @license GPL
-*
-
-
-
-Parts :
-    ##HEAD< : Begining of the head part
-    ##HEAD> : End of the head part
-
-    ##RESULT< : Begining of result list
-    ##RESULT> : End fo result list
-
-Functions :
-
-
-    ##cssLine|arg1|arg2##                   : load css style for line. arg1,arg2 : switch beetwin style on line one or line two
-    ##cssLineReload##                       : reload last css style loaded by cssLine
-    ##sortColumn|arg##                      : sort list. arg = sort;
-    ##defineLang|arg##                      : show label. arg = constant define in lang.php;
-    ##loadImage|arg1|arg2##                 : show loaded image; arg1= name of img file, arg2 = name of the module (if image in module)
-    ##loadValue|arg##                       : load value in the db; arg= column's value  identifier
-    ##showActionIcon|arg1|arg2|arg3|arg4##  : action icon. arg1 = label, arg2  = image , arg3 = action (javascript), arg4 = disabled rule
-    ##includeFile|arg1|arg2##               : include file. arg1 = name of the file, arg2  = name of the module (if file in module)
-    ##setListParameter|arg1|arg2##          : set parameter's value for actual list. arg1 = name of parameter, arg2  = new value
-    ##getListParameter|arg##                : get parameter's value for actual list. arg1 = name of parameter
-    ##ifStatement|arg1|arg2|arg3|arg4##     : allow conditional execution . arg1=condition, arg2= statement 1, arg3 = statement 2
-    ##isModuleLoaded|arg##                  : test if module is loaded. arg = module id
-
-Mods 
-
-
-    ##radioButton##         : display radio
-    ##checkBox##            : display checkbox
-    ##checkUncheckAll##     : display checkbox for check/uncheck All
-    ##clickOnLine##         : action on click under the line
-    ##showIconDocument##    : view document icon
-    ##showIconDetails##     : view detail's page icon
-    ##getBusinessAppUrl##   : get business app url
-    
-
--->
-
-
-#!#TABLE
-<!-- ----------------------------------------------------------------------- -->
-        <table border="0" cellspacing="0" class="listing spec zero_padding" id='test'  style="width: 100%; margin: 0;">
-
-#!#HEAD
-<!-- ----------------------------------------------------------------------- -->
-             <thead border ="1">
-                <tr>
-                    <th width="100%" colspan="2" style="clear:both;">
-                    <div style="border:1px solid; height:20px;margin-bottom:10px;padding:10px;padding-top:0px;vertical-align:middle;display:flex">
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;flex:1;">
-                            ##defineLang|_CHRONO_NUMBER## / ##defineLang|_TYPES##
-                            <br/>
-                            ##sortColumn|identifier## / ##sortColumn|attachment_type##
-                        </div>
-                        <!--<div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;flex:1;">
-                            ##defineLang|_TYPES##
-                            <br/>
-                            ##sortColumn|attachment_type##
-                        </div>-->
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;flex:2;">
-                            ##defineLang|_DEST## / ##defineLang|_OBJECT##
-                            <br/>
-                            ##sortColumn|dest_contact_id## / ##sortColumn|title##
-                        </div>
-                        <!--<div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;flex:1;">
-                            ##defineLang|_DEST##
-                            <br/>
-                            ##sortColumn|dest_contact_id##
-                        </div>-->
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;flex:1;">
-                            ##defineLang|_CREATION_DATE##
-                            <br/>
-                            ##sortColumn|creation_date##
-                        </div>
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;flex:1;">
-                            ##defineLang|_UPDATED_DATE##
-                            <br/>
-                            ##sortColumn|doc_date##
-                        </div>
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;flex:1;">
-                            ##defineLang|_MODIFY_BY##
-                            <br/>
-                            ##sortColumn|updated_by##
-                        </div>
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;flex:1;">
-                            ##defineLang|_BACK_DATE##
-                            <br/>
-                            ##sortColumn|validation_date##
-                        </div>
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;flex:1;">
-                            ##defineLang|_TYPIST##
-                            <br/>
-                            ##sortColumn|typist##
-                        </div>
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;flex:1;">
-                            ##defineLang|_FORMAT##
-                            <br/>
-                            ##sortColumn|format##
-                        </div>
-                        </div>
-                    </th>
-                    <!--<th  width="100%" colspan="2">
-                        <div align="center" style="border:1px solid; height:20px;margin-bottom:10px;padding-top:10px;vertical-align:middle;">
-                                ##defineLang|_CHRONO_NUMBER##
-                                ##sortColumn|identifier##
-                                &nbsp;
-                                ##defineLang|_STATUS##
-                                ##sortColumn|status##
-                                &nbsp;
-                                ##defineLang|_ATTACHMENT_TYPES##
-                                ##sortColumn|attachment_type##
-                                &nbsp;
-                                ##defineLang|_OBJECT##
-                                ##sortColumn|title##
-                                &nbsp;
-                                ##defineLang|_DEST##
-                                ##sortColumn|dest_contact_id##
-                                &nbsp;
-                                ##defineLang|_BACK_DATE##
-                                ##sortColumn|validation_date##
-                                &nbsp;
-                                ##defineLang|_CREATION_DATE##
-                                ##sortColumn|creation_date##
-                                &nbsp;
-                                ##defineLang|_BBY##
-                                ##sortColumn|typist##
-                                &nbsp;
-                                ##defineLang|_UPDATED_DATE##
-                                ##sortColumn|doc_date##
-                                &nbsp;
-                                ##defineLang|_BBY##
-                                ##sortColumn|updated_by##
-                                &nbsp;
-                                ##defineLang|_FORMAT##
-                                ##sortColumn|format##
-                                &nbsp;
-                        </div> -->
-                    </th>
-                </tr>
-            </thead>
-
-            <tbody>
-#!#RESULT
-<!-- ----------------------------------------------------------------------- -->
-
-               <tr  class="##cssLine|col|white ##" >
-                    <td width="15%" style="text-align:center">
-                        <table width="85%" border="0" cellspacing="0" cellpadding="0" >
-                            <tr style="left: 5%;position: relative;">
-                                <!--<td style="text-align:center;width:25px"><b title="##defineLang|_VERSION##">##loadValue|relation##</b></td>-->
-                                <td style="text-align:center;width:100px">
-                                <b title="##defineLang|_CHRONO_NUMBER##">##loadValue|identifier##</b><br/>
-                                <i style="font-size:10px;color:#135F7F;" title="##defineLang|_ATTACHMENT_TYPES##">##loadValue|attachment_type##</i>
-                                </td>
-                            </tr>
-                        </table>
-                    </td>
-                    <td width="85%" align="center" style="padding : 0px" >
-                        <table width="100%" border="0" cellspacing="0" cellpadding="0" >
-                                <tr>
-                                    <td style="text-align:left;" width="55%">
-                                        <i title="##defineLang|_CONTACT##" style="font-size:10px;cursor: pointer;float:left">Pour : ##loadValue|dest_contact_id## ##loadValue|dest_user##</i>
-                                        <i title="##defineLang|_TYPIST##" style="font-size:10px;cursor: pointer;float: right;">De : ##loadValue|typist##</i>
-                                        <br/>
-                                        <b title="##defineLang|_OBJECT##">##loadValue|title##</b>
-
-
-                                    </td>
-                                    <!--<td style="text-align:left" width="8%">##loadValue|validation_date##</td>-->
-                                    <td style="text-align:center;vertical-align: top;" width="3%" title="##defineLang|_FORMAT##"> <i style="font-size:10px;color:#135F7F;">##loadValue|format##</i><br/>
-                                    </td>
-                                </tr>
-                        </table>
-                    </td>
-                </tr>
-                <tr class="##cssLineReload##">
-                    <td width="15%" >
-                        <table width="85%" border="0" cellspacing="0" cellpadding="0" >
-                            <tr >
-                                <td width="40%" style="text-align:right">
-                                    <i style="font-size:10px;color:#135F7F;" title="##defineLang|_VERSION##">##loadValue|relation##</i>
-                                    <i style="color:#135F7F;">##func_previous_version##</i>
-                                </td>
-                                <td width="65%" style="text-align:center;" title="##defineLang|_STATUS##">
-                                    <i>##loadValue|status##</i>
-                                </td>
-                                <!--<td width="45%" style="text-align:center;font-size:13px;width:100px" title="##defineLang|_STATUS##"></td>-->
-                            </tr>
-                        </table>
-                    </td>
-                    <td width="85%" style="text-align:center">
-                        <table width="100%" border="0" cellspacing="0" cellpadding="0" >
-                            <tr>
-                                <!--<td style="text-align:left">
-                                    <table>
-                                        <td width="27%">##func_delete##</td>
-                                        <td width="27%">##func_modify##</td>
-                                        <td width="35%">##func_final_version##</td>
-                                        <td width="11%" style="text-align:right">##func_previous_version##</td>
-                                    </table>
-                                </td>-->
-                                <td style="text-align:left;width:20%;" title="##defineLang|_CREATION_DATE##"><i class="fa fa-calendar-alt"></i>
- ##loadValue|creation_date##</td>
-                                <td style="text-align:left;width:20%;" title="##defineLang|_UPDATED_DATE##"><i class="fa fa-calendar-check"></i>
- ##loadValue|doc_date##<i title="##defineLang|_MODIFY_BY##" style="font-size:10px;cursor: pointer;">&nbsp;##defineLang|_MODIFY_BY## : ##loadValue|updated_by##</i></td>
-                                <!--<td style="text-align:left" width="17%" title="##defineLang|_TYPIST##">##loadValue|typist##</td>-->
-                                <!--<td style="text-align:center" width="10%">##loadValue|doc_date##</td>-->
-                                <td style="text-align:left;width:20%;" title="##defineLang|_BACK_DATE##"><i class="fa fa-calendar-times"></i>
- ##loadValue|validation_date##</td>
-                                <td style="text-align:right;width:200px;"><table width="100%" border="0" cellspacing="0" cellpadding="0">
-                                    <tbody>
-                                        <tr>
-                                            <td style="width:20%;text-align:right;">##func_modify## ##func_delete##</td>
-                                            <td style="width:10%;text-align:left;padding-bottom:5px;">##func_final_version##</td>
-                                            <td style="width:1%;text-align:right;" class="attachmentIcon">##visualizeIconDocument##</td>
-                                            <td style="width:1%;text-align:right;" class="attachmentIcon">##downloadIconDocument##</td>
-                                        </tr>
-                                    </tbody></table>  </td>
-                                <!--<td style="text-align:left" width="17%">##loadValue|updated_by##</td>-->
-                            </tr>
-                        </table>
-                    </td>
-                </tr >
-                <tr id="attachList_##loadValue|res_id##" name="attachList_##loadValue|res_id##" style="display: none; border-bottom: solid 1px black; background-color: #FFF;" width="100%">
-                    <td colspan="2" style="background-color: white;">
-                        <div id="divAttachList_##loadValue|res_id##" align="center" style="color: grey;">
-                            <i class="fa fa-spinner fa-2x"></i><br />
-                            ##defineLang|_LOADING_INFORMATIONS##
-                        </div>
-                    </td>
-                </tr>
-
- #!#FOOTER
- <!--   ----------------------------------------------------------------------- -->
-            </tbody>
-        </table>
\ No newline at end of file
diff --git a/apps/maarch_entreprise/template/documents_list_attachments_simple.html b/apps/maarch_entreprise/template/documents_list_attachments_simple.html
deleted file mode 100755
index e285244de87..00000000000
--- a/apps/maarch_entreprise/template/documents_list_attachments_simple.html
+++ /dev/null
@@ -1,215 +0,0 @@
-<!--
-
-* list attachments
-*
-*
-* @package  Maarch Entreprise 1.5
-* @version 1.5
-* @since 11/2014
-* @license GPL
-*
-
-
-
-Parts :
-    ##HEAD< : Begining of the head part
-    ##HEAD> : End of the head part
-
-    ##RESULT< : Begining of result list
-    ##RESULT> : End fo result list
-
-Functions :
-
-
-    ##cssLine|arg1|arg2##                   : load css style for line. arg1,arg2 : switch beetwin style on line one or line two
-    ##cssLineReload##                       : reload last css style loaded by cssLine
-    ##sortColumn|arg##                      : sort list. arg = sort;
-    ##defineLang|arg##                      : show label. arg = constant define in lang.php;
-    ##loadImage|arg1|arg2##                 : show loaded image; arg1= name of img file, arg2 = name of the module (if image in module)
-    ##loadValue|arg##                       : load value in the db; arg= column's value  identifier
-    ##showActionIcon|arg1|arg2|arg3|arg4##  : action icon. arg1 = label, arg2  = image , arg3 = action (javascript), arg4 = disabled rule
-    ##includeFile|arg1|arg2##               : include file. arg1 = name of the file, arg2  = name of the module (if file in module)
-    ##setListParameter|arg1|arg2##          : set parameter's value for actual list. arg1 = name of parameter, arg2  = new value
-    ##getListParameter|arg##                : get parameter's value for actual list. arg1 = name of parameter
-    ##ifStatement|arg1|arg2|arg3|arg4##     : allow conditional execution . arg1=condition, arg2= statement 1, arg3 = statement 2
-    ##isModuleLoaded|arg##                  : test if module is loaded. arg = module id
-
-Mods 
-
-
-    ##radioButton##         : display radio
-    ##checkBox##            : display checkbox
-    ##checkUncheckAll##     : display checkbox for check/uncheck All
-    ##clickOnLine##         : action on click under the line
-    ##showIconDocument##    : view document icon
-    ##showIconDetails##     : view detail's page icon
-    ##getBusinessAppUrl##   : get business app url
-	
-
--->
-
-
-#!#TABLE
-<!-- ----------------------------------------------------------------------- -->
-        <table border="0" cellspacing="0" class="listing spec zero_padding" id='test'  style="width: 100%; margin: 0;">
-
-#!#HEAD
-<!-- ----------------------------------------------------------------------- -->
-             <thead border ="1">
-                <tr>
-                    <th width="100%" colspan="2" style="clear:both;">
-                    <div style="border:1px solid; height:20px;vertical-align:middle;margin: 0px;padding: 0px;display: table;width:100%;">
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;">
-                            ##defineLang|_CHRONO_NUMBER##
-                            <br/>
-                            ##sortColumn|identifier##
-                        </div>
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;">
-                            ##defineLang|_TYPES##
-                            <br/>
-                            ##sortColumn|attachment_type##
-                        </div>
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;">
-                            ##defineLang|_OBJECT##
-                            <br/>
-                            ##sortColumn|title##
-                        </div>
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;">
-                            ##defineLang|_CREATION_DATE##
-                            <br/>
-                            ##sortColumn|creation_date##
-                        </div>
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;">
-                            ##defineLang|_BACK_DATE##
-                            <br/>
-                            ##sortColumn|validation_date##
-                        </div>
-                        <div style="white-space: nowrap;display: table-cell;text-align: center;padding-left: 10px;">
-                            ##defineLang|_DEST##
-                            <br/>
-                            ##sortColumn|dest_contact_id##
-                        </div>
-                        </div>
-                    </th>
-                    <!--<th  width="100%" colspan="2">
-                        <div align="center" style="border:1px solid; height:20px;margin-bottom:10px;padding-top:10px;vertical-align:middle;">
-                                ##defineLang|_CHRONO_NUMBER##
-                                ##sortColumn|identifier##
-                                &nbsp;
-                                ##defineLang|_STATUS##
-                                ##sortColumn|status##
-                                &nbsp;
-                                ##defineLang|_ATTACHMENT_TYPES##
-                                ##sortColumn|attachment_type##
-                                &nbsp;
-                                ##defineLang|_OBJECT##
-                                ##sortColumn|title##
-                                &nbsp;
-                                ##defineLang|_DEST##
-                                ##sortColumn|dest_contact_id##
-                                &nbsp;
-                                ##defineLang|_BACK_DATE##
-                                ##sortColumn|validation_date##
-                                &nbsp;
-                                ##defineLang|_CREATION_DATE##
-                                ##sortColumn|creation_date##
-                                &nbsp;
-                                ##defineLang|_BBY##
-                                ##sortColumn|typist##
-                                &nbsp;
-                                ##defineLang|_UPDATED_DATE##
-                                ##sortColumn|doc_date##
-                                &nbsp;
-                                ##defineLang|_BBY##
-                                ##sortColumn|updated_by##
-                                &nbsp;
-                                ##defineLang|_FORMAT##
-                                ##sortColumn|format##
-                                &nbsp;
-                        </div> -->
-                    </th>
-                </tr>
-            </thead>
-
-            <tbody>
-#!#RESULT
-<!-- ----------------------------------------------------------------------- -->
-
-               <tr  class="##cssLine|col|white ##" >
-                    <td width="15%" style="text-align:center">
-                        <table width="100%" border="0" cellspacing="0" cellpadding="0" >
-                            <tr>
-                                <!--<td style="text-align:center;width:25px"><b title="##defineLang|_VERSION##">##loadValue|relation##</b></td>-->
-                                <td style="text-align:center;width:100px">
-                                <b title="##defineLang|_CHRONO_NUMBER##">##loadValue|identifier##</b><br/>
-                                <i style="font-size:10px;color:#135F7F;" title="##defineLang|_ATTACHMENT_TYPES##">##loadValue|attachment_type##</i>
-                                </td>
-                            </tr>
-                        </table>
-                    </td>
-                    <td width="85%" align="center" style="padding : 0px" >
-                        <table width="100%" border="0" cellspacing="0" cellpadding="0" >
-                                <tr>
-                                    <td style="text-align:left;" width="55%">
-                                        <i title="##defineLang|_CONTACT##" style="font-size:10px;cursor: pointer;float:left">Pour : ##loadValue|dest_contact_id##</i>
-                                        <i title="##defineLang|_TYPIST##" style="font-size:10px;cursor: pointer;float: right;">De : ##loadValue|typist##</i>
-                                        <br/>
-                                        <b title="##defineLang|_OBJECT##">##loadValue|title##</b>
-
-
-                                    </td>
-                                    <!--<td style="text-align:left" width="8%">##loadValue|validation_date##</td>-->
-                                    <td style="text-align:center;vertical-align: top;" width="3%" title="##defineLang|_FORMAT##"> <i style="font-size:10px;color:#135F7F;">##loadValue|format##</i><br/>
-                                        <i style="color:#135F7F;">##func_previous_version##</i>
-                                    </td>
-                                </tr>
-                        </table>
-                    </td>
-                </tr>
-                <tr class="##cssLineReload##">
-                    <td width="15%" style="text-align:center">
-                        <table width="100%" border="0" cellspacing="0" cellpadding="0" >
-                            <tr>
-                                <td><i style="font-size:10px;color:#135F7F;" title="##defineLang|_VERSION##">##loadValue|relation##</i></td>
-                                <td style="text-align:center;font-size:13px;width:100px" title="##defineLang|_STATUS##"><i>##loadValue|status##</i></td>
-                            </tr>
-                        </table>
-                    </td>
-                    <td width="85%" style="text-align:center">
-                        <table width="100%" border="0" cellspacing="0" cellpadding="0" >
-                            <tr>
-                                <!--<td style="text-align:left">
-                                    <table>
-                                        <td width="27%">##func_delete##</td>
-                                        <td width="27%">##func_modify##</td>
-                                        <td width="35%">##func_final_version##</td>
-                                        <td width="11%" style="text-align:right">##func_previous_version##</td>
-                                    </table>
-                                </td>-->
-                                <td style="text-align:left;width:100px;" title="##defineLang|_CREATION_DATE## / ##defineLang|_UPDATED_DATE## : ##loadValue|doc_date## ##defineLang|_BBY## : ##loadValue|updated_by##"><i class="fa fa-calendar-alt"></i>
- ##loadValue|creation_date##</td>
-                                <!--<td style="text-align:left" width="17%" title="##defineLang|_TYPIST##">##loadValue|typist##</td>-->
-                                <!--<td style="text-align:center" width="10%">##loadValue|doc_date##</td>-->
-                                <td style="text-align:left;width:100px;" title="##defineLang|_BACK_DATE##"><i class="fa fa-calendar-check"></i>
- ##loadValue|validation_date##</td>
-                                <td style="text-align:right">##func_modify## ##func_delete## ##func_final_version##</td>
-                                <td style="width:30px" class="attachmentIcon">##visualizeIconDocument##</td>
-                                <td style="width:30px" class="attachmentIcon">##downloadIconDocument##</td>
-                                <!--<td style="text-align:left" width="17%">##loadValue|updated_by##</td>-->
-                            </tr>
-                        </table>
-                    </td>
-                </tr >
-                <tr id="attachList_##loadValue|res_id##" name="attachList_##loadValue|res_id##" style="display: none; border-bottom: solid 1px black; background-color: #FFF;" width="100%">
-                    <td colspan="2" style="background-color: white;">
-                        <div id="divAttachList_##loadValue|res_id##" align="center" style="color: grey;">
-                            <i class="fa fa-spinner fa-2x"></i><br />
-                            ##defineLang|_LOADING_INFORMATIONS##
-                        </div>
-                    </td>
-                </tr>
-
- #!#FOOTER
- <!--   ----------------------------------------------------------------------- -->
-            </tbody>
-        </table>
\ No newline at end of file
diff --git a/apps/maarch_entreprise/template/documents_list_search_adv.html b/apps/maarch_entreprise/template/documents_list_search_adv.html
deleted file mode 100755
index 5535048d930..00000000000
--- a/apps/maarch_entreprise/template/documents_list_search_adv.html
+++ /dev/null
@@ -1,194 +0,0 @@
-<!--
-
-* basket_list and search_adv_list template
-*
-*
-* @package  Maarch LetterBox 3.0
-* @version 3.0
-* @since 10/2005
-* @license GPL
-* @author  Loïc Vinet  <dev@maarch.org>
-*
-
-
-
-
-Parts :
-    ##HEAD< : Begining of the head part
-    ##HEAD> : End of the head part
-
-    ##RESULT< : Begining of result list
-    ##RESULT> : End fo result list
-
-Functions :
-
-
-    ##cssLine|arg1|arg2##                   : load css style for line. arg1,arg2 : switch beetwin style on line one or line two
-    ##cssLineReload##                       : reload last css style loaded by cssLine
-    ##sortColumn|arg##                      : sort list. arg = sort;
-    ##defineLang|arg##                      : show label. arg = constant define in lang.php;
-    ##loadImage|arg1|arg2##                 : show loaded image; arg1= name of img file, arg2 = name of the module (if image in module)
-    ##loadValue|arg##                       : load value in the db; arg= column's value  identifier
-    ##showActionIcon|arg1|arg2|arg3|arg4##  : action icon. arg1 = label, arg2  = image , arg3 = action (javascript), arg4 = disabled rule
-    ##includeFile|arg1|arg2##               : include file. arg1 = name of the file, arg2  = name of the module (if file in module)
-    ##setListParameter|arg1|arg2##          : set parameter's value for actual list. arg1 = name of parameter, arg2  = new value
-    ##getListParameter|arg##                : get parameter's value for actual list. arg1 = name of parameter
-    ##ifStatement|arg1|arg2|arg3|arg4##     : allow conditional execution . arg1=condition, arg2= statement 1, arg3 = statement 2
-    ##isModuleLoaded|arg##                  : test if module is loaded. arg = module id
-    ##showDefaultAction##                   : display the default action name in basket 
-
-Mods 
-
-
-    ##radioButton##         : display radio
-    ##checkBox##            : display checkbox
-    ##checkUncheckAll##     : display checkbox for check/uncheck All
-    ##clickOnLine##         : action on click under the line
-    ##showIconDocument##    : view document icon
-    ##showIconDetails##     : view detail's page icon
-    ##getBusinessAppUrl##   : get business app url
-        
-         
--->
-
-
-#!#TABLE
-<!-- ----------------------------------------------------------------------- -->
-    <table border="0" cellspacing="0" class="listing spec  zero_padding listResultContent" id="extended_list" style="display:block;padding: 0px;width:100%;">
-
-#!#HEAD
-<!-- ----------------------------------------------------------------------- -->
-        <thead border="1" class="listResultContentHead">
-            <tr>
-                <th style="width:150px;text-align:center;">
-                    <span style="text-align:center;">
-                        ##checkUncheckAll##&nbsp;##ifStatement|'#defineLang|_ID_TO_DISPLAY#'==res_id|<i>#defineLang|_NUM_GED#</i>|## ##ifStatement|'#defineLang|_ID_TO_DISPLAY#'==chrono_number|<i>#defineLang|_CHRONO_NUMBER_SHORT#</i>|## / ##defineLang|_STATUS##<br/>##ifStatement|'#defineLang|_ID_TO_DISPLAY#'==res_id|#sortColumn|res_id#|## ##ifStatement|'#defineLang|_ID_TO_DISPLAY#'==chrono_number|#sortColumn|alt_identifier#|## / ##sortColumn|status##
-                    </span>
-                </th>
-                <th>
-                    <div style="display:flex;">
-                        <span style="flex:1;">
-                            ##defineLang|_SUBJECT## / ##defineLang|_PRIORITY##<br/>##sortColumn|subject## / ##sortColumn|priority##
-                        </span>
-                        <span style="flex:1;">
-                            ##defineLang|_CATEGORY##<br/>##sortColumn|category_id##
-                        </span>
-                        <span style="flex:1;">
-                            ##defineLang|_CREATION_DATE##<br/>##sortColumn|creation_date##
-                        </span>
-                        <span style="flex:2;">
-                            ##defineLang|_ASSIGNEE## - ##defineLang|_REDACTOR## / ##defineLang|_ENTITY##<br/>##sortColumn|dest_user## / ##sortColumn|entity_label##
-                        </span>
-                        <span style="flex:2;">
-                            ##defineLang|_TYPE##<br/>##sortColumn|type_label##
-                        </span>
-                        <span style="flex:1;">
-                            ##defineLang|_DEST_USER## / ##defineLang|_SHIPPER##<br/>
-                        </span>
-                    </div>
-                </th>
-            </tr>
-        </thead>
-
-        <tbody class="listResultContentBody">
-        
-#!#RESULT
-<!-- ----------------------------------------------------------------------- -->
-            <tr class="##cssLine|col|white##">
-                <td style="width:150px;text-align:center;">
-                    ##loadValue|status####func_isConfidential##<br/><br/>
-                    <b title="n°##loadValue|res_id##">##ifStatement|'#defineLang|_ID_TO_DISPLAY#'==res_id|#loadValue|res_id#|## ##ifStatement|'#defineLang|_ID_TO_DISPLAY#'==chrono_number|#loadValue|alt_identifier#|##</b>
-                    ##func_cadenas|'#loadValue|locker_user_id#'|'#loadValue|locker_time#'##  ##radioButton## ##checkBox##
-                </td>
-                <td style="padding: 10px;">
-                    <span style="display: flex;width: 100%;padding-bottom: 20px;align-items: center;">
-                        <span style="flex:5;font-weight:bold;padding-left: 10px;font-size:15px;">
-                            ##loadValue|subject##
-                        </span>
-                        <span style="flex:1;text-align: right;">
-                            <span title="##defineLang|_DEST_USER## - ##defineLang|_SHIPPER##">##loadValue|exp_user_id####loadValue|is_multicontacts## ##func_bool_see_multi_contacts##</span><br/>
-                            ##ifStatement|'#loadEscapeValue|real_dest#'!=null|#loadValue|real_dest#|##<br/><br/>
-                            ##ifStatement|'#loadEscapeValue|case_label#'!=null|<b>#defineLang|_CASE# : </b>#loadValue|case_label#|##
-                        </span>
-                    </span>
-                    <span style="display: flex;width: 100%;">
-                        <span style="flex:1;" title="##defineLang|_PRIORITY##">
-                            ##loadValue|priority##
-                        </span>
-                        <span style="flex:1;" title="##defineLang|_CATEGORY##">
-                            ##loadValue|category_img## ##loadValue|category_id##
-                        </span>
-                        <span style="flex:1;" title="##defineLang|_CREATION_DATE##">
-                            <i class="fa fa-calendar-alt fa-2x"></i> ##loadValue|creation_date##
-                        </span>
-                        <span style="flex:2;" >
-                            <span title="##defineLang|_ASSIGNEE## - ##defineLang|_REDACTOR##">##loadValue|dest_user##</span> <span title="##defineLang|_ENTITY##">(##loadValue|entity_label##)</span>
-                        </span>
-                        <span style="flex:2;" title="##defineLang|_TYPE##">
-                            <i class="fa fa-file fa-2x"></i> ##loadValue|type_label##
-                        </span>
-                        <span style="flex:1;" title="##defineLang|_TYPE##">
-                            <span class="actionsTool" style="text-align:center;">
-                                ##func_bool_see_notes##
-                                ##showActionAdvResultFA|#defineLang|_ATTACHMENTS#|paperclip|loadRepList('#loadValue|res_id#', 'FT')|#loadValue|count_attachment# == 0##
-                                ##showActionFA|#defineLang|_WF#|share-alt|loadDiffList('#loadValue|res_id#')##
-                                ##ifStatement|'#loadValue|filename#'!=null|#showIconDocument#|##
-                                ##showIconDetails##
-                            </span>
-                        </span>
-                    </span>
-                   
-                </td>
-            </tr>
-               <tr id="noteList_##loadValue|res_id##" name="noteList_##loadValue|res_id##" style="display: none; border-bottom: solid 1px black; background-color: white;" width="100%">
-                    <td colspan="6" style="background-color: #f2f2f2;">
-                        <div id="divNoteList_##loadValue|res_id##" align="center" style="color: grey;margin:10px;padding:10px;border: 1px dashed #135F7F;">
-                            <i class="fa fa-spinner fa-2x"></i><br />
-                            ##define_lang|_LOADING_INFORMATIONS##
-                        </div>
-                    </td>
-                </tr>   
-               <tr id="contactsList_sender_##loadValue|res_id##" name="contactsList_##loadValue|res_id##" style="display: none; border-bottom: solid 1px black; background-color: white;" width="100%">
-                    <td colspan="6" style="background-color: #f2f2f2;">
-                        <div id="divContactsList_sender_##loadValue|res_id##" align="center" style="color: grey;margin:10px;padding:10px;border: 1px dashed #135F7F;">
-                            <i class="fa fa-spinner fa-2x"></i><br />
-                            ##define_lang|_LOADING_INFORMATIONS##
-                        </div>
-                    </td>
-                </tr>
-                <tr id="contactsList_recipient_##loadValue|res_id##" name="contactsList_##loadValue|res_id##" style="display: none; border-bottom: solid 1px black; background-color: white;" width="100%">
-                    <td colspan="6" style="background-color: #f2f2f2;">
-                        <div id="divContactsList_recipient_##loadValue|res_id##" align="center" style="color: grey;margin:10px;padding:10px;border: 1px dashed #135F7F;">
-                            <i class="fa fa-spinner fa-2x"></i><br />
-                            ##define_lang|_LOADING_INFORMATIONS##
-                        </div>
-                    </td>
-                </tr>
-                <tr id="repList_##loadValue|res_id##" name="repList_##loadValue|res_id##" style="display: none; border-bottom: solid 1px black; background-color: #FFF;" width="100%">
-                    <td colspan="2" style="background-color: #f2f2f2;">
-                        <div id="divRepList_##loadValue|res_id##" align="center" style="color: grey;margin:10px;padding:10px;border: 1px dashed #135F7F;">
-                            <i class="fa fa-spinner fa-2x"></i><br />
-                            ##defineLang|_LOADING_INFORMATIONS##
-                        </div>
-                    </td>
-                </tr>
-                <tr id="diffList_##loadValue|res_id##" name="diffList_##loadValue|res_id##" style="display: none; border-bottom: solid 1px black;" width="100%">
-                    <td colspan="2" style="background-color: #f2f2f2;">
-                        <div id="divDiffList_##loadValue|res_id##" align="center" style="color: grey;margin:10px;padding:10px;">
-                            <i class="fa fa-spinner fa-2x"></i><br />
-                            ##defineLang|_LOADING_INFORMATIONS##
-                        </div>
-                    </td>
-                </tr> 
-
- #!#FOOTER
- <!--   ----------------------------------------------------------------------- -->
-        </tbody>
-    </table>
-    <br/>
-
-<script>
-    $j('#container').attr('style', 'width: 90%; min-width: 1000px;');
-    $j('#content').attr('style', 'width: auto; min-width: 1000px;');
-    $j('table#extended_list').attr('style', 'width: 100%; min-width: 900px; margin: 0;');
-</script>
diff --git a/apps/maarch_entreprise/template/header.html b/apps/maarch_entreprise/template/header.html
deleted file mode 100755
index 1f403f2e9e0..00000000000
--- a/apps/maarch_entreprise/template/header.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<div id="header">
-    <div id="nav" style="margin-left: 0px;">
-        <div style="display:flex;padding-left: 20px;padding-right: 20px;height:100%;">
-            <a href="index.php" onclick="localStorage.setItem('PreviousV2Route', '/home');">
-                <div style="background: url(static.php?filename=logo_white.svg) #135F7F;background-size: 80%;background-position: center;background-repeat: no-repeat;width: 140px;height: 100%;">
-                </div>
-            </a>
-            <div style="justify-content: flex-end;display: flex;width: 100%;color: white;align-items: center;">
-                <span class="maarchToolButton" style="padding-left:10px;padding-right:10px;font-size: 14px;text-align: center;display: flex;align-items: center;position: relative;cursor:pointer;" onclick="$j('#profilenav').slideToggle('fast');event.stopPropagation();" title="Mes groupes">
-                    <?php                         
-                    $strUserInfos = '<i class="fa fa-user fa-2x" style="padding-right:5px;"></i> ' . $_SESSION['user']['FirstName']."&nbsp;<b>".$_SESSION['user']['LastName']."</b>";
-                    echo $strUserInfos; ?>
-                </span>
-                <div id="profilenav" class="menunav" style="margin-top:10px;right: 5px;display:none;background: #135f7f;">
-                    <canvas class="header-bg" width="250" height="70" style="width: 100%;background-image: url('static.php?filename=login-banner.jpg');background-size:cover;border-bottom: solid 1px white;"></canvas>
-                    <i title="<?php echo _MY_INFO;?>" onclick="triggerAngular('#/profile')" style="cursor:pointer;z-index:1;color:white;position: absolute;left: 85px;top: 17px;background-image: url('static.php?filename=logo_only.svg');width: 70px;height: 70px;background-size: cover;background-position: top center;border-radius: 50%;border: solid white;background-color:white;"></i>
-                    <div class="content" style="padding-top:10px;color:#666;max-height:250px;overflow-y:auto;overflow-x:hidden;">
-                        <p onclick="triggerAngular('#/profile')" style="text-align:center;margin-top:10px;cursor:pointer;color:white;"><?php echo $_SESSION['user']['FirstName'].". ".$_SESSION['user']['LastName'];?></p>
-                        <h3 style="padding: 5px;margin-top:10px;color:white;text-align:left;">Groupes</h3>
-                        <ul style="color:white;padding: 10px;text-align:left;opacity: 0.5;"> 
-                            <?php
-                            $userGroups = \User\models\UserModel::getGroupsByLogin(['login'=> $_SESSION['user']['UserId']]);
-                       
-                            if(!empty($userGroups)){
-                                for($i=0;$i<count($userGroups);$i++){
-                                    $strGrpInfos .= '<li style="padding-bottom:20px;">'.$userGroups[$i]['group_desc'].'</li>';                              
-                                }
-                            }
-                            echo $strGrpInfos;
-                            ?>
-                        </ul>
-                    </div>
-                    <div style="display:flex;">
-                        <div class="footer_menu">
-                            <a onclick="triggerAngular('#/profile')" style="cursor: pointer;color:white;float:left;"><span><?php echo _MY_INFO;?></span></a>
-                            <a href="index.php?display=true&page=logout&logout=true" style="cursor: pointer;color:white;float:right;"><span><?php echo _LOGOUT;?></span></a>
-                            <div style="clear:both;"></div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div> 
-    </div>
-</div>
-<div><p id="ariane"></p></div>
diff --git a/apps/maarch_entreprise/template/history_list_diff.html b/apps/maarch_entreprise/template/history_list_diff.html
deleted file mode 100755
index 8e7d3b1b326..00000000000
--- a/apps/maarch_entreprise/template/history_list_diff.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--
-
-* history_list_diff template
-*
-*
-* @package  Maarch Entreprise 1.5
-* @version 1.5
-* @since 02/2015
-* @license GPL
-* @author <dev@maarch.org>
-*
-
-
-
-Parts :
-    ##HEAD< : Begining of the head part
-    ##HEAD> : End of the head part
-
-    ##RESULT< : Begining of result list
-    ##RESULT> : End fo result list
-
-Functions :
-
-
-    ##cssLine|arg1|arg2##                   : load css style for line. arg1,arg2 : switch beetwin style on line one or line two
-    ##cssLineReload##                       : reload last css style loaded by cssLine
-    ##sortColumn|arg##                      : sort list. arg = sort;
-    ##defineLang|arg##                      : show label. arg = constant define in lang.php;
-    ##loadImage|arg1|arg2##                 : show loaded image; arg1= name of img file, arg2 = name of the module (if image in module)
-    ##loadValue|arg##                       : load value in the db; arg= column's value  identifier
-    ##showActionIcon|arg1|arg2|arg3|arg4##  : action icon. arg1 = label, arg2  = image , arg3 = action (javascript), arg4 = disabled rule
-    ##includeFile|arg1|arg2##               : include file. arg1 = name of the file, arg2  = name of the module (if file in module)
-    ##setListParameter|arg1|arg2##          : set parameter's value for actual list. arg1 = name of parameter, arg2  = new value
-    ##getListParameter|arg##                : get parameter's value for actual list. arg1 = name of parameter
-    ##ifStatement|arg1|arg2|arg3|arg4##     : allow conditional execution . arg1=condition, arg2= statement 1, arg3 = statement 2
-    ##isModuleLoaded|arg##                  : test if module is loaded. arg = module id
-
-Mods 
-
-
-    ##radioButton##         : display radio
-    ##checkBox##            : display checkbox
-    ##checkUncheckAll##     : display checkbox for check/uncheck All
-    ##clickOnLine##         : action on click under the line
-    ##showIconDocument##    : view document icon
-    ##showIconDetails##     : view detail's page icon
-    ##getBusinessAppUrl##   : get business app url
-	
-
--->
-
-
-#!#TABLE
-<!-- ----------------------------------------------------------------------- -->
-<table border="0" cellspacing="0" class="listing spec zero_padding" id='history_list'  style = "padding: 0px;width: 100%; min-width: 900px; margin: 0;">
-
-
-#!#HEAD
-<!-- ----------------------------------------------------------------------- -->
-         <thead class="##cssLine|col|white ##">
-            <tr>
-                <td width="25%">##defineLang|_MODIFICATION_DATE##</td>
-                <td width="200px">##defineLang|_MODIFY_BY##</td>
-                <td></td>
-            </tr>
-        </thead>
-<br/>
-        <tbody>
-#!#RESULT
-<!-- ----------------------------------------------------------------------- -->
-
-           <tr  class="##cssLine|col|white ##" >
-                <td width ="25%">##loadValue|updated_date##</td>
-                <td width ="25%">##loadValue|user_id##</td>
-                <td width="30px" style="font-size:10px;" >##showActionIcon|Voir le detail de la liste|#loadImage|cogs fa-2x#|loadDiffListHistory('#loadValue|listinstance_history_id#')##</td>
-            </tr>
-
-            <tr id="diffListHistory_##loadValue|listinstance_history_id##" name="diffListHistory_##loadValue|listinstance_history_id##" style="display: none; border-bottom: solid 1px black; background-color: #FFF;">
-                <td colspan="3" style="background-color: white;">
-                    <div id="divDiffListHistory_##loadValue|listinstance_history_id##" style="color: grey;background: transparent; border: 1px dashed rgb(200, 200, 200);margin-left:10px;margin-right: 10px;padding-left:10px;padding-right: 10px;">
-                        <i class="fa fa-spinner fa-2x"></i><br />
-                        ##defineLang|_LOADING_INFORMATIONS##
-                    </div>
-                </td>
-            </tr>
-
-
- #!#FOOTER
- <!--   ----------------------------------------------------------------------- -->
-        </tbody>
-</table>
-
-<script>
-    $j("#history_list").css({"width":"100%","min-width":"100%"});
-</script>
\ No newline at end of file
diff --git a/apps/maarch_entreprise/welcome.php b/apps/maarch_entreprise/welcome.php
deleted file mode 100755
index a41c29796f2..00000000000
--- a/apps/maarch_entreprise/welcome.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/*
-*   Copyright 2008-2011 Maarch
-*
-*  This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*    along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
-* @brief  French welcome page
-* 
-* @file
-* @author  Loïc Vinet  <dev@maarch.org>
-* @author  Claire Figueras  <dev@maarch.org>
-* @date $date$
-* @version $Revision$
-* @ingroup apps
-*/
-
-
-$core_tools = new core_tools();
-$_SESSION['location_bar']['level2']['path']	= "";
-$_SESSION['location_bar']['level2']['label'] = "";
-$_SESSION['location_bar']['level2']['id'] = "";
-$_SESSION['location_bar']['level3']['path'] = "";
-$_SESSION['location_bar']['level3']['label'] = "";
-$_SESSION['location_bar']['level3']['id'] = "";
-$_SESSION['location_bar']['level4']['path'] = "";
-$_SESSION['location_bar']['level4']['label'] = "";
-$_SESSION['location_bar']['level4']['id'] = "";
-$core_tools->manage_location_bar();
-?>
-<h1 id="homePageWelcomeTitle"><i class="fa fa-ellipsis-v fa-2x" style="opacity: 0"></i><?php echo _WELCOME;?></h1>
-<div id="inner_content" class="clearfix">
-<?php
-$core_tools->execute_app_services($_SESSION['app_services'], "welcome.php");
-$core_tools->execute_modules_services($_SESSION['modules_services'], 'welcome', "include");
-?>
-</div>
-- 
GitLab