last
authorobledc
Wed, 14 Aug 2013 16:42:24 +0200
changeset 40 de926fe6c241
parent 39 343b9fbc9da1
child 41 44a8b4a109fd
last
.pydevproject
alcatel/controller/ClusterAnnotation.pyc
alcatel/controller/Clusters.pyc
alcatel/controller/DocumentAnnotation.pyc
alcatel/controller/DocumentaryFile.pyc
alcatel/controller/DocumentaryFileAnnotation.pyc
alcatel/controller/DocumentaryFiles.pyc
alcatel/controller/Documents.pyc
alcatel/controller/Searcher.pyc
alcatel/controller/__init__.pyc
alcatel/dataparser/AnnotationsGetAttributes.pyc
alcatel/dataparser/ClientClusterAnnotationCreateAttributes.pyc
alcatel/dataparser/ClientClusterAnnotationDeleteAttributes.pyc
alcatel/dataparser/ClientDocumentAnnotationCreateAttributes.pyc
alcatel/dataparser/ClientDocumentAnnotationDeleteAttributes.pyc
alcatel/dataparser/ClientDocumentaryFileAttributes.pyc
alcatel/dataparser/ClientDocumentaryFileDeleteAttributes.pyc
alcatel/dataparser/ClientDocumentaryFileVisibilityAttributes.pyc
alcatel/dataparser/ClientDocumentsGetAttributes.pyc
alcatel/dataparser/ClientSearchAttributes.pyc
alcatel/dataparser/ClustersGetAttributes.pyc
alcatel/dataparser/DocumentaryFileAnnotationAttributes.pyc
alcatel/dataparser/DocumentaryFileAnnotationDeleteAttributes.pyc
alcatel/dataparser/DocumentaryFilesGetAttributes.pyc
alcatel/dataparser/WebLabParser.pyc
alcatel/dataparser/__init__.pyc
alcatel/mediapartdb/MediapartReader.pyc
alcatel/mediapartdb/__init__.pyc
alcatel/periplus/__init__.pyc
alcatel/periplus/settings.pyc
alcatel/periplus/urls.pyc
alcatel/periplus/wsgi.pyc
alcatel/static/css/article.css.old
alcatel/static/css/common.css.old
alcatel/static/css/home.css.old
alcatel/static/js/streamgraph.js.old
alcatel/static/js/treemap.js.old
integration/annotation-article.js
integration/periplus.zip
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.pydevproject	Wed Aug 14 16:42:24 2013 +0200
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse-pydev version="1.0"?><pydev_project>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
+</pydev_project>
Binary file alcatel/controller/ClusterAnnotation.pyc has changed
Binary file alcatel/controller/Clusters.pyc has changed
Binary file alcatel/controller/DocumentAnnotation.pyc has changed
Binary file alcatel/controller/DocumentaryFile.pyc has changed
Binary file alcatel/controller/DocumentaryFileAnnotation.pyc has changed
Binary file alcatel/controller/DocumentaryFiles.pyc has changed
Binary file alcatel/controller/Documents.pyc has changed
Binary file alcatel/controller/Searcher.pyc has changed
Binary file alcatel/controller/__init__.pyc has changed
Binary file alcatel/dataparser/AnnotationsGetAttributes.pyc has changed
Binary file alcatel/dataparser/ClientClusterAnnotationCreateAttributes.pyc has changed
Binary file alcatel/dataparser/ClientClusterAnnotationDeleteAttributes.pyc has changed
Binary file alcatel/dataparser/ClientDocumentAnnotationCreateAttributes.pyc has changed
Binary file alcatel/dataparser/ClientDocumentAnnotationDeleteAttributes.pyc has changed
Binary file alcatel/dataparser/ClientDocumentaryFileAttributes.pyc has changed
Binary file alcatel/dataparser/ClientDocumentaryFileDeleteAttributes.pyc has changed
Binary file alcatel/dataparser/ClientDocumentaryFileVisibilityAttributes.pyc has changed
Binary file alcatel/dataparser/ClientDocumentsGetAttributes.pyc has changed
Binary file alcatel/dataparser/ClientSearchAttributes.pyc has changed
Binary file alcatel/dataparser/ClustersGetAttributes.pyc has changed
Binary file alcatel/dataparser/DocumentaryFileAnnotationAttributes.pyc has changed
Binary file alcatel/dataparser/DocumentaryFileAnnotationDeleteAttributes.pyc has changed
Binary file alcatel/dataparser/DocumentaryFilesGetAttributes.pyc has changed
Binary file alcatel/dataparser/WebLabParser.pyc has changed
Binary file alcatel/dataparser/__init__.pyc has changed
Binary file alcatel/mediapartdb/MediapartReader.pyc has changed
Binary file alcatel/mediapartdb/__init__.pyc has changed
Binary file alcatel/periplus/__init__.pyc has changed
Binary file alcatel/periplus/settings.pyc has changed
Binary file alcatel/periplus/urls.pyc has changed
Binary file alcatel/periplus/wsgi.pyc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/css/article.css.old	Wed Aug 14 16:42:24 2013 +0200
@@ -0,0 +1,114 @@
+/*articles*/
+.articles{
+	padding-left: 1px;
+	overflow: auto;
+	border-bottom: 1px solid #e0dde0;
+}
+.article{
+	padding: 12px 0 6px 0;
+	float: left;
+	border-bottom: 1px solid #e0dde0;
+}
+.article:hover{
+	background-color: #eee;
+}
+.inner-article{
+	width: 177px;
+	padding-left: 12px;
+	border-right: 1px solid #e0dde0;
+	min-height: 250px;
+}
+.article:nth-child(4n+4) .inner-article{  
+  border-right: none;
+}
+.article h2{
+	font-size: 20px;
+	margin-bottom: 2px;
+}
+.article h2 a{
+	text-decoration: none;
+}
+.article h2 a:hover{
+	color:#C51810;
+}
+.author{
+	font-family: Arial;
+	font-size: 8px;
+	line-height: 10px;
+	margin-bottom: 10px;
+}
+.number-article{
+	font-size: 10px;
+	overflow: hidden;
+}
+.author a:hover, 
+.number-article a:hover{
+	text-decoration: none;
+}
+.author, .author a,
+.number-article, .number-article a{
+	color: #c51810;
+}
+.number-article{
+	line-height: 22px;
+}
+.article-content{
+	width: 168px;
+	min-height: 105px;
+}
+.article-content .articlelinks li{
+	list-style-image: url(../img/article-link-arrow.png);
+}
+.article-content .articlelinks li a:hover{
+	text-decoration: none;
+}
+.article-content .articlelinks{
+	margin-top: 10px;
+	clear: both;
+	padding-left: 20px;
+}
+.article-visuel-wrap{
+	display: block;
+	float: right;
+	margin-left: 10px;
+}
+/* annotations */
+.article-annotations{
+	width: 160px;
+	height: 4px;
+	border:1px solid #edebed;
+	background-color: #898989;
+	margin-bottom: 6px;
+}
+.article-annotations a{
+	float: left;
+	display: block;
+	width: 100%;
+	height: 4px;
+	background-image: url(../img/border-right-annotation-value.png);
+	background-repeat: repeat-y;
+	background-position: right top;
+}
+.article-annotations .blue{
+	background-color: #429dd4;
+}
+.article-annotations .green{
+	background-color: #73c263;
+}
+.article-annotations .red{
+	background-color: #d64752;
+}
+.article-annotations .empty{
+	background-color: #898989;
+}
+.add-annotation{
+	width: 22px;
+	height: 17px;
+	display: block;
+	background: url(../img/article-annotations-add-comment-sprite.png) no-repeat 0 0;
+	float: right;
+	margin-right: 14px;
+}
+.add-annotation:hover{
+	background-position: -22px 0;
+} 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/css/common.css.old	Wed Aug 14 16:42:24 2013 +0200
@@ -0,0 +1,685 @@
+body{
+	background-color: #e9ecf0;
+	height: 100%;
+}
+a{
+	color:#000;
+}
+.wrap{
+	min-height:100%;
+	background-color: #FFF;
+	width: 960px;
+	margin: 0 auto;
+	font-family: "Times New Roman";
+	font-size: 13px;
+	-moz-box-shadow: 0 0 14px 5px #888;
+  	-webkit-box-shadow: 0 0 14px 5px #888;
+  	box-shadow: 0 0 14px 5px #888;
+  	padding-bottom: 16px;
+  	height: 100%;
+}
+/* header */
+.header{
+	position: relative;
+	height: 128px;
+	margin-bottom: 1px;
+}
+.header-name {
+    background: url("../images/mister.png") no-repeat scroll 2px 1px transparent;
+    color: #187DA7;
+    font-weight: 900;
+    padding: 0 0 12px 20px;
+}
+/* header > logo */
+.logo{
+	width: 164px;
+	height: 105px;
+	background: url(../img/back-logo.png) 0 0 no-repeat;
+	top: 0;
+	left: 66px;
+	position: absolute;
+}
+.logo .date{
+    height: 66px;
+    left: 93px;
+    position: absolute;
+    text-align: center;
+    top: 4px;
+    width: 47px;
+}
+.logo .date .year{
+	font-size: 40px; 
+	display: block;
+}
+.logo .date .text{
+	font-size: 10px;
+	display: block;
+}
+/* header > recherche-wrap */
+.recherche-wrap{
+	position: absolute;
+	left: 324px;
+	padding-top: 10px;
+}
+.recherche-wrap h1{
+	margin-bottom: 4px;
+}
+
+.recherche-wrap .input-recherche{
+	width: 218px;
+	height: 24px;
+	padding: 0 30px 0 6px;
+	border: 1px solid black;
+	margin-right: 2px;
+}
+.recherche-wrap p input, .recherche-wrap p a{
+	float: left;
+}
+.recherche-wrap form p{
+	position: relative;
+}
+.recherche-wrap form p .photo{
+	position: absolute;
+	width: 18px;
+	height: 18px;
+	background: url(../img/photo.jpg) no-repeat 2px 4px;
+	left: 230px;
+	top: 2px;
+	z-index: 2;
+}
+.recherche-wrap .recherche-submit{
+	width: 54px;
+	height: 26px;
+	cursor: pointer;
+	border: none;
+	margin-right: 6px;
+	background-color: #000;
+	background-image: url(../img/zoom-button.png);
+	background-repeat: no-repeat;
+	background-position: 20px 6px;
+}
+.plus-button{
+	width: 30px;
+	height: 26px;
+	display: block;
+	background-color: #000;
+	background-image: url(../img/plus-button.png);
+	background-repeat: no-repeat;
+	background-position: 8px 6px;
+}
+.plus-button:hover, .recherche-submit:hover{
+	background-color: #333;
+}
+/* header > header-menu */
+.header-menu{
+	background: url(../img/bg-nav-left.png) repeat-x 0 0;
+	position: absolute;
+	height: 39px;
+	top: 89px;
+	width: 716px;
+	left: -2px;
+}
+.header-menu li{
+	float: left;
+	line-height: 28px;
+	padding: 8px 10px 0 10px;
+}
+.header-menu li .home{
+	width: 28px;
+	height: 28px;
+	display: block;
+	background:url(../img/home-sprite.png) 0 -28px no-repeat;
+}
+.header-menu li .home:hover{
+	background-position: 0 0;
+}
+.header-menu li a{
+	font-size: 16px;
+	color: #e4e36e;
+	text-decoration: none;
+}
+.header-menu li a:hover{
+	color: #FFF;
+}
+/* header > login-wrap */
+.login-wrap{
+	padding-top: 10px;
+	position: absolute;
+	left: 727px;
+}
+.login-wrap form p, .login-wrap h2{
+	margin-bottom: 4px;
+}
+.login-wrap input{
+	width: 160px;
+	height: 19px;
+	border: 1px solid #656565;
+	line-height: 19px;
+	padding: 0 3px;
+}
+.login-wrap .submit-wrap input{
+	float: left;
+}
+.login-wrap .password{
+	width: 134px;
+}
+.login-wrap .submit-button{
+	background-color: #000;
+	color: #FFF;
+	height: 21px;
+	width: auto;
+	cursor: pointer;
+	border: none;
+}
+.login-wrap .submit-button:hover{
+	background-color: #333;
+}
+.password-lost{
+	padding-left: 18px;
+}
+.password-lost a {
+	color: #000;
+	text-decoration: none;
+	font-size: 10px;
+}
+.password-lost a:hover{
+	text-decoration: underline;
+}
+/* dossier-documentaire */
+.dossier-documentaire{
+	padding: 0 6px;
+	position: absolute;
+	left: 714px;
+	top:128px;
+	z-index: 10;background-color:rgba(0,125,173,.8);
+}
+.dossier-documentaire-inner{
+	padding: 12px 4px;
+	width: 224px;background: url(../img/documentaire-bg.jpg);
+}
+.dossier-documentaire h2{
+	height: 18px;
+	line-height: 18px;
+	color: #FFF;
+	border-bottom: 1px solid #FFF;
+}
+.dossier-documentaire ul{
+	padding: 6px 0;
+}
+.dossier-documentaire ul li{
+	width: 224px;
+}
+.dossier-documentaire ul li a{
+	display: block;
+	overflow: auto;
+	padding: 1px 0;
+}
+.dossier-documentaire ul li a:hover{
+ 	background-color:rgba(221,221,221,.6);
+}
+.dossier-documentaire .documentaire-texte, .dossier-documentaire img{
+	float: left;	
+}
+.dossier-documentaire img{
+	margin-right: 6px;
+}
+.dossier-documentaire .documentaire-texte{
+	color: #FFF;
+	max-width: 142px;
+	display: block;
+}
+.documentaire-texte h3{
+	font-weight: bold;
+	margin-bottom: 2px;
+}
+.documentaire-texte p{
+	font-size: 11px;
+}
+.documentaire-lien {
+	width: 168px;
+	display: block;
+	height: 16px;
+	background-image: url(../img/documentaire-lien.jpg);
+	background-repeat: no-repeat;
+	background-position: 0 0;
+	width: 225px;
+	margin-bottom: 10px;
+}
+.documentaire-lien:hover{
+	background-position: 0 -16px;
+}
+.dossier-button{
+	background: url("../img/dossier-icon.jpg") no-repeat scroll 6px 5px #007DAD;
+    color: #FFFFFF;
+    height: 27px;
+    left: 714px;
+    line-height: 27px;
+    padding-left: 40px;
+    position: absolute;
+    text-decoration: none;
+    top: 101px;
+    width: 208px;
+}
+.dossier-button:hover{
+	color: #ddd;
+}
+/* content-wrap */
+.content-wrap{
+	width:950px;
+	padding: 0 5px;
+}
+/* content-wrap > frise */
+.frise{
+	background: #333;
+	height: 114px;
+    position: relative;
+}
+.streamgraph {
+    position: absolute; left: 0; width: 100%; top: 0; height: 100%;
+    background: #fff;
+}
+.frise .ui-slider-horizontal {
+    height: 20px;
+    position: absolute;
+    width: 100%;
+    bottom: 0;
+    background: none repeat scroll 0 0 transparent;
+   	border: none;
+    -webkit-border-radius: 0;
+  	-moz-border-radius: 0;
+  	border-radius: 0;
+}
+.frise  .ui-slider-horizontal .ui-slider-handle{
+	top: inherit;
+	bottom: 0;
+}
+.frise .ui-slider-horizontal .ui-slider-range{
+	background: none repeat scroll 0 0 transparent;
+}
+.ui-slider-handle.ui-state-default.ui-corner-all{
+	cursor: pointer;
+	width: 19px;
+	height: 28px;
+	background: url(../img/frise-cursor.png) -1px 0 no-repeat;
+	border: none;
+	-webkit-border-radius: 0;
+  	-moz-border-radius: 0;
+  	border-radius: 0;
+}
+/* content-wrap > cluster */
+.cluster-containment{
+	position: absolute;
+	height: 22px;
+}
+.cluster-wrap{
+	position: relative;
+	height: 22px;
+	border-top: 1px solid #313131;
+	border-bottom: 1px solid #313131;
+	margin-bottom: 1px;
+}
+.cluster-visible{
+	left: 20px;
+	position: absolute;
+	width: 912px;
+	margin: 0 auto;
+	height: 22px;
+	overflow: hidden;
+}
+.cluster li:first-child{
+	background: none;
+}
+.cluster li{
+	padding-top: 4px;
+	float: left;
+	padding: 2px 4px 0 6px;
+	line-height: 22px;
+	background: url(../img/cluster-item-bar.jpg) no-repeat 0 6px;
+}
+.cluster li a{
+	padding: 0 16px;
+	text-decoration: none;
+	color: #000;
+	font-style: italic;
+	height: 18px;
+	line-height: 18px;
+	display: block;
+}
+.cluster li a:hover{
+	background-color: #c51810;
+	color: #FFF;
+}
+
+.cluster-arrow{
+	z-index: 2;
+	position: absolute;
+	width: 19px;
+	height: 22px;
+	display: block;
+	background: url(../img/cluster-arrows.png) no-repeat;
+}
+.cluster-arrow.arrow-right{
+	right: 0;
+	background: url(../img/cluster-arrows.png) no-repeat -19px 0;
+}
+.cluster-arrow.arrow-right:hover{
+	background-position: -19px -22px;
+}
+.cluster-arrow.arrow-right:active{
+	background-position: -19px -44px;
+}
+.cluster-arrow.arrow-left:hover{
+	background-position: 0 -22px;
+}
+.cluster-arrow.arrow-left:active{
+	background-position: 0 -44px;
+}
+/* content */
+.content{
+	height: 100%;
+	width: 950px;
+	border-top:2px solid #c51810;
+	border-bottom:2px solid #c51810;
+	padding: 1px 0;
+
+}
+.content-left,.content-right{
+	float: left;
+}
+/* content > content-right */
+.content-right{
+	width: 761px;
+	padding-left: 1px;
+}
+/* content > content-left */
+.content-left{
+	width: 188px;
+}
+.content-left h2{
+	padding: 10px 0 10px 10px;
+	font-size: 26px;
+	line-height: 26px;
+	border-bottom: 1px solid #c51810;
+	margin-bottom: 1px;
+	width: 176px;
+}
+.widget-wrapper{
+	background: url(../img/border-dotted.png) repeat-y 187px 0 #eeeeee;
+	padding-right: 2px;
+}
+.widget-wrap{
+	height: 100%;
+	min-height: 320px;
+	padding: 14px 0;
+	
+	border: 5px solid #e0dde0;
+}
+.widget-wrap .widget{
+	width: 160px;
+	margin: 0 auto;
+}
+.widget-wrap .widget h3{
+	padding: 2px 0;
+	border-bottom: 1px solid  #c51810;
+	margin-bottom: 4px;
+}
+.widget-wrap .widget h3 a{
+	font-size: 16px;
+	text-decoration: none;
+	color : #c51810;
+	padding-left: 12px;
+	background-position: 0px 6px;
+	background-repeat: no-repeat;
+	background-image: url(../img/dossier-title-arrow-hide.jpg);
+
+}
+.widget-wrap .widget h3 .open{
+	background-position: 0px 7px;
+	background-image: url(../img/dossier-title-arrow-show.jpg);
+}
+/* content-left > header-documentaire */
+.content-wrap .header-documentaire{
+	height: 34px;
+	width: 100%;
+	padding-bottom: 1px;
+	border-bottom: 4px solid #313131;
+}
+.header-documentaire .retour{
+	padding-left: 12px;
+	display: block;
+	line-height: 34px;
+	font-size: 24px;
+	background-color: #007dad;
+	color: #FFF;
+	width: 176px;
+	text-decoration: none;
+}
+.header-documentaire .retour:hover{
+	background-color: #4fa3c4;
+}
+.header-documentaire h2{
+	padding-left: 50px;
+	background: url(../img/header-documentaire-titre-icon.jpg) no-repeat 12px 6px;
+	color: #007dad;
+	font-size: 24px;
+	line-height: 34px;
+}
+
+.header-documentaire .retour, .header-documentaire h2{
+	float: left;
+}
+/* widget (blue) */
+.documentaire.content-left .widget-wrap{
+	background-color: #4fa3c4;
+	border: 5px solid #007dad;
+	color: #FFF;
+}
+.documentaire.content-left .widget h3{
+	border-bottom: 1px solid #000;
+}
+.documentaire.content-left .widget h3 a,
+.documentaire.content-left .widget-inner .filtre-date label,
+.documentaire.content-left .widget-inner h4, 
+.documentaire.content-left .widget-inner a{
+	color: #FFF;
+}
+.content-left.documentaire .widget-wrap .widget h3 a{
+	background-image: url(../img/dossier-documentaire-title-arrow-hide.jpg);
+}
+.content-left.documentaire .widget-wrap .widget h3 .open{
+	background-image: url(../img/dossier-documentaire-title-arrow-show.jpg);
+}
+/* widget */
+.widget-inner{
+	padding: 8px 0 8px 16px;
+}
+.widget-inner h4{
+	color: #c51810;
+	padding: 5px 0;
+}
+.widget-inner form p{
+	margin-bottom: 4px;
+}
+.widget-inner .filtre-date label{
+	color: #0000;
+	width:26px;
+	display: inline-block;
+}
+.widget-inner .filtre-date input[type=text]{
+	width: 90px;
+	height: 12px;
+	border: 1px solid #828282;
+}
+.widget-inner .filtre-categorie p{
+	margin-bottom: 8px;
+}
+.widget-inner .filtre-categorie input[type=checkbox]{
+	margin: 0 10px 0 0;
+}
+.widget.links .widget-inner a{
+	color: #000;
+}
+.widget.links .widget-inner a:hover{
+	text-decoration: none;
+}
+.widget.links .widget-inner ul{
+	padding-left: 16px;
+}
+.widget.links .widget-inner ul li{
+	margin-bottom: 4px;
+	list-style-image: url(../img/widget-list-item.jpg);
+}
+.widget.affichage li a .visuel{
+	width: 39px;
+	height: 36px;
+	display: block;
+	background-position: 0 0;
+	background-repeat: none;
+	margin-bottom: 4px;
+}
+.widget.affichage li{
+	float: left;
+	margin-right: 24px;
+}
+.widget.affichage li .treemap .visuel{
+	background-image: url(../img/treemap-sprite.jpg);
+}
+.widget.affichage li .liste .visuel{
+	background-image: url(../img/liste-sprite.jpg);
+
+}
+.widget.affichage .liste span, .widget.affichage .treemap span	{
+	text-align: center;
+	display: block;
+	font-size: 11px;
+}
+.treemap:hover .visuel, .treemap:hover .visuel{
+	background-position: 0 -36px;
+}
+.widget.affichage .liste:hover .visuel, .widget.affichage .treemap.active .visuel{
+	background-position: 0 -36px;
+}
+.widget.affichage li a{
+	text-decoration: none;
+	font-size: 12px;
+	color: #C51810;
+}
+.widget.recherche input[type=text]{
+	float: left;
+	width: 100px;
+	height: 17px;
+	padding: 0 2px;
+	border: 1px solid #828282;
+	margin-right: 6px;
+}
+.widget.recherche input[type=submit]{
+	float: left;
+	width: 20px;
+	height: 18px;
+	background-image: url(../img/widget-button-recherche.jpg);
+	background-repeat: no-repeat;
+	border:none;
+	cursor: pointer;
+}
+.widget.recherche input[type=submit]:hover{
+	background-position: -20px 0;
+}
+/* datepicker */
+.ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all{
+	font-size: 13px;
+}
+/* footer */
+.footer{
+	padding: 16px 0;
+	font-size: 12px;
+}
+.footer a:hover{
+	text-decoration: none;
+}
+.footer h2{
+	font-size: 20px;
+	margin-bottom: 10px;
+}
+.footer-information, .footer-raccourci ,.footer-partenaire{
+	float: left;
+}
+.footer-information {
+	width: 180px;
+	padding-left: 6px;
+	margin-right: 16px;
+}
+.footer-raccourci{
+	width: 220px;
+	margin-right: 16px;
+}
+.footer li{
+	margin-bottom: 4px;
+}
+.footer-partenaire{
+	margin-right: 12px;
+}
+.footer-partenaire li{
+	height: 55px;
+	float: left;
+	margin-right: 12px;
+	line-height: 55px;
+}
+.footer-partenaire li a{
+	overflow: hidden;
+	display: inline-block;
+	vertical-align: middle;
+}
+.footer-partenaire li a img{
+	vertical-align: middle;
+}
+.footer-partenaire .iri{
+	width: 90px;
+	height: 38px;
+	background: url(../img/logo-iri.png) 0 -38px no-repeat;
+}
+.footer-partenaire .alcatel{
+	width: 135px;
+	height: 29px;
+	background: url(../img/logo-alcatel.png) 0 -29px no-repeat;
+}
+.footer-partenaire .cea{
+	width: 50px;
+	height: 41px;
+	background: url(../img/logo-cea.png) 0 -41px no-repeat;
+}
+
+.footer-partenaire a:hover{
+	background-position: 0 0;
+}
+
+.footer-texte{
+	float: left;
+	padding-top: 30px;
+	width: 180px;
+}
+.copyright{
+	background-color: #eeeeee;
+	height: 18px;
+	width: 100%;
+	line-height: 18px;
+	text-align: center;
+}
+.copyright a{
+	text-decoration: none;
+}
+.copyright a:hover{
+	text-decoration: underline;
+}
+/*pagination*/
+.pagination{
+	height: 35px;
+	line-height: 35px;
+	text-align: center;
+	clear: both;
+	font-size: 18px;
+	border-bottom: 1px solid #E0DDE0;
+	margin-bottom: 10px;
+}
+.pagination .active,.pagination a:hover{
+	text-decoration: none;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/css/home.css.old	Wed Aug 14 16:42:24 2013 +0200
@@ -0,0 +1,144 @@
+/* actu */
+.actu {
+	float: left;
+	position: relative;
+}
+.inner-actu{
+	width: 100%;
+	background-color:rgba(0,0,0,.7);
+	height: 40px;
+	position: absolute;
+	bottom: 0;
+}
+.inner-actu h2{
+	color: #FFF;
+	line-height: 40px;
+	font-size: 24px;
+	padding-left: 10px;
+}
+.inner-actu h2 a{
+	color: #FFF;
+	text-decoration: none;
+}
+.links{
+	display: none;
+	position: absolute;
+	bottom: 0;
+	right: 0;
+}
+.actu:hover .links{
+	display: block;
+}
+.links li{
+	float: left;
+	margin: 0 0 1px 1px;
+}
+.links a{
+	display: block;
+	width: 28px;
+	height: 28px;
+	background-color: #007dad;
+	background-repeat: no-repeat;
+}
+.links a:hover{
+	background-color: #4FA3C4;
+}
+.links a.trash{
+	background-image: url(../img/home-button-trash.png);
+	background-position: 8px 5px;
+}
+.links a.file{
+	background-image: url(../img/home-button-file.png);
+	background-position: 2px 6px;
+	text-decoration: none; 
+	position: relative;
+}
+.links a.file span{
+    color: #0F85B2;
+    display: block;
+    font-size: 11px;
+    left: 8px;
+    position: absolute;
+    text-align: center;
+    top: 6px;
+    width: 18px;
+}
+.links a.comment{
+	background-image: url(../img/home-button-comment.png);
+	background-position: 4px 6px;
+}
+/* treemap */
+.actus{
+	position: relative;
+}/*
+.actu{
+	position: absolute;
+	overflow: hidden;
+	float: none;
+}*/
+
+/* Home Actus */
+div.actu {
+	float: left;
+	position: relative;
+}
+div.actu div.inner-actu{
+	width: 100%;
+	background-color:rgba(0,0,0,.7);
+	height: 40px;
+	position: absolute;
+	bottom: 0;
+}
+div.actu div.inner-actu h2{
+	color: #FFF;
+	line-height: 40px;
+	font-size: 24px;
+	padding-left: 10px;
+}
+div.actu div.inner-actu h2 a{
+	color: #FFF;
+	text-decoration: none;
+}
+div.actu div.inner-actu div.links{
+	position: absolute;
+	bottom: 0;
+	right: 0;
+}
+div.actu div.links ul li{
+	float: left;
+	margin: 0 0 1px 1px;
+}
+div.actu div.links ul li a{
+	display: block;
+	width: 28px;
+	height: 28px;
+	background-color: #007dad;
+	background-repeat: no-repeat;
+}
+div.actu div.links ul li a:hover{
+	background-color: #4FA3C4;
+}
+div.actu div.links ul li a.trash{
+	background-image: url(../img/home-button-trash.png);
+	background-position: 8px 5px;
+}
+div.actu div.links ul li a.file{
+	background-image: url(../img/home-button-file.png);
+	background-position: 2px 6px;
+	text-decoration: none; 
+	position: relative;
+}
+div.actu div.links ul li a.file span{
+    color: #0F85B2;
+    display: block;
+    font-size: 11px;
+    left: 8px;
+    position: absolute;
+    text-align: center;
+    top: 6px;
+    width: 18px;
+}
+div.actu div.links ul li a.comment{
+	background-image: url(../img/home-button-comment.png);
+	background-position: 4px 6px;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/streamgraph.js.old	Wed Aug 14 16:42:24 2013 +0200
@@ -0,0 +1,205 @@
+function Streamgraph($selector) {
+    
+    /* Constants */
+   
+    var VMARGIN = 3,
+        YEARSHEIGHT = 20,
+        STARTTIME = new Date(2007,6,1),
+        ENDTIME = new Date(),
+        CURVE = .25,
+        DATEPADDING = 10,
+        COLORS = [ "#943a23", "#fbee97", "#cfbb95", "#da9761", "#ba5036" ],
+        SELECTEDCOLOR = "#c51810"; 
+    
+    /* Generating random data */
+    
+    var data = [],
+        clustercount = 12,
+        slicecount = 20,
+        maxdata = 10,
+        randpart = 4,
+        dampfactor = .333;
+    for (var i = 0; i < clustercount; i++) {
+        var line = [],
+            peaktime = Math.floor(Math.random() * slicecount);
+        for (var j = 0; j < slicecount; j++) {
+            var point = Math.min(maxdata, Math.max(0, (Math.random() - .5) * randpart + Math.max(0, maxdata * (1 - dampfactor * Math.abs(j - peaktime)))));
+            line.push(point);
+        }
+        data.push(line);
+    }
+    
+    /* Calculating scales and positions */
+    
+    var width = $selector.width(),
+        height = $selector.height(),
+        transp = _.zip.apply( _, data ),
+        cumulative = _(transp).map(function(column) {
+            var total = 0;
+            return _(column).map(function(point) {
+                return total += point;
+            });
+        }),
+        sums = _(cumulative).map(function(column) {
+            return _(column).last();
+        })
+        maxcol = _(sums).max(),
+        streamheight = height - YEARSHEIGHT,
+        yscale = (streamheight - 2 * VMARGIN) / maxcol,
+        centery = streamheight / 2,
+        xscale = width / (transp.length - 1),
+        txscale = width / (ENDTIME - STARTTIME),
+        coords = _(data).map(function(line, lineindex) {
+            return {
+                points : _(line).map(function(point, colindex) {
+                    var lowercumul = lineindex ? cumulative[colindex][lineindex - 1] : 0,
+                        uppercumul = cumulative[colindex][lineindex];
+                    return {
+                        data: point,
+                        x: xscale * colindex,
+                        lowery: centery + yscale * ( ( sums[colindex] / 2 ) - lowercumul ),
+                        uppery: centery + yscale * ( ( sums[colindex] / 2 ) - uppercumul ),
+                    }
+                })
+            }
+        }),
+        _(coords).each(function(line) {
+            var lowerline = _(line.points).reduce(function(path, point, colindex) {
+                var res = path;
+                if (colindex) {
+                    res += "," + (point.x - CURVE * xscale) + "," + point.lowery + "," + point.x + "," + point.lowery;
+                } else {
+                    res += "M" + point.x + "," + point.lowery;
+                }
+                if (colindex < line.points.length - 1) {
+                    res += "C" + (point.x + CURVE * xscale) + "," + point.lowery;
+                }
+                return res;
+            }, "");
+            var upperline = _(line.points).reduceRight(function(path, point, colindex) {
+                var res = path;
+                if (colindex < line.points.length - 1) {
+                    res += "," + (point.x + CURVE * xscale) + "," + point.uppery + "," + point.x + "," + point.uppery;
+                } else {
+                    res += "L" + point.x + "," + point.uppery;
+                }
+                if (colindex) {
+                    res += "C" + (point.x - CURVE * xscale) + "," + point.uppery;
+                }
+                return res;
+            }, "");
+            line.path = lowerline + upperline;
+        });
+    
+    /* Drawing streamgraph*/
+   
+    var paper = new Raphael($selector[0]);
+    
+    _(coords).each(function(line, index) {
+        line.color = COLORS[index % COLORS.length];
+        line.surface = paper.path(line.path);
+        line.surface.attr({
+            stroke: "none",
+            fill: line.color
+        });
+    });
+    
+    /* Drawing years */
+   
+    paper.path("M0," + (height - YEARSHEIGHT) + "," + width + "," + (height - YEARSHEIGHT))
+    var lastyear = ENDTIME.getFullYear();
+    for (var i = STARTTIME.getFullYear(); i <= lastyear; i++) {
+        var x = txscale * (new Date(i,0,1) - STARTTIME);
+        paper.path("M" + x + ",0," + x + "," + height);
+        var x = txscale * (new Date(i,6,1) - STARTTIME);
+        paper.text(x, height - .5 * YEARSHEIGHT, i)
+            .attr({
+                "text-anchor": "middle",
+                "font-family": "Times New Roman, serif",
+                "font-size": "14px"
+            });
+    }
+    
+    /* Drawing range window */
+    
+    var carregauche = paper.rect(width,-1,width,(2+height)),
+        carredroite = paper.rect(-width,-1,width,(2+height)),
+        attrcarres = {
+            fill: "#333333",
+            "fill-opacity": .5,
+            stroke: SELECTEDCOLOR
+        };
+    carregauche.attr(attrcarres);
+    carredroite.attr(attrcarres);
+    
+    var rangerect = paper.rect(0, (height - YEARSHEIGHT), width, YEARSHEIGHT);
+    rangerect.attr({
+        fill: SELECTEDCOLOR,
+        stroke: "none"
+    });
+    
+    function datetext(date) {
+        var d = new Date(date),
+            m = 1+d.getMonth(),
+            y = d.getFullYear();
+        return ((m < 10 ? "0" : "") + m + "/" + y);
+    }
+    
+    var startdate = paper.text(DATEPADDING, height - .5 * YEARSHEIGHT, datetext(STARTTIME));
+    startdate.attr({
+        fill: "#ffffff",
+        "text-anchor": "start"
+    });
+    var enddate = paper.text(width - DATEPADDING, height - .5 * YEARSHEIGHT, datetext(ENDTIME));
+    enddate.attr({
+        fill: "#ffffff",
+        "text-anchor": "end"
+    });
+    
+    /* Redrawing time slices for rollover effect */
+   
+    _(coords).each(function(line, index) {
+        line.mousesurface = paper.path(line.path);
+        console.log(line.mousesurface);
+        line.mousesurface.attr({
+            stroke: "none",
+            fill: line.color,
+            opacity: .01
+        }).mouseover(function() {
+            line.surface.attr({
+                fill: SELECTEDCOLOR
+            })
+        }).mouseout(function() {
+            line.surface.attr({
+                fill: line.color
+            })
+        });
+    });
+    
+    /* Returning a handler for slide value change */
+    
+    this.slidevalues = function(left, right) {
+        left = left || 0;
+        right = right || width;
+        carregauche.attr({x: left - width});
+        carredroite.attr({x: right});
+        startdate.attr({
+            x: DATEPADDING + left,
+            text: datetext(STARTTIME.valueOf() + left / txscale)
+        });
+        enddate.attr({
+            x: right - DATEPADDING,
+            text: datetext(STARTTIME.valueOf() + right / txscale)
+        });
+        rangerect.attr({
+            x: left,
+            width: right - left
+        });
+    }
+
+}
+
+$(function() {
+    window.streamgraph = new Streamgraph($(".streamgraph"));
+    streamgraph.slidevalues.apply(streamgraph,$("#slider-range").dragslider("values"));
+})
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/static/js/treemap.js.old	Wed Aug 14 16:42:24 2013 +0200
@@ -0,0 +1,146 @@
+/* Génération de données aléatoires */
+
+var data = [],
+    startcolor = [ 0, 0, 255 ],
+    endcolor = [ 255, 255, 0 ]
+    elementcount = 8;
+
+for (var i = 0; i < elementcount; i++) {
+    var r = i/elementcount,
+        col = _(endcolor).map(function(e,i) {
+            var s = startcolor[i]
+            return Math.floor(r*e + (1-r)*s)
+        });
+    data.push({
+        label: "Cluster " + (1+i),
+        i: i+1,
+        color: "rgb("+col.join(",")+")",
+        value: 1+Math.pow(Math.random(),2)*5
+    });
+}
+
+/* Génération du Treemap */
+
+data = _(data).sortBy(function(d) { return -d.value; });
+
+var IDEALRATIO = 1.25;
+
+function cuttree(data, x, y, w, h, cut, ratio, callback) {
+    
+    function f(subdata, subx, suby, subw, subh) {
+        if (subdata.length == 1) {
+            subdata[0].x = subx;
+            subdata[0].y = suby;
+            subdata[0].w = subw;
+            subdata[0].h = subh;
+        } else {
+            callback(subdata, subx, suby, subw, subh)
+        }
+    }
+    
+    var first = _(data).first(cut), rest = _(data).rest(cut);
+    if (!first.length || !rest.length) {
+        return;
+    }
+    if (w/h > IDEALRATIO) {
+        var leftw = w * ratio;
+        f(first, x, y, leftw, h);
+        f(rest, x + leftw, y, w - leftw, h);
+    } else {
+        var toph = h * ratio;
+        f(first, x, y, w, toph);
+        f(rest, x, y + toph, w, h - toph);
+    }
+}
+
+function pivot(data, x, y, w, h) {
+    var cut = 1, cumul = 0, bestcumul = 0, total = _(data).reduce(function(a,b){return a+b.value},0), bestcut = Infinity;
+    for (var i = 0; i < data.length - 1; i++) {
+        cumul += data[i].value;
+        var delta = Math.abs(cumul - total/2);
+        if (delta < bestcut) {
+            bestcut = delta;
+            bestcumul = cumul;
+            cut = i+1;
+        } else {
+            break;
+        }
+    }
+    cuttree(data, x, y, w, h, cut, bestcumul / total, pivot);
+}
+
+function squarify(data, x, y, w, h) {
+    var cut = 1, cumul = 0, bestcumul = 0, total = _(data).reduce(function(a,b){return a+b.value},0), bestcut = Infinity;
+    for (var i = 0; i < data.length - 1; i++) {
+        cumul += data[i].value;
+        cuttree(data, x, y, w, h, i+1, cumul / total, pivot);
+        var ratio = Math.abs(Math.log(IDEALRATIO*data[0].h/data[0].w));
+        if (ratio < bestcut) {
+            bestcut = ratio;
+            bestcumul = cumul;
+            cut = i+1;
+        } else {
+            break;
+        }
+    }
+    cuttree(data, x, y, w, h, cut, bestcumul / total, squarify);
+}
+
+/* Template des éléments à insérer */
+var actu = 
+    '<div class="actu" style="left: <%=x%>px; top: <%=y%>px; width: <%=w%>px; height: <%=h%>px; background: <%=color%>">'+
+        '<a href="#">'+
+            '<img src="img/home-visuel-<%-i%>.jpg" alt="" />'+
+        '</a>'+
+        '<div class="inner-actu">'+
+            '<h2><a href="#"><%-label%></a></h2>'+
+            '<div class="links">'+
+                '<ul>'+
+                    '<li><a href="#" title="Supprimer le cluster" class="trash"></a></li>'+
+                    '<li><a href="#" title="317 Annotations sur ce cluster" class="file"><span>317</span></a></li>'+
+                    '<li><a href="#" title="Ajouter une annotation au cluster" class="comment"></a></li>'+
+                '</ul>'+
+            '</div>'+
+        '</div>'+
+    '</div>';
+var tmpl = _.template(actu);
+
+squarify(data,0,0,760,358);
+
+document.getElementById('treemap1').innerHTML = _(data).reduce(function(mem, d) {
+    return mem + tmpl(d);
+},"");
+
+//redimensionnement d'image
+$(".actu").each(function(k,v){
+    var wActu = $(this).width();
+    var hActu = $(this).height();
+    var img = $(this).find('img');
+    var wImg = img.width();
+    var hImg = img.height();
+
+    var ratioImg = wImg/hImg;
+    img.css('height',hActu);
+    img.css('width',hActu*ratioImg);
+    wImg = img.width();
+    hImg = img.height();
+
+    if(wActu>wImg){
+        var ratioImg = hImg/wImg;
+        img.css('width', wActu);
+        img.css('height',wActu*ratioImg);
+        wImg = img.width();
+        hImg = img.height();
+    }
+
+    if (wImg<wActu) {
+        img.css('margin-left',(wActu-wImg)/2);
+    }else{
+        img.css('margin-left',-(wImg-wActu)/2);
+    }
+    if (hImg<hActu) {
+        img.css('margin-top',(hActu-hImg)/2);
+    }else{
+        img.css('margin-top',-(hImg-hActu)/2);
+    }
+});
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/integration/annotation-article.js	Wed Aug 14 16:42:24 2013 +0200
@@ -0,0 +1,374 @@
+$(function() {
+
+    $(".fancybox").fancybox();
+    $('.font-up a').click(function(){
+        var taille_police=parseFloat($('.content').css('font-size'),100)+2;
+        if(taille_police<30){
+            var taille_ligne=parseFloat($('.content').css('line-height'),100)+2;
+            $('.content').css({
+                'line-height':taille_ligne+'px',
+                'font-size':taille_police+'px'
+            });
+        }
+        return false;
+    });
+    $('.font-down a').click(function(){
+        var taille_police=parseFloat($('.content').css('font-size'),100)-2;
+        if(taille_police>11){
+            var taille_ligne=parseFloat($('.content').css('line-height'),100)-2;
+            $('.content').css({
+                'line-height':taille_ligne+'px',
+                'font-size':taille_police+'px'
+            });
+        }
+        return false;
+    });
+    
+    /* ANNOTATION HANDLING */
+    
+    var basenode = $(".content")[0],
+        cleanHtml = cleanTextNodes(basenode).innerHtml,
+        textinfo = parseContents(basenode);
+        
+    window.annotations = window.annotations || [];
+    
+    var colors = ["#ff8", "#f88", "#8f8", "#8ff", "#f8f", "#88f"],
+        currentVisibleFrame = null,
+        ncol = 0,
+        mousedown = false,
+        shownByClick = false,
+        dragging = false;
+    
+    function cleanText(txt, keepbefore, keepafter) {
+        var res = txt.replace(/[\n\r\t]+/gm,' ').replace(/ {2,}/g,' ');
+        if (!keepbefore) {
+            res = res.replace(/^ +/,'');
+        }
+        if (!keepafter) {
+            res = res.replace(/ +$/,'');
+        }
+        return res;
+    }
+    
+    function recursiveParse(node, info) {
+        var children = node.childNodes;
+        for (var i = 0, l = children.length; i < l; i++) {
+            var childnode = children[i];
+            switch(childnode.nodeType) {
+                case node.ELEMENT_NODE:
+                    recursiveParse(childnode, info);
+                break;
+                case node.TEXT_NODE:
+                    var startpos = info.text.length;
+                    info.text += childnode.textContent;
+                    var endpos = info.text.length,
+                        nodeinfo = {
+                            start: startpos,
+                            end: endpos,
+                            length: endpos - startpos,
+                            textNode: childnode
+                        };
+                    childnode._nodeInfo = nodeinfo;
+                    info.nodes.push(nodeinfo);
+                break;
+            }
+        }
+    }
+    
+    
+    function parseContents(node) {
+        var res = {
+            text: '',
+            nodes: []
+        };
+        recursiveParse(node, res);
+        return res;
+    }
+    
+    function cleanTextNodes(node) {
+        var children = node.childNodes;
+        for (var i = 0, l = children.length; i < l; i++) {
+            var childnode = children[i];
+            switch(childnode.nodeType) {
+                case node.ELEMENT_NODE:
+                    cleanTextNodes(childnode);
+                break;
+                case node.TEXT_NODE:
+                    var keepbefore = (i && children[i-1].nodeType == node.ELEMENT_NODE),
+                        keepafter = (i < l-1 && children[i+1].nodeType == node.ELEMENT_NODE);
+                    childnode.textContent = cleanText(childnode.textContent, keepbefore, keepafter);
+                break;
+            }
+        }
+        return node;
+    }
+    
+    function highlightText(start, end, color) {
+        var annotation = {
+            startOffset: start,
+            length: end - start,
+            color: color,
+            comment: "",
+            creator: currentUser,
+            tags: [],
+            annotatedText: textinfo.text.substring(start, end),
+            beforeText: textinfo.text.substring(start - 40, start).replace(/^[\S]*\s+/,''),
+            afterText: textinfo.text.substring(end, end + 40).replace(/\s+[\S]*$/,''),
+            documentaryFile: currentDocumentaryFile
+        }
+        annotations.push(annotation);
+        showAnnotation(annotation, true);
+        updateAnnotationCounts();
+    }
+    
+    var frameTpl = _.template(
+        '<div class="annotation-frame" style="border-color: <%- annotation.color %>; top: <%-top %>px; left: <%- left %>px;">'
+        + '<div class="annotation-area" style="background-color: <%- annotation.color %>; height: <%- height %>px;"></div>'
+        + '<form class="annotation-form"><h3>Annoté par&nbsp;: <em><%- annotation.creator.name %></em></h3>'
+        + '<h3>Dossier documentaire&nbsp;: <em><%- annotation.documentaryFile.name %></em></h3><h3>Commentaire&nbsp;:</h3>'
+        + '<% if (editable) { %><textarea class="annotation-textarea" placeholder="Mon commentaire&hellip;"><%- annotation.comment || "" %></textarea>'
+        + '<% } else { %><p><%- annotation.comment || "(sans commentaire)" %></p><% } %>'
+        + '<h3>Mots-clés&nbsp;:</h3>'
+        + '<ul class="<%- editable ? "annotation-tags-form" : "" %>"><% _(annotation.tags).forEach(function(tag) { %><li><%- tag %></li><% }) %></ul>'
+        + '<% if (editable) { %><h3><input class="annotation-public" type="checkbox" <% if (annotation.isPublic) {%>checked <% } %>/>Annotation publique</h3><div><a class="annotation-remove" href="#">Supprimer</a><input class="annotation-submit" type="submit" value="Enregistrer" /></div><% } %>'
+        + '</form></div>'
+    );
+    
+    var liTpl = _.template(
+        '<li style="border-color: <%- annotation.color %>;"><div class="annotation-longview"><h3>Texte annoté&nbsp;:</h3></div>'
+        + '<p class="annotation-text"><%- annotation.beforeText %><b><%- annotation.annotatedText %></b><%- annotation.afterText %></p>'
+        + '<h3>Annoté par&nbsp;: <em><%- annotation.creator.name %></em></h3>'
+        + '<div class="annotation-longview"><h3>Commentaire&nbsp;:</h3><p class="annotation-comment"><%- annotation.comment || "(Sans commentaire)" %></p>'
+        + '<h3>Mots-clés&nbsp;:</h3><p class="annotation-tags"><%- (annotation.tags || []).join(", ") || "(aucun mot-clé)" %></p></div>'
+        + '</li>'
+    );
+    
+    function showFrameBox() {
+        if (currentVisibleFrame) {
+            $(".annotation-frame-box").show();
+            var offset = currentVisibleFrame.offset(),
+                width = currentVisibleFrame.outerWidth(),
+                height = currentVisibleFrame.outerHeight();
+            $(".annotation-fb-top").css({
+                height: offset.top - 77
+            });
+            $(".annotation-fb-left").css({
+                top: offset.top,
+                height: height,
+                width: offset.left
+            });
+            $(".annotation-fb-right").css({
+                top: offset.top,
+                height: height,
+                left: offset.left + width
+            });
+            var fbbtop = offset.top + height;
+            $(".annotation-fb-bottom").css({
+                top: fbbtop,
+                height: ($("body").height() - fbbtop)
+            });
+            currentVisibleFrame.find(".annotation-textarea").focus();
+        } else {
+            $(".annotation-frame-box").hide();
+        }
+    }
+    
+    function hideAllFrames() {
+        if (currentVisibleFrame) {
+            currentVisibleFrame.hide();
+        }
+        
+        currentVisibleFrame = null;
+        showFrameBox();
+        $(".annotation-blocks li").removeClass("selected");
+    }
+    
+    function showAnnotation(annotation, editAfterShow) {
+        var start = annotation.startOffset,
+            end = annotation.length + start,
+            color = annotation.color;
+        var spans = [];
+        
+        for (var i = 0, l = textinfo.nodes.length; i < l; i++) {
+            var nodeinfo = textinfo.nodes[i];
+            if (nodeinfo.end > start && nodeinfo.start <= end) {
+                var r = document.createRange(),
+                    s = document.createElement('span'),
+                    rangestart = Math.max(0, start - nodeinfo.start),
+                    rangeend = Math.min(nodeinfo.length, end - nodeinfo.start);
+                s.style.backgroundColor = color;
+                r.setStart(nodeinfo.textNode, rangestart);
+                r.setEnd(nodeinfo.textNode, rangeend);
+                r.surroundContents(s);
+                spans.push(s);
+            }
+        }
+        
+        textinfo = parseContents(basenode);
+        var top = Math.min.apply(Math, spans.map(function(s) { return s.offsetTop })),
+            height = Math.max.apply(Math, spans.map(function(s) { return s.offsetHeight + s.offsetTop })) - top,
+            frame = $(frameTpl({
+                annotation: annotation,
+                editable: (currentUser.id === annotation.creator.id),
+                top: top,
+                height: height,
+                left: basenode.offsetLeft
+            })),
+            li = $(liTpl({
+                annotation: annotation
+            }));
+        
+        $(".annotation-frames").append(frame);
+        $(annotation.documentaryFile.id === currentDocumentaryFile.id ? ".annotation-file-list" : ".annotation-other-list").append(li);
+        
+        frame.find(".annotation-textarea").on("keyup paste input change", function() {
+            annotation.comment = $(this).val();
+            li.find(".annotation-comment").text(annotation.comment || "(Sans commentaire)");
+        });
+        
+        frame.find(".annotation-public").change(function() {
+            annotation.isPublic = $(this).is(":checked");
+        });
+        
+        frame.find("")
+        
+        var ontagchange = function(evt, ui) {
+            annotation.tags = $(this).tagit("assignedTags");
+            li.find(".annotation-tags").text((annotation.tags || []).join(", ") || "(aucun mot-clé)");
+        };
+        
+        frame.find(".annotation-tags-form").tagit({
+            afterTagAdded: ontagchange,
+            afterTagRemoved: ontagchange
+        });
+        
+        var show = function() {
+            if (mousedown) {
+                return;
+            }
+            shownByClick = false;
+            currentVisibleFrame = frame;
+            frame.show();
+            showFrameBox();
+            li.addClass("selected");
+        }
+                
+        $(spans).mouseenter(show);
+        
+        frame
+            .mouseleave(function() {
+                if (!shownByClick) {
+                    hideAllFrames();
+                }
+            })
+            .click(function() {
+                shownByClick = true;
+            });
+        
+        frame.find(".annotation-form").submit(function() {
+            hideAllFrames();
+            return false;
+        });
+        
+        frame.find(".annotation-remove").click(function() {
+            annotations = _(annotations).reject(function(a) {
+                return a === annotation
+            });
+            $(spans).css("background-color","").off("mouseenter",show);
+            li.remove();
+            frame.remove();
+            hideAllFrames();
+            updateAnnotationCounts();
+            return false;
+        });
+        
+        li
+            .mouseenter(function() {
+                $(spans).addClass("annotation-selected");
+                li.addClass("selected");
+                li.find(".annotation-longview").stop().slideDown();
+            })
+            .mouseleave(function() {
+                $(spans).removeClass("annotation-selected");
+                li.removeClass("selected");
+                li.find(".annotation-longview").stop().slideUp();
+            })
+            .click(function() {
+                show();
+                shownByClick = true;
+                $(window).scrollTop(currentVisibleFrame.offset().top - 100);
+            });
+        
+        if (editAfterShow) {
+            show();
+            shownByClick = true;
+        }
+        
+    }
+    
+    function updateAnnotationCounts() {
+        $(".annotation-blocks .block").each(function() {
+            var $this = $(this), n = $this.find("li").length;
+            $this.find(".annotations-count").text(n || "aucune");
+            if (n > 1) {
+                $this.find(".annotation-plural").show();
+            } else {
+                $this.find(".annotation-plural").hide();
+            }
+        })
+    }
+    
+    annotations.forEach(function(annotation) {
+        showAnnotation(annotation);
+    });
+    updateAnnotationCounts();
+    
+    var range = null;
+        
+    $(".content").mouseup(function(e) {
+        range = document.getSelection().getRangeAt(0);
+        var addann = $(".add-annotation");
+        if (!range.collapsed && range.startContainer._nodeInfo && range.endContainer._nodeInfo && range.toString() !== " ") {
+            addann.show();
+            var doc = $(document), rect = range.getBoundingClientRect();
+            addann.css({
+                left: doc.scrollLeft() + rect.right + 5,
+                top: doc.scrollTop() + (rect.top + rect.bottom - addann.outerHeight()) / 2,
+            });
+        } else {
+            range = null;
+            $(".add-annotation").hide();
+        }
+    }).mousedown(function() {
+        $(".add-annotation").hide();
+    });
+    
+    $(".add-annotation").click(function() {
+        $(".add-annotation").hide();
+        if (range) {
+            var start = range.startOffset + range.startContainer._nodeInfo.start,
+                end = range.endOffset + range.endContainer._nodeInfo.start;
+            highlightText(start, end, colors[ncol++ % colors.length]);
+            document.getSelection().removeAllRanges();
+        }
+    });
+            
+    $(window).mouseup(function() {
+        mousedown = false;
+        dragging = false;
+    });
+    
+    $(".annotation-frame-box").click(hideAllFrames);
+    
+    $(window).resize(function() {
+        showFrameBox();
+        $(".annotation-frame").css({
+            left: basenode.offsetLeft
+        })
+    });
+    
+    $(".add-annotation").css({
+        left: (basenode.offsetLeft + 500)
+    });
+
+});
Binary file integration/periplus.zip has changed