diff --git a/apps/maarch_entreprise/actions/docLocker.php b/apps/maarch_entreprise/actions/docLocker.php
deleted file mode 100755
index 8e26606b0b5b13941e8ba285e92ce3545af383fd..0000000000000000000000000000000000000000
--- 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 f391826c240748a9000c3e00f659c32e8e53ed58..0000000000000000000000000000000000000000
--- 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 cb409d7ba807a1b940bcc8ede330f1ebc1599fe1..0000000000000000000000000000000000000000
--- 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 37857135e3dd885a24dea7193e24617d5643c9d1..0000000000000000000000000000000000000000
--- 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
Binary files a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/FontMaarch.otf and /dev/null differ
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
Binary files a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.eot and /dev/null differ
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 31279bb3bccdafe7b7d5e4cc7e5ccb24cdc589ca..0000000000000000000000000000000000000000
--- 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
Binary files a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.ttf and /dev/null differ
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
Binary files a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.woff and /dev/null differ
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
Binary files a/apps/maarch_entreprise/css/font-awesome-maarch/fonts/fontmaarch-webfont.woff2 and /dev/null differ
diff --git a/apps/maarch_entreprise/css/photoswipe_custom.css b/apps/maarch_entreprise/css/photoswipe_custom.css
deleted file mode 100755
index 65ba3e515fafb8ffdddadd1b415b9012d01a4315..0000000000000000000000000000000000000000
--- 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 b966aedac2150b2757cc80a71d58614cce090236..0000000000000000000000000000000000000000
--- 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 75e1a468f65ead92a0eb994aa8db16dfbed2eaed..0000000000000000000000000000000000000000
--- 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 fc4483520e233a8502cb79342c0e0338e2ee09b7..0000000000000000000000000000000000000000
--- 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 5ab59db74249272edf575768a486dd62fa39d2f0..0000000000000000000000000000000000000000
--- 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 fc8ca045cf7d1d9b32c4fd5c2a703054449465c7..0000000000000000000000000000000000000000
--- 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 81d7383513f247b69e6ba75a33809815121c27bf..0000000000000000000000000000000000000000
--- 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 9c919b43494e5719b41a747b997bccd496e70630..0000000000000000000000000000000000000000
--- 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 b8eb8c3fd98a1d9ac252a422a12ead3c413ff489..0000000000000000000000000000000000000000
--- 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 0dd0b1c96ccec0c9e61185204f48267e7def715b..0000000000000000000000000000000000000000
--- 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 28b3227533e3119f39870621122c90c2de7c65ca..0000000000000000000000000000000000000000
--- 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 ac128661cb1d8bf5a7b719a0ef2819cfee1df556..0000000000000000000000000000000000000000
--- 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 f325ffcaae37c4aed7362690a0e46d4b58f876f1..0000000000000000000000000000000000000000
--- 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 7da3be77fb34bc7467dfd53d97f4f54cd996e81f..0000000000000000000000000000000000000000
--- 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 9b7853f5d7026952d129259c9b8cc827200ece7d..0000000000000000000000000000000000000000
--- 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 cc89dafcd6ae69cf81adfea016a0f1a8d8341c58..0000000000000000000000000000000000000000
--- 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 0ea5c445700b2aee69e65e1c71232a6b300256b2..0000000000000000000000000000000000000000
--- 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 690967c457fb00879ce75681a43359640d4b3e5f..0000000000000000000000000000000000000000
--- 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 cbc84a1d3f546145ac64d2eeadc9a350ea3a9afc..0000000000000000000000000000000000000000
--- 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 2400b5f9f2688c0778521bc19bb6ae970a2983de..0000000000000000000000000000000000000000
--- 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 5faf5140027a72102560494914a51b2e26c9f9b8..0000000000000000000000000000000000000000
--- 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 44f862fdd037db08d5ca885e3bc65bab4eddae37..0000000000000000000000000000000000000000
--- 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 16e658acb540995a1dafd39869ce790f305b8bb2..0000000000000000000000000000000000000000
--- 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 3faafdeeea0ec9bb0737b81c59351738bbe9acad..0000000000000000000000000000000000000000
--- 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 5c54d7e0eb7f55f1b55cf367cea31d023725494f..0000000000000000000000000000000000000000
--- 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 e285244de878bba294c8d825e5ede01daa947861..0000000000000000000000000000000000000000
--- 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 5535048d930ecda5484eb73c476e4cffdc007de9..0000000000000000000000000000000000000000
--- 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 1f403f2e9e01df12da63a007de1fe556a1bfea7c..0000000000000000000000000000000000000000
--- 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 8e7d3b1b326162b7ff09156140505328409115a5..0000000000000000000000000000000000000000
--- 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 a41c29796f2c1a3ffd2ef3d2839c6b7938a7028f..0000000000000000000000000000000000000000
--- 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>